劉云朋,袁其帥
(1.焦作大學信息工程學院,河南 焦作 454003;2.河南工業(yè)和信息化職業(yè)學院,河南 焦作 454003)
?
千兆網(wǎng)絡傳輸采集卡開發(fā)與網(wǎng)絡驅動設計*
劉云朋1*,袁其帥2
(1.焦作大學信息工程學院,河南 焦作 454003;2.河南工業(yè)和信息化職業(yè)學院,河南 焦作 454003)
針對工業(yè)在線圖像采集與傳輸設計千兆網(wǎng)絡傳輸采集卡,采集卡采用DSP加FPGA架構搭建,實現(xiàn)Cameralink相機接口圖像采集與預處理功能,并通過光電隔離讀取控制信號對在線產品隊列實現(xiàn)信息記錄功能。主要討論DSP與千兆PHY芯片的RGMII模式硬件接口設計及DSP端千兆網(wǎng)絡驅動設計。通過多種不同大小數(shù)據(jù)包發(fā)送方式測試千兆網(wǎng)絡性能。結論顯示本采集卡的千兆網(wǎng)絡傳輸具有較高的傳輸效率,符合工業(yè)實時在線采集傳輸功能要求。
采集卡;DSP;千兆以太網(wǎng);網(wǎng)絡驅動
在工業(yè)視覺在線實時檢測場合,經(jīng)常需要采集卡實時快速采集、處理大量圖像數(shù)據(jù),傳輸?shù)缴衔粰C做處理與控制。上位機圖像傳輸接口有多種傳輸方式:RS485接口傳輸、USB接口傳輸、1394接口傳輸。受傳輸速率和接口方式影響上述總線傳輸?shù)淖罡呃碚撍俾史謩e能達到10 Mbit/s、480 Mbit/s、400 Mbit/s。USB3.0協(xié)議和1394b協(xié)議雖然能夠達到更高的傳輸速度,但受傳輸距離的約束也大大降低了在長距離傳輸工業(yè)場合的適用性。無法滿足工業(yè)視覺檢測傳輸?shù)膱龊?。為解決工業(yè)視覺在線檢測的遠傳輸距離與高速傳輸這一矛盾,本文設計一種以DSP和FPGA芯片為核心,兼容CameraLink相機接口的的千兆網(wǎng)絡傳輸采集卡[1-2]。
在產品條形碼在線掃描識別系統(tǒng)中,需要實時掃描產品線上產品編號與條形碼,將拍攝圖片數(shù)據(jù)高速傳輸?shù)缴衔恢骺貦C上進行圖像處理與識別。主控機通過網(wǎng)絡下發(fā)識別判斷結果數(shù)據(jù),通過采集卡控制不合格編號產品的剔除。系統(tǒng)由工控計算機、圖像采集卡、CameraLink接口相機、剔除控制電機4部分組成。圖1為在線圖像檢測系統(tǒng)總體框圖。工控計算機作為系統(tǒng)的控制端讀取采集卡信息,通過網(wǎng)絡對采集卡采集參數(shù)配置。采集卡通過傳輸線上光電對管觸發(fā)信息判斷產品位置控制采集拍照時間以及是否剔除不合格品。
圖1 線圖像檢測系統(tǒng)總體框圖結構圖
采集卡使用TMS320C6455 DSP芯片作為采集卡控制、圖像預處理及網(wǎng)絡傳輸功能。外部光電觸發(fā)輸入、圖像傳輸、電機控制采用Altera公司的EP3C40F484 FPGA芯片做多種接口的轉換和數(shù)據(jù)傳輸。采集卡功能邏輯圖如圖2所示。TMS320C6455內部集成了符合IEEE 802.3標準的EMAC模塊和MDIO模塊[4-5],可以與標準的PHY芯片實現(xiàn)無縫連接。本采集卡PYH芯片選用DP83865芯片[3],采用RGMII連接方式與EMAC連接。DSP外部連接一片DDR2芯片作為圖像緩存存儲器。FPGA通過NS(National Semiconductor,國家半導體)生產的DS90LV047A、DS90LV019TM、DS90CR288A接口芯片實現(xiàn)Half Mode CameraLink接口連接。光電對管輸入信號選用MOCD207M光電隔離芯片進行光電信號隔離轉換。DSP通過EMIF口與FPGA實現(xiàn)同步接口傳輸采集圖像數(shù)據(jù)。DSP通過EMIF口讀寫FPGA內部寄存器實現(xiàn)電機控制和采集卡參數(shù)配置。
圖2 采集卡原理框圖結構圖
圖3 EMAC接口與PHY的RGMII連接結構圖
TMS320C6455 DSP芯片內部集成的EMAC/MDIO模塊可以實現(xiàn)同步10 Mbit/s/100 Mbit/s/1000 Mbit/s操作。具有8個接收通道,8個發(fā)送通道,可以在單個通道上選擇接收混雜(Promiscuous)接收模式幀(不匹配自己MAC地址的幀),包括所有幀,所有完好幀、短幀、錯誤幀。與物理層芯片實現(xiàn)MII/RMII/GMII/RGMII等接口方式連接。本采集卡選用RGMII方式與物理層芯片連接。連接方式如圖3所示。相對于GMII連接方式,RGMII使用TX[3:0]/RX[3:0]4位發(fā)送/接收數(shù)據(jù)傳輸?shù)姆绞?減少了物理連接線路。1000M傳輸時發(fā)送/接收時鐘為125 MHz。發(fā)送時鐘由EMAC提供,接收時鐘由PHY提供。TXEN_ER作為EMAC發(fā)送使能與錯誤校驗信號。RXDV_ER作為接收控制信號。PHY端時鐘采用25 MHz晶振提供。TMS320C6455具有兩個PLL(鎖相環(huán)),PLL1輸入時鐘50 MHz,經(jīng)過倍頻、分頻后通過SYSCLK3輸入MDIO,MDIO通過內部寄存器設置將SYSCLK3分頻形成MDCLK參考時鐘輸入到PHY端,通過MDIO信號對PHY芯片進行連接檢測和寄存器讀取。PLL2輸入時鐘為25 MHz,時鐘進入后固定倍頻20倍,固定預分頻除以2后形成250 MHz時鐘提供給DDR2模塊作為工作時鐘。將PLL2分頻系數(shù)設置為5后通過SYSCLK1輸入給EMAC作為工作時鐘。DP83865芯片上拉AN_EN_STRAP引腳,使能PHY芯片的自協(xié)商功能。DP83865地址位有5個引腳,可以通過上下拉電阻設置PHY的地址。上電后EMAC控制模塊會通過MDIO接口讀取有效PHY的地址,識別已連接的PHY芯片,并且通過自協(xié)商與PHY建立通信連接。
TMS320C6455中網(wǎng)絡功能模塊由EMAC控制模塊、EMAC模塊、MDIO模塊3部分組成。EMAC功能框圖如圖4所示。
圖4 EMAC與MDIO模塊框圖結構圖
EMAC控制模塊是與DSP核和EMCA模塊、MDIO模塊的連接接口。主要負責網(wǎng)絡包的存儲控制和器件中斷管理。MDIO模塊符合802.3協(xié)議,使用兩線總線實現(xiàn)32個以太網(wǎng)PHY的查詢控制、自協(xié)商功能。MDIO中斷通過中斷復用方式發(fā)送給EMAC控制模塊。
3.1 驅動開發(fā)設計環(huán)境
TMS320C6455網(wǎng)絡驅動設計是基于CCS3.3開發(fā)環(huán)境的DSP/BIOS系統(tǒng)下開發(fā)設計[6-8]。DSP/BIOS系統(tǒng)能夠提供中斷控制、任務調度、時鐘定時等功能。以太網(wǎng)驅動程序由圖5所示3個層次組成。最上層的接口層是驅動程序的抽象接口,應用程序調用接口層函數(shù)執(zhí)行以太網(wǎng)操作功能;中間驅動層通過調用底層芯片支持庫完成EMAC/MDIO模塊的初始化、配置、查詢等功能。在以太網(wǎng)程序開發(fā)時需要在DSP/BIOS中需要設置一個100 ms的定時時鐘,負責每隔100 ms對PHY的連接狀態(tài)進行查詢。
圖5 以太網(wǎng)驅動程序結構圖
3.2 EMAC控制模塊驅動設計
EMAC控制模塊主要負責EMAC和MDIO的中斷控制,將中斷信號發(fā)送到DSP中斷控制模塊。對內部8 kbyte的RAM設置用來接收/發(fā)送包緩沖描述符。具體設置過程如下:
(1)設置中斷步長寄存器(EWINTTCNT);
(2)初始化EMAC模塊和MDIO模塊;
(3)使能EMAC控制模塊中斷(EWCTL);
3.3 MDIO模塊工作流程與驅動設計
MDIO模塊用于配制和檢測一個或多個連接在EMAC模塊上的PHY器件。初始化后MDIO模塊內部狀態(tài)機根據(jù)MDIO接口檢測信號自動檢測PHY器件的地址,根據(jù)協(xié)商結果返回連接狀態(tài)并返回信息到EMAC模塊。EMAC模塊根據(jù)MDIO狀態(tài)執(zhí)行相應配置操作。MDIO驅動過程如下:
(1)配置PREAMBLE和控制寄存器中的CLKDIV位;
(2)使能MDIO模塊通過設置控制寄存器的ENABLE位;
(3)進過一陣延遲后可以讀ALIVE寄存器來決定哪個PHY響應了,LINK寄存器決定哪一個已經(jīng)連接了;
(4)在USERPHYSELn寄存器中設置適當?shù)腜HY地址,并且設置LINKINTENB位來使能連接改變事件中斷;
(5)在MDIO寄存器中設置了中斷,為使用的USERACCESSn寄存器設置USERINTMASKSET寄存器中的MACn位。
驅動層函數(shù)主要調用CSL庫中以下函數(shù)對MDIO初始化,配置與操作。
初始化MDIO內部寄存器:MDIO_initPHY();
設置MDIO控制寄存器:MDIO_open();
通過MDIO接口讀取外部PHY寄存器值:MDIO_phyRegRead();
通過MDIO接口寫外部PHY寄存器值:MDIO_phyRegWrite();
定時查詢當前PHY的連接狀態(tài):MDIO_timerTick();
3.4 EMAC模塊工作流程與初始化
2EMAC模塊用來管理以太網(wǎng)數(shù)據(jù)包的接收、發(fā)送,根據(jù)MDIO模塊返回信息最多可以通過8個接收/發(fā)送通道傳輸以太網(wǎng)包描述符。初始化配置過程如下:
(1)使能EMAC模塊,關閉EMAC中斷(EWCTL寄存器);
(2)清除MAC控制寄存器(MACCONTROL)、接收控制寄存器(RXCONTROL)、發(fā)送控制寄存器(TXCONTROL)內容;
(3)設置16個描述符指針寄存器內容全部為0(RXnHDP、TXnHDP);
(4)清除所有36個統(tǒng)計狀態(tài)寄存器;
(5)初始化32個接收地址的RAM為0,設置相應接收/發(fā)送通道地址,設置MAC索引標識,設置網(wǎng)絡地址;
(6)初始化接收通道緩存,流控閾值等寄存器;
(7)設置MAC控制寄存器的相應位,此時不要設置RGMIIEN位;
(8)通過寫RXINTMASKCLEAR/TXINTMASKCLEAR寄存器清除所有不使用通道的中斷位;
(9)使能接收通道、發(fā)送通道中斷,初始化8 kbyte接收/發(fā)送描述符列表隊列;
(10)設置接收/發(fā)送寄存器的使能位,使能接收/發(fā)送。打開MAC控制寄存器的RGMIIEN位;
(11)設置EWCTL寄存器,使能器件中斷;
EMAC驅動層函數(shù)主要調用CSL庫EMAC函數(shù)中的以下函數(shù)完成配置,包的收發(fā),通道管理等功能。
EMAC控制模塊與EMAC模塊的初始化:EMAC_open();
EMAC包的接收中斷查詢:EMAC_RxServiceCheck();
EMAC包的發(fā)送中斷查詢:EMAC_TxServiceCheck();
EMAC對MDIO狀態(tài)查詢:EMAC_timerTick()。
為測試本文設計采集卡的千兆網(wǎng)絡性能,設計采用發(fā)送多組不同大小數(shù)據(jù)幀的方式,測試EMAC內部RAM占用情況和DSP二級緩存負載情況,以及不同大小數(shù)據(jù)幀的傳輸速度。測試結果如表1所示。
表1 采集卡千兆網(wǎng)絡性能測試
測試平臺與配置如下:
(1)工控機:CPU inter酷睿i7,主頻3.5 GHz。Intel EXPI9402PT 10 MHz/100 MHz/1 000 MHz自適應網(wǎng)卡;
(2)采集卡:DSP TI TMS320C6455,主頻1 GHz。NS DP83865 PHY芯片。
以DSP為核心的千兆網(wǎng)絡傳輸采集卡采用RGMII模式的MAC層與PHY層接口,簡化了物理傳輸線路。能夠可靠穩(wěn)定的實現(xiàn)千兆網(wǎng)絡傳輸功能。通過試驗測試數(shù)據(jù)結果分析,采集卡在較低的DSP負載情況下很好的實現(xiàn)了千兆以太網(wǎng)下的數(shù)據(jù)傳輸功能。DSP對于圖像等大數(shù)據(jù)包能夠很快的處理和實時傳輸。
[1]梁迅,熊水東. DM642嵌入式網(wǎng)絡接口開發(fā)設計[J]. 計算機工程,2007,33(27):277-279.
[2]鄭紅,劉振強,李振,等. 嵌入式DSP應用系統(tǒng)設計及實例剖析[M]. 北京:北京航空航天大學出版社,2012:82-86.
[3]Texas Instruments. DP83865 Gig PHYTER V 10/100/1000 Ethernet Physical Layer Datasheet[R]. 2004.
[4]Texas Instruments. TMS320C645x DSP EMAC-MDIO User’s Guide[S]. 2006.
[5]Texas Instruments. Texas Instruments TM320C6000 TCP/IP Network Developer’s Kit-Programmer’s Reference Guide[S]. 2003.
[6]Texas Instruments. Software Operation of Gigabit Ethernet Media Access Controller on TMS320C645x DSP[S]. 2006.
[7]朱飛. 基于DSP的快速以太網(wǎng)通信技術研究[D]. 華中科技大學,2004.
[8]楊旭光,鄧春健,丁鐵夫. 基于DSP的以太網(wǎng)通信接口的實現(xiàn)[J]. 武漢武漢理工大學學報(交通科學與工程版),2009(6):1108-1111.
劉云朋(1983-),男,漢,河南省上蔡縣人,焦作大學信息工程學院講師,碩士,主要研究方向為計算機應用、網(wǎng)絡信息及安全,liuyp_jz@163.com。
THEDevelopmentofGigabitEthenetCaptureCardandtheDesignmentofEthenetDriver*
LIUYunpeng1*,YUANQishuai2
(1.Jiaozuo University College of Information Engineering,Jiaozuo Henan 454003,China;2.Henan Vocational College of Industry and Information Technology,Jiaozuo Henan 454003,China)
Aiming at industrial on line image capture and transmission,a capture card is designed with gigabit ethenet transimission function. The capture card is composed with DSP and FPGA,implementing image capture with cameralink interface and image preprocessing. The capture card recording products information with control signal send by Photoelectric isolation device. The development of the hardware circuit design about DSP and gigabit PHY interface in RGMII mode,and the procedure of DSP ethenet driver design are disscussed. When data is transmitted at full wire rate,sending diffrient packages,testing CPU load and transimiting rate. The conclusion indicates that the capture card has efficient,and independent,coincidenting real-time industrial on line capture and transmission requirement.
capture card;DSP;gigabit ethernet;network driver
項目來源:河南省自然科學基金研究項目(132300410267);河南省信息技術教育研究項目(ITE12143)
2013-03-08修改日期:2013-04-09
TP98
:A
:1005-9490(2014)06-1141-04
10.3969/j.issn.1005-9490.2014.06.027