[学习笔记]

【AutoChips 7801x MCU评测报告】+ 3 CAN学习

[复制链接]
11465|12
手机看帖
扫描二维码
随时随地手机跟帖
hello、C|  楼主 | 2020-7-10 00:35 | 显示全部楼层 |阅读模式
本帖最后由 hello、C 于 2020-7-10 10:41 编辑

关于CAN2.0A(PART A) CAN2.0B(PART B)协议的一些基本概念,在此不再叙述,请参考:CAN2.0A及CAN2.0B通信协议。
这几天简略阅读了Autochips MCU AC7801X型的芯片参考手册,并详细阅读了CAN章节及其例程程序(ac7801xmoduleapplicationnotes0616 -> CAN -> SampleCode -> CAN_sample)。

对CAN的学习总结如下:
1.针对CAN通信,主要包含三个组件,MCU、内嵌在MCU的CAN外设、CAN收发器。
    ① MCU:MCU通过APB总线访问CAN外设。
    ② CAN外设:挂载在MCU的APB总线上,实现基本协议CAN2.0A、扩展协议CAN2.0B、接收滤波器、发送优先级及对CAN FD的支持等,并留出外设访问接口给MCU,以便MCU控制。
    ③ CAN收发器:看其收发器框图,因仅包含CANH、CANL总线,所以TXD发出的CANH、CANL与RXD读出的CANH、CANL是连接在一起的,因此CAN收发器TXD发送出来的总线信号会立即被转换从RXD输出给CAN接口(LBME环回模式使用此特性)。关于收发信号的转换特性,请参考:CAN收发器参考手册。
    ④ 三者之间的联系,可以引用AC7801X型的芯片参考手册关于CAN的一张图(CAN总线连接及CAN_CTRL内核主要功能示意图)说明一下。如图所示:
   

CAN_CTRL框图

CAN_CTRL框图

    MCU通过APB总线访问CAN外设,通过配置相关寄存器配置CAN的运行环境,通过写BUF及相关配置位发送CAN帧;通过轮询某些状态位或者中断,读取收到的BUF或者CAN外设目前处于的状态,并依据部分状态作出相应的动作;CAN收发器将CAN外设的CAN_TX高低电平信号转换为CANH、CANL总线信号,并将接收到的CANH、CANL总线信号转换为CAN外设的CAN_RX高低电平信号,该信号输送给CAN外设,CAN外设根据CAN接收滤波器的设置判断是否接收该数据帧等等。
2.CAN特性,厂家已经总结的非常好了,如图所示:
   

CAN特性

CAN特性

3.例程说明
    ① CAN使用正常模式,500kHz波特率,CAN收发器拉低,CAN收发器运行在正常模式。如图所示:
   

C4

C4

   

C5

C5

    ②CAN使用扩展模式,数据帧长度为8字节,发送ID为0x430,使用STB模式单次发送数据帧。如图所示:
   

C6

C6

    ③CAN发送时间管理:2s内每隔100ms,发送一次同样内容的数据帧,发送数据帧的同时,以10Hz闪烁LED2.然后停止2s后,再进行重复操作。
   

C7

C7

4.参考与引用
    ① CAN2.0 PartA PartB.
    ② TJA1044.pdf (232.21 KB)

使用特权

评论回复
评论
zwzzq 2021-7-9 16:28 回复TA
烧录给的CAN_Sample,跟上位机通讯不上呢,波特率是配置的500kbps 

相关帖子

wf663776| | 2020-10-16 14:27 | 显示全部楼层

使用特权

评论回复
JasonLee27| | 2020-10-16 14:38 | 显示全部楼层
使能STB模式下要注意,如果仲裁失败或者发送失败的情况下,该报文不会进行重发。同时,文档中也有描述,单次发送下,TPIF标志并不能指示帧是否成功发送。还需要结合其他错误标志一起来判断是否发送成功。

使用特权

评论回复
zeshoufx| | 2020-10-16 14:54 | 显示全部楼层
谢谢分享【一款新的EC系列EtherCAT|CANopen|modbus总线驱动器】

使用特权

评论回复
hello、C|  楼主 | 2021-10-15 14:58 | 显示全部楼层
自己顶一顶,看一看

使用特权

评论回复
hello、C|  楼主 | 2022-1-7 14:44 | 显示全部楼层
又来学习一下CAN的相关知识

使用特权

评论回复
chenqianqian| | 2022-1-8 09:14 | 显示全部楼层
不错,写的很详细。

使用特权

评论回复
guanxiangli| | 2022-1-12 12:03 | 显示全部楼层
hello、C 发表于 2022-1-7 14:44
又来学习一下CAN的相关知识

麻烦问下楼主测试过休眠stop模式下的CAN唤醒吗

使用特权

评论回复
hello、C|  楼主 | 2022-1-12 20:21 | 显示全部楼层
guanxiangli 发表于 2022-1-12 12:03
麻烦问下楼主测试过休眠stop模式下的CAN唤醒吗

没有测试过  你要看 CAN 能否作为休眠唤醒源吧,休眠深度不同可能有所不同

使用特权

评论回复
hello、C|  楼主 | 2022-1-12 20:58 | 显示全部楼层
guanxiangli 发表于 2022-1-12 12:03
麻烦问下楼主测试过休眠stop模式下的CAN唤醒吗

手册上给出的,休眠和停机模式  CAN是可以唤醒的 K1.PNG
K2.PNG

使用特权

评论回复
10299823| | 2022-5-28 15:32 | 显示全部楼层
CAN的通信稳定吗

使用特权

评论回复
dspmana| | 2022-5-28 17:14 | 显示全部楼层
完整的通信程序有吗?

使用特权

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

本版积分规则

21

主题

359

帖子

2

粉丝