




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 .淺談單片機、FPGA、CPLD的特點與在廣播系統中的運用廣電總局501臺 王榮飛摘要本文以單片機、FPGA/CPLD在控制領域的特點與優勢為基礎,介紹了單片機、FPGA/CPLD的使用方法,通過TBH522短波發射機自動調諧系統的設計例子,進一步闡述利用各器件實現大型控制系統的原理。關鍵字:單片機 FPGA CPLD一、前言隨著科技的進步和深入,我們傳統的廣播電視事業經歷著一場深刻的變革和沖擊,傳統模擬設備正被新興的數字設備與多媒體設備所取代。如何在現有設備的基礎上完成系統數字化、自動化和網絡化改造,提高設備的利用率和使用壽命,是我們面臨的課題。筆者一直從事發射機自動控制系統開發,根據用戶
2、的需求,設計了很多單片機配合CPLD/FPGA實現相應功能的控制系統,現將筆者的一些使用心得與大家分享,拋磚引玉,和大家在控制領域共同探討。二、單片機、FPGA、CPLD在控制領域的特點與優勢1、單片機特點單片機亦稱單片微電腦或單片微型計算機。它是把中央處理器(CPU)、隨機存取存儲器(RAM)、只讀存儲器(ROM)、輸入/輸出端口(I/0)等主要計算機功能部件都集成在一塊集成電路芯片上的微型計算機。自問世以來從工業測控對象、環境、接口特點出發,向著增強控制功能、提高工業環境下的可靠性、靈活方便的構成應用計算機系統的界面接口的方向發展。2、FPGA/CPLD特點(1)、都是可編程ASIC器件,
3、具有體系結構和邏輯單元靈活、集成度高。(2)、并有豐富的觸發器和IO引腳,可實現較大規模的邏輯電路,編程也很靈活,采用VHDL硬件描述語言完成。(3)、采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容,適用圍寬。(4)、是ASIC電路中設計周期最短、開發費用最低、風險最小的器件。3、單片機和FPGA/CPLD的在控制領域里各自的優勢單片機屬總線控制器,具有教大的數據運算能力,但邏輯運算卻是單片機的弱項,特別是處于總線控制器的弊端,不能即時抓住瞬態變化的信息量;而FPGA/CPLD則是由大量門電路組成,通過VHDL硬件編程語言將程序寫入FPGA/CPLD,構成用戶所需要的各種邏輯電
4、路,所以根據系統需求,將數據運算與循環控制設計到單片機完成,而邏輯電路則設計到FPGA/CPLD完成,雙方通過單片機對FPGA/CPLD進行讀寫控制而實現整體的控制。盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但由于FPGA和CPLD結構上的差異,具有各自的特點(1)、FPGA的集成度比CPLD高,具有更復雜的布線結構和邏輯實現。(2)、CPLD比FPGA使用起來更方便。CPLD的編程采用E2PROM或FASTFLASH技術,無需外部存儲器芯片,使用簡單,可分為在編程器上編程和在系統編程兩類;FPGA大部分是基于SRAM編程,編程信息在系統斷電時丟失,每次上電時,需從器件外部
5、將編程數據重新寫入SRAM中,所以FPGA的編程信息需存放在外部存儲器上,使用方法復雜,但FPGA比CPLD具有更大的靈活性。(3)、CPLD通過修改具有固定連電路的邏輯功能來編程,與CPLD是邏輯塊級編程,并且其邏輯塊之間的互聯是集總式的,FPGA主要通過改變部連線的布線來編程,與FPGA是門級編程,并且CLB之間采用分布式互聯;CPLD的連續式布線結構決定了CPLD的速度比FPGA快,并且具有較大的時間可預測性,同時也確定了CPLD更適合完成各種算法和組合邏輯,FPGA更適合于完成時序FPGA邏輯。三、單片機的使用方法單片機發展到現在,品種繁多,在此以MSP4301611F的一些應用來說明
6、,此單片機是儀器(TI)公司推出的MSP430系列超底供耗16位混合信號處理器,工作電壓為1.8V-3.6V,通常設計工作電壓為3.3V;16位RISC結構,125ns指令周期;置3通道DMA,并擁有6組I/O端口,可根據需要設計為中斷端口;12位A/D帶采樣保持和雙12位D/A同步轉換,片具有硬件乘法器和10進制運算器,極大的提高系統算術運算能力;帶有2個串行通信,USART0和USARI1接口;擁有10KB RAM空間和48KB FLASH存儲器。 1、A/D、D/A轉換:因MSP4301611F擁有12位A/D帶采樣保持和雙12位D/A同步轉換,在需要設計AD轉換和DA轉換的場所,可無需
7、設計A/D、D/A專用芯片,提高系統集成度,降低功耗,減小開發成本。(1)、A/D轉換:此單片機擁有8路12位A/D轉換,與A0-A7,共用一個轉換核ADC12,模擬多路器分時地將多個模擬信號接通,即每次進行一個信號的采樣轉換,并將通過對應的控制寄存器ADC12MCTL轉換結果保存在存儲器ADC12MEM中;轉換時擁有4種ADC12轉換模式,單通道單次轉換;系列通道單次轉換;單通道多次轉換;系列通道多次轉換;本文以系列通道單次轉換為例說明A0-A5進行模數轉換。bis.b #3FH,&P6SEL ;A0-A5模數轉換功能開,mov #ADC12ON+REFON+REF2_5V+SHT0_6,&
8、ADC12CTL0 ;啟動ADC12,使用部2.5V參考電壓mov #SHP+CONSEQ_3,&ADC12CTL1 ;使用采樣定時器, 系列單次通道轉換 mov.b #INCH_0+SREF_1,&ADC12MCTL0 ;使用 A0, Vref+mov.b #INCH_1+SREF_1,&ADC12MCTL1 ;使用 A1, Vref+mov.b #INCH_2+SREF_1,&ADC12MCTL2 ;使用 A2, Vref+mov.b #INCH_3+SREF_1,&ADC12MCTL3 ;使用 A3, Vref+mov.b #INCH_4+SREF_1,&ADC12MCTL4 ;使用 A
9、4, Vref+mov.b #INCH_5+SREF_1+EOS,&ADC12MCTL5 ;使用 A5, Vref+,最后系列bis #3FH,&ADC12IE ;使能中斷ADC12IFG.5 bis #ENC,&ADC12CTL0 ;使能轉換eint ;使能中斷 bis #ADC12SC,&ADC12CTL0 ;啟動轉換 bis #CPUOFF,SR ;低功耗等待轉換完成ORG 0FFEEh ;ADC12 中斷向量DW ADC12ISR (2)、D/A轉換:ADC數模轉換核是由一個1位、2階的調節器實現,調節器的一位比較器通過調節器頻率量化輸入模擬信號,產生的1位數據流由數字濾波器平均分配作
10、為轉化結果。此單片機帶有雙12位D/A同步轉換,分別是A6、A7;有2種轉換模式,分別是單次轉換和連續轉換,本文以單次轉換為例說明A6實現D/A轉換方法。mov R14,DAC12_0DAT ;將數字信號送入模數轉換寄存器mov #REF2_5V+REFON,&ADC12CTL0 ;DAC12部參考電壓2.5Vmov #DAC12IR+DAC12AMP_5+DAC12ENC,&DAC12_0CTLeint ;使能中斷2、利用USART0實現異步通信基本所有單片機都能通過USART硬件直接實現UART異步通信和SPI同步通信,USART模塊包含4個部分。波特率部分:與控制串行通信數據接收和發送的
11、速度;波特率由分頻因子N和送到分頻計數器的時鐘(BRCLK)來確定,與N=BRCLK/波特率,在此N由3個計數器構成,整數部分是&U0BR0、&U0BR1,小數部分是&U0MCTL。通過設置N來確定通信波特率。接收部分:接收串行輸入數據。發送部分:發送串行輸出的數據。接口部分:完成串/并、并/串轉換部分。本文以USART0模塊,在8M的工作頻率下,按照115200bit的速度,8-bit字符,奇校驗,1位停止位的方式完成異步通信。(1)、初始化RS232通信init_232:bis.b #0x1,&U0CTL ; bis.b #0x90,&U0CTL ;8-bit字符,奇校驗,1位停止位CLE
12、AR_F bic.b #0x2,&IFG1 ;清除OSCFault標識 mov.b #0x0F,R14 ;T1 cmp.b #0x1,R14 ; jnc T2 add.b #0xFF,R14 jmp T1T2 jc CLEAR_F mov.b #0x30,&U0TCTL ;uclk=smclk mov.b #0xA0,&U0BR0 ;在8MHz下進行115200波特率通訊 mov.b #0x1,&U0BR1 ; mov.b #0xAD,&U0MCTL ; bic.b #0x1,&U0CTL ; clr.b &IFG1 bis.b #0xC0,&ME1 bis.b #0x40,&IE1 ;使能接
13、收 bis.b #0x30,&P3SEL ;設置TX,RX (RS485通信時用) and.b #0xCF,&P3DIR bis.b #0x10,&P3DIR clr.b &Send_Buf ;清零發送緩沖 ret(2)、發送數據:比如將R10的數據通過串口發送出去,其程序如下。rs485_SendData: bis.b #0x8,&P3OUT ;使能發送 mov.b R10,&U0TXBUF ;寫入發送數據T3 bit.b #0x1,&U0TCTL ;等待發送完成 jnc T3 bic.b #0x8,&P3OUT ;禁止發送 ret(3)、接收數據:本程序設置通過中斷方式接收數據,與在串口有
14、活動時,將啟用串行接收中斷。ORG 0fff2H ; USART 接收中斷 DW data_Receive ;接收數據入口data_Receive: MOV.B &U0RXBUF,R10 ;將接收數據緩沖區數據保存到R10 RETI四、FPGA、CPLD的使用方法:FPGA/CPLD都屬于可編程ASIC器件,集成度高,通過VHDL硬件編程語言將程序寫入,構成用戶所需要的各種較大規模的邏輯電路。使用時可根據系統需求選擇合適的FPGA/CPLD,目前世界上有十幾家生產CPLD/FPGA的廠商,最大的三家是ALTERA、XILINX、LATTICE。現通過幾個數字電路說明FPGA和CPLD的使用方法
15、。1、 端口定義FPGA/CPLD具有大量的可用I/O,用戶根據硬件需求,在電路板上將可用I/O設計到相應的輸入輸出引腳上,然后針對使用的I/O進行定義,通過用戶定義的管腳利用VHDL硬件編程語言實現相應的輸入/輸入與部各種邏輯功能,定義管腳分2個文件,在VHD文件里定義管腳名字與輸入/輸出方向。如下程序定義了18個信號,其中P2.0P2.7為8個輸入/輸出雙信號,P1.0P1.7為8個輸入信號,x、y為2個輸出信號,z為一個輸出信號。entity zdtxfpga is ;端口定義模塊開始Port( p2 : inout std_logic_vector(0 to 7); ;P2口為輸入輸出
16、信號p1 : in std_logic_vector(0 to 7); ;P1口為輸入信號 z: out std_logic; ;z為輸出信號x: in std_logic; ;x為輸入信號 y : in std_logic); ;y為輸入信號end zdtxfpga; ;端口定義模塊結束信號名字和I/O特性定義完成后,還得定義信號在FPGA上對應的管腳,管腳定義在UCF文件里,比如下面的描述定義P2.0和x。NET p2 LOC = p12; ; 定義12腳為P2.0NET x LOC = p100; ; 定義100腳為x2、利用FPGA/CPLD實現數字濾波: 眾所周知,在我們廣播控制系統
17、上最大的問題是干擾,處理干擾的手法也很多,可靠接地、采用電容電感對輸入輸出信號進行濾波等,但以上的處理措施都不能徹底解決干擾問題,在此利用FPGA邏輯功能實現精確的濾波處理。如下圖所示,CLK為系統時鐘,X為輸入信號,底電平為正常,當X信號出現高電平后,Y根據系統時鐘進行計數,當Y的記數脈沖超過6個脈沖后X故障,Z信號為1,反之則為0,若小于6個脈沖則Y自動清零;T0時刻,X信號正常,Z為底電平;T1時刻,X出現高電平,Y開始計數,但Y計數到4時X出現底電平,Y自動清零,屬于干擾信號;T3時刻,X在次出現故障,Y開始記數,當Y計數到6時,說明X出現故障,Z電平翻轉為1,屬故障信號;當T4時刻,
18、X在次為底電平,Y計數清零,Z電平翻轉為0。以上電路采用VHDL描述如下:Y信號計數/清零控制:If clkevent and clk=1 then If x=0 then Y=”000”;Else Y= Y+1;End if;End if;Z信號電平翻轉:IF X=0 thenZ=”110” thenZ=1;End if; 通過以上利用FPGA/CPLD濾波處理效果遠比傳統電感/電容濾波效果要好得多,改變對CLK的記數信息,可靈活設計不同的濾波脈寬。3、利用FPGA/CPLD實現邏輯控制:比如有3個輸入信號,分別是A、B、C,一個輸出信號Z,要求A信號為底電平,B信號為高電平,C信號由高電平
19、變為底電平時,Z輸出底電平,否則Z輸出高電平;其VHDL描述程序如下:If cenent and c=0 thenZ=a or not b;ElseZ=1;End if;End if; 本電路只是一個簡單的邏輯電路,但在邏輯控制上則經常有非常復雜的邏輯控制,若采用74、CMOS系列芯片進行設計,則電路板上需要大量各種與、或、非、觸發器等門電路,但利用FPGA/CPLD,則可通過VHDL硬件編程語言輕松實現,而且所有邏輯電路都在一個芯片,其外圍只有相應的輸入/輸出接口芯片,其維護教為簡單,用戶只需要了解相應的輸入/輸出接口是否正確。五、運用因單片機、FPGA、CPLD品種、功能繁多,在此不一一例
20、舉,僅就利用單片機、FPGA、CPLD實現TBH522短波發射機自動調諧系統來闡述單片機和FPGA在廣播控制領域中的特點。1、 系統構架因系統有著大量邏輯運算與數據處理,所以采用單片機配合FPGA實現整套系統調諧控制。FPGA主要完成8路伺服倒動控制、調諧邏輯控制以與頻率計數等。需大量編程模塊,本系統中采用Spartan-3E系列FPGA-XC3S500E-PQ208,其邏輯宏單元為10476,因可用I/O只有158個,無法滿足需要,所以采用XC95288XL系列的CPLD-XC95288XL-PQ208來完成I/O擴展。因系統需要大量數據運算和RAM、粗調數據存儲空間,所以采用帶有硬件乘法器
21、的單片機MSP4301611F,因8路伺服倒動控制數據是由單片機運算的,使得單片機要有教高的執行效率,但系統需要通過RS232完成對外通信,因RS232通信時站用大量單片機運行時間,所以單獨采用一片單片機來完成RS232傳輸,因系統控制伺服是要求較高的A/D轉換速度,所以采用專用A/D轉換芯片AD574來完成,而未使用MSP430F1611上集成的A/D轉換功能。系統框圖如下圖所示:2、CPLD訪問設置CPLD主要用來進行I/O擴展,通過單片機1的P1、P2、P3口完成對CPLD的控制,完成對FPGA、單片機2、A/D轉換以與面板顯示信息的讀寫控制。如下圖所輸示。3、單片機1控制流程(1)、初
22、始化:程序開始執行時先初始化堆棧、看門狗,并設置設置DOC時鐘,本系統采用XT2CLK作為MCLK,工作頻率為8M,設置P0-P6口輸入輸出方向與RS232通信,本系統采用奇效驗,工作在115200bit;之后后判斷FPGA和CPLD是否正常工作,若CPLD和FPGA正常工作后,打開串口中斷,初始化完成。(2)、電機信息:本套調諧系統支持數字電機和直流電機,根據用戶需要安裝相應的電機,通過人機接口單元設置后下傳到單片機部FASH存儲,單片機讀取此信息后寫入FPGA,FPGA根據此信息啟用數字電機還是直流電機控制信號。(3)、伺服限位信息:此信息包含8路伺服的高限和底限信息,在進行伺服倒動控制時
23、,若超過此信息,則停止轉動,防止拉壞真空電容與電感等元氣件。模擬采集:為保證控制靈敏度,系統設置16路A/D轉換器件AD574,分別采集1-8路伺服的位置信號,1路3路的鑒向器信息以與5路鑒阻器信息,單片機1通過CPLD讀取16模擬采集信息,并根據FASH存儲的調諧數據為依據,完成對8路伺服的粗調與細調。(4)、FPGA狀態信息:本系統采用FPGA完成所有的調諧邏輯控制,部存儲著所有輸入/輸出狀態信息、頻率記數信息、調諧信息等,單片機通過CPLD讀取FPGA的這些數據,用于控制和狀態傳輸。(5)、通信控制:單片機1每進行50次控制后通過CPLD發出和單片機2的通信請求,當單片機2響應后,單片機
24、1將讀取到的FPGA狀態數據、模擬采集數據、控制流程等數據發送到單片機2,當數據發送完后接收單片機2的控制命令與調諧數據;控制命令數據是系統處于自動時,控制單元根據相應操作要求向自動調諧單元發出的粗調、預倒、倒頻、細調、播音等命令,單片機1根據此命令控制FPGA完成相應的操作;調諧數據人機接口單元發送來的,單片機1在收到此數據后,根據信道號和頻率將數據存儲到單片機部FASH的4000H-8000H部,單片機在進行粗調倒動控制時,根據指定信道號或頻率讀取部存儲的調諧數據進行粗調和細調控制。(6)、粗調判斷:若有粗調信息時,FPGA自動鎖存粗調信息供單片機讀取,當單片機讀取完此信息后服位粗調信息,
25、單片機讀取到粗調信息后,根據當前信道號或頻率讀取調諧數據存儲到指定的單片機RAM區,延遲半秒后釋放腔體并根據部存儲數據發出輔助接點的控制。(7)、腔體接點吸合:當系統不處于粗調狀態時,發出吸合腔體控制;當系統處于粗調狀態時,2路粗調到位后自動吸合腔體。(8)、控制8路伺服倒動:伺服倒動分粗調和細調,處于手動狀態時,FPGA根據手動光編碼器信息發出伺服倒動控制;不處于手動狀態時,8路伺服的倒動控制由單片機控制完成,粗調時,單片機讀取8路伺服位置,根據部存儲信息發出伺服升/將控制,并發出調諧數據,FPGA根據單片機所發數據進行運算,并將單片機所發數據完成數字電機和直流電機的控制。對于直流電機,當單
26、片機所發伺服到動數據為FF時,要求電機高速運轉,此時所發信息為底電平,當小于FF時,FPGA按照2KHz進行PDM運算,為保證電機能正常傳動,PDM脈沖最底脈寬為1/16,并將運算的PDM信息發送到直流電機伺服放大器;數字電機,因數字電機在開始轉動時,不能直接將速度控制到最高,而是逐步將速度提高,FPGA在收到單片機控制數據后,由500Hz開始按照每秒1KHz的速度提升,當單片機所發數據為FF時,最高速度為8KHz,若小于FF,則根據所發數據,轉換為500Hz-8KHz之間的頻率對電機進行倒動控制。(9)、面板顯示:自動調諧面板顯示由2片CPLD按照5位地址碼,8位數據碼進行譯碼鎖存驅動顯示,
27、顯示信息量為播音頻率、伺服位置、狀態信息。播音頻率的顯示,FPGA根據10M溫補晶震為基準,按照100ms的速度對播音頻率進行記數,并將記數的二進制碼傳送到彈片機,單片機將將此信息進行BCD碼轉換,并將轉換BCD碼按照指定地址位發送到顯示面板,同時此頻率信息還提供半自動操作時讀取調諧數據的基準;伺服位置顯示,顯示面板上只設置1路伺服的顯示位置,單片機根據所選擇的伺服進行BCD轉換,并將轉換的數據按照指定地址傳送到顯示面板;狀態顯示,彈片機根據讀取到FPGA部狀態信息進行整合后按照指定地址和數據發送到顯示單元。4、FPGA控制邏輯:FPGA圍繞著粗調、前級細調、末級細調、電平轉換、開始播音為主線
28、的邏輯思想設計伺服的調諧控制邏輯。包含和單片機1訪問的讀寫數據區,8路伺服倒動控制,以10M溫補晶振為基礎對播音頻率進行計數,故障記錄與告警、面板顯示等,因部邏輯較多,無法一一描述,在此以調諧系統的5個狀態為基礎來簡單解說,如下圖所示。(1)、粗調:當按下粗調按鈕或自動狀態時單片機發送粗調指令時,FPGA將系統設置在粗調狀態;系統發出粗調狀態信息,封鎖整機衰減器、寬放、PSM,并根據單片機存儲數據完成8路伺服的粗調倒動。(2)、前級細調:當粗調完成后,高壓合、腔體接點吸合,按下前級細調按鈕或自動時單片機發送細調指令時,系統將進入細調狀態;處于細調狀態時,將解除衰減器、寬放、PSM的封鎖,并發出粗調完成信息,發射機處于調諧功率狀態,系統根據前級鑒向器信息以與部存儲的前級細調修正信息,進行前級細調。因鑒向器線性不好,對不同頻率的取樣信號不一致,在進行細調控制時,系統根據部存儲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標準租賃商鋪合同模板
- 2025商業辦公空間設計施工合同示范文本 合同范本
- 2025籃球場地租賃合同
- 版個人房產交易合同樣本
- 管理學:管理與組織導論
- 2025計算機硬件采購合同范本
- 電工技能培訓專題-電路-電阻電路的一般分析
- 2025合同終止全解析
- 2025租房中介服務合同模板
- 大學考研-電動與拖動第4章異步電機的電力拖動
- 廣東省2024-2025學年佛山市普通高中教學質量檢測物理試卷及答案(二)高三試卷(佛山二模)
- 防水工程施工方案屋面防水施工的施工工藝
- 【9數一模】2025年安徽合肥市第四十五中學九年級中考一模數學試卷(含答案)
- 國家民政部所屬單位招聘筆試真題2024
- 2024年安徽馬鞍山技師學院專任教師招聘真題
- 電網工程設備材料信息參考價(2024年第四季度)
- DB42T2305-2024高品質住宅技術標準
- 2024年浙江省中考社會試卷真題(含標準答案及評分標準)
- 國有企業采購管理規范 T/CFLP 0027-2020
- 江蘇省無錫市新吳區2023-2024學年八年級下學期期中考試數學試題
- 2023年(第九屆)全國大學生統計建模大賽 論文模板及說明
評論
0/150
提交評論