摘 要:CCD相機的數據采集是設計實時高分辨率CCD攝像機的瓶頸,1394協議具有高的傳輸速率,同時在其基礎上發展而來的1394b協議,最高的傳輸速率可以達到32 Gb/s。設計基于1394傳輸協議的數據采集系統,該系統具有高的傳輸速率,可以有效地解決該瓶頸,同時為設計1394b傳輸系統奠定了基礎。介紹該采集系統的框架圖、MCU軟件設計流程以及WDM驅動開發等。經測試,系統工作穩定。
關鍵詞:等時傳輸;異步傳輸;TSB12LV32;WDM驅動模型;Driverworks
Design of High Speed CCD Data Acquisition System
LIU Shuang1,WANG Hao1,LONG Zaichuan2,GUO Qiang1
(1School of Optoelectronic Information,University of Electronic Science and Technology of China,Chengdu,610054,China;
[JZ]2Chongqing Opto[CD2]electronics Research Institute,Chongqing,400060,China)
Abstract:The data acquisition is the bottleneck in the design of the real[CD2]time and high speed CCD cameraHigh transmission speed is defined in 1394 protocol,and 32 Gb/s is defined in 1394b protocol which comes from 1394 protocolThe system in acquisition based on 1394 is designed in this paper and the system which lays a foundation for the system in acquisition based on 1394b has high speedThe Framework of this system,the flow chart of MCU and development of WDM is given in the paperThe experiment shows that the system is steady
Keywords:isochronous transaction;asynchronous transaction;TSB12LV32;WDM drive model;Driverworks
1 引 言
隨著數字技術的進步與發展,對于數據傳輸的高速率性和時實性提出了很高的要求,IEEE1394協議的出現,很好地解決了該問題。IEEE1394又名FireWire,是一種高速串行總線,已經發展了IEEE1394b提供最高達32 Gb/s的速率,并將傳輸距離擴展到100 m。由此可以斷定1394必然成為未來的“標準”串行總線。
IEEE1394支持2類事務:等時傳輸和異步傳輸。
異步傳輸(asynchronous transactions)保證數據傳輸的正確性,但是不保證數據傳輸的時實性,主要用來傳輸控制信息和一些對數據的正確性要求很高的數據。一個異步傳輸由4部分組成:請求數據包、請求確認數據包、響應數據包和響應確認數據包。確認數據包是和請求數據包、響應數據包同步的,當請求數據包和響應數據包發送之后立即就是確認數據包。
異步傳輸不占據固定的帶寬,但能保證節點獲得時間上的公平訪問,每一個執行異步傳輸的節點都能在單一的間隔內準確地訪問總線。
等時傳輸(isochronous transactions)對于數據傳輸的時實性要求很高,而對于數據傳輸的正確性要求相對較低。等時傳輸通過一個與等時傳輸關聯的信道號碼確定設備,其以固定的時間間隔(125 μs)發送數據,所以必須分配固定的總線帶寬,有著高于異步傳輸的優先級,等時傳輸可用的最大帶寬是整個帶寬的80%。
根據協議的結構可以將1394協議分成事務層、鏈路層、物理層、總線管理層。鏈路層和物理層目前已經由硬件芯片實現。本設計主要針對芯片的應用,因此對協議本身不做太多介紹和研究。
2 采集系統硬件設計
根據硬件的特點,設計了基于TI芯片組和FPGA的CCD相機采集系統。系統結構如圖1所示。

FPGA選用Altera公司的Cyclone系列器件EP1C6T144C8,可以為CCD相機提供工作所需的驅動時序,同時接收經過A/D轉換的CCD輸出圖像數據。
這里主要介紹1394接口的數據采集,FPGA內部的CCD驅動邏輯暫時不介紹。本設計用于大量的數據的傳輸,因此使用TSB12LV32的DM端口來輸入和輸出數據。FPGA與TSB12LV32的DM端口的邏輯電路如圖2所示。
FPGA內部采用異步FIFO解決CCD輸出數據頻率和TSB12LV32采集頻率不匹配的問題,寫時鐘由CCD輸出位同步信號提供,寫請求信號由FIFO的滿狀態共同控制; 讀時鐘由TSB12LV32的DMCLK提供,讀請求信號由DMRW。當TSB12LV32開始傳輸數據時,在FIFO的滿狀態和TSB12LV32的DMDONE引腳控制下,由CCD輸出位同步信號將數據寫入FIFO;在DMWR的控制下,由DMCLK將FIFO中的數據由DM0~DM7引腳讀入TSB12LV32,連接如圖2所示。

21 MCU軟件設計
軟件的設計分為2部分:一個是在PC機上開發設備板的驅動程序;另一個是使用設備板上面使用MCU控制和配置PDI1394L40的軟件流程。單片的主要負責初始化各個CRF,設置TSB12LV32的工作模式,配置ROM發送ROM,分析包頭,構造包頭和數據包。配置ROM是設計的重點也是難點,將設備插入PC的1394端口,通過配置ROM,使得PC機識得設備。配置ROM的流程如圖3所示。

3 驅動開發
采用Numega公司的DriverWorks工具開發驅動,該軟件對DDK中的函數進行很好的封裝。使用DriverWizard可以直接生成驅動程序源代碼的框架,只需對其做修改即可。
由于Windows已經提供了總線驅動程序和端口驅動程序,因此只需要開發功能驅動程序即可。DriverWorks將DDK下的1394請求包(IRB)封裝成KIrb類,并將總線驅動程序的功能封裝在K1394LowerDevice類中,對于等時傳輸和異步傳輸也有相應的類對其相應的DDK進行封裝。
1394WDM驅動程序使用IRB(請求包)和總線進行通信,IRB被發送到總線驅動,總線驅動將IRB在總線上執行。DriverWorks使用KIrb類迅速創建一個IRB,同時使用K1394LowerDevice::SubmitIrb函數將IRB發送到總線驅動。
4 結 語
經測試,該系統實現IEEE1394a的傳輸協議,實現了異步和同步傳輸。IEEE已經推出1394b標準,1394b的最高速度可以達到32 Gb/s,有效傳輸距離延長到100 m,而且有些公司已經開始推出1394b控制芯片。該系統不但實現了設備端與PC主機之間數據的高速傳輸,同時還為1394b傳輸系統的設計和實現提供了有效的鋪墊。
參 考 文 獻
[1]胡云對IEEE1394總線技術的研究\\[J\\]科學技術與工程,2007,7(3):299[CD2]302
[2]張尚啟基于IEEE[CD2]1394接口的實時圖像采集系統的研究[LL]\\[D\\]合肥:合肥工業大學,2006
[3]黃香用于紅外圖像傳輸的1394接口的技術研究\\[D\\]南京:南京理工大學,2005
[4]胡大裟IEEE1394串行總線協議的研究與應用實現\\[D\\]成都:四川大學,2005
[5]劉義先基于IEEE1394總線的圖像采集處理系統實現\\[J\\]控制工程,2006,5(13):110[CD2]115
[6]廖偉平基于1394的高速圖像傳輸接口的設計與實現\\[J\\]計算機測量與控制,2006,14(6):823[CD2]824
[7]武安河Windows 2000XP WDM 設備驅動程序開發\\[M\\]北京:電子工業出版社,2003
[8]王寶濤,亓天軍,諸建平線陣CCD數據采集與存儲\\[J\\]現代電子技術,2007,30(5):169[CD2]171,174