王俊林,劉 宇,趙斌陶
(西安應用光學研究所 陜西 西安 710029)
隨著光電偵察技術的飛速發展,并以最大的廣度和深度滲透到現代軍事斗爭的各個領域,使其成為實現軍事偵察高技術化、信息化的核心和支柱。目前,光電偵察設備正朝著適應未來復雜戰場環境,進一步提高精度、分辨率,提高智能化,網絡協同多種偵察設備的方向發展[1]。因此,光電偵察設備如何將大容量高速數據進行可靠的網絡接入是首先需要解決的問題之一。
經過多年的發展,以太網通信的傳輸速率已經從最早的10 Mb/s到現在的1 Gb/s,它具有通信容量大、傳輸距離遠,信號傳輸質量高、保密性好等諸多優點[2],在光電偵察信息數據傳輸中有著廣泛的應用前景。本文以帶硬件TCP/IP模塊的8051控制器W7100A設計和實現了偵察設備與其他遠程設備之間的光電偵察信息網絡接入接口,使之遵守以太網通信規范。
光電偵察設備系統整體由采集模塊、控制模塊、網絡模塊等組成,其連接關系如圖1所示。采集模塊主要是采集光電傳感器的圖像、軸角等信息,并輸出經過處理的數字信號;控制模塊則主要控制各模塊之間按照系統功能協調工作;網絡模塊主要是將數據按照以太網協議規范進行處理以實現數據的網絡接入功能。系統的核心在于網絡接入功能的實現,因此文中將對網絡接口的設計做重點說明。

圖1 系統整體設計Fig.1 The system block diagram
網絡接口是為系統實現數據的網絡傳輸服務的,主要由接口控電路和隔離耦合電路組成。在接口控制電路中,由系統控制器完成對網絡芯片的控制功能;耦合隔離電路是為完善網絡接口設計的,起到耦合傳輸和隔離保護的作用。
文中的以太網控制器采用WIZnet公司的網絡微處理器W7100A,其包含一個與8051兼容的8位微處理器內核和硬件TCP/IP內核[3]。W7100A的CPU內核是一款高性能、速率優化的8位嵌入式控制器,具有64 k字節程序存儲器和64 k字節數據存儲器,與工業標準的8051微處理器二進制代碼兼容。圖 2為網絡接口的電路原理圖。

圖2 網絡接口電路原理圖Fig.2 Network interface cicuit diagram
W7100A負責完成高速數據的傳輸工作,把數據傳送給FPGA進行數據處理。W7100A的P0~P3口分別與FPGA的IO口相連接,完成與FPGA的數據傳輸。由于W7100A沒有外部數據總線和地址總線,所以在與FPGA進行通信時用P0~P3 4個通用IO口模擬數據總線進行數據傳輸,且其通用IO口都沒有內部上拉電阻,需要外部加上拉電阻。
網絡變壓器20F001N實現W7100A芯片的網絡輸入輸出信號的隔離,構成模塊的網絡接口。由于網絡通訊速度高達100 M,為減小電干擾,W7100A芯片的網絡數據輸入和輸出的兩對信號線要分別平行布放且不要與其他連線交叉。
因為W7100A內部嵌入一個8051兼容的MCU內核和硬件的TCP/IP內核[4],它可以不需要其它器件而獨立實現以太網的應用。使用W7100A時要先進行初始化配置,初始化分3個步驟:設置8051 MCU,網絡信息和內部TX/RX存儲器。
3.1.1 初始化MCU
MCU的初始化包括中斷設置,存儲器訪問時間設置和串口波特率、寄存器設置等。設置如下:


3.1.2 設置網絡信息
必須設置的網絡基本信息有:SHAR(本機物理地址寄存器)、GAR(網關地址寄存器)、SUBR(子網掩碼寄存器)、SIPR(本機IP地址寄存器)。
為了設置重發時間,需要設置的寄存器如下:
1)RTR(重發時間寄存器),RTR的‘1’代表‘100us’。
2)RCR(重發次數寄存器)
網絡信息初始化的程序如下:


3.1.3 分配SOCKET n內部TX/RX存儲器大小
每一個可配置的TX/RX存儲器的最大長度為16 k字節,在16 K字節的范圍內,用戶可以將存儲器給8個SOCKET任意分配為1 k、2 k、4 k和8 k字節。但TX和RX存儲器的總合不能超過16 k字節(TXmax=16 kB, RXmax=16 kB)。

