网易首页 > 网易号 > 正文 申请入驻

CAN基础知识介绍

0
分享至

01

CAN协议

1.1 CAN协议简介

CAN是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519以及ISO11898), 是国际上应用最广泛的现场总线之一。差异点如下:

1.2 CAN物理层

CAN通讯不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和 CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。CAN 物理层的形式主要有两种:

  • 遵循ISO11898标准的高速、短距离闭环网络,总线最大长度为40m,通信速度最高为 1Mbps,总线的两端各要求有一个120欧的电阻

  • 是遵循ISO11519-2标准的低速、远距离开环网络,最大传输距离为1km,最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个2.2千欧的电阻

以TJA1050芯片作为CAN收发器的电路原理图如下图示

差分信号又称差模信号,差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1,CAN中显性电平(差值为正)对应逻辑0,隐性电平(差值小于或等于0)对应逻辑1,显性电平比隐性电平更强。

1.3 CAN协议层

CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间使用约定好的波特率进行通讯,CAN使用位同步的方式来抗干扰、吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。

⏩ 位时序分解:为了实现位同步,CAN协议把每一个数据位的时序分解成SS段、PTS段、PBS1段、PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,一个完整的位由8~25个Tq组成。

⏩ 波特率:总线上的各个通讯节点只要约定好1个Tq的时间长度以及每一个数据位占据多少个Tq,就可以确定CAN通讯的波特率。

  • 例如,假设上图中的 1Tq=1us,而每个数据位由 19 个 Tq 组成,则传输一位数据需要时间 T1bit=19us,从而每秒可以传输的数据位个数为:1x10次方/19 = 52631.6 (bps)。这个每秒可传输的数据位的个数即为通讯中的波特率。

⏩ 同步过程:波特率只是约定了每个数据位的长度,数据同步还涉及到相位的细节,此时就要用到数据位内的SS、PTS、PBS1及PBS2段了。根据对段的应用方式差异, CAN的数据同步分为硬同步和重新同步。其中硬同步只是当存在帧起始信号时起作用,无法确保后续一连串的位时序都是同步的,而重新同步方式可解决该问题。

  • 硬同步:CAN节点通过总线发送数据时,会发送一个帧起始信号。而挂载到CAN总线上的节点在不发送数据时,会时刻检测总线上的信号。如下图,当总线出现帧起始信号时,节点检测到总线的帧起始信号不在节点内部时序的 SS 段范围,所以判断它自己的内部时序与总线不同步,因而这个状态的采样点采集得的数据是不正确的。所以节点以硬同步的方式调整,把自己的位时序中的 SS 段平移至总线出现下降沿的部分,获得同步,同步后采样点就可以采集得正确数据了。

重新同步:前面的硬同步只是当存在帧起始信号时才起作用,如果在一帧很长的数据内,节点信号与总线信号相位有偏移时,这种同步方式就无能为力了。因而引入重新同步方式,它利用普通数据位的高至低电平的跳变沿来同步。与硬同步方式相似的是它们都使用 SS 段来进行检测,同步的目的都是使节点内的 SS 段把跳变沿包含起来。重新同步分为超前和滞后两种情况,以总线跳变沿与 SS 段的相对位置进行区分。

  • 相位超前:节点从总线的边沿跳变中,检测到它内部的时序比总线的时序相对超前 2Tq,这时控制器在下一个位时序中的 PBS1 段增加 2Tq 的时间长度,使得节点与总线时序重新同步。

  • 相位滞后:节点从总线的边沿跳变中,检测到它的时序比总线的时序相对滞后 2Tq,这时控制器在前一个位时序中的 PBS2 段减少 2Tq 的时间长度,获得同步。

⏩ 报文种类及结构:对数据、操作命令 (如读/写) 以及同步信号进行打包,打包后的这些内容称为报文。CAN一共规定了5种类型的帧。

  • 数据帧的结构:数据帧是在CAN通讯中最主要、最复杂的报文,它的结构如下图

  • 其他报文结构

02

CAN控制器

