ISO 11898、ISO 11519、ISO 14229、ISO 15765、ISO 26262、ISO 21434的解释

先逐个学习

一、ISO 11898

ISO 11898包括(1-6)

ISO 11898-1:数据链路层(LLC+MAC)和物理编码子层(PCS)

ISO 11898-2:高速物理介质附加(PMA)子层

ISO 11898-3:低俗容错(≤125kbps)

ISO 11898-4:时间触发通讯

ISO 11898-5:低功耗模式的高速介质访问单元

ISO 11898-6:带选择性唤醒功能的高速介质访问单元(CAN FD)

1. ISO 11898-1

我参考的是ISO 11898-1(2024-05)

ISO 11898 是通信速度为 5kbps ~ 1Mbps 的 CAN 高速通信标准。规范中同时定义了:数据链路层和高速物理层。

ISO 11898-1 主要介绍了逻辑链路控制(LLC),介质访问控制(MAC),通过连接单元(AUI)指定了物理编码子层(PCS)。PSC还提供PWM编码,该编码将链接到CAN SIC XL收发器,该收发器提供PWM解码。

ISO 11898-1的内容在下图这些方面作用和影响

ISO 11898-1规定数据链路层、部分物理层的一些东西

一些名词的解析

AUI:连接单元接口

LLC:逻辑链路控制

MAC:介质访问控制

MDI:介质依赖接口

PCS:物理编码子层

DLL层分为两个子层:LLC子层(负责流量控制、恢复管理和时间戳)、MAC子层(负责数据封装、数据解封装、帧编码、位填充、解封装、序列化、反序列化、错误检测、错误信令和确认)

LLC层:

LLC层主要关注于提供网络层所需的服务,而这些服务是独立于具体的物理介质和介质访问控制机制的

LLC子层并不改变MAC帧的结构,而是在MAC子层提供的服务基础上,进行过滤和管理

LLC层不修改MAC帧内容,仅依据过滤规则决定是否向上层传递完整帧结构

也就是说,LLC层并不改变MAC帧的结构,而是通过接收过滤功能,决定是否将MAC帧数据传递给上层。所以LLC帧的结构与MAC帧相同,都是为:帧起始+仲裁段+控制段+数据段+CRC段+ACK段+帧结束

其实我写到这里,就会想,那么LLC子层把这些东西丢给我,我网络层应该怎么接收数据呢,其实担心有点多余了,我使用的是S32K144芯片,其SDK中有个CAN_Receive()函数,在中断中使用这个函数进行接收数据,他会还给你一个结构体,这个结构体里面会把LLC帧数据解析好,直接可以使用了

LLC帧:

SOF

Arbitration field

Control field

Data field

CRC field

ACK field

EOF

帧起始

仲裁段

控制段

数据段

CRC段

ACK段

帧结束

LCC层的主要功能包括:

1. 服务提供:LLC子层为网络层提供了一系列服务,如数据传输、错误检测、流量控制等。这些服务不依赖于底层介质的特性,而是提供了一个统一的接口供上层使用。

2. 协议无关性:LLC子层的设计是为了能够支持不通的介质访问控制方法,如以太网、FDDI、令牌环等。也就是说,无论下层采用哪种介质访问控制协议,LLC子层都能提供一致的服务

3. 错误检测与控制:LLC子层包含了错误检测机制,如循环冗余校验(CRC),用于检测数据传输中的错误。它可能还包括错误恢复机制,如重传请求,以确保数据的可靠传输。

4. 流量控制:LLC子层还允许上层选择不同的服务质量,如无确认的、面向连接的、无连接的

在CAN总线通信中,LLC子层的实现可能被简化或省略,这是以为CAN总线的通信协议已经包含类似的功能,如错误检测、仲裁和重传机制。

但是在理论模型中,LLC子层的概念仍然是理解数据链路层架构与职责的重要部分。

通过将LCC子层与MAC子层分离,可以实现介质访问控制方法的独立性,使数据链路层的设计更加模块化和灵活。

MAC层:

MAC子层位于LLC(逻辑链路控制)与PL(物理层)之间,为LLC层和PL层提供服务

如果需要发送数据,那么需要将LLC包转换成MAC包,如果需要接受数据,则需要把MAC包转换成LLC包

MAC服务:数据封装、媒介传输过程管理、接收传输过程管理、接收数据反串口化

MAC帧:

SOF

Arbitration field

Control field

Data field

CRC field

ACK field

EOF

