当前位置:文档之家› 基于RS_485总线主从通信协议及其实现

基于RS_485总线主从通信协议及其实现

云南大学学报(自然科学版),2007,29(S2):259~262CN53-1045/N ISSN0258-7971 Journal of Yunnan U niversity

Ξ

基于RS-485总线主从通信协议及其实现

彭 娜,黎 英,林庆超,张英华

(云南大学信息学院,云南昆明 650091)

摘要:RS-485总线是工业现场控制系统常用的组网方法.本文中详细讨论了一种基于RS-485总线通信协议的设计,具有可靠、灵活,相比其它的主从通信协议设计可以实现即插即用功能.

关键词:RS-485;主从通信协议;协议数据单元

中图分类号:TP366 文献标识码:A 文章编号:0258-7971(2007)S2-0259-04

计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术.计算机控制是计算机技术与自动控制理论及自动化技术紧密结合并应用于实际的结果.20世纪90年代高性能计算机、网络技术及多媒体技术的发展,使计算机应用向网络化、综合化、集成化、智能化发展,使自动控制技术更广泛地应用于工业、交通、服务等各行各业,而且控制的形式也越来越复杂.许多单机控制系统已逐渐向多机联网的方向发展,如:数据采集、消防、门禁、消费等控制系统,这就需要将各单机控制系统进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式、多控制端形式发展,出现了以网络通信技术为基础的新的控制形式.串行通信作为一种简单、廉价的通信方式在控制工程中广泛应用,其中RS -485总线型多CPU网络控制系统得到了推广与发展[1].

1 硬件设计

RS-485通信协议是工业控制中使用最为广泛的双向、平衡传输线标准,它支持多点联接,允许创建多达32个接点的网络,并可以在网络中增加另外32个模块;由于RS-485标准支持半双功通信,只需2根线就可以进行数据的发送和接收,同时具有抑制共模干扰的能力.在由单片机构成的多机串行通信系统中,采用主从式结构:子机不主动发送命令或数据,一切都由主机控制.并且在一个多机通信系统中,只有1台单片机作为主机,各台子机之间不能相互通讯,即使有信息交换也必须通过主机转发[2],RS-485构成的多机通信原理框图如图1.

2 通信协议设计

协议数据单元分为2种格式:通用帧格式(表1);特殊帧格式(表2)

表1 通用帧格式

T ab11 G eneral frame format

地址功能数据长度数据CRC

1B1B1B1-16B2B

表2 特殊帧格式

T ab12 S pecial frame format

地址功能结束符

1B1B0X00

其中第1种格式为通用帧,第2种数据帧当主机检测与之连接从机的地址或者报接收数据出错时才用的格式.

主从式通信方式,即主控制器采用循环查询的方式于各子控制器通信,子控制器相互间不直接通信,而是通过主控制器间接地相互通信.

Ξ收稿日期:2007-09-20

作者简介:彭 娜(1983- ),女,云南人,硕士生,主要从事低压电力载波通信协议方面的研究.

通讯作者:黎 英(1963- ),男,云南人,教授,博士,主要从事嵌入式系统研究.

主节点向从节点发送3种类型的请求:

(1)广播模式 主节点向所有从节点发送请求.主节点发送的广播请求无需响应,所有的从机都必须接受,地址为0X00为广播请求保留[3].

(2)查询地址模式 定期检测与主节点连接的从节点的地址,实现即插即用功能.主机发送一简单的数据帧来检测与之连接的从节点的地址.

在本系统中设置的是主节点轮询完所有从节点

3

次,进行1次检测从节点的地址,主节点从地址0开始询问从节点,在等待一段时间(这段时间为数据

往返1次的时间)后收到从节点的应答,则该从节点地址存在,将这个地址存入address[]中,如果在等待一段时间后没有收到应答信号,则认为此地址为空,将地址加1继续询问,直到地址为最大地址(最大地址指的是允许范围内可接最多的从机数量,如可最多可接32台从机,则最大地址为0X 20).

图1 RS -485多机通信原理框图

Fig 11 RS -485multi -SC M communication principle

图2 查询地址模式流程图

Fig 12 Demand address m ode flow -chart

