全文预览

单片机实现RS485的通信毕业论文

上传者:蓝天 |  格式:doc  |  页数:27 |  大小:0KB

文档介绍
8次移位。完成每个字节的最后一次移位及相关操作后,下一个8位字节与寄存器的当前值相异或,然后又同上面描述过的一样重复8次。当所有报文中的字节都运算之后得到的最终值,就是CRC的值。Р(2)Modbus ASCII模式Р表2:Modbus ASCII模式Р起始Р地址Р功能码Р数据РLRC(纵向冗余)Р结束Р:字符Р2字符Р2字符Р0到2*252字符Р2字符РCR,LFР注:Modbus ASCII帧的最大尺寸为513个字符。РLRC的计算:对一帧报文中的所有的连续8位字节相加,忽略任何进位,然后求出其二进制补码。计算过程不包括起始“冒号”和结尾 CR,LF字符。在ASCII模式,LRC的结果被ASCII编码为两个字节并放置于ASCII模式报文帧的结尾,CR和LF之前。Р2.2. 基于Modbus的协议设计Р2.2.1. 传输规则设计Р根据本课题的要求,通信协议设计在Modbus的基础上做了如下的延伸和改变:Р取消了广播功能。Р功能码做了适当改变,采用自定义的功能码。Р校验方式采用简单加校验。Р对于命令帧,加校验从地址码开始算起。Р对于数据帧,加校验从数据起始字节开始算起。Р帧起始和结束由空闲3.5个字节来区分。Р对于数据传输时,为了便于屏幕显示,直接发送ASCII格式的字符。Р子站收到异常命令,将不做响应,主站会以超时处理。Р字节发送是从LSB开始发送,8位数据位,1位停止位,无校验位。Р主站状态图如下所示:Р图3:主站状态图Р如上图3所示,主站是主动发起通信的一方,开机启动初始化后进入空闲状态,只有当按下功能键后才会进行相应的动作或者启动通信;当主站主动发起通信请求后,将启动响应超时计时,并进入等待应答状态;在等待应答状态下,只有接收到期望子节点应答后才会进入应答处理,否则将以超时出错处理;当应答处理结束或者超时出错处理结束后,主站又将恢复到空闲状态。Р子站状态图如下所示:

收藏

分享

举报
下载此文档