帧起始

仲裁段

控制段

数据段

CRC段

ACK段

帧结束

PCS层:

ISO 11898-1 中的PCS主要是通用逻辑规范,不限定具体物理介质(如双绞线、光纤等)

物理层中有PCS子层和PMA子层:

  • PCS:负责逻辑信号到物理位的编码/解码、位定时、同步。

  • PMA:负责实际电气信号的驱动与接收(如CAN收发器的电平转换)。

(1) 逻辑信号与物理信号的映射

  • 显性位(Dominant Bit)

    • 逻辑“0”,对应物理总线的差分电压(例如,高速CAN中为 CAN_H - CAN_L = 2V)。

    • 显性位具有总线仲裁优先级(即逻辑“0”覆盖“1”)。

  • 隐性位(Recessive Bit)

    • 逻辑“1”,对应总线无有效差分电压(CAN_H ≈ CAN_L ≈ 2.5V)。

(2) 位定时与同步

  • 位时间(Bit Time)划分

    • 每个位的持续时间被划分为 4个段

      1. 同步段(Sync Segment):用于节点硬同步(如帧起始SOF)。

      2. 传播段(Propagation Segment):补偿信号在总线上的物理传输延迟。

      3. 相位缓冲段1(Phase Buffer Segment 1):容忍节点间的时钟误差。

      4. 相位缓冲段2(Phase Buffer Segment 2):动态调整同步。

  • 同步机制

    • 硬同步:在帧起始(SOF)的下降沿强制同步。

    • 重同步:在后续位的边沿动态调整位时间,以补偿时钟漂移。

(3) 位填充(Bit Stuffing)

  • 规则:每连续出现 5个相同逻辑位 后,插入一个 相反位(如 00000 后插入 1)。

  • 目的:确保足够的信号跳变,维持接收方时钟同步。

(4) 错误检测与信号监控

  • 总线状态监控:检测显性/隐性电平是否符合规范。

  • 错误信号生成:若物理层检测到电平异常(如总线短路或断路),触发错误帧。

2. ISO 11898-2

ISO 11898-2主要规定了高速CAN网络的物理层电气特性、总线拓扑、信号传输规范等核心内容

3. ISO 11898-3

ISO 11898-3主要是讲述了低俗容错CAN的一些内容,传输速度≤125kbps。定义低速、高容错CAN网络的物理层规范,支持复杂环境下的可靠通信

4. ISO 11898-4

它扩展了经典CAN协议,引入了基于时间触发的确定性通信机制,适用于对实时性和时序要求极高的系统(如线控系统、航空航天控制)

特性TTCAN(ISO 11898-4)经典CAN(ISO 11898-2/3)
通信机制时间触发(确定性)事件触发(基于优先级仲裁)
实时性严格保证传输时间非确定性(高优先级消息优先)
总线利用率需预留时间槽,可能降低利用率动态仲裁,利用率更高
复杂度需全局时钟同步和调度表配置简单,即插即用
适用场景硬实时系统(如线控系统)软实时系统(如车身控制、状态监测)

需要有支持TTCAN的控制器才能用这个协议

5. ISO 11898-5

特性ISO 11898-5ISO 11898-2
低功耗模式支持睡眠/唤醒机制
EMC性能优化边沿控制和信号对称性基础设计
故障保护增强短路和反接保护有限保护
典型应用低功耗、高可靠性场景(如新能源车)传统高速控制(发动机、ABS)

需要选择支持ISO 11898-5的低功耗模式的收发器

6. ISO 11898-6

ISO 11898-6 是经典高速 CAN(ISO 11898-2)的扩展,旨在通过 可变数据速率(CAN FD) 提升网络带宽和效率,同时保持与传统 CAN 节点的兼容性。

支持双速率传输:仲裁段使用经典速率(≤1M);数据段速率提升至2~5Mbps

数据长度扩展:单帧数据长度从8字节扩展至64字节

二、ISO 11519

ISO 11519包括(1-4)

ISO 11519-1:总则和定义

ISO 11519-2:低速CAN (功能整合至ISO 11898-3(低速容错CAN))

ISO 11519-3:车辆局域网VAN协议(被LIN总线取代)

ISO 11519-4:CARTP协议 (被TTCAN(ISO 11898-4)和 FlexRay(ISO17458)取代)

