孫偉龍,朱元武,張振華,劉開源,趙 騰
(北方自動(dòng)控制技術(shù)研究所,太原 030006)
以太網(wǎng)技術(shù)發(fā)展于20世紀(jì)90年代中期,以其兼容性強(qiáng),成本低,引起了自動(dòng)化設(shè)備廠商和廣大用戶的注意。然而經(jīng)過驗(yàn)證,標(biāo)準(zhǔn)以太網(wǎng)在通信過程中存在著一定的問題,如消息傳輸不確定性、實(shí)時(shí)性差、環(huán)境適應(yīng)能力弱、網(wǎng)絡(luò)安全性不足、缺乏總線供電能力等。隨著總線網(wǎng)絡(luò)的快速發(fā)展,在陸軍火控領(lǐng)域中引入了帶寬相對(duì)較好的CAN總線[1]。
如今我國軍工科技在圖像識(shí)別、人工智能、機(jī)器人技術(shù)和多傳感器融合等一系列領(lǐng)域上均取得了先進(jìn)的科研成果。這些科研成果的成功取決于網(wǎng)絡(luò)的帶寬和實(shí)時(shí)性是否滿足傳輸要求。CAN總線帶寬已經(jīng)嚴(yán)重不足,而標(biāo)準(zhǔn)以太網(wǎng)的實(shí)時(shí)性不夠[2],實(shí)時(shí)以太網(wǎng)技術(shù)以其高帶寬、高可靠性、高實(shí)時(shí)性的特點(diǎn),成為了取代其他總線網(wǎng)絡(luò)的首要選擇。
實(shí)時(shí)以太網(wǎng)采用星型拓?fù)浣Y(jié)構(gòu)且拓?fù)浣Y(jié)構(gòu)中心是網(wǎng)絡(luò)交換模塊,網(wǎng)絡(luò)交換模塊核心是調(diào)度模塊。運(yùn)用FPGA技術(shù)實(shí)現(xiàn)核心調(diào)度模塊,使實(shí)時(shí)網(wǎng)絡(luò)在MAC層實(shí)現(xiàn)其存儲(chǔ)轉(zhuǎn)發(fā)的主要功能,進(jìn)而提高網(wǎng)絡(luò)實(shí)時(shí)性和可靠性,為實(shí)時(shí)以太網(wǎng)在火控領(lǐng)域的應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。
虛擬鏈路是建立在物理鏈路上的單向的邏輯通信通道,目的是建立從一個(gè)端系統(tǒng)到一個(gè)或者多個(gè)端系統(tǒng)的邏輯通道。如圖1所示:
在信息傳輸過程中,同一物理鏈路上的不同虛擬鏈路之間有可能互相影響,導(dǎo)致數(shù)據(jù)流誤傳,帶寬分配不合理等問題。通過限制物理鏈路上數(shù)據(jù)流幀的傳輸速率及幀的大小,使同一物理鏈路上的不同虛擬鏈路相互隔離,不受影響。通過限制兩個(gè)參數(shù)來達(dá)到上述目的,即BAG(帶寬分配間隔Bandwidth AllocationGap,BAG數(shù)值范圍在2的1次冪到128次冪ms)和Lmax(虛擬鏈路上最大幀長),推論可知,每條虛擬鏈路的最大可用帶寬Bmax=Lmax/BAG。綜上通過設(shè)置時(shí)間間隔(幀傳輸速率)和時(shí)間延遲(幀的長度)避免了不同虛擬鏈路間的信息碰撞問題[9]。
數(shù)據(jù)包在通過流量整形后才可以在虛擬鏈路上正常傳輸。流量整形的過程分為兩個(gè)部分。首先篩選每個(gè)數(shù)據(jù)包的幀長度,如果長度超過Lmax,則流量整形器會(huì)將數(shù)據(jù)包分片,且分片后幀長小于等于Lmax;其次當(dāng)兩個(gè)數(shù)據(jù)包發(fā)送間隔小于BAG時(shí),流量整形器將兩者之間的時(shí)間間隔規(guī)整為一個(gè)BAG,保證每個(gè)BAG時(shí)間內(nèi)只允許通過一個(gè)分片。BAG流量整形示意圖如圖2所示:
每條虛擬鏈路分為4條子虛擬鏈路,虛擬鏈路調(diào)度的核心是子虛擬鏈路的調(diào)度。采用雙端口存儲(chǔ)器存放數(shù)據(jù)幀,為每套虛擬鏈路配置10個(gè)緩存單元,并設(shè)計(jì)一個(gè)空閑隊(duì)列來反映這10個(gè)緩存單元的狀態(tài),每個(gè)虛擬鏈路設(shè)計(jì)4個(gè)子虛擬鏈路,用于存放各個(gè)子虛擬鏈路所使用的緩存單元號(hào)[6]。
CPU發(fā)送數(shù)據(jù)幀時(shí),首先讀取空閑隊(duì)列來申請(qǐng)緩存單元,根據(jù)讀出的緩存單元向其中寫入需要發(fā)送幀的數(shù)據(jù),再將緩存單元號(hào)寫入子虛擬鏈路隊(duì)列中。如圖3所示:
虛擬鏈路采用公平輪詢法進(jìn)行調(diào)度,虛擬鏈路調(diào)度器逐個(gè)檢查各個(gè)虛擬鏈路的狀態(tài),如果該虛擬鏈路有幀準(zhǔn)備好(VLi_send_flag有效),而且BAG計(jì)時(shí)器給出有效指示(VLi_BAG_Timer有效),則可以發(fā)送。此時(shí)從該虛擬鏈路的子虛擬鏈路對(duì)應(yīng)的非空隊(duì)列對(duì)應(yīng)的緩存單元,通過MAC層發(fā)送出去,完成一個(gè)幀的發(fā)送。如圖4所示:
基于虛擬鏈路的實(shí)時(shí)以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)中心是網(wǎng)絡(luò)交換模塊[9],網(wǎng)絡(luò)交換模塊核心為調(diào)度模塊,核心調(diào)度模塊主要實(shí)現(xiàn)3個(gè)功能:
1)調(diào)度模塊通過公平輪詢算法訪問多個(gè)輸出端口隊(duì)列,將最終轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送至各交換端口的發(fā)送FIFO中,并將幀的發(fā)送信息寫入幀信息隊(duì)列;
2)調(diào)度模塊生成調(diào)度控制信息數(shù)據(jù),生成調(diào)度控制信息數(shù)據(jù),經(jīng)數(shù)據(jù)接收發(fā)送總線將接受FIFO中的數(shù)據(jù)保存到外部的幀存儲(chǔ)器(SSRAM)中;
3)將數(shù)據(jù)從交換端口接受FIFO中讀取,并捕獲需要捕獲的幀數(shù)據(jù),并發(fā)送到捕獲模塊。
將調(diào)度模塊化分為7個(gè)子模塊:接收調(diào)度模塊、發(fā)送調(diào)度模塊、預(yù)調(diào)度模塊、數(shù)據(jù)讀寫控制模塊和3個(gè)不同的調(diào)度信息FIFO(First Input First Output先入先出隊(duì)列),其子模塊功能結(jié)構(gòu)圖,如圖5所示。
搭建ISE13.4環(huán)境,新建調(diào)度模塊scheduler_fpga工程,運(yùn)用Verilog語言編寫代碼,通過編譯,綜合,仿真得到邏輯代碼[3],如圖6所示。
核心調(diào)度模塊預(yù)調(diào)度子模塊共266行邏輯代碼,代碼截圖如圖7所示。
由于子模塊數(shù)據(jù)較多,這里選取接收調(diào)度模塊rev_scheduler進(jìn)行描述。
表1為接收調(diào)度模塊端口說明:
表1 接受調(diào)度模塊端口說明
接收調(diào)度模塊rev_scheduler的simulate behavioral仿真波形圖,如圖8所示:
對(duì)每個(gè)子模塊仿真確認(rèn)無誤后,對(duì)整個(gè)rev_scheduler模塊的simulate behavioral仿真如圖9所示。
經(jīng)仿真驗(yàn)證,核心調(diào)度模塊的子模塊經(jīng)仿真驗(yàn)證得到的波形圖,符合基于虛擬鏈路的實(shí)時(shí)以太網(wǎng)存儲(chǔ)轉(zhuǎn)發(fā)功能需求。
綜上所述,基于虛擬鏈路的實(shí)時(shí)以太網(wǎng)以其高帶寬、高實(shí)時(shí)性成為取代其他總線的一大熱點(diǎn)。本文設(shè)計(jì)采用星型拓?fù)浣Y(jié)構(gòu),通過規(guī)避總線網(wǎng)絡(luò)競(jìng)爭(zhēng)來增強(qiáng)網(wǎng)絡(luò)傳輸?shù)目煽啃?。拓?fù)浣Y(jié)構(gòu)中心為網(wǎng)絡(luò)交換模塊,網(wǎng)絡(luò)交換模塊核心為調(diào)度模塊,通過FPGA完成調(diào)度模塊的邏輯設(shè)計(jì),實(shí)現(xiàn)實(shí)時(shí)網(wǎng)絡(luò)MAC層儲(chǔ)存轉(zhuǎn)發(fā)的主要功能,進(jìn)而大大提高了網(wǎng)絡(luò)傳輸?shù)目煽啃詫?shí)時(shí)性,為基于虛擬鏈路的實(shí)時(shí)以太網(wǎng)應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1]繆學(xué)勤.實(shí)時(shí)以太網(wǎng)技術(shù)現(xiàn)狀與發(fā)展[J].自動(dòng)化博覽,2005,22(2):21-24.
[2]徐皚冬,王宏,邢志浩.工業(yè)以太網(wǎng)實(shí)時(shí)通信技術(shù)[J].信息與控制,2005,32(1):11-12.
[3]黨樹玲,宋宇.基于EDA技術(shù)的VHDL語言的研究與應(yīng)用[J].電腦知識(shí)與技術(shù),2006(36):23-24.
[4]葉佳字,陳曉剛,張新家.基于AFDX的航空電子通信網(wǎng)絡(luò)的設(shè)計(jì)[J].測(cè)控技術(shù),2008 ,27(6):56-58.
[5]張志.基于FPGA的AFDX端系統(tǒng)協(xié)議芯片的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(2):422-424.
[6]趙國斌.航空電子全雙工交換式以太網(wǎng)分析[J].中國制造業(yè)信息化,2011,40(21):61-63.
[7]劉向東,李志潔,王存睿,等.以太網(wǎng)交換機(jī)原理實(shí)驗(yàn)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2011,30(1):17-19.
[8]王驥,楊永田.實(shí)時(shí)以太網(wǎng)技術(shù)在航空電子系統(tǒng)中的應(yīng)用[D].哈爾濱:哈爾濱工程大學(xué),2006.
[9]孫書仁,張承瑞.實(shí)時(shí)以太網(wǎng)可靠性關(guān)鍵技術(shù)研究[D].濟(jì)南:山東大學(xué),2014.
[10]王綺卉,田澤.AFDX核心交換技術(shù)的研究和實(shí)現(xiàn)[D].西安:西安石油大學(xué),2010.