圖3 TX寄存器的分配Fig.3 TX memory allocation
完成W7100A的這3步初始化設置,W7100A就可以通過以太網進行數據傳輸。此刻,W7100A可以響應來自于網絡的Ping請求。
初始化完成以后,W7100A就可以以TCP、UDP、IPRAW或MACRAW的模式打開端口,并發送和接收數據。W7100A支持8個端口以不同的方式同時進行工作。本系統選用UDP模式的多播方式工作。
UDP是無連接的通信,它的通信是不需要端口建立連接,因此它可以與多個IP地址的多個端口進行數據交換[5]。UDP協議支持單播、廣播和多播等通信方式。它遵循以下通信流程。
多播是與多個、但在多播組注冊的目的站點進行通信。為了使用多播通信,使用IGMP協議將目的站點列表注冊到多播組。多播組包括:分組硬件地址、分組IP地址和組端口號。用戶不能夠更改“分組硬件地址”和“分組IP地址”。但用戶可以更改“分組端口號”。

圖4 UDP操作流程Fig.4 UDP operation flow
在W7100A內部,IGMP處理多播注冊是由內部自動完成的。當用戶以多播的模式打開端口時,“JOIN”信息將在內部自動傳送。如果用戶關閉端口,“LEAVE”信息將在內部自動傳送。端口打開以后,“REPORT”信息將在數據傳輸過程中每隔一定的時間傳送。
3.2.1 打開(OPEN)
在W7100 A的8個端口中選擇一個端口作為多播通信的工作端口。設置Sn_DHAR0為多播組硬件地址,設置Sn_DIPR0為多播組IP地址。然后設置Sn_PORT0和Sn_DPORT0為多播組端口號,將Sn_MR (P3:P0)設置為UDP,且將Sn_MR(MULTI)設置為‘1’。最后運行OPEN命令。如果Sn_SR的狀態在執行完OPEN命令后改變為SOCK_UDP,端口的打開即完成。

3.2.2 接收數據
處理接收的UDP數據,在內部RX存儲器中接收的數據包格式如下:
接收的UDP數據包含8個字節的數據包信息和有效數據。數據包信息包括兩個部分:發送者的信息(IP地址和端口號)和數據包的長度。UDP可以接收其它的很多UDP數據,用戶可以通過發送者的信息區分UDP數據來源。它也接收以“255.255.255.255”的廣播地址發送的信息。因此主機可以通過分析發送者的信息,丟掉那些不需要的數據。
如果要接收的數據長度大于端口RX存儲器的剩余空間,用戶將無法接收到數據,也不能夠接收分片的數據。

3.2.3 發送數據
因為在端口初始化時用戶設置了組播信息,用戶不需要再設置目的IP和目的端口號。因此,將數據拷貝到內部TX存儲器然后執行SEND命令。

3.2.4 關閉(CLOSE)
如果不需要再進行數據通信,則將端口關閉。


文中介紹了一種基于W7100A網絡微處理器實現光電偵察信息網絡接入的方案。由于該網絡微處理器嵌入了MCU 8051內核和硬件TCP/IP內核,使用時不需要考慮以太網的控制,只需要進行簡單的端口(Socket)編程[6],而且該設備外圍器件較少,硬件成本低廉,實現較為簡單方便,該方案具有集成度高、穩定性高、高性能和低成本的特點,具有廣闊的應用前景。
[1]鄭燁,張伯虎,李孔震.光電偵察裝備的現狀與發展前景探析[J].科技資訊,2010(1):4-6.
[2]楊磊.基于工業以太網的數控系統實時性問題研究[D].北京:中國科學技術大學,2014.
[3]WIZnet Co.,Inc.Internet embedded MCU W7100A datasheet[EB/OL].Korea:WIZnet,2012.http://www.wiznet.co.k
[4]Atmel.8051 Microcontrollers Hardware Manual[EB/OL].California:Atmel,2007.http://www.atmel.com.
[5]Richard S W,范建華,等譯.TCP/IP詳解卷1:協議[M].北京:機械工業出版社,2008.
[6]王偉,藍雯飛,高偉華.用Socket實現UDP協議下的網絡通信[J].軟件導刊,2009,8(9):115-117.