利用RS-485实现多路温度测量
主机的按键是行列线组成的2输入4输出结构形式,采用定时扫描,利用MCU内部的定时器产生10ms定时中断,CPU响应中断时对键盘进行扫描,并在有键按下时识别出该键并执行相应的键功能程序。
本文引用地址://m.amcfsurvey.com/article/106708.htm从机采用Atmel公司的ATMEG16L-8AI作为处理器,该芯片具有16k的ISP-FLASH、512B的EEPROM、1k的SRAM,该芯片同样可以在系统编程,该芯片具有8路10位A/D转换器,当采样的基准电压为5V时,系统的采样精度可达到5毫伏每字,即基准电压变化5毫伏,采样的数字量变化1个字。
从机模块主要完成8路温度采样、与主机的通讯、硬件地址编码,从机功能框图如图3。每个从机模块有个地址编码跳线器,由硬件完成对该模块的地址编码。这样在扩张时,将每个模块的地址唯一确定,不会由于通讯地址的重复造成通讯的不成功。我们采用的RS-485芯片最多可以负载32个从机模块,RS-485芯片采用Maxim公司的MAX483CPA。不同的RS-485芯片,其负载能力不同,有的RS-485芯片如MAX487可以带120个负载,MAX1487能够将负载数量扩大到230个。
RS-485串行通讯
在工程实践当中,多点数据采集系统的网络拓扑一般采用总线方式,传送数据采用主从机结构的方法。
RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10kb/s速率传输数据时传输距离可达12m,而用100kb/s时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。本系统的波特率设置为2400b/s。
图1就是用RS-485构成的总线型网络系统,采用主从方式进行多机通信。主机采用8位微处理器ATMEG128L,从机采用ATMEG16L。每个从机通过地址编码拥有自己固定的地址,由主机控制完成网上的每一次通信。图4是MAX485和微处理器的接口电路,A、B为RS-485总线接口,D是发送端,R为接收端,分别与单片机串行口的TXD、RXD连接,由于采用半双工通讯,所以还有收发控制端,MAX485的RE、DE为收发使能端,由微处理器的 PE4(主机)、PC5(从机)口作为收发控制。该控制口高电平时,MAX485处于发送状态,将微处理器TXD处的数据经A、B差分送出到RS-485的总线上;当该控制口为低电平时,MAX485处于接受状态,将RS-485总线上的差分信号转换成TTL电平的信号由R端输出到微处理器的RXD端。当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。应将总线上差分信号的正端A+和+5V电源间接一个10KW电阻;正端A+和负端B-间接一个10KW电阻;负端B-和地间接一个10KW电阻,形成一个电阻网络。当总线上没有信号传输时,正端A+的电平大约为3.2V,负端B-的电平大约为1.6V,即使有干扰信号,却很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。
评论