陳澤宇,趙嘉禾,宋潤泉, 許惟超, 李文博
(1. 海裝上海局駐上海地區(qū)第六軍事代表室,上海 201100;2. 上海航天電子技術(shù)研究所,上海 201108)
串口通訊在計算機通信領(lǐng)域一直是重要的通信方式[1]。雖然因為其傳輸速率等缺陷在民用領(lǐng)域逐漸被淘汰,但其在可靠性和易用性等方面的優(yōu)勢使其在軍事領(lǐng)域一直被長期使用。軍事信息化是我軍建設(shè)的發(fā)展方向[2],以太網(wǎng)協(xié)議在穩(wěn)定性、通用性、高速性和廉價性方面具有優(yōu)勢[3],成為軍事信息化的重要基礎(chǔ)。目前,以太網(wǎng)的協(xié)議標準發(fā)展得十分完善,且已在新型的國產(chǎn)化信息設(shè)備中得到全面支持。
目前,現(xiàn)役的眾多型號裝備不具備以太網(wǎng)通信的功能,本身無法接入信息化網(wǎng)絡(luò)中,這成為信息化指揮與控制的痛點。為了將無網(wǎng)絡(luò)通信功能的裝備直接或間接接入信息化網(wǎng)絡(luò)中,在兩者的中間層可設(shè)計一種適配設(shè)備,一方面面向該裝備發(fā)送控制信息和接收處理回告信息,另一方面面向網(wǎng)絡(luò)或接入網(wǎng)絡(luò)的其他信息設(shè)備發(fā)送裝備的回告信息并接收上位機的控制命令。本文設(shè)計的信息化適配設(shè)備支持RS422/485通信、UDP通信等通信協(xié)議,用于與上位計算機通訊,具備繼電器控制、電平信號采集等功能用于控制受控裝備和接收處理其回告信號,可以用于實現(xiàn)上述功能。
為了兼容不同的系統(tǒng)架構(gòu),本文設(shè)計的信息化適配設(shè)備在硬件上支持的功能接口數(shù)量和種類多樣性上滿足了各種型號的需求。為了實現(xiàn)小型化和智能化,硬件平臺使用國產(chǎn)FPGA 作為控制核心。相較于單片機,F(xiàn)PGA 具備豐富的邏輯資源和并行處理能力[4],能夠有效地連接軟件和硬件,且功能易更新。
本文設(shè)計實現(xiàn)了一種基于國產(chǎn)FPGA的小型化信息化適配設(shè)備,具備與上位機進行串口通信、千兆以太網(wǎng)通信,具備控制內(nèi)部繼電器、電平收發(fā)等功能與受控設(shè)備進行交互。圖1 展示了該型適配設(shè)備的核心板。
圖1 國產(chǎn)信息化適配設(shè)備核心板(正面)
該設(shè)計選用深圳國微SMQ7K410型號FPGA作為控制核心,外圍關(guān)鍵器件選用88E1111作為以太網(wǎng)物理層芯片,DS26LV32和DS26LV31分別作為RS422串口的收發(fā)元件。使用的全部元器件實現(xiàn)國產(chǎn)化替代,避免了使用進口器件的潛在安全風險[5]。在軟件設(shè)計方面使用Verilog 硬件描述語言進行,設(shè)計了包括UART、UDP、IP、ARP 和MAC 模塊的通信功能[6],以及加斷電控制、回告指示等用于FPGA 驅(qū)動外圍器件的控制模塊。整體設(shè)計框圖如圖2所示。
圖2 系統(tǒng)整體設(shè)計架構(gòu)
RS422 可用于實現(xiàn)多點通信和差分數(shù)據(jù)傳輸。如圖3 所示,本文設(shè)計的RS422 硬件使用DS26LV31和DS26LV32兩種芯片的國產(chǎn)替代型號分別實現(xiàn)發(fā)送和接收功能,可以實現(xiàn)最多16 路并行接收和24 路并行發(fā)送。
圖3 RS422收發(fā)芯片原理圖
以太網(wǎng)功能實現(xiàn)使用了國產(chǎn)物理層芯片88E11 11 與FPGA 的MAC 模塊通信。在設(shè)計中將物理層芯片配置為GMII 模式下工作,可與外部網(wǎng)絡(luò)設(shè)備進行千兆以太網(wǎng)通信。為了使FPGA 能夠控制受控裝備并接收其回告信號,硬件上選用AQV212、JGC-3036 和MAX1490 的國產(chǎn)替代型號分別實現(xiàn)繼電器通斷控制、電平信號采集和高隔離度準秒脈沖接收功能。
如圖2 所示,本文使用Verilog 硬件描述語言設(shè)計頂層邏輯和UART 模塊、UDP通信模塊等功能模塊。
UART 功能模塊包含發(fā)送和接收功能,分別由UART_TX和UART_RX兩個子模塊實現(xiàn),用于控制圖3所示的板載芯片收發(fā)RS422報文。該模塊采用標準UART 異步串行協(xié)議,1 位起始位,8 位數(shù)據(jù)位,1 位停止位,數(shù)據(jù)字節(jié)先發(fā)低位后發(fā)高位,波特率和字節(jié)校驗可由頂層邏輯配置。
UART_TX 模塊發(fā)送時序如圖4a)所示,發(fā)送開始時拉高wr_en 信號,將din 數(shù)據(jù)字節(jié)寫入模塊內(nèi)部FIFO 中。模塊每個時鐘上升沿檢測FIFO 狀態(tài),當FIFO非空時,模塊驅(qū)動底層發(fā)送功能輸出串行數(shù)據(jù)。
圖4 UART功能模塊時序圖
UART_RX 模塊接收時序如圖4b)所示,當接收字節(jié)數(shù)據(jù)rxd_data 接收到起始位開始接收,當收到停止位,且配置有校驗位的情況下校驗正確時,模塊輸出接收字節(jié)rec_data,并在下一個時鐘發(fā)出接收確認脈沖rec_en。
UDP功能模塊可以由用戶配置IP地址和MAC地址,實現(xiàn)千兆以太網(wǎng)通信的功能。模塊遵守以太網(wǎng)IEEE802.3 標準,其協(xié)議框架由OSI 七層模型發(fā)展到現(xiàn)在的TCP/IP 五層模型,如表1 所示,TCP/IP 協(xié)議簇包含HTTP、TCP、UDP、IP、ARP 等協(xié)議。UDP 功能模塊實現(xiàn)了傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層共三層,UDP數(shù)據(jù)由FPGA頂層邏輯打包,故不存在應(yīng)用層;物理層由于需要模擬器件,由88E1111芯片實現(xiàn)。
表1 TCP/IP模型及功能描述
模塊在收到發(fā)送命令后,首先對數(shù)據(jù)進行幀封裝,由UDP 模塊添加UDP 首部。UDP 首部共8 字節(jié),包括源端口號、目的端口號、報文長度、校驗值各2字節(jié)。在UDP 模塊中設(shè)計有一個狀態(tài)機,將UDP 封裝過程分為6個狀態(tài):等待狀態(tài)、添加首部狀態(tài)、計算寫入校驗高字節(jié)、計算寫入校驗低字節(jié)、封包狀態(tài)、寫入緩存。6 個狀態(tài)依次進行,并最終回到等待狀態(tài),UDP數(shù)據(jù)包發(fā)送到IP 模塊。在接收過程中,IP 模塊將接收命令和UDP 數(shù)據(jù)幀發(fā)送給UDP 模塊進行解包得到用戶發(fā)送數(shù)據(jù)。
IP 模塊將UDP數(shù)據(jù)包進一步封裝,加入IP 首部發(fā)送至MAC層。本模塊設(shè)置IP首部共20個字節(jié),包括首部長度、總長度、標識、首部校驗和、源IP 地址、目的IP 地址等。IP 幀發(fā)送過程包含下述狀態(tài):等待狀態(tài)、添加首部狀態(tài)、計算寫入校驗高字節(jié)、計算寫入校驗低字節(jié)、寫入RAM。狀態(tài)依次進行,并最終回到等待狀態(tài),IP 數(shù)據(jù)包發(fā)送到MAC 模塊。在接收過程中,MAC 模塊將接收命令和IP 數(shù)據(jù)幀發(fā)送給IP模塊進行解包得到UDP 數(shù)據(jù)幀。IP模塊中包含ICMP功能,用于與上位機進行通信請求與應(yīng)答功能。
MAC模塊發(fā)送時將MAC幀首部封裝到IP數(shù)據(jù)包頭,并驅(qū)動物理層芯片;在接收時收到物理層芯片的數(shù)據(jù)進行解包發(fā)送到IP模塊。ARP模塊通過MAC模塊和物理層芯片,向以太網(wǎng)發(fā)送地址解析協(xié)議(Address Resolution Protocol,ARP) 報文和接收應(yīng)答消息,建立FPGA到上位計算機的以太網(wǎng)連接。ARP模塊在找不到IP 地址對應(yīng)的MAC 地址時,會向以太網(wǎng)當前網(wǎng)段廣播包含本機的IP 地址、MAC 地址和請求的目的IP 地址的ARP 報文。目的IP 地址計算機接收到ARP 報文后將本機MAC 地址單播發(fā)到ARP 模塊,由ARP模塊建立ARP表。
本節(jié)在上述信息化適配設(shè)備硬件平臺和UART、UDP 軟件功能模塊的基礎(chǔ)上,設(shè)計了軟件頂層邏輯,實現(xiàn)轉(zhuǎn)發(fā)接收到的RS422導(dǎo)航報文信息、根據(jù)接收的RS422 報文控制輸出設(shè)備加電和通過UDP 與上位機雙向通信的功能。
如圖5 所示,UART_RX 模塊通過“rxd_data1”“rxd_data2”收到握手報文后約12ms,UART_TX 模塊發(fā)出報文向計算機1、2;當從“txd_out_dh”收到導(dǎo)航數(shù)據(jù)后,UART_TX 模塊向計算機1、2 和照射轉(zhuǎn)發(fā)導(dǎo)航數(shù)據(jù)。
圖5 發(fā)送報文和導(dǎo)航信息
如圖6 所示,在約50ms 時刻FPGA 接收到特定報文命令后,通過“l(fā)d_out”為3臺受控裝備加電。
圖6 接收報文為設(shè)備加電
如圖7 所示,F(xiàn)PGA 端軟件配置IP 為192.168.0.2,上位機配置IP 為192.168.0.1,通信使用6100 端口。將上位機通過以太網(wǎng)連接到信息化適配設(shè)備后,兩者可以通過UDP協(xié)議正常通信。
圖7 UDP通信功能
本文設(shè)計了基于國產(chǎn)FPGA 的信息化適配設(shè)備,在其基礎(chǔ)上開發(fā)了驅(qū)動RS422 和千兆以太網(wǎng)等軟件模塊,實現(xiàn)了計算機與FPGA的RS422、千兆以太網(wǎng)的通信功能。此設(shè)備能夠作為適配設(shè)備連接遠程計算機和受控裝備,既能根據(jù)上位計算機的控制命令控制受控裝備,又能將受控裝備的回告狀態(tài)信息根據(jù)通信協(xié)議發(fā)送到計算機和網(wǎng)絡(luò)。通過仿真和驗證,上述功能得到了確認。