(3)单址通信模式 主节点寻址一个单独的

从节点.从节点收到并处理请求之后,向主节点返回一个消息(应答).在这里一个会话包括2个消息:主节点的请求,从节点的应答.每个从节点的地

址必须是独一无二的.

主节点一次分别询问每一个从节点,主节点先发送握手信号给从节点,如果该从节点有数据要通信,则返回给主节点应答信号,这样从节点和主节点就建立起连接,然后交换数据,完毕后再继续询

问下一台从节点;如果该从节点没有数据要通信,

则不用应答主节点,主节点在固定的时间段(固定的时间段内是指数据往返1次所需的时间)内没有收到应答信号,则直接询问下一台从节点.数据的交换过程(包括建立连接和交换数据)采用一问一答的方式,主控制器询问了子控制器,子控制器才给予应答,收到应答后,数据交换才继续进行下去.这样的方式可以避免多个子控制器间没有次序的

62云南大学学报(自然科学版) 第29卷

数据通信,扰乱整个网络上数据的传输.

本系统采用的是一问一答的可靠连接方式,在数据帧的传递过程中,如果等待对方应答超时,或者没有接收到正确数据(在指令数据帧格式中,还定义了CRC 校验字段,每一帧指令数据帧发送前,

通过计算填入该字段,接收后读出该字段并进行验证),要求对方重发1次,如果再次等待应答超时或者没有接收到正确的应答,则认为此次通信失败.主机和从机的流程图分别如图3

,4.

图3 主机流程图

Fig 13 H ost flow -chart

3 小 结

在系统中用AT ME L 系列单片机和RS -485通

信芯片S N75176组网,波特率采用250K bps 进行通信.在实验系统中采用上述主从通信协议,主机轮询从机的方式进行通信.主机先检测与之连接从机的地址,检测之后与这些从机进行通信,轮询通信完3次后,再一次检测与之连接从机的地址,如果有新添加的从机,主机就可以在这次检测中检测到其地址,如果有拔出的从机,主机在检测中可以发

现拔出从机的地址为空,则从通信从机地址中将这个地址删除.在实验中添加从机和拔出从机都不会影响整个通信,在最大从机允许范围内从机可随意添加或者删除,实现了即插即用功能.并且在整个系统中采用的是轮询方式,当与其中一台从机通信时发生故障,采取重发一次机制,如果仍然有错误,则结束与此台从机的本轮通信,

开始与下一台从机通信,所以当个别从机发生故障的时候并不影响通信.

1

62第S2期 彭 娜,等:基于RS -485总线主从通信协议及其实现

图4 从机流程图

Fig 14 Subordinate flow -chart

参考文献:

[1] 范辉.RS -485总线与C AN 总线应用比较[J ].上海电

机学院学报,2005,8(5):54256.

[2] 王天义,杨建中.一种新型RS -485接口芯片在远程

多机通讯中的应用[J ].仪器仪表标准化与计量,2004

(5):38240.

[3] 王琦,秦娟英,周伟.用RS -485构成总线型多点数据

采集系统[J ].计算机自动测量与控制,2000,8(6):452

47.

[4] 阳宪惠.现场总线技术及其应用[M].北京:清华大学

出版社,1999.

[5] 史兴安,姜智忠,RS -485串行总线在实时控制中的

应用[J ].微电子学与计算机,2001(2):49251.

[6] 马朝,詹卫前,耿德根.Atmega8原理及应用手册[M].

北京:清华大学出版社,2002.

[7] 王苒,汤冬谊.基于RS485主从通信协议的实现[J ].

现代电子技术,2003(24):67271.

Achievement of master -slave communication architecture based on RS -485

PE NG Na ,LI Y ing ,LI N Qing 2chao ,ZH ANG Y ing 2hua

(School of In formation Engineering ,Y unnan University ,K unming 650091,China )

Abstract :RS -485bus is used to group netw ork in industry control system.The thesis discusses a design of RS

-485bus based communication protocol.The protocol is reliable ,flexible and can im plement PnP (plug and play )com pare to other master -slave communication protocols.

K ey w ords :RS -485;master -slave communication protocol ;protocol data unit

2

62云南大学学报(自然科学版) 第29卷