STM32 的芯片中具有bxCAN控制器,支持CAN协议2.0A和2.0B标准。该CAN控制器支持最高的通讯速率为1Mb/s;可以自动地接收和发送CAN报文,支持使用标准ID和扩展ID的报文;外设中有3个发送邮箱,发送报文的优先级可以使用软件控制,还可记录发送的时间;有2个3级深度的接收FIFO,可使用过滤功能只接收或不接收某些ID号的报文;可配置成自动重发;不支持使用DMA进行数据收发。框架示意图如下:

STM32有两组CAN控制器,其中CAN1是主设备,框图中的存储访问控制器是由CAN1控制的,CAN2无法直接访问存储区域,所以使用CAN2的时候必须使能CAN1外设的时钟。框图中主要包含CAN控制内核、发送邮箱、接收FIFO以及验收筛选器,下面对框图中的各个部分进行介绍。

2.1 CAN控制内核

⏩ 主控寄存器CAN_MCR:负责管理CAN的工作模式。

  • INRQ位:用来控制初始化请求,在CAN初始化时,先设置该位为1,进行初始化,之后再设置该位为0,让CAN进入正常工作模式。

⏩ 位时序寄存器CAN_BTR:用于配置测试模式、波特率以及各种位内的段参数。

  • CAN波特率的计算公式:只需要知道BS1和BS2的设置,以及APB1的时钟频率,就可以方便的计算出波特率。比如设置TS1=9、TS2=5和BRP=6,在APB1频率为45Mhz的条件下,即可得到CAN通信的波特率=45000/6/(5+9+1)=500Kbps

2.2 CAN发送邮箱

CAN 共有3个发送邮箱,即最多可以缓存3个待发送的报文。每个发送邮箱中包含有标识符寄存器CAN_TIxR、数据长度控制寄存器CAN_TDTxR及2个数据寄存器CAN_TDLxR、CAN_TDHxR,如下图

当使用CAN外设发送报文时,需要把报文的各个段分解,按位置写入到这些寄存器中,并对标识符寄存器CAN_TIxR中的发送请求寄存器位TMIDxR_TXRQ置1,即可把数据发送出去。其中标识符寄存器CAN_TIxR中的STDID寄存器位比较特别。我们知道CAN的标准标识符的总位数为11位,而扩展标识符的总位数为29位的。当报文使用扩展标识符的时候,标识符寄存器CAN_TIxR中的STDID[10:0]等效于EXTID[18:28]位,它与EXTID[17:0]共同组成完整的29位扩展标识符。

⏩ 发送邮箱标识符寄存器CAN_TIxR。

⏩ 发送邮箱数据长度和时间戳寄存器CAN_TDTxR。

⏩ 发送邮箱低字节数据寄存器CAN_TDLxR。

⏩ 发送邮箱高字节数据寄存器CAN_TDHxR。

2.3 CAN接收FIFO

CAN 共有2个接收FIFO,每个FIFO中有3个邮箱,即最多可以缓存6个接收到的报文。当接收到报文时,FIFO的报文计数器会自增,而STM32内部读取FIFO数据之后,报文计数器会自减,通过状态寄存器可获知报文计数器的值,而通过前面主控制寄存器的RFLM位,可设置锁定模式,锁定模式下FIFO溢出时会丢弃新报文,非锁定模式下FIFO溢出时新报文会覆盖旧报文。跟发送邮箱类似,每个接收FIFO中包含有标识符寄存器CAN_RIxR、数据长度控制寄存器CAN_RDTxR及2个数据寄存器CAN_RDLxR、CAN_RDHxR,它们的功能见下表。

通过中断或状态寄存器知道接收FIFO有数据后,我们再读取这些寄存器的值即可把接收到的报文加载到STM32的内存中。

⏩ 接收FIFO邮箱标识符寄存器CAN_RIxR。

⏩ 接收FIFO邮箱数据长度和时间戳寄存器CAN_RDTxR。

⏩ 接收FIFO邮箱低字节数据寄存器CAN_RDLxR。

⏩ 接收FIFO邮箱高字节数据寄存器CAN_RDHxR。

2.4 CAN验收筛选器

AN 验收筛选器,共有28个筛选器组,每个筛选器组有2个寄存器,CAN1和CAN2 共用筛选器。CAN协议中,消息的标识符与节点地址无关,但与消息内容有关。因此,发送节点将报文广播给所有接收器时,接收节点会根据报文标识符的值来确定软件是否需要该消息,为了简化软件的工作,STM32的CAN外设接收报文前会先使用验收筛选器检查,只接收需要的报文到FIFO中。筛选器工作的时候,可以调整筛选ID的长度及过滤模式。

