(天津市航天安通电子科技有限公司 天津 300000)
摘要:单片机到现在为止已经经历了二十余年的发展历程了,它的优点是体积小、成本低、功能全面、便于开发并且具有良好的可靠性,同时因为C 语言迅速发展普及的帮助,单片机被广泛地使用在了工厂自动化、新产品研发以及很多控制领域中。但是因为单片机自身运算速度较慢这个缺点,它并不适用于那些对实时性、响应速度要求比较高以及控制数量多的情况中,所以单片机应用在高科技领域中最主要的模式为多机应用。
关键词:RS485通信方式;多单片机控制系统
如今单片机应用范围更加扩大,同时单片机系统具有开发简单、性价比良好的优点,将来的发展领域会更加广泛,本文对一种单片机控制系统进行了分析介绍,希望能对同行有所帮助。
1 RS485通信方式
电子工业协会和通讯工业协会共同制定和开发了RS485标准。目前,RS465已经成为多点差分数据传输的电气规范,这是行业内应用最广泛的标准通信接口。通常,从理论上来讲,标准的RS465只能接入32个设备,因为设备的数量会受到训片驱动能力的影响,当工作在半双工或全双工模式下,其最大传输距离为1200 多米,最大传输速率则为10Kbps.通常,RS465网络的传输媒体为平衡双绞线,它的长度与传输速率是成反比的,当传输速率为20Kbps时,传输距离才能最大化。一般来说,长度为15米的双绞线速率仅仅只有1Mbps,但是如果对于速率没有过高的要求,那么这样的传输速度对于控制系统来说已经足够了。单片机的多机应用系统可分为功能弥散系统、并行多机处理系统以及局部网络系统。本文中介绍的多单片机系统属于功能弥散系统,它是为了满足工程系统各种外围功能要求或为满足各子系统功能要求。
2 基于RS485通信方式的多单片机控制系统
(1)系统硬件设计。接口转换成RS485接口,这样就可以用Rs485总线进行长距离传输,并且是高速的异步串行通信。监控分站其实就是一个单片机,它就对应地采用RS485通信,这样只要选择相应芯片,将平串行接口转换为RS485串行接口,这是一种简单的转换,我们采用MAX485芯片。转换接头一端与计算机的标准RS232九针接口相连,另一端与RS485总线相连。在矿山设备监控系统中,是加上监控分站相连接,形成多机通信系统,这是一种主从式结构:主机,也就是控制多个从机,即监控分站,监控分站从不主动发送信息,因为它们是由主机控制的,在这个通信系统中,只有一台主机,就是数据采集的主机,各个监控分站之间也不相互通信,就算是有消息需要发送接收,也是通过先发送给主机,再由主机转发给监控分站。为了提高Rs485总线抗干扰的能力,我们设计采用的是在总线的末端接上一个匹配电阻,因为这个匹配电阻可以吸收总线上的反射信号,从而使真正的消息信号没有毛刺,这个匹配电阻的电阻大小需要与对应总线的特性阻抗一样。由于不传输信号时,就是总线处于悬浮状态时,很容易被干扰信号影响,对此我们采用的设计是,在总线上,选择一个10K欧姆的电阻,这样的话,即使存在其他信号干扰,串行通信的基本信号为。也不容易发生。
(2)通信协议设计。上位机可以跟任何一个监控分站进行通信,可以向监控分站发送命令,接收监控分站发送来的数据包,而监控分站只能和上位机进行通信,不能和其他下位监控分站相互通信,因为有很多个监控分站,而主机需要和多个监控分站进行通信,这里需要标识每个监控分站,所以需要为每个监控分站分配地址,这个地址编码用一个字节定义。
在本通信系统中,为了协调PC与监控分站的多机通信,我们需要利用监控分站中SCON中的多机通信控制位sM2,初始状态下,各监控分站都是当主机要和某监控分站通信时,就会以广播的方法,向所有下面的监控分站广播该监控分站的地址帧,这样,各监控分站就会把主机发送来的地址和自己的地址作比较,如果本监控分站的地址位与接收到的地址相等就把SM2置为o,并且建立与主机的通信信道,它就处于与主机进行通信的状态了,主机运行监控程序时,主机PC会以时间间隔对各个监控分站进行轮询,以查验各监控分站的状态,这样来依次向各个监控分站发送数据查询指令,主就是监控分站回复主机的查询指令。对每一个轮询到的监控分站,主机根据监控分站回复的查询指令查询相应的状态字来判断相应的监控分站是否有通信请求,要是没有就对该监控分站进行发送通讯授权标识,如果在规定的时间内有回复,那么主机就建立与该监控分站的通信信道;相反如果在规定时间限制内没有应答,那么就把该监控分站设置为不在线标识,并且轮询下个地址的监控分站,并且重复下去。主机与监控分站建立通信信道以后,主机要遵守主机指令优先的原则,根据各监控分站的状态字和主机的状态字,想监控分站发出准备接受信息指令。监控分站的动作包括建立信道,发送数据等,主机的动作包括轮询监控分站状态,接受监控分站数据等,在通信协议中,这些动作都要进行通信标识编码,如主机查询监控分站.状态指令通信标志编码。
(3)系统软件设计。通信系统软件采用Vc来编程进行实现,并且使用通信函数来管理串口通信,因为能把串口操作和文件操作统一起来的有Win32通信API,这样串口和系统里的各通信设备就是作为文件处理的,也就是说,打开,关闭,读取和写入串口用到的函数跟文件操作的函数一样的。软件设计中要考虑差错的控制,就是数据传输时,产生了失真或者丢失的数据位,系统需要具备检错和纠错的能力,以保证数据传输的准确性。例如当主机发出轮询帧后,在一定的预定时间限制内没有收到一个监控分站的应答帧,那么主机就认为是数据帧丢失并重新再发数据帧;要是连续发送3次依旧没收到相应的应答帧,那么主机和通信系统都会认为监控分站处于关机状态,并且开始执行其他操作。本通信系统在数据帧发送时采用应答方式来进行差错控制,即接收端向发送端回复特殊的控制命令码,用来确认传输是否正确,这样发送端就可以在收到确认以后就能确认是否正确发送并判断是否需要重新发送,还有就是传输中数据帧已经完全丢失,那么发送端就会进行超时处理,如主机端发送数据给监控分站,规定时间内没有回复,则认为是数据帧完全丢失并且重新发送。本通信系统规定3为最大的重发次数,如果超过3次,系统就判定通信设备出现故障,系统进行故障报警。还有一点就是需要避免通信频繁后,旧数据还没发送出去,生成新数据时,有可能会冲洗掉旧的数据从而造成数据丢失,在本通信系统中,我们设计采用数据备份存储的办法,即把数据长度为N的数据存储缓冲区,增大长度,设置为2N,需要发送的心的数据放在之前的缓冲区,判断旧的数据发送成功与否,假如发送成功就把新的数据复制到扩展缓冲区;要是没发送出去就继续发送,直到发送成功后再备份新数据。要是终端数据进来的话,也只更新之前的缓冲区,备份缓冲区数据就不会因为中断数据进来而被冲洗掉。这些方法很好地解决数据通信过程中数据丢失和失真的问题,系统具备了检错和纠错的能力,使通信系统的可靠性大大提高。
本文通信协议的设计,硬件选择和软件设计等方面,并且在设备监控系统使用过程中出现的问题,如传输错误、总线隔离、失效保护等问题采取相应措施进行有效预防。
参考文献:
[1]汪铭东,沈德刚,梅广辉等.PC 机与单片机多机主从互通的实现[J].现代电子技术,2016,(22):57-59.
[2]胡中功,黄波,江维等.基于RS485 总线的PC 与单片机多机通信系统设计[J].自动化与仪器仪表,2018,(1):30-31,35.
[3]胡建国,罗勇武.基于RS485 的单片机和变频器通信控制多电机研究[J].机床与液压,2018,(22):139-141.