ADS8323與高速FIFO接口電路的CPLD實(shí)現(xiàn)
3.1 AD轉(zhuǎn)換控制與FIFO寫(xiě)控制模塊
根據(jù)ADS8323與FIFO的使用說(shuō)明,該模塊的工作過(guò)程如下:在系統(tǒng)啟動(dòng)信號(hào)CtrlBegin有效之后,啟動(dòng)AD轉(zhuǎn)換信號(hào)(/CONVST置低);在轉(zhuǎn)換過(guò)程中,將數(shù)據(jù)緩沖區(qū)(由CPLD內(nèi)部實(shí)現(xiàn)的一個(gè)16Bit的存儲(chǔ)器)中的前一次轉(zhuǎn)換結(jié)果寫(xiě)入FIFO中,具體來(lái)說(shuō),首先使低8位數(shù)據(jù)使能信號(hào)LowOE置高,低8位數(shù)據(jù)被放到數(shù)據(jù)總線(xiàn)上,然后產(chǎn)生低8位FIFO的寫(xiě)時(shí)鐘信號(hào)FIFO1_WCLK,這樣轉(zhuǎn)換結(jié)果的低8位就被存入低8位FIFO中,按同樣的過(guò)程再把轉(zhuǎn)換結(jié)果的高8位存入高8位FIFO中;在轉(zhuǎn)換結(jié)束后(BUSY為低),將AD的讀使能信號(hào)/RD置低,于是本次AD的轉(zhuǎn)換結(jié)果被寫(xiě)入數(shù)據(jù)緩沖區(qū);完成一次操作之后,再啟動(dòng)AD轉(zhuǎn)換信號(hào),開(kāi)始下一次轉(zhuǎn)換過(guò)程,周而復(fù)始,直到系統(tǒng)啟動(dòng)信號(hào)CtrlBegin無(wú)效。
該模塊可由狀態(tài)機(jī)加以實(shí)現(xiàn)。在設(shè)計(jì)中,我們采用Verilog HDL語(yǔ)言編寫(xiě),其仿真波形如圖3所示。

3.2 FIFO讀控制模塊
當(dāng)FIFO中的數(shù)據(jù)達(dá)到一定深度之后,MCU就需要通過(guò)該模塊向FIFO讀取數(shù)據(jù)。該模塊主要產(chǎn)生四個(gè)信號(hào),即低8位FIFO的RCLK和OE(定義為RCLK1和OE1)、高8位FIFO的RCLK和OE(定義為RCLK2和OE2)。以往的設(shè)計(jì)方案是采用兩個(gè)獨(dú)立的讀地址分別作為RCLK和OE,這種方式雖然操作簡(jiǎn)單,但需要兩個(gè)讀周期才能完成一次讀操作,這樣大大降低了工作效率。本文采用一個(gè)讀地址作為OE信號(hào),再利用對(duì)OE的延時(shí)信號(hào)作為RCLK信號(hào),這樣只要RCLK信號(hào)的產(chǎn)生介于兩次OE之間,就能實(shí)現(xiàn)用一個(gè)讀周期完成一次讀操作,這樣便大大提高了MCU的工作效率。延時(shí)模塊由Verilog HDL語(yǔ)言實(shí)現(xiàn),其代碼如下:

仿真波形如圖4所示。

4.結(jié)束語(yǔ)
本文采用CPLD實(shí)現(xiàn)了AD芯片、高速FIFO存儲(chǔ)器以及MCU之間的接口電路。實(shí)驗(yàn)表明,該電路工作穩(wěn)定可靠,且通用性強(qiáng),易于移植到其它數(shù)據(jù)采集系統(tǒng)中。同時(shí),QuartusII等嵌入式技術(shù)的使用,簡(jiǎn)化了開(kāi)發(fā)流程,提高了設(shè)計(jì)效率。目前,該電路已成功應(yīng)用于某數(shù)據(jù)采集系統(tǒng)中。
評(píng)論