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