基于FPGA的CCD數(shù)據(jù)采集系統(tǒng)的設(shè)計
1引 言
本文引用地址:http://m.butianyuan.cn/article/189837.htm隨著數(shù)字技術(shù)的進步與發(fā)展,對于數(shù)據(jù)傳輸?shù)母咚俾市院蜁r實性提出了很高的要求,IEEE1394協(xié)議的出現(xiàn),很好地解決了該問題。IEEE1394又名FIReWire,是一種高速串行總線,已經(jīng)發(fā)展了IEEE1394b提供最高達3.2 Gb/s的速率,并將傳輸距離擴展到100 m。由此可以斷定1394必然成為未來的“標準”串行總線。
IEEE1394支持2類事務(wù):等時傳輸和異步傳輸。
異步傳輸(asynchrONous transactions)保證數(shù)據(jù)傳輸?shù)恼_性,但是不保證數(shù)據(jù)傳輸?shù)臅r實性,主要用來傳輸控制信息和一些對數(shù)據(jù)的正確性要求很高的數(shù)據(jù)。一個異步傳輸由4部分組成:請求數(shù)據(jù)包、請求確認數(shù)據(jù)包、響應(yīng)數(shù)據(jù)包和響應(yīng)確認數(shù)據(jù)包。確認數(shù)據(jù)包是和請求數(shù)據(jù)包、響應(yīng)數(shù)據(jù)包同步的,當請求數(shù)據(jù)包和響應(yīng)數(shù)據(jù)包發(fā)送之后立即就是確認數(shù)據(jù)包。
異步傳輸不占據(jù)固定的帶寬,但能保證節(jié)點獲得時間上的公平訪問,每一個執(zhí)行異步傳輸?shù)墓?jié)點都能在單一的間隔內(nèi)準確地訪問總線。
等時傳輸(isochronous transactions)對于數(shù)據(jù)傳輸?shù)臅r實性要求很高,而對于數(shù)據(jù)傳輸?shù)恼_性要求相對較低。等時傳輸通過一個與等時傳輸關(guān)聯(lián)的信道號碼確定設(shè)備,其以固定的時間間隔(125μs)發(fā)送數(shù)據(jù),所以必須分配固定的總線帶寬,有著高于異步傳輸?shù)膬?yōu)先級,等時傳輸可用的最大帶寬是整個帶寬的80%。
根據(jù)協(xié)議的結(jié)構(gòu)可以將1394協(xié)議分成事務(wù)層、鏈路層、物理層、總線管理層。鏈路層和物理層目前已經(jīng)由硬件芯片實現(xiàn)。本設(shè)計主要針對芯片的應(yīng)用,因此對協(xié)議本身不做太多介紹和研究。
2采集系統(tǒng)硬件設(shè)計
根據(jù)硬件的特點,設(shè)計了基于T1芯片組和FPGA的CCD相機采集系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖1所示。
FPGA選用Altera公司的Cyclone系列器件EP1C6T144C8,可以為CCD相機提供工作所需的驅(qū)動時序,同時接收經(jīng)過A/D轉(zhuǎn)換的CCD輸出圖像數(shù)據(jù)。
這里主要介紹1394接口的數(shù)據(jù)采集,FPGA內(nèi)部的CCD驅(qū)動邏輯暫時不介紹。本設(shè)計用于大量的數(shù)據(jù)的傳輸,因此使用TSB12LV32的DM端口來輸入和輸出數(shù)據(jù)。FPGA與TSB12LV32的DM端口的邏輯電路如圖2所示。
FPGA內(nèi)部采用異步FIFO解決CCD輸出數(shù)據(jù)頻率和TSB12LV32采集頻率不匹配的問題,寫時鐘由CCD輸出位同步信號提供,寫請求信號由FIFO的滿狀態(tài)共同控制;讀時鐘由TSB12LV32的DMCLK提供,讀請求信號由DMRW。當TSB12LV32開始傳輸數(shù)據(jù)時,在FIFO的滿狀態(tài)和TSB12LV32的DMDONE引腳控制下,由CCD輸出位同步信號將數(shù)據(jù)寫入FIFO;在DMWR的控制下,由DMCLK將FIFO中的數(shù)據(jù)由DM0~DM7引腳讀入TSB12LV32,連接如圖2所示。
2.1 MCU軟件設(shè)計
軟件的設(shè)計分為2部分:一個是在PC機上開發(fā)設(shè)備板的驅(qū)動程序;另一個是使用設(shè)備板上面使用MCU控制和配置PDI1394L40的軟件流程。單片的主要負責初始化各個CRF,設(shè)置TSB12LV32的工作模式,配置ROM發(fā)送ROM,分析包頭,構(gòu)造包頭和數(shù)據(jù)包。配置ROM是設(shè)計的重點也是難點,將設(shè)備插入PC的1394端口,通過配置ROM,使得PC機識得設(shè)備。配置ROM的流程如圖3所示。
評論