基于单片机的串口通信模块设计

1 绪论 1.1 研究背景 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。 计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC 机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着 RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用围也将越来越广。本文所介

单片机串口通信协议程序

#include #include #define R55 101 #define RAA 202 #define RLEN 203 #define RDATA 104 #define RCH 105 //#define unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue; void isr_UART(void) interrupt 4 using 1 { unsigned char ch; unsigned char i; unsigned char temp; if (RI==1) { ch=SBUF; switch(gRecState) { case R55: // wait 0x55 if (ch==0x55) gRecState=RAA; break;

case RAA: if (ch==0xaa) gRecState=RLEN; else if (ch==0x55) gRecState=RAA; else gRecState=R55; break; case RLEN: gRecLen=ch; gRecCount=0; gRecState=RDATA; break; case RDATA: RecBuf[gRecCount]=ch; gRecCount++; if (gRecCount>=gRecLen) { gRecState=RCH; } break; case RCH: temp=0; for(i=0;i

总线协议

Profile 总线一般是可以接2个以上用户相互通讯的硬件通讯系统。协议一般是传输信号的事先约定的信号结构,比如速率、电平、数据字节、数据包结构。 当各种同类动物之间沟通的时候,空气组成了总线,动物间的声音(语言)就是协议。只有同类才听得懂。 BACnet与Lonwork协议已经被大家所熟知,那么行业所涉及的其他协议又有哪些呢?这里为大家编辑整理了一些协议,供大家学习与参考。下面向大家介绍一下其他协议:(1)OPC OPC(用于过程控制的OLE)是一个工业标准。它由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的。这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。它是在Microsoft COM、DCOM和Active X技术的功能规程基础上开发一个开放的和互操作的接口标准,这个标准的目标是促使自动化/控制应用、现场系统/设备和商业/办公室应用之间具有更强大的互操作能力。 (2)ODBC 开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问 DBF文件或Access Basic以得到MDB 文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它多半能像广告所说的那样去工作。唯一影响ODBC前程的是,它的速度极低,至少较早版本的产品是这样。ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC 永远也不会在数据库领域产生太大的影响。然而,以 Microsoft的市场影响力,ODBC毫无疑问是成功了。今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。 (3)Socket 一个完整的socket有一个本地唯一的socket号,由操作系统分配。最重要的是,socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket系统调用。客户随机申请一个socket (相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的 socket ,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。Socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket 半相关为全局所公认非常重要。读者不妨考虑一下,两个完全随机的用户进程之间如何建立通信?假如通信双方没有任何一方的socket 固定,就好比打电话的双方彼此不知道对方的电话号码,要通话是不可能的。 在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,象一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有的则提供有线电视节目。客户软件将插头插到不同编号的插座,就可以得到不同的服务。

RS232主从式通讯协议V2.0

RS232通讯协议(SG6电源第二版)V2.0 1 总线结构 A 接口方式双线RS 232 B 传输方式: 异步串行双线半双工,主从应答式。 2 协议说明 A 数据格式和波特率:9600bps,n,8,1。 波特率9600,1起始位,8数据位,1停止位,无奇偶校验 B 报文结构 同步字段命令标识数据长度数据段校验段 2字节1字节1字节N字节1字节 同步字段2字节(规定为0AAH,055H) 命令段1字节具体定义见“命令列表” 数据长度段1字节数据段的字节个数,最小值0最大值16。 数据段N字节,N在数据长度段指明。 校验和1字节,本报文内除本字节外,所有字节的累加和,大于255自动溢出,例如,080H+092H=0112H,校验和值为012H。 3 命令列表 具体含义见命令详细说明。 命令标识功能说明回应标识回应数据说明 081H 查询状态001H 模块状态 082H 设置参数002H 设参数应答

083H 查询参数003H 模块参数 084H 开关机004H 开关机应答(数据长度为0)085H 恢复出厂设置005H 恢复设置应答(数据长度为0) 4 命令详细说明 A (081H)查询状态(无数据段) Byet0 Byet1 Byet2 Byet3 Byet4 0AAH 055H 081H 数据长度校验 B (001H)回复状态 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10 0AAH 055H 001H 数据长度输出电压输出电流故障代码温度校验 C (082H)设置参数 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10 0AAH 055H 082H 数据长度输出电压输出电流模块地址保护值1 Byet11 Byet12 Byet13 Byet14 Byet15 Byet16 保护值1 保护值2 CANOPEN波特率选择校验 D (002H)回复设置参数据包 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 0AAH 055H 002H 数据长度错误标识校验 E (083H)查询参数数据包(无数据段) Byet0 Byet1 Byet2 Byet3 Byet4 0AAH 055H 083H 数据长度校验 F (003H)回复模块参数数据包 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10 0AAH 055H 082H 数据长度输出电压输出电流模块地址保护值1 Byet11 Byet12 Byet13 Byet14 Byet15 Byet16 保护值1 保护值2 CANOPEN波特率选择校验 G (084H)开关机(无数据段) Byet0 Byet1 Byet2 Byet3 Byet4 Byet4 0AAH 055H 084H 数据长度0开机1关机校验 F(004H)开关机应答(无数据段)

(合同制定方法)单片机与上位机通信协议的制定

(合同制定方法)单片机与上位机通信协议的制定

单片机和上位机通信协议的制定 单片机和上位机的串口通信协议分为上行协议和下行协议,要分别制定!上行协议,即由单片机向上位机发送数据。 下行协议,即由上位机向单片机发送数据。 而通信协议又要分固定长度和不定长度俩种 本文所介绍的协议属于简单的固定字长的通信协议! 下行协议由四个字节构成

上表是简单的上位机对单片机的控制指令 下述函数是C#中封装的串口通信类中的发送函数的封装publicvoidSerSendCommu(byteorderDef,bytedata)//参数1为命令字,参数二为要发送的数 //据,需要时可直接调用 { Byte[]BSendTemp=newByte[SEND_LENTH]; BSendTemp[0]=PRE; BSendTemp[1]=orderDef; BSendTemp[2]=data; BSendTemp[3]=END; this.serialPort1.Write(BSendTemp,0,SEND_LENTH); } 下位机中用中断方式接收字符,本文用的是GCC语言,下面是串口接收数据中断 ISR(USART_RXC_vect)//串口接收中断

{ unsignedcharstatus,data; status=UCSRA;//**首先读取UCSRA的值,再读取UDR值,顺序不能颠倒,否则读取UDR后的UCSRA的 //值即会改变** data=UDR; if(!Uart_RecvFlag)//判断缓存中的数据是否读完,读完则接收指令 { if((status&((1<

51串口通信协议(新型篇)

51串口通信协议(新型篇) C51编程:这是网友牛毅编的一个C51串口通讯程序! //PC读MCU指令结构:(中断方式,ASCII码表示) //帧:帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志 //值: 'n' 'y'| 'r' | 0x01 | x | x | x |0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //公司名称:*** //模块名:protocol.c //创建者:牛毅 //修改者: //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其他说明:只提供对A T89c51具体硬件的可靠访问接口 //版本:1.0 //信息:QQ 75011221 ///////////////////////////////////////////////////////////////////// #include #include //预定义 //帧 #define F_ST1 0x6e //帧头标志n #define F_ST2 0x79 //帧头标志y #define F_R 0x72 //帧类型读r #define F_W 0x77 //帧类型写w #define F_D 0x64 //帧类型数据帧d #define F_B 0x62 //帧类型写回应帧b #define F_C 0x63 //帧类型重发命令帧c #define F_Q 0x71 //帧类型放弃帧q #define F_ADDR 0x31 //器件地址0-9 #define F_END 0x7a //帧尾标志z #define F_SPACE 0x30 //空标志0 #define F_ERR1 0x31 //错误标志1,flagerr 1 #define F_ERR2 0x32 //错误标志2 2 //常数 #define S_MAXBUF 16 //接收/发送数据的最大缓存量 #define FIELD_MAXBUF 48 //最小场缓存,可以大于48字节,因为协议是以20字节为

几大通信协议区别

I2C和SPI,UART的区别 2009-12-07 21:55 SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行外设接口)串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 I2C--INTER-IC(INTER IC BUS:意为IC之间总线)串行总线的缩写,是PHILIPS 公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输。具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。 能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。 最主要的优点是其简单性和有效性。它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 UART(Universal Asynchronous Receiver Transmitter:通用异步收发器):单端,远距离传输。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。----------------------------------------------------------------------------------------------------------------------------------- 区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

基于51单片机的双机串行通信课程设计 1000110061

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

通讯方式和通讯协议介绍

目录 一、RS232的串口通讯 (2) 应用 (2) 工作方式 (2) 接口标准 (2) 电路组成 (3) 概述 (3) 简介 (3) 二、RS485串行通讯 (3) 简介 (3) 接口 (4) 电缆 (4) 布网 (5) 区别 (5) 三、串行通信 (6) 概念 (6) 分类 (7) 同步通信 (7) 异步通信 (7) 特点 (7) 形式和标准 (7) 调幅方式 (7) 调频方式 (8) 数字编码方式 (8) 数据传输率 (8) 发送时钟和接收时钟 (9) 异步通信协议 (9) 通信协议 (10) 普遍协议 (10) USB (11) IEEE 1394 (11) 相关应用 (12) 四、通讯协议 (12) 简介 (12) 详细介绍 (13) TCP/IP (13) IPX/SPX (13) NetBEUI (14) 通信协议 (14) RS-232-C (14) RS-449 (14) V.35 (15) X.21 (15) HDLC (15) 管理协议 (15) SNMP (15) PPP (16)

一、RS232的串口通讯 应用 随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要.这里所说的通信是指计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU 之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU 与接口之间仍按并行方式工作. 工作方式 由于CPU 与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有" 接收移位寄存器" (串→并)和" 发送移位寄存器" (并→串). 在数据输入过程中,数据1 位1 位地从外设进入接口的" 接收移位寄存器",当" 接收移位寄存器" 中已接收完1 个字符的各位后,数据就从" 接收移位寄存器" 进入" 数据输入寄存器" . CPU 从" 数据输入寄存器" 中读取接收到的字符.(并行读取,即D7~D0 同时被读至累加器中). " 接收移位寄存器" 的移位速度由" 接收时钟" 确定. 在数据输出过程中,CPU 把要输出的字符(并行地)送入" 数据输出寄存器"," 数据输出寄存器" 的内容传输到" 发送移位寄存器",然后由" 发送移位寄存器" 移位,把数据1 位 1 位地送到外设. " 发送移位寄存器" 的移位速度由" 发送时钟" 确定. 接口中的" 控制寄存器" 用来容纳CPU 送给此接口的各种控制信息,这些控制信息决定接口的工作方式. " 状态寄存器" 的各位称为" 状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误.例如,用状态寄存器的D5 位为"1" 表示" 数据输出寄存器" 空,用D0 位表示" 数据输入寄存器满",用D2 位表示" 奇偶检验错" 等. 能够完成上述" 串<- -> 并" 转换功能的电路,通常称为" 通用异步收发器" (UART :Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550 接口标准 ⑴实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。

上位机通讯协议

2006 12 28 V1.0.01 [ ] 1 2006 11 29 V1.0 MODBUS-RTU MODBUS 01 ON/OFF) 02 ON/OFF) 03 04 05 06 07 8 8 08 09 484 PC 10 484 9 c u-t r a c