根据筛选ID长度来分类有有以下两种:

  • 检查 STDID[10:0]、EXTID[17:0]、IDE 和 RTR 位,共 31 位

  • 检查 STDID[10:0]、RTR、IDE 和 EXTID[17:15],共 16 位

根据过滤的方法分为以下两种模式:

  • 标识符列表模式,它把要接收报文的 ID 列成一个表,要求报文 ID 与列表中的某一个标识符完全相同才可以接收,可以理解为白名单管理。

  • 掩码模式,它把可接收报文 ID 的某几位作为列表,这几位被称为掩码,可以把它理解成关键字搜索,只要掩码 (关键字) 相同,就符合要求,报文就会被保存到接收 FIFO。

通过配置筛选模式寄存器CAN_FM1R的FBMx位可以设置筛选器工作在哪个模式。通过配置筛选尺度寄存器CAN_FS1R的FSCx位可以设置筛选器工作在哪个尺度。不同的尺度和不同的过滤方法可使筛选器工作在图 的 4 种状态。

每组筛选器包含2个32位的寄存器,分别为CAN_FxR1和CAN_FxR2,它们用来存储要筛选的ID或掩码,各个寄存器位代表的意义与图中两个寄存器下面“映射”的一栏一致,各个模式的说明见表。

例如下面的表格所示,在掩码模式时,第一个寄存器存储要筛选的ID,第二个寄存器存储掩码,掩码为1的部分表示该位必须与ID中的内容一致,筛选的结果为表中第三行的ID值,它是一组包含多个的ID值,其中x表示该位可以为1可以为0。

而工作在标识符模式时,2个寄存器存储的都是要筛选的ID,它只包含2个要筛选的ID值 (32位模式时)。如果使能了筛选器,且报文的ID与所有筛选器的配置都不匹配,CAN外设会丢弃该报文,不存入接收FIFO。

⏩ 过滤器模式寄存器CAN_FM1R。

⏩ 过滤器尺度寄存器CAN_FS1R。

⏩ 过滤器FIFO分配寄存器CAN_FFA1R。

⏩ 过滤器激活寄存器CAN_FA1R。

⏩ 过滤器组i的寄存器x CAN_FiRx。

来源:一口Linux

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
纳帅:比赛前48小时才知道淘汰赛对手?偶尔熬个通宵问题不大

纳帅:比赛前48小时才知道淘汰赛对手?偶尔熬个通宵问题不大

懂球帝
2026-06-25 12:34:15
李小璐母亲:我这辈子最后悔的决定,就是心软让女儿嫁给了贾乃亮

李小璐母亲:我这辈子最后悔的决定,就是心软让女儿嫁给了贾乃亮

她时尚丫
2026-03-22 21:32:14
多少分可以上深圳的大学?深圳14所大学最低录取分数线→

多少分可以上深圳的大学?深圳14所大学最低录取分数线→

深圳本地宝
2026-06-25 20:52:33
无视美军,大陆正式接管台东,第一岛链崩盘,两岸统一只差一步

无视美军,大陆正式接管台东,第一岛链崩盘,两岸统一只差一步

瞻史
2026-06-22 09:22:33
没想到,世界杯还未过半,全红婵一家却凭一举动,实现口碑暴涨

没想到,世界杯还未过半,全红婵一家却凭一举动,实现口碑暴涨

法老不说教
2026-06-24 16:03:10
“歼15D电战机只有1架,没大规模列装”,瞅瞅美军智库的信息茧房

“歼15D电战机只有1架,没大规模列装”,瞅瞅美军智库的信息茧房

巅峰高地
2026-06-24 21:26:38
比光模块稀缺,比硅光硬核:磷化铟6龙头,AI时代的“战略物资”

比光模块稀缺,比硅光硬核:磷化铟6龙头,AI时代的“战略物资”

白浅娱乐聊
2026-06-25 08:03:40
定了!下半年起,宽带费、有线电视费全面大洗牌!家家都能省钱

