基于CY7CO9449的高速PCI數(shù)據(jù)采集卡設(shè)計(jì)
A/D控制模塊產(chǎn)生A/D器件的控制信號(hào),從A/D讀取數(shù)據(jù),然后寫(xiě)入FIFO。AD控制模塊的功能相對(duì)比較簡(jiǎn)單,也比較容易實(shí)現(xiàn)。
因?yàn)樵跀?shù)據(jù)采集的過(guò)程中A/D采樣速度數(shù)據(jù)是固定的,但是數(shù)據(jù)傳輸有時(shí)速度很快而有時(shí)因?yàn)榈却霈F(xiàn)短時(shí)的阻塞。所以必須要有FIFO來(lái)緩沖采集的數(shù)據(jù)。FIFO模塊是用Quatus6.0的向?qū)傻?,只需要設(shè)定有關(guān)參數(shù)即可。FIFO的寫(xiě)入和讀取使用同步接口邏輯,F(xiàn)IFO的存儲(chǔ)寬度是32位,其深度是512。
局部總線控制模塊從FIFO中讀取數(shù)據(jù)然后寫(xiě)入CY7C09449的SRAM中。CY7C09449的局部總線支持同步數(shù)據(jù)傳輸,雖然它也兼容異步數(shù)據(jù)傳輸,但FPGA的局部總線控制模塊選用了同步數(shù)據(jù)傳輸邏輯,因?yàn)檫@樣可以獲得更高的數(shù)據(jù)傳輸速度。CY7C09449的局部總線支持最高的時(shí)鐘速度是50MHz,一次同步的突發(fā)數(shù)據(jù)傳輸在給出讀或?qū)懙钠鹗嫉刂分?,每個(gè)時(shí)鐘周期可以傳送一次數(shù)據(jù)。CY7C09449局部總線的數(shù)據(jù)總線寬度是32位,這使得局部總線的最高傳輸速度達(dá)200Mb/s。
在CY7C09449的局部總線上,F(xiàn)PGA處于類似于微處理器的地位,控制著局部總線數(shù)據(jù)傳輸?shù)闹鲃?dòng)權(quán)。FPGA的邏輯設(shè)計(jì)中,局部總線控制模塊的邏輯設(shè)計(jì)是獲得高速數(shù)據(jù)傳輸?shù)年P(guān)鍵。同步數(shù)據(jù)傳輸要比異步數(shù)據(jù)傳輸?shù)倪壿嫃?fù)雜得多。在局部總線控制模塊的邏輯設(shè)計(jì)中使用了狀態(tài)
機(jī),其設(shè)計(jì)的關(guān)鍵在于狀態(tài)機(jī)的狀態(tài)的定義和在各種條件下?tīng)顟B(tài)的轉(zhuǎn)換。為了簡(jiǎn)單起見(jiàn)這里不對(duì)多塊數(shù)據(jù)傳輸控制、中斷信號(hào)產(chǎn)生邏輯作討論而只介紹傳送一個(gè)數(shù)據(jù)塊的邏輯。
狀態(tài)機(jī)共定義了7個(gè)狀態(tài),各種狀態(tài)的轉(zhuǎn)換關(guān)系見(jiàn)圖3。
在論述狀態(tài)機(jī)的工作過(guò)程之前,先就影響狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換的一些信號(hào)作說(shuō)明。
Reset信號(hào)就是CY7C09449的引腳RSOUTD輸出的信號(hào),它由低到高的轉(zhuǎn)變將啟動(dòng)FPGA進(jìn)行一次數(shù)據(jù)采集。
FifoEmpty信號(hào)是由FIFO模塊提供的,用來(lái)指示FIFO是否為空,它為1時(shí)表示FIFO是空的,沒(méi)有數(shù)據(jù)要傳輸,否則表示FIFO內(nèi)有數(shù)據(jù)等待傳輸。
RdyOut信號(hào)是CY7C09449的引腳RDY OUT提供的信號(hào),它用來(lái)指示CY7C09449的局部總線是否準(zhǔn)備好數(shù)據(jù)傳輸。當(dāng)RdyOut為高電平,表示CY7C09449的局部總線已經(jīng)準(zhǔn)備好數(shù)據(jù)傳輸,反之表示CY7C09449的局部總線未準(zhǔn)備好數(shù)據(jù)傳輸。
Last信號(hào)是用來(lái)指示將要寫(xiě)的數(shù)據(jù)是否為本次突發(fā)傳輸要寫(xiě)的最后一個(gè)數(shù)據(jù)。這個(gè)信號(hào)由局部總線控制模塊內(nèi)部產(chǎn)生。局部總線控制模塊內(nèi)部有一個(gè)計(jì)數(shù)器,當(dāng)準(zhǔn)備一次突發(fā)傳輸?shù)臅r(shí)候,就將要傳送的數(shù)據(jù)長(zhǎng)度放入這個(gè)計(jì)數(shù)器內(nèi),每傳送一個(gè)雙字?jǐn)?shù)據(jù)計(jì)數(shù)器的值就減去1,當(dāng)且僅當(dāng)計(jì)數(shù)器的值等于l的時(shí)候Last就為高電平。
評(píng)論