孫曉曄,成 彬(1.石家莊開發區冀科雙實科技有限公司,河北 石家莊 050081;2.河北省科學院應用數學研究所,河北 石家莊 050081;3.河北省信息安全認證工程技術研究中心,河北 石家莊 050081)
串口轉以太網模塊配置軟件設計及實現
孫曉曄1,2,成 彬2,3
(1.石家莊開發區冀科雙實科技有限公司,河北 石家莊 050081;2.河北省科學院應用數學研究所,河北 石家莊 050081;3.河北省信息安全認證工程技術研究中心,河北 石家莊 050081)
采用串口轉以太網模塊使現有串口設備具備聯網功能是一種低成本實用的解決方案。在使用之前,需要根據具體應用環境對串口轉以太網模塊的串口參數以及網絡參數進行設置。對上位機與串口轉以太網模塊間的通信協議進行了詳細闡述,采用UDP廣播通信方式,由上位機通過網口對模塊進行參數配置。在Visual Studio 2012下,用C#編程實現了一套配置軟件。配置過程中,上位機和模塊可以跨網段通信,避免需預知模塊初始IP以及更改上位機IP地址的麻煩,使用更方便。
通用同步/異步串行接收/發送器;以太網;通信協議
長期以來,串行通信方式在數據采集、數據監控、安防、醫療等很多領域應用普遍,但隨著Internet的發展和應用需求的提升,其局限性也日益凸顯:通信距離短、速率低、網絡特性差等[1]。同時,物聯網的迅猛發展,使得嵌入式設備聯網的需求越來越迫切。
淘汰現有串口設備,研發能聯網的新產品需要投入大量的時間和人力物力,相比之下,采用串口轉以太網技術,只需增加串口轉以太網模塊,而無需淘汰原先的串口設備,不僅可以提高設備利用率,還可以降低開發成本、縮短開發周期,輕松實現串口設備聯網。
串口轉以太網,實際就是將串口數據作為TCP/IP的應用層數據,用 TCP/IP封裝傳輸[2-3]。本文主要完成串口轉以太網模塊上位機配置軟件的設計,根據上位機和串口轉以太網模塊間的通信協議,利用UDP廣播方式,完成模塊的參數配置,方便用戶對模塊的使用。
串口轉以太網實際上就是將串行通信數據轉化為網絡數據包發出,將收到的網絡數據包用串行通信的方式發出,從而實現串口與網口之間數據的透明傳輸[4-5]。
本文采用USR-TCP232-E45串口轉以太網模塊。該模塊搭載ARM處理器,采用Cortex-M3內核,內部集成了LWIP協議棧,速度快,功耗低,工作穩定可靠[6]。模塊在使用之前需配置的參數包括:串口參數[7](波特率、數據位、校驗位、停止位)和網絡參數(工作模式、IP地址、端口號、子網掩碼、網關等)。
對串口轉以太網模塊進行參數配置,需要上位機按照一定的通信協議向模塊發送相應命令(數據報文)。
通信協議由報文頭、報文長度、報文內容組成,上位機發送的報文在末尾還帶1 B的校驗碼,模塊對上位機的響應不帶校驗,如表1所示。在通信協議中加入校驗能夠很好地解決傳輸誤碼的問題;接收方對收到的數據進行校驗,如果校驗值不正確,則丟棄本包數據,并通知發送方。

表1 上位機配置軟件與串口轉以太網模塊之間的通信協議報文構成
報文頭值為0xFF;報文長度為報文內容所占的字節數,由于報文內容不同報文長度也會不同;校驗碼取報文長度和報文內容各字節之和。報文內容中只有控制碼是必需的,用來標識不同的命令操作,MAC地址、用戶名密碼、參數由于控制碼的不同可能不是必需的。
下位機返回的報文與上位機發送的報文格式類似,但是不帶校驗,響應報文中控制碼字段表示本報文是對上位機發出的哪條命令的響應。
發送搜索命令,模塊會返回36 B的數據,包括模塊的IP地址、MAC地址,之后可以利用MAC地址對該模塊進行其他參數的設置。
讀取設置,返回 256 B,包括基礎參數(IP地址、網關、子網掩碼、用戶名、密碼、MAC地址等)和串口參數(串口波特率、數據位、校驗位、停止位、流控、本地端口、工作協議等)。
響應報文除了上述必須返回上位機要求的相應參數情況外,還包括對上位機命令的校驗及命令的執行情況。
校驗錯誤:′E′+正確的校驗值;
命令正確執行:FF 01 CMD′K′;
用戶名密碼錯誤:FF 01 CMD′P′;
其他錯誤:FF 01 CMD′E′
為了方便跨網段進行配置,所有通信協議的操作均采用UDP廣播方式完成。
3.1 UDP廣播原理
廣播:一個節點發送數據包,網絡中的所有節點都可以收到。如果網絡中兩個主機上的應用程序要相互通信,其一要知道彼此的IP;其二要知道程序可監聽的端口,因為同一主機上的程序使用網絡是通過端口號來區分的。
如果想在整個網絡中廣播數據,要向 255.255.255.255發送數據包,這種數據包不會被路由,它只能到達本物理網絡中的所有主機,因為如果路由器轉發了廣播信息,那么勢必會引起網絡癱瘓。廣播需要指明接收者的端口號,因為不可能接收者的所有端口都用來收聽廣播,所以通信時必須保證目標端口號和本地端口號不被占用。
3.2 配置軟件的功能設計
配置軟件的功能比較單一,需要讀取模塊的當前設置(IP地址、網關、子網掩碼、MAC地址、串口波特率、數據位、校驗位、停止位、流控、本地端口、工作協議等)予以顯示,并能對這些參數進行設置。
3.3 程序設計及實現
上位機配置軟件在 Visual Studio 2012開發環境下,采用C#編程實現。C#中對UDP的編程有兩種方式:直接使用Socket類和使用UdpClient類[8]。UdpClient類對基礎的Socket進行了封裝,發送和接收數據時不必考慮底層套接字收發時必須處理的一些細節問題,開發簡單、效率較高。因此,本文使用UdpClient類實現對UDP協議的編程。
本文采用了多線程技術,用主線程發送數據,專門啟動一個線程用于接收數據,同一個進程中的兩個線程可以獨立運行并相互通信。
3.3.1利用UdpClient對象實現UDP通信——數據發送
利用UdpClient對象發送數據的流程如圖1所示。

