根据防撞摆闸系统功能需求,设备控制模块需要实现与多个外部设备的串口协议通讯,从而实现对设备的控制和数据反馈。模块通过对自定义协议进行封装,在模块内部实现数据收发的控制管理,然后提供函数接口供相关模块调用,防撞摆闸系统设备控制模块需具有通讯稳定、可靠的特点。
防撞摆闸系统设备控制模块设计:
1.数据帧定义
防撞摆闸的设备控制模块与IO模块、通行算法模块间的通讯采用主从通讯模式,主动发起通讯的为命令帧、命令的接收方回复对应的应答帧,设备控制模块与硬件之间互为主从。根据防撞摆闸需求需要实现串口通讯的稳定性,因此需要定义可靠的通讯协议来实现两者之间的通讯,分为命令帧和应答帧,
2.收发控制流程
防撞摆闸控制系统与硬件部件之间通讯采用主从方式,双方互为主从关系,现在以控制系统为主设备为例介绍详细的收发流程,当外部模块调用设备控制函数接口后将参数传递给接口函数,接口函数实现协议命令帧的组帧并将数据加入数据发送队列。防撞摆闸的数据检测定时器检测到有数据时取出一帧数据,同时启动发送控制定时器进行数据发送控制,从
摆闸收到数据后将回复数据发送到串口,收发接口将数据加入接收队列,数据接收控制处理流程从接收队列取出数据并终止发送控制定时器,同时接口函数返回。
3.异常处理
由于防撞摆闸的串口通讯容易受到外部干扰等影响出现通讯不稳定的情况,对在数据发送过程中对出现的如:应答响应超时、帧序号错误、CRC校验错误等情况进行数据重发,由定时器触发定时重发送数据,当超过防撞摆闸设定重发次数时退出。