前篇内容请点击查看:
ra mcu can和canfd ip介绍
1. 概述
can(controller area network)和canfd(controller area network flexible data-rate)是一种常用于汽车和工业领域的通信协议。
can协议最初是由德国的博世公司(bosch)在20世纪80年代开发的,旨在解决汽车电子设备之间的通信需求。它是一种高效可靠的串行通信协议,可支持在短距离上的高速数据传输。can协议以事件触发的方式进行通信,允许多个设备同时参与通信,并通过优先级机制确保数据传输的实时性和可靠性。classic can,传统can,有时也称为经典can或普通can。
can协议的特点包括
双线制:can总线由can_h和can_l两根传输线组成,用差分信号传输数据,以提高抗干扰性能。
冲突检测与冲突解决:多个设备同时发送数据时,can协议能够检测到冲突并通过优先级机制解决。
帧格式简单:can消息由id、数据、控制位和crc校验组成,具有较小的开销和较高的数据传输效率。
容错能力强:can协议使用位级错误检测和错误恢复机制,能够实现高可靠性的数据传输。
随着汽车电子系统的发展和数据通信需求的增加,canfd协议应运而生。canfd在保持can协议基本特性的同时,增加了一些新的特性,主要是在数据传输速率和数据长度上的增强。相对于传统的can协议,canfd支持更高的数据传输速率(最高可达到8mbps)和更大的数据长度(最多可传输64字节的数据)。这使得canfd能够满足对数据带宽要求更高的应用场景,如高级驾驶辅助系统(adas)和自动驾驶领域。
can fd协议是由bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入iso 11898-1:2015。原始的bosch can fd版本(非iso can fd)与iso can fd是不兼容。can fd具有四个主要优点:
增加了数据的长度:can fd每个数据帧最多支持64个数据字节,而传统can最多支持8个数据字节。这减少了协议开销,并提高了协议效率。
增加传输的速度:can fd支持双比特率;与传统can一样,标称(仲裁)比特率限制为1 mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 mbit/s的数据比特率(实际应用中可以达到8 mbit/s,但没有标准)。
更好的可靠性:can fd使用改进的循环冗余校验(crc)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。这在汽车和工业自动化等安全攸关的应用中至关重要。
平滑过渡:在一些特定的情况下can fd能用在仅使用传统can的ecu上,这样就可以逐步引入can fd节点,从而为oem简化程序和降低成本。
与传统can相比,can fd可以将网络带宽提高3到8倍,效率可从50%提升到90%,从而为数据的增长提供了一种简单的解决方案。
2. can协议
2.1 物理层
与i2c、spi等具有时钟信号的同步通讯方式不同,can通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有can_high和can_low两条信号线, 共同构成一组差分信号线,以差分信号的形式进行通讯。
can物理层的形式主要有两种:闭环总线网络和开环总线网络。
2.1.1 闭环总线网络
如下所示的图中的can通讯网络是一种遵循iso11898标准的高速、 短距离“闭环网络”,它的总线最大长度为40m,通信速度最高为1mbps,总线的两端各要求有一个“120欧”的电阻。
2.1.2 开环总线网络
如下所示的图中的是遵循iso11519-2标准的低速、远距离“开环网络”,它的最大传输距离为1km, 最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻。
2.1.3 iso11898(闭环总线网络)和11519-2 (开环总线网络)协议的不同点
iso11898 和 iso11519-2 标准对于数据链路层的定义相同,但物理层不同。
iso11898是通信速度为125kbps-1mbps的can高速通信标准。
iso11519是通信速度为125kbps以下的can低速通信标准。
下图描述了iso11898和11519-2物理层的主要不同点。
用户需根据系统需要设定通信速度及总线长度。
2.1.4 can协议中的差分信号
差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等, 相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1。
can协议中对它使用的can_high及can_low表示的差分信号做了规定, can协议标准表示的信号逻辑参见下表。
以高速can协议为例,当表示逻辑1时(隐性电平),can_high和can_low线上的电压均为2.5v, 即它们的电压差vh-vl=0v;而表示逻辑0时(显性电平), can_high的电平为3.5v,can_low线的电平为1.5v, 即它们的电压差为vh-vl=2v。例如,当can收发器从can_tx线接收到来自can控制器的低电平信号时(逻辑0), 它会使can_high输出3.5v,同时can_low输出1.5v,从而输出显性电平表示逻辑0。
在can总线中,必须使它处于隐性电平(逻辑1)或显性电平(逻辑0)中的其中一个状态。假如有两个can通讯节点,在同一时间,一个输出隐性电平, 另一个输出显性电平,类似i2c总线的“线与”特性将使它处于显性电平状态,显性电平的名字就是这样来的,即可以认为显性具有优先的意味。
由于can总线协议的物理层只有1对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,can通讯是半双工的,收发数据需要分时进行。在can的通讯网络中,因为共用总线,在整个网络中同一时刻只能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。
使用推理服务器加速大型Transformer模型的推理
苹果A12:GPU性能比骁龙845高一倍!
半导体并购大戏开场,半导体整合期逐渐逼近
如何利用PWM调光原理实现三基色灯的各种闪亮效果
家用防盗报警器哪种好
CAN和CANFD协议简介(上)
示波器无源高阻探头如何正确接线
目前的儿童空调市场主要呈现以下四大特征
9家LED产业链上市公司的期中考试“成绩单”
利用二极管电路实现双线圈锁存继电器的测试
一场声势浩大的智能家居行业“大战”如约而至!
智慧物流仓储5G+蓝牙+GPS/北斗RTK人员定位系统解决方案
模数转换器ADC分类及参数
苏宁小Biu智能闹钟拆解:实现动画互动交流
中国汽车信息安全发展现状与趋势
卡萨帝发布和美平嵌系列新品 七鑫易维打造XR工业级新标配
加油站/成品油库视频监管系统的架构和应用方案
谷歌AR能否强势回归?
AliveCor利用人工智能识别隐形心脏病患者
RTL,RTL是什么意思