应用笔记 1063

用微控制器实现RS-485系统的地址识别


摘要 : 本应用笔记介绍了一个构成RS-485从机数据收发器的简单电路,能够识别它的分配地址。电路仅需要三片IC:一只微控制器、一个微小的UART和一只RS-485收发器。本文还提供了启动软件。

RS-485数据接口标准与RS-232标准相比,一个突出的优点就是能够构成多点通讯网络。这种网络通常可传输9位数据字,第9位(极性位)用于识别地址或数据。

IC1是一个不含硬件通用异步收发器(UART)的小型微控制器,使用时需要确定外接UART元件还是通过软件自己写UART。外扩UART会增加电路板面积、复杂度及成本,而且现有的外部UART器件也不合适小型µC系统。另一方面,留出用于软件UART编程所需的空闲程序存储器和处理器资源也是较为困难的,例如IC1的程序存储器是只有1K × 14位的EEPROM。可以解决上述问题的第三方案是选用低成本的外扩UART (IC2),该器件尺寸小,能够省出被软件UART占用的程序存储器。

图1所示的RS-485总线能够挂接最多256个收发模块,IC3是RS-485收发器,IC4是“µC监控电路”,当电源失效时将µC保持在复位状态。µC的汇编语言程序可以从Maxim网站下载。

图1. RS-485网络可挂接最多256个从机收发器,为RS-485收发器(IC3)增加一个小型UART (IC2)和µC (IC1),即可构成能够响应自身网络地址的从机数据收发模块。
图1. RS-485网络可挂接最多256个从机收发器,为RS-485收发器(IC3)增加一个小型UART (IC2)和µC (IC1),即可构成能够响应自身网络地址的从机数据收发模块。

图中所示的配置为从机测试电路,通过修改编码使其适用于任何RS-485地址识别应用,电路工作过程为:

地址通过总线传输后,每个从机模块中的IC2产生一次中断。然后,每个模块内的IC1读取内部FIFO的所有数据,并锁存地址字,将该地址与8位DIP开关设置的地址进行比较。匹配时从机将清除中断并发送(至主机) ASCII “A”(十六进制41),随后是其自身的地址。如果从机模块读取的FIFO内容与地址不匹配,则清除当前的地址字中断,等待下一次中断。

类似文章发表在2001年11月11日的EDN杂志上。