基于STM32F105微控制器的双CAN冗余设计方案
双线CAN 冗余系统的另一关键指标是总线切换时间, 它等于检测错误所需时间与处理故障总线未发送报文所需时间之和, 切换时间越短, 总线故障对报文传输造成的延迟就越小。检测错误所需时间,即从总线错误出现到被冗余程序检测到所需的时间。以总线断开故障为例, 发送器每发送一个报文产生一次应答错误, 错误计数器每次加8, 需连续进行16次发送, 使错误计数器值达到128引起总线切换。在位速率125kbps情况下, 发送最长为128位的报文, 若忽略控制器重发间隔时间, 从故障发生到被检测到的响应时间为:
为避免在总线切换时丢失报文, 冗余算法需回读故障控制器中未发送报文, 由此产生额外的故障处理时间, 因为每个发送邮箱最多存储3个报文, 假定位速率125kbps不变, 备份总线发送时即取得仲裁,最长故障处理时间为:
因此总线切换时间为16. 38+ 3. 07= 19. 45m s。
通过实验测得在125kbps位速率下连续发送不同报文长度的总线切换时间如表1所示:
表1 总线切换时间
在125kbps位速率下切换时间为22. 80ms, 比理论计算值稍长, 这是由总线切换时运行冗余算法及读取控制器错误寄存器( ESR)所额外消耗的, 但在实际应用中, 发送报文获取仲裁所需的等待时间远大于切换时间, 总线故障并不频繁发生, 冗余切换算法对系统的运行并无显着影响。
4 结束语
与传统单片机总线外扩两片CAN 控制器的冗余方案相比, 本设计充分利用STM32F105微控制器内置的两路CAN 控制器, 简化电路设计, 相对降低了成本, 同时双CAN 冗余通信系统的采用提高了系统整体可靠性。所使用双总线负载均衡技术, 可以提高总线带宽, 平衡通信负荷。系统船舶机舱监控系统的图像和数据信号的传输中取得很好的效果。
pid控制器相关文章:pid控制器原理
评论