1、单片机的 RS-485 通信技术一、基础知识通常的微处理器都集成有 1 路或多路硬件 UART 通道,可以非常方便地实现串行通讯。在工业控制、电力通讯、智能仪表等领域中,也常常使用简便易用的串行通讯方式作为数据交换的手段。但是,在工业控制等环境中,常会有电气噪声干扰传输线路,使用 RS-232 通讯时经常因外界的电气干扰而导致信号传输错误;另外,RS-232 通讯的最大传输距离在不增加缓冲器的情况下只可以达到 15 米。为了解决上述问题,RS-485/422 通讯方式就应运而生了。1、RS-232/422/485 标准来历RS-232、RS-422 与 RS-485 最初都是由电子工业协会(E
2、IA)制订并发布的。RS-232 在 1962 年发布,命名为 EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422 是由 RS-232 发展而来,它是为弥补 RS-232 之不足而提出的。为改进 RS-232 通信距离短、速率低的缺点,RS-422 定义了一种平衡通信接口,将传输速率提高到 10Mbps,传输距离延长到 4000 英尺(速率低于 100kbps 时) ,并允许在一条平衡总线上连接最多 10 个接收器。RS-422 是一种单机发送、多机接收的单向、平衡传输规范,被命名为 TIA/EIA-422-A 标准。为扩展应用范围,EIA 又于 1983 年在 RS
3、-422 基础上制定了 RS-485 标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 TIA/EIA-485-A 标准。由于 EIA 提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以 RS 作前缀称谓。RS-232、RS-422 与 RS-485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。但由于 PC 上的串行数据通讯是通过 UART 芯片(较老版本的 PC 采用 I8250 芯片或 Z8530 芯片)来处理的,其
4、通讯协议也规定了串行数据单元的格式(8-N-1 格式):1 位逻辑 0 的起始位,6/7/8 位数据位,1 位可选择的奇(ODD)/偶(EVEN)校验位,1/2 位逻辑 1 的停止位。基于 PC 的 RS-232、RS-422 与 RS-485标准均采用同样的通讯协议。表格 1-1 列出了 RS-232、RS-422、RS-485 通讯方式的区别。标准 RS-232 RS-422 RS-485工作方式 单端 差分 差分节点数 1收、1发 1发、10收 1发、32收最大传输电缆长度 50英尺 4000英尺 4000英尺最大传输速率 20Kbps 10Mbps 10Mbps最大驱动输出电压 +/
5、25V 0.25V+6V 7V+12V发送器输出信号电平(负载最小值)负载 +/-5V+/-15V 2.0V 1.5V发送器输出信号电平(空载最大值)空载 +/-25V 6V 6V发送器负载阻抗() 3K7K 100 54摆率(最大值) 30V/s N/A N/A接收器输入电压范围 15V 10V+10V 7V+12V接收器输入门限 3V 200mV 200mV接收器输入电阻() 3K7K 4K(最小 ) 12K发送器共模电压 - -3V+3V -1V+3V接收器共模电压 - -7V+7V -7V+12V1、 RS-232 标准RS-232 被定义为一种在低速率、近距离串行通讯的单端标准。RS
6、-232 采取不平衡传输方式,即所谓单端通讯。、RS-232 的电气标准电平为逻辑“0”时:+3V+15V;电平为逻辑“1”时:-3V-15V;未定义区:3V3V。在此区域内的信号处理将由通讯接口的 RS-232 收发器决定。、RS-422/485 标准RS-422/485 标准的全称为 TIA/EIA-422-B 和 TIA/EIA-485 串行通讯标准。RS-422/485 标准与 RS-232 标准不一样,数据信号采用差分传输方式(Differential Driver Mode) ,也称作平衡传输。由于 RS-422/485 标准在电气特性上非常相近,在传输方式上有所区别;为便于理解,
7、下面将主要介绍应用比较普遍的 RS-485 标准,并简单介绍 RS-422 标准与 RS-485 标准的区别。1 RS-485 标准RS-485 标准是为弥补 RS-232 通信距离短、速率低等缺点而产生的。RS-485 标准只规定了平衡发送器和接收器的电特性,而没有规定接插件、传输电缆和应用层通信协议。RS-485 标准与 RS-232 不一样,数据信号采用差分传输方式(Differential Driver Mode) ,也称作平衡传输,它使用一对双绞线,将其中一线定义为 A,另一线定义为 B,如图 1 所示。图 1:RS-485 发送器的示意图通常情况下,发送发送器 A、B 之间的正电平
8、在+2+6V,是一个逻辑状态;负电平在-2-6V,是另一个逻辑状态。另有一个信号地 C。在 RS-485 器件中,一般还有一个“使能”控制信号。 “使能”信号用于控制发送发送器与传输线的切断与连接,当“使能”端起作用时,发送发送器处于高阻状态,称作“第三态” ,它是有别于逻辑“1”与“0”的第三种状态。对于接收发送器,也作出与发送发送器相对的规定,收、发端通过平衡双绞线将 A-A与 B-B 对应相连。当在接收端 A-B 之间有大于+200mV 的电平时,输出为正逻辑电平;小于-200mV 时,输出为负逻辑电平。在接收发送器的接收平衡线上,电平范围通常在 200mV至 6V 之间。定义逻辑 1(
9、正逻辑电平)为 BA 的状态,逻辑 0(负逻辑电平)为 AB 的状态,A、B 之间的压差不小于 200mV。RS-485 标准的最大传输距离约为 1219 米,最大传输速率为 10Mbps。通常,RS-485 网络采用平衡双绞线作为传输媒体。平衡双绞线的长度与传输速率成反比,只有在 20kbps 速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般来说,15 米长双绞线最大传输速率仅为 1Mbps。注意:并不是所有的 RS-485 收发器都能够支持高达 10Mbps 的通讯速率。如果采用光电隔离方式,则通讯速率一般还会受到光电隔离器件响应速度的限制。RS-485
10、 网络采用直线拓朴结构,需要安装 2 个终端匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般取值为 120) 。在矩距离、或低波特率波数据传输时可不需终端匹配电阻,即一般在 300 米以下、19200bps 不需终端匹配电阻。终端匹配电阻安装在 RS-485 传输网络的两个端点,并联连接在 A-B 引脚之间。RS-485 标准通常被用作为一种相对经济、具有相当高噪声抑制、相对高的传输速率、传输距离远、宽共模范围的通信平台。同时,RS-485 电路具有控制方便、成本低廉等优点。在过去的 20 年时间里,建议性标准 RS-485 作为一种多点差分数据传输的电气规范,被应用在许多不同的领域,作为数据
11、传输链路。目前,在我国应用的现场网络中,RS-485 半双工异步通信总线也是被各个研发机构广泛使用的数据通信总线。但是基于在 RS-485 总线上任一时刻只能存在一个主机的特点,它往往应用在集中控制枢纽与分散控制单元之间。2 RS-422 标准RS-422 标准的全称是“平衡电压数字接口电路的电气特性” ,它定义了接口电路的电气特性。图 2是典型的 RS-422 四线接口。实际上还有一根信号地线,共 5 根线通讯线。G RABABGRABABG 发送驱动器 R - 接收器信号地 电源地 、 保护地 、 机箱地图 2:RS-422 标准的通讯接口由于 RS-422 接收器采用高输入阻抗和发送器因
12、此比 RS-232 更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接 10 个节点。即一个主设备(Master) ,其余为从设备(Salve) ,从设备之间不能通信,所以 RS-422 支持点对多点的双向通信。接收器输入阻抗为 4k,故发端最大负载能力是104k+100(终接电阻) 。RS-422 四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF 握手)或硬件方式(一对单独的双绞线)实现。RS-422 的最大传输距离为 4000 英尺(约 1219 米) ,最大传输速率为 10Mbps。其平衡双绞线的长度与
13、传输速率成反比,在 20kbps 速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般 100 米长的双绞线上所能获得的最大传输速率仅为 1Mbps。RS-422 需要安装一个终接电阻,要求其阻值约等于传输电缆的特性阻抗(一般取值为 120 欧) 。在短距离、或低波特率数据传输时可不安装终接电阻,即一般在 300 米以下不安装终接电阻。终接电阻安装在传输电缆的最远端。、RS-485/RS-422 芯片作为一种常用的通讯接口器件,RS-485/RS-422 芯片可以在许多半导体公司的“标准接口器件”栏目中“收发器”类元件中找到对应的型号;比如 Sipex 公司(器件前缀
14、为 SP)、Maxim 公司(器件前缀为 MAX)、TI 公司(器件前缀为 SN)、Intersil 公司(器件前缀为 ISL 或 LTC)等各大半导体公司。、RS-485 接口电路RS-485 接口电路的主要功能是:将来自微处理器的发送信号 TX 通过“发送器”转换成通讯网络中的差分信号,也可以将通讯网络中的差分信号通过“接收器”转换成被微处理器接收的 RX 信号。任一时刻,RS-485 收发器只能够工作在“接收”或“发送”两种模式之一,因此,必须为 RS-485 接口电路增加一个收/发逻辑控制电路。另外,由于应用环境的各不相同,RS-485 接口电路的附加保护措施也是必须重点考虑的环节。、
15、基本 RS-485 电路图 3为一个经常被应用到的 SP485R芯片的示范电路,可以被直接嵌入实际的 RS-485应用电路中。微处理器的标准串行口通过 RXD 直接连接 SP485R 芯片的 RO 引脚,通过 TXD直接连接 SP485R 芯片的 DI 引脚。图 3:SP485R 的基本 RS-485 电路由微处理器输出的 R/D 信号直接控制 SP485R 芯片的发送器/接收器使能:R/D 信号为“1” ,则 SP485R 芯片的发送器有效,接收器禁止,此时微处理器可以向 RS-485 总线发送数据字节;R/D 信号为“0” ,则SP485R 芯片的发送器禁止,接收器有效,此时微处理器可以接
16、收来自 RS-485 总线的数据字节。此电路中,任一时刻 SP485R 芯片中的“接收器”和“发送器”只能够有 1 个处于工作状态。连接至 A 引脚的上拉电阻 R7、连接至 B 引脚的下拉电阻 R8 用于保证无连接的 SP485R芯片处于空闲状态,提供网络失效保护,以提高 RS-485 节点与网络的可靠性。如果将 SP485R 连接至微处理器 80C51 芯片的 UART 串口,则SP485R 芯片的 RO 引脚不需要上拉;否则,需要根据实际情况考虑是否在 RO 引脚增加 1 个大约 10K 的上拉电阻。SP485R 芯片本身集成了有效的 ESD 保护措施。但为了更加可靠地保护 RS-485
17、网络,确保系统安全,我们通常还会额外增加一些保护电路。电路图中,钳位于 6.8V 的 TVS 管 V4、V5、V6 都是用来保护 RS-485 总线的,避免 RS-485总线在受外界干扰时(雷击、浪涌)产生的高压损坏 RS-485 收发器。当然,也选择集成的总线保护元件,比如ONSemi 半导体的 NUP2105L 器件(SOT-23 封装,集成 2 个双向 TVS器件),作为 SP485R 芯片的附加保护措施。另外,电路中的 L1、L2、C1、C2 是可选安装元件,用于提高电路的 EMI 性能。图中附加的保护电路能够对 SP485R 芯片起到良好的保护效果。、隔离 RS-485 电路图 4为
18、一个使用光电隔离方式连接的 SP485R 芯片的示范电路,可以被直接嵌入实际的 RS-485 应用电路中。微处理器的 UART 串口的 RXD、TXD 通过光电隔离电路连接 SP485R 芯片的 RO、DI 引脚,控制信号R/D 同样经光电隔离电路去控制 SP485R 芯片的 DE和/RE 引脚。由微处理器输出的 R/D 信号通过光电隔离器件控制 SP485R 芯片的发送器/接收器使能:R/D 信号为“1”,则 SP485R 芯片的 DE 和/RE 引脚为“1” ,发送器有效,接收器禁止,此时微处理器可以向 RS-485 总线发送数据字节;R/D 信号为“0” ,则 SP485R 芯片的 DE
19、和/RE 引脚为“0” ,发送器禁止,接收器有效,此时微处理器可以接收来自 RS-485 总线的数据字节。任一时刻,SP485R 芯片中的“接收器”和“发送器”只能够有 1 个处于工作状态。连接至 A 引脚的上拉电阻 R7、连接至 B 引脚的下拉电阻 R8 用于保证无连接的 SP485R芯片处于空闲状态,提供网络失效保护,以提高 RS-485 节点与网络的可靠性。使用 DC-DC 器件可以产生 1 组与微处理器电路完全隔离的电源输出,用于向 RS-485 收发器电路提供+5V 电源。电路中光耦器件的速率将会影响RS-485 电路的通讯速率。图 4中选用了 NEC 公司的光耦器件 PS2501
20、芯片,受 PS2501 芯片的响应速率影响,这一示范 RS-485 接口电路的通讯速率只可保障在 19200bps 速率下正常工作;如果需要达到更高的RS-485 通讯速率,则需要选用响应速度更快的光耦器件,比如 Agilent 公司的超高速光耦元件。图 4:SP485R 的隔离 RS-485 电路SP485R 芯片本身集成了有效的 ESD 保护措施。但为了更加可靠地保护 RS-485 网络,确保系统安全,我们通常还会额外增加一些保护电路。当然,我们使用在图 4中介绍的保护电路,同样可以对 SP485R 芯片起到良好的保护效果。、上电抑制电路由多个 RS-485 收发器连接而成的 RS-485
21、 多机网络中,任一时刻只能够有一个 RS-485发送器工作在“发送”状态,其余节点必须工作在“接收”状态;这称为“单主/多从”通讯方式。在一个 RS-485 网络中同时有 2 个或更多个 RS-485 收发器工作在“发送”状态将会导致数据丢失、产生错误,严重的甚至损坏RS-485 收发器,使 RS-485 网络瘫痪。因此,在设计阶段时就应仔细考虑,避免后期可能出现的种种事故隐患。图 5所示实例介绍了在一个应用系统上电阶段的 RS-485 接口电路设计窍门。RS-485 接口电路实现系统的通讯功能,但仅是一个完整系统中的一个有机部分,当然受到微处理器的状态控制。当微处理器在上电时,串行通讯接口的
22、控制信号 SCI_DE 并不能够确定处于高或低电平状态,这可能会导致该单元在上电阶段向 RS-485 网络发送一组“无效”数据,破坏原来正常的网络通讯功能。设计时增加一组由R1、C1、D1、U1 简单元件组成的上电抑制电路,即可以避免在应用系统上电时出现网络通讯事故。图 5:RS-485 接口电路的上电抑制1.3.4 RS-485 自动换向电路前面的电路中,都使用了一个串行通讯接口的控制信号 SCI_DE 来控制 RS-485 收发器的发送器/接收器使能引脚。图 6则演示了另一种自动控制 RS-485 芯片的发送器/接收器使能引脚的方式,通常称作为 RS-485 接口电路的自动换向功能。图 6
23、:RS-485 接口电路的自动换向图 6所示电路中,当 TXD 信号为“1” ,即无输入信号时,SP485R 芯片工作在“接收”状态;当 TXD 为“0” ,即有信号输入时,即执行发送功能时,来自 TXD 信号上的有效电平将自动禁能接收器,使能发送器,从而将 TXD 信号发送到 RS-485 网络。RS-485 接口电路的自动换向功能可以有很多种可实现的不同电路形式,但其基本内容都是由 TXD 信号来控制 RS-485 芯片中接收器/发送器的开关切换。由于 RS-485 接口电路的自动换向将占用一部分接口电路的切换时间开销、信号驱动开销,因此,这一种低成本的 RS-485 接口电路可能并不适合
24、所有的 RS-485 应用。比如,在需要可靠性或高速度长距离,尤其在节点较多、负载重的情况下,强烈建议选用前面介绍的独立控制的 RS-485 接口电路收/发控制方法。2、RS-485 通讯协议RS-485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议;因此,用户需要在 RS-485 应用网络的基础上建立自己的应用层通信协议。由于 RS-485 标准是基于 PC 的 UART 芯片上的处理方式,因此,其通讯协议也规定了串行数据单元的格式(8-N-1 格式):1 位逻辑 0 的起始位,6/7/8 位数据位,1 位可选择的奇(ODD)/偶(EVEN)校验位,1/2 位逻辑 1 的停止位
25、。目前,RS-485 在国内有着非常广泛的应用,许多领域,比如工业控制、电力通讯、智能楼宇等都经常可以见到具有 RS-485 接口电路的设备。但是,这些设备采用的用户层协议都不相同;这些设备之间并不可以直接连接通讯。比如,很多具有 RS-485 接口电路的用户设备采用自己制定的简单通讯协议,或是直接取自 ModBus 协议(AscII/RTU 模式)中的一部分功能。在电力通讯领域,当前国家现在执行的行业标准中,颁布有按设备分类的各种通讯规约,如CDT、SC-1801 、u4F 、DNP3.0 规约和1995 年的IEC60870-5-101 传输规约、1997 年的国际101 规约的国内版本D
26、L/T634-1997 规约;在电表应用中,国内大多数地区的厂商采用多功能电能表通讯协议(DL/T645-1997)。国内江苏、浙江、上海地区以及北京的电表厂商采用多功能电能表通讯协议(DL/T645-1997)作为电表的远程控制通讯协议;这是一个在 RS-485 网络中实现应用的行业标准。下面我们简单的做以说明。1、通讯字节格式,如图 7所示。0 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 P 1开始数据校验停止图7:通信字节格式传送方向从低到高位,一个起始位、一个停止位、一个偶校验位、8 位数据位,总共11位。2、网络通信数据帧格式,如图8所示。图 8:数据帧格式地址域
27、:当地址位99H时,为广播地址,同时当从控制器接收到一帧数据时,地址域相同时应响应命令,取得总线控制权,当响应命令之后,应把总线控制权归还给主控器。命令码:执行操作的依据。校验码:帧开始各个字节二进制算术和,不计溢出值。帧起始符:在发送信息之前,发送1个字节68H ,表示为此帧的数据。数据域:发送时数据加33H,接收时数据减 33H。在后面的实例中,我们将以此协议做为学习方法。当然,在以后的工作中,我们自己也可以制定符合自身需要的网络通信协议,但要符合以下几种规则。由RS-485网络的传输特性决定,任何一刻在同一物理连接网络中,只能够存在一个发送节点。通常数据协议中包的格式由引导码、长度码、地
28、址码、命令码、数据、较验码、尾码组成。这样的协议在通信中,不会出现竟争的问题。二、相关知识SP485R 芯片是由业内专业的通讯接口器件厂商 Sipex 公司设计生产的高性能 RS-485 收发器,能够替换通用的 RS-485 收发器,并在许多方面有所增强。SP485R包含更高的ESD 保护和高接收器输入阻抗等性能。接收器输入高阻抗可以使 400 个收发器接到同一条传输线上又不会引起RS-485 发送器信号的衰减。各器件封装为8 脚塑料DIP 或8 脚窄SOIC。SP481R 通过使能管脚来提供关断功能,可将电源电流(I CC)降低到0.5A 以下。1、引脚说明,如图9所示。/ R ED ED
29、I G N DABV C C1 R O 接收器输出2 / R E 接收器输出使能 ( 低电平有效 )3 D E 发送器输出使能 ( 高电平有效 )4 D I 发送器输入8 V C C 正电源电压 6 A 发送器输出 / 接收器输入反相7 B 发送器输出 / 接收器输入反相5 G N D 地管脚名称 功能图9:485管脚图和管脚说明2、发送真值表输入 输出/RE DE DI 线状态 B AX 1 1 无错误 0 1X 1 0 无错误 1 0X 0 X X Z ZX 1 X 出错 Z Z3、接收真值表输入 输出/RE DE A-B R0 0 +0.2V 10 0 0.2V 00 0 输入开路 11
30、 0 X Z4、芯片性能说明RS-485 标准理想地用于多分支(multi-drop )应用中,一条总线可以连接多个发送器和/或接收器。RS-485 标准设备允许在一条数据线上连接 32 个收发器。RS-485 被规定在长达 4000 英尺电缆仍然保持高速度。SP485R 超过了标准 b 中的规定,允许 400 个接收器连接到同一条总线上。4.1、发送器发送器输出符合标准规定的 RS-485 电气特性。输出电压范围从 0V 到 VCC,而且在两个输出之间连接了 54负载的条件下,保证输出电压大于 +1.5V。为了遵从 RS-485 规范,发送器输出符合 RS-422 标准。若两个输出之间负载为
31、 100时,发送器输出可以保持在至少 +2.0V。发送器有一个使能管脚(DE) ,当 DE 为低电平时输出呈现三态。三态条件下输出为高阻抗(100k) 。DE 为高电平时发送器正常工作。发送器数据传输速率至少为 5Mbps。4.2、接收器SP485R 接收器的输入是差分输入,输入灵敏度小于200mV 。如前所述,RS-485 规范允许 32 个收发器连接到同一条总线上。由于输入阻抗高达至少 120k,SP485R 允许超过 400 个收发器连接到同一条总线上。电容越大,同一条总线上就允许连接更多的元件,而信号的质量不会受到任何影响。发送器仍可驱动 54的等效电阻,该等效电阻是 320 个接收器
32、的输入阻抗 120k(至少)和每端的 2 个 125的电缆终端电阻并联所得。接收器有一个使能管脚( RE ) ,低电平时可以令接收器使能。高电平会使接收器输出呈现三态,输入保证至少 120k 的阻抗。接收器数据传输速率至少为 1Mbps。接收器还有一个故障自动检测特性,当输入开路(与断开的电缆相连)时输出高电平。4.3、关断模式SP481R 的关断功能可以减少功耗。当 DE 为低电平,RE 为高电平时,关断模式被激活。在关断模式下,电源电流小于 1A。发送器输出禁能,并且由接收器输入阻抗(至少为 120k)决定为高阻态。接收器输出在关断模式下也是高阻抗。在接收器禁能情况下,输出漏电流低于 1A
33、。5、RS-485 接口芯片的其它厂商RS-485 接口的其它厂商 MAXIM 和 TEXAS INSTRUMENTS。三、实验目的掌握单片机对 RS-485 通信电路和软件设计方法。四、实现功能、通过两个 BCD 转 7 段编码器芯片(CD4511)分别驱动两位共阴极数码管,实现静态的显示方式。P1.0P1.3、P1.4P1.7 分别为两个 CD4511 输出数据的 BCD 码,通过按键提示改变数码管显示数据。 五、实验(一)、实验说明(实验的描述)本实验是为实现 RS-485 网络通信而设计的电路方案。此实验的各个模块都是同一电路,通过地址设置方式设置每个模块的通信地址,这种电路可以连接
34、256 个模块节点,在此,只用三块做为实验说明。如图 10 所示。模块包含五部分,分别是:数据显示部分、按键、地址设置、RS-485 通信模块和单片机(89C51)及外围电路。其中,单片机(89C51)和外围电路、显示电路、按键电路在以前的实验中都已经有详细的说明,在此不再进行说明。RS-485 电路在本方案中的作用是将 RS-232 串行信息转换成 RS-485 通信模式,与其它各节点通过双绞线进行连接。地址设置电路是 8 位键组成,可以设置对应 I/O 口的电平,高电平或低电平,CPU 通过读取 I/O 口的状态信息,就可以得知此模块被设置成的通信地址。在通信的过程中,接收并检测数据帧中的
35、地址信息是否与被设置的信息一致,如果一致,则接收帧后面的命令和数据信息,如果不和被设置的数据信息相同,则不接收帧以后的的数据,并保持接收状态。单片机 ( 8 9 C 5 1 )R S 4 8 5显示电路地址设置开关T X DR X D按键基本外围电路AB单片机(89C51)RS485显示电路地址设置开关TXDRXD按键基本外围电路A B单片机(89C51)RS485显示电路地址设置开关TXDRXD按键基本外围电路A BAB图 10:RS-485 通信网络方案图1、 通信协议设置在 RS-485网络通信之前,应当设置好通信协议,各个模块相互遵守标准的通信规则,才能有效的进行通信。对于使用 89C
36、51单片机做为 CPU时,应设置串行通信工作方式为方式 3,增加寄偶校验位。0 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 P 1开始数据校验停止图11:通信字节格式传送方向从低到高位,一个起始位、一个停止位、一个偶校验位、8 位数据位,总共11位。帧起始符地址 命令数据长度数据 校验 结束图12:网络数据帧格式地址域:地址范围为0 255,如果地址被设置成“0”,则此机为主控机,其它模块为从机。当地址位99H 时,为广播地址,同时当从控制器接收到一帧数据时,地址域相同时应响应命令,取得总线控制权,当响应命令之后,应把总线控制权归还给主控器。命令码:执行操作的依据。01H:
37、依次显示接收数据;02:“88H”闪烁方式显示。校验码:帧开始各个字节二进制算术和,不计溢出值。帧起始符:在发送信息之前,发送1个字节68H ,表示为此帧的数据。数据域:发送时数据加33H,接收时数据减 33H。结束码:15H、实验工具硬件:电脑、电源 DC5V、仿真器、烧写器、演示板、示波器软件:Keil51 编译器,Protel99SE、仿真器软件、烧写器软件、元器件列表名称 规格 数量 名称 规格 数量电解电容 470uF 2 数码管10UF/16V 1 二极管 IN4001瓷片电容 104 2 发光二极管33PF 2 DC 电源座 1电阻 47K 2 芯片 SP485 12K 3 CD
38、4511 210K 2 89C51 11K 4 三端稳压管 7805 1120 1 光电耦合器 PS2501 3复位按键 K1 1 晶振 11.0592M 1、原理图图 3:实验一 485 网络通信节点模块电路原理图原理图说明:实验一原理图是为实现单片机 89C51 通过 485 进行网络通信功能而设计的电路。电路中采用 DC9V 供电,7805 做为电路的稳压电源模块,电容 C1、C2、C3 和 C4 做为滤波电容;发光二极管D2 做为电源指示,R12 做为 D2 的限流分压电阻;电阻 R5 和按键 S1 组成按键电路,信号由 P3.2 输入;电容 C8、电容 C9 和晶振 Y2 组成单片机
39、外围晶振电路;电容 C10 和电容 R6 组成单片机的复位电路;U6(CD4511) 、U9(CD4511)和共阴数码管(U7 、U10)以及限流电阻组成静态显示电路;P1.0P1.3向 CD4511(U6)输出 BCD 码,P1.4P1.7 向 CD4511( U9)输出 BCD 码。R13 为单片机 U8(89C51)P0 口上拉排阻,S2 为模块节点通信地址的设置开关。U1(SP485)和其外围电路组成 TTL232-RS485 的转换电路, PS2051 做为光电耦合器,将通信的电信号分离,避免 485 网络的干扰。U1 的 A、B 通过 J1 和 RS485 网络进行连接。、软件流程图