can总线在自动化领域技术发展的怎么样?

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

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

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


2 CAN基础知识的了解

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

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

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

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

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

高速CAN:用于更高的数据吞吐能力,主要使用在对实时性、数据传输量大的场合,如汽车动力系统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开发的方面。

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

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

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

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

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

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

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

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

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

(3)基于CAN的车辆诊断

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

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

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

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

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

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

基于CAN诊断的协议示意图

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

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


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

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

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

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


《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总线这个名词逐渐被人们所熟知,CAN总线是对汽车中标准的串行传输系统的一种简缩习惯的叫法。CAN的英文全称是:Controller Area Network,既控制器局域网络,属于工业的范畴,是现场总线的新一代局域通讯网络,又称为控制器局域网现场总线(CAN)。

一、canbus是什么意思

1、随着CAN-BUS的不断完善和发展,作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-BUS 不再仅仅局限于汽车电子领域,还被广泛应用到其它各个自动化控制系统中。
2、CANBus全称为“控制器局域网总线技术,是制造厂中连接现场设备(传感器、执行器、控制器等)、面向广播的串行总线系统,最初由美国通用汽车公司(GM)开发用于汽车工业,后日渐增多地出现在制造自动化行业中。
3、Can-Bus总线技术最早被用于飞机、坦克等武器电子系统的通讯联络上。将这种技术用于民用汽车最早起源于欧洲,在汽车上这种总线网络用于车上各种传感器数据的传递。

2、最初开发用于汽车工业,后来也应用于工业自动化,目前有一种powerbus现场总线比较流行,串口透传,即供电又通讯,相当于超强版的Mbus,看你是不是有集中供电的需求。

