当前位置:文档之家› 串口通信协议modbus

串口通信协议modbus

竭诚为您提供优质文档/双击可除串口通信协议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条数据线和若于条控制信号线,传送距离较近。当计算机与计算机之间的距离较远时过多的电缆使这种方式不够经济。

串行通信是用一位数据线传送数据,只用几条电缆线作控制信号线,串行通信适合远距离数据传送,处于两地的计

算机之间采用串行通信就非常的经济,当然串行通信要求通信双方具有相同的数据转换格式,规定的时间控制,相等的逻辑电路,通一的通信协议。7.1.1.1串行与并行通信基本概念

1.串行通信与并行通信

通信方式有两种:并行通信和串行通信。通常是根据信息传送的距离决定采用哪种通信方式,如果距离小于30cm

则可采用并行通信方式,当距离大于30cm时则要采用通信方式。

并行通信方式是指数据的各位同时进行传送的通信方式,其优点是传送速度高,缺点是数据有多少位,就需要多少根数据传送线,单片机与外部设备之间的数据传送属于并行通信图7-1-1(a)所示为at89c51系列单片机与外部设备间的8位数据并行通信的连接方法,并行通信方式在位数多、传送距离远的情况下就不太合适了。

串行通信间数据是一位一位按顺序传送的通信方式,图7-1-1(b)所示为单片机与外部设备间的串行通信连接方式,可以看出最单间的串行连接只需三条线,因此利用电话线就可作为传输线,这样大大降低了成本,特别适用于远距离通信;串行通信的缺点是传送速度较低。假设并行传送n位数据所需时间为t,那么串行传送的时间至少为nt,实际上总是大于nt的。

图7-1-1两种通信方式连接

2.单工、半双工和全双工串行通信的传送方式通常有3种:

⑴单向(或单工),只允许数据向一个方向传送;

⑵半双向(或半双工),允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;⑶全双向(或全双工),允许同时双向传送数据,全双工配置是一对单向配置,它要求两端的通信设置具有完整和独立的发送和接收能力。

7.1.1.2单片机串行口发送与接受数据1.串行通信协议

串行通信协议是通信双方为保证通信成功而制定的一

系列约定。包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议,串行通信协议包括同步协议的异步协议两种。异步串行通信协议规定了字符的传送格式和字符传送的波特率。

相关主题
文本预览
相关文档 最新文档