今天小编要和大家分享的是接口,总线,驱动相关信息,接下来我将从基于STM32F105微控制器的CAN接口电路设计,candy can/tin这几个方面来介绍。

接口,总线,驱动相关技术文章基于STM32F105微控制器的CAN接口电路设计candy can/tin

接口,总线,驱动相关技术文章基于STM32F105微控制器的CAN接口电路设计

控制器局域网( ControllerA reaN etwork, CAN)是一种多主方式的串行通讯总线。CAN 总线具有较高的位速率, 很强的抗电磁干扰性, 完善的错误检测机制, 在汽车、制造业以及航空工业领域中得到广泛应用 。由于船舶机舱环境极为恶劣, 且船舶航行过程中维修条件不如陆上, 对CAN 通信的可靠性要求很高, 采取双CAN 冗余总线提高通信可靠性。

1 硬件平台组成

STM32F105是STM icroe lectron ics公司推出的一款基于ARM Cortex- M3内核的32位微控制器, 其内核是专门设计于满足高性能、低功耗、实时应用的嵌入式领域的要求。由于采用Thumb - 2指令集,与ARM7微控制器相比STM32运行速度最多可快35% 且代码最多节省45% 。较高的主频和代码执行效率使系统在进行CAN 总线数据收发的同时仍可运行总线冗余算法。STM32F105微控制器内部集成2路独立的CAN 控制器, 控制器集成在芯片内部, 避免了总线外扩引入的干扰, 同时简化了电路设计、降低成本。

系统使用两条完全独立的CAN 总线, 两个CAN 总线收发器和总线控制器, 实现物理层、数据链路层的全面冗余。在初始化时两个控制器被同时激活, 一个作为主CAN, 另一个作为从CAN, 为主控制器的备份。正常运作时, 数据通过主CAN 优先发送; 当主CAN 总线繁忙时, 从CAN 总线分担部分通信流量; 而当主CAN 总线发生故障时, 数据转移至从CAN 控制器传输, 反之亦然。在任一总线发生故障时,数据都能经由另一条总线传输, 而当两条总线都正常时, 使用两总线同时传输, 增加约1倍的通信带宽,这样在保证了通信可靠性的同时提高了实时性。

CAN 总线接口电路设计如图1所示, 使用T JA1050作为总线收发器, 它完成CAN 控制器与物理总线之间的电平转换和差动收发。尽管TJA1050本身具备一定的保护能力, 但其与总线接口部分还是采用一定的安全和抗干扰措施; T JA1050的CANH 和CANL与地之间并联两只10pF的小电容, 可以滤除总线上的高频干扰; 另外, 为了增强CAN 总线节点的抗干扰能力, 总线输入端与地之间分别接入一只瞬态抑制二极管, 当两输入与地之间出现瞬变干扰时, 收发器输入端电压被钳位在安全范围。