CAN现场总线基础知识总结,看这一篇就理清了(CAN是什么,电气属性,CAN通协议等) 世界今日讯
【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来!
《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》
长期持续带来更多案例与技术文章分享;
(资料图片仅供参考)
原文链接:https://blog.csdn.net/w464960660/article/details/129127589
——————————————————————————————————
目录
0 引言
1 CAN是什么?
2 CAN的电气属性
3 CAN通信协议
3.1 数据帧
3.2 遥控帧
3.3 错误帧
3.4 过载帧
3.5 帧间隔
4 CAN通信速率
5 总结
0 引言
CAN是一种应用广泛的现场总线,由于其高可靠性,多应用于工业自动化、船舶、汽车、医疗和工业设备等方面,如汽车上大量的传感器与模块都是通过CAN总线连接起来的。 本次博文根据瑞萨的《CAN入门书》,对CAN协议进行一个梳理总结,包括其概念、电气属性、协议、速率等,意在对CAN有一个基础性的认知,详细协议等可参见原书。
1 CAN是什么?
CAN,是Controller Area Network的英文缩写,也就是控制局域网络,其最早由德国BOSCH开发,目前已经是国际标准(ISO 11898),是当前应用最广泛的现场总线之一。BOSCH博世主要是做汽车电子的,因此CAN一开始主要是为汽车电子开发的,目前已经是汽车网络的标准协议。当然,经过几十年的发展,CAN协议的高性能和可靠性已经得到了业界的认可,目前除了汽车电子外,也广泛应用于工业自动化、医疗、工业和船舶等领域。
以汽车电子为例,汽车上的电子设备很多,空调、车门、发动机、大量传感器等,这些设备就是通过CAN总线连接形成一个网络,如下图所示:
图中的各个单元通过CAN总线连接,每个单元都是独立的节点,同一个CAN网络中单元的通信速度一致,不同网络间速度可以不同。
CAN的主要特点如下:
1)多主控制:总线空闲时,所有单元都可以发送消息,当两个以上单元同时开始发送消息时,根据标识符ID(并非发送的目的地址)决定优先级,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收。2)系统的柔软性:与总线相连的单元没有类似于“地址”的信息,因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。3)通信速度快,距离远:最高 1Mbps(距离<40M),最远达10KM(速率<5Kbps)。4)具有错误检测、错误通知和错误恢复功能:所有单元都可以检测错误,检测出错误的单元会立即通知其他所有单元。正在发送消息的单元一旦检测出错误,会强制结束当前的发送,然后不断反复地重新发送此消息直到成功为止。5)故障封闭功能:CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等),若为后者,可将引起此故障的单元从总线上隔离出去。6)连接节点多:CAN 总线是可同时连接多个单元的总线,可连接的单元总数理论上没有限制,但实际上受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,单元数减少。2 CAN的电气属性
CAN总线使用两根线来连接各个单元:CAN_H、CAN_L,CAN控制器通过判断这两根线上的电位差来得到总线电平,分为显性电平和隐性电平两种。显性电平表示逻辑“0”,此时CAN_H电平比CAN_L 高,分别为 3.5V 和 1.5V,电位差为 2V。隐形电平表示逻辑“1”,此时 CAN_H 和 CAN_L 电压都为 2.5V 左右,电位差为 0V。 当CAN 总线上没有节点传输数据,即总线空闲时,总线电平一直处于隐性。
CAN 节点单元连接到CAN总线时, CAN_H 接CAN_H、CAN_L 接 CAN_L,CAN 总线两端要各接一个 120Ω的端接电阻,用于匹配总线阻抗,吸收信号反射及回拨,提高数据通信的抗干扰能力以及可靠性。CAN2.0传输速度可达 1Mbps/S,最新的 CAN-FD 最高速度可达 5Mbps/S,甚至更高,传输速度和总线距离有关,总线距离越短,传输速度越快。
3 CAN通信协议
通过CAN总线传输数据是需要按照一定协议进行,CAN 协议提供了 5 种帧格式来传输数据:数据帧、遥控帧、错误帧、过载帧和间隔帧,用途如下:
3.1 数据帧
数据帧由7段组成:
1)帧起始:表示数据帧开始的段;2)仲裁段:表示该帧优先级的段;3)控制段:表示数据的字节数及保留位的段;4)数据段:数据的内容,一帧可发送 0~8 个字节的数据;5)CRC段:检查帧的传输错误的段;6)ACK 段:表示确认正常接收的段;7)帧结束:表示数据帧结束的段。以上是数据帧标准格式和扩展格式两种帧结构,图中 D 表示显性电平 0、 R 表示隐性电平 1, D/R 表示显性或隐性,也就是 0 或 1。
(1)帧起始
标准格式和扩展格式都是由一1位的显性电平 0 来表示帧起始。
(2)仲裁段
仲裁段表示帧优先级,标准格式和扩展格式的仲裁段不同,从上图可见,标准格式的 ID 为 11 位,发送顺序是从 ID10 到 ID0,最高 7 位 ID10~ID4 不能全为隐性(1),也就是禁止0X1111111XXXXX这样的 ID。扩展格式的 ID 为 29 位,基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0,基本ID 与标准格式一样,禁止最高 7 位都为隐性。
(3)控制段
控制段由 6 个位构成,表示数据段的字节数,标准格式和扩展格式的控制段略有不同,r1 和 r0 为保留位,保留位必须以显性电平发送。 DLC 为数据长度,高位在前, DLC 段有效值范围为 0~8。
(4)数据段
数据段也就是帧的有效数据,标准格式和扩展格式相同,可以包含 0~8 个字节的数据,从最高位(MSB)开始发送。
(5)CRC段
CRC段保存CRC校准值,用于检查帧传输错误,标准格式和扩展格式相同。CRC 段由 15 位的 CRC 值与 1 位的 CRC 界定符组成。 CRC 值的计算范围包括:帧起始、仲裁段、控制段、数据段,接收方以同样的算法进行计算,然后用计算得到的 CRC 值与此CRC段进行比较,如果不一致的话就会报错。
(6)ACK段
ACK 段用来确认接收是否正常,标准格式和扩展格式相同,ACK 段由 ACK 槽(ACK Slot)和 ACK 界定符两部分组成。 发送单元的 ACK,发送 2 个隐性位,而接收到正确消息的单元在 ACK 槽(ACK Slot)发送显性位,通知发送单元正常接收结束,这个过程叫发送 ACK/返回 ACK。发送 ACK 的是所有接收单元中接收到正常消息的单元, 所谓正常消息是指不含填充错误、格式错误、 CRC 错误的消息,这些接收单元既不处于总线关闭态也不处于休眠态的所有接收单元中。
(7)帧结束
帧结束段,标准格式和扩展格式相同,帧结束段很简单,由 7 位隐性位构成。
3.2 遥控帧
接收单元向发送单元请求数据的时候用遥控帧,遥控帧由6个段组成:
1)帧起始:表示数据帧开始的段; 2)仲裁段:表示该帧优先级的段; 3)控制段:表示数据的字节数及保留位的段; 4)CRC段:检查帧的传输错误的段; 5)ACK 段:表示确认正常接收的段; 6)帧结束,表示数据帧结束的段。
遥控帧结构基本和数据帧一样,最主要的区别就是遥控帧没有数据段。遥控帧的 RTR 位为隐性的,数据帧的 RTR 位为显性,因此可以通过 RTR 位来区分遥控帧和没有数据的数据帧。遥控帧没有数据,因此 DLC 表示的是所请求的数据帧数据长度,遥控帧的其他段参考数据帧,不再赘述。
3.3 错误帧
当接收或发送消息出错的时候使用错误帧来通知,错误帧由错误标志和错误界定符两部分组成:
错误标志有主动错误标志和被动错误标志两种,主动错误标志是 6 个显性位,被动错误标志是 6 个隐性位,错误界定符由 8 个隐性位组成。
3.4 过载帧
接收单元尚未完成接收准备的话就会发送过载帧,过载帧由过载标志和过载界定符构成:
过载标志由 6 个显性位组成,与主动错误标志相同,过载界定符由 8 个隐性位组成,与错误帧中的错误界定符构成相同。
3.5 帧间隔
帧间隔用于分隔数据帧和遥控帧,数据帧和遥控帧可以通过插入帧间隔来将本帧与前面的任何帧隔开,过载帧和错误帧前不能插入帧间隔。
间隔由 3 个隐性位构成,总线空闲为隐性电平,长度没有限制,本状态下表示总线空闲,发送单元可以访问总线。延迟发送由 8 个隐性位构成,处于被动错误状态的单元发送一个消息后的帧间隔中才会有延迟发送。
4 CAN通信速率
CAN总线以帧的形式发送数据,到总线上的就是“0”和“1”这样的二进制数据,这里就涉及到了通信速率,即每秒钟发送多少位数据,CAN2.0 最高速度为1Mbps/S。对于CAN总线,一个位分为 4 段:
1)同步段(SS)2)传播时间段(PTS)3)相位缓冲段 1(PBS1)4)相位缓冲段 2(PBS2)这些段由 Tq(Time Quantum)组成,Tq 是 CAN 总线的最小时间单位。帧由位构成,一个位 由 4 个段构成,每个段又由若干个Tq 组成,这个就是位时序。 1 位由多少个 Tq 构成、每个段又由多少个 Tq 构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。 各段的作用和 Tq 数:
1个位的构成示意图:
上图中,采样点是指读取总线电平,并将读到的电平作为位值的点。位置在 PBS1结束处。根据这个位时序,我们就可以计算 CAN 通信的波特率了。
前面提到的 CAN 协议具有仲裁功能,下面我们来看看是如何实现的。在总线空闲态,最先开始发送消息的单元获得发送权。当多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。实现过程:
单元 1 和单元 2 同时开始向总线发送数据,开始部分他们的数据格式是一样的,故无法区分优先级,直到 T 时刻,单元 1 输出隐性电平,而单元 2 输出显性电平,此时单元 1 仲裁失利,立刻转入接收状态工作,不再与单元 2 竞争,而单元 2 则顺利获得总线使用权,继续发送自己的数据。这就实现了仲裁,让连续发送显性电平多的单元获得总线使用权。
5 总结
本次博文根据瑞萨的《CAN入门书》,对CAN协议进行一个梳理总结,包括其概念、电气属性、协议、速率等,意在对CAN有一个基础性的认知,详细协议等可参见原书。
作于202302211810,已归档
———————————————————————————————————
本文为博主原创文章,未经博主允许不得转载!
祝君升职加薪,鹏程万里!
标签: 数据结构
推荐文章
- CAN现场总线基础知识总结,看这一篇就理清了(CAN是什么,电气属性,CAN通协议等) 世界今日讯
- 最新消息:工伤8级单位能解除劳动合同吗
- 天天速读:三力士:您也是非常了解公司情况的,凤凰创新园所在区域对于生产是有要求的
- 东野へいと_樫野真 热门
- 郑州市第十六届人大常委会第一次会议任免名单
- 热推荐:03月01日00时甘肃陇南昨日累计报告阳性感染者确诊33例 怎么判断自己是否属于轻型感染者
- 快播:双腿无力浑身没劲还犯困是怎么回事?_双腿无力
- 赣锋锂业:拟50亿元投建年产10GWh新型锂电池及储能总部项目议案获股东大会审议通过
- 天天热文:大连医保线上挂号可以报销吗
- 女生热血发言却被网暴 网友:键盘侠滚出中国
- 与刘邦有关的电视剧_有关刘邦的电视剧|环球观速讯
- 要闻速递:桂林市卫生学校是大专吗_桂林市卫生学校
- 【全球速看料】昂达平板怎么获取ROOT权限_平板如何获取root权限
- 当科学“撞击”科幻,“大爆炸”发生了-世界讯息
- SGH-E758
- 今日最新!流感高发季,讲一个三管齐下抗流感的中成药
- 三国志9威力加强版优化伴侣怎么用_三国志9威力加强版优化伴侣
- ZN18战法_全球焦点
- 环球速看:2023年2月机制币行情及成交欣赏
- 长青集团: 董事会决议公告
- frp是玻璃钢吗_frp是什么材料
- 第二人格出现时第一人格会怎样_第二人格杀死第一人格_环球微头条
- 环球新消息丨对话赵铭铭:勇闯新路,逆势进取|天猫好房商家成长计划 第五期
- 在编教师可以办营业执照吗
- 全球热文:什么软件可以打开eml文件_eml文件用什么软件打开
- 当前热文:联合光电:公司的毫米波雷达产品技术成熟,毫米波雷达及相关产品已凭借技术优势获得整车厂定点,定点车厂为国内头部新能源汽车厂(含新势力),且目前已参与十多款车型的项目研发
- 全球信息:2022年济南第一批公租房分配摇号排序指南(范围+规则+时间)
- 中牟县郑庵镇:开展信访业务测试 提高服务群众能力
- 快消息!速度与激情2
- 解析丰田RAV4荣放双擎E+养车费用! 天天动态
- 高空坠物的安全事故责任分析有哪些内容 环球今亮点
- 无籽西瓜_今日热门
- 空气炸锅烤孜然牛肉片多长时间 空气炸锅烤孜然牛肉片多久
- 潜入游戏《死亡循环》玩家总数突破 500 万,官方公开统计数据
- 柳生但马守-视讯
- 世界快资讯丨皮古
- dnf启动游戏后没反应_dnf启动游戏后没反应怎么办-观点
- 快消息!东风风诺E300
- 安徽18条优环境措施助推制造业高质量发展 世界今头条
- 易燃气体标志是什么样的_易燃气体标志|环球新资讯
- 张著
- 当前聚焦:微信营销应该这样做
- 全球新消息丨中国投资发展报告_2019
- 河南省妇女儿童活动中心教师待遇_河南省妇女儿童活动中心
- 中国即将开始准备选拔国际航天员,已有多个国家提出飞行需求
- 初等教育 今日聚焦
- 环球观速讯丨勇士全队进26记三分!杰罗姆:早知道我最后也多投几个
- 牡丹区召开学校建设财务管理工作会议|环球快资讯
- 中谊村_全球微速讯
- 天天视讯!内部大裁员?计划买断45岁以上员工工龄?上汽通用回应
- catwoman
- 日语日常用语中文谐音 日语怎么说日常用语 世界看点
- 世界快资讯:再见!又一归化球员放弃中国籍:年仅26岁,曾被誉为武磊搭档
- 脂肪肝不能吃什么食物最好_脂肪肝不能吃什么食物_当前简讯
X 关闭
最新资讯
- 四川通江-焦点热文
- 卓越新能:生物柴油满产满销 总体产销量、收入与利润仍保持良好增长|天天最新
- 开封城乡居民医保缴费方式
- songza 世界快看
- 让组词两个字_让组词_全球微资讯
- 印尼海军建设任重道远-今热点
- 保障新能源发电送得出用得好(人民时评) 关注
- KSG3比2战胜XYG,送对手三连败,今屿拿下两局MVP
- 世界资讯:IPv6板块2月23日跌2.7%,东方通领跌,北向资金增持1.79亿元
- 工藤优作追妻是哪一集-名侦探柯南工藤优作出场集数
- 电脑开机风扇转一下就停启动不_电脑开机风扇转一下就停
- 速看:业绩快报:华夏银行全年净利250.35亿 同比增长6.37%
- 中兴通讯联合中铝集团、中国信通院等多家单位发布《5G赋能有色金属行业智能化发展白皮书》-焦点日报
- 伊春市丰林县公安局:“藏蓝”护学岗 守护“读书郎”-当前视点
- 【天天播资讯】那的笔画顺序的近义词
- 大东方2月23日盘中涨停-世界短讯
- 茅台集团拜访中信集团、中粮集团、招商局集团和中金公司
- 主持人鲁豫30年前旧照曝光,模样青涩略显婴儿肥
- 要闻:怎么去政府部门办各种证件?有没有想跟我一样做这方面的科普视频的
- 全球热点评!天龙3D手游_天龙3
- 新手制作表格详细步骤|环球最新
- 【速看料】嘉定西门历史文化风貌区保护规划有局部调整,详见
- example邮箱登录入口电子邮箱_example邮箱登录|当前播报
- 奋进的春天丨天津:新春新开局 奋战“开门红”
- 绵阳市居住证变更办理指南-每日热讯
- 丽人丽妆:公司目前已推出爱贝萌等自有母婴品牌,不断加强在母婴领域的布局
- 新奥股份02月21日获沪股通增持61.49万股
- 当前观察:random shuffle实现_random shuffle
- “我真的很害怕!”女儿抱着爸爸嚎啕大哭,这段视频冲上热搜 简讯
- 「康养胜地 人文兴义」兴文重教张知府
- 二月二“龙抬头”:河北秦皇岛市民制作祥龙花馍|每日关注
- 办信用卡填公司电话会给公司打电话吗 世界资讯
- 魔剑阿波菲斯怎么获得_魔剑阿波菲斯
- 玉溪花灯戏经典剧目《莫愁女》复排亮相
- 汤姆猫2月21日加速下跌_世界时讯
- 1平方千米等于多少公顷_1平方千米等于多少平方米
- 法兰克福VS那不勒斯:欧联杯冠军是主场龙,那不勒斯必须全力以赴 最新
- 电脑绿色护眼设置参数_电脑绿色护眼设置 天天观天下
- 菲菱科思(301191.SZ):海宁工厂目前产能正在爬坡期,产能利用率约80%左右_动态焦点
- 隐隐约约的反义词的读法|环球新要闻
- 当前信息:湘财股份02月20日涨停分析
- 腿部骨折做了手术多久能下地_腿骨折手术后多久能下地 新消息
- 留学“厂二代”接班时刻:观念碰撞、技术革新 一代人要面临的共性难题
- WTA1000迪拜站上演“中国德比” 两代金花完美“交棒”-天天关注
- 今日快讯:qq现在没有热聊群聊吗_qq同城热聊怎么没有了
- 世界快播:Java开发工具IntelliJ IDEA 2020.2完整授权流程
- 微波炉的辐射对人体有危害吗_微波炉的辐射
- 团子大家族_团子大家族罗马音
- 粤开策略:震荡调整中关注“高性价比”板块机会
- 天天微动态丨如何调整更换窗口张力
X 关闭