基于航顺芯片HK32F103的CAN的驱动应用

本文详细介绍了航顺HK32F103系列MCU的型号及选型表,提供与STM32系列的替代方案,包括HK32F030MF4U6、HK32F0301MF4P6等型号,详细阐述了其在CAN驱动应用中的使用,并讨论了与STM32如STM32F103RBT6的兼容性。
摘要由CSDN通过智能技术生成
航顺芯片HK32F103系列是一款功能强大的32bit MCU,内部集成多个通信模块,其中CAN模块支持CAN协议2.0A和2.0B。目前广泛应用的是CAN 2.0B协议,其收发数据速度高达1Mbps,有两种不同长度的ID标识符,一种是11位的,一种是29位的。该CAN协议的主要特点为:
(1) 多主控制:
在总线空闲时,所有的单元都可开始发送消息。
(2) 消息的发送:
        在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符( Identifier 以下称为 ID)决定优先级。 ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。即多个单元同时开始发送时,发送高优先级 ID 消息的单元可获得发送权。
(3) 系统的柔软性:
        与总线相连的CAN节点没有类似于“地址”的信息。因此在总线上增加CAN节点时,连接在总线上的其它CAN节点的软硬件及应用层都不需要改变。
(4) 通信速度:
        根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有CAN节点必须设定成统一的通信速度。即使有一个CAN节点的通信速度与其它的不一样,此CAN节点也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
(5) 远程数据请求:
        可通过发送“遥控帧” 请求其他CAN节点发送数据。
(6) 错误检测功能·错误通知功能·错误恢复功能:
        所有的CAN节点都可以检测错误(错误检测功能)。
检测出错误的CAN节点会立即同时通知其他所有CAN节点(错误通知功能)。
正在发送消息的CAN节点一旦检测出错误,会强制结束当前的发送。强制结束发送的CAN
节点会不断反复重新发送此消息直到成功发送为止(错误恢复功能)。
(7) 故障封闭:
        CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的CAN节点从总线上隔离出去。
(8) 位填充: CAN通信的同步信息包含于传输数据中,电平的跳转提供了同步信息,如果连续多个相同的总线值出现,这将影响到同步信息的提取。为此CAN采用位填充规则,即在一帧中的帧起始,仲裁场,控制场,数据场和CRC场部分( CRC界定符,应答帧和帧结束除外),当发送器检测到5个具有相同数值的连续位时,将自动插入一个补码位。接收节点收到5个连续位后下一位自动删除。
(9) 连接:
        CAN 总线是可同时连接多个CAN节点的总线。可连接的节点总数理论上是没有限制的。但实际上可连接的节点数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的CAN节点数增加;提高通信速度,则可连接的CAN节点数减少。如下是CAN通信速度和距离对应图:

(9) CAN总线物理框架可以抽象为:
MCU(微处理器) <--> CAN控制器 <--> CAN收发器 <--> CAN数据传输总线(CAN-H,CAN-L)。如下图示:

CAN总线的数据传输线——>两条双向数据线,分为高位﹝CAN-H﹞和低位﹝CAN-L﹞数据线, 为了防止外界电磁波干扰和向外辐射,两条数据线缠绕在一起,要求至少每 2.5cm 就要扭绞一次,两条线上的电位是相反的,电压的和总等于常值。
CAN总线的终端电阻——>防止数据在到达线路终端后象回声一样返回,并因此而干扰原始数据,从而保证了数据的正确传送,终端电阻装在控制单元内。
CAN总线帧类型:
        数据帧-Data frame
        携带数据从发送节点到接收节点。
        分为标准帧(11位标识符)和扩展帧(29位标识符)。

        远程帧-Remote frame
向其他节点请求发送具有同一标识符的数据帧, 远程帧也有标准帧和扩展帧两种格式。

例如CAN节点A需要知道CAN节点B的油温温度,CAN节点A发送一个远程帧给节点B,节点B收到该远程帧后发送一个带油温数据的数据帧给节点A。

航顺芯片MCU型号,料号选型表HK32F030MF4U6&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值