2 交通灯控制网络硬件电路设计
2.1 硬件电路
城市交通控制系统是一个联动的系统,所有路口的交通灯控制系统由一台中心主机控制,当某一路口将出现紧急情况时(如交通管制、交通堵塞、路段维修等),单击中心主机的对应按钮即可使该路口的所有红灯亮,禁止所有普通车辆通行。本文利用Proteus软件仿真设计了
一台主机控制两台从机的主从式多机系统,实施时可以扩展到253台主机,硬件电路如图2所示。单片机U1为主机,U2、U3为从机,代表两个路口的控制机,S1、S2为按钮,分别与U1的P1.1、P1.0连接,当按下时分别控制两个路口的交通信号灯为所有红灯亮,表示该路口出现紧急情况。与主机U1相连的两个BCD数码管用于显示从机接收到的响应帧,即出现紧急情况的路口地址号,如果接收到的响应帧传送出现错误,与主机发出的地址号不同时,这两个数码管显示FF,当S1和S2没有按下时,这两个数码管也显示FF。
由于串行口通信时传输的“0”或者“1”是通过相对于“地”的电压区分的,因此使用串行口通信时,必须将主、从机的“地”线相连以使其具有相同的电压参考点。
2.2 通信协议
多机通信是一个复杂的通信过程,必须有通信协议来保证多机通信的可操作性和操作秩序,实现收/发双方的响应与协调。这些通信协议,至少应包括从机的地址、主机的控制命令、从机的响应帧格式和数据通信格式等的约定,本文建立交通灯控制网络系统的通信协议。
3 软件程序的设计
3.1 主机程序设计
主机主要负责呼叫从机,发送控制命令以及从机响应帧的接收,数据的显示等功能。为了保证主、从机之间握手的成功,主机采用查询方式发送和接收数据,串行口的工作方式设置为方式2,SMOD=0。
3.2 从机程序设计
从机循环运行交通灯控制程序,交通灯控制程序利用定时器/计数器0实现定时,为了能正常和主机通信,从机的串行口也工作于方式2,SMOD=0,以保持和主机相同的波特率。由于主机呼叫从机时发送的地址帧与命令帧没有重复,为了使程序简单,本文针对从机接收到主机发来的数据后不通过第九位数据来判断是地址帧还是命令帧。对接收到的数据如果与本机地址相等则表明是地址帧,立即向主机发送自己的地址作为响应信号;如果是命令则按命令执行相关操作(所有路口红机亮或恢复交通灯信号);如果既不与本机地址相等也不是两个命令之一,则认为该数据不是发送给本机的,该机继续监听,从机U2串行口接收和发送
上一篇:高压固态软启动器