劉洋 張志平 王晨博
摘要:該文提出了一種時(shí)間觸發(fā)以太網(wǎng)數(shù)據(jù)捕獲和存儲(chǔ)方法,解決了基于數(shù)據(jù)幀錯(cuò)誤類(lèi)型、協(xié)議類(lèi)型、虛鏈路或目的MAC地址的過(guò)濾和捕獲、數(shù)據(jù)幀組織存儲(chǔ)和解析等問(wèn)題,滿足1Gbps和10Gbps速率的時(shí)間觸發(fā)以太網(wǎng)的同步和通信等功能的調(diào)試和驗(yàn)證需求。
關(guān)鍵詞:TTE;數(shù)據(jù)捕獲;存儲(chǔ);虛鏈路
中圖分類(lèi)號(hào):TP393 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)05-0008-03
1 引言
隨著信息技術(shù)的發(fā)展,工業(yè)、航空等領(lǐng)域的電子設(shè)備和系統(tǒng)越來(lái)越重視任務(wù)的實(shí)時(shí)性、安全性、確定性,傳統(tǒng)的以太網(wǎng)已經(jīng)不能滿足該需求,因此,時(shí)間觸發(fā)以太網(wǎng) (Time Triggered Ethernet,TTE) 應(yīng)運(yùn)而生。TTE是TTTech公司針對(duì)航空、航天領(lǐng)域等特殊應(yīng)用而研發(fā)的一種高性能、強(qiáng)實(shí)時(shí)以太網(wǎng)[1],兼容標(biāo)準(zhǔn)以太網(wǎng)IEEE802.3,提供微秒級(jí)的時(shí)鐘同步,通信速率可達(dá)1 Gb/s。TTE應(yīng)用廣泛,例如航空電子技術(shù),工業(yè)自動(dòng)化等領(lǐng)域[2]。
在符合IEEE802.3標(biāo)準(zhǔn)的傳統(tǒng)以太網(wǎng)中,網(wǎng)絡(luò)中的設(shè)備采用事件觸發(fā)機(jī)制,采用先到先服務(wù)的原則,可以在任何時(shí)間點(diǎn)接入網(wǎng)絡(luò)。不同的網(wǎng)絡(luò)設(shè)備之間通過(guò)共享介質(zhì)進(jìn)行通信,在通信過(guò)程中,個(gè)別消息的傳輸將產(chǎn)生不確定的抖動(dòng)和累積延遲。為了減少這樣的情況,ARINC公司在標(biāo)準(zhǔn)以太網(wǎng)的基礎(chǔ)上,制定了ARINC664標(biāo)準(zhǔn),其中第7部分為全雙工交換式以太網(wǎng)(AFDX網(wǎng)絡(luò)),在數(shù)據(jù)鏈路層增加了虛擬鏈路(VL)、帶寬分配間隙(BAG)、抖動(dòng)管理機(jī)制,有效減少了報(bào)文傳輸過(guò)程中的報(bào)文沖突,并且具備了實(shí)時(shí)性和確定性[3],滿足航電系統(tǒng)中各設(shè)備信息傳輸?shù)目煽啃院痛_定性要求。
SAE組織發(fā)布了AS6802時(shí)間觸發(fā)以太網(wǎng)(TTE)網(wǎng)絡(luò)標(biāo)準(zhǔn),兼容標(biāo)準(zhǔn)以太網(wǎng)和AFDX網(wǎng)絡(luò),使用網(wǎng)絡(luò)設(shè)備之間協(xié)調(diào)統(tǒng)一的網(wǎng)絡(luò)時(shí)間,以減少傳輸延時(shí)和抖動(dòng),從而在單一網(wǎng)絡(luò)中滿足不同事實(shí)和安全等級(jí)的應(yīng)用需要。AS6802標(biāo)準(zhǔn)支持時(shí)間觸發(fā)機(jī)制的時(shí)間觸發(fā)消息(Time-Triggered消息,簡(jiǎn)稱(chēng)TT消息)、事件觸發(fā)機(jī)制的速率限制消息(Rate-Constraint消息,簡(jiǎn)稱(chēng)RC消息)和盡力而為消息(Best-Effort消息,簡(jiǎn)稱(chēng)BE消息)以及用于統(tǒng)一時(shí)間的協(xié)議控制幀(Protocol Control Frame,簡(jiǎn)稱(chēng)PCF消息)。
傳統(tǒng)的以太網(wǎng)ET(Event-Triggered)網(wǎng)絡(luò)由外部環(huán)境控制,對(duì)來(lái)自外部事件的刺激做出反應(yīng),而TTE通過(guò)內(nèi)部的、集中的調(diào)度來(lái)控制自身活動(dòng)與外部環(huán)境的交互。在網(wǎng)絡(luò)系統(tǒng)中,為了防止單個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)故障引發(fā)整個(gè)網(wǎng)絡(luò)故障,經(jīng)常采用雙余度或者多余度的網(wǎng)絡(luò)結(jié)構(gòu),以提高網(wǎng)絡(luò)系統(tǒng)的可靠性[4]。TTE相比于傳統(tǒng)以太網(wǎng),具有以下優(yōu)勢(shì):
1)適用性強(qiáng)。TTE可以應(yīng)用于從簡(jiǎn)單的網(wǎng)絡(luò)系統(tǒng)到高可靠性和高安全性的網(wǎng)絡(luò)系統(tǒng)等的各個(gè)層次的網(wǎng)絡(luò),允許同時(shí)采用事件觸發(fā)和時(shí)間觸發(fā)機(jī)制;TTE能夠適應(yīng)10Mbit/s、100Mbit/s、1000Mbit/s等多種速率的帶寬網(wǎng)絡(luò),可充分利用現(xiàn)有帶寬,提高通信網(wǎng)絡(luò)效率;
2)兼容性好。TTE網(wǎng)絡(luò)完全兼容標(biāo)準(zhǔn)以太網(wǎng)IEEE802.3協(xié)議[5],因此TTE無(wú)須改變現(xiàn)有網(wǎng)絡(luò)和現(xiàn)有端點(diǎn)系統(tǒng)的應(yīng)用軟件,只需在標(biāo)準(zhǔn)以太網(wǎng)中為交換機(jī)和端系統(tǒng)配備時(shí)間觸發(fā)功能即可運(yùn)行;
3)成本低。得益于TTE的兼容性,TTE網(wǎng)絡(luò)的成本能夠得到很好的控制,是TTE得到廣泛應(yīng)用的重要因素。
為了解決基于數(shù)據(jù)幀錯(cuò)誤類(lèi)型、協(xié)議類(lèi)型、虛鏈路或目的MAC地址的過(guò)濾和捕獲、數(shù)據(jù)幀組織存儲(chǔ)和解析等問(wèn)題,本文提出了一種TTE數(shù)據(jù)捕獲方法,滿足1Gbps和10Gbps速率的TTE同步和通信等功能的調(diào)試和驗(yàn)證需求。
2 TTE協(xié)議控制幀
TTE通過(guò)一個(gè)特殊的協(xié)議控制幀——Protocol Control Frame(PCF),來(lái)實(shí)現(xiàn)時(shí)鐘同步的控制機(jī)制。TTE協(xié)議控制幀(PCF)的結(jié)構(gòu)如圖1所示。TTE協(xié)議幀的Payload字段包含著PCF幀的所有內(nèi)容,其Type字段的值為0x891d [6]。本文章所提到的一種時(shí)間觸發(fā)以太網(wǎng)數(shù)據(jù)的捕獲和存儲(chǔ)方法,都是通過(guò)PCF幀中所包含的信息進(jìn)行的。
3 TTE數(shù)據(jù)捕獲方法
TTE數(shù)據(jù)捕獲過(guò)程主要包括以下步驟:
步驟1:接收功能從MAC層接收數(shù)據(jù)幀,在第1個(gè)比特位到達(dá)時(shí),記錄從RTC功能讀取的時(shí)鐘值,記為時(shí)間戳Fts;
步驟2:在MAC層接收數(shù)據(jù)時(shí),檢查是否存在以下錯(cuò)誤:1)超長(zhǎng)幀錯(cuò)誤;2)非對(duì)齊幀錯(cuò)誤;3)幀校驗(yàn)錯(cuò)誤;4)類(lèi)型長(zhǎng)度域錯(cuò)誤。
如果MAC錯(cuò)誤過(guò)濾未使能,上述錯(cuò)誤數(shù)據(jù)也將被接收功能接受。錯(cuò)誤a數(shù)據(jù)最多存儲(chǔ)字節(jié)數(shù)為MAX_CAPTURE_LEN,錯(cuò)誤b數(shù)據(jù)存儲(chǔ)對(duì)齊的字節(jié),丟棄未對(duì)齊的比特位,錯(cuò)誤c數(shù)據(jù)、錯(cuò)誤d數(shù)據(jù)按照實(shí)際接收的內(nèi)容存儲(chǔ),并記錄數(shù)據(jù)的錯(cuò)誤類(lèi)型。
步驟3:通過(guò)MAC接收的幀,依據(jù)緩沖管理控制器配置對(duì)數(shù)據(jù)幀字段進(jìn)行檢查,檢查內(nèi)容包含以下幾項(xiàng):1)CS幀接收使能;2)CA幀接收使能;3)IN幀接收使能;4)IN幀成員閾值;5)TT幀接收使能;6)RC幀接收使能;7)BE幀接收使能。
步驟4:通過(guò)對(duì)步驟2和步驟3所檢查的數(shù)據(jù),比較數(shù)據(jù)幀實(shí)際長(zhǎng)度FrameLen和MAX_CAPTURE_LEN: