《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的數(shù)據(jù)采集控制模塊的研究與設(shè)計(jì)
基于FPGA的數(shù)據(jù)采集控制模塊的研究與設(shè)計(jì)
摘要: 傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),,通常采用單片機(jī)或DSP作為控制器,用以控制ADC,、存儲(chǔ)器和其他外圍電路的工作,,使得采集速度和效率降低。由于FPGA時(shí)鐘頻率高,,內(nèi)部延時(shí)小,,全部控制邏輯均由硬件完成,速度快,,效率高,,同時(shí)它有非常強(qiáng)大的硬件描述語言和仿真工具,方便檢驗(yàn)結(jié)果的正確性?;谝陨峡紤],,在設(shè)計(jì)中采用FPGA作為控制處理器。
Abstract:
Key words :

引 言

  數(shù)據(jù)采集和控制系統(tǒng)是對生產(chǎn)過程或科學(xué)實(shí)驗(yàn)中各種物理量進(jìn)行實(shí)時(shí)采集,、測試和反饋控制的閉環(huán)控制,,它在工業(yè)控制、軍事電子設(shè)備,、醫(yī)學(xué)監(jiān)護(hù)等許多領(lǐng)域發(fā)揮著重要作用,。其中,數(shù)據(jù)采集部分尤為重要,,而傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),,通常采用單片機(jī)或DSP作為控制器,用以控制ADC,、存儲(chǔ)器和其他外圍電路的工作,,使得采集速度和效率降低。近年來,,微電子技術(shù),,如:大規(guī)模集成電路和超大規(guī)模集成電路技術(shù)的發(fā)展,為數(shù)據(jù)采集系統(tǒng)的發(fā)展提供了良好的物質(zhì)基礎(chǔ),。從而使器件向模塊化和單片化發(fā)展,,使所用軟件均向?qū)崟r(shí)高級語言和軟件模塊化發(fā)展,接口向標(biāo)準(zhǔn)化發(fā)展,。由于FPGA時(shí)鐘頻率高,,內(nèi)部延時(shí)小,全部控制邏輯均由硬件完成,,速度快,,效率高,同時(shí)它有非常強(qiáng)大的硬件描述語言和仿真工具,,方便檢驗(yàn)結(jié)果的正確性,。基于以上考慮,,在設(shè)計(jì)中采用FPGA作為控制處理器,。而VGA接口的設(shè)計(jì),更突出了該模塊的兼容性,,更易于采集數(shù)據(jù)的直觀表現(xiàn),。

  
1 系統(tǒng)總體設(shè)計(jì)方案

  完整的數(shù)據(jù)采集過程通常由數(shù)據(jù)的通道選擇、采樣,、存儲(chǔ),、顯示構(gòu)成,有時(shí)也要對數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶幚怼F渲?,控制模塊起到了核心作用,,他作為控制信號(hào)產(chǎn)生和處理的中樞對這些外圍電路進(jìn)行著實(shí)時(shí)的監(jiān)控和管理。設(shè)計(jì)過程中采用FPGA作為控制器,,完成對A/D轉(zhuǎn)換器的控制,,并將采集到的數(shù)據(jù)存儲(chǔ)到一定的存儲(chǔ)單元.通過VGA接口協(xié)議,最后在顯示器上顯示,。具體涉及的外圍電路中,,數(shù)據(jù)采集部分主要應(yīng)用ADC0809作為數(shù)據(jù)采集芯片,,對輸入的模擬量進(jìn)行A/D轉(zhuǎn)換,;數(shù)據(jù)緩存部分應(yīng)用6116作為存儲(chǔ)芯片,用來緩存0809采集的數(shù)據(jù),;按鍵控制部分利用8個(gè)按鍵來控制0809的轉(zhuǎn)換通道選擇,;圖形顯示部分輸出標(biāo)準(zhǔn)的VGA信號(hào),使用CRT顯示器,,以顯示實(shí)時(shí)波形,。由于在設(shè)計(jì)中對外部器件進(jìn)行控制的控制器都是由FPGA完成的,F(xiàn)P-GA的工作量很大,,因此所采用的FPGA芯片為FLEX系列中30萬門的EPF10K30,。

  
