基于FPGA的多通道串行A/D轉(zhuǎn)換器的控制器設(shè)計(jì)
用FPGA設(shè)計(jì)的采樣控制器AD_CONTROLLER與ADS7844的接口電路如圖2所示,基本時(shí)序如上所述。AD_CONTROLLER的輸入時(shí)鐘取12 MHz,經(jīng)內(nèi)部4分頻后輸出至ADS7844的CLK引腳。cs_all為來(lái)自CPU的啟動(dòng)信號(hào),當(dāng)其為低時(shí)AD_CONTROLLER開始工作。addr[3..0]為對(duì)應(yīng)的ADS7844的通道地址,data[15..0]為某地址所對(duì)應(yīng)通道的A/D轉(zhuǎn)換結(jié)果,當(dāng)某一通道轉(zhuǎn)換結(jié)束,oe信號(hào)由低電平變?yōu)楦唠娖讲⒊掷m(xù)1個(gè)周期。
AD_CONTROLLER主要由分頻模塊(fq),A/D轉(zhuǎn)換周期形成模塊(fq_cs);A/D轉(zhuǎn)換器片選信號(hào)模塊(cs_pulse);通道地址及控制字形成模塊(addr_1);A/D轉(zhuǎn)換數(shù)據(jù)輸出模塊(from_ad)和控制字移位輸出模塊(to_ad)組成,其結(jié)構(gòu)如圖3所示。
取FPGA工作頻率10 MHz,經(jīng)分頻器4分頻得2.5 MHz作為A/D轉(zhuǎn)換器的時(shí)鐘。分頻器通常用計(jì)數(shù)器實(shí)現(xiàn),各VHDL教材上都已詳細(xì)講述,這里不再贅述。信號(hào)cs每隔28個(gè)clk1時(shí)鐘周期發(fā)出1個(gè)clk1周期的高電平脈沖并轉(zhuǎn)換1次模擬輸入通道,28個(gè)cIk1周期中,A/D轉(zhuǎn)換器片選cs_ad信號(hào)占用4個(gè)周期,控制字的串行輸出(di)占用8個(gè)周期,ADS7844芯片由Din引腳接收到控制字后,在下一個(gè)周期的下降沿開始將A/D轉(zhuǎn)換后的數(shù)據(jù)串行輸出至Dout引腳,由from_ad模塊進(jìn)行串/并轉(zhuǎn)換并輸出(data[15..0]),此串并轉(zhuǎn)換需16個(gè)周期。信號(hào)stld的下降沿將由狀態(tài)機(jī)產(chǎn)生的控制字(control_word[7..0])鎖存入to_ad模塊內(nèi)部的并/串移位寄存器(74165),經(jīng)過8個(gè)周期后控制字由di引腳輸入ADS7844芯片。cs脈沖的產(chǎn)生由計(jì)數(shù)器實(shí)現(xiàn),這里不做詳細(xì)介紹。cs_ad片選信號(hào)通過cs_ad模塊將cs信號(hào)展寬2個(gè)周期而得到,其電路結(jié)構(gòu)如下:
評(píng)論