1.二者的历史渊源
CAN最初是由德国的BOSCH公司为汽车控制系统而设计,并在1993年成为国际标准。之后因其所具有的高可靠性和良好的错误检测能力受到重视,现在已经扩展到医疗、交通、运动控制、工业自动化多个领域。
CANopen是CAN应用层。它是在1995年由欧洲的CIA协会推出第一个标准版本,其后五年在应用中不断完善,现在使用的主要是1999修订的标准。
2.为什么需要CANopen
由于CAN在定义之初并未定义标准的应用层,导致在实际应用中各个厂家对应用层的定义各不相同,这导致同样的CAN报文却因应用层对其解释的不同而产生了不同的功能含义,使其不能相互直接通信,阻碍了CAN网络设备在不同厂商品牌之间的兼容性。为此欧洲专门成立了CIA协会,负责CANopen应用层的推广。另外,CANopen专门针对有同步、实时控制要求的设备开发了PDO报文,大大提高了报文发送的效率。相对于devicenet(CAN的另一个应用层标准),CANopen报文更为简洁和开放,因此CANopen更值得推广。
其实,将报文格式及其实现方式(通信层)标准化还不够,还需要将报文参数和设备的功能参数的对应关系统一起来,以变频器为例,设定频率的参数对应报文中的哪个参数如果不统一,用户使用时仍会因各个厂家对此定义的不同而限制于某个厂家的设备。为此CIA专门针对各类设备也定义了该类设备的标准,例如编码器有CIA 406标准,各个IO模块有CIA 401标准,运控方面的驱动设备有CIA 402标准。这样,只要用户购买的设备遵从这些标准,那么就无需担心该设备是否和其他厂商设备的兼容或相互通信的问题,也就是说,同样的报文指令可以在不同厂商的设备中实现相同的功能,真正做到了与厂商无关。这也是CANopen有更大潜力的主要原因。
3.使用CAN卡或USB-CAN可以收发CANopen报文吗
正如可以用第三方电报机接收他人发送的电报一样,用普通的CAN接口板卡(PCAN-PCI等)或USB-CAN(PCAN-USB/CANUSB/CAN232)可以正常接收各类CANopen报文,但其具体含义就需要你了解CANopen报文的格式规范才能将其看懂了,类似战争中接收电报用的密码本。同样,用户也完全可以将CANopen报文按其规范写好后发给其他标准的CANopen设备。另外,由于PDO报文需要预先对接收和发送双方配置,所以CAN接口的设备不能直接发送PDO报文。如果需要解析和发送CANopen的报文,需要借助PCANopen Magic或者CANreport等分析软件,包括快速导入设备的EDS文件并作修改等。
4.使用支持CANopen解析的软件能否侦测到发送CAN报文的节点信息
由于有些CANopen软件不能识别CAN报文代表的含义,因此也不能识别该只支持CAN协议的节点。(注:它只能识别移植了标准CANopen协议的节点,而应用层无CANopen协议的CAN节点往往不能被识别)。而且CAN报文协议没有一个统一标准,各个设备厂家都可以定义自己的CAN协议。这样同一设备厂商的所有设备都可以互相识别和通讯,但一旦某个设备出故障需要检测或替换时便限制于该厂家,因为该CAN报文的含义是他自己定义的,用户即使能用USB-CAN捕捉到该报文,但需要费很大功夫和时间才能分析出各条报文的功能,而如果是标准的CANopen报文,则无需担心这些问题,这也是CANopen近年来迅速发展的原因。
5.在CAN基础上加入CANopen是否增加了报文的收发时间
这一点是不用担心的。CANopen代码通常是由经验丰富的厂商专门编写,且经过CIA和实践的验证,CANopen专门开发的PDO功能用于运动控制的多轴同步控制及其他实时性要求高的场合也证明了他并没有影响报文执行的实时性。另外,相对于分散的厂商各自编写的应用层(对CAN报文的格式及含义赋予自己习惯的功能),CANopen不仅功能全面(覆盖设备状态检测、错误报告、网络管理报文),且各类报文的实现方式是欧洲多方共同研究的结果,报文的实现效率更高。
一般会影响CANopen设备实时性的,更多取决于所编写的CANopen源代码的合理性和规范性,另外编写的CANopen源代码质量还很大程度上影响了设备的稳定和可靠性。如何编写高效高质的源代码,或者如何选择易于移植的市场上成熟的源代码?如需更多关于CAN/CANopen解决方案和服务(CAN分析仪,CANopen分析仪,CANopen协议栈源码,定制CANopen协议栈)等可以联系:广州虹科电子技术团队:support@hkaco.com 免费热线:400-999-3848;获取更多的技术资料。
关键字:CAN CANopen
引用地址:
CAN和CANopen的关系
推荐阅读最新更新时间:2024-05-02 23:48
CANape高性能数据记录与DDS的一些事儿
随着软件定义汽车的快速发展,车内软件系统越来越复杂和庞大。为了支撑分布式软件系统各个组件间更高效、更灵活地进行数据交互,行业在系统中引入了中间件的概念。中间件并不特指某种具体的技术,可以理解为处于操作系统和应用程序之间的一个软件中间层,将操作系统的功能进行重新组织和抽象,为上层的应用程序提供更高级的服务或功能,比如满足SOA架构需求的远程过程调用(RPC)框架,发布订阅通信框架等。我们熟悉的中间件技术有SOME/IP,是车载系统中最早实现量产的SOA中间件技术。除此之外,还有很多来自其他行业的成熟的中间件技术也逐渐进入了车内系统,其中最引人注目莫过于DDS。 1► DDS介绍 领域广泛应用的技术。DDS定义应用接口(API)和
[嵌入式]
汽修示波器测量汽车CAN-BUS总线信号及波形分析
随着汽车电子装置的不断增多,采用串行总线实现多路传输,组成汽车电子网络,是一种既可靠又经济的做法。 在最初的传统汽车电路中,动力总成模块与车身模块的连接都是点对点的连接,这样线路会日益复杂,线路的增加,也会导致汽车故障率的增加。 后来CAN总线在汽车上使用越来越广泛。所谓多路传输,指在计算机局域网中,将多种信息混合或交叉通过一个通信信道传送的方式。一个具有多路传输功能的网络允许多个计算机同时对它进行访问。 CAN(多路传输技术)应用于汽车上,可以使得布线更加简化,成本降低,电控单元之间交流更加简单和快捷,更少的传感器数目,实现信息资源共享。 多路传输通信网络应用于多模块操作系统上。模块由普通双绞线相互连接,并使用数
[测试测量]
利用高度集成的8位MCU简化CAN在汽车中的应用
作者Edwin Romero 控制器局域网(CAN)协议是在20世纪80年代中期专为汽车行业设计的一种规范,可在日益增长的互联应用中减少数据传输的布线复杂性(重量、数量和成本)。 CAN的优势也被其他市场(包括工厂自动化和医疗应用)接受和吸纳,这使其应用范围更加广泛,全球每年交付的CAN节点超过10亿个。同样,每年交付的8位单片机(MCU)也超过10亿个。如今,虽然这些统计数据有部分重叠,但今后仍会有大幅增长。 CAN继续满足汽车制造商的需求 传统的CAN通信以事件为基础,允许单片机和专用集成电路(ASICS)在应用中直接相互通信,无需主机。CAN经过半导体公司集成后极大降低了成本
[汽车电子]
调试好的CAN总线程序(汇编1)
系统can地址为550,用于can系统测试,应用T0定时器每隔1s向can总线发送一组数据:数据长度为8个字节, 首字节为05H,第二个字节为累加变量,每秒钟数值增加1,
CONTROLLER_BASE EQU 7E00H ;SJA1000的片选地址
RCV_GOOD BIT 0FH ;成功的接收一帧标志 SEC_FLAG BIT 010H ;一秒到标志 ERR_FLAG BIT 011H ;监测到错误标志
SAVE_INT_INFO
[嵌入式]
DSP-LF2407A和CAN总线组成的分布式电机控制系统
引言 CAN(Controller Area Network)控制器局域网,主要用于各种设备监测及控制的局域网。最初由德国Bosch公司用于汽车的监控系统而设计,具有良好的功能特性和极高的可靠性,现场抗干扰能力极强, 总线形式为串行数据通信总线。
TI 的24X系列芯片,具有处理性能优良(30MIPS),外设集成度高,程序存储器容量大,A/D转换速度快等特点,是基于工业控制而设计的DSP(数字信号处理)类芯片。LF2407A以其丰富的集成外设,提供了电机数字化控制解决方案。其嵌入式CAN总线控制器,基于CAN2.0B规范要求,提供了CAN通信功能,可为实现分布式工业监控局域网络提供了一个解决方案。
CAN总线简介
CAN
[嵌入式]
RS485-CAN 转换器的设计
1 RS485 及CAN 总线简介
RS485 是一种平衡传输方式的串行接口标准,采用半双工异步数据通信方式。基于在RS485 总线上只能有一个主机的特点,它往往应用在集中控制枢纽和分散控制单元之间。同时RS485 的总线效率低,系统的实时性差,通信的可靠性低,后期维护成本高,网络工程调试复杂,传输距离不理想,单总线可挂接的节点少等缺点也局限了其应用。
CAN(Controller Area Network,控制器局域网)现场总线是一种由带CAN 控制器组成的高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一。它的总线长度最远可达10 千米(速率5Kbps 以下),数据传输速率最高可达1Mbps(通讯
[嵌入式]
HMI_Board_LVGL基于开发板自带CAN显示车速和发动机转速
1.应用背景 汽车仪表是汽车上显示行车信息必不可少的电子设备,用于显示汽车行驶过程中的一些实时信息,比如车速,发动机转速,转向灯等等,这些信息通常都是通过车身CAN总线进行传输的,而HMI Board开发板又正好具备CAN收发的能力,可通过此开发板接收车身的CAN信息解析后通过LVGL显示相关的信息。 2.实现功能 本设备实现了CAN的接收,解析出信息后通过LVGL显示在自带的屏幕上。 3.RT-Thread使用情况 本方案使用了RT-Thread操作系统,LVGL功能组件,CAN外设功能。 4.硬件架构 使用HMI Board自带的CAN功能接收车身CAN信息,以USB转CAN工具模拟发送CAN数据进行软件调试 5.软件设计 使
[嵌入式]
CAN一致性测试系统之终端电阻与内阻测试
在CAN总线测试中,会遇到找不出原因的错误,那你可能忽略了一个解决异常的利器——终端电阻。究竟终端电阻对CAN总线有什么重要作用和影响呢? 电信号在电缆中的传播与光相似,光从空气射入水中会发生光的发射和折射,电信号在阻抗不连续或者发生突变时,会发生电信号的发射。反射过程比较复杂,甚至可能发生多次反射,发射的信号可能会混淆在正常信号上,引起电平变化,导致数据传输出现错误。 1 什么是终端电阻 使传输电缆的阻抗保持连续可以有效的消除发射,但是电缆总是有终点的,终点的阻抗肯定会发生突变,为了使终点阻抗保持连续,CAN-bus规定在电缆两端或者一端接入匹配电阻——终端电阻,如图1所示,高速CAN-bus终端电阻的接法。
[测试测量]