串口转以太网模块配置软件设计及实现
来源:爱go旅游网
Network and Communication 串口转以太网模块配置软件设计及实现 孙晓晔1I2.成彬2,3 (1.石家庄开发区冀科双实科技有限公司,河北石家庄050081; 2.河北省科学院应用数学研究所,河北石家庄050081; 3.河北省信息安全认证工程技术研究中心,河北石家庄050081) 摘 要:采用串口转以太网模块使现有串口设备具备联网功能是一种低成本实用的解决方案。 在使用之前.需要根据具体应用环境对串口转以太网模块的串口参数以及网络参数进行设置 对上 位机与串口转以太网模块间的通信协议进行了详细阐述,采用UDP广播通信方式.由上位机通过网 口对模块进行参数配置 在Visual Studio 2012下。用C}}编程实现了一套配置软件。配置过程中,上位 机和模块可以跨网段通信。避免需预知模块初始IP以及更改上位机IP地址的麻烦。使用更方便 关键词:通用同步/异步串行接收/发送器;以太网;通信协议 中图分类号:TP31 文献标识码:A 文章编号:1674—7720(2015)22—0073—03 引用格式:孙晓哗,成彬.串口转以太网模块配置软件设计及实现【J1.微型机与应用,2015,34(22):73—75. Design and implementation of configuration software for serial to Ethernet module Sun Xiaoye 一.Cheng Bin ’ (1.Shijiazhuang Development Zone JKSS Science&Technology Co.,Ltd.,Shijiazhuang 05008 1,China; 2.Institute of Applied Mathematics,Hebei Academy of Sciences,Shijiazhuang 05008 1,China; 3.Hebei Information Security Certiifcation Engineering Technology Research Center,Shijiazhuang 05008 1,China) Abstract: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 diferent net section by the software.Users can confiure the module under tghe condition that they do not know the initil IP address of the modulae.which is more convenient. Key words:universal synchronous/asynchronous receiver/transmitter;Ethemet;communication protocol 0引言 长期以来 串行通信方式在数据采集、数据监控、安 防、医疗等很多领域应用普遍。但随着Intemet的发展和 技术.只需增加串1:3转以太网模块.而无需淘汰原先的 串El设备.不仅可以提高设备利用率.还可以降低开发 成本、缩短开发周期,轻松实现串口设备联网 串口转以太网.实际就是将串口数据作为TCP/IP的 应用需求的提升.其局限性也日益凸显:通信距离短、速 率低、网络特性差等¨l。同时,物联网的迅猛发展,使得 嵌入式设备联网的需求越来越迫切 淘汰现有串口设备.研发能联网的新产品需要投入 大量的时间和人力物力,相比之下.采用串口转以太网 应用层数据,用TCP/IP封装传输『2_ 。本文主要完成串 口转以太网模块上位机配置软件的设计.根据上位机和 串口转以太网模块问的通信协议.利用UDP广播方式. 完成模块的参数配置,方便用户对模块的使用。 《微型机与应用》2015年第34卷第22期 欢迎网上投稿www.pcachina. ̄om 73 Network and Communication 1串口转以太网模块简介 串口转以太网实际上就是将串行通信数据转化为 网络数据包发出.将收到的网络数据包用串行通信的方 式发出,从而实现串1:3与网1:3之间数据的透明传输[4-51。 本文采用USR—TCP232一E45串13转以太网模块。该 模块搭载ARM处理器.采用Cortex—M3内核.内部集成 了LWIP协议栈。速度快。功耗低,工作稳定可靠【 。模块 在使用之前需配置的参数包括:串13参数 (波特率、数 据位、校验位、停止位)和网络参数(工作模式、IP地址、 端13号、子网掩码、网关等)。 2通信协议 对串13转以太网模块进行参数配置.需要上位机按 照一定的通信协议向模块发送相应命令(数据报文)。 通信协议由报文头、报文长度、报文内容组成,上位 机发送的报文在末尾还带1 B的校验码.模块对上位机 的响应不带校验.如表1所示 在通信协议中加入校验 能够很好地解决传输误码的问题:接收方对收到的数据 进行校验。如果校验值不正确.则丢弃本包数据.并通知 发送方 表1 上位机配置软件与串口转以太网 模块之间的通信协议报文构成 报文头值为OxFF:报文长度为报文内容所占的字节 数.由于报文内容不同报文长度也会不同:校验码取报 文长度和报文内容各字节之和 报文内容中只有控制码 是必需的,用来标识不同的命令操作。MAC地址、用户 名密码、参数由于控制码的不同可能不是必需的。 下位机返回的报文与上位机发送的报文格式类似. 但是不带校验.响应报文中控制码字段表示本报文是对 上位机发出的哪条命令的响应 发送搜索命令.模块会返回36 B的数据。包括模块 的IP地址、MAC地址.之后可以利用MAC地址对该模 块进行其他参数的设置。 读取设置,返回256 B,包括基础参数(IP地址、网 关、子网掩码、用户名、密码、MAC地址等)和串13参数 (串口波特率、数据位、校验位、停止位、流控、本地端 1:3、工作协议等)。 响应报文除了上述必须返回上位机要求的相应参 数情况外.还包括对上位机命令的校验及命令的执行情况。 校验错误: E +正确的校验值: 命令正确执行:FF 01 CMD K ; 用户名密码错误:FF 01 CMD P ; 其他错误:FF 0l CMD E 3上位机配置软件设计 为了方便跨网段进行配置.所有通信协议的操作均 74 采用UDP广播方式完成 3.1 UDP广播原理 广播:一个节点发送数据包,网络中的所有节点都 可以收到 如果网络中两个主机上的应用程序要相互通 信,其一要知道彼此的IP:其二要知道程序可监听的端 口.因为同一主机上的程序使用网络是通过端口号来区 分的。 如果想在整个网络中广播数据.要向255.255.255. 255发送数据包.这种数据包不会被路由.它只能到达 本物理网络中的所有主机.因为如果路由器转发了广播 信息.那么势必会引起网络瘫痪。广播需要指明接收者 的端口号.因为不可能接收者的所有端口都用来收听广 播.所以通信时必须保证目标端口号和本地端口号不被 占用。 3.2配置软件的功能设计 配置软件的功能比较单一.需要读取模块的当前设 置(IP地址、网关、子网掩码、MAC地址、串口波特率、数 据位、校验位、停止位、流控、本地端口、工作协议等)予 以显示.并能对这些参数进行设置 3.3程序设计及实现 上位机配置软件在Visual Studio 2012开发环境下. 采用C#编程实现。C#中对UDP的编程有两种方式:直 接使用Socket类和使用UdpClient类_81。UdpClient类对基 础的Socket进行了封装.发送和接收数据时不必考虑底 层套接字收发时必须处理的~些细节问题,开发简单、 效率较高。因此.本文使用UdpC“ent类实现对UDP协议 的编程 本文采用了多线程技术.用主线程发送数据.专门 启动一个线程用于接收数据.同一个进程中的两个线程 可以独立运行并相互通信。 3.3.1利用UdpClient对象实现UDP通信——数据发送 利用UdpClient对象发送数据的流程如图1所示。 图1利用UdpClient对象发送数据 private UdpClient udpClient; ,/创建UdpClient对象.这里使用1901端口 udpClient=new UdpClient(1901); //远程主机及端口号 IPEndPoint iep:new IPEndPoint(IPAddress.Broadcast, 1901); 《微型机与应用》2015年第34卷第22期 ,,发送缓冲区 byte[】searchDeviceCommand=new byte[]{0xff,OxO1,OxO1, Ox02}; //通过udpClient将发送缓冲区中的内容发送到远程节点 udpChent.Send(searchDeviceCommand, searchDeviceCommand.Length,iep); 3.3.2利用UdpClient对象实现UDP通信——数据接收 利用UdpClient对象接收数据的流程如图2所示。 在本机指定端口创建UdpClient对象 广——— l 『接收数据『 J1 分析处理数据 山 图2利用UdpClient对象接收数据 UdpClient对象的Receive方法用于在指定的本地IP 地址和端口上接收远程主机发送的数据报【9】。 private byte[]rBuffer=new byte[256]; //根据通信协议中响应报文的长度.设置合适大小的接收 缓冲区(接收缓冲区的大小不能小于模块响应报文的最大 长度) private UdpClient udpClient; private void FrmConfig_Load(object sender,EventArgs e) { udpClient=new UdpClient(1901);Ilg ̄J建接收数据的线程 t=new Thread(startThread); //线程后台运行 t.IsBackground=true: ,/启动线程 t.Start(); } //在接收线程中从远程节点接收数据.对数据进行分析处理 private void startThread() { while(ture) { IPEndPoint iepRemote=new IPEndPoint(IPAddress.Broad— cast,1901); rBuffer=udpClient.Receive(ref iepRemote); //对接收缓冲区中的内容进行分析.针对不同命令予以处理 l } 3.4程序调试 程序调试过程中用到了Wireshark工具。Wireshark是 《微型机与应用》2015年第34卷第22期 一个网络封包分析软件.通过简单的设置就可以撷取网 络封包,并尽可能显示出最为详细的网络封包资料 通 过该软件.可以方便地看到上位机配置软件与串I=I转以 太网模块之间数据包的各种信息。 4结论 采用串口转以太网模块对现有串口嵌入式设备进 行升级联网.只需一根网线将模块与PC相连.通过该 配置软件就能方便地对模块参数进行设置,操作简单、 实用。本文介绍的通信协议以及UDP通信的实现对其 他通信应用具有一定的参考价值。 参考文献 [1]蔡长安,钟锐,王盈瑛.串行通信转网络通信数据模块 的设计【J】.计算机应用与软件,2010,27(1):88—91. [2】李毅.嵌入式串口服务器的设计与实现[D1.北京:北京 交通大学.2012. [3]曾广圣,曾维清,徐冉.一种基于ARM的以太网串口服 务器的设计[J】.科技广场,2012,25(5):248—253. [4]陈政石,秦红波,李铁鹰.基于MSP430F149的串口服务 器设计【J】.电子技术应用,2009,35(1):95—97. 【5]成彬,王冬艳,韩宪生,等.密码算法中的循环移位“异 或”运算实质性研究【J】.微型机与应用,2011,30(11): 79—8O. [6】Jinan USR IOT Technology Co.,Ltd.Muhifunetional serial to Ethernet module user manual[EB/OL].(2012-07—18) [2叭4_o4—1 61.http://www.usriot.eom/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】.北京:清华大学出版社, 2oo2. (收稿日期:2015—07—28) 作者简介: 孙晓哗(1981一),通信作者,女,本科,电子工程师,主要 研究方向:嵌入式系统。E—mail:sunxiaoye2002@163.tom。 成彬(1973一),男,硕士,研究员,主要研究方向:云计算 与大数据。 欢迎网上投稿WWW.pcachina.corn 75