杜佐勤+++余慶漢
摘 要:EtherCAT是一種實時的工業以太網技術,使用特殊的以太網類型,過程數據可以在以太網幀內直接傳輸。EtherCAT數據幀在從站節點是通過硬件進行處理,只有很小的延時。文章介紹EtherCAT協議原理和特點,并通過EtherCAT主站和從站的軟硬件設計,實現了倒車影像的采集傳輸和顯示。倒車影像的數據量比較大,實時性要求很高,通過EtherCAT網絡傳輸能夠很好地解決倒車影像的實時同步顯示。
關鍵詞:EtherCAT協議;IMX6Q;可視倒車;ET1100
1 概述
隨著汽車安全監控需求的日益增加,動態圖像信息需要實現同步實時傳輸,傳統的Ethernet、USB等通訊方式已經滿足不了需求。EtherCAT是由德國自動化公司BECKHOFF于2003年提出的實時工業以太網技術[1]。EtherCAT技術傳輸速度快,延時很小,一幀EtherCAT幀可以傳輸1400多字節的數據,可以滿足大數據的實時傳輸。
本文章介紹了一種采用實時以太網EtherCAT技術,倒車影像采集器作為從站,將高度壓縮的倒車影像數據實時傳輸到EtherCAT主站進行實時顯示。整個設計采用主從模式,系統采用飛思卡爾IMX6Q作為EtherCAT主站,采用飛思卡爾IMX6Q+Beckhoff公司的ET1100作為從站。
2 EtherCAT原理和特點
EtherCAT是目前傳輸最快的工業以太網之一,EtherCAT使用標準的以太網電纜進行傳輸。EtherCAT采用主從模式,從站節點可以連接成總線型、星型等幾乎所有的拓撲結構[2]。
EtherCAT節點的順序和網絡中的以太網端子的物理順序無關,節點間可以通過組播、廣播和多播的方式實現通訊。標準的以太網幀可以包含一個或多個子報文,多個從站節點可以使用同一EtherCAT幀進行通訊。表1是標準的EtherCAT幀結構,其中包括目的地址、源地址、幀類型以及報文數據和幀校驗。
在EtherCAT系統中,通過主站發送數據和接收數據。數據幀由主站發出,經過第一個從站時進行解碼,后續從站不需要再進行解碼操作。數據幀經過從站節點時,每個節點可以根據邏輯地址在屬于自己的報文中進行數據的讀取和寫入,當節點根據報文頭中的命令成功對數據幀進行操作后,從站會將該報文的WKC寄存器進行加1。數據幀經過所有從站節點后由EtherCAT系統中的末端節點將數據幀直接返回主站,主站比較返回報文中的WKC值進行校驗數據幀的正確性。
3 系統硬件設計
EtherCAT從站硬件平臺由兩個硬件模塊組成,一個是基于飛思卡爾IMX6Q的視頻采集模塊,另一個是EtherCAT實時數據傳輸模塊(ESC從站從站控制器)。整體設計是從站處理器IMX6Q通過CCD攝像頭從外部采集到高清視頻數據進行H264壓縮,然后將壓縮后的數據寫入EtherCAT實時傳輸模塊。EtherCAT實時傳輸模塊主要任務是將壓縮后的視頻數據嵌入到EtherCAT幀中進行傳輸。
圖像采集是基于IMX6Q的CCD攝像頭,CCD攝像頭通過TVP5150視頻采集芯片進行采集視頻數據,經過IMX6Q進行硬件H264壓縮編碼。圖1為TVP5150芯片接口電路圖,TVP5150芯片通過I2C總線進行初始化配置,數據接口連接到IMX6Q的CSI0接口。
通過CCD采集的視頻數據量比較大,進行實時網絡傳輸會產生延遲。H264圖像壓縮比大約為102:1,CCD攝像頭采集一秒為30幀視頻圖像,經過H264壓縮后數據量大大減少,加上EtherCAT傳輸速度非常快,視頻數據可以達到很好的實時傳輸和顯示效果。
ET1100從站控制芯片主要負責接收、處理和轉發主站發送的EtherCAT幀,解析主站發送的命令并執行。ESC芯片通過內部的硬件完成EtherCAT數據幀處理和轉發,數據傳輸過程產生大約只有10ns的時間延遲[3]。
ESC從站控制芯片通過配置E2PROM相應寄存器來實現數據接口模式。從站可以配置成I/O模式、微處理器模式和SPI模式。
I/O模式為簡單從站控制方式,ESC直接對I/O端子進行控制,可以達到非常快的刷新速度。控制100個輸入輸出數據均為8字節的伺服軸只需要100us[4]。微處理器模式和SPI模式則是復雜從站控制模式,ESC中的數據通過微處理器進行讀寫和處理。
ET1100功能的配置是通過芯片的配置引腳來完成,引腳配置就是通過對引腳接上上拉或下拉電阻,連接上拉電阻表示配置為1,連接下拉電阻表示配置為0。ET1100芯片上電后會自動將配置引腳的信號讀取寫入到配置寄存器中,芯片掉電或復位后仍然可以讀取配置引腳的配置信息。
本設計采用ET1100作為MAC控制芯片,接口電路如圖2所示,ET1100與物理層芯片PHY之間的接口通過MII連接,MII是將不同類型的PHY與相同MAC相連接的通用總線。
EtherCAT主站控制器對硬件沒有特別的要求,只需要控制器帶有普通的以太網卡。主站是基于飛思卡爾I.MX6系列處理器,為高清視頻處理提供硬件編解碼。
主站除了CPU外圍基礎的電路之外,只需要擴展一個普通的以太網接口即可以配置成EtherCAT主站。顯示器采用7寸電容屏,分辨率是800*480。
4 系統軟件設計
4.1 從站軟件設計
EtherCAT從站軟件設計主要分為兩部分,分別是CCD攝像頭采集并進行H264壓縮和從站控制芯片ET1100的配置。
TVP5150的配置不會很復雜,主要是通過I2C來進行配置,比如色調,對比度,亮度,飽和度和銳度等等。需要在內核源碼中添加一個支持TVP5150的I2C設備,TVP5150的I2C地址由PIN11來決定,上拉為BAH,下拉為B8H。
驅動程序主要是通過I2C來對TVP5150寄存器進行設置,主要是0x03,0x15,0xca,0x04,0x0d等,通過0x1a和0x1b是設置輸入通道。
通過對TVP5150正確配置后,對設備節點video0進行操作,可以獲取視頻原始數據。
采用飛思卡爾的IMX6Q處理器,使用libvpu.so和libipu.so硬件編解碼庫可以對視頻數據進行格式轉換和H264硬件壓縮。
ET1100芯片的FMMU寄存器配置通過邏輯映射方式。EtherCAT幀從站報文最大可以包含1486字節的數據,這里傳輸一路視頻的情況下,可以設置傳輸的數據長度為1480字節,一路視頻數據需要使用一個SM緩存管理。對應表2的FMMU配置,設置SM0的起始地址為0x1000,數據長度為1480Byte,主站可以通過相應的邏輯地址對從站進行尋址并訪問。
設置從站報文頭的起始地址為0x00000000、字節長度為1480、命令為LRD(讀),就可以實現對視頻數據的讀取。
從站程序流程圖如圖3所示,從站主要任務是采集視頻數據,接收主站數據幀,根據主站發送的命令進行數據讀寫和執行相應命令。
4.2 主站軟件設計
大多數EtherCAT主站都是使用第三方提供的軟件協議棧,如Koenig、Acontis、IGH等。本設計采用開源的IGH EtherCAT協議棧來實現主站。
IGH EtherCAT Master是基于Linux下的一套開源EtherCAT主站協議軟件,包含網卡驅動,主站模塊以及應用層使用的支持庫。
IGH開源源碼在1.5版本后提供了一個EtherCAT通用網卡驅動,使用普通網卡就能夠實現EtherCAT協議。為了保證傳輸的實時性,主站模塊插入到內核層,實現對EtherCAT協議的解析,任務調度以及為應用程序提供接口。用戶可以通過編寫內核模塊來實現應用程序,也可以通過對設備節點的操作來實現應用程序。IGH開源軟件為Linux用戶提供了多種命令行工具,可以實現直接對EtherCAT從站的訪問和設置。可以查看如PDO數據、SDO參數、總線配置以及從站配置參數等。
主站軟件驅動部分需要將IGH源碼移植到IMX6Q平臺,具體如下:
(1)配置源碼。
(2)編譯源碼并安裝。
(3)復制通用網卡驅動和主站驅動到output文件夾下。
(4)將output文件夾打包。
(5)將output.tar.bz2下的文件解壓到IMX6Q文件系統相應目錄。
(6)復制ec_master.ko到/lib/modules/內核版本號目錄下。
(7)配置rules,創建設備號。
至此,就完成了IGH源碼移植到IMX6Q平臺,接下來就可以通過IMX6Q來實現EtherCAT通訊。
主站啟動EtherCAT協議時候需要先根據主站網卡的MAC地址來修改主站模塊的MAC地址,然后再啟動EtherCAT協議,并安裝EtherCAT通用網卡驅動。
通過上面的操作加載了EtherCAT內核模塊,就可以通過設備節點EtherCAT0來操作EtherCAT從站,主站應用程序流程圖如圖4。主從站通過網線連接,在Linux命令行下輸入ethercat pdos命令,可以測試主從站軟硬件是否正常,還可以獲取到從站控制器的配置,包括幾個同步管理通道、物理起始地址、控制字ControlRegister包含該通道的傳輸方式和方向、DefaultSize表示該通道的大小、PDO的基本配置。主站應用程序中,需要根據ethercat pdos命令輸出的信息填充相關數據結構體,創建過程數據域后,需要將PDO的相關信息注冊到過程數據域中。這樣主站應用層就可以使用EC_READ_U32()和EC_WRITE_U32()函數通過EtherCAT幀對從站進行讀寫操作。
主站控制器IMX6Q使用的系統是Linux3.0.35+QT4.8.5,主界面在QT上設計的,實現倒車影像的實時顯示。
5 結束語
本設計是為了解決汽車上的倒車影像數據實時傳輸的問題,而提出的一種實現方案。主要是通過EtherCAT技術實時傳輸壓縮的倒車影像數據。
從站通過CCD進行視頻采集,經過IMX6Q的硬件H264編碼,主從站通過EtherCAT協議進行視頻數據傳輸,主站接收數據后通過IMX6Q硬件解碼并顯示視頻數據。
參考文獻
[1]Du H, Li M, Meng J. Study of EtherCAT Network Control Technology in vision Measurement System[C].International Conference on Information System and Computation Intelligence,2011: 322-325.
[2]向乾亮.實時以太網EtherCAT系統設計及在電力系統中的應用[D].北京:華北電力大學,2008.
[3]德國倍福公司.實時以太網:I/O層高速以太網[Z].工業以太網與現場總線.
[4]EtherCAT技術組.EtherCAT-以太網現場總線[Z].