11 12 ModBus 13 184/384 484 584 PC 14 184/384 484 584 13 15 16 17 18 884 MICRO 84 PC 19 20 584L 21 584L 22 64 65 c u-t r a c

xx6X x x x abcd a b c d Bit7-bit4 Bit3-bit0B 66 xx6x X x x x x x x c u-t r a c

xx6x x x x x x (x) 67 [ ] 68 xx6x x x x x x x x x xx6x x x x x x x x (x) 0 1= 2= 3= 4= 5= 6= 7= 69 xx6X0x c u-t r a c

xx6x x 70 xx6X x x x xx6x 71 xx x X x x xx x x x 100 72 c u-t r a c

xx x X x x x xx x x 73 [ ] [ ] 74 [ ] [ ] 75 [ ] [ ] 76 [ ] [ ] 77 [ ] [ ] 78 [ ] [ ] 79 [ ] [ ] 80 [ ] [ ] 81 [ ] [ ] 82 [ ] [ ] 83 [ ] [ ] 84 [ ] [ ] 85 [ ] [ ] 86 [ ] [ ] 87 [ ] [ ] 88 [ ] [ ] 89 [ ] [ ] 90 [ ] [ ] c u-t r a c

各种通信协议

分层及通信协议 协议软件是计算机通信网中各部分之间所必须遵守的规则的集合,它定义了通信各部分交换信息时的顺序、格式和词汇。协议软件是计算机通信网软件中最重要的部分。网络的体系结构往往都是和协议对应的,而且,网络管理软件、交换与路由软件以及应用软件等都要通过协议软件才能发生作用。 一、通信协议 1、什么是通信协议 通信协议(简称协议Protoco l),是指相互通信的双方(或多方)对如何进行信息交换所一致同意的一整套规则。一个网络有一系列的协议,每一个协议都规定了一个特定任务的完成。协议的作用是完成计算机之间有序的信息交换。 通信网络是由处在不同位置上的各节点用通信链路连接而组成的一个群体。通信网必须在节点之间以及不同节点上的用户之间提供有效的通信,即提供有效的接入通路。在计算机通信网中,将这种接入通路称为连接(connection)。建立一次连接必需要遵守的一些规则,这些规则也就是通信网设计时所要考虑的主要问题。 (l)为了能在两个硬件设备之间建立起连接,应保证在源、宿点之间存在物理的传输媒介,在该通路的各条链路上要执行某种协议。 如果传输线路使用电话线,则要通过调制解调器将信号从数字转换成模拟的,并在接收端进行反变换。 如果用的是数字传输线路,则在数据处理设备和通信设备之间,必须有一个数字适配器,以便将数字信号的格式转换成两种设备各自所期望的形式。 为了在两个端设备之间互换数据,需要协调和同步,调制解调器和数字适配器必须执行它们自己的协议。 无论是模拟的还是数字的通信设备,调制解调器和数字适配器的状态必须由接到节点上的设备来控制,这里必定有一个物理的或电气的接口来执行这种功能,执行某种适当的协议来达到这一控制目的。 (2)在计算机通信网中,许多信息源都是突发性的(bursty),问题是要利用信息的这种突发性质来降低消耗在线路上的费用,由此开发了许多共享通信资源的技术。所谓共享,是指允许多个用户使用同一通信资源,这就产生了多用户的接入问题。多路接入

