ADS8323與高速FIFO接口電路的CPLD實(shí)現(xiàn)
3.1 AD轉(zhuǎn)換控制與FIFO寫控制模塊
根據(jù)ADS8323與FIFO的使用說明,該模塊的工作過程如下:在系統(tǒng)啟動信號CtrlBegin有效之后,啟動AD轉(zhuǎn)換信號(/CONVST置低);在轉(zhuǎn)換過程中,將數(shù)據(jù)緩沖區(qū)(由CPLD內(nèi)部實(shí)現(xiàn)的一個16Bit的存儲器)中的前一次轉(zhuǎn)換結(jié)果寫入FIFO中,具體來說,首先使低8位數(shù)據(jù)使能信號LowOE置高,低8位數(shù)據(jù)被放到數(shù)據(jù)總線上,然后產(chǎn)生低8位FIFO的寫時(shí)鐘信號FIFO1_WCLK,這樣轉(zhuǎn)換結(jié)果的低8位就被存入低8位FIFO中,按同樣的過程再把轉(zhuǎn)換結(jié)果的高8位存入高8位FIFO中;在轉(zhuǎn)換結(jié)束后(BUSY為低),將AD的讀使能信號/RD置低,于是本次AD的轉(zhuǎn)換結(jié)果被寫入數(shù)據(jù)緩沖區(qū);完成一次操作之后,再啟動AD轉(zhuǎn)換信號,開始下一次轉(zhuǎn)換過程,周而復(fù)始,直到系統(tǒng)啟動信號CtrlBegin無效。
該模塊可由狀態(tài)機(jī)加以實(shí)現(xiàn)。在設(shè)計(jì)中,我們采用Verilog HDL語言編寫,其仿真波形如圖3所示。
3.2 FIFO讀控制模塊
當(dāng)FIFO中的數(shù)據(jù)達(dá)到一定深度之后,MCU就需要通過該模塊向FIFO讀取數(shù)據(jù)。該模塊主要產(chǎn)生四個信號,即低8位FIFO的RCLK和OE(定義為RCLK1和OE1)、高8位FIFO的RCLK和OE(定義為RCLK2和OE2)。以往的設(shè)計(jì)方案是采用兩個獨(dú)立的讀地址分別作為RCLK和OE,這種方式雖然操作簡單,但需要兩個讀周期才能完成一次讀操作,這樣大大降低了工作效率。本文采用一個讀地址作為OE信號,再利用對OE的延時(shí)信號作為RCLK信號,這樣只要RCLK信號的產(chǎn)生介于兩次OE之間,就能實(shí)現(xiàn)用一個讀周期完成一次讀操作,這樣便大大提高了MCU的工作效率。延時(shí)模塊由Verilog HDL語言實(shí)現(xiàn),其代碼如下:
仿真波形如圖4所示。
4.結(jié)束語
本文采用CPLD實(shí)現(xiàn)了AD芯片、高速FIFO存儲器以及MCU之間的接口電路。實(shí)驗(yàn)表明,該電路工作穩(wěn)定可靠,且通用性強(qiáng),易于移植到其它數(shù)據(jù)采集系統(tǒng)中。同時(shí),QuartusII等嵌入式技術(shù)的使用,簡化了開發(fā)流程,提高了設(shè)計(jì)效率。目前,該電路已成功應(yīng)用于某數(shù)據(jù)采集系統(tǒng)中。
評論