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