基于单片机的双机通信

基于单片机的双机通信 [摘要]双机通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现两个单片机之间的有序通信。本文详细介绍了关于基于单片机AT89C51实现的双机之间的通信的设计。软件部分采用C语言编程实现接收部分和发射部分的功能,用Protues进行仿真。软件设计完成后,将程序烧入单片机。通信的结果实用数码管进行显示,数码管采用查表方式显示。在通信过程中,使用通信协议进行通信。 [关键词]51单片机;串行通信;接口

Two-machine communication based on single chip [Abstract]Dual machine communication is an important application of single chip. This course is designed to using single chip computer to complete a system, realize the orderly communication between two single-chip microcomputer. This paper introduces the realization based on single-chip microcomputer AT89C51 about the dual machine for communication between the design. Software part adopts the C programming language realization receiving part and emission, part of the Protues function, through simulation. The software design is completed, the procedure spread microcontroller. Communication results and practical to display, digital digital tube pipe, adopting look-up table display. In communication process, USES communication protocol to communicate. [Key words]51 SCM; serial communication; Interface

上位机与下位机之间通信协议格式

一、通信协议 1、命令帧格式 帧头标志参数校验帧尾 命令字 01累加和 2030 1Byte1Byte2Byte1Byte1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。

2、信息帧格式 帧头标志参数校验帧尾 命令字 2030 02累加和 1Byte1Byte2Byte1Byte1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。

