完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F105是STM icroe lectron ics公司推出的一款基于ARM Co rtex- M3内核的32位微控制器, 其内核是专门设计于满足高性能、低功耗、实时应用的嵌入式领域的要求。由于采用Thumb - 2指令集,与ARM7微控制器相比STM32运行速度最多可快35% 且代码最多节省45% 。较高的主频和代码执行效率使系统在进行CAN 总线数据收发的同时仍可运行总线冗余算法。STM32F105微控制器内部集成2路独立的CAN 控制器, 控制器集成在芯片内部, 避免了总线外扩引入的干扰, 同时简化了电路设计、降低成本。
系统使用两条完全独立的CAN 总线, 两个CAN 总线收发器和总线控制器, 实现物理层、数据链路层的全面冗余。在初始化时两个控制器被同时激活, 一个作为主CAN, 另一个作为从CAN, 为主控制器的备份。正常运作时, 数据通过主CAN 优先发送; 当主CAN 总线繁忙时, 从CAN 总线分担部分通信流量; 而当主CAN 总线发生故障时, 数据转移至从CAN 控制器传输, 反之亦然。在任一总线发生故障时,数据都能经由另一条总线传输, 而当两条总线都正常时, 使用两总线同时传输, 增加约1倍的通信带宽,这样在保证了通信可靠性的同时提高了实时性。所使用双总线负载均衡技术, 可以提高总线带宽, 平衡通信负荷。 CAN 协议规范定义的数据链路层和部分物理层并不完整, 双CAN 冗余应用需要实现总线状态监控、网络故障的诊断和标识, 这就要通过添加软件冗余模块来实现。冗余模块在程序主循环中调用, 根据不同总线错误状态执行收发通道切换。CAN 总线错误状态分为3类: 错误激活、错误认可、总线关闭。总线正常工作时处于错误激活状态,控制器检测到错误后将发送/接收错误计数器的值递增, 当值大于127时进入错误认可, 大于255时总线关闭状态, CAN 总线错误检测模块通过读取错误状态寄存器作为总线故障的测试条件, 在错误状态发生改变时调用冗余算法, 执行总线切换操作。
|
|
相关推荐
|
|
![]() |
|
|
|
|
|
rdyhryrydeyftiuo余热余热毒一地方
|
|
|
|
|
|
好
|
|
|
|
|
|
870 浏览 0 评论
使用stm32l451片子,对ad7606进行3通道100k采样值跳动问题?
1372 浏览 1 评论
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1822 浏览 2 评论
2115 浏览 3 评论
1705 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-3 09:23 , Processed in 0.598137 second(s), Total 58, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191