孟 博,蔡 明,張 楠
(1.中航工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710068;2.空裝駐西安地區(qū)第六軍事代表室, 陜西 西安 710068)
作為一種高速串行的總線網(wǎng)絡(luò),F(xiàn)C網(wǎng)絡(luò)主要用于大數(shù)據(jù)量傳輸場(chǎng)合。當(dāng)前機(jī)載航電系統(tǒng)多采用綜合化體系架構(gòu),具有各類傳感器、數(shù)字化地圖和視頻影像顯示等功能的綜合處理能力,要求網(wǎng)絡(luò)必須提供足夠大的通信帶寬和高可靠安全性能。為了達(dá)到現(xiàn)代機(jī)載航電系統(tǒng)高帶寬、低延遲、低誤碼率、高可靠性和強(qiáng)抗干擾能力等要求,現(xiàn)代主要機(jī)載航電系統(tǒng)均選用FC作為航電統(tǒng)一網(wǎng)絡(luò),大大提高了飛機(jī)性能指標(biāo)[1-3]。本文設(shè)計(jì)了一種自定義高速串行主機(jī)FC接口單元,該串行主機(jī)接口可以實(shí)現(xiàn)FPGA GTP到GTP的高速數(shù)據(jù)通信,無(wú)需外部處理器介入,具有更高的通信效率。
自定義高速串行主機(jī)FC接口單元應(yīng)用于機(jī)載航電通信環(huán)境,作為機(jī)載航電通信系統(tǒng)的FC通信接口使用,支持FC-AE-ASM通信協(xié)議[4,5]。該接口單元對(duì)外提供高速差分串行數(shù)據(jù)主機(jī)接口和FC通信接口,通過(guò)高速差分串行數(shù)據(jù)主機(jī)接口接收前端機(jī)載系統(tǒng)內(nèi)部載板發(fā)送的數(shù)據(jù),通過(guò)FC通信接口實(shí)現(xiàn)與后端機(jī)載數(shù)據(jù)記錄系統(tǒng)之間的點(diǎn)到點(diǎn)數(shù)據(jù)傳輸,F(xiàn)C接口單元系統(tǒng)架構(gòu)如圖1所示。
FC接口單元的主要硬件配置和通信接口包括時(shí)鐘電路、復(fù)位電路、離散量接口、自定義主機(jī)接口和FC通信接口等。FC接口單元以FPGA為核心實(shí)現(xiàn)協(xié)議轉(zhuǎn)換功能,該FPGA集成度高、器件密度大、速度快、片上存儲(chǔ)資源豐富,具有多用戶IO管腳和多路高速GTP,支持100 Mbps~3.75 Gbps多種通信速率,且速率可動(dòng)態(tài)配置,支持RapidIO、QDR等多種高速通信接口編碼和電平特性,能夠滿足設(shè)計(jì)需求,可以實(shí)現(xiàn)復(fù)雜的時(shí)序與組合邏輯電路功能。
圖1 FC接口單元系統(tǒng)架構(gòu)
FC接口單元通過(guò)自定義高速串行主機(jī)接口實(shí)現(xiàn)與前端機(jī)載系統(tǒng)的數(shù)據(jù)交互。該高速串行接口將承載12路1394總線數(shù)據(jù)、1路維護(hù)數(shù)據(jù)以及1路狀態(tài)數(shù)據(jù)內(nèi)容的數(shù)據(jù)注入。該接口單元高速串行主機(jī)接口根據(jù)接口定義完成輸入數(shù)據(jù)采集,并依據(jù)通信配置信息,進(jìn)行FC-AE-ASM消息的數(shù)據(jù)組幀,并提交FC發(fā)送單元進(jìn)行發(fā)送。
自定義高速串行主機(jī)接口采用FPGA內(nèi)部硬核GTP實(shí)現(xiàn),為1 Lane GTP到GTP的自定義主機(jī)接口,使用差分信號(hào),單向通信速率2.125 Gbps。自定義高速串行主機(jī)接口數(shù)據(jù)格式見(jiàn)表1,其中數(shù)據(jù)幀內(nèi)容包括數(shù)據(jù)首幀、數(shù)據(jù)中間幀、數(shù)據(jù)尾幀、數(shù)據(jù)幀分片序號(hào)、數(shù)據(jù)幀分片長(zhǎng)度、數(shù)據(jù)幀分片內(nèi)容和數(shù)據(jù)總長(zhǎng)度。在設(shè)計(jì)和實(shí)現(xiàn)時(shí),F(xiàn)C接口單元與前端機(jī)載系統(tǒng)需采用相同的GTP接口配置,GTP接收端采用AC耦合。
表1 自定義高速串行主機(jī)接口數(shù)據(jù)格式
GTP核實(shí)現(xiàn)高速串行鏈路上的10B碼流和內(nèi)部邏輯使用的8B并行數(shù)據(jù)之間的轉(zhuǎn)換,GTP接收狀態(tài)機(jī)按照既定的接收規(guī)則接收前端機(jī)載系統(tǒng)傳來(lái)的數(shù)據(jù)幀,將接收到的數(shù)據(jù)幀進(jìn)行CRC校驗(yàn)以及各種錯(cuò)誤檢測(cè),最后將接收的正確數(shù)據(jù)幀存放在GTP接收緩沖區(qū)中。錯(cuò)誤檢測(cè)單元根據(jù)接收到的數(shù)據(jù)幀以及狀態(tài)機(jī)當(dāng)前狀態(tài)判斷接收的數(shù)據(jù)是否正確,如果檢測(cè)到錯(cuò)誤,則立即通知狀態(tài)機(jī)進(jìn)行相應(yīng)的狀態(tài)跳轉(zhuǎn),數(shù)據(jù)幀錯(cuò)誤狀態(tài)包括數(shù)據(jù)EOF無(wú)效、數(shù)據(jù)CRC無(wú)效、數(shù)據(jù)長(zhǎng)度無(wú)效、幀標(biāo)識(shí)無(wú)效、幀序號(hào)無(wú)效和數(shù)據(jù)接收緩沖區(qū)滿等。GTP接收緩沖區(qū)管理采用輪流存放方式,GTP接收緩沖區(qū)包括4個(gè)緩沖buffer,每個(gè)緩沖buffer可容納一個(gè)最大的自定義數(shù)據(jù)幀,大小為2096個(gè)字節(jié)。緩沖區(qū)采用簡(jiǎn)單雙口RAM例化,寫(xiě)入端連接GTP接收狀態(tài)機(jī),讀出端連接ASM消息發(fā)送控制單元。
FC通信接口實(shí)現(xiàn)與后端機(jī)載數(shù)據(jù)記錄系統(tǒng)之間的點(diǎn)到點(diǎn)數(shù)據(jù)傳輸,該FC接口單元從主機(jī)接口GTP接收緩沖區(qū)中讀取數(shù)據(jù)幀,按照ASM協(xié)議要求進(jìn)行組幀,然后將數(shù)據(jù)幀存放在MAC發(fā)送緩沖區(qū)中,再?gòu)腗AC發(fā)送緩沖區(qū)中讀取并發(fā)送至光纖鏈路。該FC接口滿足FC-AE-ASM協(xié)議要求,通信速率2.125 Gbps,全雙工通信,支持點(diǎn)到點(diǎn)拓?fù)浣Y(jié)構(gòu),支持3類服務(wù),支持不小于80%線速ASM協(xié)議流數(shù)據(jù)發(fā)送帶寬,支持1路流數(shù)據(jù)塊消息發(fā)送通道。
MAC發(fā)送緩沖區(qū)與主機(jī)接口GTP接收緩沖區(qū)類似,采用順序輪流的使用方式,包括8個(gè)緩沖buffer,每個(gè)緩沖buffer可容納一個(gè)最大FC幀,大小為2148個(gè)字節(jié),寫(xiě)入端連接ASM消息發(fā)送控制單元,讀出端連接MAC發(fā)送控制單元。
使用FC接口單元作為數(shù)據(jù)激勵(lì)源搭建測(cè)試驗(yàn)證環(huán)境,將激勵(lì)源的FC接口單元數(shù)據(jù)發(fā)送端和被測(cè)FC接口單元的主機(jī)接口接收端連接,同時(shí)使用高速數(shù)據(jù)線纜將激勵(lì)源和被測(cè)模塊兩端的FC接口連接。測(cè)試驗(yàn)證環(huán)境示意圖如圖2所示。
圖2 測(cè)試驗(yàn)證環(huán)境示意圖
數(shù)據(jù)激勵(lì)源母板集成模塊連接器和RS232串口驅(qū)動(dòng)器,該驅(qū)動(dòng)器實(shí)現(xiàn)測(cè)試設(shè)備的UART串口功能。測(cè)試邏輯使用偽隨機(jī)碼并按照約定格式發(fā)送,啟動(dòng)發(fā)送由邏輯集成的MicroBlaze處理器控制。接口單元接收到數(shù)據(jù)后,由邏輯進(jìn)行比對(duì),將正確和錯(cuò)誤結(jié)果使用不同的中斷上報(bào)給MicroBlaze處理器,處理器響應(yīng)中斷,并進(jìn)行統(tǒng)計(jì)計(jì)數(shù),通過(guò)UART串口上報(bào)PC機(jī)打印結(jié)果。
FC接口單元上電后,MicroBlaze處理器運(yùn)行,設(shè)置軟件計(jì)數(shù)變量為0,讀取FC鏈路狀態(tài),在判斷鏈路狀態(tài)正常情況下,發(fā)送第一次測(cè)試命令到測(cè)試邏輯,測(cè)試邏輯啟動(dòng)偽隨機(jī)碼邏輯,并在發(fā)送的同時(shí)填入到數(shù)據(jù)比較緩存中。FC接口單元接收FC數(shù)據(jù),并將接收到的數(shù)據(jù)暫存于數(shù)據(jù)接收緩存中,在FC數(shù)據(jù)接收完成后,將接收緩存中的數(shù)據(jù)和測(cè)試邏輯比較緩存中的數(shù)據(jù)通過(guò)硬件進(jìn)行讀取比較,比較完成后,根據(jù)結(jié)果上報(bào)中斷到處理器。處理器響應(yīng)中斷,按照約定頻率,比如10次正確輸出一次,單次錯(cuò)誤輸出并停止測(cè)試,通過(guò)UART輸出測(cè)試結(jié)果,并在PC機(jī)端觀察串口輸出結(jié)果,并以此作為合格判據(jù)。
結(jié)合現(xiàn)代機(jī)載航電系統(tǒng)對(duì)于數(shù)據(jù)傳輸帶寬、數(shù)據(jù)傳輸效率和安全可靠性等方面的高要求,本文設(shè)計(jì)了一種自定義高速串行主機(jī)FC接口單元,該串行主機(jī)接口采用FPGA內(nèi)部硬核GTP,可以實(shí)現(xiàn)FPGA GTP到GTP的高速數(shù)據(jù)通信,無(wú)需外部處理器介入,具有更高的通信效率。最后搭建測(cè)試平臺(tái),利用MicroBlaze處理器開(kāi)發(fā)功能測(cè)試邏輯。經(jīng)測(cè)試驗(yàn)證和工程應(yīng)用表明,該FC接口單元各項(xiàng)性能指標(biāo)均符合主機(jī)系統(tǒng)要求,應(yīng)用前景廣泛。