您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 通讯协议解析基础知识
通讯协议解析基础知识2015.02一、数字信息的基本概念二、数字通讯的基本形式三、串行通讯的字符四、帧和主-从结构五、通讯协议中的编码方法六、Modbus通讯协议七、CJ/T188通讯协议八、GB/T26831通讯协议一、数字信息的基本概念二级制位(比特,bit):数字信息的最小单位。一个bit的值有两种可能:0或者1。字节(Byte):1Byte=8bit例如00000000、11111111、01010101数字信息由诸多Byte组成,进而由诸多bit组成。例如“你好”可以按GB2312标准编码为如下数字信息:11000100111000111011101011000011这条数字信息由4个字节组成,并由32个位组成。二、数字通讯的基本形式串行通讯在一条数据通道上,一位一位地依次传输字节的各个位。例如串行传输“你好”,则11000100111000111011101011000011并行通讯在多条数据通道上,一并传输字节的各个位。例如并行传输“你好”,则11111101011000100010100001110101仪表所使用的RS-485、M-bus通讯接口,均属于串行通讯接口。串行通讯更适合于远距离通讯,其线间串扰小,信号完整性优于并行通讯。三、串行通讯的字符在串行通讯中,数字信息的基本单元是“字符”。一个“字符”包含以下内容:开始位(1位)数据位(8位,即1字节)校验位(0位或1位)停止位(1位)一个“字符”由10位或11位组成,1字节数据包括在字符中。当然,也有7位数据位、2位停止位、附加1位地址位的情况。在通讯解析时,开始位、检验位、停止位等是隐藏的,只有数据字节对我们是可见的。注意,和波特率一样,校验位(无校验/奇校验/偶校验)作为一项通讯参数,在采集设备上的设定必须和仪表保持一致。四、帧和主-从结构帧:由若干字节组成,能表达一组完整的信息。目前在仪表上应用的通讯协议,基本均采用主-从结构。即采集设备发出命令帧,仪表返回数据帧。通讯协议的主要内容就是对命令帧和数据帧的帧结构作出说明。采集设备仪表命令帧数据帧五、通讯协议中的编码方法在通讯协议中,字节是以十六进制数表示的。即“xxH”的形式,H表示该数为十六进制。十六进制和十进制的转换(例如地址转换)1)手算转换2)计算器软件转换BCD码BCD码有多种,我们采用的是8421码。8421码:用十六进制的表面形式,表达一个十进制数。例如12345678H12345678(十进制)12345678H=305419896(十进制)对8421码,以十六进制观察数据帧是简便的。表示BCD码例如:仪表响应26H41H4AH……00H01H35H79H……取出数据部分的第13~16字节00H01H35H79H代表十进制数值00013579根据协议,该数值代表13579÷1000=13.579m3ASCII码ASCII码是一种英语字符编码。字符中包含大/小写英文字母、数字、符号等,每个字符用1个字节表示。ASCII码例如,30H代表字符“0”31H代表字符“1”……39H代表字符“9”2DH代表字符“-”(负号)对ASCII码,以字符形式观察数据帧是简便的。ASCII码例如:仪表响应26H3AH……00H00H2DH31H32H33H34H35H36H37H31H32H33H……取出数据部分的第35~47字节并转为ASCII码代表十进制数值-1234567123根据协议,该数值代表-1234567123÷1000=-1234567.123m3整型和长整型整型和长整型都是计算机领域基本的数据类型,基本的数据表达方式。整型(int)用2个字节表达一个整数,如27H10H表示10000长整型(long)用4个字节表达一个整数,如07H5BHCDH15H表示123456789Modbus协议中使用的整型和长整型都是有符号的。整型转换为十进制数的方法1、在计算器中选择十六进制、单字。2、输入整型码。3、切换至二进制,观察位数,如果位数=16则表明是负数,需要按一下“+/-”键。4、切换至十进制。例如:F9H00H=-179279H00H=30976长整型转换为十进制数的方法1、在计算器中选择十六进制、双字。2、输入整型码。3、切换至二进制,观察位数,如果位数=32则表明是负数,需要按一下“+/-”键。4、切换至十进制。例如:FFHF6HF8HBEH=-591682浮点型浮点型也是计算机领域基本的数据类型,基本的数据表达方式。仪表中使用的浮点型确切地说是单精度浮点型(float),它用4个字节表示一个浮点数。例如,42HF6HE9H79H表示123.456一般可以使用小工具软件进行转换。六、Modbus通讯协议Modbus通讯协议是为PLC(可编程逻辑控制器)拟定的,它是工业通信领域的标准协议。Modbus通讯协议中的数据有ASCII和RTU两种编码方式。仪表采用RTU方式,即使用长整型或浮点型表达数据。仪表仅支持03号命令:读保持寄存器六、Modbus通讯协议寄存器:PLC中,每个寄存器占用2个字节由于浮点型和长整型数据占用4个字节,所以需要占用2个寄存器。例如插入式超声热量表Modbus通讯协议中,累积流量占用0002H和0003H两个寄存器;流速占用000AH和000BH两个寄存器。六、Modbus通讯协议命令帧格式(均为16进制值)4103000000198AC041——设备地址6503——功能码:读保持寄存器0000——起始寄存器地址=00019——读取寄存器数量=258AC0——CRC校验六、Modbus通讯协议数据帧格式(均为16进制值)410332……592B41——设备地址6503——功能码:读保持寄存器32——寄存器数据字节数=50(25×2)中间为各寄存器数据592B——CRC校验六、Modbus通讯协议在寄存器中,高字节在前。例如,12345的长整型为00003039H,我们的仪表会按顺序发出00H00H30H39H,而不是39H30H00H00H。00003039高低六、Modbus通讯协议在一些软件中,将高字节在前的情况称之为LongInverseFloatInverse练习解析数据帧七、CJ/T188通讯协议CJ/T188通讯协议是为户用计量仪表集中抄表而设计的。是城建行业标准。练习解析数据帧七、CJ/T188通讯协议数据域高字节在前。八、GB/T26831通讯协议《GB/T26831社区能源计量抄收系统规范》国家标准对应欧洲标准EN13757,即通常所说的13757协议练习阅读通讯协议1、明确目的2、筛选有用信息,忽略无用信息练习解析数据帧
本文标题:通讯协议解析基础知识
链接地址:https://www.777doc.com/doc-3086508 .html