2 基于FPGA的主控模塊的實(shí)現(xiàn)

  主控制器的工作原理如圖1所示。

 

  通過一個(gè)A/D轉(zhuǎn)換控制器產(chǎn)生對ADC0809的控制信號(hào),。啟動(dòng)ADC0809之后,,隨即就會(huì)按照一定頻率進(jìn)行A/D轉(zhuǎn)換。同時(shí)通過一個(gè)數(shù)據(jù)鎖存信號(hào)將數(shù)據(jù)鎖存到A/D轉(zhuǎn)換控制模塊中,。這個(gè)鎖存信號(hào)將作為RAM控制器寫輸入控制信號(hào),。當(dāng)RAM讀寫控制器的寫控制信號(hào)有效之后,將開啟RAM的寫使能有效信號(hào),,將采集到的數(shù)據(jù)寫入RAM的第600個(gè)地址單元中,,然后RAM控制器將RAM中的數(shù)據(jù)向上移動(dòng)一位,移動(dòng)完之后,,產(chǎn)生一個(gè)數(shù)據(jù)更新完畢信號(hào),,之后才通過內(nèi)部的一個(gè)控制信號(hào),允許從RAM讀出數(shù)據(jù),。若RAM中讀數(shù)據(jù)使能,,每當(dāng)VGA顯示控制器發(fā)出一個(gè)讀數(shù)據(jù)命令時(shí),RAM讀寫控制器便開啟RAM的讀有效信號(hào),,讀出RAM中的數(shù)據(jù),,并且通過VGA控制器的時(shí)序控制和輸出信號(hào)進(jìn)行顯示。外部的按鍵部分共有8個(gè),這8個(gè)按鍵控制ADC0809的8路通道的選擇,。鍵盤控制器的功能就是掃描所按下按鍵的行和列值,,并且合成鍵值。轉(zhuǎn)換成按鍵數(shù)值0~7,,最終控制8個(gè)模擬輸入通道的選擇,。

  2.1 VGA顯示控制器的設(shè)計(jì)

  常見的彩色顯示器一般由陰極射線管(CRT)構(gòu)成,彩色是由紅,、黃,、藍(lán)(R,G,,B)三基色組成的,,用逐行掃描的方式解決圖像顯示。其引出線共含5個(gè)信號(hào):R,,G,,B三基色信號(hào);HS,;行同步信號(hào),;VS;場同步信號(hào),。

  對于VGA顯示器的這五個(gè)信號(hào)的時(shí)序驅(qū)動(dòng)要嚴(yán)格遵循“VGA工業(yè)標(biāo)準(zhǔn)”,,即640×480×60模式,否則會(huì)損害VGA顯示器,。在此,,控制器共有2個(gè)輸入信號(hào),6個(gè)輸出信號(hào),。CLK連接到外部的晶振上,,其晶振頻率是50 MHz。由于VGA工業(yè)標(biāo)準(zhǔn)所要求的晶振頻率是25 MHz,。因此,,在此控制器中首先要將時(shí)鐘進(jìn)行二分頻。RD是一個(gè)8位的數(shù)據(jù)量,,它接收從RAM讀出的數(shù)據(jù),。輸出信號(hào)READ用于控制RAM控制模塊開啟RAM的讀有效信號(hào),只要READ有變化,,那么將進(jìn)入讀數(shù)據(jù)狀態(tài),,由RD接收讀出來的數(shù)據(jù)。HS和VS分別是行同步信號(hào)和場同步信號(hào),,R,,G,,B為三條輸出的信號(hào)線。顯示波形是通過改變R,,G,,B這三條輸出信號(hào)的值來實(shí)現(xiàn)的。

  每讀出一個(gè)數(shù)據(jù),,其實(shí)是對應(yīng)著一個(gè)像素點(diǎn),。由于這里所采集的電壓值范圍是0~5 V,對應(yīng)ADC0809轉(zhuǎn)換成的數(shù)據(jù)量是0x00~0xFF,、,,所以在設(shè)計(jì)時(shí)只要將RD接收的具體數(shù)值與顯示器中的某一行相對應(yīng)即可,具體實(shí)現(xiàn)用比較語句就可以實(shí)現(xiàn)行定位,,同時(shí)列輔助寄存器LLV加1即可,,這樣即可實(shí)現(xiàn)連續(xù)波形。這些點(diǎn)連接起來就是一個(gè)完整的波形,,而其中行同步和場同步信號(hào)的產(chǎn)生則分別由內(nèi)部信號(hào)CC,,LL根據(jù)已知的輸入時(shí)鐘,,通過計(jì)數(shù)器計(jì)數(shù)的方式,,達(dá)到工業(yè)標(biāo)準(zhǔn)要求的頻率。

 

 2.2 A/D轉(zhuǎn)換控制器的設(shè)計(jì)

  在此設(shè)計(jì)中,,是利用狀態(tài)機(jī)對A/D轉(zhuǎn)換進(jìn)行控制的,。控制ADC0809采樣狀態(tài)圖,,如圖2所示,。

 

  在狀態(tài)ST0中,對0809進(jìn)行初始化,,之后進(jìn)入到狀態(tài)ST1,;在狀態(tài)ST1中,ALE和START信號(hào)有效,,這時(shí)EOC信號(hào)變?yōu)榈碗娖?,進(jìn)入轉(zhuǎn)換狀態(tài)ST2。此時(shí),,需要對0809工作狀態(tài)信號(hào)EOC進(jìn)行測試,,如果為低電平,表示轉(zhuǎn)換沒結(jié)束,,仍需要停留在ST2狀態(tài)中等待,,直到變成高電平后才說明轉(zhuǎn)換結(jié)束,在下一時(shí)鐘脈沖到來時(shí)轉(zhuǎn)向狀態(tài)ST3,。在狀態(tài)ST3,,由狀態(tài)機(jī)向0809發(fā)出轉(zhuǎn)換好的8位數(shù)據(jù)輸出允許命令,,這一狀態(tài)周期同時(shí)可作為數(shù)據(jù)輸出穩(wěn)定周期,以便能在下一狀態(tài)中向鎖存器中鎖入可靠的數(shù)據(jù),。在狀態(tài)ST4,,由狀態(tài)機(jī)向FPGA中的鎖存器發(fā)出鎖存信號(hào),將0809輸出的數(shù)據(jù)進(jìn)行鎖存,。

  2.3 RAM讀寫控制器的設(shè)計(jì)

  在該模塊設(shè)計(jì)中,,RAM讀寫控制模塊又分為讀控制模塊、寫控制模塊和讀寫狀態(tài)轉(zhuǎn)換模塊,。寫控制模塊中兩個(gè)輸入信號(hào)分別與A/D轉(zhuǎn)換控制模塊的數(shù)據(jù)鎖存和轉(zhuǎn)換輸出相連,。當(dāng)鎖存信號(hào)使能,即發(fā)出寫信號(hào),,將數(shù)據(jù)存儲(chǔ)到外部RAM的第600個(gè)地址空間之后,,再對之前的數(shù)據(jù)進(jìn)行前移,以達(dá)到數(shù)據(jù)的及時(shí)更新,。讀控制模塊的控制信號(hào)分別與寫更新完畢信號(hào)和讀信號(hào)相連,,當(dāng)寫更新完畢信號(hào)使能時(shí),只要接到讀信號(hào),,則依次讀完外部RAM前600個(gè)地址空間(一場)的數(shù)據(jù),。

  2.4 鍵盤掃描控制器的設(shè)計(jì)

  鍵盤控制模塊由四個(gè)模塊組成,包括:時(shí)鐘分頻模塊,、行鍵值輸出模塊,、鍵值鎖存模塊和鍵值合成模塊。鍵值鎖存模塊將按下按鍵的行,、列信息鎖存,,并交由鍵值合成模塊,該模塊配合行鍵輸出模塊輸出的結(jié)果進(jìn)行查表,,最終確定鍵值,。

  
3 仿真結(jié)果

  Max+PlusⅡ仿真平臺(tái)的圖形輸入方式直觀,符合傳統(tǒng)數(shù)字系統(tǒng)設(shè)計(jì)人員的習(xí)慣,,便于進(jìn)行接口的設(shè)計(jì),,容易實(shí)現(xiàn)仿真,便于信號(hào)的觀察,?;谝陨峡紤],利用此平臺(tái),,用硬件描述語言VHDL來實(shí)現(xiàn)各個(gè)功能模塊,,A/D轉(zhuǎn)換控制器和VGA顯示控制器模塊的時(shí)序仿真結(jié)果如圖3、圖4所示,。

 

  
4 結(jié) 語

  這里的數(shù)據(jù)采集控制模塊主要以FPGA為基礎(chǔ),,本著軟件硬件化的思路,,著重研究主控制模塊的實(shí)現(xiàn)。由于采用FPGA作為控制處理器,,其速度快,,效率高,且標(biāo)準(zhǔn)的VGA接口使得系統(tǒng)的使用更加便捷,,鍵盤控制的多通道間切換,,也為實(shí)現(xiàn)多路采集奠定了基礎(chǔ)。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。