,
(淮陰工學院 計算機與軟件工程學院,淮安 223001)
采集終端在線動態修改IP地址是當今智能化時代的需求,它不僅衡量著產品的性能,還關聯著節約人力資源、減少人為操作失誤、方便主站管理等優點[1],因此在采集終端設計的過程中添加“在線動態修改IP地址”功能是必不可少的。
本文設計了基于LPC1788嵌入式微控制器、K9F1G08U0A片外NandFlash和DP83848網絡接口作為核心模塊組成的采集終端在線動態修改IP系統,完成了短時間內快速動態修改IP,主站重新以新的目標IP地址連接采集終端的實驗,有效地減少了人為斷電上電或復位的操作量和響應時間。
采集終端在線動態修改IP系統的結構如圖1所示, 主站和采集終端之間用以太網連接,DP83848以太網模塊[10-11]用于接收主站發送的報文,K9F1G08U0A片外NandFlash用于存儲重要信息(如終端版本信息、終端IP地址等),LPC1788用于控制寄存器和相關模塊,JTAG仿真調試接口用于下載程序調試仿真。

圖1 系統結構圖
動態修改IP流程如圖2所示,主站和采集終端采用TCP/IP協議通信,主站作為客戶端,采集終端作為服務器,在主站的通信方式里輸入采集終端默認設置的IP地址(192.168.1.5)和端口號(5000);請求進行連接,連接成功后,發送新IP地址的報文給采集終端,采集終端通過網絡模塊接收到內容后,根據Q/GDW-376.1協議從報文中提取出有效幀,校驗幀的合法性以及是否需要修改IP地址,如果幀合法且需要修改IP地址,則把新的IP地址存放在NandFlash中[8-9],然后禁用默認網卡“netif_set_down(netif_default)”,讀取NandFlash中的IP地址,寫入默認網卡“netif_
set_addr(netif_default, &ipaddr, &netmask, &gw)”,延時1 s,再次使能網卡“netif_set_up( netif_default)”。此時終端會重新創建socket,綁定新的終端IP地址(如192.168.1.10)和端口號(8080),并對端口號進行監聽,等待主站的請求連接。此時主站會自動斷開連接,重新在通信方式中輸入新的IP地址(192.168.1.10)和端口號(8080),可以建立新的連接,如果沒有內容需要發送,可以根據需要發送斷開報文幀給終端,請求斷開連接[2-7]。

圖2 動態修改IP地址流程
測試結果如圖3所示,主站先以IP :192.168.1.5,端口號:5000 與終端連接,并發送了修改IP地址的報文。根據Q/GDW-376.1協議,如圖4所示,報文的 DAT鏈路用戶數據部分,第一個字節為應用層功能碼AFN=04,幀序列號SEQ=72,數據單元標識Pn=0000、Fn=4000,數據單元:C0 A8 01 0A FF FF FF 00 C0 A8 01 01(16進制),對應為十進制是192 168 1 10 (新IP地址)、255 255 255 0(子網掩碼)、192 168 1 1(網關)。終端接收后處理報文,創建新的socket綁定新的IP地址192.168.1.10,端口號為8080,并對端口號進行監聽,主站以新的IP地址和端口號能夠迅速與終端進行連接。

圖3 測試結果

圖4 鏈路用戶數據層格式
本設計應用在如圖5所示的油井智能終端中,能夠根據主站修改IP命令,實時修改IP地址,性能滿足實時性、便捷性要求。

圖5 油井智能終端

參考文獻
[1] 呂京建.嵌入式因特網技術的興起與前景[J].今日電子,2000(S1):4-5.
[2] Ju H,Choi M,Hong J W.An efficient and lightweight embedded Web server for Web‐based network element management[J].International Journal of Network Management,2015,10(5):261-275.
[3] 陳利鋒,劉博勤,涂時亮,等.嵌入式系統網絡互連技術的設計與實現[J].計算機科學,2001,28(10):100-103.
[4] 蘇勇輝.基于ARM微處理器TCP/IP協議棧LwIP實現[J].國外電子測量技術,2009,28(10):76-78.
[5] 王慧青,張小國,丁晗.一種基于移動終端動態IP地址的數據實時傳輸方法:中國,CN105610997A[P].2016.
[6] 李慶江.基于LwIP協議棧的嵌入式Web服務器的設計及實現[J].齊魯工業大學學報,2008,22(4):97-100.
[7] 石廣治,劉波,姜秀杰,等.基于ARM的嵌入式系統以太網通訊設計[J].微計算機信息,2010,26(32):80-82.
[8] Gou H L,Liang G Z,Xie H Q.Application of K9F1G08U0A in MSP430 sigle chip system[J].Hebei Journal of Industrial Science&Technology,2009.
[9] 李晴.高速大容量NAND FLASH存儲系統的設計與實現[D].北京:北京理工大學,2015.
[10] 陳冬發,朱寧西.基于ARM-LPC2368的網絡接口的設計與實現[J].微計算機信息,2008,24(14):119-120.
[11] 于春雪.基于STM32F107的高速以太網接口設計與應用[J].電聲技術,2011,35(9):63-67.