本帖最后由 逍遥鱼321 于 2023-8-30 10:46 编辑
前言:
最近比较频繁的涉及到CAN接口的设计,特查阅资料并总结下CAN相关的硬件设计,当给自己做个笔记。此次设计的CAN接口电路控制器为极海的APM32F103RCT6内置的CAN控制器,收发器IC为NXP的TJA1042T/3。
一、简介:
CAN是控制器局域网络 controller Area Network的缩写,是ISO国际标准化的串行通信协议,能实现分布式实时控制的半双工通信,广泛应用于汽车行业。1983年由德国博世公司开发,并于1986年正式发布。1993年ISO发布CAN总线标准。
二、CAN总线协议介绍: CAN总线协议有CAN1.0、CAN2.0,其中CAN2.0相对于CAN1.0来说,主要增加了CAN的扩展帧定义,现在我们说的CAN通信通常是指CAN2.0。CAN-FD协议在原有的CAN协议基础上,增加了可变波特率、扩大数据场、提升校验算法安全性等改进。
三、CAN的物理通信形式: 通过两条通信线(双绞线)产生的电压差传输数据,一个CAN网络里的所有节点都挂在这两条通信线上,使用差分信号半双工通信。 (1)CAN的物理连接方式:
注:CAN总线理论上可以连接110个节点,但是限于总线的带宽,连接的设备数目要根据实际使用而定,当连接的数目过多时,总线带宽不足会使设备之间的通信延迟,从而影响整个系统的响应速度。
(2)CAN的通信电平:单片机的串行信号经过CAN收发器芯片可以转换为差分信号,CAN 使用称为 CANH / CANL 的通信线路执行传输和接收。当CANH和CANL的压差为0V时表示为隐性信号,代表逻辑1;当CANH和CANL的压差为2V时表示为显性信号,代表逻辑0。如果通信总线上发生显性和隐性冲突,则显性优先。总线空闲时保持隐性。 信号传输时的物理层电平如图:
(3)CAN的帧格式:CAN协议中的帧格式由数据帧、遥控帧、错误帧、过载帧和帧间隔组成。其中数据帧和遥控帧有标准格式和扩展格式两种,标准格式有 11 位标识符(ID),扩展格式有 29个标识符(ID)。帧的作用如表格所示:
四、接口电路设计 APM32F103RCT6内置一个CAN,兼容2.0A和2.0B规范,通信速率最高可达1Mbit/s。它可接受和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧,具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。 硬件的接口设计如下:
|