顧青松,艾斯卡爾·艾木都拉,馬博陽,劉兆沛
(1.新疆大學 信息科學與工程學院,烏魯木齊 830000;2.清華大學 計算機科學與技術(shù)系,北京 100084)
機載網(wǎng)絡通信系統(tǒng)結(jié)構(gòu)的發(fā)展過程分為4個階段:分立式航電系統(tǒng)、聯(lián)合式航電系統(tǒng)、綜合模塊化航電系統(tǒng)和分布式集成模塊化航空電子系統(tǒng)(DIMA,distributed)[1]。DIMA通過將硬件資源分成幾個較小的單元,分布在整個飛機上,降低了綜合模塊化航電系統(tǒng)中央處理模塊的尺寸、重量和冷卻要求,并通過安全關(guān)鍵型通信系統(tǒng)連接,提供了更大的靈活性[2]。從航空電子系統(tǒng)和機載網(wǎng)絡的發(fā)展過程可以看出,機載電子系統(tǒng)的數(shù)據(jù)交互需求越來越大,導致網(wǎng)絡擁堵、線路間干擾和線纜重量等問題越來越嚴重,傳統(tǒng)的通信網(wǎng)絡已經(jīng)不能滿足航電系統(tǒng)的需求[3-5]。
時間觸發(fā)以太網(wǎng)(TTE,time-triggered Ethernet)以太網(wǎng)是一種實時通信協(xié)議,它為分布式實時系統(tǒng)提供確定性實時通信服務,相比于集中式網(wǎng)絡系統(tǒng)的優(yōu)點在于:成本低,性能高[6]。IEEE標準委員會于 2002年提出了一種新的高精度時間同步標準,專門針對測試和測量、工業(yè)自動化、軍事系統(tǒng)、制造系統(tǒng)、電力公用系統(tǒng)等應用領(lǐng)域測量和控制的需求,其時鐘同步精度可達亞微秒級別[7-9]。國外研究機構(gòu)和企業(yè)都致力于TTE技術(shù)研究和產(chǎn)品應用,但這些核心技術(shù)基本上都掌握在TTTech公司手中,用作轎車、飛機和航天航空系統(tǒng)中關(guān)鍵的傳輸控制信號[10]。國內(nèi)對于時間觸發(fā)網(wǎng)絡的相關(guān)技術(shù)研究在各大航天科學院、研究所、高??蒲许椖恐腥蕴幱谘芯刻剿麟A段。
本文針對確定性機載網(wǎng)絡通信系統(tǒng)實時性強、可靠性高的需求,使用IEEE 1588時間同步協(xié)議設(shè)計了一種基于MicroBlaze的TTE終端的實現(xiàn)方案并進行了實驗測試。文章主要分為5個部分:第一部分介紹了TTE終端設(shè)計的整體結(jié)構(gòu);第二部分介紹了實現(xiàn)時間同步的方法;第三部分介紹了四余度機制的可靠性設(shè)計;第四部分進行測試和驗證;第五部分進行總結(jié)和展望。
新一代綜合航電系統(tǒng)對機載網(wǎng)絡通信系統(tǒng)的實時性、可靠性和確定性等方面的性能需求較高,然而嵌入式系統(tǒng)有內(nèi)核占比小,實時性高,專用性能強,響應快等特點,適合實時和多任務體系的要求[11]。在嵌入式系統(tǒng)中使用FPGA內(nèi)部的通用邏輯資源實現(xiàn)的 MicroBlaze軟核作為嵌入式處理器,外部搭建需要的相關(guān)IP核,可以實現(xiàn)可編程片上系統(tǒng)的設(shè)計。
硬件平臺以MicroBlaze為控制核心,主要由以下幾個模塊組成:電源模塊、時鐘模塊、定時器模塊、串口模塊、千兆以太網(wǎng)子系統(tǒng)通信模塊和片上搭載的外部存儲器DDR3 模塊,其功能如圖1所示。
圖1 硬件功能框圖
光通信功能由千兆以太網(wǎng)子系統(tǒng)通信模塊聯(lián)合光纖收發(fā)器完成,千兆以太網(wǎng)通信模塊在GTP的基礎(chǔ)上封裝以太網(wǎng)協(xié)議,而光纖收發(fā)器作為與外部設(shè)備連接的物理接口,內(nèi)部與GTP模塊相連,實現(xiàn)硬件平臺與上位機的數(shù)據(jù)交互。串口模塊基于Xilinx的UART IP 核完成,在外部使用USB轉(zhuǎn)串口模式與上位機相連,用于軟件程序debug。定時器模塊使用Timer IP核,主要用于記錄時間和實現(xiàn)定時器中斷,是完成時間同步的主要模塊。數(shù)據(jù)緩存模塊使用DDR3 IP核驅(qū)動核心板上的外部存儲器DDR3,用于數(shù)據(jù)寫入和讀取。
相比于普通的網(wǎng)絡接口,使用“光纖接口 + SFP光模塊”設(shè)計適配性好,抗干擾能力強,因此使用此模式實現(xiàn)硬件系統(tǒng)與上位機之間的通信。
硬件平臺與上位機之間的數(shù)據(jù)交互使用串行千兆介質(zhì)傳輸協(xié)議(SGMII)。光纖收發(fā)器集成了光電轉(zhuǎn)換電路和電光轉(zhuǎn)換電路,可以同時完成信號的接收和發(fā)送,避免用獨立原件搭建電路帶來的困難。SFP光電轉(zhuǎn)換模塊是可熱插拔的小封裝模塊,其體積是傳統(tǒng)的千兆位接口轉(zhuǎn)換器模塊的一半[12]。使用光纖收發(fā)器和SFP光電轉(zhuǎn)換模塊作為光纖通信的基礎(chǔ)硬件,可以提高系統(tǒng)的適配性,保證系統(tǒng)性能。
MicroBlaze軟核處理器通過四路光纖接口與四臺上位機通信的功能實現(xiàn),其系統(tǒng)平臺如圖2所示。
圖2 四通道網(wǎng)絡系統(tǒng)平臺框圖
在硬件平臺中使用單核MicroBlaze和4個以太網(wǎng)子系統(tǒng)IP核分別驅(qū)動四路SFP光通道,通過千兆 RJ45網(wǎng)線與4個PC端相連,完成千兆以太網(wǎng)光通信硬件總體設(shè)計。PC端通過串口與硬件平臺相連,查看debug數(shù)據(jù)。其中,4個以太網(wǎng)子系統(tǒng)IP核需要通過配置共享邏輯功能實現(xiàn)硬件平臺的開發(fā)[13]。
時間同步是時間觸發(fā)通信的基礎(chǔ)。對于時間觸發(fā)網(wǎng)絡,包含時間觸發(fā)網(wǎng)絡控制器、以太網(wǎng)控制器、TTE交換機和TTE交換機終端設(shè)備。TTE交換機終端與TTE交換機上的不同端口相接用做數(shù)據(jù)備份。
時間同步網(wǎng)絡系統(tǒng)是在四光口網(wǎng)絡基礎(chǔ)上加入了時間同步機制,系統(tǒng)框圖與四光口系統(tǒng)結(jié)構(gòu)大致相同。
本文采用的是端對端時鐘同步方案,主機與從機之間通過光口進行數(shù)據(jù)交換,在 SFP光口中插入光電轉(zhuǎn)換模塊,用千兆以太網(wǎng) RJ45 網(wǎng)線相連。時間同步過程嚴格按照 IEEE 1588 協(xié)議主從式同步方案,最后由從機計算出時間同步延時和偏差。從機使用串口通信模塊與 PC 端相連,可以將時間同步結(jié)果通過串口發(fā)送給 PC 端,在PC端看到時間延時和時間偏差數(shù)據(jù),硬件系統(tǒng)如圖3所示。
圖3 時間同步硬件系統(tǒng)框圖
在時間同步硬件系統(tǒng)中,主從節(jié)點的時鐘都是由定時器模塊產(chǎn)生。通過使用定時器模塊的定時中斷功能設(shè)計時鐘。
IEEE-1588精密時間協(xié)議(PTP,precision time protocol)可以封裝為兩層協(xié)議或四層協(xié)議,具體的格式大致分為兩類:1)Ethernet+PTP;2)Ethernet+IPv4+UDP+PTP[14]。
二層以太網(wǎng)PTP報文不需要進行IP報文和UDP報文封裝,直接將PTP報文加入到以太網(wǎng)幀的數(shù)據(jù)段中。這樣做的好處是鏈路中解析數(shù)據(jù)需要的時間減少了,可以提高時間的同步精度。缺點也很明顯,在整個以太網(wǎng)數(shù)據(jù)幀傳輸過程中,只進行了一次CRC數(shù)據(jù)校驗,如果數(shù)據(jù)出錯,就沒有一個數(shù)據(jù)容錯機制檢驗數(shù)據(jù)的可靠性。雖然在通信鏈路中,四層以太網(wǎng) PTP 報文的復雜度高,數(shù)據(jù)解析時間相對較慢,時間同步精度會降低,但是保障了數(shù)據(jù)的可靠性和完整性,所以本文采用四層以太網(wǎng) PTP 報文協(xié)議。時間同步協(xié)議幀格式如圖4所示。
圖4 四層以太網(wǎng) PTP 報文
其中的 PTP 報文包含3個部分:報文頭部、報文主體和報文擴展[15]。其中,報文頭部長度為 34 字節(jié),本文主要按照報文類型字段進行判斷,其余不用字節(jié)填充為 0x00;報文主體主要用于承載 PTP 報文時間戳,長度可變,本文設(shè)計長度為 7 字節(jié);報文擴展是可選部分,可以不做填充。
采用主從同步方式,PTP 事件報文可以不用攜帶時間戳,將 PTP 事件報文定義為 34 個字節(jié),PTP 通用報文定義為 41 個字節(jié)。在 PTP 報文頭部定義類型字段,主機發(fā)送 PTP 消息,從機根據(jù)報文類型(messageType)字段來判斷 PTP 報文類型,將4種報文類型字段分別定義為以下格式:
1)同步報文類型:0x00。
2)跟隨報文類型:0x08。
3)延遲請求報文類型:0x01。
4)延遲請求應答報文類型:0x09。
在嵌入式網(wǎng)絡設(shè)備中,由于硬件資源的限制,采用 LWIP(Lightweight IP)[16-17]輕量級 TCP/IP 協(xié)議棧實現(xiàn)千兆以太網(wǎng) UDP 通信。在使用 UDP 通信過程中,由于一個通道設(shè)置一個 MAC 地址、 IP 地址和端口號。即在建立四光口通信時,需要設(shè)置4個不同的 MAC 地址、 IP 地址和端口號,加入4個通信網(wǎng)絡和4個互不相關(guān)的 UDP 接收回調(diào)函數(shù),以便可以接收到4個端口同時發(fā)送過來的數(shù)據(jù),減少數(shù)據(jù)丟失現(xiàn)象,設(shè)計流程步驟如圖5所示。
圖5 UDP通信設(shè)計流程
主要分為以下5個步驟。
1)主函數(shù)中設(shè)置4個不同的 MAC 地址和 IP 地址。
2)調(diào)用 xemac_add()函數(shù)。 xemac_add()函數(shù)是 LWIP 中 netif_add()函數(shù)的封裝,其功能是將網(wǎng)絡接口加入網(wǎng)絡列表中。需要使用此函數(shù)把4個網(wǎng)口的網(wǎng)絡接口參數(shù)輸入網(wǎng)絡中。
3)在中斷初始化函數(shù)中,使用啟動中斷函數(shù),將4個以太網(wǎng)子系統(tǒng)中斷 Id 寫入函數(shù)中。調(diào)用此函數(shù)后,將出現(xiàn)中斷 Id 的任何從屬控制器掛起,用于響應中斷函數(shù)。
4)對于啟動應用程序 start_application()函數(shù),建立4個 UDP 端口和 UDP連接。使用 udp_new()函數(shù),創(chuàng)建 UDP PCB 結(jié)構(gòu),用于UDP通信;udp_bind()函數(shù),將PCB與本地地址綁定;udp_connect()函數(shù),使UDP PCB與遠程地址相關(guān)聯(lián)。
5)在接收數(shù)據(jù)方面,需要為UDP PCB設(shè)置接收回調(diào)函數(shù)。建立4個不同的udp_recv()回調(diào)函數(shù),防止在一個端口接收處理數(shù)據(jù)時占據(jù)所有進程,使其余端口出現(xiàn)數(shù)據(jù)丟失的情況。當接收pcb的數(shù)據(jù)報時,將會調(diào)用此回調(diào)函數(shù)。
本文通過定時器中斷設(shè)計時鐘,將時鐘劃分為:時、分、秒、毫秒和微秒5個部分。時間同步流程如圖6所示。
圖6 時間同步流程圖
其大致步驟為:
1)主節(jié)點向從節(jié)點發(fā)送同步報文并記錄發(fā)送時間t1,從節(jié)點收到報文并判斷報文類型是否為同步報文。如果是同步報文,記錄報文到達時間為t2;如果不是,則丟棄數(shù)據(jù)并重新接收下一組數(shù)據(jù)。
2)主節(jié)點將時間t1加入到跟隨報文的時間戳中并發(fā)送給從節(jié)點,從節(jié)點收到報文并判斷報文類型是否為跟隨報文。如果是跟隨報文,從節(jié)點提取時間戳得到時間t1并向主節(jié)點發(fā)送延時請求報文,記錄發(fā)送時間t3;如果不是,則丟棄數(shù)據(jù)并重新接收下一組數(shù)據(jù)。
3)主節(jié)點收到報文并判斷是否為延時請求報文。如果是,則記錄報文到達時間t4,并將時間t4加入到延時請求響應報文中,然后發(fā)送給從節(jié)點;如果不是,則將數(shù)據(jù)丟棄并重新進行時間同步流程。
4)從節(jié)點接收到報文后判斷是否為延時請求響應報文。如果是,則提取時間戳得到時間t4,并根據(jù)得到的4個時間計算出時間同步延時和偏差,修正從節(jié)點時鐘;如果不是,則將數(shù)據(jù)丟棄并重新進行時間同步流程。
機載網(wǎng)絡作為航空電子系統(tǒng)的互聯(lián)通道,其可靠性直接影響航電系統(tǒng)的正常工作乃至飛行器的安全[12]。為保證整個網(wǎng)絡通信系統(tǒng)的任務可靠性,通常采用高可靠的設(shè)計方案以及有效的容錯機制,保證在子系統(tǒng)出現(xiàn)故障時不會導致整個系統(tǒng)無法工作。本文在傳輸層采用 MD5(Message-Digest Algorithm 5)數(shù)據(jù)加密算法保證了數(shù)據(jù)的完整性,并采用四余度表決機制設(shè)計了一個容錯通信層保證通信系統(tǒng)的可靠性。
MD5數(shù)據(jù)加密算法用于提供消息的完整性保護,其基本原理是將數(shù)據(jù)信息壓縮成 128 位的 2 進制數(shù),并且產(chǎn)生信息摘要[18]。根據(jù) MD5 算法計算方式,不可能生成具有相同消息摘要的兩條消息。雖然現(xiàn)在此算法被已有碰撞攻擊破解了不可逆性,但是由于其在32位機器上計算速度快和易壓縮性,作為嵌入式數(shù)據(jù)加密還是很有必要的。發(fā)送端程序設(shè)計流程如圖7所示。
圖7 發(fā)送端 MD5 數(shù)據(jù)加密設(shè)計流程圖
將開源的C語言MD5算法移植進網(wǎng)絡中,發(fā)送端程序流程設(shè)計步驟如下:
1)需要發(fā)送的數(shù)據(jù)作為 MD5 算法輸入。
2)經(jīng)過 MD5 計算后得到32位16進制數(shù)據(jù)。
3)將 MD5 加密數(shù)據(jù)加入到發(fā)送數(shù)據(jù)幀幀尾。
4)發(fā)送數(shù)據(jù)幀。
在接收端需要將傳輸數(shù)據(jù)進行解析,提取數(shù)據(jù)幀后 32 位校驗數(shù)據(jù),再將剩余數(shù)據(jù)經(jīng)過 MD5 計算后得到的加密數(shù)據(jù)與提取的 32 位校驗數(shù)據(jù)進行對比,判斷整個數(shù)據(jù)幀的完整性和有效性。程序設(shè)計流程如圖8所示。
圖8 接收端 MD5 數(shù)據(jù)校驗設(shè)計流程圖
接收端程序流程設(shè)計步驟如下:
1)首先判斷接收到的數(shù)據(jù)包是否為空。
2)如果為空,將數(shù)據(jù)包丟棄,并釋放 pbuf 空間;不為空,將數(shù)據(jù)先提取出來放入數(shù)組緩存中。
3)提取數(shù)組的后32位16進制數(shù)據(jù),放入校驗數(shù)組中。
4)將提取后的數(shù)據(jù)作為 MD5 算法輸入。
5)得到的輸出數(shù)據(jù)與之前放入校驗數(shù)組的數(shù)據(jù)進行逐一對比,判斷兩組數(shù)據(jù)是否一致。如果相同,則數(shù)據(jù)正確;如果不同,就是數(shù)據(jù)出錯,將數(shù)據(jù)丟棄,清空數(shù)組緩存,準備接收下一組數(shù)據(jù)幀。
容錯通信層在通信系統(tǒng)的傳輸層和用戶服務程序的應用層之間,為了提高系統(tǒng)可靠性,機載網(wǎng)絡通信系統(tǒng)中采用了多余度的設(shè)計方案,避免單通道系統(tǒng)故障后無法保證系統(tǒng)安全工作[19]。多個余度同時工作時,如果多個信息來源的數(shù)據(jù)一致,直接將數(shù)據(jù)提交給上層服務程序即可;如果不一致,就需要進行余度表決,再將表決模塊得到的輸出數(shù)據(jù)傳送給上層服務程序[20]。
四余度表決控制系統(tǒng)的輸入是上一層MD5數(shù)據(jù)校驗層的輸出數(shù)據(jù)。單通道系統(tǒng)經(jīng)過數(shù)據(jù)校驗層后還需通過四余度表決層進行余度表決輸出,得到的最終數(shù)據(jù)便是正確傳輸數(shù)據(jù),程序設(shè)計流程如圖9所示。
圖9 四余度表決系統(tǒng)設(shè)計流程圖
四余度表決設(shè)計步驟如下:
1)4個通道分別判斷是否有數(shù)據(jù)傳輸進來,如果有數(shù)據(jù)傳輸,將接收此數(shù)據(jù)的通道數(shù)據(jù)標志位置為1;如果沒有數(shù)據(jù)傳輸,則通道數(shù)據(jù)標志位置為0。
2)把得到的4個通道的數(shù)據(jù)標志位相加,判斷其總和。如果總和值大于2,則采用比較表決,將各個通道的數(shù)據(jù)一一對比;如果總和值小于等于2,則說明通道數(shù)據(jù)不在同一時刻發(fā)送,或者在數(shù)據(jù)傳輸過程中出現(xiàn)丟包情況,此時將數(shù)據(jù)丟棄。
3)在數(shù)據(jù)對比過程中,定義4個相似度標志位。若通道數(shù)據(jù)相同,相似度標志位加一;若通道數(shù)據(jù)不同,相似度標志位加零。此標志位用來對各個通道的傳輸數(shù)據(jù)相同性和完整性判斷。
4)對相似度標志位判斷,如果此通道的相似度數(shù)值最大且大于等于2,則把此通道的數(shù)據(jù)作為正確數(shù)據(jù)存入 DDR 中?;蛘咴O(shè)置回環(huán),把正確數(shù)據(jù)作為4個通道的發(fā)送數(shù)據(jù),發(fā)送給上位機,在上位機中觀察此接收數(shù)據(jù)與上位機發(fā)送給硬件平臺的數(shù)據(jù)是否相同。如果此通道的相似度數(shù)值等于1,會出現(xiàn)兩種情況。一是只有兩個通道的數(shù)據(jù)相等且這兩個通道相似度為1,其余通道數(shù)據(jù)都不相同,則正確數(shù)據(jù)選擇相似度為1的通道數(shù)據(jù);二是所有的通道相似度都為1,代表4個數(shù)據(jù)通道兩兩相同,無法判斷正確數(shù)據(jù)是哪條通道的,則將所有通道的數(shù)據(jù)丟棄,重新接收下一組數(shù)據(jù)。如果相似度等于0,則說明數(shù)據(jù)出現(xiàn)錯誤,需要把所有通道的數(shù)據(jù)丟棄,重新接收下一組數(shù)據(jù)。
硬件平臺采用 Xilinx 公司生產(chǎn)的AX7101 FPGA 開發(fā)板,其型號為 XC7A100T-2FGG484I,選用的 FPGA 芯片為 Xilinx 公司 Artix-7 系列的 XC7A100T。在通信接口方面,4 個 GTP 收發(fā)器連接了最高可達 6.6 Gb/s,用于光纖通信,帶寬為1 Gbps,滿足高速數(shù)據(jù)傳輸和交換的要求。硬件開發(fā)平臺為 Xilinx 公司設(shè)計的軟件 Vivado 2017.4,軟件驅(qū)動開發(fā)平臺為 Xilinx SDK 2017.4。本軟件開發(fā)中使用 C/C++ 進行開發(fā)。
將光電轉(zhuǎn)換模塊插入 SFP 光口中,通過 RJ45 千兆以太網(wǎng)網(wǎng)線把硬件平臺與 PC 端相連。在 PC 端設(shè)置以太網(wǎng)本地連接適配器,將本地主機 IPv4 地址設(shè)置為:192.168.1.100,與硬件平臺同一網(wǎng)段。打開網(wǎng)絡調(diào)試助手,配置本地主機端口號為:5101。遠程主機地址設(shè)置為:192.168.1.10,端口號為:5001。本地主機向遠程主機發(fā)送 20 個字節(jié)的十六進制數(shù):0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,0x6D,0x73,0x6F,0x66,0x74,0x2E,0x63,0x6E。PC 向硬件平臺發(fā)送數(shù)據(jù),硬件平臺收到數(shù)據(jù)后將數(shù)據(jù)再發(fā)還給上位機,完成一個回環(huán)測試,通過數(shù)據(jù)日志可以看到發(fā)送數(shù)據(jù)與接收數(shù)據(jù)一致,硬件平臺與上位機可以正常通信。
使用 iperf 軟件測試連接速率,輸入命令“iperf-c 192.168.1.10-u-b1000M-t 60-I 5-l 64k-p5001”,指定 iperf 以客戶端啟動,使用 UDP 連接到 IPv4 地址為:192.168.1.10 ,端口號為:5001 的服務器上,傳輸帶寬為 1 000 M,緩沖區(qū)大小為 64 kB,測試時間為 60 s,每隔 5 s 打印輸出測試結(jié)果。如圖10所示。
圖10 UDP連接性能測試
Interval 是測試時間段,Transfer 表示該時間段內(nèi)傳輸?shù)臄?shù)據(jù)總量,Bandwidth 為該時間段內(nèi)的平均帶寬。從測試結(jié)果可以看出,UDP 連接在 5 s 內(nèi)的傳輸數(shù)據(jù)總量在 346~387 Mbytes,5 s 內(nèi)平均傳輸數(shù)據(jù)量約為 370.3 Mbytes,平均每秒傳輸數(shù)據(jù)量約為 74 Mbytes/s。雖然達不到理論上千兆以太網(wǎng)每秒傳輸數(shù)據(jù)的要求,但也遠遠高于百兆以太網(wǎng)的每秒傳輸數(shù)據(jù)量標準。其每分鐘傳輸數(shù)據(jù)總量可達4.34 GB,在這段時間內(nèi)帶寬穩(wěn)定在 600 Mbits/s 以上,平均帶寬約為 621 Mbits/s。
在硬件平臺間采用端對端的測試。從節(jié)點采用的是 AX7101 FPGA 通信板卡,主節(jié)點采用的是米聯(lián)客的 MA704FA-200T 開發(fā)板。此開發(fā)板的核心板使用 Xilinx Artix-7 FPGA 芯片,型號為 XC7A200T-2FBG676I。在通信接口方面,開發(fā)板上有 2 路 SFP 光口,速度高達 6.6 Gb/s。測試結(jié)果通過串口發(fā)送給 PC 端。兩個硬件平臺通過光纖接口插上 SFP 光電轉(zhuǎn)化模塊相連,通信鏈路采用 RJ45 千兆網(wǎng)線。從機將測試數(shù)據(jù)計算結(jié)果通過 UART 發(fā)送給上位機,上位機在串口調(diào)試助手中觀察測試數(shù)據(jù)。
將時間同步周期設(shè)置為 1 s,測試 10 次時間同步后的鏈路傳輸延時,延時數(shù)據(jù)如圖11所示。
經(jīng)過 10 次時間同步,其延時數(shù)據(jù)首先呈明顯下降然后平穩(wěn)的趨勢。由于定時器定時中斷時間是 100 μs 觸發(fā)一次,所以時鐘的最小單位是 100 μs。根據(jù)時間同步算法和得到的延時數(shù)據(jù)可以推算出延時區(qū)間在 150~250 μs,誤差區(qū)間在 100 μs。由于無法得到更精確的延時數(shù)值,且時間同步精度達到了微秒級,所以誤差仍在可容受范圍。
將4個通道的本地主機 IPv4 地址分別設(shè)置為:192.168.1.100、192.168.2.100、192.168.3.100、192.168.4.100。主機端口號修改至空閑端口,分別為:31777、32777、33777、34777。遠程主機 IPv4 地址分別設(shè)置為:192.168.1.10、192.168.2.10、192.168.3.10、192.168.4.10。遠程主機端口號分別設(shè)置為:317、32769、33769、34769。使用網(wǎng)絡調(diào)試助手進行測試。
首先使用MD5校驗工具將測試數(shù)據(jù)進行計算,得到的MD5加密數(shù)據(jù)為32位16進制數(shù):0xC20AD4D76FE97759AA27A0C99BFF6710,測試數(shù)據(jù)為4位16進制數(shù)(0x31,0x32),發(fā)送數(shù)據(jù)為測試數(shù)據(jù)加上MD5加密數(shù)據(jù)。
為了測試設(shè)計的四余度表決機制和 MD5 數(shù)據(jù)校驗的可靠性,對整個系統(tǒng)進行了3個方面的測試:
1)發(fā)送相同的測試數(shù)據(jù)和 MD5 校驗值,測試了工程的完整性和準確性。
2)修改 MD5 加密數(shù)據(jù),測試了傳輸層數(shù)據(jù)校驗的可靠性。
3)對四余度表決系統(tǒng)進行測試:首先對雙通道發(fā)送兩個不同的數(shù)據(jù),其余通道數(shù)據(jù)與其中一個通道數(shù)據(jù)相同,測試余度表決機制符合設(shè)計。其次,對三通道發(fā)送不同數(shù)據(jù),剩余通道與其中一個通道數(shù)據(jù)相同,分析了測試結(jié)果符合設(shè)計。最后,將四通道分成兩組,兩組數(shù)據(jù)不同但組內(nèi)通道數(shù)據(jù)相同。經(jīng)過測試,得到的結(jié)果符合設(shè)計,如圖12所示。
圖12 最終測試結(jié)果圖
本文設(shè)計了一種基于 MicroBlaze 的時間觸發(fā)光以太網(wǎng)終端的方案,可以滿足航電系統(tǒng)的高帶寬、強實時、高可靠的要求。實現(xiàn)了以單核 MicroBlaze為核心的四光口千兆以太網(wǎng)光通信方案,提出了一種使用 MicroBlaze 實現(xiàn)時間同步功能方法。針對機載網(wǎng)絡的可靠性問題,在傳輸層使用 MD5 數(shù)據(jù)加密算法,提高數(shù)據(jù)的完整性。設(shè)計了一種四余度表決機制解決數(shù)據(jù)一致性問題,提高機載網(wǎng)絡系統(tǒng)可靠性。但仍有許多不足之處,由于在時間同步過程中沒有設(shè)計合適的時間補償機制,時間同步誤差區(qū)間仍然不小,需要設(shè)計時間補償機制增加時間同步精度。