基于RS485单片机多机串行通信的电子开关设计
2.1.5 主从机之间地址确认
主从机在进行数据通信之前,首先进行地址确认,其目的就是让主机知道哪号从机向主机发送数据。主机首先发送n号从机地址编号#0FFH,所有从机接收到主机发送的地址后与各自的地址进行核对,地址不是#OFFH的从机将继续等待主机的呼叫,核对正确的从机向主机发送本机的应答地址,主机收到从机的应答地址后进一步做出判断,确认是否是n号从机的地址。地址确认正确之后,主机与n号从机进行数据通信,直到数据通信完毕,主机将呼叫下一号从机。
2.1.6 避免多从机与主机通信产生数据冲突
一个主机与多个从机进行串行通信的时候,如果当某一从机有数据时向主机发送,这时可能出现两个,三个或者更多从机同时产生数据,需要同时向主机发送,这样就会导致数据通信的冲突问题。该电子开关的设计采用主机轮询从机的方式,从而有效避免了主从机数据通信冲突的问题,主机先呼叫n号从机,地址确认之后,是n号的从机应答并与主机进行通信,其余从机处于等待状态,主机接收n号从机数据,并判断该从机是否继续有数据发送,此时其他从机若有数据只能处于排队等待中,不会对主机产生干扰,主机接收完毕后将n号从机地址减1,呼叫n-1号从机,如此反复轮询各个从机。主机轮询的过程是很快的,从机检测到被测信号的时候也能得到及时的处理。如图2所示。
2.2 多RS 485串行通信模块
RS 485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A,B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。如果以10 Kb/s速率传输数据时传输距离可达12 m,而用100 Kb/s速率传输数据时传输距离可达1.2 km。如果降低波特率,传输距离还可进一步提高。
实现RS 485串行通信只需给主机和每个从机接各接一片MAX485芯片,其接收器的输出端RO和驱动器的输入端DI,只需分别与单片机的RXD和TXD相连即可;和DE端分别为接收和发送的使能端,当为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;在主机电子开关中使用单片机的P3.4引脚控制MAX485的和DE两端,如图3所示。
A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。
可靠性措施如下:
复位时,主从机都应该处于接收状态。
控制端,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。
同时将A和B端之间加匹配电阻,一般可选120 Ω的电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应与总线的特性阻抗相当。
接收和发送的使能端和DE的引脚控制在程序中的实现,主机部分程序如下:
2.3 液晶显示模块
液晶显示模块选用1602液晶,1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。电子开关上使用1602液晶显示,是用来显示发送信号数据的从机编号,某一从机检测到信号时将会显示:
行程开关相关文章:行程开关原理
评论