3、数据帧格式 (文件mokuaideng.txt (模块指示灯地址) 20 Byte ) 帧头标志校验帧尾203003累加和数据数据1Byte 16Byte 1Byte 1Byte 1Byte 标志:03 数据帧 文件mokuaideng.txt (模块指示灯地址) 20 Byte 04 数据帧 文件daotongbiao.txt (导通表) 40 Byte 05 数据帧 文件canshu.txt (控制参数) 6 Byte 06 数据帧 校验文件mokuaideng.txt (模块指示灯地址) 20 Byte 07 数据帧 校验文件daotongbiao.txt (导通表) 40 Byte 08 数据帧 校验文件canshu.txt (控制参数) 6 Byte 4、信息帧格式 定位物理针位 下位机-》上位机 上位机-》下位机 点亮指示灯 帧头标志参数校验帧尾203011累加和物理针位1Byte 1Byte 2Byte 1Byte 1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。 标志位 13 ,单点检测 判断单点导通关系是否真确 5、信息帧格式 下位机-》上位机 自检、线检测 帧头标志参数1校验帧尾203012累加和起始针位1Byte 1Byte 2Byte 1Byte 1Byte 参数2终点针位2Byte 参数3状态1Byte 状态:00 导通 01 断路 02 短路/错路

菱f系列plc编程口通信协议

