基于单片机的modbus协议转换器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的modbus协议转换器设计1.modbus协议介绍
1)简介
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
Modbus协议是应用于电子控制器的一中通用语言。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中控制。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
Modbus具有以下几个特点:
(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
(3)Modbus的帧格式简单、紧凑,通俗易懂。
用户使用容易,厂商开发简单。
2)传输方式
Modbus定义了两种标准的传输协议,分别是ASCII或RTU。
(1)ASCII模式
当以ASCII模式通信时,在消息中的每个字节都是作为一个ASCII码
发送。
优点是时间间隔达到一秒而不产生错误。
消息中的每个ASCII 字符都是一个十六进制字符组成。
校验方式为LRC(纵向冗长检测)方式。
代码系统
·十六进制,ASCII字符0...9,A...F
·消息中的每个ASCII字符都是一个十六进制字符组成
每个字节的位
· 1个起始位
· 7个数据位,最小的有效位先发送
· 1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)
错误检测域
· LRC(纵向冗长检测)
(2)RTU模式
当以RTU方式通信是,在消息中的每个字节包含两个十六进制字符。
这种方式的优点是比ASCII方式传送数据更快。
代码系统
·8位二进制,十六进制数0...9,A...F
·消息中的每个8位域都是一个两个十六进制字符组成
每个字节的位
·1个起始位
·8个数据位,最小的有效位先发送
·1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)
错误检测域
·CRC(循环冗长检测)
本设计是用RTU通信模式,一下着重介绍一下RTU方式:
1.信息帧结构
地址码:地址码是信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。
当从机回送信息时,相当的地址码表明该信息来自于何处。
功能码:主机发送的功能码告诉从机执行什么任务。
表1-1列出的功能码都有具体的含义及操作。
数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。
这些信息可以是数值、参考地址等等。
例如:
请求
响应
请求
响应
(以上例子是常用功能码 03 06 的帧结构)
错误校验码:主机或从机可用校验码进行判别接收信息是否出错。
有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。
这样增加了系统的安全和效率。
错误校验采用CRC-16校验方法。
CRC域是两个字节,包含一16位的二进制值。
它由传输设备计算后加入到消息中。
接收设备重新计算收到消息的CRC,并与接收到
的CRC域中的值比较,如果两值不同,则有误。
CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。
仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。
CRC产生过程中,每个8位字符都单独和寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有效位以0填充。
LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。
整个过程要重复8次。
在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。
最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。
注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。
2.单片机介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄
像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
本设计才用的是STC系列的STC12C5A40S2单片机,1个时钟/机器周期,低功耗,速度快,集成有8路AD转换端口和双串口。
方便和上位机通信,而且采集模拟信号也比较方便。
3.硬件电路
1
4.软件流程。