定了!下半年起,宽带费、有线电视费全面大洗牌!家家都能省钱

林子说事
2026-06-18 19:58:33
收手吧!“资本家的丑孩子”,没颜值没本事,就别出来祸害观众了

收手吧!“资本家的丑孩子”,没颜值没本事,就别出来祸害观众了

晓徙娱乐
2026-03-23 16:35:39
中国重拳反制澳大利亚!关税大棒已砸下,澳方别把中国真惹毛了!

中国重拳反制澳大利亚!关税大棒已砸下,澳方别把中国真惹毛了!

暖心萌阿菇凉
2026-06-24 23:13:32
贝克汉姆大儿媳发文表白布鲁克林:你是我见过的最善良的男人

贝克汉姆大儿媳发文表白布鲁克林:你是我见过的最善良的男人

可乐谈情感
2026-06-25 13:22:45
两岸船只对峙后,多国发表联合声明,禁止改变现状,中方定调统一

两岸船只对峙后,多国发表联合声明,禁止改变现状,中方定调统一

霁寒飘雪
2026-06-25 19:44:30
短短30分钟,1签约1交易达成!勇士首笔操作,森林狼疯狂豪赌

短短30分钟,1签约1交易达成!勇士首笔操作,森林狼疯狂豪赌

体坛小李
2026-06-25 23:05:18
世体:戈登世界杯两战首发表现平淡;拉什福德替补登场表现更好

世体:戈登世界杯两战首发表现平淡;拉什福德替补登场表现更好

懂球帝
2026-06-25 14:52:53
别被电视剧骗了!这才是清朝王爷大臣的真实照片,手指甲都很长!

别被电视剧骗了!这才是清朝王爷大臣的真实照片,手指甲都很长!

史不语
2026-06-22 06:00:09
伊朗要变天了!伊朗最高领袖可能已收回所有权力,终于要明牌了?

伊朗要变天了!伊朗最高领袖可能已收回所有权力,终于要明牌了?

飞鸟各投林
2026-06-24 23:16:32
李玟遗嘱执行人,起诉李玟生前精神科主诊医生及两名救护员

李玟遗嘱执行人,起诉李玟生前精神科主诊医生及两名救护员

大象新闻
2026-06-25 17:17:04
癌症是基因注定的,躲也躲不掉?父母得了5种癌,或遗传给下一代

癌症是基因注定的,躲也躲不掉?父母得了5种癌,或遗传给下一代

39健康网
2026-06-25 08:30:42
印度一名30岁女子深夜出门如厕遭5人轮奸,体内被塞入实弹、石块,3名嫌犯三个月前就曾入室作恶,警方拒不立案引发众怒

印度一名30岁女子深夜出门如厕遭5人轮奸,体内被塞入实弹、石块,3名嫌犯三个月前就曾入室作恶,警方拒不立案引发众怒

大风新闻
2026-06-24 14:39:04
当不成首相了?高市被调查,日本爆发抗议,美俄给日本"下马威"

当不成首相了?高市被调查,日本爆发抗议,美俄给日本"下马威"

大海呀大海
2026-06-24 22:40:59
2026-06-26 02:23:00
新能源自动驾驶 incentive-icons
新能源自动驾驶
专注于半导体行业资讯
1004文章数 348关注度
往期回顾 全部

头条要闻

佛得角震撼世界足坛 佛得角足协给中国男足支招

头条要闻

佛得角震撼世界足坛 佛得角足协给中国男足支招

体育要闻

世界杯最动人一吻:我若离世 你就改嫁吧

娱乐要闻

这国产剧太装了,居然还热播第一?

财经要闻

又有纸尿裤送检后被检测出甲酰胺!

科技要闻

存储成本压力山大!苹果罕见全球提价

汽车要闻

老板们的新座驾!65万元起,尊界V800/V680开启预订

态度原创

本地
时尚
艺术
公开课
军事航空

本地新闻

2026世界杯全勤太难?这份保姆级攻略请收好

女人不管多大年纪,夏天都要准备一两条过膝裙,舒适又提气质

艺术要闻

税务局大楼能是这样?5个立方体扭40度,高171米!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

特朗普:现在到了关注朝鲜问题的时候了

无障碍浏览 进入关怀版