圖1 利用UdpClient對象發送數據

3.3.2利用UdpClient對象實現UDP通信——數據接收
利用UdpClient對象接收數據的流程如圖2所示。


圖2 利用UdpClient對象接收數據
UdpClient對象的 Receive方法用于在指定的本地 IP地址和端口上接收遠程主機發送的數據報[9]。

3.4 程序調試
程序調試過程中用到了Wireshark工具。Wireshark是一個網絡封包分析軟件,通過簡單的設置就可以擷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。通過該軟件,可以方便地看到上位機配置軟件與串口轉以太網模塊之間數據包的各種信息。
采用串口轉以太網模塊對現有串口嵌入式設備進行升級聯網,只需一根網線將模塊與PC相連,通過該配置軟件就能方便地對模塊參數進行設置,操作簡單、實用。本文介紹的通信協議以及UDP通信的實現對其他通信應用具有一定的參考價值。
[1]蔡長安,鐘銳,王盈瑛.串行通信轉網絡通信數據模塊的設計[J].計算機應用與軟件,2010,27(1):88-91.
[2]李毅.嵌入式串口服務器的設計與實現[D].北京:北京交通大學,2012.
[3]曾廣圣,曾維清,徐冉.一種基于 ARM的以太網串口服務器的設計[J].科技廣場,2012,25(5):248-253.
[4]陳政石,秦紅波,李鐵鷹.基于 MSP430F149的串口服務器設計[J].電子技術應用,2009,35(1):95-97.
[5]成彬,王冬艷,韓憲生,等.密碼算法中的循環移位“異或”運算實質性研究[J].微型機與應用,2011,30(11):79-80.
[6]Jinan USR IOT Technology Co.,Ltd.Multifunctional serial to Ethernet module user manual[EB/OL].(2012-07-18)[2014-04-16].http://www.usriot.com/Down/E45/USR-TCP232-E45-EN%20V1.3.2.pdf.
[7]朱英翔,朱福民,劉炎鳴.C#下串口通信編程的開發和擴展[J].微型機與應用,2014,33(6):89-91.
[8]周有杰.Visual C#.Net網絡核心編程[M].北京:清華大學出版社,2002.
[9]ROBINSON S.C#高級編程[M].北京:清華大學出版社,2002.
Design and imp lementation of configuration softw are for serial to Ethernet module
Sun Xiaoye1,2,Cheng Bin2,3
(1.Shijiazhuang Development Zone JKSS Science&Technology Co.,Ltd.,Shijiazhuang 050081,China;2.Institute of Applied Mathematics,Hebei Academy of Sciences,Shijiazhuang 050081,China;3.Hebei Information Security Certification Engineering Technology Research Center,Shijiazhuang 050081,China)
It is a kind of low-cost and applied solution that the existing serial port equipments connect to the internet by using the serial to Ethernet module.The module must be configured according to the specific application environment.The communication protocol between person computer(PC)and the module is introduced in the paper.PC configures the module by network interface in the means of User Datagram Protocol(UDP)broadcast.The software is programmed in Studio Visual 2012 by C#.The PC and the module can communicate cross different net section by the software.Users can configure the module under the condition that they do not know the initial IP address of the module,which is more convenient.
universal synchronous/asynchronous receiver/transmitter;Ethernet;communication protocol
TP31
A
1674-7720(2015)22-0073-03
孫曉曄,成彬.串口轉以太網模塊配置軟件設計及實現[J].微型機與應用,2015,34(22):73-75.
2015-07-28)
孫曉曄(1981-),通信作者,女,本科,電子工程師,主要研究方向:嵌入式系統。E-mail:sunxiaoye2002@163.com。
成彬(1973-),男,碩士,研究員,主要研究方向:云計算與大數據。