如何进行汽车 CAN 总线开发?

255 2023-11-02 06:12

一、如何进行汽车 CAN 总线开发?

1 有汽车电子工程师的地方就有CAN

智能网联汽车的浪潮席卷了全球背景下,大数据、云平台、人工智能、自动驾驶...早已成为汽车电子从业者耳熟能详的词汇。然而,诞生于1986 年的CAN总线技术却是经久不衰,生机勃勃。可以预见的是,在未来很长一段时间内CAN总线还是车载网络的主力军之一。

毫不夸张的说,CAN总线运用是每一位初入汽车电子工程的必修课,无论你是汽车电子硬件工程师、软件工程师,系统工程师,测试工程师,路测工程师,标定工程师......反正只要你属于汽车电子“搬砖”类工程师,你逃不了带着你的或是示波器、或是CAN OE,Vehicle spy趴在车内采集CAN数据,分析各种疑难杂症。没玩过CAN OE,Vehicle spy你都不好意思说自己做过汽车电子开发

vector VN1640 CAN工具
can oe界面
vehicle spy CAN工具
vehicle spy界面

2 CAN基础知识的了解

既然是汽车电子工程师的必修课,就得扎实的学习,经历了数十年的发展与普及网络上关于CAN的材料可以说是数不胜数,大家可以网络检索,这里推荐一本本人学习时看的比较多的一份材料

CAN入门书 - 图文 - 百度文库

该入门书源自于著名汽车芯片生产商Renesas(瑞萨),个人感觉该材料特点实战意义很强,比较适合实战开发中学习使用。

这里简单梳理书中的关键字、知识点:

(1)CAN网络

