詹 鵬,周 新
(1.中國西南電子技術(shù)研究所,成都 610036;2.空軍裝備部駐成都地區(qū)第三軍事代表室,成都 610036)
航空電子系統(tǒng)的發(fā)展經(jīng)歷了分立式、聯(lián)合式到綜合化的發(fā)展過程,機(jī)載綜合化電子系統(tǒng)變得越來越復(fù)雜。作為航電系統(tǒng)信息傳輸?shù)耐ǖ?,機(jī)載總線網(wǎng)絡(luò)變得越來越重要,綜合化航電系統(tǒng)對(duì)機(jī)載總線網(wǎng)絡(luò)的傳輸速率、確定性、可靠性等都提出了較高要求。常用的控制器局域網(wǎng)(Controller Area Network,CAN)、以太網(wǎng)等總線網(wǎng)絡(luò)采用了事件觸發(fā)傳輸方式,數(shù)據(jù)傳輸時(shí)刻是隨機(jī)的,當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)發(fā)起傳輸時(shí)可能發(fā)生沖突,在網(wǎng)絡(luò)負(fù)荷較重時(shí),數(shù)據(jù)傳輸?shù)募皶r(shí)性無法得到保證。時(shí)間觸發(fā)傳輸通過分時(shí)復(fù)用的方法,將整個(gè)信道的傳輸時(shí)間劃分為若干時(shí)隙并分配給各個(gè)節(jié)點(diǎn),可有效避免數(shù)據(jù)包爭用物理鏈路,解決了網(wǎng)絡(luò)可能存在的沖突、數(shù)據(jù)幀擁塞排隊(duì)問題。時(shí)間觸發(fā)傳輸通過全局時(shí)間同步實(shí)現(xiàn)無沖突的數(shù)據(jù)傳輸,數(shù)據(jù)傳輸?shù)淖畲髸r(shí)延是可預(yù)知的。時(shí)間觸發(fā)傳輸與事件觸發(fā)傳輸相比,在傳輸確定性上有很大優(yōu)勢(shì)。采用時(shí)間觸發(fā)傳輸機(jī)制的常用總線包括時(shí)間觸發(fā)協(xié)議(Time-triggered Protocol,TTP)、時(shí)間觸發(fā)CAN(Time-triggered CAN,TT-CAN)、時(shí)間觸發(fā)以太網(wǎng)(Time-triggered Ethernet,TTE)[1]等,并受到了廣泛的關(guān)注和應(yīng)用。
光纖通道(Fiber Channel,F(xiàn)C)是美國國家標(biāo)準(zhǔn)委員會(huì)制定的高速串行傳輸協(xié)議。FC具備高帶寬、高可靠性、高穩(wěn)定性等優(yōu)點(diǎn),采用了光纖互連,抗電磁干擾能力強(qiáng),業(yè)界在此基礎(chǔ)上提出了光纖通道航空電子環(huán)境(Fibre Channel Avionics Environment,FC-AE)協(xié)議族。FC在F-35、“長弓阿帕奇”等項(xiàng)目中已得到了成功應(yīng)用。FC采用了交換式全雙工通信方式,不存在數(shù)據(jù)沖突問題,但交換機(jī)的存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制同樣使通信延遲具有不確定性(網(wǎng)絡(luò)交換排隊(duì)延遲)。普通的FC采用事件觸發(fā)傳輸方式,由于傳輸速率較高,當(dāng)網(wǎng)絡(luò)負(fù)荷較低時(shí)數(shù)據(jù)傳輸時(shí)延較低,可滿足常規(guī)應(yīng)用需求,然而在網(wǎng)絡(luò)負(fù)荷較重的場(chǎng)合,數(shù)據(jù)傳輸時(shí)延的影響就會(huì)凸顯出來。借鑒時(shí)間觸發(fā)傳輸思想,可在FC網(wǎng)絡(luò)中引入時(shí)間觸發(fā)傳輸機(jī)制,從而提高數(shù)據(jù)傳輸?shù)臅r(shí)間確定性。
考慮到FC傳輸確定性問題,文獻(xiàn)[2]提出了一種基于令牌桶的優(yōu)先級(jí)和加權(quán)輪轉(zhuǎn)相結(jié)合的調(diào)度算法,以提高FC的實(shí)時(shí)性。針對(duì)時(shí)間觸發(fā)傳輸?shù)臅r(shí)隙分配問題,文獻(xiàn)[3]提出了基于稀疏模型的時(shí)間觸發(fā)光纖網(wǎng)絡(luò)調(diào)度方案,提高傳輸確定性。針對(duì)FC的協(xié)議實(shí)現(xiàn)問題,文獻(xiàn)[4]基于FPGA設(shè)計(jì)實(shí)現(xiàn)了普通光纖通道數(shù)據(jù)收發(fā)系統(tǒng);文獻(xiàn)[5-6]采用FPGA設(shè)計(jì)實(shí)現(xiàn)了FC節(jié)點(diǎn);文獻(xiàn)[7]基于FPGA實(shí)現(xiàn)了FC協(xié)議CRC的并行高效算法,使消耗的FPGA邏輯資源更少;文獻(xiàn)[8]基于FPGA設(shè)計(jì)實(shí)現(xiàn)了FC協(xié)議分析器,具備FC協(xié)議與以太網(wǎng)協(xié)議的轉(zhuǎn)換功能。針對(duì)交換機(jī)設(shè)計(jì)實(shí)現(xiàn)問題,文獻(xiàn)[9]設(shè)計(jì)實(shí)現(xiàn)了基于時(shí)間調(diào)度網(wǎng)絡(luò)的光纖通道交換機(jī),文獻(xiàn)[10]基于FPGA實(shí)現(xiàn)了一種高性能、大容量的48口FC交換機(jī)。
當(dāng)前介紹FC節(jié)點(diǎn)、交換機(jī)的設(shè)計(jì)與實(shí)現(xiàn)的文獻(xiàn)較多,部分文獻(xiàn)提出了時(shí)間觸發(fā)傳輸概念、方案,但針對(duì)時(shí)間觸發(fā)光纖通道從整體傳輸方案、網(wǎng)絡(luò)同步、具體邏輯設(shè)計(jì)實(shí)現(xiàn)、到實(shí)物測(cè)試驗(yàn)證進(jìn)行系統(tǒng)性描述的公開文獻(xiàn)較少。本文基于時(shí)間觸發(fā)傳輸思想,在普通FC總線的基礎(chǔ)上對(duì)傳輸協(xié)議進(jìn)行改進(jìn),增加時(shí)間觸發(fā)傳輸功能,采用主從方式實(shí)現(xiàn)網(wǎng)絡(luò)時(shí)間同步,僅需對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)終端進(jìn)行協(xié)議改造的方法,提出了相應(yīng)的設(shè)計(jì)方案,然后在FPGA上進(jìn)行了邏輯實(shí)現(xiàn),最后在實(shí)物平臺(tái)上進(jìn)行了測(cè)試驗(yàn)證。
本文基于時(shí)間觸發(fā)傳輸思想,在網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)間同步的基礎(chǔ)上,將總線傳輸按周期進(jìn)行劃分,每個(gè)周期預(yù)先規(guī)劃相應(yīng)的時(shí)隙給各節(jié)點(diǎn)(即發(fā)送時(shí)間表),所有數(shù)據(jù)傳輸都由時(shí)間表來驅(qū)動(dòng)。網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送時(shí)間表的設(shè)計(jì)規(guī)劃原則:在各個(gè)節(jié)點(diǎn)的發(fā)送時(shí)隙內(nèi)獨(dú)占鏈路資源,其他節(jié)點(diǎn)均不能使用該鏈路(對(duì)應(yīng)的接收節(jié)點(diǎn)同一時(shí)刻僅接收來自唯一一個(gè)節(jié)點(diǎn)的數(shù)據(jù),即不會(huì)出現(xiàn)同一時(shí)刻兩個(gè)節(jié)點(diǎn)同時(shí)向同一節(jié)點(diǎn)發(fā)送數(shù)據(jù))。在交換式FC網(wǎng)絡(luò)中,交換機(jī)采用了空分交換結(jié)構(gòu),所以網(wǎng)絡(luò)中存在多條傳輸鏈路可以互不影響地同時(shí)工作,采用手動(dòng)方式設(shè)計(jì)發(fā)送時(shí)間表會(huì)較為復(fù)雜,可編寫相應(yīng)的時(shí)間調(diào)度算法程序來規(guī)劃時(shí)隙。各個(gè)節(jié)點(diǎn)按照預(yù)先規(guī)劃的時(shí)隙可以互不沖突地使用網(wǎng)絡(luò)資源,在交換機(jī)中就不會(huì)存在數(shù)據(jù)緩沖、排隊(duì)的現(xiàn)象,保證了數(shù)據(jù)傳輸?shù)拇_定性。交換機(jī)僅需按照路由進(jìn)行全速轉(zhuǎn)發(fā)即可,對(duì)交換機(jī)也無特殊要求,采用普通FC交換機(jī)即可。此外,根據(jù)規(guī)劃好的發(fā)送時(shí)間表,可以方便地得到各個(gè)節(jié)點(diǎn)的接收時(shí)間表(不同時(shí)隙接收來自不同節(jié)點(diǎn)的數(shù)據(jù)包)。節(jié)點(diǎn)在接收到數(shù)據(jù)包時(shí),需根據(jù)接收時(shí)間表對(duì)數(shù)據(jù)來源進(jìn)行驗(yàn)證,從而提供了一種對(duì)數(shù)據(jù)傳輸合規(guī)性的檢測(cè)。
普通FC協(xié)議包括5層:FC-0定義了物理連接的特性、速率;FC-1定義了傳輸字的組成,傳輸信號(hào)的編解碼方式以及錯(cuò)誤控制;FC-2定義了幀、數(shù)據(jù)包的構(gòu)成及傳輸方式;FC-3為通用服務(wù)層,作為預(yù)留擴(kuò)展層;FC-4定義了不同的上層協(xié)議映射方式。本文提出的時(shí)間觸發(fā)傳輸FC總線基于普通FC協(xié)議,總線協(xié)議分層如圖1所示。
圖1 時(shí)間觸發(fā)光纖通道協(xié)議分層
所提出的時(shí)間觸發(fā)光纖通道協(xié)議在原FC協(xié)議的基礎(chǔ)上增加了一個(gè)時(shí)間觸發(fā)控制管理層,用于實(shí)現(xiàn)時(shí)間觸發(fā)傳輸功能,其他層次與普通FC相同,所以本文提出的時(shí)間觸發(fā)光纖通道協(xié)議兼容于普通FC。時(shí)間觸發(fā)控制管理層主要實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)的時(shí)間同步,以及節(jié)點(diǎn)的時(shí)間觸發(fā)數(shù)據(jù)傳輸,該層不會(huì)對(duì)收發(fā)的數(shù)據(jù)包內(nèi)容作任何修改,僅通過網(wǎng)絡(luò)時(shí)間同步后,實(shí)現(xiàn)對(duì)時(shí)間觸發(fā)傳輸?shù)目刂?,即控制?shù)據(jù)包在允許的發(fā)送時(shí)間窗口將數(shù)據(jù)發(fā)送出去,而在非發(fā)送時(shí)段則對(duì)數(shù)據(jù)包進(jìn)行緩存,并按照接收時(shí)間表對(duì)接收數(shù)據(jù)進(jìn)行合規(guī)性檢測(cè)。
基于普通FC總線協(xié)議,本文提出的時(shí)間觸發(fā)傳輸節(jié)點(diǎn)的邏輯設(shè)計(jì)方案如圖2所示。時(shí)間觸發(fā)FC協(xié)議在FPGA邏輯上實(shí)現(xiàn),主要包括處理器接口、發(fā)送緩存、時(shí)間觸發(fā)傳輸控制、接收緩存、時(shí)間同步控制管理、配置參數(shù)、雙冗余管理、FC鏈路收發(fā)等邏輯功能單元。
圖2 節(jié)點(diǎn)整體設(shè)計(jì)方案框圖
當(dāng)有數(shù)據(jù)包需要發(fā)送時(shí),通過處理器接口將數(shù)據(jù)寫入到發(fā)送緩存中,在時(shí)間觸發(fā)傳輸控制模塊的管理下將發(fā)送緩存中的數(shù)據(jù)取出并送到雙冗余管理模塊中;雙冗余管理模塊根據(jù)配置實(shí)現(xiàn)對(duì)雙路或者單路FC數(shù)據(jù)的輸出,數(shù)據(jù)包經(jīng)過FC收發(fā)邏輯和光電轉(zhuǎn)換后輸出到網(wǎng)絡(luò)上。
當(dāng)接收到數(shù)據(jù)包時(shí),數(shù)據(jù)通過光電模塊、FC鏈路收發(fā)邏輯后,雙冗余管理模塊根據(jù)節(jié)點(diǎn)冗余配置將數(shù)據(jù)送到接收邏輯中;時(shí)間同步控制管理模塊對(duì)接收數(shù)據(jù)進(jìn)行甄別,當(dāng)檢測(cè)到為同步幀時(shí)則取出數(shù)據(jù)包中的同步時(shí)間信息,并更新本地時(shí)鐘;若為普通數(shù)據(jù)包則經(jīng)過合規(guī)性檢測(cè)后送入接收緩存中,對(duì)數(shù)據(jù)包進(jìn)行緩存后通過處理器接口送給處理器。
其中時(shí)間觸發(fā)傳輸控制、時(shí)間同步控制管理兩個(gè)功能模塊是實(shí)現(xiàn)時(shí)間觸發(fā)傳輸?shù)年P(guān)鍵。采用本設(shè)計(jì)實(shí)現(xiàn)的時(shí)間觸發(fā)光纖通道總線網(wǎng)絡(luò)中的節(jié)點(diǎn)分為主節(jié)點(diǎn)和從節(jié)點(diǎn)兩類(網(wǎng)絡(luò)中主節(jié)點(diǎn)僅有一個(gè),其他均為從節(jié)點(diǎn)),所以主/從節(jié)點(diǎn)在邏輯實(shí)現(xiàn)上存在一定的差異。
為了實(shí)現(xiàn)時(shí)間觸發(fā)傳輸,各個(gè)節(jié)點(diǎn)之間需要實(shí)現(xiàn)精確的時(shí)間同步,使網(wǎng)絡(luò)中各節(jié)點(diǎn)的時(shí)間同步到一個(gè)統(tǒng)一的參考時(shí)間。時(shí)間同步通常可采用硬件和軟件兩種方式實(shí)現(xiàn),硬件同步方法精度高,但額外的硬件增大了開銷;軟件同步方法采用算法實(shí)現(xiàn),成本低且較靈活。
本文采用主從時(shí)間同步的軟件實(shí)現(xiàn)方案,所有節(jié)點(diǎn)同步到主節(jié)點(diǎn)的時(shí)間,并采用軟件進(jìn)行時(shí)間偏移補(bǔ)償,實(shí)現(xiàn)精確的時(shí)間同步。主從時(shí)間同步方案如圖3所示,網(wǎng)絡(luò)中設(shè)置一個(gè)主節(jié)點(diǎn),其他節(jié)點(diǎn)為從節(jié)點(diǎn),所有節(jié)點(diǎn)均以主節(jié)點(diǎn)的時(shí)間為基準(zhǔn),主節(jié)點(diǎn)采用分發(fā)同步幀(數(shù)據(jù)幀中包含時(shí)間信息)的方式實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的時(shí)間同步。
圖3 時(shí)間同步示意圖
為了維持各個(gè)節(jié)點(diǎn)時(shí)間的實(shí)時(shí)同步,主節(jié)點(diǎn)需要周期性地廣播同步幀,同步幀的發(fā)送周期為總線周期,同步幀中包含了主節(jié)點(diǎn)的時(shí)間信息。在未收到同步幀的時(shí)間內(nèi),從節(jié)點(diǎn)靠本地時(shí)鐘進(jìn)行守時(shí);當(dāng)收到同步幀后,則用接收到的時(shí)間對(duì)本地時(shí)間進(jìn)行更新。采用該方式可實(shí)現(xiàn)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的時(shí)間同步,且該時(shí)間同步方式無需對(duì)交換機(jī)進(jìn)行修改,通用的FC交換機(jī)就可以滿足應(yīng)用要求,對(duì)網(wǎng)絡(luò)硬件的改動(dòng)較小。采用如上所述的分發(fā)同步幀的方式,整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)可實(shí)現(xiàn)時(shí)間的初同步,但同步時(shí)間精度不高,從節(jié)點(diǎn)與主節(jié)點(diǎn)之間存在一個(gè)相對(duì)固定的時(shí)間偏差,該時(shí)間偏差主要由數(shù)據(jù)包收/發(fā)時(shí)延、交換路由時(shí)延、線纜傳輸時(shí)延組成,偏差值通常為微秒級(jí)。
同步幀由主節(jié)點(diǎn)經(jīng)過交換機(jī)后分發(fā)到各個(gè)從節(jié)點(diǎn),由于各個(gè)從節(jié)點(diǎn)與主節(jié)點(diǎn)之間的傳輸路徑不同,該時(shí)延也不相同。為了提高網(wǎng)絡(luò)時(shí)間同步精度,需要對(duì)該傳輸時(shí)延進(jìn)行測(cè)量和補(bǔ)償。本設(shè)計(jì)采用與IEEE1588類似的方法對(duì)時(shí)間偏移進(jìn)行測(cè)量[11],其測(cè)量原理如圖4所示。
圖4 時(shí)間偏移測(cè)量原理
時(shí)間偏移具體測(cè)量分兩步:首先主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送一個(gè)數(shù)據(jù)包,主節(jié)點(diǎn)記錄下發(fā)送時(shí)間t1,從節(jié)點(diǎn)記錄下接收時(shí)間t2;然后從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送一個(gè)數(shù)據(jù)包,從節(jié)點(diǎn)記錄下發(fā)送時(shí)間t3,主節(jié)點(diǎn)記錄下接收時(shí)間t4。主節(jié)點(diǎn)通過發(fā)送數(shù)據(jù)幀的方式將記錄的時(shí)間信息發(fā)送給從節(jié)點(diǎn),通過式(1)計(jì)算后就可得到主從節(jié)點(diǎn)的時(shí)間偏差值Δt。
(1)
采用以上方法對(duì)每個(gè)從節(jié)點(diǎn)的時(shí)間偏移都進(jìn)行獨(dú)立的測(cè)量,然后在各從節(jié)點(diǎn)端分別進(jìn)行補(bǔ)償,從而提高時(shí)間同步精度。時(shí)間偏移測(cè)量過程中為了避免引入處理器軟件產(chǎn)生的抖動(dòng),時(shí)間點(diǎn)記錄均采用FPGA邏輯實(shí)現(xiàn)。此外,網(wǎng)絡(luò)拓?fù)涔潭ê?,各從?jié)點(diǎn)與主節(jié)點(diǎn)之間的時(shí)延也相對(duì)固定,所以可以僅測(cè)量一次時(shí)間偏移,并將補(bǔ)償數(shù)據(jù)存儲(chǔ)起來,后續(xù)在網(wǎng)絡(luò)拓?fù)洳蛔兊那闆r下可直接使用。
網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)間同步傳輸?shù)腇PGA邏輯具體實(shí)現(xiàn)方案如圖5所示。
圖5 時(shí)間同步傳輸設(shè)計(jì)
時(shí)間同步控制管理主要完成本地守時(shí)、接收包的時(shí)間記錄(用于時(shí)間補(bǔ)償)、根據(jù)配置參數(shù)產(chǎn)生傳輸時(shí)隙控制信號(hào)。若節(jié)點(diǎn)為主節(jié)點(diǎn),還需要送出總線周期信號(hào),用于觸發(fā)同步幀的產(chǎn)生;對(duì)于從節(jié)點(diǎn)而言,則應(yīng)具有同步幀時(shí)間提取功能,可以從總線上接收的同步幀中提取出時(shí)間信息,結(jié)合時(shí)間補(bǔ)償參數(shù)后對(duì)本地時(shí)間進(jìn)行周期更新。
時(shí)間觸發(fā)傳輸控制主要完成數(shù)據(jù)包發(fā)送時(shí)間記錄(用于時(shí)間同步補(bǔ)償)、時(shí)間觸發(fā)傳輸控制,根據(jù)傳輸時(shí)隙使能信號(hào)控制數(shù)據(jù)發(fā)送,僅在配置的時(shí)隙內(nèi)允許數(shù)據(jù)包的發(fā)送,其他時(shí)間則禁止發(fā)送,未發(fā)送的數(shù)據(jù)包則在發(fā)送緩存中等待傳輸時(shí)隙的開啟;對(duì)于主節(jié)點(diǎn)而言,還具備同步幀產(chǎn)生的功能,根據(jù)送來的總線周期脈沖信號(hào),周期性向網(wǎng)絡(luò)上廣播同步幀,將主節(jié)點(diǎn)的時(shí)間信息通過同步幀發(fā)送出去。
時(shí)間觸發(fā)傳輸機(jī)制通過分時(shí)復(fù)用的方法,解決了網(wǎng)絡(luò)可能存在的沖突、數(shù)據(jù)幀擁塞排隊(duì)問題,節(jié)點(diǎn)分時(shí)獨(dú)占網(wǎng)絡(luò)可以很好地解決網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)牟淮_定性問題。由于FC為全雙工交換網(wǎng)絡(luò),且采用了空分交換結(jié)構(gòu)的交換機(jī),當(dāng)兩個(gè)節(jié)點(diǎn)通過交換機(jī)傳輸數(shù)據(jù)時(shí),通過交換機(jī)其他端口進(jìn)行互連的多對(duì)節(jié)點(diǎn)之間仍可同時(shí)傳輸數(shù)據(jù),且互不影響,即多個(gè)節(jié)點(diǎn)之間可以同時(shí)進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)包傳輸?shù)哪康牡刂肪幌嗤?。所以,基于空分交換結(jié)構(gòu)的網(wǎng)絡(luò)中,對(duì)于節(jié)點(diǎn)時(shí)隙的分配不應(yīng)該是每個(gè)節(jié)點(diǎn)獨(dú)占整個(gè)網(wǎng)絡(luò)資源,而是獨(dú)占某一條鏈路資源。因此,根據(jù)時(shí)隙規(guī)劃,在一個(gè)總線周期內(nèi),某一節(jié)點(diǎn)發(fā)送到不同其他節(jié)點(diǎn)的傳輸時(shí)隙是不同的,在某個(gè)時(shí)隙僅允許傳輸?shù)揭?guī)定的節(jié)點(diǎn)。因此,若數(shù)據(jù)包發(fā)送仍然采用單發(fā)送緩存的方式則無法滿足應(yīng)用的需求,會(huì)存在排隊(duì)阻塞的問題。為此,本文實(shí)現(xiàn)方案中采用了多緩存方式,以滿足基于空分交換網(wǎng)絡(luò)的時(shí)間觸發(fā)傳輸,邏輯設(shè)計(jì)方案如圖6所示。
圖6 多緩存結(jié)構(gòu)時(shí)間觸發(fā)傳輸邏輯設(shè)計(jì)方案
網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)均配置多個(gè)發(fā)送緩沖區(qū),緩沖區(qū)按照數(shù)據(jù)包發(fā)送的目的地址進(jìn)行分類。在一個(gè)總線周期內(nèi),每個(gè)發(fā)送緩沖區(qū)允許輸出的時(shí)隙不同,且互不重疊,允許輸出的時(shí)隙通過預(yù)先離線規(guī)劃進(jìn)行配置。上層應(yīng)用將待發(fā)送的數(shù)據(jù)按目的地址分流到不同的緩沖區(qū)進(jìn)行緩存,時(shí)間觸發(fā)傳輸控制根據(jù)節(jié)點(diǎn)時(shí)隙配置參數(shù),分時(shí)取出不同緩沖區(qū)中的數(shù)據(jù)發(fā)送出去。
為驗(yàn)證文中提出的時(shí)間觸發(fā)傳輸設(shè)計(jì)與實(shí)現(xiàn)方案的正確性和有效性,搭建了測(cè)試驗(yàn)證環(huán)境,如圖7所示,主要包括樣機(jī)、控制計(jì)算機(jī)和協(xié)議分析儀,選擇樣機(jī)中的節(jié)點(diǎn)進(jìn)行測(cè)試驗(yàn)證,組建星形交換網(wǎng)絡(luò),由控制計(jì)算機(jī)給節(jié)點(diǎn)輸入操作指令,使網(wǎng)絡(luò)中的節(jié)點(diǎn)按照設(shè)定的時(shí)隙傳輸數(shù)據(jù),使用協(xié)議分析儀可對(duì)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包進(jìn)行捕獲、存儲(chǔ)和分析。
圖7 實(shí)物平臺(tái)及測(cè)試連接框圖
樣機(jī)交換網(wǎng)絡(luò)中選取4個(gè)節(jié)點(diǎn),包括1個(gè)主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn),節(jié)點(diǎn)ID及時(shí)隙分配信息如表1所示。表中的偏移表示相對(duì)于同步幀的時(shí)間偏移,3個(gè)從節(jié)點(diǎn)每個(gè)周期發(fā)送一次數(shù)據(jù)給主節(jié)點(diǎn),鏈路速率設(shè)置為2 Gb/s。
表1 節(jié)點(diǎn)配置表
為便于操作和觀察,總線周期設(shè)置為1 s,控制計(jì)算機(jī)通過串口命令控制從節(jié)點(diǎn)的數(shù)據(jù)發(fā)送,約1 s啟動(dòng)一次數(shù)據(jù)傳輸,通過協(xié)議分析儀對(duì)主節(jié)點(diǎn)的端口通信數(shù)據(jù)進(jìn)行抓取。
圖8為從節(jié)點(diǎn)不發(fā)送數(shù)據(jù)時(shí)主節(jié)點(diǎn)周期性廣播同步幀的情況。從抓取的數(shù)據(jù)包可以看出,同步幀每1 s發(fā)送一次,周期的時(shí)間精度受主節(jié)點(diǎn)本地時(shí)鐘影響(1 s誤差接近100 μs,精度10-7),在工程應(yīng)用中可以采用高精度時(shí)鐘源,從而提高網(wǎng)絡(luò)時(shí)間精度。
圖8 同步幀傳輸截圖
圖9為3個(gè)從節(jié)點(diǎn)在時(shí)間觸發(fā)控制下傳輸數(shù)據(jù)的情況。在主節(jié)點(diǎn)時(shí)間同步控制下,按照分配時(shí)隙,3個(gè)從節(jié)點(diǎn)的數(shù)據(jù)包在相對(duì)于同步幀分別偏移約1 ms、1.5 ms、2 ms的時(shí)隙完成數(shù)據(jù)傳輸,而在其他非規(guī)劃時(shí)隙內(nèi)則不發(fā)送數(shù)據(jù)包(從圖中第一列的時(shí)間關(guān)系可以看出,受時(shí)間同步精度的影響,傳輸時(shí)間存在亞微秒級(jí)的誤差),符合分配的節(jié)點(diǎn)傳輸時(shí)隙,驗(yàn)證了時(shí)間觸發(fā)傳輸功能的正確性和可行性。
圖9 時(shí)間觸發(fā)傳輸測(cè)試截圖
普通FC總線采用事件觸發(fā)傳輸,存在數(shù)據(jù)傳輸時(shí)間確定性差的問題。時(shí)間觸發(fā)傳輸能夠有效避免鏈路爭用導(dǎo)致的數(shù)據(jù)阻塞,保證了網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)拇_定性。本文提出了時(shí)間觸發(fā)傳輸?shù)腇PGA邏輯設(shè)計(jì)與實(shí)現(xiàn)方案,并將實(shí)現(xiàn)的協(xié)議在樣機(jī)平臺(tái)上進(jìn)行了實(shí)物測(cè)試驗(yàn)證,經(jīng)測(cè)試滿足設(shè)計(jì)要求。本文設(shè)計(jì)實(shí)現(xiàn)的光纖通道總線協(xié)議支持時(shí)間觸發(fā)傳輸,且僅需要對(duì)節(jié)點(diǎn)協(xié)議進(jìn)行修改,而交換機(jī)可以使用普通FC交換機(jī),系統(tǒng)改造和升級(jí)的代價(jià)較低,實(shí)現(xiàn)的節(jié)點(diǎn)可以兼容普通的事件觸發(fā)傳輸,在工程實(shí)際中具有一定的參考和實(shí)用價(jià)值。