基于CAN现场总线技术的船舶电站监控系统设计
分控制命令帧由于标识符优先级的原因而丢失SJA1000 控制器的仲裁,虽然SJA1000 具有丢失仲裁后的自动重新发送该报文的功能,但该控制命令帧仍然存在发送失败的可能性,最终导致控制功能的失效。CAN 协议帧优先晋升方案能够大大降低上述情况发生的可能性,为实现控制命令帧发送时在丢失仲裁后重发的优先级晋升,则必须禁止MAC 子层的自动重发功能,由应用层来实现报文的重发。该系统采用Philips 公司的SJA1000 作为CAN 网络控制器,可以通过在报文发送时设置其命令寄存器的第0、1 位禁止其自动重发功能,改为单次发送。
起动发送报文之后,MCU 须判断该网络节点是否已经成功发送了一条报文或者报文发送失败:首先,当SJA1000 中断寄存器出现了仲裁丢失中断或者发送中断,表明该节点已经处理完了一条报文,但是仍然不知道是否发送成功。如果成功,中断寄存器就没有仲裁丢失中断,但是会产生发送中断,因为发送成功后发送缓冲区会释放。如果发送不成功,一定是与较高优先级的协议帧竞争的结果,所以会有仲裁丢失中断。但是改为单次发送后,发送失败以后也会释放缓冲区,因此将同时产生仲裁丢失中断以及发送中断。在得到节点已经处理完一条报文后,只要用以上的规则进行判断就能知道上一条报文是否发送成功,也就是用来判断是否需要晋升节点所发送信息帧的优先级并重发该帧。
控制网络的标识符划分为三个部分,其中标识符的第 21 至28 位用于协议帧优先晋升,这部分标识仅表示协议帧的优先级,它由调度机制分配给协议帧的优先级的变化而变化,设Pi=(2n-1)-kt,Pi 项为当前控制命令协议帧的优先级,(2n-1)代表其优先级队列的初始值,即为队尾;n 为优先级队列的二进制数,BIT28:21 共有8 位数,所以这一项数值为0FFH。kt表示优先级晋升项,t 为首次发送以来协议帧丢失仲裁的次数,k 为晋升权重,k 取值越大协议帧优先晋升速度就越快(该系统中取k=1)。由此可见,当某协议帧第一次发送时,Pi=0FFH,当它在发送时与其他协议帧碰撞并失去仲裁时,退出发送并且置Pi=0FEH 重新发送,因为此时其优先级高于其他协议帧,在整个网络中如果没有其他和它具有相同优先级的协议帧同时发送时,即使与其他第一次发送的协议帧碰撞,也会赢得仲裁,所以增大了该帧发送成功的概率。下图为报文优先级晋升控制流程:
图 2 报文优先级晋升控制流程
除此之外,系统具有控制参数在线修改的功能(如修改系统参数)。参数修改命令由上位机发出修改帧,能量管理控制器接收后进行操作执行。当进行在线控制参数修改时,能量管理控制器将发出广播消息通知控制网络所有节点禁止所有控制动作的输出,以防止意外情况的发生。
在进行参数的下载修改过程中,为避免修改帧发送失败或丢失,从而导致系统参数混乱,甚至导致系统瘫痪的情况发生,使用帧标识符的第11、12 位表征修改帧的结构类型:单帧、非结束多帧和结束多帧。当待修改的参数数量较 少,单个协议帧能够包含所有修改信息时,能量管理控制器接收到来自上位机的修改帧,并判断该修改帧为单帧标识后,则立即进行参数存储空间的修改;若待修改的参数较多,单个协议帧无法包括所有待修改数据时,上位机首先发出部分修改帧使用非结束多帧标识,发送至最后一个修改帧时,标记为结束多帧。功率管理模块只有在将全部待修改的参数接收完毕(即收到结束多帧标识)之后,才开始对相应参数存储空间进行数据修改的操作。完成操作之后,能量管理控制器再将相应存储空间修改完毕的数据发送反馈至上位机,进行握手确认。采用以上系统参数修改机制同时结合协议帧优先晋升方案,大幅提升了电站重要参数修改的可靠性。
4 结束语
船舶电站监控系统网络通信的实现,节省了大量的现场线缆,整个系统便于调试。网络数据传输过程中使用的协议帧优先级晋升算法机制等处理方案以及双冗余的网络硬件结构,提高了现场总线网络的可靠性和稳定性。
- Power-One通信电源监控系统通信协议破解(12-07)
- 基于zigBee技术的路灯节能监控系统(11-11)
- 基于单片机的通信电源监控系统设计与实现(08-24)
- 电源:浅谈动力环境集中监控系统的应用和发展(08-07)
- 基于VC++光伏逆变器监控系统的设计和实现(05-09)
- 机车视频监控系统的设计与实现(04-29)