当前位置: 首页 > 专利查询>清华大学专利>正文

无奇偶校验控制器与有奇偶校验伺服器的串口通信方法技术

技术编号:15437072 阅读:52 留言:0更新日期:2017-05-25 19:16
一种无奇偶校验控制器与有奇偶校验伺服器的串口通信方法,用于实现无奇偶校验控制器和有奇偶校验伺服器之间的串口通信。本方法在不改变现有电气系统结构的基础上,通过改变数据包的格式,实现了控制器与伺服器的串口通信;即根据Modbus RTU协议生成数据包之后,在数据包的各个字节之间插入间隔字节,再使用串行接口进行发送,使得伺服器能够正确识别字节的起始位,进而做出正确的响应,实现正常的串口通信功能;解决了当控制器与伺服器的奇偶校验不一致时,由于通信字节长度不一致,控制器发送的数据无法被伺服器正确解析,避免了错位解析现象的发生。

Serial communication method without parity controller and serial port with parity check server

The invention relates to a serial communication method without parity check controller and serial communication with parity check server, which is used for realizing serial communication between a parity free controller and a parity check server. This method does not change the basic structure of the existing electrical system, by changing the format of data packet, the serial communication controller and server; according to the Modbus RTU protocol to generate a data packet insertion interval between each byte byte data packets, and then use the serial interface to send, the server can correctly identify the initial a byte, and then make the correct response, the serial communication function is normal; when solving the parity controller and the server are not the same, because communication byte length is not the same, the controller sends data cannot be resolved properly to avoid the server, dislocation phenomenon analysis.

