基于FPGA的多通道串行A/D轉換器的控制器設計
通道地址及控制字形成模塊(addr_1)可以實現(xiàn)所需的各種輸入模式,并產(chǎn)生通道地址和控制字,以單端輸入模式為例,VHDL代碼如下:
![]() |
![]() |
這里用雙進程的有限狀態(tài)機(FSM)來設計通道地址產(chǎn)生器。當addr<=“0000”時表示沒有通道被選擇,ADS7844沒有工作;當addr<=“0000”時表示通道1被選擇,依次類推。
4 計算機仿真分析
用Quartus Ⅱ 6.0進行分析綜合、布局,共占用Altera cyclone FPGA 59個LE(logic elements),波形仿真如圖5所示。
![]() |
圖5中elk的周期為100 ns,clk1為系統(tǒng)時鐘4分頻后的工作時鐘,當cs_all為低電平時,AD_CONTROLLER開始工作。由狀態(tài)機產(chǎn)生的控制字(10000100)在stld的下降沿被鎖存入移位寄存器,當cs_ad由高變低時,控制字被逐位移出至di端口。在此,假設當ADS7844接收到控制字并由ad_do端口逐位移出1通道轉換后的數(shù)據(jù)1000000000010000,經(jīng)過16個周期后oe由低變高,oe的下降沿可以將移入寄存器的數(shù)據(jù)鎖存。由圖5可見,仿真波形與ADS78414控制波形一致,達到了設計的目的。
5 結 語
本試驗用于混合動力汽車電池管理系統(tǒng)電池電壓、電流信息采集部分。電池管理系統(tǒng)通常采用雙單片機的結構,一個單片機完成電池信息采集功能,另外一個單片機完成電池SoC(State of Charge)計算及人機交互功能。這種系統(tǒng)結構復雜,可靠性降低。為解決這一問題,該A/D控制器被封裝成基于Avalon總線的自定義IP核,應用于Altera公司FPGA所支持的NIOS Ⅱ嵌入式系統(tǒng)中,NIOS Ⅱ軟核CPU僅在A/D控制器引起的中斷服務程序中讀取采集到的數(shù)據(jù),這樣大大提高了采集速度和CPU的效率,使得有更多的CPU資源應用于SoC計算和人機交互。這種基于SoPC(Systemon Programmable Chip)的電池管理系統(tǒng)結構緊湊、功能齊全、可靠性大大提高。
FPGA用來設計控制電路有很多優(yōu)點。FPGA不僅可進行任意次編程,而且用戶可以借助開發(fā)工具快速編程、編譯、優(yōu)化、仿真直到最后芯片制作。高集成性使得用戶可以利用硬件描述語言及開發(fā)工具在單片F(xiàn)PGA芯片上實現(xiàn)各種復雜的邏輯電路和片上系統(tǒng),提高了系統(tǒng)性能、減小了電路面積、降低了成本。高速性有效地解決模擬控制的精度與數(shù)字控制的速度之間的矛盾。隨著FPGA性能的提高和成本的降低,以FPGA為基礎的數(shù)字電路和SoPC(Systam on ProgrammableChip)代表了嵌入式系統(tǒng)的發(fā)展方向,F(xiàn)PGA將應用得越來越廣泛。
評論