当前位置: 首页 > news >正文

从OSI七层网络模型角度了解CAN通信协议

前言:先占个位置,文章内容皆来自网络,我只是搬运工,等后面理解深刻了再进行修文。

CAN通信协议的网络架构基于OSI七层模型进行设计,但实际实现中根据其应用场景(如汽车电子、工业控制等)进行了简化和优化。以下是结合OSI模型从应用层向下的分层解析,及其在CAN协议中的具体实现和应用:


一、应用层(Application Layer)

功能:定义具体的应用协议,如设备控制指令、诊断服务、数据交互格式等。
CAN实现

  • 自定义应用协议:如工业自动化中的设备控制指令格式。
  • 标准化协议
    • CANopen:实现设备参数配置、实时控制、同步通信等,支持对象字典(Object Dictionary)机制1569。
    • UDS(ISO 14229):用于车辆诊断,定义诊断请求与响应格式(如故障码读取、ECU编程)6769。
  • 数据格式:通过PDU(Protocol Data Unit)封装数据,例如通过信号打包/解包处理4951。

二、表示层(Presentation Layer)

功能:数据格式转换、加密/解密、压缩/解压。
CAN实现

  • CAN协议本身不直接定义表示层功能,但通过上层协议实现:
    • CANopen:使用对象字典统一数据格式,支持数据类型(如整数、浮点数)的标准化表示69。
    • 诊断协议:如UDS中的ASN.1编码规则对诊断数据进行结构化封装67。

三、会话层(Session Layer)

功能:管理通信会话(建立、维护、终止),同步节点间交互。
CAN实现

  • CAN总线无原生会话层,但通过应用层协议扩展:
    • CANopen:通过NMT(网络管理协议)控制节点状态(启动/停止),实现会话管理69。
    • 诊断服务:UDS中的会话控制服务(如切换诊断模式)管理通信状态67。

四、传输层(Transport Layer)

功能:端到端的数据可靠传输,处理大数据分片与重组。
CAN实现

  • ISO 15765-2(CAN TP)
    • 分片与重组:将超过8字节的数据分割为多帧传输(如诊断长报文)2767。
    • 流控制:通过流控帧(Flow Control Frame)协调发送与接收速率67。
  • 经典CAN:单帧最大8字节,不涉及传输层分片915。

五、网络层(Network Layer)

功能:数据路由、地址管理与逻辑寻址。
CAN实现

  • 广播通信:默认所有节点接收报文,通过标识符(ID)过滤目标数据1527。
  • 报文滤波:硬件或软件配置接收过滤器,仅处理特定ID范围的帧15。
  • 网关功能:通过PDU路由器(如AUTOSAR PduR模块)跨总线转发数据4951。

六、数据链路层(Data Link Layer)

功能:帧格式定义、错误检测、仲裁机制、流量控制。
CAN实现(ISO 11898-1)

  • 帧结构
    • 标准帧(11位ID)扩展帧(29位ID),支持优先级仲裁915。
    • 帧类型:数据帧、远程帧、错误帧、过载帧1527。
  • 仲裁机制:非破坏性位仲裁(显性位覆盖隐性位)927。
  • 错误处理:CRC校验、位填充、错误帧重传1564。
  • 逻辑链路控制(LLC):报文过滤与错误恢复1567。

七、物理层(Physical Layer)

功能:电气特性、信号编码、总线拓扑。
CAN实现(ISO 11898-2/3)

  • 电气标准
    • 高速CAN(ISO 11898-2):1 Mbps,差分信号(显性0: CAN_H=3.5V, CAN_L=1.5V;隐性1: 均2.5V)6469。
    • 低速容错CAN(ISO 11898-3):125 kbps,支持单线故障容错6469。
  • 拓扑结构
    • 闭环总线:终端电阻120Ω,最大长度40m64。
    • 开环总线:独立双线,最长1km64。
  • 同步机制:位定时与采样点配置(SS/PTS/PBS1/PBS2段)6467。

总结:CAN协议与OSI模型的对应关系

OSI层CAN实现核心标准/协议
应用层CANopen、UDS、J1939等ISO 14229, CiA 301
表示层由应用层协议(如对象字典)实现CANopen Object Dictionary
会话层网络管理协议(NMT)、诊断会话控制CiA 302, ISO 15765
传输层ISO 15765-2(CAN TP)ISO 15765-2
网络层标识符过滤、PDU路由(如AUTOSAR PduR)ISO 11898-1
数据链路层帧格式、仲裁、错误检测(ISO 11898-1)ISO 11898-1
物理层差分信号、位定时(ISO 11898-2/3)ISO 11898-2/3

扩展说明

  1. 协议灵活性:CAN仅强制要求物理层和数据链路层,上层协议可根据场景选择(如汽车用UDS,工业用CANopen)1569。
  2. 实时性优化:短帧设计(经典CAN 8字节)和优先级仲裁机制保障实时性927。
  3. 未来演进:CAN FD支持64字节数据段和可变速率,CAN XL目标2048字节,扩展应用场景69。

通过分层架构,CAN实现了从底层电气特性到高层应用协议的完整生态,成为工业与汽车领域的主流通信方案。

相关文章:

  • 关于金融开发领域的一些专业知识总结
  • jmeter接口测试[-面试篇-]
  • 【YOLOv8改进 - C2f融合】C2f融合SCConv :即插即用的空间和通道重建卷积
  • 我的uniapp自定义模板
  • 基于SpringBoot + Vue 的药店药品信息管理系统
  • Yolo v4 (Darknet) Mac M2 安装与运行
  • kmp算法的实现
  • 测试专项3:算法测试基础理论速查手册
  • Spring Boot 整合 Apache Flink 教程
  • 二. JAVA数据类型与变量
  • 软考中级-软件设计师 准备
  • OpenWrt开发第4篇:设置开发板的IP-基于Raspberry Pi 4B开发板
  • 2025-03-20 学习记录--C/C++-C 库函数 - toupper()、tolower()、 isspace()
  • Python(冒泡排序、选择排序、插入法排序、快速排序,算法稳定性)
  • 双碳战略下的电能质量革命:解码电力系统的健康密码
  • 服务的拆分数据的迁移
  • Springboot项目搭建(9)-分页与文件上传
  • 中国历史文化名城分布矢量数据
  • 一份1000元机器人开发资金计划表
  • QT编程之PCM音频处理
  • “80后”北大硕士罗婕履新甘肃宁县县委常委、组织部部长
  • 四大皆空!赛季还没结束,曼城已经吃上“散伙饭”了
  • 经济日报金观平:促进信贷资金畅达小微企业
  • 2025年“新时代网络文明公益广告”征集展示活动在沪启动
  • A股三大股指低收:汽车股领涨,大金融走弱,两市成交近1.1万亿元
  • 陕西榆林:全力推进榆林学院升格榆林大学