摘要:為了實現系統間圖像和視頻的高速傳輸,設計了一種以FPGA作為平臺的采集卡,該采集卡功能完全由硬件實現。本文介紹了整個方案的設計原理和邏輯設計方法,支持傳輸速率可達100Mbps-400Mbps。
關鍵詞:FPGA;1394b;數據采集
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-7712(2012)20-0023-01
一、引言
IEEE1394是1994年由美國Apple公司提出的高速串行總線標準。在1995年經電氣和電子工程師協會(IEEE)認證成為了正式標準。IEEE 1394也就是我們俗稱的火線(Fire Wire)發展至今已經有了兩個版本,分別是IEEE 1394a和IEEE 1394b。該標準具有以下特點:
1.高速的數據傳輸速率,IEEE 1394b最大可以支持到3200Mbps;
2.可同時連接不同傳輸速度的設備,具有很強的靈活性;
3.支持點對點的傳輸模式;
4.支持同步和異步數據傳輸。
利用IEEE 1394技術,可以十分方便地把電腦和攝像機、高速硬盤、音響等多種多媒體設備相連接。隨著IEEE 1394技術不斷成熟,應用的范圍也日漸廣泛,車載、航空上都利用其高性能、低延遲的特性進行圖像、視頻等信息的傳輸和處理。本文就是介紹了一種1394接口數據采集卡的設計與實現。
二、應用背景
某系統中,四個分機之間通過1394總線連接,分機III和分機Ⅳ需要實時采集分機I和分機II發來的相關數據,在分機III和分機Ⅳ內部,采集卡與載板之間通過LVDS進行數據交互,分機之間的數據傳輸最小速率為64Mbps,系統要求采集卡除了完成數據采集任務外,還能夠實時提供網絡狀態信息,結合所有的需求提出了以下設計方法。
三、原理設計
采集卡主要完成數據采集和監控網絡狀態兩部分功能:
1.數據采集功能:接收其他分機通過1394總線發來的數據,將1394數據包進行解析,把有效的數據載荷上報載板,并且能夠實現固定幀的應答功能;
2.監控網絡狀態:載板需要實時了解各分機間網站狀態,因此采集卡必須能夠將收集到的網絡信息上報載板。
系統要求采集卡必須自行完成網絡節點配置、數據接收、數據解析和數據上報等功能。采集卡完全通過硬件實現所有功能。這樣的做法不僅可以提高了產品可靠性,減少軟件設計所帶來的開銷,降低了設計成本,最大化的保證產品工作效率。采集卡選用了Xilinx公司出品的XQV300-4BG352N來實現所有邏輯功能,1394鏈路層芯片和物理層芯片分別選用TI公司的TSB12LV32TPZEP和TSB41BA3BTPFPEP。
TSB12LV32TPZEP除了提供處理器接口外,同時還提供了Data Mover接口(以下簡稱DM接口)。DM接口有很多優點:
1.發送與接收大塊數據帶寬可達400Mbps;
2.允許外部接大容量FIFO;
3.能夠處理異步、等時、異步流包;
4.共有八種工作模式可以選擇,由控制寄存器中的三位信號組合而成,配置十分簡便;
5.當不使用時,DM接口表現為高阻狀態。
DM接口支持三種類型的包:異步包、等時包、異步流包(1394a-2000支持的格式),并且能夠與外部存儲器連接來支持大量數據的傳輸。當此接口配置成接收時,所有的數據都在DMCLK的上升沿進行同步接收。利用DM接口的這個特性,我們選擇FPGA作為平臺,通過可編程邏輯完成對DM接口的控制,從而實現數據的采集工作。
四、邏輯設計
(一)初始化單元。初始化單元包括兩部分內容,該單元是采集卡正常工作的基礎,分別完成上電BIT和網絡配置初始化工作。
上電BIT會進行兩部分的操作。首先是對鏈路層芯片進行訪問,判讀鏈路層芯片的ID號是否正確,然后會對鏈路層芯片的某個固定可讀寫寄存器進行讀寫訪問,以讀寫結果是否一致來表明鏈路層接口是否工作正常。在完成鏈路層芯片的測試后,會對物理層芯片進行相同的訪問操作,以保證在上電時基本硬件能夠正常訪問,上電BIT的結果會通過狀態控制單元發送給載板。
上電BIT正常通過后,采集卡將會開始對本板硬件資源進行1394b網絡配置初始化。在初始化完成后,采集卡將會獲取1394b總線工作狀態,這通過讀取物理層芯片某個寄存器的相應位來判斷。當確定鏈路建立后,通過檢查和配置Node ID寄存器,強制設置采集卡為子節點。當完成上述工作后,采集卡會將獲取到的總線狀態通過狀態控制單元發送給載板。在本設計中,由于載板不對采集卡進行配置操作,因此所有的網絡配置數據都儲存在采集卡上。這樣的設計簡化了載板與采集卡之間的控制關系,比較適用于網絡配置信息相對確定的系統中。
(二)數據接收單元。在上文已經提到1394鏈路層芯片提供了DM接口,該接口位寬16bit,允許外部接大容量的FIFO,而載板數據接口是8bit,為了實現數據的無縫連接,在FPGA內部為每一路1394接口設計了一個數據處理單元。該數據處理單元內部包含一個FIFO,FIFO的接收端為16bit,而輸出端為8bit,采用Xilinx公司提供的軟IP核實現。當接收到1394b總線上發來的數據后,會以中斷的方式通知數據接收單元從DM接口開始讀取數據。在對接收到的數據完成校驗無誤后,將該數據幀的1394幀頭和幀尾剔除,保留有效數據載荷寫入FIFO。采集卡與載板之間接口十分簡單,每路接口由8根數據線和1根寫使能信號組成,當寫使能信號為低時表明數據或狀態信息有效。
(三)狀態控制單元。采集卡與載板之間有4根狀態位信號,分別是STATE_OE#、STATE0、STATE1和STATE2,STATE_OE#表示狀態有效位,其余三根信號表示各種狀態。采集卡共提供六種狀態標識,通過這樣的方式可以使主機實時獲得采集卡的工作狀態,并對采集到的數據正確性有所判斷。
(四)數據發送單元。數據發送單元主要實現1394b總線上固定幀應答功能。分機之間通過1394b總線傳輸數據時,需要了解掌握采集卡的工作狀態。當采集卡接收到固定幀時,會向發送方返回一個應答包,以表示數據已接收。
五、結束語
本文提出的一種數據采集卡的設計與實現方法。該產品實現了1394接口100Mbps-400Mbps速率下的高速數據采集,通過FPGA+LLC這樣的設計方案,使產品具有較高的可靠性和可維護性,整個設計完全由硬件實現,。在系統綜合時,出色的完成了圖像和視頻的采集工作,滿足了系統的需求。
參考文獻:
[1]張大樸.IEEE 1394協議及接口設計[M].西安:西安電子科技大學出版社,2004.
[2]TSB12LV32 Data Manual[Z].Texas Instruments,2001.