張丹群,薛海東,白玉杰,尹海林,吳 琦,殷洪波,林小娟,王海萌
(西安應(yīng)用光學(xué)研究所,陜西 西安 710065)
在現(xiàn)代戰(zhàn)爭(zhēng)的背景下,裝備信息化成為了武器裝備研究的重中之重。評(píng)價(jià)信息化裝備,實(shí)時(shí)性是重要的指標(biāo)[1]。光纖數(shù)據(jù)總線作為大型信息傳輸系統(tǒng)中的重要組成部分,在諸如車輛、船舶等領(lǐng)域得到廣泛應(yīng)用,可以為系統(tǒng)信息的實(shí)時(shí)性提供良好支撐[2]。在嵌入式系統(tǒng)中,以太網(wǎng)、PCIE 等接口也得到了越來(lái)越廣泛的應(yīng)用[3]。但目前車載偵察平臺(tái)中,CAN 總線、以太網(wǎng)等經(jīng)常是分開布置,缺少融合,不利于車載平臺(tái)的信息整合。而多種接口的融合對(duì)時(shí)鐘同步的要求很高,時(shí)鐘同步保證節(jié)點(diǎn)收發(fā)信息在時(shí)間上的正確性[4]。光纖具有傳輸速度高、不受電磁干擾、安全性高等特點(diǎn)[5-7],符合車載偵察平臺(tái)的需求。在目前的車載光纖數(shù)據(jù)總線應(yīng)用環(huán)境中,需要傳輸包括視頻、指令、姿態(tài)參數(shù)等多種數(shù)據(jù)類型,數(shù)據(jù)傳輸速率、編碼定義、接口方式都有很大區(qū)別?,F(xiàn)存的諸多類總線技術(shù)在多數(shù)據(jù)類型業(yè)務(wù)場(chǎng)景中無(wú)法滿足車載數(shù)據(jù)偵察平臺(tái)的信息互聯(lián)需求。因此,本文對(duì)光纖數(shù)據(jù)總線中多種接口的融合進(jìn)行了研究,并提出一種以FPGA 為硬件平臺(tái),以IP 復(fù)用技術(shù)為核心的多接口融合光纖總線光網(wǎng)絡(luò)終端[8],一定程度上提升車載偵察平臺(tái)的信息互聯(lián)程度。
根據(jù)車載光纖總線的數(shù)據(jù)傳輸結(jié)構(gòu)需要,對(duì)光纖總線拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)是前期的重要工作[9-10]。光纖數(shù)據(jù)總線包括一個(gè)中央網(wǎng)絡(luò)節(jié)點(diǎn)NC 和多個(gè)光網(wǎng)絡(luò)終端NT,NC 和NT 之間通過(guò)光纖連接,NC 連接車上的上位機(jī)系統(tǒng),將從NT 獲取的信息發(fā)送給上位機(jī)系統(tǒng)進(jìn)行處理,并且將上位機(jī)的指令等信息發(fā)送給對(duì)應(yīng)的NT。NC 相當(dāng)于光纖總線網(wǎng)絡(luò)中的網(wǎng)絡(luò)管理設(shè)備[11]。NT 的主要任務(wù)是獲取視頻、姿態(tài)參數(shù)等信息,通過(guò)光纖發(fā)送給NC,并接受NC 傳輸來(lái)的指令信息。根據(jù)車載系統(tǒng)的信息節(jié)點(diǎn)數(shù)目,光纖總線中包含3 個(gè)NT。車載光纖總線的數(shù)據(jù)帶寬為10 Gb/s。整個(gè)光纖數(shù)據(jù)總線的拓?fù)浣Y(jié)構(gòu)可以看做以NC 為中心節(jié)點(diǎn)的星形拓?fù)浣Y(jié)構(gòu),如圖1 所示。
圖1 光纖數(shù)據(jù)總線拓?fù)浣Y(jié)構(gòu)原理框圖Fig. 1 Block diagram of topological structure principle of optical fiber databus
針對(duì)某型車載平臺(tái)的需求,在設(shè)計(jì)了光線數(shù)據(jù)總線的拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上,需要對(duì)光纖總線的協(xié)議進(jìn)行研究,設(shè)計(jì)基于ZYNQ 類型的FPGA 平臺(tái)的接口通信協(xié)議[12-15]。在本次的光纖總線NT 端設(shè)計(jì)中,要將RS422 總線、CAN 總線、Ethernet、PCIE等多種協(xié)議融入進(jìn)來(lái),并且要兼顧視頻數(shù)據(jù)的通信。根據(jù)車載平臺(tái)信息交換的需求,NC 和上位機(jī)系統(tǒng)需要每50 μs 訪問(wèn)一次所有NT 節(jié)點(diǎn)的數(shù)據(jù)信息。在NT 設(shè)計(jì)中,難點(diǎn)在于對(duì)現(xiàn)有通信總線和協(xié)議的兼容。
RS422、CAN 都屬于低速數(shù)據(jù)流,以太網(wǎng)和PCIE 數(shù)據(jù)均屬于高速數(shù)據(jù)流。RS422 總線在NT端上轉(zhuǎn)為單端信號(hào),以UART 格式的串行通信進(jìn)行傳輸和處理。
光纖數(shù)據(jù)總線使用千兆以太網(wǎng)UDP 協(xié)議進(jìn)行傳輸。與TCP 協(xié)議相比,UDP 協(xié)議有如下特點(diǎn):1) 不需要維護(hù)連接狀態(tài),一臺(tái)服務(wù)器可同時(shí)向多臺(tái)客戶機(jī)傳輸相同信息;2) UDP 信息報(bào)額外開銷較?。?)主機(jī)不需要維持復(fù)雜的鏈接狀態(tài)表。故UDP 協(xié)議和數(shù)據(jù)包適合車上光纖數(shù)據(jù)總線這種傳輸距離短、數(shù)據(jù)量大的應(yīng)用場(chǎng)景。
總線協(xié)議采取靜態(tài)傳輸協(xié)議的方式進(jìn)行多點(diǎn)控制。靜態(tài)傳輸協(xié)議中,各NT 在指令鏈表分配的周期性固定時(shí)隙中進(jìn)行光信號(hào)傳輸。時(shí)隙的長(zhǎng)短由上位機(jī)通過(guò)NC 節(jié)點(diǎn)進(jìn)行配置。由于以太網(wǎng)、PCIE 的數(shù)據(jù)流密度在總線使用的整個(gè)時(shí)間周期內(nèi)比較固定,所以在每個(gè)時(shí)隙中為不同的接口數(shù)據(jù)分配固定的子時(shí)隙。時(shí)隙的分配以數(shù)據(jù)重復(fù)周期來(lái)體現(xiàn),每個(gè)大周期中包含若干個(gè)小周期,每個(gè)NT 獨(dú)占一個(gè)小周期,小周期內(nèi)包含全部的接口數(shù)據(jù)收發(fā)時(shí)隙,以及為時(shí)隙管理所單獨(dú)留出的時(shí)隙。大周期內(nèi)包含的小周期數(shù)目等于總線系統(tǒng)中NT 節(jié)點(diǎn)的數(shù)目。大、小周期示意圖如圖2 所示。
圖2 時(shí)隙周期原理框圖Fig. 2 Block diagram of time slot cycle principle
系統(tǒng)時(shí)間周期分配 初定一個(gè)大周期為50 μs,由于總線包含3 個(gè)NT 節(jié)點(diǎn),所以在總線系統(tǒng)的時(shí)隙周期中,每個(gè)大周期包含3 個(gè)小周期,在每個(gè)大周期內(nèi),NC 節(jié)點(diǎn)輪流與各個(gè)NT 節(jié)點(diǎn)交換各接口數(shù)據(jù)。
422 總線 比特率 115.2 kb/s,每個(gè)字節(jié)1 起始位,8 數(shù)據(jù)位,1 校驗(yàn)位,1 停止位,共11 位,每個(gè)大周期內(nèi)接收約5.5 bit,由于信息量低,在總線上傳輸時(shí)間短(光口發(fā)送時(shí)間5.5×10-10s,即0.55 ns),故將其與CAN 總線數(shù)據(jù)一同打包傳輸。
CAN 總線 比特率500 kb/s,GTX 端收發(fā)均為串行,在每個(gè)大周期內(nèi)接收25 bit,在總線上發(fā)送時(shí)間為2.5×10-9s(2.5 ns),CAN 總線和422 總線在光接口上發(fā)送時(shí)間<3 ns,所以在光纖總線中與422數(shù)據(jù)一起打包傳輸,在接收端進(jìn)行解碼,為這2 個(gè)低速數(shù)據(jù)分配0.1 μs(100 ns)的時(shí)隙。
以太網(wǎng) 時(shí)鐘頻率125 MHz,數(shù)據(jù)速率1 Gb/s,采用UDP 協(xié)議,每幀數(shù)據(jù)1546 字節(jié),每個(gè)大周期接收5×104bit 數(shù)據(jù),在總線上發(fā)送時(shí)間約為5 μs,故為以太網(wǎng)分配5 μs 的時(shí)隙。
PCIE 采用PCIE x1 接口,基準(zhǔn)時(shí)鐘頻率125 MHz,數(shù)據(jù)速率2 Gb/s,每個(gè)大周期接收105bit 數(shù)據(jù),在總線上發(fā)送時(shí)間約為10 μs,故為其分配10 μs的時(shí)隙。
除此之外,系統(tǒng)在每2 個(gè)接口傳輸時(shí)隙中間分配了0.3 μs 的時(shí)長(zhǎng),即422+CAN 總線傳輸和以太網(wǎng)傳輸之間有0.3 μs 的間隙,以太網(wǎng)傳輸和PCIE傳輸之間有0.3 μs 的間隙,以此類推。同時(shí),系統(tǒng)也為BC 時(shí)隙管理分配了0.8 μs 的時(shí)長(zhǎng)。小周期內(nèi)接口間隙和BC 時(shí)隙管理的分配為系統(tǒng)提供了一定的傳輸裕度,可有效避免不同接口數(shù)據(jù)在傳輸過(guò)程中造成沖突和混淆,進(jìn)而在彼此之間造成數(shù)據(jù)干擾。至于系統(tǒng)的電磁干擾方面,由于數(shù)據(jù)長(zhǎng)距離傳輸使用光纖,因此只要做好對(duì)NC 和NT 的抗干擾硬件設(shè)計(jì),即可很好地避免系統(tǒng)受到電磁干擾的威脅。系統(tǒng)時(shí)隙分配如圖3 所示。
圖3 系統(tǒng)時(shí)隙分配Fig. 3 Allocation of system time slot
每個(gè)小周期的時(shí)隙長(zhǎng)度為16.5 μs,每個(gè)NT 節(jié)點(diǎn)在分配給它的小周期內(nèi)與總線系統(tǒng)交換該節(jié)點(diǎn)各個(gè)接口的數(shù)據(jù)。系統(tǒng)有3 個(gè)NT 節(jié)點(diǎn),即每個(gè)大周期包含3 個(gè)小周期,則每個(gè)大周期的時(shí)隙長(zhǎng)度為16.5 μs×3=49.5 μs,滿足車載總線系統(tǒng)50 μs 內(nèi)訪問(wèn)所有NT 節(jié)點(diǎn)數(shù)據(jù)的要求。經(jīng)過(guò)一個(gè)大周期的數(shù)據(jù)交換后,可以保證光線總線網(wǎng)絡(luò)中所有NT 節(jié)點(diǎn)都和NC 節(jié)點(diǎn)交換過(guò)數(shù)據(jù)。
時(shí)隙管理可以使光纖總線系統(tǒng)擁有盡可能大的容錯(cuò)率,減少數(shù)據(jù)溢出,不會(huì)讓某個(gè)接口的數(shù)據(jù)一直處于壅塞無(wú)發(fā)送數(shù)據(jù)或空閑無(wú)接收數(shù)據(jù)的狀態(tài)。
系統(tǒng)采用Zynq 架構(gòu)的FPGA 器件為硬件平臺(tái)進(jìn)行設(shè)計(jì)。在FPGA 平臺(tái)中,光線數(shù)據(jù)總線所使用的各接口是通過(guò)IP 核實(shí)現(xiàn)的,除了調(diào)用軟件開發(fā)平臺(tái)上現(xiàn)有的IP 核,還要針對(duì)車載光纖總線的特殊性來(lái)對(duì)IP 核進(jìn)行一定的編寫。由于需要在光纖和電接口之間進(jìn)行各種接口數(shù)據(jù)的轉(zhuǎn)換,所以在FPGA 軟件中添加GTX,即G bit 收發(fā)器IP,用以滿足光纖高速傳輸?shù)男枨?。GTX 目前的線速度范圍為1 Gb/s~12 Gb/s,有效負(fù)載范圍為0.8 Gb/s~10 Gb/s,在光纖通道、PCIE、千兆以太網(wǎng)中得到廣泛應(yīng)用。4 種接口與GTX 之間的邏輯關(guān)系如圖4所示。
圖4 接口與GTXFig. 4 Block diagram of interface and GTX
CAN 總線 在光纖數(shù)據(jù)總線中,需要將CAN數(shù)據(jù)轉(zhuǎn)化為適合GTX 傳輸?shù)臄?shù)據(jù)格式,包括TX 和RX 兩個(gè)方向。同時(shí)由于軟件平臺(tái)自帶的AXI CAN IP 核是在AXI 接口和CAN 接口之間進(jìn)行轉(zhuǎn)換,為了省掉AXI 接口轉(zhuǎn)換的步驟,提高數(shù)據(jù)轉(zhuǎn)換效率,故由開發(fā)人員編寫CAN 收發(fā)IP 核,并在這個(gè)新的IP 核中添加與GTX IP 核進(jìn)行數(shù)據(jù)交換的接口。
422 總線 光纖數(shù)據(jù)總線中422 差分接口的實(shí)現(xiàn)需要通過(guò)外接422 接口芯片來(lái)實(shí)現(xiàn),這樣在FPGA端所需要處理的信號(hào)就是收發(fā)2 個(gè)方向的單端信號(hào)。422 單端信號(hào)處理是通過(guò)開發(fā)人員編寫的IP 核來(lái)實(shí)現(xiàn),在該IP 核中同樣添加了與GTX 交互的接口。
以太網(wǎng)和PCIE 由于以太網(wǎng)和PCIE 都是高速數(shù)據(jù)信號(hào),需要較高的時(shí)鐘周期,所以在GTX 全局時(shí)鐘上以以太網(wǎng)時(shí)鐘為基準(zhǔn),通過(guò)倍頻的方式兼容CAN、422 總線等低速信號(hào)的時(shí)鐘。
根據(jù)以上的接口時(shí)序和數(shù)據(jù)傳輸設(shè)計(jì)了NT端FPGA 軟件的邏輯功能和軟件編寫,在FPGA 上進(jìn)行數(shù)據(jù)接口傳輸測(cè)試。將光纖數(shù)據(jù)總線的NC和NT 端與上位機(jī)相連接,實(shí)物圖如圖5 所示。
圖5 光纖數(shù)據(jù)總線系統(tǒng)實(shí)物連接圖Fig. 5 Physical connection picture of optical fiber databus system
實(shí)物連接圖中試驗(yàn)臺(tái)上左一為NC,其余3 塊板子為NT。將光纖數(shù)據(jù)總線連接好之后,啟動(dòng)傳輸測(cè)試程序,可以看到,在接口時(shí)序控制器的控制下,NC 根據(jù)事先設(shè)計(jì)好的時(shí)序依次向各NT 端的各個(gè)接口發(fā)送傳輸使能信號(hào),進(jìn)而進(jìn)行各接口數(shù)據(jù)的傳輸。在每個(gè)接口的傳輸時(shí)隙到來(lái)時(shí),NC 和每個(gè)NT 依次向GTX 發(fā)送和接收屬于本接口的數(shù)據(jù)。GTX 接口將不同時(shí)隙所傳輸?shù)慕涌跀?shù)據(jù)通過(guò)光接口發(fā)送和接收。不同的接口傳輸?shù)臄?shù)據(jù)可以在上位機(jī)上顯示出來(lái),顯示結(jié)果如圖6 所示。各接口時(shí)序如圖7 所示。
圖6 接口傳輸數(shù)據(jù)在上位機(jī)的顯示圖Fig. 6 Display diagram of interface transmission data in upper computer
圖7 各個(gè)接口的時(shí)序圖Fig. 7 Time sequence diagram of each interface
本文提出了一種基于FPGA 平臺(tái)的多接口融合光纖總線光網(wǎng)絡(luò)終端的設(shè)計(jì)方法。設(shè)計(jì)重點(diǎn)在于將不同速率的接口所傳輸?shù)臄?shù)據(jù)通過(guò)光纖總線傳輸??梢钥吹?,在這種NT 設(shè)計(jì)中,各接口數(shù)據(jù)傳輸井然有序,沒有造成光纖總線的壅塞或者長(zhǎng)時(shí)間空閑,可用于車載光纖總線平臺(tái)產(chǎn)品中。