串口通信协议_第1页
串口通信协议_第2页
串口通信协议_第3页
串口通信协议_第4页
串口通信协议_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1串口Universal串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal2串行通信的传输方向单工单工是指数据传输仅能沿一个方向,不能实现反向传输。半双工半双工是指数据传输可以沿两个方向,但需要分时进行。全双工是指数据可以同时进行双向传输。全双工全双工全双工是指数据可以同时进行双向传输。全双工3重要参数串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。波特率这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要480

2、0波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。常用的波特率有,1200,2400,4800,9600,19200,38400,115200等。数据位这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用简单

3、的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。停止位用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。奇偶校验位了通信或者是否传输和接收数据是否不同步。4RS-232/422/485标准在串口通信中一种简单的检错方式

4、。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1了通信或者是否传输和接收数据是否不同步。4RS-232/422/485标准RS-232、RS-422与RS-485最初都是由电子工业协会(EIA)制订并发布的。RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422是由RS-232发展而来,它是为弥补RS-232之不足而提出

5、的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前

6、缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。但由于PC上的串行数据通讯是通过UART芯片(较老版本的PC采用I8250芯片或Z8530芯片)来处理的,其通讯协议也规定了串行数据单元的格式(8-N-1格式):1位逻辑0的起始位,6/7/8位数据位,1位可选择的奇(ODD)/(禺(EVEN)校验位,1/2位逻辑1的停止位。基于PC的RS-232、RS-422与RS-485标准均采用同样的通讯协议。4.1RS-232标准RS-232被定义为一种

7、在低速率、近距离串行通讯的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。RS-232的电气标准:电平为逻辑“0”时:+3V+15V;电平为逻辑“1”时:-3V-15V;未定义区:3V+3V。在此区域内的信号处理将由通讯接口的RS-232收发器决定。.2RS-485标准电子工业协会(EIA)于1983年制订并发布RS-485标准,并经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A,习惯地称之为RS-485标准。RS-485标准是为弥补RS-232通信距离短、速率低等缺点而产生的。RS-485标准只规定了平衡发送器和接收器的电特性,而没有规定接插件、传输电缆和应用层通信协

8、议。RS-485标准与RS-232不一样,数据信号采用差分传输方式(DifferentialDriverMode),也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图所示。的T27鬲常发送器示意图通常情况下,发送发送器A、B之间的正电平在+2+6V,是一个逻辑状态;负电平在-2-6V,是另一个逻辑状态。另有一个信号地C。在RS-485器件中,一般还有一个使能控制信号。使能信号用于控制发送发送器与传输线的切断与连接,当使能端起作用时,发送发送器处于高阻状态,称作第三态,它是有别于逻辑1与0的第三种状态。对于接收发送器,也作出与发送发送器相对的规定,收、发端通过平衡双绞线将

9、A-A与B-B对应相连。当在接收端A-B之间有大于+200mV的电平时,输出为正逻辑电平;小于-200mV时,输出为负逻辑电平。在接收发送器的接收平衡线上,电平范围通常任OOmV至6V之间。参见下图所示。接收器示意图定义逻辑1(正逻辑电平)为BA的状态,逻辑0(负逻辑电平)为AB的状态,A、B之间的压差不小于200mV。接线方式RS232通讯连接方式示意图5.2RS485通讯连接方式示意图25.2RS485通讯连接方式示意图2台连接方式:多台连接组成主从网络:多台连接组成主从网络:主设A备主设A备B1A从设B备!a从设B备AA从设B备6通信方式演示.1RS232通信演示通过串口助手实现演示全双

10、工串口设置6.2RS485通信演示通过485助手和地址表软件模拟演示半双工串口设置地址表从机地址ModBus上层协议RS485通讯协议RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议;因此,用户需要在RS-485应用网络的基础上建立自己的应用层通信协议。很多具有RS-485接口电路的用户设备采用自己制定的简单通讯协议,或是直接取自ModBus协议(AscII/RTU模式)中的一部分功能;ModBus通讯协议Modbus协议已经成为一种通用工业标准。Modbus在串行链路上的协议帧格式如下所示:ModbusADU地址域(8bit)功能码(8bit)数据域(n*8bit)CR

11、C域(16bit)MModbusPDUModbus协议帧格式PDU:Modbus的一个简单协议数据单元;ADU:Modbus在总线或者网络上的应用数据单元。Modbus协议使用主从通信技术,采用查询-回应形式实现通信,主机可对各从机寻址,发出广播信息,从机返回信息作为对查询的响应,具体过程如下所示:Modbus查询-回应形式通信当通信或者操作出错的时候,从机同样会给主机回应异常帧,其格式和正常响应的数据格式相似,只是回应时的功能码和数据响应区域变成Modbus定义的异常功能码和异常码。Modbus协议支持两种数据传输模式:ASCII格式和RTU格式,控制器主要采用RTU模式实现数据传输。在RT

12、U传输模式下Modbus信息帧格式如下所示:RTU传输模式下Modbus信息帧格式起始位设备地址功能码数据CRC结束符三3.5字符8bit8bitN*8bit16bit三3.5字符CRC区域为循环冗余错误校验区,采用CRC-16校验,传输时先是CRC低字节,然后是CRC高字节;在RTU模式下每个字节传输是从最低位到最高位(即LSB-MSB)连续传输。地址表参照普乐特标准地址表来描述地址表含义。命令字普乐特地址表主要涉及到协议中的03和06命令帧。03查询帧查询帧主要用来查询读取一个或者连续多个指定寄存器的值。举例如下:查询帧:010300000002c40b01从机(从站)地址03功能码00起

13、始寄存器高位00起始寄存器低位00寄存器个数高位02寄存器个数低位C4CRC校验低位0bCRC校验高位该条查询指令意义:读取地址为1的从站数据,所查询数据从寄存器0000H开始,查询2个寄存器的值,也即查询地址为0000H和0001H两个寄存器的值。响应帧:01030400060005da3101从机(从站)地址03功能码04字节总个数00数值(0000H)高位06数值(0000H)低位00数值(0001H)高位05数值(0001H)低位daCRC校验低位31CRC校验高位该条查询指令意义:从站响应查询帧,一共返回4个字节的查询结果(地址表中一个寄存器2个字节,所以查询两个寄存器就会返回4个字节),其中0000H寄存器的值为0006H,0001H寄存器的值为0005H。06命令帧06命令帧主要用来写一个单个寄存器,也即给从站发送控制指令或者改变从站地址表的某些数值。主机命令字:110600010

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论