版权声明:网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

}

Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH)研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。

  Ethercat主张"以太网控制自动化技术"。它是一个开放源代码,高性能的系统,目的是利用以太网协议,在工业环境,控制和其他装备线上的技术。

  EtherCAT的特点还包括高精度设备同步,可选线缆冗余,和功能性安全协议(SIL3)。EtherCAT在网络性能上达到了一个新的高度。1000个分布式I/O数据的刷新周期仅为30μs,其中包括端子循环时间。通过一个以太网帧,可以交换高达1486字节的过程数据,几乎相当于12000个数字量I/O。而这一数据量的传输仅用300μs。与100个伺服轴的通讯只需100μs。在此期间,可以向所有轴提供设置值和控制数据,并报告它们的实际位置和状态。分布式时钟技术保证了这些轴之间的同步时间偏差小于1微秒。利用EtherCAT技术的优异性能,可以实现用传统现场总线系统所无法实现的控制方法。这样,通过总线也可以形成超高速控制回路。以前需要本地专用硬件支持的功能现在可在软件中加以映射。巨大的带宽资源使状态数据与任何数据可并行传输。EtherCAT技术使得通讯技术与现代高性能的工业PC相匹配。总线系统不再是控制理念的瓶颈。

  EtherCAT协议处理完全在硬件中进行,协议ASIC可灵活组态,使得工作效率大大提高。1000个分布式I/O数据的刷新周期仅为30μs,其中包括端子循环时间。与100个伺服轴的通讯只需100μs。在此期间,可以向所有轴提供设置值和控制数据,并报告它们的实际位置和状态。利用EtherCAT技术的优异性能,可以实现用传统现场总线系统所无法实现的控制方法。

  EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,符合IEC规范(IEC/PAS62407),也是国家标准。

  在市场上,有大量的EtherCAT主站与EtherCAT从站的设备与产品。

  国内外有很多专业的第三方公司做EtherCAT方面的技术咨询与技术服务。

  ETG全球组织与ETG中国组织的推动

  ETG全球组织在全球有5个区域性组织,截至2018年就有5205个会员单位。

  国产厂商以及步进驱动器厂商,工业以太网通讯接口首选就是EtherCAT,国内已有几百家厂家支持EtherCAT伺服驱动器以及EtherCATIO模块。

  结合到现场实际应用EtherCAT总线的运动控制优势

  a、节点与节点之间只要网线连接,系统电气柜配线非常方便;

  b、系统抗干扰能力强,网口就是隔离的,整个电气系统的EMC特性好;

  c、EtherCAT初始化完成就可以直接读取所有轴的多圈绝对值位置;

  d、SDO可以在线读取与修改各轴的参数与增益,轴参数调试更方便;

  e、通过选择不同的PDO数据内容,可以实现位置控制下转矩限幅,转矩控制下速度限制,CSP(周期位置)/CSV(周期速度)/CST(周期转矩)可以自由切换;

  f、方便上位机远程诊断与远程维护电气系统,预测性维护也更方便。

  没有实际的运动控制器也能仿真与调试运动控制系统

  虚拟仿真与调试日渐成为工业自动化行业的刚需,一是可以在设备未准备就绪之前就把软件基本调试完成,二是进一步提高开发与调试的效率。

  CANopen是建立在CAN数据链路层之上的一个开放的标准应用层。CAN最初为汽车应用领域而开发设计,到目前已经被证明是坚固、可靠、经济的通信网络。可以进行主/从和点对点的通信,消息冲突不是毁灭性的。

  从轴通过被锁定时间标记的分布式时钟进行同步。参数与实时数据分别由SDOs与PDOs进行处理,以达到最优效率。对于一个完整的系统解决方案,可支持第三方的I/O与控制软件。

  网络拓扑与总线仲裁

  CAN是一个使用简单双绞线连接的多点网络。最大速率可达1Mb/s、线长可达40米。网络首尾两端须接终端电阻,且端线应尽量的短。一个CAN网络最多可支持127个节点。

  当总线空闲时,任何一个节点都可以发送数据。消息帧以帧有效低起始位开始发送这消息的标识符。越低的标识符,它的优先级越高。如果两台设备在同一时间向网络发送数据,有高优先级标识符的设备将会强制性把总线电平拉低,而低优先级的节点设备将识别到这个情况且将放弃使用总线。

  CANopen与EtherCAT是国际上网络运动控制的开放标准协议。它们可以简化连线、降低成本、增强诊断功能等。CANopen主要应用于分布式控制系统,而EtherCAT可以应用在集中式与分布式2种控制结构中。每种网络都有其自身的优点。

  集中式与分布式运动控制

  系统任务的等级与分配如下图所示。绿色表示控制器,蓝色表示驱动器。在集中式结构中,除了电流环以外,所有的任务都由控制器完成。电流环应该至少每100us更新一次,这会把很高的计算负担放在控制器上,且必须使用高速数据通讯链路。

  在分布式控制系统中,所有的伺服环都在驱动器内完成。在轮廓模式(下载运动参数并启动运行)下,驱动器内部也执行路径规划。驱动器无需增加附加的成本,而且能省去运动控制卡。由于位置环的刷新率远低于电流环,因此只需使用一个低速的网络即可。

●更适合轴间高度耦合的情况如机器手

●更高效的实时伺服环调整

●点到点及多数轮廓曲线的理想选择

●低成本解决方案、最小化驱动器尺寸

●易扩展、无增加控制器负担

  在分布式控制协同运动系统中,EtherCAT和CANopen都使用PVT做路径规划:控制器生成一系列的点,来定义在指定的时间点上,每个轴的位置与速度值。PVT路径规划是定义运动轨迹的一种非常高效的方法。

  一般来说,轨迹点每隔10ms被发送到驱动器的缓冲区中。驱动器实行三阶插补来生成最优的曲线。插补之后,每个驱动器上的位置环以几千赫兹的速率同步更新。

  对运动控制系统网络而言,效率、决定性与同步性远比速度重要。标准以太网的传输速度超过CANopen速度100倍,但主要被设计用于异步传输大数据文件。网络上的消息冲突是毁灭性的,必须重新发送。CANopen主要被创建用于低成本传送实时小数据包,对于分布式控制而言,完全可满足其实时性要求。

  EtherCAT给以太网带来了同步性与决定性,相对于许多被实时修改过的标准以太网,EtherCAT显然是有效的。对于分布式控制系统,它满足刷新驱动器电流环的速度的要求,且能灵活地传输PVT点。相对来说,价位也会更高一些。

}

我要回帖

更多关于 can总线工程师吃香吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信