【技术实现步骤摘要】
无奇偶校验控制器与有奇偶校验伺服器的串口通信方法
本专利技术涉及一种串口通信方法,在不改变系统硬件结构的情况下,改变串口通信数据包的格式,避开串口通信中的奇偶校验,使得无奇偶校验控制器与有奇偶校验伺服器能够正常通信。
技术介绍
由于串口通信技术成熟,部署方便,传输距离远,支持多种系统与设备,因此在工业中应用非常广泛。特别是ModbusRTU协议,得到了几乎所有自动化控制系统的支持。作为广泛使用的通信协议,ModbusRTU为用户定义了多种格式,例如奇偶校验、多路读写等功能。然而在实际应用中,会出现因为设备通信格式不匹配而导致通信失败的问题。当控制器与伺服器奇偶校验不匹配时,会出现数据无法正常解析的情况,进而影响工业系统功能的实现。虽然控制器发出了串行指令,但是由于解析错误,驱动器没有给出应有的响应。比如无奇偶校验功能的UMAC和有奇偶校验功能的华大伺服器之间就无法正常通信。由于通信格式的不匹配,控制器发送的数据无法被伺服器正确地解析,因此无法得到正确的响应。对于奇偶校验不匹配导致的通信失败,通常有两种解决方案。一种是把工控机作为中转站,使用工控机读取伺服器的数据,再通过以太网接口回传给控制器。另外一种方案是在控制器与伺服器之间接入一块单片机,使用单片机将控制器无奇偶校验的数据转化为伺服器可以识别的有奇偶校验的数据。方案一需要购买工控机,增加了产品成本。即使在配备有工控机的情况下,也需要编写串口通信程序,并对控制器做二次开发来实现数据的传输,研发难度较大。第二种方案使用单片机,成本较第一种方案减少不少,但是单片机的开发难度比软件开发难度更大。此外引入单片机还会改变电气柜的结构布局,容易受到电磁干扰,如果配置不当会影响通信的稳定性。
技术实现思路
针对现有技术存在的问题,本专利技术的目的是提供一种无奇偶校验控制器与有奇偶校验伺服器的串口通信方法,使其在不改变系统硬件结构的情况下,通过改变串口通信数据包的格式,避开串口通信中的奇偶校验,使得控制器发送的数据能够被伺服器解析,从而收到理想的回应,进而实现控制器与伺服器之间的串口通信。本专利技术的技术方案如下:一种无奇偶校验控制器与有奇偶校验伺服器的串口通信方法,该方法按如下步骤进行:1)通过串行通信接口连接控制器与伺服器;2)根据被访问数据的地址等信息,按标准ModbusRTU格式生成8字节数据包,该8字节数据包包括:a.下位机地址位字节;b.通信指令位字节;c.访问地址高位字节;d.访问地址低位字节;e.访问数据长度高位字节;f.访问数据长度低位字节;g.CRC校验码的低位字节;h.CRC校验码的高位字节;以上每个字节的长度与校验方式有关,当有奇偶校验时字节长度为11比特,无奇偶校验时字节长度为10比特;3)对于步骤2)中生成的8字节数据包,通过在两两字节之间插入间隔字节,生成总长15字节的数据包;其中间隔字节由为8比特长度的逻辑正组成,以十六进制表示为0xFF;4)配置控制器的串口发送寄存器与接收寄存器;5)将步骤3)中生成的数据包依次存储到步骤4)中配置的串口发送寄存器当中;6)使能控制器串口发送,依次发送步骤5)中串口发送寄存器所存储的数据;7)伺服器对步骤6)中发来的数据进行解析,并做出相应的响应;8)等待3.5个字符周期以上,在步骤4)中配置的串口接收寄存器中读取伺服控制器的响应数据;9)若被读取的数据已经读取完成,则结束串行通信;若数据尚未读取完成,则重复步骤2)到步骤8)进行新一轮的串行通信。本专利技术具有以下优点及突出性的技术效果:本专利技术提出的串口通信方法,是利用串口通信的特点,通过修改数据包的格式,避开了伺服器的奇偶校验,从而使得控制器发送的信号能够被正确的解析,进而做出理想的响应。在不改变系统原有结构的基础上,只修改通信数据的结构,就能够实现上位机与下位机的正常通信,节约了系统调试的成本和时间。附图说明图1为本专利技术方法的流程框图。图2为CRC(循环冗余校验)的算法流程图。图3为UMAC发送寄存器数据的比特位形式。图4为UMAC发送的比特流结构。图5为寄存器解析的比特流结构。具体实施方式以下结合附图和具体实施例对本专利技术做进一步详细说明,以进一步了解本专利技术的具体实施。本专利技术提供的一种无奇偶校验控制器与有奇偶校验伺服器的串口通信方法,其具体实施步骤如下:1)通过串行通信接口连接控制器与伺服器,常用的串行通信接口有RS-485和RS-232两种,如果控制器与伺服器的串行通信接口不匹配的话,需要另外购买转换器进行转换;2)根据被访问数据的地址等信息,按标准ModbusRTU格式生成8字节数据包,该8字节数据包包括:a)下位机地址位字节:下位机地址在1-247范围内的任意整数,需要在下位机进行设置;b)通信指令位字节:从下位机读取数据的指令为03,向下位机写入数据的指令为06;c)访问地址高位字节;d)访问地址低位字节;e)访问数据长度高位字节;f)访问数据长度低位字节;g)CRC校验码的低位字节,CRC校验码由a)到f)这六位字节计算得到;h)CRC校验码的高位字节,CRC校验码由a)到f)这六位字节计算得到;以上每个字节的长度跟校验方式有关,当有奇偶校验时字节长度为11比特,无奇偶校验时字节长度为10比特;3)对于步骤2)中生成的8字节数据包,通过在两两字节之间插入间隔字节,生成总长15字节的数据包;其中间隔字节由为8比特长度的逻辑正组成,以十六进制表示为0xFF;4)配置控制器的串口发送寄存器与接收寄存器;5)将步骤3)中生成的数据包依次存储到步骤4)中配置的串口发送寄存器当中;6)使能控制器的串口发送功能,依次发送步骤5)中串口发送寄存器所存储的数据;7)伺服器对步骤6)中发来的数据进行解析,并做出相应的响应;8)等待3.5个字符周期以上,在步骤4)中配置的串口接收寄存器中读取伺服控制器的响应数据;9)若被读取的数据已经读取完成,则结束串行通信;若数据尚未读取完成,则重复步骤2)到步骤8),进行新一轮的串行通信。实施例:下面以UMAC控制器与华大伺服器的串行通信为例,说明本专利技术的使用方法:1)通过串行通信接口连接UMAC控制器与华大伺服器:由于华大伺服器的串行接口使用RS485协议,UMAC使用RS232协议,因此需要使用RS232/RS485转换器进行转换;2)按照标准ModbusRTU格式生成八字节数据包,包括以下八个字节:a)下位机地址位字节:华大伺服器的地址编号为6,填0x06;b)通信指令位字节:读取从机地址的指令为03,此处填0x03;c)访问地址高位字节:被访问地址为0x5A,高位填0x00;d)访问地址低位字节:被访问地址为0x5A,低位填0x5A;e)访问数据长度高位字节:被访问数据长度为1,高位填0x00;f)访问数据长度低位字节:被访问数据长度为1,低位填0x01;g)CRC校验码低位字节:生成的CRC校验码低位为0xA5;h)CRC校验码高位字节:生成的CRC校验码高位为0xAE;由于UMAC控制器没有奇偶校验,因此每一个字节由1比特起始位,8比特数据位和1比特停止位组成,字节总长10比特;3)对于步骤2)中生成的8字节数据包,通过在两两字节之间插入间隔字节,生成总长15字节的数据包;其中间隔字节由为8比特长度的逻辑正组成,本文档来自技高网
...
无奇偶校验控制器与有奇偶校验伺服器的串口通信方法