标准核心内容现状现代替代标准
ISO 11519-1低速车载通信通用框架废止,被整合ISO 11898系列、SAE J1939
ISO 11519-2低速CAN物理层规范功能并入ISO 11898-3ISO 11898-3(低速容错CAN)
ISO 11519-3VAN总线(单线/双线车身控制)被LIN总线取代LIN(ISO 17987)
ISO 11519-4CARTP(令牌传递容错协议)淘汰,被时间触发协议取代TTCAN(ISO 11898-4)、FlexRay

三、ISO 14229

通用的诊断服务标准

包括:

①. 诊断和通信管理功能单元

1. 0x10(DiagnosticSessionControl)
2. 0x11(ECUReset)
3. 0x27(SecurityAccess)
4. 0x29(Authentication)
5. 0x28(CommunicationControl)
6. 0x3E(TesterPresent)
7. 0x83(AccessTimingParameter)
8. 0x84(SecuredDataTransmission)
9. 0x85(ControlDTCSetting)
10. 0x86(ResponseOnEvent)
11. 0x87(LinkControl)

②. 数据传输功能单元

1. 0x22(ReadDataByIdentifier)
2. 0x23(ReadMemoryByAddress)
3. 0x24(ReadScalingDataByIdentifier)
4. 0x2A(ReadDataByPeriodicIdentifier)
5. 0x2C(DynamicallyDefineDataIdentifier)
6. 0x2E(WriteDataByIdentifier)
7. 0x3D(WriteMemoryByAddress)

③. 已存储数据传输功能单元

1. 0x14(ClearDiagnosticInformation)
2. 0x19(ReadDTCInformation)

④. 输入输出控制功能单元

1. 0x2F(InputOutputControlByIdentifier)

⑤. 例程控制功能单元

1. 0x31(RoutineControl)

⑥. 上传下载功能单元

1. 0x34(RequestDownload)

2. 0x35(RequestUpload)

3. 0x36(TransferData)

4. 0x37(RequestTransferExit)

四、ISO 15765

1. ISO 15765-1

基本介绍,没啥东西

2. ISO 15765-2

网络层服务

针对于数据段,主要用于诊断UDS

普通CAN总线,一帧的数据,只有8个字节,如果需要发送超过8字节的书,就需要多个帧,这样就需要分割数据、重组数据,就需要连续帧的帮助

拆数据:将数据拆成连续帧的格式

组数据:根据连续帧的协议重新拼接数据

在 ISO 15765-2中,N_PDU(Network Protocol Data Unit,网络层协议数据单元)是网络层协议中用于传输诊断数据的基本单位,它是由N_PCI(Network Protocol Control Information,网络协议控制信息)和N_Data(Network Data,网络层数据)组成

网络层协议数据单元的格式   (N_PDU)

N_PDU = N_PCI + N_Data

N_PDU的类型有四种:单帧SF、首诊FF、连续帧CF、流控帧FC

感觉得单独写一篇N_PDU的

3. ISO 15765-3

主要内容为应用层定义,有关UDS(Unified Diagnostic Services,统一诊断服务)

一条诊断报文:SID + Sub-Function + Data

SID:服务标识符

Sub-Function:子功能

SID是该帧N_Data的第一个字节,Sub-Function是该帧N_Data的第二个字节

例子:02  10  01  AA  AA  AA  AA  AA

用AA填充,该帧为首帧,SID为10,即10服务,子服务为01,01为进入默认会话

响应标识符:肯定响应or否定响应

肯定响应:SID+0x40

否定响应:固定为7F

ISO 15765-3中还规定了很多时间参数,先不总结了太多了,就简单看一下各个文档是干嘛的就行

4. ISO 15765-4

物理寻址、功能寻址

0x7DF是功能寻址,所有的ECU都要回复

一个ECU有3个:一个是功能寻址请求ID,一个是物理寻址请求ID,一个是回复Response ID

诊断回复的ID都是这个Response ID

五、ISO 26262

功能安全

ASIL:安全完整性等级,根据危害事件的严重性、暴露概率、可控性将系统划分为 ASIL A/B/C/D四个等级,D等级为最高等级(如刹车系统、自动驾驶控制模块)

QM:无需特殊安全措施,按质量管理流程即可

对于软件而言,遵循安全编码规范(如MISRA C)、模块化测试与验证

六、ISO 21434

车辆网络安全(信息安全)

核心目的:为汽车电子电气系统的网络安全提供全生命周期管理框架,确保车辆在设计、生产、使用到报废的各个环节抵御网络攻击,防止数据泄露、功能失效或恶意控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值