三菱FX系列 PLC 编程口通信协议总览 三菱PLC-FX2N 三菱FX系列PLC编程口通信协议总览 该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。 通讯格式: 命令命令码目标设备 DEVICE READ CMD "0" X,Y,M,S,T,C,D DEVICE WRITE CMD "1" X,Y,M,S,T,C,D FORCE ON CMD " 7" X,Y,M,S,T,C FORCE OFF CMD "8" X,Y,M,S,T,C 传输格式: RS232C 波特率: 9600bps 奇偶: even 校验: 累加方式(和校验) 字符: ASCII 16进制代码: ENQ 05H 请求 ACK 06H PLC正确响应 NAK 15H PLC错误响应 STX 02H 报文开始 ETX 03H 报文结束 帧格式: STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower) 例子: STX ,CMD ,ADDRESS, BYTES, ETX, SUM 02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H

SUM=CMD+......+ETX; 30h+31h+30h+46h+36h+30h+34h+03h=74h; 累加和超过两位取低两位 1、DEVICE READ(读出软设备状态值) 计算机向PLC发送: 始命令首地址位数终和校验 STX CMD GROUP ADDRESS BYTES ETX SUM 例子:从D123开始读取4个字节数据 02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h 地址算法:address=address*2+1000h 再转换成ASCII 31h,30h,46h,36h PLC返回 STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM 注:最多可以读取64个字节的数据 例子:从指定的存储器单元读到3584这个数据 02h 33h 35h 38h 34h 03h 44h,36h 2、DEVICE WRITE(向PLC软设备写入值) 始命令首地址位数数据终和校验 STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA ...... LAST DATA ETX SUM 例子:向D123开始的两个存储器中写入1234,ABCD 02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h PLC返回 ACK (06H) 接受正确 NAK (15H) 接受错误 3、位设备强制置位/复位 FORCE ON置位 始命令地址终和校验 STX CMD ADDRESS ETX SUM 02h 37h address 03h sum FORCE OFF复位 始命令地址终和校验

RS485主从式多机通讯协议

RS485主从式多机通讯协议 一、数据传输协议 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。 1、数据在网络上转输 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在对等类型网络上转输 在对等网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。 在消息位,本协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 (2)回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 二、传输方式 控制器能设置传输模式为RS485串行传输,通信参数为9600,n,8,1。在配置每个控制器的时候,在一个网络上的所有设备都必须选择相同的串口参数。 地址功能代码数据数量数据1 ...….数据n CRC字节 每个字节的位 · 1个起始位 · 8个数据位,最小的有效位先发送 · 1个停止位 错误检测域 · CRC(循环冗余码校验) 三、消息帧

基于51的MODBUS-RTU多机主从通信

基于51的MODBUS-RTU多机通信 实验环境:Proteus 编程语言:汇编 编程环境:KEIL 单片机: AT89C51,AT89C52 晶振:11.0592MHz 功能说明:本实验运用了MODBUS-RTU通信协议的功能码03多寄存器读和 功能码10多寄存器写,其中主机首先通过03功能码读取1号从机的时,分和秒的值,并将它们用液晶LCD显示器显示出来。然后利用10功能将读取的值送入2号从机,2号从机在接收到主机送来的数据后再将它们以与1号从机相同的方式显示出来。为1号从机设置了按钮,可调节它的时间,同是主机和2号从机也随之显示相同的时间。 图示:

