打印
[APM32F1]

F103模块之CAN介绍

[复制链接]
39|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lengrudie|  楼主 | 2024-12-23 18:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lengrudie 于 2024-12-23 18:47 编辑

APM32F103有CAN模块,在很多场合都有用到,使用之前先来介绍一下CAN,后续将更新更多内容。
1.CAN总线(Controller Area Network Bus)控制器局域网总线
•        CAN总线是一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线,广泛应用于汽车、嵌入式、工业控制等领域
•        CAN总线特征:
        两根通信线(CAN_H、CAN_L),线路少
        差分信号通信,抗干扰能力强
        高速CAN(ISO11898):125k~1Mbps, <40m
        低速CAN(ISO11519):10k~125kbps, <1km
        异步,无需时钟线,通信速率由设备各自约定
        半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序
        11位/29位报文ID,用于区分消息功能,同时决定优先级
        可配置1~8字节的有效载荷
        可实现广播式和请求式两种传输方式
        应答、CRC校验、位填充、位同步、错误处理等特性

2.主流通信协议对比
  
名称
  
引脚
双工
时钟
电平
设备
应用场景
UART
TX、RX
全双工
异步
单端
点对点
两个设备互相通信
I2C
SCL、SDA
半双工
同步
单端
多设备
一个主控外挂多个模块
SPI
SCK、MOSI、MISO、SS
全双工
同步
单端
多设备
一个主控外挂多个模块
  
(高速)
CAN
CAN_H、CAN_L
半双工
异步
差分
多设备
多个主控互相通信


3.CAN硬件电路
每个设备通过CAN收发器挂载在CAN总线网络上
CAN控制器引出的TXRXCAN收发器相连,CAN收发器引出的CAN_HCAN_L分别与总线的CAN_HCAN_L相连
高速CAN使用闭环网络,CAN_HCAN_L两端添加120Ω的终端电阻


4.CAN电平标准
CAN总线采用差分信号,即两线电压差(VCAN_H-VCAN_L)传输数据位
高速CAN规定:
  电压差为0V时表示逻辑1(隐性电平)
  电压差为2V时表示逻辑0(显性电平)


5.CAN物理层特性

6.CAN总线帧格式
  
帧类型
  
用途
数据帧
发送设备主动发送数据(广播式)
遥控帧
接收设备主动请求数据(请求式)
错误帧
某个设备检测出错误时向其他设备通知错误
过载帧
接收设备通知其尚未做好接收准备
帧间隔
用于将数据帧及遥控帧与前面的帧分离开

下面对常用部分做介绍:
1)数据帧各部分用途简介
SOFStartof Frame):帧起始,表示后面一段波形为传输的数据位

IDIdentify):标识符,区分功能,同时决定优先级

RTRRemoteTransmission Request ):远程请求位,区分数据帧和遥控帧

IDEIdentifierExtension):扩展标志位,区分标准格式和扩展格式

SRRSubstituteRemote Request):替代RTR,协议升级时留下的无意义位

r0/r1Reserve):保留位,为后续协议升级留下空间

DLCDataLength Code):数据长度,指示数据段有几个字节

Data:数据段的1~8个字节有效数据

CRCCyclicRedundancy Check):循环冗余校验,校验数据是否正确

ACKAcknowledgement):应答位,判断数据有没有被接收方接收

CRC/ACK界定符:为应答位前后发送方和接收方释放总线留下时间

EOFEndof Frame ):帧结束,表示数据位已经传输完毕


2)错误帧
总线上所有设备都会监督总线的数据,一旦发现“位错误”或“填充错误”或“CRC错误”或“格式错误”或“应答错误”,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备。

3)离线恢复
当 CAN 错误状态寄存器的 TXERRCNT 大于 255 时, CAN 总线控制器就进入离线状态,此时寄存器 CAN_ERRSTS 的 BO** 位置 1,该状态下 CAN 总线控制器不能接收和发送报文。
通过配置寄存器 CAN_MCTRL 的 ALBOFFM 位来决定离线恢复方式:
 若 ALBOFFM 位置 1,一旦硬件检测到 128 次 11 位连续的隐性位,则自动退出离线状态;
 若 ALBOFFM 位置 0,软件请求进入再退出初始化模式后,退出离线状态



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

51

帖子

1

粉丝