竭诚为您提供优质文档/双击可除串口通信协议modbus篇一:使用modbus协议实现串口数据通信使用modbus协议实现串口数据通信saptarshinaskar,krishnendubasuli和samarsensarma 计算机科学和工程部门,universityofcalcutta,92,a.p.c.Road,kolkata-700009,india串行通信是在通信信道或计算机总线连续地发送数据,每一位数据占据一个固定的时间长度[5、6、7]。
Rs-232是在数据终端设备(dte)和数据通讯设备(dce)之间进行串行二进制传输的一个标准,通常用于计算机串口。
原Rs-232标准只定义了dtes与dces的连接关系,例如,调制解调器。
零调制解调器是一种直接使用Rs-232串行电缆连接两个dtes沟通方法(电脑,终端、打印机等)。
这个零调制解调器配置简化了计算机之间握手协议。
在零调制解调器模式下,由发送端、接收端,地线组成的最小三线Rs-232接口通常用于Rs-232设备不是全都必需的下[5、6、7]。
另一种常见的连接是一种dte-dte连接,例如连接两个人电脑,以便他们之间交换数据。
对于这样的连接,所谓的零调制解调器连接是必要的,其实这个连接也被在这个项目中用到。
第三类是dce-dce连接。
这里所谓的尾电路电缆是必要的,但这是一种非常罕见的连接。
其他的Rs-232规范[5、6、7]:(a)、信号电压:发送端-5V到-15V(逻辑1),+5V到+15V(逻辑0),接收端-3V-15V(逻辑1),+3V到+15伏特(逻辑0)。
在pc机上通常为+/-12伏。
(b)、最大的电缆长度:50英尺(19200bps),3000英尺(2400bps),在大多数无干扰的情况下,可以更长。
(c)、连接器:最常见的Rs-232连接器是db-9和db-25。
每个连接器都有一个公头和一个母头。
在大多数情况下公头接dte,母头接dce(尽管在其它情况下也可能不同)。
(d)、各管脚信号见下表:dcd,dtR,dsR,Rts和cts就是所谓的握手线,用于设备之间互相交换状态信息。
modicon控制器使用的公共语言是modbus协议[1,7]。
这是一个开放的协议,它定义了信息结构,使得控制器能认出和利用这些信息,不管它们在什么类型的网络上传输。
它描述了该控制器发送请求到其它设备,其它设备如何或者检测到错误并且回应错误信息。
它为信息领域的布局和内容建立了一套共同格式。
modbus协议提供了modicon控制器用于分析信息的内部标准。
通信的时候,协议决定每一个控制器如何知道它们的设备地址,认出传送给它的信息,采取什么动作,并且取出信息中的一些数据和其它内容。
如果必须作出回复,控制器将构建一个回复信息并用modbus协议发送出去。
在信息传递过程中,嵌入到每个网络数据包结构中modbus协议提供了可供设备交换数据的公共语言。
在modicon控制器上的标准modbus接口使用了Rs-232c 兼容使用串行接口,它定义pin-outs接头,电缆、信号电平,波特率、偶校验。
控制器可直接或用调制解调器连接起来。
控制器使用主从技术通信,即只有一个装置(主机)可以发起处理(查询),其他设备(从机)回应请求所需的资料,或响应主机请求的查询。
典型的主机包括主机和编程面板。
典型的从机包括可编程控制器。
主机可以与单个从机通信,也可以向所有从机发送广播。
从机根据发送给它们各自的请求返回一个回复信息(响应)。
但从机对于广播查询就不作回复了。
modbus协议规定主机请求格式为设备地址(或广播地址)、定义所请求行动的功能代码、要被发送的数据、一个错误校验域。
从机的响应消息也是用modbus协议。
它包含查询消息中的功能代码的回应、要返回的数据、和错误校验域。
假如从机收到发生错误的讯息,或从机不能完全响应请求时,从机将构建一个错误信息并回送到主机。
控制器能设置为两种传输模式(ascii或Rtu)中的任何一种在标准的modbus网络通信。
用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
因此,要对两种格式的传输模式进行了探讨。
在ascii模式,信息开始以一个冒号(:)字符(ascii3ah),最后以回车换行符结束(ascii码0dh,0ah)。
允其它域可以使用的传输字符是十六进制的0...9,a...F。
网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。
消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。
一个典型消息帧如下所示:使用Rtu模式,消息发送至少要以3.5个字符时间的停顿间隔开始。
在网络波特率下多样的字符时间,这是最容易实现的(如下图的t1-t2-t3-t4所示)。
传输的第一个域是设备地址。
可以使用的传输字符是十六进制的0...9,a...F 。
网络设备不断侦测网络总线,包括停顿间隔时间内。
当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。
在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。
一个新的消息可在此停顿后开始。
整个消息帧必须作为一连续的流转输。
如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。
同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。
这将导致一个错误,因为在最后的cRc域的值不可能是正确的。
一典型的消息帧如下所示:项目的主要目标是在磁铁(磁铁具有空心圆柱形状)映射磁场[2,3,4,7]。
在这个方案中,一个计算机主终端和另一个作为从机的终端被进行通信。
主机为windowsxp操作平台,包括一个用borlandc(Var.4.5)设计的操作界面。
这个从机为windows98操作平台,它实际上控制机械系统和获得由主机发出的数据译码。
主机和从机通过对等的串行总线将它们的串行通讯端口(com端口)连接起来。
从机又被连接到一个电压转频率模块,一个逻辑阵列块读出电路和一个通过pcl812pc附加卡控制的电机控制电路。
要映射的磁场,我们曾使用搜索线圈(10,000轮流)作为传感器的磁场。
探察线圈沿磁铁正中平面径向轴移动形成的电压是供给了电压频率转换器模块。
这个模块中产生的脉冲频率的变化将取决于探察线圈的输出电压。
这个模块所产生的脉冲,然后由pcl812的计数器计算。
计算出磁场中某一特定点的相对尺寸。
探察线圈电动机的方向和转动又受一个da转换器电路,功率放大器和一个继电器控制,同样也被一附加卡控制。
探察线圈位置可被探察线圈驱动电机轴的光学编码器检测到。
光学编码器在两通道上产生正交脉冲,再次由光学编码器电路计算,并且由pcl812数字输入端口转移到pc控制器。
这个力学的布置由光学编码器生成400个脉冲通过53毫米探察线圈产生。
光学编码器的输出脉冲再用来产生硬件中断(iRq3),在每个编码器的第10次中断的数据读出回路数据和pcl812计数器数据并存储在从机的本地缓冲区中。
这些数据根据要求转交给主机。
在这个项目中只采用modbus协议中的ascii模式。
modbus协议中的Rtu模式也可能在今后用到,因为Rtu模式在错误检查方法上优于ascii模式。
在ascii模式下,错误检测是lRc(纵向冗余校验)方法,而在Rtu模式下的犯错误检测是由cRc(循环冗余校验)方法。
在Rtu模式下,主从设备之间的数据通信必须同步,在这一点上一如在ascii模式下。
然而,在Rtu模式下实现modbus协议将使通信更加精确、快速、安全对于基本信息框架。
参考文献:[1]modiconmodbusprotocolReferenceguide,june1996,mod icon,inc.,industrialautomationsystemsonehighstreet, northandover,massachusetts01845.[2]microprocessorandinterfacingprogrammingandhardwa re,douglasV.hall[3]usingassemblelanguage,allenl.wyatt[4]networkprogramminginc,barrynance[5]interfacingtheserial/Rs232portV5.0[6]Virtualnullmodem,20xx-20xxaggsoftware,publishera ggsoftwareproduction,20xx-20xxaggsoftware,[7]naskars,a.Roy,s.dasgupta,modbusprotocolformaster -slavecommunicationinprototypemFmsystem,Vecc(bdcc), kolkata,india.source:ubiquityVolume9,issue3(january22,20xx-januar y28,20xx)篇二:单片机串口通信485modbus项目七单片机通信实践知识目标:1.了解uaRt(universalasynchronousReceive/transmitter通用异步收发器。
2.了解max232通信原理及标准的通信协议。
3.了解modbus通信协议标准2.采用通信芯片max485,及多机通信原理。
技能目标:1,根据数据格式的协议,数据交换的协议要求硬件连接,实现串行通讯的硬环境。
2.mcu与pc机及多个单片机的硬件连接方法3.应用pRoteus仿真工具软件绘制硬件连接图4.使用keilc完成程序的编写和调试5.使用最小系统板实现硬件调试任务一基于Rs232的点对点通信任务提出通过max232直接应用uaRt(universalasynchronousReceive/transmitter通用异步收发器,实现单片机与单片机,或单片机与pc微机之间数据传送。
知识准备7.1.1串行与并行通信在实际工作中,计算机与外部设备之间常常要进行信息交换,计算机与计算机之间也要交换信息,所有这些信息交换可称为通信。
在我们前面所学的知识中所涉及的数据传送都是采用并行方式,如单片机与存储器,的数据传送,存储器与存储器的数据传送,单片机与并行打印机之间的数据传送,cpu处理数据以8位数据并行方式同时一次传送一字节的数据,这样的传送方式要求用8条数据线和若于条控制信号线,传送距离较近。
当计算机与计算机之间的距离较远时过多的电缆使这种方式不够经济。