部分程序源代码: 1、主机 ORG 000H LJMP MAIN ORG 000BH LJMP TMR0 ORG 0023H LJMP USART ORG 0040H MAIN: ACALL INIT HERE: CLR RS0 CLR RS1 JB FLAG2.7,TXWORK JB UFLAG.7,RXWORK; AJMP HERE TXWORK: AJMP TXWORK1 RXWORK: CLR UFLAG.7 ;**********接收完成,显示操作 JB UFLAG.3,RXWMB03 RXWMB10: JNB UFLAG.5,HERE AJMP RXMBW101 RXWMB03: CLR UFLAG.3

MOV R0,#HOUR1 MOV A,CND3 CLR C RRC A MOV R7,A MOV R1,#CND5 RWORK1: MOV A,@R1 MOV @R0,A INC R1 INC R1 INC R0 DJNZ R7,RWORK1 MOV DSPC,#8 TIMDIS: MOV A,DSPC MOV DPTR,#DISTB MOVC A,@A+DPTR MOV LCDD,A ACALL LCDWP MOV A,#HOUR1 ADD A,DSPC MOV R1,A MOV A,@R1

上位机与下位机通过蓝牙通讯协议

文档名称:蓝牙通信协议编制审定:解晓飞

目录 1 前言 (2) 2帧定义 (2) 2同步字 (2) 3帧类型 (3) 4通讯流程 (3) 4.1设置采集信息 (3) 4.2采集测试命令 (3) 4.3开始采集、结束采集 (4) 5通信原则 (4)

PDA与下位机蓝牙通讯协议 1 前言 本协议用于定义PDA通过蓝牙与下位机进行数据通信的底层操作。数据传输以信息帧格式传输,且帧长度为非定长信息。 2帧定义 系统中共有三种帧格式,根据类型的不同帧的格式也不同具体定义如下: 3.1、命令帧 3.2 回复帧 3、2数据帧 其中命令帧是由PDA发给单片机的,回复帧和数据帧是由单片机发给PDA 的。 2同步字 为保证数据正确传输,帧格式中设有起始同步字和结束同步字,起始同步字包括两个字节,内容为0xaa、0xaa,结束同步字包括两个字节,内容为0x55、0x55。

3帧类型 类型字包括一个字节,表示发送的数据的类型,本系统中包括三个类型:命令、回复、数据三类。具体定义如下: 4通讯流程 操作过程中PDA均采用主动模式,单片机采用被动模式。 4.1设置采集信息 单片机启动后等待接收蓝牙命令首先进行参数设置,本部分由PDA控制。 PDA发送设置命令(帧类型0x30)并将信息发送到单片机,单片机接收到数据后检测数据个数是否正确,如果检测正确返回接收正确命令否则返回接收错误命令。 如果单片机返回的数据为接收错误,PDA重新发送命令。 从数据发送时起PDA进行计数等待,等待500ms后没有接收到返回值,自动重新发送命令并等待,重复上述操作。 发送三次都没有返回值时弹出警告对话框,提示蓝牙通讯故障。 如发送数据正常则提示设置成功信息对话框。 4.2采集测试命令 1、PDA发送采集命令 PDA发送采集设置命令(帧类型0x30),单片机接收到数据后检测数据是否正确,如果检测错误则返回接收错误命令。PDA接收到单片机返回接收错误回复,PDA重新发送命令。 从数据发送时起PDA进行计数等待,等待500ms后没有接收到返回值(采集数据或错误回复值),自动重新发送命令并等待,重复上述操作。

通信协议与编程

MODBUS通讯协议及编程 ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU 通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就ModBus RTU协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与MODBUS RTU通讯规约相兼容: 初始结构= ≥4字节的时间 地址码= 1 字节 功能码= 1 字节 数据区= N 字节 错误校检= 16位CRC码 结束结构= ≥4字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。 CRC码:二字节的错误检测码。

(二)、通讯规约: 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.错误校验 冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。

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