基于CPLD的數據采集與顯示接口設計及實現
1. 3.2 ADC0809狀態(tài)機程序設計
本文引用地址:http://www.ex-cimer.com/article/248873.htmADC0809為單極性輸入,8位轉換精度逐次逼進式A/D轉換器。其采樣速度為每次轉換約 100μs。在轉換開始前由地址鎖存允許信號ALE將3位地址鎖入鎖存器中以確定轉換信號通道。EOC為轉換結束狀態(tài)信號,由低電平轉為高電平時指示轉換結束,此時可讀人轉換好的8位數據。EOC在低電平時指示正在進行轉換。START為轉換啟動信號,上升沿啟動。OE為數據輸出允許高電平有效。CLK為 ADC轉換時鐘輸入端口500 kHz左右。為了達到A/D器件的最高轉換速度,A/D轉換控制器必須包含監(jiān)測EOC信號的邏輯,一旦EOC從低電平變?yōu)楦唠娖郊纯蓪E置為高電平,然后傳送或顯示已轉換好的數據[DO..D7]。狀態(tài)機由三個進程組成ADC,AD_STATE和DATA_LOCK。ADC是此狀態(tài)機的主控組合邏輯進程,確定狀態(tài)的轉換方式和反饋控制信號的輸出工作過程中首先監(jiān)測系統(tǒng)復位信號RST,當其為高電平時使此進程復位至初始態(tài)ST0。啟動A/D轉換信號 START在狀態(tài)ST3搜索轉換狀態(tài)信號EOC由0變1時即在狀態(tài)ST4開啟輸出。使能信號OE在下一狀態(tài)使LOCK產生一個上跳沿從而在此時啟動進程 DATA_LOCK將由0809轉換好的8位數據鎖進鎖存器ADC_DATA。根據時序電路圖通過狀態(tài)機設計程序完成與CPLD/FPGA芯片的連接。圖 3為狀態(tài)機程序仿真結果。
![](http://editerupload.eepw.com.cn/201406/4d194f6aa02060936fe9cd5ab1a1eb67.jpg)
1.4 BCD碼轉換與顯示電路設計
當ADC0809的基準電壓(Vref)為5.12V時,最小電壓準位是 5.12/28=O.2V。分析模擬輸入電壓與輸出電壓的對應關系可知,當ADC0809的D[7..0]收到的數據信號為10000110(即86H) 時,則高4位1000為2.56V,而低4位0110為O.12V,所以最后的電壓輸出結果是2.68V。為了方便后續(xù)的電壓數據顯示,在此將輸出電壓表示成12位的BCD碼形式。將高4位數據D(7..4)轉換為對應的高12位BCD碼H(11..0);將低4位數據D(3..0)轉換為對應的低12位 BCD碼L(11..O)。在程序中首先用VHDL語言描述一個新的進程Process(regl),然后采用case…when …語句,生成并行結構的電路。
將生成的高12位BCD碼與低12位的BCD碼相加,得到12位的BCD碼,該結果即為所求的BCD碼結果。如上述的2.56V的BCD碼是 0010 0101 0110,O.12V的BCD碼是0000 0001 00lO。所以相加的結果是0010 0110 1000,即為2.68V。因此在電路中必須設計一個12位的BCD碼加法程序,實現由8位二進制轉換為12位BCD碼硬件電路。在程序設計中應當注意的是BCD碼相加時,由最低4位加起,且每4位相加的結果超過1001時,應加0110調整。該段程序的描述是通過一個進程 Process(HB,LB,CEN)來實現。其中HB表示生成的高12位BCD碼,LB表示生成的低12位BCD碼.CEN表示系統(tǒng)提供的時鐘信號。在時鐘上升沿時刻進行BCD碼相加,并判斷結果是否超過1001,判斷程序采用if…then…語句,實現條件判斷電路。按照圖4完成BCD碼程序轉換設計。將以上兩段程序進行組合,最終獲得由VHDL語言描述的BCD碼轉換程序。
![](http://editerupload.eepw.com.cn/201406/ad3150c68436765f5c6f61fc9bc4783f.jpg)
1.5 A/D轉換與BCD碼合成系統(tǒng)電路
將A/D轉換電路與BCD碼轉換電路組成統(tǒng)一系統(tǒng),通過硬件編程語言VHDL中的進程語句將編制成功的A/D轉換電路描述語句和BCD碼轉換電路描述語句組合成一個整體程序,通過QuartusⅡ軟件生成系統(tǒng)圖,如圖5所示。
![](http://editerupload.eepw.com.cn/201406/0029eece5c8c6bc9497c13b2d08ef9ea.jpg)
A/D轉換結果由3位十進制數表示,每位十進制數由4位BCD碼表示,總共有12位BCD碼輸出。將電路輸出BCDOUT(11..0)分成 BCDOUT(11..8),BCDOUT(7..4)和BCDOUT(3..0)三部分,通過三個進程Process()分別用VHDL語言編程描述 LED顯示驅動。對整個系統(tǒng)進行波形仿真,得到仿真波形如圖6所示,最后在GW48-CK實訓開發(fā)系統(tǒng)完成功能驗證。
![](http://editerupload.eepw.com.cn/201406/2ffa6f5c6b42d88cbc1ac50f3b2d6ba3.jpg)
2 結 語
將CPLD和微機控制技術相結合,在智能儀表設計和控制系統(tǒng)設計領域提高了系統(tǒng)設計的靈活性,縮短了產品開發(fā)周期,同時使系統(tǒng)易于升級和擴展。因為采用了CPLD(復雜可編程邏輯器件),極大提高了系統(tǒng)I/O口利用率,縮小了印刷電路板面積,提高了系統(tǒng)集成度,在多輸入/多輸出的數據采集和控制系統(tǒng)領域有十分廣闊應用前景。
fpga相關文章:fpga是什么
51單片機相關文章:51單片機教程
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
晶振相關文章:晶振原理
評論