目录
A.基础概念
A.1 字节
A.2 波特率
A.3QoS
A.4 AVB
A.5 TSN
A.6 DDS
A.7 SOME/IP
A.8 SOME/IP与DDS的差异点
A.9 以太网帧
A.10 协议
A.11 UDS中名词
A.12 软件BSW中的相关定义
A.13 子网掩码
A.14 VLAN
A.15 DNS
A.16 MAC
A.17 ESCI
A.18 SCI
A.19 上拉电阻
A.20 下拉电阻
A.21OSI
一、总结
二、通信方式介绍
三、UART
1、概念
2、UART帧格式
3、UART硬件连接
4、UART寄存器
5、UART存在的问题
四、RS232
1、概念
2、信号
3、RS232存在的问题
五、RS485
1、概念
2、信号
3、RS485优势
六、IIC总线
1、概念
2、通信
3、同步信号
4、 典型IIC时序
七、SPI总线
1、概念
2、寻址
3、通信过程
4、极性和相位
5、 IIC与SPI的异同
八、CAN通信
1、概念
2、CAN标准
3、通信特性
4、OSI模型
5、CAN的收发器
6、同步问题
7、阻抗匹配
8、常见问题
9、帧结构
10、CAN BUS错误
11、CAN测试
12、网络管理
13、诊断
14、安全攻防
九、LIN总线
1、总线性能
2、规范
3、LIN与CAN的对比
4、物理层
5、传输层
十、CAN FD
1、标准
2、波特率
3、通信特性
4、报文
5、CAN与CAN FD的兼容问题
十一、FlexRay
1、概念
2、通信特性
3、拓扑结构
4、安全攻防
十二、车载以太网
1、标准
2、波特率
3、通信特性
4、OSI模型
5、以太网开发内容
6、各层功能
7、各协议介绍
7.1 应用层SOME/IP
7.2 传输层TCP/IP
7.3网络层IP
8、测试
前言:该文章会持续更新
A.基础概念
A.1 字节
byte,1byte=8位(bit);
A.2 波特率
bps,表示每秒钟传送bit的数量,即传送二进制位的数量;
A.3QoS
quality of service:服务质量,利用各种基础技术,为网络通信提供更好的服务能力,以解决网络延迟和阻塞问题,QoS关键指标:可用性、吞吐量、时延、时延变化、丢失。
A.4 AVB
audio video bridging,音频视频桥接,常用于大屏里的功放传输,比如MIC传输,AVB包括的协议: ①时间同步协议; ②流预留协议,可保证丢包率; ③转发,排队和流量整形协议,可保证队列按一定规则转发; ④音视频传输协议; ⑤....
A.5 TSN
time sensitive networking,时间敏感网络,用于提供确定性服务,如有限延迟,低延迟变动和低包丢失率,不仅适用以太网,适用所有的局域网; ①当buffer缓冲足够大,TSN就不存在丢包; ②延迟确定,大于某个边界,不再有延迟;AVB开始用于音视频,后来扩大使用范围后,更名为TSN,因此TSN的前身是AVB;
A.6 DDS
data distribution service,数据分发服务:专门为实时系统设计的数据分发/订阅;
A.7 SOME/IP
scalable service-oriented middleware over IP,基于IP面向服务的可拓展中间件;
A.8 SOME/IP与DDS的差异点
①都是面向服务的通信协议;
②都采用“以数据为中心”的发布和订阅模式;
③SOME/IP强调通信,占用资源小,DDS功能多,体量大,需要裁剪后才可用于自动驾驶;
④DDS是面向数据的访问系统,适用于多节点、大数据交互的应用场景,SOME/IP是面向服务的访问系统,适用于RPC(远程过程调用)以及变更通知;
⑤DDS更灵活,可伸缩性更强;
⑥SOME/IP在传输前需要建立连接,节点之间有一定的耦合性,而DDS是彻底解绑,订阅或发布方只要在自己程序里面订阅或发布数据就行了;
⑦SOME/IP只有1个QoS,DDS有至少20多个QoS;
⑧DDS适用于自动驾驶域,SOME/IP用于整车域,两者在应用中共存。
A.9 以太网帧
①基本MAC帧(不含VLAN)
②标识MAC帧(含VLAN):VLAN标签由协议标识符(TPID)和控制信息(TCI)组成; TPID包含原始类型字段的值,TCI由优先级(PCP)、丢弃资格指示符或规范格式指示符(DRI或CFI)和VLAN标识符(VID)组成,VID和PCP用于汽车行业;
③以太网帧有效负载数据最小长度46字节(不含VLAN标签)或42字节(含VLAN标签)~1500字节
A.10 协议
①UDP:用户数据报协议,是一种无连接传输协议,支持简单的数据报传输,发送不需要对方的反馈,因此无延时,可以做组播或者广播,多节点可同时接收;
②TCP:传输控制协议,面向连接的传输,IP地址和端口号用于标识2个节点,使用3次握手,发送方先传输包含SYN(synchronization sequence number,同步顺序编号)标识的段、单独的序列号((由一个随机数、ISN(initial sequence number,初始序列号、1个连续编号组成))、窗口字段和其他可选参数,因此无法在没有特定接收方的情况下进行组播或广播;
③SOME/IP:面向服务的数据传输,只有当网络中有接收方需要数据,发送方才发送,而面向信号的数据传输(如CAN、LIN、flexray),不管网络中接收方是否需要,都会发送数据;
A.11 UDS中名词
①SF(subfuction):子功能;
②DID(data identifier):数据标识符;
③RID(routine identifier):例程标识符;
④DTC(diagnostic trouble code):故障诊断码;
⑤MII:介质无关接口,是以太网标准化接口,满足不同的传输速度;
A.12 软件BSW中的相关定义
①ECU抽象层:屏蔽芯片内部资源和板块资源
②MACL:对芯片封装成autosar规定的库API,比如MCU的驱动,I/O驱动,CPU驱动等
③复杂设备驱动:cdd,在autosar中未定义的功能封装
A.13 子网掩码
用于标识网络位和主机位,就好像人的姓(网络位)和名(主机位),网段中可能出现“同名”、“同姓”的IP地址,这个时候需要子网掩码来区分网段
A.14 VLAN
虚拟局域网,举例,1所高中800学生,分成8个班级,如1班,2班...每个学生编号为1101代表1班1号,1201代表2班1号等,每个班就相当于1个VLAN,每个班名称相当于VLAN名称,每个学生的编号就是IP地址,同一个班学生(用一个VLAN间)可以相互通信,不同班(不同VLAN)需要配置才能通信(利用交换机),需要通过网关来实现,发送方将IP地址和子网掩码发给网关,网关可以变为自己的IP地址后再发给接收方;
A.15 DNS
domain name system,域名解析服务器:将网址变为IP地址的服务器,也就是将域名翻译为IP地址,举例,如浏览器输入的网址,这时候机器要与百度的网站通信,外发数据包,需要知道百度的IP地址,这时候主机询问DNS服务器,DNS服务器自动将这个域名翻译成IP地址61.135.169.105;
A.16 MAC
网络中用于标识网卡设备的唯一网络地址,是物理地址,由硬件制造商统一分配,每台设备的MAC地址是唯一的,在网络中,IP地址可能是变化的,举例,经常搬家,每搬到一个小区单元xx小区xx单元xx号就是IP地址,但你的名字不变,这就是MAC,MAC不允许重名
A.17 ESCI
enhancedSCI,增强型串行通信接口,ESCI模块可以使MCU和外围设备及其它MCU异步通信,可以作为LIN的主节点
A.18 SCI
serial communication interface,串行通信接口,SCI总线是一种通用异步通信接口UART
A.19 上拉电阻
在某信号线上,通过电阻与一个固定的高电平VCC相接,使其电压在空闲状态保持在VCC电平,此时电阻被称为上拉电阻,一般使用10KΩ
如上图,有效值为低有效的开关按键,按键没按下时,MCU检测的I/O口为高电平,当按键按下后,检测到低电平,上拉电阻就是为了在按键未按下时处于一个固定的高电平
A.20 下拉电阻
将某信号线通过电阻接在固定的低电平GND上,使其空闲状态保持GND电平,此时的电阻被称为下拉电阻,一般使用10KΩ
一般使用在高有效的输入电路中
A.21OSI
Open System Interconnection,开放式系统互联,OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,它的缺点是分层太多,增加了网络工作的复杂性,所以没有大规模应用。后来人们对 OSI 进行了简化,合并了一些层,最终只保留了 4 层,从下到上分别是接口层、网络层、传输层和应用层,这就是大名鼎鼎的 TCP/IP 模型
一、总结
UART是一种串行、异步、全双工通信,用于芯片间近距离通信;
RS232是将UART的电气性能标准化的串口通信,通信距离短;
RS485是一种异步、串行、半双工通信,用于远距离通信;
IIC是一种同步、串行、半双工总线,用于近距离通信;
SPI是一种同步、串行、全双工总线,用于高速通信;
CAN是一种异步、串行、半双工通信,用于远距离通信;
LIN是一种串行、异步、半双工总线,用于远距离通信
以太网是一种交换机式通信,点对点的全双工通信
二、通信方式介绍
1、异步通信:发送方和接收方各有自己的时钟;
2、同步通信:发送方和接收方使用同一个时钟;
3、并行通信:一次性可以发出多个位数据,通信速度快,但浪费资源布线难度大,不同信道传递时,会有干扰。
4、串行通信:通常数据线只有1根,依次传递位数据,传输速率低
5、单工通信:只能发送方给接收方传输数据,接收方不能给发送方传输数据
6、半双工通信:半双工只有1个节点传输信号,比如A给B发送时,B不可以给A发,只有1根传输线
7、全双工通信:双方都可以发送数据,比如A给B发送的同时,B可以给A发,有2根传输线
三、UART
1、概念
UART(universal asynchronous receiver transmitter)通用异步接收器,是一种串行,异步通信总线,有2条数据线,1条接收,1条发送,全双工通信,采用TTL电平作为逻辑“1”和逻辑“0”;
2、UART帧格式
①空闲位,发1,高电平;
②起始位,发0,低电平;
③校验位,对数据位“1”的个数做奇偶校验,若数据位里的“1”是偶数个,发1,若是奇数个,发0;
④停止位,发1,高电平;
⑤数据位超出8bit,则需要多帧发送,每帧都要以停止位结束,以空闲位开始;
⑥为了消除发送方与接收方的时钟误差,因此数据位只能发8Bit
3、UART硬件连接
一般情况下,处理器如SOC中会集成UART控制器,在使用中利用UART工作时,只要对内部的相关寄存器进行设置即可;
在芯片中,很多PIN既可以作为GPIO,又可以作为UART来使用,本质是引脚内部连接到对应的GPIO控制器或者UART控制器等;
FIFO(first in first out):先进先出,表示发送器和接收器的缓冲区都是使用队列的形式,用户按照顺序写了以后,发送器会按照顺序发到移位器里,再一位一位传输出去,或接收器会按照顺序接收到移位器中,再将数据从移位器放到队列中;
4、UART寄存器
收发模式:
轮询(polling mode):表示CPU不断的去读队列FIFO(串口),没有数据就继续工作,再去读如此反复,直到有数据后,CPU将数据放入自己的存储器;
中断(interrupt request):CPU不去询问串口,当串口有数据时,串口给CPU发中断信号,CPU再将数据放入存储器中;
DMA:直接存储器访问,串口会将数据直接放到存储器,不需要CPU去放入;
5、UART存在的问题
①电气接口不统一,只定义时序未定义电气特性(如连接器标准、TTL电平具体值,如高低电平识别值),不同处理器使用UART通信时,不能直接连接,所以实际不会直接使用UART串口;
②抗干扰差,数据容易出错;
③通信距离短,只用于1个电路板的2个不同芯片间的通信;
④点对点通信。
四、RS232
1、概念
用于串行通信的标准,采用标准的连接器,对连接器引脚作用加以规定,并对连接器,还对信号的电平加以规定(RS232也就是串口使用的UART,只在电气层作了标准规定);
接口为DB-9,一般是用RXD,TXD,GND(有针的是公头,带孔的是母头):
2、信号
逻辑“1”电平为(-5至-15V),逻辑“0”为(+5至+15V),传送距离为15m
一般情况下,在CPU和RS232之间会有1个电平转换芯片,用于将TTL和232电压进行转换,如美信的MAX232EPE:
3、RS232存在的问题
①接口电平信号较高,易损坏接口电路的芯片,又与TTL电平不兼容,需要额外添加电平转换芯片,成本高;
②通信速度低;
③易产生共模干扰,抗噪声干扰性弱;
④传输距离短(15m);
⑤点对点通信
五、RS485
1、概念
用于异步、串行通信的标准,可用于远距离通讯(1500m),抗干扰能力强,具有多站能力,可连接多个收发器,形成网络拓扑(最大支持32个节点),采用2线制(4线制少用,422总线使用4线制),半双工通信;
2、信号
采用差分信号进行传输,2线电压差为(+2V至+6V)表示逻辑“1”,2线电压差为(-2V至-6V)表示逻辑“0”,能有效减少噪声信号的干扰(因为是电压差,如果传输中电压衰减,两根线电压都会衰减但电压差不变,因此抗扰能力强),不易损坏接口电路的芯片,且电平与TTL电平兼容,可与TTL电路连接(但还是要有个电平转换芯片);
电平转换:在CPU和RS485之间会有1个电平转换芯片,用于将TTL和差分信号进行转换,如美信的MAX485
3、RS485优势
①接口信号电平低,不易损坏电路接口的芯片,且与TTL兼容,方便连接;
②通信速度快;
③抗干扰能力强;
④传输距离远(1500m);
⑤可实现多节点组网;
六、IIC总线
1、概念
inter integrated circuit,是一种同步、串行、半双工总线,用于近距离、低速芯片间的通信,最高400kbit/s,1根数据线SDA用于收发数据,1根时钟线SCL用于双方时钟的同步,硬件结构简单,成本较低;
IIC是一种多主机总线,分为主机和从机,主机有权发起和结束1次通信,但从机只能被主机呼叫,当多主机启用总线时,IIC有冲突检测和仲裁功能,每个器件既可以作主机又可以作从机(但同一个时刻只能1个主机),增加或删除其他器件不受影响,每个器件拥有一个唯一的地址(7bit),IIC支持中断和轮询功能;
2、通信
IIC总线通信过程:(总线空闲下,SCL和SDA都为1,高电平)
①主机发送起始信号启动总线(SCL为高电平,SDA由高变低电平为起始信号);
②主机发送1byte数据(7Bit的从机地址+1bit的后续数据传送方向),若1bit传送方向为0,后续数据由主机发给从机,若为1,则为从机发给主机;
③被寻址的从机发送应答信号回应主机;
④发送器发送1byte数据(从最高位开始发);
⑤接收器发送1bit的应答信号回应发送器(因此1帧9bit=1byte数据+1bit应答),应答是将接收器的SDA由高变低电平,非应答即保持高电平;
...(循环步骤④、⑤,可以发送多byte数据);
n.通信完成后主机发送停止信号释放总线(SCL为高电平,SDA由低变高电平为停止信号)。
注意:在步骤②中定义了数据发送方向,在后续发送时,不管发送多少byte,不允许再变更传送方向,一直是步骤②中定义的,直到主机再重新发起始信号,新的开始。
3、同步信号
发送器发1位数后,SLC变为高电平,要求仍发上一位数据,接收器进行接收,当SCL变低电平后,发送器可以发下一位数据,SCL再变高电平,接收器再进行读取1位
4、 典型IIC时序
①主机向从机发数据(当从机不应答,主机会停发或者主机不想发了会停发)
②从机向主机发数据
③主机先向从机发数据,然后从机再向主机发数据
注意:
①上面照片有深色底色是主机给从机发,白底色是从机给主机发;
②A表“应答”,A非表“非应答”,S表“起始信号”,P表“停止信号”。
IIC控制器(封装在芯片中)。
七、SPI总线
1、概念
serial peripheral interface,串行外设接口,是一种高速(与IIC、UART比较)、全双工、同步的串行通信总线;SPI是主从方式工作,1个主设备和1个或多个从设备,SPI有至少4根线,MISO(master input slave output,主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选),SPI布线简单成本低,越来越多的芯片会集成SPI控制器。
2、寻址
主设备与某个从设备通信时,先向从设备的片选线上发使能信号(高电平或低电平,根据从机而定),表示选中该从设备。
3、通信过程
SPI传送数据时,先传送高位,后传送低位,高电平表示逻辑”1“,低电平表示逻辑”0“,1byte数据传送完后无需应答可进行下一个字节传送;时钟线在上升沿或下降沿(取决于CPHL的值)时发送器发送数据,在紧接着的下降沿或上升沿接收器从总线上读数据,完成1Bit数据传送,8个时钟周期即完成1byte数据的传送。
4、极性和相位
SPI共4种工作模式,取决于极性(CPOL)和相位(CPHL),从设备在出厂时已配置好工作模式,通过对主设备的CPOL和CPHL配置后保证与从设备的工作模式一致;
CPOL表示SCLK在空闲时的状态:
①CPOL=0,空闲时SCLK为低电平;
②CPOL=1,空闲时SCLK为高电平。
CPHL表示采样时刻:
①CPHL=0,每个周期的第一个时钟沿采样;
②CPHL=1,每个周期的第二个时钟沿采样。
CPOL和CPHL,两两组合,共有4种模式。
CPOL=0,CPHL=0:
CPOL=0,CPHL=1:
CPOL=1,CPHL=0:
CPOL=1,CPHL=1:
5、 IIC与SPI的异同
相同点:
①均采用串行、同步的方式;
②均采用TTL电平,传输距离和应用场景类似(板内芯片间通信);
③均采用主从工作方式。
不同点:
①IIC为半双工,SPI为全双工;
②IIC有应答,SPI无应答;
③IIC用总线广播从机地址来寻址,SPI通过对应从机发送使能(片选CS);
④IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调。
八、CAN通信
1、概念
controller area network,控制器局域网,是一种异步、串行、半双工通信;
①汽车曾经用的总线有
Ⅰ、SAE J1850,由SAE发布,用于美国的车企,如福特、通用等,该协议没有统一物理层协议层等,因此在左右退出北美市场;
Ⅱ、SAE J1708,用于重型机械、商用车、农用车等,已被CAN总线取代;
Ⅲ、K-Line,用于故障诊断,由于波特率和网络管理局限,已被UDS取代;
Ⅳ、BEAN,丰田自主研发的总线,未公开,左右已被淘汰;
Ⅴ、Byte flight,用于安全气囊;
Ⅵ、D2B,用于多媒体传输。
②现常用总线有:
Ⅰ、CAN;
Ⅱ、CANFD;
Ⅲ、LIN;
Ⅳ、MOST;
Ⅴ、Flexray;
Ⅵ、车载以太网。
2、CAN标准
ISO 11898
ISO J1939(商用车)
ISO 15765(诊断)
3、通信特性
①多主通信,波特率为500k~1Mbit/s
②短帧结构,数据为8byte
③ID越小,优先级越高
④非破坏性总线仲裁机制(退出仲裁后进入只听状态,在总线空闲时再进行报文重发;只有当多节点同时使用总线时才有仲裁)
⑤可靠CRC校验
⑥自动重发,仲裁失败或传输期间被破坏
⑦自动脱离总线,在节点错误严重的情况下,切断与总线的联系,不影响其他节点
⑧最远通信10km(速率5Kbps以下),通信速率最高1Mbps(最长距离40m)
⑨最多节点达110个
⑩报文接收滤波,监听总线所有数据,接收相关报文,过滤不相关报文
⑪通过两条通信线(双绞线)产生的电压差传输数据
⑫一般主MCU都会集成CAN2.0A和CAN2.0B的CAN模块,也就是说,PCBA上不用再有CAN控制器,只要有CAN收发器即可
4、OSI模型
5、CAN的收发器
作用:是将逻辑数字信号与物理电平信号相互转换
6、同步问题
为了减少误差,需要定义采样点并在连续5个相同位后插入一个相反位进行位填充。
举例:
7、阻抗匹配
高频电路中负载阻抗要与传输线的特性阻抗一致,否则在线束末端,阻抗突变,发生反射,造成波形震荡,信号串扰等;
8因此线束两端需要120Ω的终端电阻
8、常见问题
物理层:
9、帧结构
9.1 数据帧
作用:节点间传送数据,分为:
①标准帧
②扩展帧
SOF:帧起始,由1显性位组成,只有总线空闲时,才可发,其他节点从这帧进行同步;
ID:每个报文拥有唯一ID,ID越小,优先级越高;
RTR:远程帧发送标识位,用于区分是数据帧还是远程帧,1显性位表示标准帧,1隐性位表远程帧;
SRR:替代远程帧请求位,由1隐性位组成;
IDE:标识扩展位,标准帧中位于控制段,由1显性位组成;在扩展帧中位于仲裁段,由1隐性位组成;
r0:保留位,由1显性位组成;
r1:保留位,由1显性位组成;
DLC:数据长度码,标识报文的数据长度
数据段:byte0~byte7,传输时先发送MSB(最高位),一般使用摩托罗拉格式:
注意:在CAN矩阵中,若字节长度跨行,记住口诀,从LSB(最低位),从右往左数,从上往下数。
CRC:循环冗余校验,是对帧起始、仲裁段、控制段和数据段进行多项式计算,对发送和接收节点的数据进行校验:
CRC界定:由1隐性位组成
ACK应答:发送节点发1隐性位,接收节点接收正确无错误,接收节点发送1显性位;
ACK界定:由1隐性位组成
EOF:帧结束,由7隐性位组成
IFS:帧间隔,在EOF后,由3隐性位组成,ACK界定+EOF+IFS共11位隐性位发送完后即认为总线空闲
注意:在一帧报文即从SOF到IFS,若出现5个连续相同的位,要反相1位进行位填充(位填充也会占用总线带宽)
9.2 远程帧
作用:用于接收节点向某个发送节点请求数据,远程帧的ID可以与数据帧的ID相同
①远程帧没有数据段;
②远程帧的RTR为1隐性位。
③远程帧在通信过程为,发送节点发送远程帧,接收节点接收后,根据远程帧中的ID请求,回复相应ID的数据帧:
9.3 主动错误帧
某节点错误向其他节点通知错误的帧
9.4 过载帧
用于接收节点向发送节点通知自身接收能力的帧
9.5帧间隔IFS
将数据帧或远程帧与前面的帧分离的帧
10、CAN BUS错误
10.1 错误类型
①CRC错误:接收节点计算的CRC值与发送的CRC不同,CRC段检测;
②位填充错误:传输信号违反“位填充”规则,在DEL前检测;
③应答错误:发送节点在ACK阶段没有接收到应答信号,ACK段检测;
④位发送错误:发送节点在发送时检测总线电平与发送电平不同,从SOF至EOF都在检测;
⑤格式错误:传输的数据帧格式与任何合法的帧格式不符,DEL和EOF段检测。
10.2 处理措施
当出现以上5种错误之一后,总线发出错误帧:
①主动错误状态的节点发送:6显+8隐;
②被动错误状态的节点发送:6隐+8隐;
10.3总线错误处理流程图
①TEC和REC清0;
②检测到1次失败传输,REC加1;
③REC加8;
④成功接收1帧报文,REC减1;
⑤发送时检测到错误,TEC加8;
⑥成功发送1帧报文,TEC减1;
⑦当TEC<127时,TEC加8,否则TEC加1;
⑧若TEC>255,CANbus断开连接。
11、CAN测试
11.1 数据链路层测试需求
①CAN报文监测、报文记录、错误帧记录;
②DBC解析信号、线图绘制,总线负载、仪表板功能;
③报文自动化脚本发送。
11.2 CAN物理层测试需求
物理波形测试、CAN波形穿行解码、CAN错误位指示
11.3 测试工具
CANOE、PCAN、Kvaser、Vspy
12、网络管理
12.1 OSEK网络管理
①分为直接网络管理和间接网络管理:
下面都是针对直接网络管理做的描述
②建环机制:网管报文ID从小到达发送,由最大ID节点再到最小ID依次建环
③报文解释:
12.2Autosar网络管理
①上图中当ECU1要发送消息给ECU2了,这时它会主动进入Repeat Message State,开始自己这个节点的网络传输,当它快速的发出了第一帧NM Message(就是上图中蓝色的向下箭头),ECU2接收到这一帧NM Message 之后,ECU2被动进入Repeat Message State,同样也开始重复的传输NM Message,当这两个ECU都发足了规定数量的Repeat Message后分别进入各自的Normal State中
②当进入Repeat Message State后,会开启一个计时器T_NM_TIMEROUT,这个计时器在发送或收到一帧NM Message的时候会自动清零,当计时器处在Normal State或Ready Sleep State下的时候如果超时就会进入到Prepare Sleep Mode,也就是触发进入Prepare Sleep Mode的条件
③在正常模式下,NM Message也会周期性的发送,防止T_NM_TIMEROUT超时。每次发送NM Message就会更新T_NM_TIMEROUT。当这时ECU不再准备发送和接收数据后,就可以进入到Ready Sleep State,Ready Sleep State不再发送NM Message
④在Ready Sleep State下,还有其他节点会发网络管理帧保持网络唤醒,此时ECU处于等待进入Prepare Sleep Mode,T_NM_TIMEROUT仍然会因为NM Message而清零。所以这样的结果就是,当网络上所有的ECU发出了最后一帧NM Message(之后没有ECU再发送NM Message),大家都同步清零T_NM_TIMEROUT,如果设置的T_NM_TIMEROUT相同,会同步进入PrepareSleep Mode阶段
⑤到这个阶段的时候,就是等待,让所有的节点有时间结束网络活动,所有的总线静默。然后在等待T_WAIT_BUS_SLEEP时间后,所有节点进入Bus-SleepMode
⑥当ECU上电后会默认进入Bus-Sleep Mode,而且网络其实是在不断的试图进入到Bus-Sleep Mode中,但是由于有NM Message在总线上的传输,所以才能保留网络模式不进入Bus-Sleep Mode中。大家可以想象成看门狗,NM Message就是不断的喂狗,一旦没有NM Message,就进Bus-Sleep Mode
13、诊断
13.1概念与术语
13.2网络层
13.3 应用层
②10服务状态切换图
2、3E服务
①用于向服务器(ECU)指示诊断仪仍然连接在网络上,先前激活的特定诊断服务和/或通信功能仍然保持激活状态
②周期性发送3E 00/80(80指不需要肯定响应)
③报文格式:
3、22/2E服务(读DID/写DID)
①DID(由2字节构成)所表示参数的格式由OEM自己约定,DID可以定义为比如软件版本、硬件版本、系统零部件号等
② DID在前期设计时,已经由OEM确定,22服务的请求报文
③22服务的肯定响应报文
④22读DID示例
⑤2E服务请求报文
⑥2E服务的肯定响应
⑦2E写DID示例
⑧数据流示例:
4、19服务(读DTC)
①DTC格式
②ISO 153031-6中DTC的高字节和低字节说明:
③常用19服务的子功能
④19 01通过状态掩码报告DTC数目,19 02通过状态掩码报告DTC
●19 01的肯定响应
●19 02的肯定响应
⑤DTC示例1,19 01读DTC数目
读出来即为:
⑥DTC示例2,19 02读DTC
读出来即为:
DTC示例3,数据流示例:
5、14服务(清除DTC)
FFFFFF必须支持
P2can_server
P2*can_server
S3client
S3server
如果在超时内没有收到3E服务,则会退出非默认会话,回到默认会话
数据流示例:
最后的27 01后面的00 00 00。。。表示已经解锁
14、安全攻防
ACES(自驾、联网、电动、共享)面临的网络攻击危险
14.1 攻击分类
14.2 车外攻击面
①车外攻击面:HTTPS、网络路由协议等
②常见攻击手段:
⭕中间人攻击:窃听或修改2个ECU间的通信数据
⭕会话劫持
⭕DOS攻击(Denial of Service):淹没通信信道,耗尽带宽、CPU功率等资源
⭕重放攻击:捕捉关键信号,当人不在车内时,通过433MHz的无线频率重放信号,打开车门进而驾驶车辆
⭕消息篡改,节点冒充、路由器表溢出、TCP/ACK风暴
14.3 车内攻击面
①车内攻击面:车端协议、硬件安全、车载系统
②常见攻击手段:
⭕消息注入、远程代码执行
⭕总线关闭(如持续发错误信号导致车辆进入BUSOFF进而总线关闭,最后变为拒绝服务攻击)
14.4 常被攻击的ECU
●IVI
●TBOX
●GW
●UDS诊断服务
●OBD接口
●ADAS
●TSP
●充电桩
●OTA
●手机APP
14.5 CAN总线安全
14.5.1 攻击路径
①远程攻击
⭕通过远程攻击获取控制器的访问权限,例如TBOX、IVI等,再通过车内总线控制其他ECU,最后控制整个车辆
②OBD攻击
⭕通过OBD接口发送恶意总线消息
③物理攻击
⭕在车上安装硬件攻击设备,再通过车内总线控制车辆功能
14.5.2 攻击流程
14.5.3 常见攻击方式
14.5.4 总线网络攻击测试工具
①FUZZ是针对车内总线攻击研究,以攻击的手段来发现ECU的问题,如栈溢出、堆溢出、后门指令、恶意消息等,并自动生成报告。全面确定车没网络的问题
②FUZZ工具(以极氪开发的FUZZ工具为例)
⭕工具原理(很多供应商会在ECU的软件里植入后门指令扫描,为了不通过27服务就可以拿到最高权限)
14.6 安全攻击案例
1、Tesla
2、Jeep
3、BMW
九、LIN总线
1、总线性能
1.1 LIN(local interconnect network)本地互联网络
提供一种低成本的车用总线,从而形成对CAN的补充,一般天窗控制器、雨量光线传感器、方向盘开关、玻璃升降开关、雨刮电机、轮速传感器等
1.2 标准
SAE J2602(主要应用在美国车上)
ISO 15765-2传输层规范
ISO 14229诊断服务
1.3 LIN总线特点
①功能简单,实时性低
②成本低
③传感器/执行器级的总线
④基于UART数据格式,几乎所有MCU都支持LIN总线的硬件基础
⑤单主多从结构,单线12V的传输
⑥串行通信,线束干扰小,传输距离长,长达40m传输距离
⑦开放,不需要使用费和版税
⑧从节点无须晶振或陶瓷振荡器就可以同步,利用报头里的同步场实现同步,大幅降低成本
⑨支持多包报文传输,支持诊断功能
⑩可以自由增减从节点,不会对其他从节点影响,其余节点的软硬件不需更改
1.4 LIN版本:LIN2.0
1.5 波特率
9600,19200(国内OEM用),10400(美国用)bit/s
2、规范
①LIN物理层规范:描述LIN物理层包括位传输速率,时钟容错范围等
②LIN协议规范,描述LIN总线的数据链路层,帧结构等
③LIN诊断和配置规范:描述了如何在数据链路层之上提供诊断信息和节点配置服务
④LIN应用程序接口(API)描述了网络和应用程序之间的接口,包括诊断模块
⑤LIN配置语言规范(LDF):介绍了LIN配置文件的格式,用于配置整个网络,并作为OEM和不同节点供应商之间的通用接口,同时可作为开发和分析工具的一个输入,类似CAN的DBC文件
⑥LIN节点能力描述语言规范(NCF):描述了从机节点的语言格式,LIN集群设计工具可以使用NCF文件自动生成LIN的LDF文件
⑦LIN传输层规范:描述了传输最高能达到4095个字节数据的方法
⑧诊断规范:描述了从机节点所支持的诊断服务类型,与CAN的诊断差不多
3、LIN与CAN的对比
4、物理层
4.1 LIN无需专用的控制器
①MCU处理LIN协议使用SCI接口实现物理通信
②LIN通信基于SCI格式帧:start位+8位有效位+stop位
③ESCI或LIN-SCI:代替MCU实现LIN通信任务
4.2 LIN收发器
逻辑值与物理总线电平之间转换
① Tx通过集电极开路连到总线,Rx通过施密特触发器连接到总线
②收发器内部有30k上拉电阻,若作为主节点,还要外接1K的上拉电阻
③上拉电阻与电源之间有二极管保护,防止在电源掉电的情况下总线电平被拉低
4.3 单线波特率<20kbps
4.4 振荡器
①振荡器要求:
●从节点必须能正确识别间隔场与同步场
●同步场后,主、从节点时钟误差<2%
②从节点种类:
●采用外部晶振:无需同步场即可与主节点同步
●采用片内晶振:需要同步场与主节点同步
4.5 位定时(bit timing)
①所有从节点的位定时必须以主节点的位定时为参考
②同步过程:以下降沿作为判断条件
4.6 信号规范signal specification
①显性位dominant:
●逻辑0
●发送:总线电平<20%Vsup(voltage supply,电源电压)
●接收:总线电平<40%Vsup
②隐性位recessive
●逻辑1
●发送:总线电平>80%Vsup
●接收:总线电平>60%Vsup
4.7 总线特性Line characteristics(一般设计到LIN网络时才用)
①LIN节点的数量是根据计算公式得出,一般LIN传输的性能好坏通过计算值,值,
在1~5μs间
②Cbus:表示总线电容,Rbus:表示总线电阻
③示例:
4.8 容错性能performance during fault modes)
①电源或地线断路
●单个节点电源或地线断路(节点丢失),不影响其他节点通信
●排除故障后,可以重新加入进行通信
②总线与电源或地线短路
●总线通信可能无法进行,但ECU不能被损坏
●排除故障后,总线恢复正常通信
5、传输层
5.1 传输特点
①主节点:既有主任务又有从任务,因此可以发送报文头和数据响应
②从节点:只有从任务,只能发送数据响应
5.2 链路层-报文帧
①主任务发送报头,从任务响应来补充报头形成完整的报文
②报文的内容和ID跟CAN的相似
③广播式,所有从节点都能同时接受和响应总线的帧
5.3 报文
①信号报文:位于数据场
②诊断报文:2个ID来传输
十、CAN FD
1、标准
ISO 11898
SAE J2284-4,网络通信应用采用500k/2M波特率(汽车网络通信)
SAE J2284-5,点对点通信采用500k/5M波特率(如ECU刷写)
CiA 1301
2、波特率
报头报尾500kbit/s
数据段为2Mbit/s
根据不同的标准,波特率分配存在不同:
3、通信特性
①数据为64byte
②与CAN2.0用的线束一致
③与大部分CAN软件兼容
④上层应用层架构不需要改变,在原来基础上扩展即可
⑤硬件需要兼容,例如兼容CAN 2.0和CAN FD的CAN收发器和CAN控制器
⑥非ISO CAN FD和ISO CAN FD是无法兼容的,一般在后都是ISO标准的CAN FD
4、报文
4.1 报文格式:
4.2 SOF起始段与仲裁段:
①IDE:拓展标识位
②RRS:远程请求替换
③SRR:替代远程请求,可以不考虑
④CAN FD不再支持远程帧,不推荐使用传统CAN帧远程请求CAN FD数据
4.3 控制场:
4.4 数据场:
4.5 CRC场:
①数据长≤16byte:
②数据长>16byte:
4.6 ACK、EOF、IMF场:
5、CAN与CAN FD的兼容问题
5.1 问题1:网络共存,如何解决通讯速率和数据长度不同的冲突?
解决思路:
①传统CAN节点以1mbit/s传输数据到CAN FD:
直接通过,因为CAN FD是向下兼容的
②CAN FD以8mbit/s传输数据到CAN
采用CAN FD路由器,先将CAN FD的速率降到1mbit/s再转出去
③CAN向CAN FD传输8字节数据
直接通过,因为CAN FD是向下兼容的
④CAN FD向CAN传输64字节数据
采用可编程CAN FD路由器,预先编程并下载到路由器,CAN FD的数据通过路由器后按照预先设置的程序将数据做拆包等处理再转成8字节发出去给CAN,但CAN的负载率不一定能支持
5.2 共存网络中,如何解决几个设备间的交叉通信,多个切换的问题?如何解决一个设备同时与CAN FD和CAN节点通讯切换
解决思路:
①将ECU与ABS即CAN FD之间的数据1:1转发
②将ECU或ABS与其他底盘开关和ICU之间的数据切换为CAN再转发
5.3 如何解决测试平台共用问题?
解决思路:
CAN FD节点再进行环境测试、疲劳测试、寿命测试等的情况下,只需要测试设备本身的性能,与通讯速率/字节数无关,因此这几类测试可以沿用CAN平台的测试设备
关于CAN FD的通讯性能测试、兼容性测试等涉及到通讯机制本身,这类测试需要使用新的CAN FD测试工具
十一、FlexRay
1、概念
FlexRay,flexray协会已经解散,随着以太网的崛起和flexray的开发成本及难度,flexray基本已经淘汰,因此不作过多介绍
2、通信特性
①作为主干网络
②单通道最大数据的传输速率达10Mbit/s
③实时性高
④支持系统集成
⑤冗余传输特性,设计2个通道,当某个通道失效后,另外一个通道继续工作
⑥双绞线传输
3、拓扑结构
①线形拓扑
②星形拓扑
③混合形拓扑
4、安全攻防
①静态帧攻击方式:
—重放攻击:攻击手段与CAN相同
—恶意消息注入
—DOS攻击:根据FlexRay slots机制,占用所有时隙,导致flexray所有报文无法通信
—其他
②动态帧攻击方式(诊断):
—与CAN的UDS诊断攻击类似
十二、车载以太网
1、标准
ISO 21111、IEEE 802.3
2、波特率
10BASE-T1S
100BASE-T1
1000BASE-T1
3、通信特性
①交换机式通信,点对点通信
②使用双绞线,全双工通信
③负载率:<90%(非强安全信息),若只传输音视频,可以达到100%,若传输强安全的,负载率可以适时地降低点
4、OSI模型
4.1 各层需要满足的协议
4.2 各层通信协议及测试标准
4.3 以太网传输机制
①如果节点A和B在同一网段,则用到交换机即可
②如果节点A和B不在同一个网段,需要使用路由器
③假设节点A传输“Baidu”的文字给节点B的示例传输流程
5、以太网开发内容
5.1 V字形架构开发
5.2 通信设计
6、各层功能
7、各协议介绍
7.1 应用层SOME/IP
7.1.1 SOA概念
7.1.2 SOA的实现
①关键技术:为了实现不同操作系统,不同的平台通信交互,需要有统一的、标准的通信协议及中间件
②SOME/IP作为一种基于车载以太网协议的,面向服务的灵活中间件,解决了SOA通信的中间件
③SOME/IP报文:打包服务接口内容,基于C/S(client/server)通信架构实现消费方与提供方的应用交互
7.1.3SOME/IP定义
①概念
scalable service-oriented middleware over IP,基于IP的可扩展的面向服务的中间件
②由来?
●先由宝马公司设计
●后由AUTOSAR集成
③应用场景
●车载以太网及SOA技术应用的驱动
●提供车内信息交互的中间件解决方案
●替代部分传统的CAN/MOST等通信场景
④特点
●可扩展的:适应不同的平台和操作系统,且支撑的平台可大可小
●面向服务:method、event、notification
●中间件:标准的API接口为APP程序提供服务的系统软件或服务程序
●基于IP:适配以太网TCP/IP协议的传输,大数据传输,限制数据广播发送
7.1.4 SOME/IP功能
7.1.5SOME/IP服务接口形式
7.1.6SOME/IP报文
7.1.7SD service discovery报文
①报文格式
③eventgroup entry:
提供entry的附加信息
—IP地址
—传输层协议
—端口号
●分类
—endpoint option(用于传输IPV4或IPV6的endpoint信息,如IP地址/port号;以及使用的传输层协议)
—multicast option(用于广播IPV4或IPV6的IP地址及port号,其中传输层协议只能用UDP协议)
—configuration option(用于配置通信过程的必要的信息)
—load balancing option(负载平衡option用于区分服务的不同实例的优先级,以便client端根据设置选择服务实例)
详解SOME/IP-SD协议文档-翻译版 - 知乎
②service discovery通信行为:SOME/IP SD的通信行为 ()
7.1.8SOME/IP协议
●任何transport protocol binding必须支持一条报文中封装多个SOME/IP报文
●SOME/IP通信目前支持UDP和TCP binding
7.1.9SOME/IP错误处理
7.1.10、SOME/IP应用示例
eg.“限速标志识别”服务
7.1.11 SOME/IP设计
●架构设计
●工具
7.2 传输层TCP/IP
7.3网络层IP
8、测试
8.1 以太网测试标准:
8.2 测试内容
8.3 测试工具
怿星科技-smartEHT(基于CAPL)
------------------------------------------------------------------------------------------------------------
参考文章:
直播 | 以太网基础课01——SOA新架构下的汽车以太网技术总览 ()/watch/3754536?vid=309ab8f4b5&userid=22970650&nickname=5ZGo6Iq5&avatar=&ts=1677479924000&sign=9ec28ee09e12f8f3ee8e748817973e79¶m4=NzMwNTM%3D
/watch/3792605?vid=202eea0331&userid=22970650&nickname=5ZGo6Iq5&avatar=&ts=1679996459000&sign=199ddb1964b6f241ef8d860e39c94f2b¶m4=NzM5OTQ%3DICMP协议_icmp响应时间太高_dream_uping的博客-CSDN博客
LIN总线技术原理基础
汽车LIN总线诊断及节点配置规范_哔哩哔哩_bilibili
一、OSI参考模型_渔火鳅的博客-CSDN博客