圖1 TD-SCDMA基帶處理框圖
圖2 傳輸信道編碼復(fù)用結(jié)構(gòu)
在圖2中,每個傳輸信道(TrCH)對應(yīng)一個業(yè)務(wù),由于各種業(yè)務(wù)對時延的要求不同,所以其傳輸時間間隔(TTI)是不同的,TTI可以是10ms、20ms、40ms或80ms。 | 國內(nèi)領(lǐng)先的通信技術(shù)論壇&D'a&d0S2i4B'z圖1 TD-SCDMA基帶處理框圖
圖2 傳輸信道編碼復(fù)用結(jié)構(gòu)
在圖2中,每個傳輸信道(TrCH)對應(yīng)一個業(yè)務(wù),由于各種業(yè)務(wù)對時延的要求不同,所以其傳輸時間間隔(TTI)是不同的,TTI可以是10ms、20ms、40ms或80ms。:p2q,V h-y0m/_DDS(直接數(shù)字頻率合成)技術(shù)是解決這一問題的最好辦法,DDS技術(shù)從相位的概念出發(fā)進行頻率合成,采用數(shù)字采樣存儲技術(shù),可以產(chǎn)生點頻、線性調(diào)頻、ASK、FSK等各種形式的信號,并且其幅度和相位一致性都很好,具有電路控制簡單、方便靈活、可靠性高、相位精確、頻率分辨率高、頻率切換速度快、輸出信號相位噪聲低、易于實現(xiàn)全數(shù)字化設(shè)計等突出的優(yōu)點。
在雷達系統(tǒng)中采用DDS技術(shù)可以靈活地產(chǎn)生不同載波頻率、不同脈沖寬度、不同脈沖重復(fù)頻率等參數(shù)的信號,為雷達的設(shè)計者提供了全新的思路。
1 DDS技術(shù)的基本原理
DDS是一種全數(shù)字化的頻率合成器,由相位累加器、正弦波形ROM存儲器、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成,如圖1所示。
![]() |
---|
輸出信號波形的頻率表達式為:
![]() |
---|
式中,fclk為參考時鐘頻率,Δφ為相位增量,表現(xiàn)以多大的間隔對信號相位進行累加,也稱為頻率控制字,N為相位累加器的位數(shù)。
由式(1)看出,DDS的頻率分辨率即最低頻率為:
![]() |
---|
所以,只要N足夠大,DDS可得到很小的頻率間隔,要改變DDS的輸出信號的頻率,只要改變Δφ即可。
可見,當(dāng)參考時鐘頻率給定后,輸出信號的頻率取決于頻率的控制字,頻率分辨率取決于累加器的位數(shù),相位分辨率取決于ROM的地址線位數(shù),幅度量化取決于ROM的數(shù)據(jù)字長和D/A轉(zhuǎn)換器的位數(shù)。
2 基于FPGA的DDS軟件編程產(chǎn)生線性調(diào)頻信號
利用專用DDS芯片是目前比較流行的信號產(chǎn)生方法,專用DDS芯片把所有功能集中在一塊芯片上,需要設(shè)計者依次為平臺進行開發(fā)[3]。而基于FPGA(現(xiàn)場可編程門陣列)的DDS軟件編程則根據(jù)DDS技術(shù)的基本原理,充分利用了FPGA作為大規(guī)模芯片的資源優(yōu)勢和高速運算能力,除了能產(chǎn)生專用DDS芯片所具備的單頻連續(xù)波、非連續(xù)波、各種形式的線性調(diào)頻信號以外,還可以借助FPGA龐大的資源優(yōu)勢和內(nèi)部存儲器,使非線性調(diào)頻等更復(fù)雜的信號更容易實現(xiàn)。
2.1 系統(tǒng)構(gòu)成
在具體實現(xiàn)過程中主要采用一塊基于FPGA的雷達信號處理卡,既可以采集來自雷達接收機的中頻、視頻信號并對其進行數(shù)字信號處理,又可以自身模擬產(chǎn)生雷達中頻、視頻信號進行數(shù)字信號處理或不處理直接送往雷達信號處理機。雷達信號處理卡的硬件電路結(jié)構(gòu)圖如圖2所示。
![]() |
---|
FPGA采用Xilinx公司的10萬門FPGA芯片XC2S100E,其配置芯片為Xilinx公司的1Mbit容量PROM芯片XC18V01,以主動串行方式對FPGA進行上電配置,A/D、D/A轉(zhuǎn)換器分別為ADI公司12位高速A/D數(shù)轉(zhuǎn)換芯片AD9224與14位高速D/A轉(zhuǎn)換芯片AD9764。SRAM采用Cypress公司的256k×16bits SRAM芯片CY7C1041。
設(shè)計中利用FPGA實現(xiàn)32位/33MHz的PCI接口邏輯,進行實時信號采集和傳輸控制,由于FPGA具有層次化的存儲器系統(tǒng),其基本邏輯功能塊可以配置成16×1、16×2或32×1的同步RAM,或16×1的端口同步RAM。因此,可以在FPGA內(nèi)部配置高速雙口SAM用來作為信號傳輸?shù)臄?shù)據(jù)緩沖器。同時,為了節(jié)省FPGA的內(nèi)部邏輯資源,在FPGA外圍配置了適當(dāng)?shù)腟RAM用來存儲數(shù)據(jù)。
結(jié)合本處理卡的結(jié)構(gòu)特點,硬件采用FPGA與高速D/A方案產(chǎn)生線性調(diào)頻信號,在FPGA內(nèi)部實現(xiàn)DDS電路,FPGA輸出全數(shù)字線性調(diào)頻信號送往高速D/A轉(zhuǎn)換器得到最終的模擬線性調(diào)頻信號,由于本處理卡采用PCI總線結(jié)構(gòu),因此可通過計算機實時修改線性調(diào)頻信號的參數(shù)設(shè)置,改善了人機接口,提高了系統(tǒng)的靈活性。
2.2 FPGA軟件編程實現(xiàn)線性調(diào)頻信號的原理
圖1所示的DDS電路產(chǎn)生的是固定頻率的正弦波信號,信號頻率受相位增量Δφ控制,若要產(chǎn)生線性調(diào)頻信號,則必須實時改變Δφ,使Δφ根據(jù)頻率步進量fstep而線性變成,因此,基于FPGA軟件編程實現(xiàn)線性調(diào)頻信號時,需要在FPGA內(nèi)部實現(xiàn)頻率累加器、相位累加器、正弦波形ROM存儲器等電路,F(xiàn)PGA軟件編程實現(xiàn)線性調(diào)頻信號的原理圖如圖3所示。
![]() |
---|
產(chǎn)生線性調(diào)頻信號時,每來一個時鐘脈沖,軟件編程控制頻率累加器產(chǎn)生線性增加的瞬時頻率,然后經(jīng)過相位累加器運算輸出線性調(diào)頻信號的瞬時相位,以此相位值尋址正弦值存儲表,通過查表得到與相位值對應(yīng)的幅度量化值;在下一個周期來臨時,頻率累加寄存器一方面將在上一個時鐘周期作用后所產(chǎn)生的新的頻率數(shù)據(jù)反饋到頻率加法器的輸入端,以使頻率加法器繼續(xù)累加,頻率累加的瞬時值與上一個周期相位累加器反饋到相位加法器輸入端的數(shù)據(jù)累加,然后再依此周期累加的相位值重新尋址正弦值存儲表,得到對應(yīng)的幅度量化值。依此循環(huán),幅度量化值經(jīng)累加,并經(jīng)D/A轉(zhuǎn)換器得到連續(xù)的階梯波,經(jīng)低通濾波器濾除高頻分量,最后即可得到所需線性調(diào)頻信號[4]。
已知系統(tǒng)工作時鐘fclk、頻率累加器與相位累加器位數(shù)N,要產(chǎn)生中頻為F0、帶寬為B、時寬為T的線性調(diào)頻信號,其頻率步進編程見圖4。在FPGA軟件編程時只需計算起始頻率fstart和頻率步進量fstep即可。
![]() |
---|
起始頻率fstart和頻率步進量fstep計算公式如下:
![]() |
---|
VHDL語言中數(shù)值表示方法采用二進制,所以通過式(3)、式(4)計算的結(jié)果二進制數(shù),無量綱。
經(jīng)過頻率累加器輸出的是嚴(yán)格線性增長的瞬時頻率。在實際過程中,相位累加器的輸出是經(jīng)過相位截斷再進行尋址,從而引入了一定的相位誤差,雖然這一誤差會影響到線性調(diào)頻信號的線性度,但是調(diào)頻斜率為相位的二次導(dǎo)數(shù),相位截斷誤差本身已很小,所以對調(diào)頻線性度的影響就更小了。
2.3 FPGA的軟件編程實現(xiàn)線性調(diào)頻信號的部分程序
本程序完全遵照上述的FPGA軟件編程實現(xiàn)現(xiàn)行調(diào)頻信號的原理編寫,采用VHDL語言來進行描述,以下是部分源程序。
1)線性調(diào)頻脈沖信號產(chǎn)生(系統(tǒng)時鐘頻率40MHz,線性調(diào)頻脈沖信號脈寬25μs,中頻1.5MHz、調(diào)頻帶寬1MHz)
dds_fstart<=“000001100110011001100110”,//設(shè)置線性調(diào)頻信號初始頻率為1MHz,由式(3)可計算出
dds_phase_start<=“0000000000000000000000”;//設(shè)置線性調(diào)頻信號初始化初始相位為0
dds_fstep<=conv_std_vector(419,43);//設(shè)置線性調(diào)頻信號頻率步進為419.43,對應(yīng)調(diào)頻帶寬為1MHz,時寬為25μs,由式(4)可計算出
![]() |
---|
![]() |
2.4 與DDS專用芯片方法的比較
由于基于FPGA的DDS軟件編程同樣利用了DDS技術(shù)的基本原理,主要部分均由頻率累加器、相位累加器、相位幅度轉(zhuǎn)換器組成,所以與DDS專用芯片方法的方法一樣,所產(chǎn)生的信號具有可通過編程靈活控制參數(shù)、具有高的調(diào)頻線性度、頻率穩(wěn)定度等DDS技術(shù)特有的優(yōu)點。但是與DDS專用芯片方法相比,有自己的優(yōu)勢和不足。
由輸出信號的頻率分辨率Δf=fclk/2N可知,本系統(tǒng)的參考時鐘頻率為fclk為40MHz,相位累加器的位數(shù)N為24位,而DDS專用芯片,如AD9854的相位累加器的位數(shù)N為48位,雖然本系統(tǒng)產(chǎn)生的線性調(diào)頻信號在精度和速度上略有不足,但已能基本滿足絕大多數(shù)系統(tǒng)的使用要求。若要產(chǎn)生更低頻率及更精確的波形,可以提高分辨率并相應(yīng)減小基準(zhǔn)時鐘,這在FPGA中實現(xiàn)起來相比比較容易。
另一方面,基于FPGA的系統(tǒng)功能完全取決于設(shè)計需求,可以復(fù)雜也可以簡單,而且FPGA芯片還可在系統(tǒng)現(xiàn)場升級,使系統(tǒng)具有較大的可擴展性。另外,將DDS設(shè)計嵌入到FPGA芯片所構(gòu)成的系統(tǒng)中,只是充分利用了FPGA的系統(tǒng)的軟件資源,其系統(tǒng)的硬件成本并不會增加多少,而購買專用DDS芯片則使系統(tǒng)的硬件成本和體積等增加很多,因此,采用基于FPGA的DDS軟件編程技術(shù)具有較高的性價比,并提高了系統(tǒng)的性能和可靠性。
3 實驗結(jié)果
首先對VHDL代碼進行了時序仿真,然后將編譯綜合后的BIT文件下載到FPGA芯片中進行系統(tǒng)聯(lián)調(diào)。實驗表明,采用FPGA軟件編程技術(shù)較好地實現(xiàn)了線性調(diào)頻信號的產(chǎn)生,而且信號波形比較穩(wěn)定。
圖5為利用Modelsim軟件對比設(shè)計所產(chǎn)生的信號進行仿真得到的時序仿真圖,從中可以看出,在每個觸發(fā)周期內(nèi),所產(chǎn)生信號的變成頻率在不斷線性增加,可較明顯地看出產(chǎn)生的是線性調(diào)頻信號。
![]() |
---|
圖6為實際調(diào)試過程中產(chǎn)生的一個脈寬為7μs,中頻為7.5MHz,調(diào)頻帶寬為5MHz的線性調(diào)頻脈沖信號在示波器上的截圖。從圖中可以看出,本系統(tǒng)所產(chǎn)生的線性調(diào)頻信號取得了較好的效果,能夠滿足實際工程中的應(yīng)用,在雷達系統(tǒng)中有較好的應(yīng)用前景。
本文原理以及基本系統(tǒng)亦可用于構(gòu)成產(chǎn)生相位編碼脈沖信號等其他形式的復(fù)雜雷達信號形式,具有較大的可擴展性。
以下內(nèi)容含腳本,或可能導(dǎo)致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內(nèi)容。您可以先檢查過代碼沒問題,或修改之后再運行. |
密碼清除:按下此鍵可清除前面所有的輸入值,清除成為“- - - -”。
數(shù)字位退格:按下此鍵可清除最低的數(shù)字位,并使各位向右移。
密碼設(shè)定:按下此鍵時會將目前的數(shù)字設(shè)定成新的密碼。
激活電鎖:按下此鍵可將密碼鎖上鎖。
解除電鎖:按下此鍵會檢查輸入的密碼是否正確,密碼正確即開鎖,如果密碼錯誤次數(shù)超過三次,系統(tǒng)將進入鎖定狀態(tài)。
萬能密碼:為了怕使用者忘記密碼,系統(tǒng)維護者可考慮設(shè)計一個萬用密碼(8421),不論原先輸入的密碼是什么,只要輸入萬用密碼即可開鎖。
②語音部分功能如下:
錄音:能根據(jù)所需的內(nèi)容實現(xiàn)語音錄制,為播放準(zhǔn)備。
放音:根據(jù)系統(tǒng)所處的不同時段以及不同的按鍵值播放不同的語音提示,以方便使用者操作。
報警:在密碼輸入錯誤時,發(fā)出報警音。
硬件設(shè)計
根據(jù)整個系統(tǒng)的技術(shù)要求,選擇硬件電路的設(shè)計方案,整個系統(tǒng)原理如圖1所示。
根據(jù)整個電路的結(jié)構(gòu)可分為幾個功能模塊:顯示模塊、電子鎖狀態(tài)指示燈(LED綠:密碼正確開鎖,LED紅:進入死鎖狀態(tài),LED黃:密碼錯誤)、鍵盤模塊、語音模塊等。下面分別對各個功能模塊進行詳細的介紹。
顯示模塊
本設(shè)計主要是設(shè)計一個四位的語音密碼鎖,因此選擇了四位共陰數(shù)碼管,對輸入數(shù)字與系統(tǒng)狀態(tài)進行顯示,其接口如圖2所示。
鍵盤模塊如圖3所示。以上采用的是4×4矩陣式鍵盤,可劃分為:數(shù)字鍵與功能鍵。其中,功能鍵分為:輸入、退格、清除、確定、密碼設(shè)定、上鎖。
語音模塊如圖4所示。
根據(jù)所需的內(nèi)容由柱式話筒MIC實現(xiàn)語音錄制,同時也可以由ISD2560芯片的11引腳AUX IN 通過計算機的聲卡輸出端進行語音錄制(效果差不多)。在整個系統(tǒng)中由主芯片對ISD2560芯片進行控制,以實現(xiàn)不同時段以及不同按鍵值播放不同的語音提示。
軟件設(shè)計
本設(shè)計中,采用自頂向下的層次化結(jié)構(gòu)設(shè)計方法,把整個系統(tǒng)劃分為幾個子模塊,最后完成頂層電路的設(shè)計。子模塊可分為:時鐘模塊、顯示子模塊、鍵盤子模塊、語音子模塊。當(dāng)各個功能子模塊設(shè)計完畢,頂層模塊的設(shè)計就變得簡單了,就是將各個子模塊連接起來,其電路模型如圖5所示。
結(jié)語
本設(shè)計中采用了ALTERA公司的 EP1C3T144芯片進行設(shè)計,實際測試表明系統(tǒng)的各項設(shè)計要求均得到滿足并且系統(tǒng)工作良好,該設(shè)計采用了SOPC技術(shù)和FPGA,幾乎將整個系統(tǒng)下載于同一芯片中,實現(xiàn)了所謂的片上系統(tǒng),可以極大減少其它分立元件或其它芯片的使用,有效地縮小了線路板面積,增加了系統(tǒng)的可靠性,大大縮短了系統(tǒng)開發(fā)的周期。克服了傳統(tǒng)電子密碼鎖可靠性差、價格高的缺點,提高了系統(tǒng)的性價比。由于采用VHDL語言進行層次化設(shè)計,用軟件實現(xiàn)硬件電路,具有良好的可移植性,可隨時在線更改邏輯設(shè)計及有關(guān)參數(shù),充分體現(xiàn)現(xiàn)場可編程器件的優(yōu)越性。
傳統(tǒng)上,工程師需要擁有硬件設(shè)計工具和VHDL等程式語言的龐大知識,才能設(shè)計FPGA的功能。.CompactRIO中的FPGA使用National Instruments LabVIEW圖形化開發(fā)工具來設(shè)計程式,因此工程師可以用很短的時間,自行訂定并重設(shè)CompactRIO中的FPGA的組態(tài)。當(dāng)系統(tǒng)功能需要改變時,開發(fā)人員只需將新的NI LabVIEW程式下載到FPGA,即可改變CompactRIO的特性。
FPGA運用于載具內(nèi)I/O的彈性及效能
CompactRIO提供廣泛的I/O模組,用于連接至任何載具內(nèi)感測器、致動器,以及網(wǎng)路。工程師可以完全自行設(shè)定每一項應(yīng)用的I/O時間、同步作業(yè)、處理,以及控制速率。
I/O 感測器和信號類型 模組 通道 特殊功能
溫度 熱電偶 NI 9211 4 24位元解析度,15 S/s
RTD NI 9217 4 24位元解析度,100 S/s
聲音和震動 IEPE感測器(加速計/麥克風(fēng)) NI 9233 4 24位元解析度,每個通道50 kS/s,同步, IEPE調(diào)節(jié),反失真
張力 橋接式感測器(應(yīng)力規(guī),壓力傳感器) NI 9237 4 24位元解析度,每個通道50 kS/s,同步,全/半橋(full-/half-bridge)
電壓 ±200 mV至±10 V NI 9205 32 16位元解析度,250 kS/s
±60 V NI 9221 8 12位元解析度,800 kS/s
燃料電池(Fuel cell) ±200 mV至±10 V NI 9206 32 16位元解析度,250 kS/s, 600 V DC CAT I 隔離
CAN通訊 雙埠高速CAN介面 NI 9583 2 雙埠高速CAN模組
表一:CompactRIO的載具內(nèi)I/O
取樣速率的彈性
由于FPGA直接連接至每一個I/O模組,因此工程師可以設(shè)定CompactRIO中每一個模組的取樣速率。這項功能為系統(tǒng)提供無與倫比的時間彈性。在一部CompactRIO系統(tǒng)中,工程師可以用10 S/s的速度擷取溫度量測,同時以50 kS/s的速度監(jiān)督震動量測。工程師也可以直接在FPGA上進行資料取捨,在同一個I/O模組中設(shè)定不同的通道,采用不同的速率。
I/O同步化
FPGA技術(shù)應(yīng)用于載具內(nèi)資料擷取及測試方面的優(yōu)點之一,就是能夠在任何I/O模組之間獲得決定性的硬體同步化。舉例來說,NI 9853 CAN介面模組和任何模擬或數(shù)字輸入模組都可以執(zhí)行讀取動作,以獲得毫微秒(nanosecond)解析度的同步測量功能。運用這種同步化功能,測試工程師可以從一部特定的CAN設(shè)備(例如電子控制元件ECU或致動器)讀取數(shù)值,再將數(shù)值和來自同步執(zhí)行的模擬或數(shù)字輸入埠的資料作比較。
40 MHz的決策
對于快速建立原型之類的控制應(yīng)用而言,F(xiàn)PGA客制硬件的效能會以極快的速度進行密閉迴圈控制。只要使用任一種I/O模組,工程師就可以設(shè)定CompactRIO,使它對輸入的CAN、模擬或數(shù)字資料進行反應(yīng),決定速度可以高達40 MHz。過去這一類的應(yīng)用需要使用高價的客制硬件,才能獲得這樣的效能。
「過去我們至少要花兩年的人力和五十萬元,才能使用自行設(shè)計的硬體開發(fā)出類似的ECU原型建立系統(tǒng)。就這個專案而言,設(shè)備的成本(包括機車和CompactRIO)是一萬五千元。此外,我們大約花了三個月的人力在這項專案上。CompactRIO和LabVIEW Real-Time提供我們需要的穩(wěn)定性和精確計時資源,而且系統(tǒng)有足夠的堅固性,可以承受操作環(huán)境的高溫和高震動。」
–Drivven, Inc.總裁Carroll G. Dase
感測器層級的信號處理及分析
CompactRIO中的FPGA就像一個平行處理引擎,因此工程師可以對任何感測器信號執(zhí)行高級信號處理和分析。舉例來說,解譯轉(zhuǎn)速計信號通常需要大量的處理器運算能力。工程師可以設(shè)計FPGA,讓它在硬件中解譯多種感測器信號,允許網(wǎng)路上的CPU去執(zhí)行其它的處理作業(yè)。此外,工程師也可以使用LabVIEW數(shù)字濾波器設(shè)計工具組(Digital Filter Design Toolkit),輕松地在FPGA硬件中使用高級數(shù)字濾波器。
獨立操作及網(wǎng)路化操作
CompactRIO控制器內(nèi)含一顆嵌入式即時處理器,用于智慧型獨立運作;包含乙太網(wǎng)路及序列埠,可以連接至主電腦和週邊;并且使用LabVIEW Real-Time軟體進行決定控制、資料記錄,以及分析。此外,你可以將乙太網(wǎng)路埠與內(nèi)附的網(wǎng)頁及檔案伺服器結(jié)合,這樣操作者就可以輕易地取用在控制器上執(zhí)行的嵌入式程式。由于它具備兩個9至35 V(操作時為6至35 V)電源供應(yīng)輸入,因此工程師可以直接用載具電瓶提供CompactRIO電力。控制器內(nèi)含最多512 MB的非永久存儲器,用于載具內(nèi)資料記錄之用。
圖二:CompactRIO執(zhí)行獨立或網(wǎng)路化操作,供載具內(nèi)應(yīng)用。
輕巧而堅固的封裝,適用任何載具內(nèi)環(huán)境
CompactRIO的機械設(shè)計創(chuàng)造出一款能夠承受任何嚴(yán)苛的載具內(nèi)測試環(huán)境(例如亞利桑那州測試場的干熱天候)的系統(tǒng)。CompactRIO保持輕巧的體積、低電力消耗,以及-40至70 oC的作業(yè)溫度范圍,并通過多種工業(yè)認證和規(guī)章。四個插槽的可重設(shè)組態(tài)嵌入式系統(tǒng)的體積是179.6 x 88.1 x 88.1公釐(7.07 x 3.47 x 3.47 吋),重量只有1.58公斤(3.47磅)。八個插槽的系統(tǒng)加上32個通道的I/O模組,最多可以在一部系統(tǒng)中提供256個I/O通道。此平臺最多可承受50g的撞擊,最高2,300 Vrms 隔離(承受力),而且具備國際性的安全性、EMC,以及環(huán)境認證。
「CompactRIO平臺的輕巧體積和堅固性使它成為載具內(nèi)測試系統(tǒng)的理想選擇,能夠在我們的測試過程的嚴(yán)苛環(huán)境中生存下來。」
–PACCAR系統(tǒng)工程師 Andrew Leslie
建立客制的載具內(nèi)I/O
運用CompactRIO系統(tǒng)的開放性,工程師可以迅速開發(fā)客制模組,以滿足特殊的載具內(nèi)I/O需求。CompactRIO模組開發(fā)工具組提供授權(quán)許可、設(shè)計指南,以及LabVIEW FPGA軟體工具的存取能力,以建立客制模組。協(xié)力廠商推出載具內(nèi)擷取及控制模組,為CompactRIO加入以下功能:
o GPS(全球定位系統(tǒng))監(jiān)督
o GPRS(通用封包廣播服務(wù)),供無線通信使用
o GSM(移動通信全球系統(tǒng)),供無線資料交換使用
o LIN(區(qū)域性連接網(wǎng)路)通信
o ARINC-429和MIL-1553航空協(xié)定,供飛行間測試
o 客制直流傳動(power-train)模組
「LabVIEW和可重設(shè)組態(tài)I/O FPGA技術(shù)使我們得以迅速開發(fā)Gxxx行動模組。最后完成的系統(tǒng)所提供的可靠性,若是沒有CompactRIO技術(shù),是不可能達成的。現(xiàn)在客戶可以輕松地建立遠端操作及監(jiān)督的移動系統(tǒng),具備無線通信、計時及全球定位功能。」
- Wolfram Koerver, CEO, S.E.A. Datentechnik GmbH
利用嵌入式FPGA以及通用的程式設(shè)計環(huán)境,工程師可以使用CompactRIO和LabVIEW來建立任何載具內(nèi)測試、控制及設(shè)計應(yīng)用程式。FPGA的高速及同步化功能,結(jié)合堅固的外形及廣泛的I/O模組,使CompactRIO成為載具內(nèi)應(yīng)用的理想平臺。
表4.1 波形圖中數(shù)據(jù)與實際數(shù)據(jù)對照表
小數(shù)倍頻率偏移和采樣鐘頻率偏移模塊是在整偏校完之后才有效,此時的小數(shù)倍頻率偏移是經(jīng)過時域粗偏估計校正后的剩余部分。表4.1列出波形中的估值與實際數(shù)據(jù)的對應(yīng)關(guān)系。從表中的數(shù)字對應(yīng)關(guān)系可以看出,電路中估計的小數(shù)倍頻偏與實際頻偏的差在0.1%以內(nèi)。采樣鐘偏移估計值與實際偏移誤差為1ppm左右,這已滿足了采樣鐘的粗調(diào)精度;相位輸出為前后符號的小數(shù)倍偏頻所引起的相位旋轉(zhuǎn)。由此單元電路,可以準(zhǔn)確地估計出小數(shù)倍頻偏和采樣鐘偏移及其相位。
細定時同步估計的電路仿真
圖中的data_re_in[15..0]和data_im_in[15..0]表示經(jīng)公共相位校正后的復(fù)數(shù)據(jù)實虛部;syn_in是輸入有用數(shù)據(jù)的起始位置脈沖;sym_type[1..0]是前端輸入的符號類型;taok[22..0]和td[9..0]分別為估計的符號定時偏移和其整數(shù)部分;syn_tao是taok[22..0]的有效數(shù)據(jù)起始脈沖信號。
圖4.3 符號定時偏移估計單元的電路波形圖
圖4.3中共有9個符號。由于本算法利用了4個符號的散布導(dǎo)頻,故圖4.3中,從第四個符號的結(jié)束處開始,在syn_tao后的taok[22..0]才是當(dāng)前符號的定時偏移估計值。波形中的估值與實際數(shù)據(jù)的對應(yīng)關(guān)系如表4.2所示。
表4.2 波形圖中數(shù)據(jù)與實際數(shù)據(jù)對照表
表4.2中的定時實際偏移為-112,而不是仿真條件中的-100,這是由于在瑞利信道的仿真模型中,符號定時同步頭位置(重心位置)是在第一條徑之后12個采樣點出現(xiàn)的。由表中數(shù)據(jù)對應(yīng)關(guān)系可知,符號定時偏移估計單元可準(zhǔn)確地估出符號定時偏移的整數(shù)部分。由于采樣鐘偏移、算法估計誤差及電路運算誤差的影響,其小數(shù)部分不為零,這與電路的仿真結(jié)果一致。
改進前后占用硬件資源比較
表4.3給出了改進前后,頻域同步所占用的硬件資源比較,其中ALUTS、Registers、Memorybits、DSPblock9-bitelements分別為自適應(yīng)查找表、寄存器、存儲器和9字節(jié)DSP處理塊。通過比較可以發(fā)現(xiàn),改進后的方案可以節(jié)省大量的硬件資源。
表4.3 改進前后的硬件資源對比
結(jié)束語
頻率偏移估計可以分為整數(shù)倍頻偏估計單元、小數(shù)倍頻偏、采樣鐘偏移估計單元和符號定時偏移估計單元。本文主要介紹各部分的算法方案及電路實現(xiàn)時所用的FPGA元件的基本結(jié)構(gòu)、設(shè)計思路。最后通過對電路的仿真波形可以看出,這些頻域同步算法和FPGA電路能夠滿足多載波傳輸系統(tǒng)的同步要求。
關(guān)鍵詞:正交頻分復(fù)用(OFDM);正數(shù)倍頻率偏移;小數(shù)倍頻率偏移;采樣鐘頻率偏移;定時偏移
同步部分概述
正交頻分復(fù)用(OFDM)系統(tǒng)的一個重要問題是對頻率偏移非常敏感,很小的頻率偏移都會造成系統(tǒng)性能的嚴(yán)重下降。另外收發(fā)端采樣鐘不匹配,也會導(dǎo)致有用數(shù)據(jù)信號相位旋轉(zhuǎn)和幅度衰減,破壞了OFDM子載波間的正交性,降低系統(tǒng)性能。因此在OFDM系統(tǒng)中,頻率偏移和采樣鐘偏移估計的準(zhǔn)確度至關(guān)重要。
OFDM接收系統(tǒng)的同步部分主要包括以下幾方面:頻率同步、采樣鐘同步和符號定時同步。載波頻率偏移和采樣鐘頻率偏移的存在導(dǎo)致了載波間干擾(ICI)和采樣點增減現(xiàn)象,這就需要頻率同步和采樣鐘同步。同時在解調(diào)過程中,接收機是在時域上的任意點開始接收數(shù)據(jù)的,而OFDM是基于符號的,這就需要檢測到符號的起始位置,否則會因為符號的起始位置的不合理,而導(dǎo)致符號間的干擾(ISI),這就是符號定時同步。
頻域同步估計方法
整數(shù)倍頻率偏移估計算法
頻率偏移△f0分成兩部分:整數(shù)倍和小數(shù)倍子載波間隔頻偏。由于在時域上已經(jīng)對小數(shù)倍頻偏有一個粗略估計和校正,因此頻域內(nèi)是利用內(nèi)插導(dǎo)頻信息對整數(shù)倍頻偏和剩余小數(shù)倍頻偏進行估計校正的。
(1)
式(1)是整數(shù)倍頻率偏移估計算法表達式,它是利用連續(xù)導(dǎo)頻在發(fā)射端為已知固定相位的特性,使用一個長為S的滑動窗作為頻域上一個OFDM符號有效載波起始位置的估計范圍,以窗內(nèi)的每一個數(shù)據(jù)作為OFDM符號有效載波的的起始位置,對前后兩個符號在假設(shè)的連續(xù)導(dǎo)頻位置上的復(fù)數(shù)據(jù)做相關(guān)求和,這樣就得到了S個相關(guān)值,其中最大值所對應(yīng)的s即為頻域上一個OFDM符號有效載波起始位置的估計值,也即為整數(shù)倍頻偏估計值。
其中L是連續(xù)導(dǎo)頻個數(shù);ak是一個符號內(nèi)第k個連續(xù)導(dǎo)頻的序號;Yl,ak是FFT輸出的第l個符號的假設(shè)第k個連續(xù)導(dǎo)頻位置上的復(fù)數(shù)值;S是整數(shù)倍頻偏的估計范圍,也即為滑動窗長,s是窗口移動值,s∈S;是S路相關(guān)和的最大值,其對應(yīng)的s即為整數(shù)倍頻偏的估計值。
小數(shù)倍頻率偏移和采樣鐘頻率偏移估計算法
在OFDM系統(tǒng)的接收端,實際的第m個子載波的實際解調(diào)頻率為f'm=f'0+mF',這里,f'0為本地解調(diào)載波頻率,F(xiàn))=F'0N,N為子載波個數(shù),F(xiàn)'0為接收機壓控晶振輸出的采樣頻率。由此可以看出,在第m個子載波上,載波頻偏和采樣鐘偏移的聯(lián)合效應(yīng)是大小等于△fm的子載波頻偏,這里△fm=△f0+m•△F0N,△f0=f'0-f0,△F0=F'0-F0,f0和F0分別為發(fā)射端的中心載波頻率和采用頻率。當(dāng)將整偏校掉后,這里的△f0僅為小數(shù)倍的子載波間隔。
設(shè)pi為導(dǎo)頻點位置,pi∈P,P為導(dǎo)頻點位置集合;i=0,1,…,K-1,K是P的基數(shù);△fpi為第pi個導(dǎo)頻點上相關(guān)結(jié)果的頻率部分,這個值以下用表示為估計結(jié)果。定義
,同時考慮到在第pi個子載波上的估計誤差ei,則:
(2)
其中,△fpi為在第pi個導(dǎo)頻點上的頻率偏移和采樣鐘偏移之和,現(xiàn)令為所需估計的向量參數(shù),式(2)就可以寫作:
(3)
其中,
由于估計是基于的,因此將向量V稱為觀察向量,方程式(3)稱為觀察方程。線性最小平方估計就是在觀察向量給定的條件下,根據(jù)觀察方程估計向量
。根據(jù)最大似然估計原理,使得向量V的線性函數(shù)
取得最小值時,得出
的估計值
。對式
求導(dǎo)并使之為零,可得:
(4)
公式(3)是在先得出,i=0,...,K-1的基礎(chǔ)上求得的,而
可以通過在導(dǎo)頻位置對前后兩個OFDM符號做相關(guān)運算來求。
頻域符號定時偏移估計算法
時域定時的不準(zhǔn)確就要求頻域內(nèi)進一步對OFDM符號定時進行校正。由于時域內(nèi)保護間隔是數(shù)據(jù)信號最后L個采樣點的完全復(fù)制,所以由FFT循環(huán)移位定理可知:符號定時的偏移所引起的子載波上相位旋轉(zhuǎn)和子載波序號k成正比。由于導(dǎo)頻信號插入位置已知,且其具有相位已知特性,這使得我們可以利用符號內(nèi)插導(dǎo)頻載波間相位變化來做細符號定時同步,并與粗符號定時同步結(jié)合起來,得到一個準(zhǔn)確的符號起始位置。
設(shè)是第j個OFDM符號定時偏移在相鄰導(dǎo)頻點上所引起的相位偏移之差,
為第j個OFDM符號所估計出來的細定時。則
和
可表示為:
(5)
(6)
其中,L為散布導(dǎo)頻個數(shù);N為一個OFDM符號中有效子載波的個數(shù);Xj,k是第j個符號的第k個散布導(dǎo)頻復(fù)值;△k為兩個相鄰的子載波序號的差值。
頻域同步部分的FPGA電路實現(xiàn)模塊
頻域同步電路模塊各單元的工作原理如圖3.1所示。這里使用Altera公司生產(chǎn)的StratixⅡEP2S60的FPGA芯片來實現(xiàn)。
圖3.1 FFT后同步塊方框圖
FFT模塊輸出復(fù)數(shù)據(jù)經(jīng)過一個OFDM符號的FIFO模塊延遲后,和當(dāng)前的OFDM復(fù)數(shù)據(jù)進行相關(guān),以實現(xiàn)在整數(shù)倍頻偏估計和小數(shù)倍頻率偏移算法中所需要的前后兩個符號的對應(yīng)導(dǎo)頻相關(guān)運算,其相關(guān)結(jié)果為32位的復(fù)數(shù)據(jù)。
整數(shù)倍頻率偏移估計模塊
將相關(guān)單元輸出的復(fù)數(shù)據(jù)的實虛部符號位送到整數(shù)倍頻偏估計單元中進行整數(shù)倍頻偏估計。為了節(jié)省芯片資源,這里我們將估計整數(shù)倍頻偏的算法加以簡化,用相關(guān)后的復(fù)數(shù)據(jù)在導(dǎo)頻位置上的實虛部的符號位來估計整數(shù)倍頻偏值。下面的仿真的電路波形圖證明這樣實現(xiàn)整偏估計算法是可行的。它的輸入為相關(guān)單元輸出的復(fù)數(shù)據(jù)實虛部的符號位和此復(fù)數(shù)據(jù)的載波同步位置,輸出為整數(shù)倍頻偏估計值。
小數(shù)倍頻率偏移和采樣鐘頻率偏移模塊
首先對相關(guān)單元模塊輸出的復(fù)數(shù)據(jù)的實虛部進行歸一化,然后求歸一化單元輸出的16位復(fù)數(shù)據(jù)的相角,同時用RAM的讀地址和讀使能信號分別控制讀取存有矢量A和矢量B數(shù)據(jù)的ROM表中的數(shù)據(jù)。其中矢量A和B分別為線性最小平方估計算法中矩陣AT的第一行和第二行矢量,用此相角分別和讀出的矢量A和矢量B在一個符號內(nèi)進行相乘累加,再根據(jù)保護間隔的不同,乘以相應(yīng)的系數(shù),便可分別得到小數(shù)倍頻偏和采樣鐘頻率偏移的估計值。
細定時估計模塊
考慮到定時估計范圍的問題,該模塊利用四個符號的散布導(dǎo)頻進行定時估計。將當(dāng)前符號的散布導(dǎo)頻值及從RAM中讀出的前三個符號的散布導(dǎo)頻值按一定順序排列,并做相鄰導(dǎo)頻相關(guān)。將相關(guān)后的復(fù)數(shù)據(jù)的實虛部分別取絕對值累加,并將二者的累加和進行歸一化處理后進行查表,從而得出復(fù)數(shù)的相位值。這個相位即為符號定時偏移所引起的旋轉(zhuǎn)相位。再對此相位做如公式(6)的運算,這樣就得到了符號定時偏移的整數(shù)和小數(shù)部分的和,然后將其送到求整函數(shù)中,從而得到符號定時偏移的整數(shù)部分。將這個值經(jīng)過并/串變換后送到前端時域同步部分,去調(diào)整FFT窗位。
電路仿真
其仿真條件為:瑞利信道,SNR為15dB,載波頻偏設(shè)為-14.9倍子載波間隔(即整數(shù)倍頻偏值為-15,小數(shù)倍頻偏值為0.1倍子載波間隔),采樣鐘偏移為50ppm,保護間隔長為512,定時符號偏移為-100個采樣點。此電路工作頻率為10MHz。輸入的16位復(fù)數(shù)據(jù)由MATLAB仿真程序產(chǎn)生的。
整數(shù)倍頻率偏移電路仿真
由于電路波形中無法表示小數(shù),因此將各小數(shù)進行“擴展”,其表示皆為二進制數(shù)據(jù),以下同。在圖4.1中,out_re[31]和out_im[31]分別是前后兩個OFDM符號中對應(yīng)子載波相關(guān)結(jié)果的實虛部的符號位,int_freqoffset[5..0]和syn_int分別是整數(shù)倍頻偏估值和其有效起始位置脈沖。
圖4.1 整數(shù)倍頻偏估計部分的電路仿真波形圖
由于整數(shù)倍頻偏在每一符號的結(jié)束處才能估計出來,所以syn_int在每一個符號的結(jié)束處出現(xiàn),其后即為當(dāng)前符號的整數(shù)倍頻偏值。由于本算法利用了4個符號的連續(xù)導(dǎo)頻,故圖4.1中,從第四個syn_int后的int_freqoffset[5..0]才是當(dāng)前符號的整數(shù)倍頻偏估計值。由仿真波形可看出,估出的整數(shù)倍頻偏與仿真數(shù)據(jù)中所假設(shè)的一致。故用此算法的簡化形式可以準(zhǔn)確地估計出整數(shù)倍頻偏值。
小數(shù)倍頻率偏移及采樣鐘頻率偏移估計的電路仿真
sernum[1..0]表示前級輸入的符號類型;syn為輸入復(fù)數(shù)據(jù)中的有用數(shù)據(jù)起始脈沖;rein[15..0]和imin[15..0]分別為FIFO模塊輸出復(fù)數(shù)據(jù)的實虛部;syn_offset為小數(shù)倍頻偏和采樣鐘偏移估計結(jié)果的起始位置;fri[14..0]和qdelt[14..0]為小數(shù)倍頻偏估計值和采樣鐘偏移估計值,它們由1位符號位和14位小數(shù)位組成。這里的小數(shù)位數(shù)是根據(jù)其估計范圍和估計精度要求來確定的。
在圖4.2中,小數(shù)倍頻率偏移和采樣鐘頻率偏移估計模塊使用連續(xù)導(dǎo)頻進行估計。在每個符號末,syn_offset高電平有效時,fri[14..0]和qdelt[14..0]才是當(dāng)前符號的小數(shù)倍頻率偏移和采樣鐘頻率偏移估計值。波形中的估值與實際數(shù)據(jù)的對應(yīng)關(guān)系如表4.1所示。
圖4.2 小數(shù)倍頻偏和采樣鐘偏移估計單元的電路仿真波形圖
Microsemi收購Actel與模擬企業(yè)產(chǎn)生協(xié)同效應(yīng)
優(yōu)勢:兩者的整合除了能加強在軍工、航天領(lǐng)域的優(yōu)勢外,還將共同拓展工控、消費電子、汽車等市場,旨在改變兩者在不同行業(yè)的不利競爭局面。
待觀察方面:被收購后,Actel的反熔絲產(chǎn)品和SmartFusion肯定還是重點,而一些不賺錢、低利潤的產(chǎn)品線將可能被收縮。
今年10月,F(xiàn)PGA行業(yè)排名第四的Actel公司被在軍工半導(dǎo)體和高性能模擬/混合信號半導(dǎo)體領(lǐng)域表現(xiàn)突出的Microsemi公司以4.3億美元左右的價格收購了,這是近年來發(fā)生在FPGA行業(yè)唯一的一次并購案。近些年,Actel雖然創(chuàng)新步伐很快,但發(fā)展速度不能領(lǐng)先于競爭對手,這在寡頭壟斷的FPGA市場是非常不利的。綜合看來,這次整合將產(chǎn)生兩大協(xié)同效應(yīng):
一方面,將加強軍工、航天領(lǐng)域業(yè)務(wù)。Microsemi是一家在軍工、航天和高可靠性醫(yī)療等非常專業(yè)的領(lǐng)域中較為出名的公司,主要產(chǎn)品包括針對上述專業(yè)領(lǐng)域的保護器件、電源管理、RF/微波傳輸和功率調(diào)節(jié)器產(chǎn)品。Actel公司的反熔絲FPGA因具有抗輻射、穩(wěn)定性好等特點,是航空航天領(lǐng)域的第一大FPGA企業(yè),它在該領(lǐng)域占有80%的市場。據(jù)稱兩者在軍工和航天領(lǐng)域的客戶有80%的重疊率,而且今年Microsemi還收購了Arxan Defense Systems軟件公司、VT Silicon和White Electronic公司,這些企業(yè)的業(yè)務(wù)都集中在軍工領(lǐng)域,整合將加強其在這一領(lǐng)域的優(yōu)勢。
另一方面,Microsemi產(chǎn)品還包括在民用領(lǐng)域的一些模擬/混合信號產(chǎn)品,如針對汽車GPS顯示屏、筆記本、LCD電視、監(jiān)視器、機頂盒市場的高性能模擬/混合信號產(chǎn)品,其中包括背光驅(qū)動、功率管理等產(chǎn)品與Actel的可編程SoC(PSoC)產(chǎn)品目標(biāo)市場相互契合,兩者可以形成更完整的方案,去拓展工控、消費電子、醫(yī)療等多個領(lǐng)域。其中,Actel的可編程SoC和其他FPGA接口可以作為方案中的主控部分或“黏合”部分。
Actel在FPGA行業(yè)走了一條差異化道路,其最早的FPGA產(chǎn)品主要針對軍工、航天領(lǐng)域。1999年,它進軍基于Flash的FPGA領(lǐng)域,而其他FPGA企業(yè)的產(chǎn)品則基于SRAM。Flash FPGA在功耗、安全性、可靠性和成本上更具一定優(yōu)勢,其Flash FPGA包括ProASIC、IGLOO、Fusion和SmartFusion系列產(chǎn)品。其中,值得關(guān)注的是SmartFusion產(chǎn)品,這是FPGA業(yè)內(nèi)獨有的集成了FPGA、ARM硬核和可編程模擬電路的可編程SoC(PSoC)產(chǎn)品,目標(biāo)市場是工業(yè)應(yīng)用如馬達控制等,預(yù)計這個產(chǎn)品是與Microsemi模擬技術(shù)重點融合的產(chǎn)品。Microsemi在半導(dǎo)體業(yè)的名氣并不算大,年銷售額僅為四五億美元。雖然Microsemi在全球有約1600名員工,但在中國沒有投入太多力量,因此合并后,其在中國的業(yè)務(wù)最有可能仍來自Actel。
兩者的結(jié)合體現(xiàn)了在高度壟斷的FPGA行業(yè)中,與模擬資源結(jié)合也不失為一條新出路。
Altera與ARM、MIPS、英特爾合作市場接受度不一
優(yōu)勢:提供了業(yè)界最廣泛的嵌入式處理器選擇,并將提供統(tǒng)一的集成環(huán)境。
待觀察方面:ARM+FPGA的接受度將取決于該系列產(chǎn)品的成本,MIPS32在中國市場的接受度可能較低,英特爾Atom E600將在工控領(lǐng)域有較好的發(fā)展。
Altera近日發(fā)布了其嵌入式計劃,進一步展示了FPGA與微控制器行業(yè)緊密融合的趨勢。該計劃稱,到2010年第四季度末,Altera將向業(yè)界提供Qsys系統(tǒng)集成工具,客戶能夠?qū)⒍喾N嵌入式CPU和FPGA進行系統(tǒng)級集成,這些嵌入式CPU包括Altera NiosII軟核、ARM Cortex-M1軟核、MIPS32軟核、ARM Cortex-A9硬核。Qsys系統(tǒng)集成工具是Altera Quartus II開發(fā)軟件的一部分。
具體來說,Altera將在2011年下半年推出的28nm FPGA的一個系列中集成ARM Cortex-A9 MPCore硬核,并會在2011年上半年推出MIPS32處理器架構(gòu)的MP32軟核處理器。此前Altera已提供Nios處理器,并對飛思卡爾ColdFire軟核、ARM Cortex-M1軟核進行支持。同時,英特爾在2010秋季IDF上發(fā)布的凌動E600處理器封裝中集成了Altera的FPGA。
此次新發(fā)布嵌入式處理器的市場接受度不一,其中針對ARM Cortex-A9 MPCore硬核,中國客戶表現(xiàn)出極大的興趣。因為目前市場上ARM+FPGA的應(yīng)用較多,而且懂得ARM應(yīng)用的客戶比FPGA的客戶要多,ARM具備成熟開發(fā)環(huán)境,有大量現(xiàn)成的可移植代碼。如果新產(chǎn)品成本控制得好,例如比單片F(xiàn)PGA加ARM要便宜,會對FPGA市場帶來一定的沖擊。其應(yīng)用將主要是通信、工業(yè)和汽車領(lǐng)域。
針對MP32,中國客戶的接受度會非常低。因為MP32與NiosII軟核性能差不多,但比NiosII占有的邏輯資源更多,而且授權(quán)費高達3萬美元,因此中國客戶選用的可能性較小。Altera推出此內(nèi)核可能主要是為了配合一些國外客戶采用此內(nèi)核來支持一些操作系統(tǒng)。
針對在同一封裝中集成了處理器和FPGA的英特爾Atom E600,它的主要應(yīng)用是工控領(lǐng)域,將替代傳統(tǒng)X86,應(yīng)該有較好的前景。
Altera推出嵌入式計劃的背景是認為有三大發(fā)展趨勢正在推動CPU+FPGA的應(yīng)用:一是系統(tǒng)處理并行化趨勢。在并行化的兩類技術(shù)中,硬件協(xié)處理器效果最好,另一個是多核技術(shù),但是沒有任何方式能夠提前知道哪些軟件功能需要通過硬加速的方式來實現(xiàn),所以FPGA是最理想的加速器實現(xiàn)方案,因為它是現(xiàn)場可編程的。二是在很多當(dāng)今的嵌入式應(yīng)用中,F(xiàn)PGA與CPU已經(jīng)進行了更高級別的集成,獲得了成本的削減。三是業(yè)界很多芯片廠商已經(jīng)在采用處理器+FPGA的方式。而FPGA作為協(xié)處理器,要達到最理想的性能和效率就需要與CPU之間做緊密的耦合來減少延遲。所以,CPU+FPGA這一技術(shù)需要更緊密的結(jié)合方式。
一般在使用DS18B20通信時需
|
利用FPGA實現(xiàn)與DS18B20通信不存在被迫關(guān)閉中斷的情況,可以滿足對實時性要求嚴(yán)格的應(yīng)用要求。
2 ProASICplus系列FPGA簡介
ProASICplus系列FPGA是ACTEL公司推出的基于Flash開關(guān)編程技術(shù)的現(xiàn)場可編程門陣列,包括從7.5萬門的APA075型到100萬門的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重復(fù)編程等特點。
因為ProASICplus系列FPGA基于Flash技術(shù),利用Flash開關(guān)保存內(nèi)部邏輯,因此不需要另外的器件。由于不需要上電配置過程,因此具備上電就立即工作的特點。不用配置器件,系統(tǒng)的保密性提高。
筆者在電力監(jiān)控的產(chǎn)品中利用APA150在整個系統(tǒng)中充當(dāng)協(xié)處理器,使主CPU從繁重的實時處理中解脫出來。
3 DS18B20簡介
3.1內(nèi)部結(jié)構(gòu)
DS18B20的64位序列號均不相同。
8位CRC生成器可以完成通信時的校驗。
暫存寄存器有9個字節(jié),包含溫度測量結(jié)果、溫度報警寄存器、CRC校驗碼等內(nèi)容。
3.2操作步驟
對DS18B20功能命令。
3.2.1初始化
FPGA要與DS18B20返回響應(yīng)脈沖。
3.2.2ROM命令
該步驟完成FPGA與總線上的某一具體DS18B20建立聯(lián)系。ROM命令有搜尋ROM(SEARCH ROM)、讀ROM(READ ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、報警查找等命令(ALARM SEARCH)。
這里,F(xiàn)PGA只連接1個DS18B20的48位ID號。
3.2.3 DS18B20功能命令
FPGA在該步驟中完成溫度轉(zhuǎn)換(CONVERTT)、寫暫存寄存器(WRITE SCRATCHPAD)、讀暫存寄存器(READ SCRATCHPAD)、拷貝暫存寄存器(COPYSCRATCHPAD)、裝載暫存器寄存器(RECALL E2)、讀供電模式命令(READ POWER SUPPLY)。
文中不用溫度報警功能,因此在本步驟中只需完成溫度轉(zhuǎn)換,然后通過讀暫存寄存器命令完成溫度轉(zhuǎn)化的結(jié)果。
3.3操作時序
2所示。從時序圖中可以看出,對DS18B20的操作時序要求比較嚴(yán)格。利用FPGA可以實現(xiàn)這些操作時序。
4 FPGA與DS18B20的通信
4.1 DS18B20的操作模塊
FPGA需要完成DS18B20溫度轉(zhuǎn)換、讀取溫度轉(zhuǎn)化結(jié)果。讀
取48位ID號和讀取溫度轉(zhuǎn)換結(jié)果過程中,F(xiàn)PGA還要實現(xiàn)CRC校驗碼的計算,保證通信數(shù)據(jù)的可靠性。
以上操作反復(fù)進行,可以用狀態(tài)機來實現(xiàn)。狀態(tài)機的各種狀態(tài)如下:
RESET1:對DS18B20進行第三次復(fù)位。
CMDCC2:
|
設(shè)計中采用Verilog語言建立DS18B20 PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。
從仿真波形可以看出,系統(tǒng)上電后的10ms左右,F(xiàn)PGA可以讀出DS18B20的48位ID值,這樣,主CPU在系統(tǒng)復(fù)位后很短的時間內(nèi)就可以讀取ID值,進行相應(yīng)的處理。
4.2 FPGA與CPU的接口
在FPGA中,要實現(xiàn)對DS18B20_PROC模塊的調(diào)用及建立與CPU之間的接口。
與CPU之間的接口通過建立若干寄存器實現(xiàn)。溫度測量值和48位ID可以用4個16位寄存器保存。CPU通過讀取這些寄存器可以獲得溫度測量數(shù)值和48位ID值。
CPU、FPGA及DS18B20的連接原理如圖4所示。
5 結(jié)束語
在系統(tǒng)中,F(xiàn)PGA可以分擔(dān)許多主處理器的工作,提高整體實時性,降低CPU處理的嚴(yán)格實時約束,從而降低CPU軟件處理的難度。同時,由于ACTEL公司的ProASICplus系列FPGA的保密特性,可以增強產(chǎn)品知識產(chǎn)權(quán)的保護。
本設(shè)計應(yīng)用在電力監(jiān)控產(chǎn)品中。測量出的裝置內(nèi)部溫度用于電量測量精度補償和報警,對保證產(chǎn)品測量精度和可靠運行具有重要意義。48位ID值用于產(chǎn)品的惟一編碼標(biāo)識和以太網(wǎng)MAC地址,便于產(chǎn)品生產(chǎn)、維護和管理
概覽
高端設(shè)計工具為少有甚是沒有硬件設(shè)計技術(shù)的工程師和科學(xué)家提供現(xiàn)場可編程門陣列(FPGA)。無論你使用圖形化設(shè)計程序,ANSI C語言還是VHDL語言,如此復(fù)雜的合成工藝會不禁讓人去想FPGA真實的運作情況。在這個芯片中的程序在這些可設(shè)置硅片間到底是如何工作的。本書會使非數(shù)字化設(shè)計人員明白FPGA(現(xiàn)場可編程門陣列)的基礎(chǔ)知識及其工作原理。此信息在使用高端設(shè)計工具時同樣十分有用,希望可以為理解這一特別技術(shù)提供一些線索。
FPGA-現(xiàn)場可編程門陣列
每一塊FPGA芯片都是由有限多個帶有可編程連接的預(yù)定義源組成來實現(xiàn)一種可重構(gòu)數(shù)字電路。
圖1.FPGA不同構(gòu)成
FPGA芯片說明書中,包含了可編程邏輯模塊的數(shù)量、固定功能邏輯模塊(如乘法器)的數(shù)目及存儲器資源(如嵌入式RAM)的大小。FPGA芯片中還有很多其它的部分,但是以上指標(biāo)通常是為特定應(yīng)用選擇和比較FPGA時,最重要的參考指標(biāo)。
在最底層,可配置邏輯模塊(如片或邏輯單元)有著兩種最基本的部件:觸發(fā)器和查找表(LUT)。這很重要,因為各種FPGA家族之所以各不相同,就是因為觸發(fā)器和查找表組合的方式不同。例如,Virtex-II 系列的FPGA ,它的片具有兩個查找表和兩個觸發(fā)器,而Virtex-5 FPGA的片具有4個查找表和4個觸發(fā)器。查找表本身的結(jié)構(gòu)也可能各不相同(4輸入或6輸入)。關(guān)于查找表工作原理的更多信息將在后面的章節(jié)中給出。
表1中列出了在NI LabVIEW FPGA硬件目標(biāo)中使用的FPGA的指標(biāo)。邏輯門的數(shù)量是一種將FPGA芯片與ASIC技術(shù)進行比較的傳統(tǒng)方法,但是它并不能真實地表述FPGA內(nèi)部的獨立單元的數(shù)量。這就是Xilinx公司沒有在新型Virtex-5系列中指定邏輯門數(shù)量的原因之一。
表1.不同系列FPGA源規(guī)格
為了更好地理解這些規(guī)格的意義,將編碼考慮為合成的數(shù)字電路模式。對任何一段合成代碼,或圖形化或文本形式,都有相應(yīng)的電路圖反映邏輯組件該如何連線。通過一段簡單布爾邏輯電路了解下相應(yīng)的示意圖。圖2表示的是傳遞5個布爾信號并且可圖形化計算所得的二進制值的功能組。
圖2.載入5個信號的簡單布爾邏輯
在通常情況下(LabVIEW SCTL—單周期定時環(huán)路外),圖2所示相應(yīng)電路圖同圖3所示相近。
圖3.為圖2中布爾邏輯的相應(yīng)電路圖
雖然很難明白,但是實際上這里創(chuàng)建了兩個并行分支的電路。最上面的5條黑線被反饋到第一個分支,它在每個布爾操作間添加了觸發(fā)器。最下面的5條黑線構(gòu)成了第二個邏輯鏈。其中一支路在每步操作之間增加了同步寄存器,另一條邏輯鏈?zhǔn)谴_保執(zhí)行數(shù)據(jù)流的。本電路圖正常工作時總共需要12個觸發(fā)器和12個查找表。上端分支和每個元件將在以后章節(jié)分析。
觸發(fā)器
圖4.觸發(fā)器符號
觸發(fā)器是二進制移位寄存器,用于同步邏輯以及保存時鐘(脈沖)周期內(nèi)的邏輯狀態(tài)。在每個時間(脈沖)邊沿,觸發(fā)器在輸入時鎖定1(真)或0(假)值并且保存此值直到下次時鐘(脈沖)邊沿。在正常情況下,LabVIEW FPGA在每次操作之間都設(shè)置一個觸發(fā)器,以保證有足夠的時間來執(zhí)行每步操作。對此律的例外只發(fā)生在SCTL結(jié)構(gòu)中寫代碼的情況。在這個特殊的環(huán)路結(jié)構(gòu)中,觸發(fā)器只放置在閉環(huán)迭代的始末段,并且由編程者考慮定時因素來決定如何放置。對SCTL內(nèi)代碼如何同步的更多內(nèi)容將在以后章節(jié)中討論。圖5表示的是圖3的上端分支,觸發(fā)器由紅色高亮表示。
圖5.繪制由紅色高亮表示出觸發(fā)器的電路圖
查找表
圖6.雙四輸入查找表
圖6所示示意圖中的其他邏輯電路通過使用少量查找表形式的隨機存取存儲器實現(xiàn)。我們可以簡單地假定FPGA中系統(tǒng)門的數(shù)量可參考與非門(NAND)以及或非門(NOR)的數(shù)量,但實際上,所有的組合邏輯(與門、或門、與非門、異或門等)都是通過查找表存儲器中的真值表來實現(xiàn)。真值表是輸出對應(yīng)于每個輸入值組合的預(yù)定義表(現(xiàn)在卡諾圖的重要性在你的頭腦中可能會慢慢淡化)。以下是對數(shù)字邏輯電路課程的快速回顧:比如,圖7是布爾邏輯與門操作過程。
這是對數(shù)字邏輯課程的快速回顧:
例如,圖7中顯示了布爾型AND操作。
圖7.布爾型AND操作
表2.布爾與門操作的真值表
你可以認為輸入值是所有輸出值的數(shù)字索引,如表3所示。
表3.布爾與門擦操作的真值查找表實現(xiàn)
Virtex-II和Spartan-3系列FPGA芯片有著4輸入查找表來實現(xiàn)真正的4輸入信號的16種組合。圖8就是一個四輸入電路實現(xiàn)的例子。
圖8.輸入布爾邏輯的四信號電路
表4所示為使用雙四輸入查找表實現(xiàn)的相應(yīng)的真值表。
表4.圖8中所示相應(yīng)真值表
Virtex-5系列的FPGA使用雙六輸入查找表,可以通過6個不同輸入信號的64種組合來實現(xiàn)真值表。因為觸發(fā)器之間的組合邏輯十分復(fù)雜,所以在LabVIEW FPGA中使用SCTL也越來越重要。下一節(jié)將講述SCTL如何優(yōu)化利用LabVIEW中的FPGA源。
SCTL
上幾節(jié)中使用的代碼例子假定代碼是設(shè)置在SCTL外部,并為保證執(zhí)行同步數(shù)據(jù)量也同步了附加電路。SCTL是LabVIEW FPGA中一個特殊結(jié)構(gòu),生成一個更為優(yōu)化的電路圖,以期望達到在一個時鐘(脈沖)周期內(nèi)執(zhí)行完所有邏輯電路分支。例如,若設(shè)置SCTL在40MHZ運行,則所有邏輯電路分支將在25ns內(nèi)執(zhí)行完畢。
如果在SCTL中設(shè)置前例中同樣的布爾邏輯電路(如圖9所示),則生成如圖10所示的相應(yīng)電路示意圖。
圖9.附有STCL的簡單布爾邏輯
圖10.圖9所示布爾邏輯相應(yīng)的電路圖
很明顯,這種實現(xiàn)方法簡單多了。在Virtex-II或Spartan-3系列FPGA中,觸發(fā)器間的邏輯需要至少2個4輸入查找表,如圖11所示。
圖11.圖10中電路圖的雙四輸入查找表實現(xiàn)
由于Virtex-5系列FPGA有著6輸入的查找表,用戶可以在一個查找表中實現(xiàn)相同數(shù)量的邏輯,如圖12所示。
圖12.圖10中雙六輸入查找表實
本例中使用的SCTL(如圖9所示)設(shè)置在40MHZ下運行,這意味著在任意觸發(fā)器之間邏輯電路必須在25ns內(nèi)完成執(zhí)行。電子在電路中傳播的速度決定了代碼執(zhí)行的最大速度。關(guān)鍵路線是有最長傳播延遲的邏輯電路分支,它決定了該部分電路中理論最大時鐘速率。Virtex-5 FPGA上的雙六輸入查找表不僅減少實現(xiàn)給定邏輯電路所需要的查找表總數(shù),而且減少電子通過邏輯電路的傳播延遲(時間)。Virtex-5系列FPGA中的6輸入查找表不僅可以減少實現(xiàn)特定邏輯而需要的查找表的數(shù)量,而且可以降低邏輯中電流的傳輸延時。這意味著,您可簡單地通過選擇一個基于Virtex-5的硬件指標(biāo)設(shè)置相同的SCTL,追求更快的時間速度。
請查看下方白皮書的對策列表,獲取更多Virtex-5 FPGA相關(guān)信息。
乘數(shù)器和DSP片
看起來簡單的兩數(shù)相乘運算在數(shù)字電路中實現(xiàn)起來是十分復(fù)雜的,也是極為消耗資源的。為提供相關(guān)參考,圖14所示是一種使用組合邏輯電路實現(xiàn)4×4字節(jié)乘數(shù)器的示意圖。
圖14.兩個4字節(jié)輸入相乘的電路圖
試想兩個32字節(jié)的數(shù)字相乘要通過2000多步操作才能得到結(jié)果。因此,F(xiàn)PGA預(yù)設(shè)了乘數(shù)器電路,在數(shù)學(xué)和信號處理應(yīng)用中保存對查找表和觸發(fā)器使用。Virtex-II和Spartan-3 FPGA擁有18×18bit乘法器,所以兩個32字節(jié)數(shù)字相乘的運算需要三個乘法器來實現(xiàn)。許多信號處理算法都包括連乘運算結(jié)果的功能,因此Virtex-5等高性能FPGA都預(yù)設(shè)被稱為DSP片的乘數(shù)器累加電路.這些預(yù)設(shè)處理組件,也被稱為DSP48片,包括25×18bit乘數(shù)器以及加法器電路,盡管您可單獨使用乘數(shù)器功能。表5所示為不同F(xiàn)PGA系列DSP決策。
表5.不同F(xiàn)PGA的DSP源
塊隨機存取存儲器(RAM)
選擇FPGA時,記憶源是另一個需要考慮的關(guān)鍵因素。嵌入FPGA芯片中的用戶自定義隨機存取存儲器(RAM),對儲存數(shù)據(jù)設(shè)置或平行環(huán)路之間傳送數(shù)值很有幫助。基于FPGA系列,您可在16或36kb組件中設(shè)置板載RAM,或者使用觸發(fā)器以數(shù)組來執(zhí)行數(shù)據(jù)設(shè)置;然而,對于FPGA邏輯源來說,大型數(shù)組很快就變得十分“奢侈”。由100個32字節(jié)元素數(shù)組可消耗Virtex-II 1000 FPGA中超過30%的觸發(fā)器,或者占用少于1%的嵌入式塊RAM.DSP算法通常需要追蹤整個數(shù)據(jù)塊或是復(fù)雜等式的系數(shù),而在沒有板載存儲器情況下,許多處理功能在FPGA芯片的硬件邏輯電路中都不適用。圖16所示為使用塊RAM讀寫存儲器的圖形化功能。
同樣,你也可以使用內(nèi)存塊,將一段完整周期存儲為數(shù)值和索引的順序表,為板載信號發(fā)生器存儲周期性波形數(shù)據(jù)。輸出信號的最終頻率由檢索數(shù)值的速度決定,這樣您就可用此方法動態(tài)改變輸出頻率,而不需要輸入波形中的急劇變化。
圖16.用于先進先出緩沖器的塊RAM功能
FPGA固有的并行執(zhí)行要求邏輯電路獨立元件可在不用時間脈沖下驅(qū)動。在不同運行速度下的邏輯電路之間傳遞數(shù)據(jù)是很棘手的。使用先進先出(FIFO)緩沖器時,板載存儲器可用來是傳輸更加平穩(wěn)。如圖16所示,用戶可以將FIFO緩沖器配置成不同大小以確保數(shù)據(jù)在FPGA芯片的非同步部件間不會丟失。表6所示為嵌入不同F(xiàn)PGA系列的用戶可設(shè)置快RAM。
表6.不同F(xiàn)PGA的記憶源
總結(jié)
隨著高端技術(shù)的發(fā)展以及新概念的深入概括,F(xiàn)PGA技術(shù)地采用將不斷增加。然而探究FPGA其中奧秘,感嘆這硅片中在方框圖間匯編出的變化,也是十分重要的。在發(fā)展階段,如果您懂得如何利用和優(yōu)化資源,比較和選擇觸發(fā)器、查找表、乘數(shù)器和塊RAM等硬件指標(biāo)是十分有幫助的。這些基本的功能塊并不是包含所有資源的完整清單,而且這篇白皮書并沒有包含對所有FPGA部件的討論。用戶可以通過下面的推薦資源,繼續(xù)學(xué)習(xí)關(guān)于FPGA和數(shù)字硬件設(shè)計的知識。
FPGA的優(yōu)勢還在于,可以利用裕量連接帶寬來靈活構(gòu)建直達各邏輯塊的數(shù)據(jù)通道和存儲器訪問通路。圖1所示的可編程互連結(jié)構(gòu)提供了大量的布線帶寬。模塊與電路板可根據(jù)FPGA輸出帶寬、存儲器大小及延遲的需要進行設(shè)計,I/O端口可由用戶自定義。
圖1 FPGA的架構(gòu)
最后,F(xiàn)PGA架構(gòu)還擁有一個優(yōu)勢,它可擴展為更大型的邏輯塊、存儲器塊與DSP塊的陣列。邏輯與主緩存的大小是一起擴展的。現(xiàn)有最大的FPGA峰值功耗為30W,其FPGA架構(gòu)有很多空間,可以在不超過現(xiàn)有數(shù)據(jù)中心功率和冷卻限制的前提下,擴展為新的處理構(gòu)型。
盡管FPGA架構(gòu)具有許多出眾的性能,一些性能必須共同發(fā)揮作用,才能提供優(yōu)于CPU協(xié)處理的解決方案。
芯片與算法基礎(chǔ)
大部分雙精度浮點算法的加法與乘法操作比例大約為1:1。在FPGA中,加法運算使用邏輯資源,乘法運算使用DSP塊,因此FPGA的邏輯資源與DSP塊的比例必須均衡。FPGA的另一個特點是其可編程功率技術(shù),該技術(shù)可針對所有邏輯塊、DSP塊與存儲器塊進行編程,根據(jù)設(shè)計的時序要求將其設(shè)定為高功耗或低功耗模式。
浮點運算核已經(jīng)改進,可運行于更高的時鐘速率,使用更少的DSP塊和更少的邏輯資源。采用浮點編譯器可減少不同浮點運算核之間用于連接64位數(shù)據(jù)通路的邏輯資源。
在一次浮點運算結(jié)束時,合并對浮點運算進行規(guī)格化處理(定點格式轉(zhuǎn)換至浮點格式)的步驟,可以顯著減少對后續(xù)浮點運算輸入的去規(guī)格化處理(浮點格式轉(zhuǎn)換為定點格式)。浮點運算的數(shù)學(xué)表達式的整個數(shù)據(jù)通路可熔接在一起,這會最多減少40%的邏輯資源并使時鐘速率略有提高。
浮點運算的正確組合十分重要。如果算法有許多超越運算(求指數(shù)、求對數(shù)等),F(xiàn)PGA可配置所需要的數(shù)目。在GPGPU設(shè)計中,會增加一些硬模塊實現(xiàn)上述函數(shù),但比例比單精度浮點邏輯少得多。使用算法技巧、抽象硬件細節(jié)及針對個別FPGA資源的優(yōu)化都需要函數(shù)庫。
基于芯片、算法與庫基礎(chǔ),圖2的系統(tǒng)級解決方案涉及到了工具鏈、模塊/板級設(shè)計、CPU接口以及采用合作公司專門技術(shù)的由CPU至基于FPGA的加速器的數(shù)據(jù)傳輸。
圖2 FPGA加速系統(tǒng)級解決方案的基礎(chǔ)
ARM架構(gòu)是面向低預(yù)算市場設(shè)計的第一款RISC微處理器,基本是32位單片機的行業(yè)標(biāo)準(zhǔn),它提供一系列內(nèi)核、體系擴展、微處理器和系統(tǒng)芯片方案,四個功能模塊可供生產(chǎn)廠商根據(jù)不同用戶的要求來配置生產(chǎn)。由于所有產(chǎn)品均采用一個通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運行。目前ARM在手持設(shè)備市場占有90以上的份額,可以有效地縮短應(yīng)用程序開發(fā)與測試的時間,也降低了研發(fā)費用。
![]() |
DSP(digital singnal processor)是一種獨特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號來處理大量信息的器件。一個數(shù)字信號處理器在一塊不大的芯片內(nèi)包括有控制單元、運算單元、各種寄存器以及一定數(shù)量的存儲單元等等,在其外圍還可以連接若干存儲器,并可以與一定數(shù)量的外部設(shè)備互相通信,有軟、硬件的全面功能,本身就是一個微型計算機。DSP采用的是哈佛設(shè)計,即數(shù)據(jù)總線和地址總線分開,使程序和數(shù)據(jù)分別存儲在兩個分開的空間,允許取指令和執(zhí)行指令完全重疊。也就是說在執(zhí)行上一條指令的同時就可取出下一條指令,并進行譯碼,這大大的提高了微處理器的速度。另外還允許在程序空間和數(shù)據(jù)空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬信號,轉(zhuǎn)換為0或1的數(shù)字信號,再對數(shù)字信號進行修改、刪除、強化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數(shù)以千萬條復(fù)雜指令程序,遠遠超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強大數(shù)據(jù)處理能力和高運行速度,是最值得稱道的兩大特色。由于它運算能力很強,速度很快,體積很小,而且采用軟件編程具有高度的靈活性,因此為從事各種復(fù)雜的應(yīng)用提供了一條有效途徑。根據(jù)數(shù)字信號處理的要求,DSP芯片一般具有如下主要特點:
(1)在一個指令周期內(nèi)可完成一次乘法和一次加法;
(2)程序和數(shù)據(jù)空間分開,可以同時訪問指令和數(shù)據(jù);
(3)片內(nèi)具有快速RAM,通常可通過獨立的數(shù)據(jù)總線在兩塊中同時訪問;
(4)具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內(nèi)操作的多個硬件地址產(chǎn)生器;
(7)可以并行執(zhí)行多個操作;
(8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。
FPGA是英文Field Programmable Gate Array(現(xiàn)場可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物,是專用集成電路(ASIC)中集成度最高的一種。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。用戶可對FPGA內(nèi)部的邏輯模塊和I/O模塊重新配置,以實現(xiàn)用戶的邏輯。它還具有靜態(tài)可重復(fù)編程和動態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改。作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路,F(xiàn)PGA既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。可以毫不夸張的講,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA來實現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由的設(shè)計一個數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗證設(shè)計的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時修改設(shè)計而不必改動硬件電路。使用FPGA來開發(fā)數(shù)字電路,可以大大縮短設(shè)計時間,減少PCB面積,提高系統(tǒng)的可靠性。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
ARM作為嵌入式開發(fā)最常用的處理器,是嵌入式工程師必須掌握的一門知識。ARM體系架構(gòu)在嵌入式學(xué)院<嵌入式工程師職業(yè)培訓(xùn)班>的二期課程中將會結(jié)合嵌入式linux應(yīng)用開發(fā)、嵌入式linux系統(tǒng)移植進行詳細介紹,另外華清遠見的短期培訓(xùn)業(yè)務(wù)中也分別有針對ARM、DSP、FPGA的培訓(xùn)課程。
區(qū)別是什么?:ARM具有比較強的事務(wù)管理功能,可以用來跑界面以及應(yīng)用程序等,其優(yōu)勢主要體現(xiàn)在控制方面,而DSP主要是用來計算的,比如進行加密解密、調(diào)制解調(diào)等,優(yōu)勢是強大的數(shù)據(jù)處理能力和較高的運行速度。FPGA可以用VHDL或verilogHDL來編程,靈活性強,由于能夠進行編程、除錯、再編程和重復(fù)操作,因此可以充分地進行設(shè)計開發(fā)和驗證。當(dāng)電路有少量改動時,更能顯示出FPGA的優(yōu)勢,其現(xiàn)場編程能力可以延長產(chǎn)品在市場上的壽命,而這種能力可以用來進行系統(tǒng)升級或除錯。
2 FPGA與單片機
FPGA等大規(guī)模可編程邏輯器件可以取代現(xiàn)有的全部微機接口芯片,實現(xiàn)微機系統(tǒng)中的存儲器、地址譯碼等多種功能。利用FPGA可以把多個微機系統(tǒng)的功能電路集成在一塊芯片上。
在功能上,單片機與FPGA有很強的互補性,單片機具有性能價格比高、功能靈活、易于人機對話以及良好的數(shù)據(jù)處理等特點,而FPGA具有高速、高可靠性以及開發(fā)便捷、規(guī)范等優(yōu)點。單片機可用總線方式和獨立方式與FPGA接口。由于其通信工作時序是純硬件行為,對于MCS-51單片機,只需一條單指令就能夠完成所需讀寫時序,也就是最常用的MOV@DPTR,A和MOVA,@DPTR。另外,在FPGA中通過邏輯切換,可使單片機與SRAM或ROM接口,這種方式類似于微處理器系統(tǒng)的DMA工作方式,首先由FPGA與接口的A/D等器件進行高速數(shù)據(jù)采樣,并將數(shù)據(jù)暫存于SRAM中,采樣結(jié)束后,通過切換,單片機可以與SRAM以總線方式進行數(shù)據(jù)通信。
目前許多實驗電路板都將FPGA與單片機有機地結(jié)合在一起,從而可以完成許多復(fù)雜的設(shè)計任務(wù)。通常單片機負責(zé)鍵控、顯示、計算、通信、簡單控制和系統(tǒng)協(xié)調(diào),而FPGA負責(zé)高速、高精度和高穩(wěn)定性等指標(biāo)的實現(xiàn),也就是說,由單片機負責(zé)功能上的設(shè)計,F(xiàn)PGA負責(zé)指標(biāo)上的設(shè)計。圖2就是一個典型的單片機與 FPGA通信的例子,通過EDA設(shè)計(原理圖或硬件描述語言)和單片機匯編語言或C語言的設(shè)計,由PC機發(fā)命令碼給FPGA,并將FPGA系統(tǒng)上測得的頻率顯示在PC機的屏幕上。這里的單片機起的是通信橋梁作用。
FPGA+DSP的最大特點是結(jié)構(gòu)靈活,有很強的通用性,適用于模塊化設(shè)計,從而能夠提高算法的效率;又由于其開發(fā)周期較短,系統(tǒng)易于維護和擴展,適用于實時信號處理。在實時信號處理中,低層信號預(yù)處理算法所處理的數(shù)據(jù)量大,對處理的速度要求高,但運算結(jié)構(gòu)相對比較簡單,適用于FPGA硬件實現(xiàn),這樣同時兼顧速度和靈活性。高層處理算法的特點是所處理的數(shù)據(jù)量較低層算法少,但算法的控制結(jié)構(gòu)復(fù)雜,適用于用運算速度高、尋址方式靈活、通信機制強大的DSP 芯片來實現(xiàn)。
應(yīng)用將一些能實現(xiàn)基本數(shù)字信號處理功能的DSP模塊嵌入FPGA的芯片是數(shù)字電路設(shè)計的一個趨勢。有些公司已經(jīng)計劃把基于ASIC的微處理器或DSP 芯核與可編程邏輯陣列集成在一塊芯片上。FPGA提供的性能已經(jīng)超過1280億MAC/s(乘法累加運算/秒),大大高于傳統(tǒng)的DSP性能。 QuickLogic公司推出的QuickDSP系列,提供了嵌入式DSP構(gòu)件塊和可編程邏輯器件。除了以前的可編程邏輯和存儲模塊,還包括專用的乘加模塊;這些合成的模塊可以實現(xiàn)DSP功能。
圖1 用NI LabVIEW實現(xiàn)FPGA圖形化編程
使用LabVIEW FPGA軟件和可重復(fù)配置硬件技術(shù),可創(chuàng)建高性能的控制和采集系統(tǒng)。下面舉兩個例子,有關(guān)基于FPGA技術(shù)的硬件平臺在車載測試中的應(yīng)用。
用戶解決方案1:便攜式車載數(shù)據(jù)采集系統(tǒng)
車載數(shù)據(jù)采集的信號類型包括溫度信號(熱電偶、RTD)、聲音和振動信號(帶IEPE激勵的加速度傳感器或麥克風(fēng))、壓力和載荷信號(應(yīng)變計或稱重傳感器)、位置信號(LVDT或線性電位計)、速度信號(編碼器)、控制總線信號(CAN,J1350,ODBII),以及視頻信號等。這些信號都是用于汽車性能的評價。
德國Goepel Electronic公司在面臨上述信號類型、環(huán)境條件復(fù)雜、有大量數(shù)據(jù)存儲要求,用于車載測試分析和在線診斷的便攜式測試設(shè)備時,選擇了NI CompactRIO嵌入式控制系統(tǒng),LabVIEW FPGA模塊和LabVIEW Real-Time模塊。在很短的時間內(nèi)開發(fā)了CARLOS (in-car logging system),加上CompactRIO平臺的低成本解決方案,從而大大節(jié)省了預(yù)算。
圖2 Goepel CARLOS 車載數(shù)據(jù)采集系統(tǒng)
CompactRIO硬件平臺(參看圖2)是一個基于FPGA技術(shù)的嵌入式系統(tǒng)。FPGA芯片是CompactRIO體系結(jié)構(gòu)的核心,直接和相應(yīng)的車載模塊相連。車載模塊可直接和車用傳感器、執(zhí)行器和網(wǎng)絡(luò)相聯(lián),并提供信號調(diào)理、隔離和汽車總線。該平臺包含一個嵌入式實時處理器,可用于獨立工作、確定性控制、車載數(shù)據(jù)記錄和分析等。CompactRIO具有小型、堅固的機械封裝、可承受50g沖擊和-40 oC到70 oC工作溫度范圍等特點,提供雙電壓輸入(9~35V),可直接從車上電池取電。這些都使CARLOS適用于復(fù)雜的車載測試環(huán)境和有限的測試空間。
該系統(tǒng)已成功用于實驗室、風(fēng)洞和試驗場上的汽車測試,可長時間記錄數(shù)據(jù)。另外,可通過選擇相應(yīng)的車載模塊和內(nèi)置的應(yīng)用程序,實現(xiàn)不同測試的需求。比如為了實現(xiàn)冬季或夏季試驗中發(fā)動機熱管理系統(tǒng)的評價,只需選擇溫度等信號對應(yīng)的車載模塊和已開發(fā)好的LabVIEW應(yīng)用程序即可;同時,該程序提供報警、用LabVIEW報告生成工具包實現(xiàn)數(shù)據(jù)寫入EXCEL表格、或直接寫進數(shù)據(jù)庫、歷史數(shù)據(jù)查看等功能。此外,基于FPGA的CompcatRIO開放試架構(gòu)允許用戶擴展系統(tǒng)或進一步開發(fā)自定義的測試系統(tǒng)。
用戶解決方案2:自定義遠程模塊開發(fā)
無線通信技術(shù)已廣泛應(yīng)用于汽車在行進中實現(xiàn)監(jiān)控狀態(tài)、精確定位或遠程通信,包括GPS導(dǎo)航和精確定位、胎壓監(jiān)測等;其中,GPS在日本和歐美汽車上安裝的普及率逐年上升,在國內(nèi)也越來越受關(guān)注。
德國S.E.A. Datentechnik GmbH公司針對車載無線通信測試的需求,為了盡快將產(chǎn)品投入市場,選擇了基于FPGA技術(shù)的CompactRIO開放式硬件平臺和LabVIEW開發(fā)環(huán)境。根據(jù)車載遠程控制、數(shù)據(jù)采集、位置跟蹤等應(yīng)用需求開發(fā)了cRIO GPRS(General Packet Radio Service)、 cRIO GPS(Global Positioning System)、cRIO RCC(Radio Controlled Clock)和一個混合模塊cRIO Gxxx,如圖3所示。最終,整個項目的開發(fā)時間比原計劃提前了40%。
圖3 S.E.A. Datentechnik遠程模塊
GPS模塊通過接收L1波段的GPS信號實現(xiàn)精確的定位。接收機可以在啟動之后將數(shù)據(jù)轉(zhuǎn)換成NMEA 0183格式,以便進一步分析。備份電池可以保證接受機的記憶功能,存儲以前的信息,比如位置數(shù)據(jù)。該模塊可用于汽車導(dǎo)航、精確定位。GPRS模塊通過GSM/GPRS公網(wǎng)進行測量數(shù)據(jù)和事件消息傳輸,同時使用SIM卡讀卡器接入GSM/GPRS網(wǎng)絡(luò),以短信方式手法數(shù)據(jù),可應(yīng)用汽車防盜系統(tǒng)。RCC模塊用于分布式系統(tǒng)的時間同步;混合模塊則集合了以上功能。在車載應(yīng)用時,CompactRIO嵌入式系統(tǒng)的高度可靠性得以充分體現(xiàn)。
這些模塊除用于車載測試外,還可廣泛應(yīng)用于ATM終端、工業(yè)和醫(yī)療遠程系統(tǒng)、遠程診斷等。
總結(jié)
FPGA技術(shù)帶來了車載測試技術(shù)的創(chuàng)新,憑借開發(fā)基于FPGA硬件的單個系統(tǒng)可以解決不同的車載測試應(yīng)用,而無需多個定制的測試設(shè)備。圖形化FPGA編程則進一步縮短開發(fā)時間。NI CompactRIO是基于FPGA的硬件平臺之一,用戶可以開發(fā)適用于涉及汽車總線、不同信號類型的車載測試應(yīng)用,甚至可以自己定制開發(fā)模塊實現(xiàn)特定的車載測試功能。
QUOTE:
我估計得幾萬美刀吧?我知道中國很多軍用fpga都是直接又商用芯片,直接拿去測試,只要能達到軍品標(biāo)準(zhǔn)的,就是“軍品”。QUOTE:
呵呵,是,幾萬美元一片!一方面是因為你根本買不到,所以就貴;另一方面就象你說的,得挑,那可是千里挑一、萬里挑一啊;從商業(yè)級和工業(yè)級的芯片里去挑軍品級的,呵呵,你可以想像是怎樣的一個浪費哦。QUOTE: