随着汽车工业的不断发展,汽车电子控制单元逐渐增多,各电控单元之间的信号交换更为复杂。而CAN总线可将汽车内部各电控单元之间连接成一个局域网络,实现了信息的共享,大大优化了整车的布线。

接下来,我们将继续为大家分享CAN相关技术知识。

CAN的分层架构

它由三层组成,即应用层、数据链路层和物理层。

• 应用层:该层与操作系统或CAN设备的应用程序交互。

• 数据链路层:它在发送、接收和验证数据方面将实际数据连接到协议。

• 物理层:它代表实际的硬件,即CAN控制器和收发器。

CAN物理层特性

CAN物理层被分为三个部分:在CAN控制器芯片中实现的物理编码,指定收发器特性的物理介质附件,物理介质依赖子层,这是特定的应用,没有标准化。

图1. CAN总线接线图

物理编码子层

PCS包括比特编码和解码、比特定时。它为收发器芯片提供连接单元接口,并包含Tx和Rx引脚,位级错误也通过位填充来处理。

位时序

出于时序目的,CAN总线上的每个位都划分成至少4个时间份额,时间份额逻辑上划分成4段:

1. 同步段

2. 传播段

3. 相位缓冲段1

4. 相位缓冲段2

图2. CAN位时序

同步段

1个时间量子长度,用于多个连接在总线上的单元,通过此段实现时序调整,当总线电压电平发生变化(显性到隐性或隐性到显性)时,预计该段会出现位沿。

传播段

用于补偿网络上节点之间的物理延迟,包括发送单元的输出延迟、总线上信号的传播延迟、接收单元的输入延迟。

相位缓冲段

相位缓冲段用于补偿节点间的晶振误差,又分为相位缓冲段1(PS1)和相位缓冲段2(PS2),在这个时间段的末端进行总线状态的采样。两个相位缓冲段PS1和PS2用于补偿总线上的边沿相位误差。

采样点

采样点是位时间内的一个时间点,在该时间点,读取总线电平并进行分析。位时间内的采样点决定CAN总线电压是隐性还是显性。以位时间的百分比表示,位置从位时间的起点开始计算,位于阶段1和阶段2之间。

处理位级错误

位数填充

CAN协议遵循NRZ编码进行传输。逻辑电平在位间隔之间不发生变化。CAN需要一个逻辑电平的转换来进行再同步。因此,在5个相同的连续比特之后,将发送1个相反逻辑电平的比特。这就是所谓的东西位,接收器可以识别它。

位错误

一个正在发送比特的节点总是监控总线,如果发射器发送的比特与总线上的比特值不同,则会产生一个错误帧。

物理介质依赖子层

该层在CAN收发器芯片中实现,通过Tx和Rx引脚从CAN控制器获得输入,输出驱动CANH和CANL线。收发器负责不同的比特率,CAN总线速度指的是CAN总线通信速率。最大的CAN总线通信速率是1Mbit/sec。对于特殊的应用,一些CAN控制器将处理更高的速度,超过1Mbit/sec。低速的CAN通信速率是125kbits/sec。

与介质有关的子层

依赖介质的子层是高度特定的应用,不同连接器的引脚分配标准化属于这一层,各种连接器为DB9、OBD II。

CAN总线DB9引脚布局

CAN总线通常通过连接器访问。

图3. CAN总线DB9引脚分配

引脚1:无定义

引脚2:CAN_L

引脚3:CAN GND

引脚4:无定义

引脚5:CAN_SHLD

引脚6:GND

引脚7:CAN_H

引脚8:无定义

引脚9:CAN_V+

各种微控制器中的CAN总线支持

微控制器应具有CAN硬件和软件,提供CAN驱动程序以实现通信。Python-CAN库也可用于为微控制器的硬件组件提供抽象的驱动程序,并用于通过CAN网络发送和接收消息。Python CAN总线也用于测试硬件和 CAN 总线数据记录。

用于Arduino的CAN总线屏蔽

• CANbus Shield采用带有SPI接口和CAN收发器的CAN总线控制器,为Arduino提供CAN总线能力。

• 带有CAN总线的Arduino有助于从ECU获取车速、油耗、温度等信息。

• Arduino CAN库用于通过CAN总线发送和接收CAN消息。

树莓派CAN总线:

树莓派没有特定的硬件,即CAN控制器和CAN收发器来支持CAN协议。树莓派软件不支持CAN总线,树莓派支持通过 SPI 接口进行 CAN 通信。

树莓派通过SPI接口连接到板子支持的外部CAN控制器,CAN控制器通过Rx和Tx线连接到CAN收发器。

CAN控制器示例:SJA100、MCP2515

CAN收发器示例:TJA1040、MCP2551

ACM32 CAN总线:

ACM32-F0/F4芯片内置1路~2路CAN控制器,并提供对应的CAN总线接口驱动库,搭配外部的CAN收发器,保证CAN总线数据通讯的安全可靠。

如何读取CAN总线数据?

当CAN总线与Microchip CAN总线分析仪、CAN总线Wire Shark等外部工具连接时,可以通过CAN USB适配器访问CAN总线数据,该适配器提供与计算机或PC的USB端口的即时连接。CAN USB适配器也可以通过以太网、互联网、内联网从任何地方进行控制。CAN总线Wireshark是一种用于Linux系统的工具,尤其以以太网网络分析而闻名,它通过使用SocketCAN来显示CAN消息,SocketCAN是一组驱动程序和网络堆栈,因此被称为Linux CAN总线。CAN to USB帮助外部工具从CAN网络获取消息,然后用于监控和调试接收或传输信息的工具。

但是这些消息是原始格式的。因此,从这些数据记录器收集的数据使用CAN总线解码器转换为按比例缩放的工程值。从数据记录器收集的数据也可以存储在SD卡中,这有助于控制车辆设置以提高效率。收集的CAN总线数据可用于车队管理、研发、诊断等。

用万用表测试CAN总线

测试是必要的,以检查任何发生的CAN总线故障,如布线、ECU、CAN网络中的任何一个组件的电压供应故障。CAN总线的故障排除,如在CAN总线线路的物理端添加120欧姆的终端电阻,可以诊断出问题。通过用万用表测试,确保终端电阻是120欧姆,而且电阻是合适的,没有断裂,还可以通过将万用表切换到交流电压来测试传输的数据。

如何判断汽车是否有CAN总线?

配备CAN总线的车辆包含CAN总线LED和CAN-BUS HID 套件。CAN总线LED与汽车高级系统通信,当此LED关闭时,车辆会发出警告。CAN BUS HID KIT充当DC到AC转换器,并有助于在最初使用高压电流打开灯。一旦灯启动,它需要较低的电压电流。但是当HID使用低功率时,CAN总线系统会假定灯已关闭并发出警告。为了避免这种情况,使用了HID转换套件,它与CAN总线系统通信以告知有一个工作灯泡。这些警告告诉我们汽车配备了CAN总线。

CAN总线黑客攻击

CAN总线黑客攻击是对消费者的威胁。CAN总线车辆采用了许多无线技术,例如蓝牙,用于接听电话或播放音乐。当车载系统接入车内的CAN总线并具备 Wi-Fi连接能力时,黑客很容易获得CAN总线接入并能够控制汽车。Wi-Fi热点在汽车中很流行,这使得知道汽车IP地址的人可以跟踪汽车。这导致汽车制造商对CAN总线网络上的传输数据进行保护。

*内容来源自PathPartner Technology,版权归原作者所有,如涉及版权问题请联系沟通

上海航芯·原厂直连:marketing@aisinochip.com

航芯技术分享 | 一文读懂汽车CAN总线技术原理(下)相关推荐

  1. 航芯技术分享 | 一文读懂什么是量子密码

    被喻为"重要数据保险箱"的安全芯片已经渗入人们生活的方方面面.随着5G.物联网.车联网的迅速发展,为安全芯片开启了新的应用场景,同时也带来了新的挑战. 本文将带大家深入了解安全芯片 ...

  2. 一文读懂TOF深度相机技术原理--TI-Tintin-OPT8241二次开发和应用系列--Theory Level

    一文读懂TOF深度相机技术原理--TI-Tintin-OPT8241二次开发和应用系列--Theory Level 转载请附上出处,本文链接:https://www.cnblogs.com/pans0 ...

  3. 一文读懂5G基站节能技术

    文章版权所有,未经授权请勿转载或使用 近年来,全球运营商营收整体不断下滑,OPEX支出却不断增加,其中基站电费在网络运营支出中占比超30%.5G基站由于更大的带宽.更多的通道数.器件集成度低等因素影响 ...

  4. 一文读懂现代化的智能天线技术

    (本文部分来源于华为智能天线技术) (文末有<智能天线MATLAB版>福利)    "智能天线"通常是指带紧密信号处理器的任何天线阵,它可以调整或自适应其波束方向图.智 ...

  5. 一文读懂UWB超宽带技术

    文章目录 一.简介 二.什么是UWB技术? 三.UWB技术有标准组织吗? 四.UWB技术有哪些应用场景? 五.UWB市场有多大? 六.总结 一.简介 "指哪打哪",在球场上经常被用 ...

  6. 一文读懂前端与HTML5技术的区别!

    现在好多人都把HTML5和前端的概念弄混淆了.例如,H5是HTML5的简称,而现在好多人把HTML5看成了是前端开发的总称.今天就为各位普及一下,到底前端和HTML5有哪些区别? 什么是前端开发 以一 ...

  7. 独家 | 一文读懂Corda分布式记账技术

    作者:Dan Newton 翻译:申利彬 校对:丁楠雅 本文约2600字,建议阅读10分钟. 本文为你介绍借鉴了区块链的部分特性的分布式记账技术,并分析其背后的原因. 什么是Corda? 最近我开始了 ...

  8. 十大报表工具 BI 产品深度点评-----BI报表行业专家干货分享----一文读懂报表与BI的行业现状----最新常用BI报表工具对比科普帖

    目前国内市场上的报表 BI 工具琳琅满目,看起来也各有特点,这给选型工作带来了一些困扰,本文就一些较活跃的报表 BI 产品进行点评,对于不太熟悉这些产品和技术的同学,可作为参考资料. 这里选了十个产品 ...

  9. 一文读懂I/O多路复用技术

    前言 当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应.在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请求,2)用户在键盘上键入命 ...

  10. 一文读懂8K超高清技术

    最近,小编听到很多关于8K的讨论,比如: "8K只是锦上添花,有4K就够了." "4K也好,8K也好,看上去没有任何区别." "用户终端观看立马进入1 ...

最新文章

  1. C语言字符串一道比较难的题!_只愿与一人十指紧扣_新浪博客
  2. MNIST数据集实现手写数字识别(基于tensorflow)
  3. /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */
  4. android地图获取坐标位置,android 百度地图 根据得到的经纬度 获取位置信息
  5. pytorch kl散度学习笔记
  6. 马鞍山职业计算机考试,2020年职业适应性(技能)测试纲要
  7. Android实战:手把手实现“捧腹网”APP(三)-----UI实现,逻辑实现
  8. javascript   漂亮随机码
  9. 不花钱、不买服务器可以搭建个人博客吗?快进来,给你安排!
  10. 在python程序中嵌入浏览器_用Python中的wxPython实现最基本的浏览器功能
  11. VirtualBox配置
  12. php的instanceof和判断闭包Closure
  13. 福建省高考成绩查询2021具体时间,福建高考时间2021具体时间表一览 福建高考时间是几月几号...
  14. 基于Canvas和HTML+CSS3构建JavaScript弹幕库
  15. 江苏计算机等级考试二级office题库,2020年江苏省计算机二级Office考试易考套餐:二级MS Office高级应用全程班(网课+题库)...
  16. delphi学习笔记(1)-object pascal语言的数据类型 选择自 xmz2629 的 Blog
  17. docker 中使用nginx容器无法正常启动,报错signal process started和kili(3255,1) failed (3: No such process)
  18. LeaRun .Net Core/Java工作流引擎,分离式前端,升级Vue
  19. C/C++描述 LeetCode周赛 5473. 灯泡开关 IV
  20. win10的JDK安装环境变量配置

热门文章

  1. 手机功能测试主要测哪些方面?
  2. python实现英文新闻摘要自动提取_Python实现英文新闻摘要自动提取
  3. django系列9 --- 迁移相关
  4. 计算机的DNS地址如何设置,如何设置电脑的DNS地址?
  5. win10修改dns服务器命令,Win10怎么更改首选DNS服务器地址?
  6. windows10显示文件后缀名
  7. 基于Android的蓝牙心率设计,基于Android蓝牙的信号收发系统设计
  8. python flink kafka_Flink Kafka 端到端 Exactly-Once 分析
  9. 计算机网络对大学生负面影响案例,大学生网络成瘾问题的危害及影响
  10. JMeter Ramp-up 说明