如图,CAN网络通常有N个节点组成,节点间呈总线式连接,每一个节点必须包含CAN收发器CAN控制器、主控制CPU,(通常CAN控制器、主控制CPU为集成式方案。较为常见的CAN通讯速率为500Kbps,125kbps,即行业内经常所谓的低速容错CAN和高速CAN,二者具有的不同的物理特性。

CAN连接图示意

低速容错CAN:CAN_H或CAN_L仅有一根断开时,任可正常通讯,主要使用在对可靠性要求高的场合如车身控制CAN网络通道。

高速CAN:用于更高的数据吞吐能力,主要使用在对实时性、数据传输量大的场合,如汽车动力系统CAN通道等。

高速CAN VS 低速CAN

(2)CAN帧分类

CAN的帧主要可分为数据帧、遥控帧、错误帧、过载帧、帧间隔。各种帧类型的用途如下表所示,作为数据传递的载体数据帧是最重要的,正常的控制命令、状态信息、诊断数据,刷新数据都是通过数据帧传递的。

(3)CAN数据帧的组成

要理解CAN,一定、绝对、千万不能不知道数据帧的组成,特别是要关注其中的仲裁段,数据段,如下图为标准帧(仲裁段为11bit)的帧格式组成,ID取值范围可为0x000~0x7FF;不同的厂家会将数据段进行区域划分,如(仅做示例):

0x00~0xFF:用于高优先级的事件性报文传送;

0x100~0x4FF:用于周期型报文的传送;

0x500~0x5FF:用于网络管理报文的传送;

0x600~0x6FF:用于调试开发、标定相关报文的传送;

0x700~0x7FF:用于诊断相关报文的传送;

标准帧的构成

扩展帧:

相对于上图的标准数据帧,还有扩展CAN 数据帧,CAN 数据帧中紧随SOF 位的是32 位的仲裁字段。仲裁字段的前11 位为29 位标识符的最高有效位(Most Significant bit,MSb)(基本lD) 。紧随这11 位的是替代远程请求(Substitute Remote Request, SRR)位,定义为隐性状态。SRR位之后是lDE 位,该位为隐性状态时表示这是扩展的CAN 帧。


3 汽车开发中CAN开发的主要内容

读完入门书,对CAN的概念有了一个初步的了解下面简单谈一下CAN开发的方面。

由于本人涉及较多的为软件类开发,对于硬件开发这里不做太多描述。

(1)CAN驱动开发

要实现CAN的收发必须先实现CAN驱动开发,CAN驱动开发主要包括:CAN控制器驱动开发和CAN收发器驱动,较为经典的NXP的TJA104X系列CAN收发器,大部分NXP MCU集成的flexCAN控制器。这部分开发更多的是阅读对应型号的CPU,控制器的芯片手册,结合示例代码,一句一句抠,一行一行敲,再配合示波器(逻辑分析仪),各类CAN工具进行反复摸索。

NXP 某芯片FlexCan相关主要寄存器
TJA1043T示意图(来自NXP官网截图)

CAN收发器驱动的开发中最最关键的一部分工作就是了解收发器不同工作模式的切换方法,如下图TJA1043T收发器状态切换示意图,收发器工作时主要分为NORMAL Mode,STADBY Mode,GO-TO-SLEEP Mode,SLEEP Mode。

TJA1043T收发器状态切换示意图(来自NXP官网截图)

(2)CAN通讯矩阵

CAN通讯矩阵通常由整车厂完成定义,车辆网络中的各个节点需要遵循该通讯矩阵才能完成信息的交互和共享。

如图为vector工具打开XXX.dbc文件(常用的保存通信矩阵文件格式)后的示例,可以看到CAN报文Message1单次可传送8bytes,即64bits信息,64bits由多个signal组成,各个signal分布在message的不同位置,(示例)其中蓝色的openwindow可表示为车窗打开控制指令。

如:

①openwindow=0时,表示打开车窗,openwindow=1时,表示关闭车窗;

②vehiclespeed表示车速信息,vehiclespeed=5表示5km/h。

这里只做简单示例,实际汽车开发中还会涉及到一定的物理值与逻辑值的转换。

这样当Message1发送到CAN总线上时,接收到CAN节点的就能获取到此时的CAN控制指令或状态值。

dbc文件中message1的示意图

值得注意的是在定义通讯矩阵时,不同的厂家可能会有不一样的选择,如:采用摩托罗拉格式还是英特尔格式不同的厂家的抉择就各有所爱。

Intel格式与Motorola格式的区别

(3)基于CAN的车辆诊断

百科——汽车诊断在不解体(或仅卸下个别零件)的条件下,确定汽车技术状况,查明故障部位及原因的检查。包括汽车发动机的检测与诊断,汽车底盘的检测与诊断,汽车车身及附件的检测与诊断以及汽车排气污染物与噪声的检测等内容。CAN就能很好的满足上述要求。

汽车诊断的开发是汽车电子电器开发中非常重要的一环,对于CAN诊断最为常见的是UDS。UDS协议即ISO14229,是Unified Diagnostic Services,统一诊断服务,是诊断服务的规范化标准,在汽车诊断方面广泛使用,如图,为满足诊断需求,UDS中定义了一系列的服务。

当然,为了确保诊断报文的稳定传输,还有ISO 15765协议是一种CAN总线上的诊断协议。

其中:

ISO 15765-1包括物理层和数据链路层,

ISO 15765-2对网络层进行说明,

ISO 15765-3则是规定到应用层的具体服务。

上述标准内容较为复杂,此处不做展开,决心要做好CAN开发的同学,尤其是CAN诊断的同学,熟读ISO14229,ISO 15765是不可避免的了。

基于CAN诊断的协议示意图

(4)基于CAN的刷新

由于设计缺陷或者功能升级,车载控制器在生命周期内会有软件刷新的需求,作为控制器与外界几乎唯一的数据通道,车载控制器的软件刷新通常由CAN通道实现,基于CAN的刷新又与基于CAN的诊断息息相关。

(5)CAN网络管理

以后有机会再细聊,主要可分为OSEK网络管理,AUTOSAR网络管理。


4 进阶阶段-不得不提的AUTOSAR

AUTOSAR在汽车电子行业的知名度应该不会亚于“六神”在中国香水界的地位。简单的讲AUTOSAR是由全球汽车制造商(宝马、戴姆勒、福特...)、部件供应商及其他电子(大陆、博世...)、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系。自2003年起,各伙伴公司携手合作,致力于为汽车工业开发一个开放的、标准化的软件架构

AUTOSAR联盟创始成员

CAN作为汽车电子领域最为重要的通讯形式,AUTOSAR怎么可以不对CAN进行定义规范,可以说AUTOSAR的架构思想对现今的软件架构产生了重要影响,如图为初步整理的的AUTOSAR中关于CAN的相关模块及架构,可以清楚的看到其中由下至上系统的定义出了CAN驱动、接口层、传输层、CAN诊断、CAN网络管理等。

目前国内各大整车厂,零部件供应商也在积极推进AUTOSAR,所以要成为CAN进阶高手,绝对少不了好好认识AUTOSAR。

----不过AUTOSAR实在是博精深,以后有机会再一起深入学习,这里只抛砖引玉。


5 实干,实干,实干

《XX技术从入门到精通》,《手把手教你玩XXX》,《十天精通XXX》,相信这一类的书籍大家都早就耳闻,有幸者可能也拜读过一二,但是到底读完书能不能真的就精通了,或者玩转了?我相信光靠一本书的得道者微乎其微,毕竟不是每个人都是张无忌,随随便便捡到一本乾坤大挪移就能在数个时辰内练成神功。

实践出真知,实践是检验真理的唯一标准这些都是亘古不变的道理。要学好CAN我相信你少不了:

(1)一套CAN开发版,淘宝里该类型的开发版比比皆是,售价几十到几百不等;

(2)一个CAN数据读写工具,也能轻而易举的花个几百元够到,当然有项目条件或者家里有矿系列可以直接上vector的VN1640,英特佩兹的vehicle spy;

(3)逻辑分析仪(可选),不想把对于CAN帧的了解仅仅停留在纸面上,相对CAN进行更为底层了解的同学可以备一个逻辑分析仪。

然后就是在实践中检验真理,在实践中总结经验。


总结:

我个人觉得吧,对于CAN的学习可能分为以下几个层次(阶段):

了解、使用CAN:读一读CAN入门书,学习一下CAN工具,基本上你就能胜任CAN报文采集,刷新(使用);

★★

进一步掌握CAN的工作原理:在1的基础上搞一套开发版,读一读芯片手册,敲一敲代码,示波器测一测波形;

★★★

从事汽车CAN开发:在上述基础上,熟读各类CAN标准(ISO14229,ISO11898,ISO15765),系统学习CAN驱动,CAN诊断、CAN网络管理等知识,并在实战中不断提升认知,积累经验。

★★★★★

成为CAN大神:对AUTOSAR架构融会贯通,熟悉了解autosar中定义的各个CAN模块的功能,工作原理,实现方法。

题外话:CAN作为一项发展普及了数十年的技术,技术标准、工具练已经相当完善,虽然说CAN在未来很长一段时间内还将继续存在,但难免潜力不足;再说汽车网络技术也不乏众多后起之秀虎视眈眈,其中车载以太网可谓是最有潜力者,可多关注。

关于车载以太网推荐本人另一篇回答:

有量产汽车不用CAN总线而用以太网的吗?


码字不易,欢迎赐,更多信息请点关注

二、什么是工业总线?

工业总线是一种应用于生产现场,在现场设备之间、现场设备和控制装置之间实行双向、串形、多结点的数字通信技术。

工业总线的本质体现在以下六个方面:

1、现场通信网络:用于过程自动化和制造自动化的现场设备或现场仪表互连的现场通信网络。

2、现场设备互联:依据实际需要,使用不同的传输介质把不同的现场设备或者现场仪表相互关联。

3、互操作性:用户可以根据自身的需求选择不同厂家或不同型号的产品构成所需的控制回路,从而可以自由地集成FCS。

4、分散功能块:FCS 废弃了DCS 的输入/输出单元和控制站, 把DCS 控制站的功能块分散地分配给现场仪表, 从而构成虚拟控制站,彻底地实现了分散控制。

5、通信线供电:通信线供电方式允许现场仪表直接从通信线上摄取能量, 这种方式提供用于本质安全环境的低功耗现场仪表, 与其配套的还有安全栅。

6、开放式互联网络:现场总线为开放式互联网络,既可以与同层网络互联,也可与不同层网络互联,还可以实现网络数据库的共享。

三、工业控制总线的七种类型是什么?工业控制总线?

工业控制的计算机主要有单片微型计算机、可编程序控制器(PLC)、总线工控机等类型。

根据机电一体化系统的大小和控制参数的复杂程度,选用不同的微型计算机。

单片机或可编程控制器主要用于,控制量为开关量和少量数据信息的模拟量的小系统。对于数据处理量大的系统,则往往采用基于各类总线结构的工控机,如STD总线工控机、IBM-PC总线工控机、Multibus工控机等。

对于多层次、复杂的机电一体化系统,则要采用分级分步式控制系统,在这种控制系统中,根据各级及控制对象的特点,可分别采用单片机、可编程控制器、总线工控机和微型机来分别完成不同的功能。

四、工业水表485总线怎么接?

工业水表485总线接法:

打开电表接线处的壳,内侧有各个接线口的接线标示,按照标示接线即可。一般485的接线口位于电能表的最右侧的两个小口就是接485的口。

五、工业总线属于工厂系统吗?

它是一种工业数据总线,是自动化领域中底层数据通信网络。简单说,现场 总线就是以数字通信替代了传统 4-20mA

六、工业互联网 现场总线

<>

工业互联网:连接现场总线,实现智能化生产

工业互联网作为数字化时代的重要组成部分,正在逐步改变着传统工业生产的面貌。而现场总线作为工业互联网的基础设施,为企业实现智能化生产提供了重要支持。本文将介绍工业互联网与现场总线的关系以及如何利用现场总线实现智能化生产的具体方法。

工业互联网的定义与特点

工业互联网是一种基于互联网的信息化技术,将制造业和互联网深度融合,实现设备、系统、人员之间的高效通信与协同。与传统工业生产相比,工业互联网具有以下特点:

  • 广泛连接:工业互联网通过物联网技术,实现对工厂内各种设备、传感器的广泛连接,形成庞大的数据网络。
  • 数据化管理:工业互联网通过大数据分析技术,将海量的生产数据转化为有价值的信息,为企业决策提供支持。
  • 实时监控:工业互联网可以实时监控设备状态、生产进度等信息,帮助企业及时发现问题并采取相应措施。
  • 智能控制:工业互联网通过自动化技术和人工智能算法,实现对生产过程的智能化控制,提升生产效率。

现场总线在工业互联网中的作用

现场总线作为工业互联网的基础设施,主要承担着设备之间的通信和数据传输任务。它将各类设备和传感器连接起来,形成一个统一的网络,实现数据的采集、处理和传输。现场总线的作用主要体现在以下几个方面:

  • 设备连接:现场总线可以将各类设备连接起来,包括传感器、PLC、伺服驱动器等,并提供标准的通信协议,方便设备之间的数据交换。
  • 数据采集:现场总线可以实时采集设备产生的数据,包括温度、压力、电流等信息,并将其传输给上位机进行处理。
  • 网络传输:现场总线可以将采集到的数据通过网络传输给其他设备或系统,实现不同设备之间的信息交流。
  • 远程监控:现场总线可以实现对设备的远程监控,通过互联网将设备状态等信息传输到中央控制室,实现远程控制和管理。

利用现场总线实现智能化生产的方法

现场总线作为工业互联网的核心技术之一,为企业实现智能化生产提供了基础支持。以下是利用现场总线实现智能化生产的具体方法:

  • 设备连接与信息采集: 通过现场总线,将工厂内的各类设备连接起来,并实时采集设备产生的数据。这些数据包括设备运行状态、生产参数等信息,通过现场总线传输给上位机进行处理。
  • 数据分析与优化: 上位机接收到设备采集的数据后,可以通过大数据分析技术进行处理,提取有价值的信息和规律。企业可以根据这些信息进行生产优化,提升生产效率和产品质量。
  • 远程监控与控制: 利用现场总线和互联网技术,企业可以实现对设备的远程监控和控制。中央控制室可以通过网络实时获取设备状态,并远程调整设备参数,实现远程控制和管理。
  • 智能维护与预测: 现场总线可以实时监测设备的运行状态和健康状况,通过分析设备的工作特征和历史数据,实现对设备故障的预测和预防,提高设备可靠性和维护效率。

总之,工业互联网与现场总线的结合,为企业实现智能化生产提供了强大支持。通过现场总线的连接和数据传输功能,工业互联网可以实现设备之间的信息共享和协同,提升生产效率和竞争力。未来工业互联网的发展将进一步推动现场总线的创新和应用,为制造业带来更多机遇和挑战。

七、工业互联网总线芯片

工业互联网总线芯片:将制造业与互联网融合的核心技术

随着互联网的飞速发展,各行各业都在不断寻找与互联网融合的新途径。而对于制造业来说,工业互联网的出现为企业带来了巨大的机遇和挑战。作为工业互联网的核心技术之一,工业互联网总线芯片扮演着不可或缺的角色,它将物理世界与数字世界连接起来,实现设备之间的高效通信和数据交换。

那么,什么是工业互联网总线芯片?它有哪些特点和应用场景呢?本文将给大家详细介绍工业互联网总线芯片的相关知识。

什么是工业互联网总线芯片

工业互联网总线芯片是一种将传统工业设备连接到互联网并实现智能化管理的关键技术。它通过将工业设备中的传感器和执行器等硬件设备与互联网相连接,实现数据的采集、传输和分析,从而实现设备之间的互通和协作。

工业互联网总线芯片具有极高的稳定性和可靠性,能够适应恶劣的工业环境,并能够支持大规模设备的同时通信。它还具有低功耗、高速传输和高带宽的特点,能够满足工业设备对数据传输的高要求。

目前,市场上常见的工业互联网总线芯片有多种规范和协议,如CAN总线、PROFINET、EtherCAT等。不同的芯片有着不同的特点和适用场景,企业在选择芯片时需要根据自身的需求和实际情况来进行选择。

工业互联网总线芯片的主要特点

工业互联网总线芯片的主要特点如下:

  • 高可靠性:工业互联网总线芯片能够适应恶劣的工业环境,具有高抗干扰能力和低误码率。
  • 低功耗:工业互联网总线芯片采用低功耗设计,能够长时间运行。
  • 高速传输:工业互联网总线芯片支持高速数据传输,能够满足工业设备对数据传输的要求。
  • 大规模通信:工业互联网总线芯片支持多设备同时通信,能够满足工业场景中大规模设备的通信需求。
  • 标准化接口:工业互联网总线芯片采用标准化接口,方便与其他设备进行连接和通信。

根据不同的应用场景和需求,企业可以选择适合自身需求的工业互联网总线芯片,以实现设备之间的高效通信和数据交换。

工业互联网总线芯片的应用场景

工业互联网总线芯片的应用场景非常广泛,涵盖了制造业的各个方面。以下是一些常见的应用场景:

  • 智能制造:工业互联网总线芯片可以实现设备之间的智能互联,提高生产效率和产品质量。
  • 设备监测与诊断:工业互联网总线芯片可以实时监测设备运行状态,及时发现故障并进行诊断。
  • 物流管理:工业互联网总线芯片可以实现对物流过程的实时监控和管理,提高物流效率。
  • 能源管理:工业互联网总线芯片可以实时监测能源的使用情况,优化能源管理,降低能源消耗。
  • 安全监控:工业互联网总线芯片可以实现对设备和生产过程的安全监控,保障生产安全。

可以说,工业互联网总线芯片已经深刻影响了制造业的方方面面,为企业带来了巨大的变革和机遇。

总结

工业互联网总线芯片是将制造业与互联网融合的核心技术之一,它实现了设备之间的高效通信和数据交换,为制造企业提供了巨大的机遇和挑战。

工业互联网总线芯片具有高可靠性、低功耗、高速传输和大规模通信等特点,适用于各种不同的应用场景。通过工业互联网总线芯片的应用,制造业可以实现智能制造、设备监测与诊断、物流管理、能源管理和安全监控等诸多领域的创新和升级。

可以预见,随着工业互联网的不断发展,工业互联网总线芯片将在制造业中扮演越来越重要的角色,为制造业的转型升级和智能化发展提供持续动力。

八、211工业工程师和专科工业工程师区别?

211工业工程师和专科工业工程师之间存在一些区别,主要包括以下几个方面:

1. 学历:211工业工程师通常指的是本科学历,而专科工业工程师指的是专科学历。

2. 专业深度:211工业工程师在工业工程领域接受了更为全面和深入的学习,掌握了更多的理论知识和实践技能。而专科工业工程师则更注重实践应用,对工程技术的基本原理和方法有所了解。

3. 职位和职责:由于学历和专业深度的差异,211工业工程师更容易在工程管理、项目管理、工艺改进等高级职位上发展。而专科工业工程师更适合从事一些技术操作、工艺流程的具体实施和控制等工作。

4. 薪资和职业发展:一般来说,211工业工程师的薪资和职业发展空间相对更大,更有竞争力。而专科工业工程师的薪资水平和职业晋升速度可能相对较低。

需要注意的是,这些区别并不是绝对的,具体情况还会受到个人能力、经验和个人发展规划等因素的影响。

九、net开发工程师开发项目描述?

1、net开发旨在培养德智体全面发展,具有良好的综合素质,能够完成软件产品程序设计、开发、测试、维护升级等工作的IT行业高等应用型技术人才。NET是微软下一代的操作平台,人们在NET上构建各种应用方式,可以实现因特网的全部潜能。NET开发的两大核心是CLR和BCL。

2、NET开发帮助人们尽可能通过简单的方式,多样化地、最大限度地从网站获取信息,解决网站之间的协同工作,从而搭建起第三代互联网平台。

十、开发工程师简写?

简写DE。英文全称 DEVELOPMENT ENGINEER

DE岗位的具体工作内容包括:

收集和处理大规模的原始数据(包括脚本编写,网页获取,调用APIs,编写SQL查询等);将非结构化数据处理成适合分析的一种形式,然后进行分析;帮助企业做出更好的商业决策。

DE的职业优势是抗经济周期,行业不景气对DE的影响相对较小。此外,DE的职业发展也很多样化,既可以走技术,又可以走管理。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片