51单片机与RS485应用电路图

发表于:2022-06-26 04:49:47 来源:8亿彩最新版 作者:8亿彩app下载

  在应用系统中,RS-485半双工异步通信总线是被各个研发机构广泛使用的数据通信总

  由于实际应用系统中,往往分散控制单元数量较多,分布较远,现场存在各种干扰,所

  以通信的可靠性不高,再加上软硬件设计的不完善,使得实际工程应用中如何保障RS-485总

  在使用RS-485总线时,如果简单地按常规方式设计电路,在实际工程中可能有以下两个问

  题出现。一是通信数据收发的可靠性问题;二是在多机通信方式下,一个节点的故障(如死

  现以8031单片机自带的异步通信口,外接75176芯片转换成485总线为例。其中为了实现

  总线与单片机系统的隔离,在8031的异步通信口与75176之间采用光耦隔离。电路原理图如

  统上电或复位又常常不在同一个时刻完成。如果在此时某个75176的DE端电位为“1”,那

  么它的485总线输出将会处于发送状态,也就是占用了通信总线,这样其它的分机就无法与

  主机进行通信。这种情况尤其表现在某个分机出现异常情况下(死机),会使整个系统通信

  崩溃。因此在电路设计时,应保证系统上电复位时75176的DE端电位为“0”。由于8031在复

  位期间,I/O口输出高电平,故图2电路的接法有效地解决复位期间分机“咬”总线 隔离光耦电路的参数选取

  在应用系统中,由于要对现场情况进行实时监控及响应,通信数据的波特率往往做得较

  处采用TIL117。电路设计中可以考虑采用高速光耦,如6N137、6N136等芯片,也可以优化普

  通光耦电路参数的设计,使之能工作在最佳状态。例如:电阻R2、R3如果选取得较大,将会

  使光耦的发光管由截止进入饱和变得较慢;如果选取得过小,退出饱和也会很慢,所以这两

  只电阻的数值要精心选取,不同型号的光耦及驱动电路使得这两个电阻的数值略有差异,这

  比较复杂,现场常有各种形式的干扰源,所以485总线的传输端一定要加有保护措施。在电路设计中采用稳压管D1、D2组成的吸收回路,也可以选用能够抗浪涌的TVS瞬态杂波抑制器件,或者直接选用能抗雷击的485芯片(如SN75LBC184等)。

  考虑到线路的特殊情况(如某一台分机的485芯片被击穿短路),为防止总线中其它分

  机的通信受到影响,在75176的485信号输出端串联了两个20的电阻R10、R11。这样本机的

  信帧的起始引起工作不正常。解决这个问题的办法是人为地使A端电位高于B两端电位,这样

  RXD的电平在485总线不发送期间(总线悬浮时)呈现唯一的高电平,8031单片机就不会被误

  中断而收到乱字符。通过在485电路的A、B输出端加接上拉、下拉电阻R7、R9,即可很好地

  线,在某一个时刻,总线只可能呈现一种状态,所以这种方式一般适用于主机对分机的查询方式通信,总线上必然有一台始终处于主机地位的设备在巡检其它的分机,所以需要制定一套合理的通信协议来协调总线的分时共用。这里采用的是数据包通信方式。通信数据是成帧

  成包发送的,每包数据都有引导码、长度码、地址码、命令码、内容、校验码等部分组成。

  其中引导码是用于同步每一包数据的引导头;长度码是这一包数据的总长度;命令码是主机

  对分机(或分机应答主机)的控制命令;地址码是分机的本机地址号;“内容”是这一包数

  据里的各种信息;校验码是这一包数据的校验标志,可以采用奇偶校验、和校验等不同的方

  在485芯片的通信中,尤其要注意对485控制端DE的软件编程。为了可靠的工作,在485

  总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先

  1ms后,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。

  的环境条件下,24小时连续开机,系统的通信始终处于正常状态,整机性能满足了现场工程

  但是RS-485总线仍然只是一种常规的通信总线,它不能够做总线的自动仲裁,也就是不

  能够同时发送数据以避免总线竞争,所以整个系统的通信效率必然较低,数据的冗余量较

  主机,所以这种总线方式是典型的集中-分散型控制系统。一旦主机出现故障,会使整个系

  尽管RS-485总线存在这样那样的问题,但由于它的线路设计简单、价格低廉、控制方