【技术保护点】
一种无奇偶校验控制器与有奇偶校验伺服器的串口通信方法,该方法按如下步骤进行:1)通过串行通信接口连接控制器与伺服器;2)根据被访问数据的地址等信息,按标准Modbus RTU格式生成8字节数据包,各字节如下:a.下位机地址位字节;b.通信指令位字节;c.访问地址高位字节;d.访问地址低位字节;e.访问数据长度高位字节;f.访问数据长度低位字节;g.CRC校验码的低位字节;h.CRC校验码的高位字节;以上每个字节的长度与校验方式有关,当有奇偶校验时字节长度为11比特,无奇偶校验时字节长度为10比特;3)对于步骤2)中生成的8字节数据包,通过在两两字节之间插入间隔字节,生成总长15字节的数据包;其中间隔字节由为8比特长度的逻辑正组成,以十六进制表示为0xFF;4)配置控制器的串口发送寄存器与接收寄存器;5)将步骤3)中生成的数据包依次存储到步骤4)中配置的串口发送寄存器当中;6)使能控制器串口发送,依次发送步骤5)中串口发送寄存器所存储的数据;7)伺服器对步骤6)中发来的数据进行解析,并做出相应的响应;8)等待3.5个字符周期以上,在步骤4)中配置的串口接收寄存器中读取伺服控制器的响应数据;9)若被读取的数据已经读取完成,则结束串行通信;若数据尚未读取完成,则重复步骤2)到步骤8)进行新一轮的串行通信。...

【技术特征摘要】
1.一种无奇偶校验控制器与有奇偶校验伺服器的串口通信方法,该方法按如下步骤进行:1)通过串行通信接口连接控制器与伺服器;2)根据被访问数据的地址等信息,按标准ModbusRTU格式生成8字节数据包,各字节如下:a.下位机地址位字节;b.通信指令位字节;c.访问地址高位字节;d.访问地址低位字节;e.访问数据长度高位字节;f.访问数据长度低位字节;g.CRC校验码的低位字节;h.CRC校验码的高位字节;以上每个字节的长度与校验方式有关,当有奇偶校验时字节长度为11比特,无奇偶校验时字节长度为10比特;3)对于步骤2)中生成的8字节数据包,通过在两两字节之间插入间隔字节,生成总长15字节的数据包;其中间隔字节由为8比特长度的...

【专利技术属性】
技术研发人员:吴军于振洋王立平付鹏
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1