搜档网
当前位置:搜档网 › CAN总线详解

CAN总线详解

CAN总线§1 CAN总线的性能特点§2 CAN总线的技术规范§3 CAN器件及开发

CAN(Controllor Area Network)总线技术,由于其高性能、高可靠性以及独特的设计,越来越受到人们的重视。已被列入ISO国际标准,称为ISO11898。

CAN最初是由BOSCH公司为汽车监测、控制系统而设计的。由于CAN总线本身的特点,其应用范围已不再局限于汽车工业,而向过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械等领域发展。

主要特点如下:

1、多主方式工作;

2、具有不同的优先级;

3、采用非破坏性总线仲裁技术

4、CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”;

5、节点数主要取决于总线驱动电路;

6、采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。

7、CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。

8、CAN节点在错误严重的情况下具有自动关闭输

出的功能,以使总线上其他节点的操作不受影响。

9、直接通讯距离最远可达10km(速率在5Kbps以下);通信速率可达1Mbps(通信距离最长为

40m);

§2 CAN总线的技术规范§2.1 CAN的通信参考模型

§2.2 CAN总线介质装置

§2.3 报文传送与帧结构

§2.4 错误类型和界定

§2.5 位仲裁技术

1991年飞利浦半导体公司制定并发布了CAN

技术规范。

CAN技术规范(Version2.0)包括A和B两部分:

2.0A:CAN报文标准格式

2.0B:标准的和扩展的两种格式

CAN只采用了ISO/OSI模型中的物理层和数据链路层。

CAN通信模型的分层结构

一、物理层

CAN技术规范的物理层定义信号怎样进行发送,因而涉及电气连接、驱动器/接收器的特性、位编码/解码、位定时及同步等内容。但对总线媒体装置,诸如驱动器/接收器特性未作规定,以便在具体应用中进行优化设计。

CAN物理层选择灵活,没有特殊的要求,可以采用共地的单线制、双线制、同轴电缆、双绞线、光缆等。

二、数据链路层

1、逻辑链路控制子层

为数据传送和远程数据请求提供服务,确认要发送的信息,确认接收到的信息,并为恢复管理和通知超载提供信息,主要功能是报文滤波、超载通知和恢复管理。

2、介质访问控制子层

主要是传送规则,亦即控制帧结构、执行总线仲裁、错误检测、出错标定和故障界定。MAC子层为开始一次新的发送确定总线是否开放或者是否马上接收。MAC子层是CAN协议的核心,该子层特性不存在修改的灵活性。

CAN数据链路层由一个CAN控制器实现,采用

了改进的CSMA/CD方式,但不同于普通的Ethernet,它采用非破坏性总线仲裁技术,网络上节点(信息)有高低优先级之分以满足不同的实时需要。

当总线上有两个节点同时向网上输送信息时,优先级高的节点继续传输数据,而优先级低的节

点主动停止发送,有效地避免了总线冲突以及负

载过重导致网络瘫痪的情况。

三、应用层协议

CAN协议标准仅仅定义了物理层和数据链路层。

早期CAN应用层的种类比较多,可以说每个厂家都有自己的应用层标准。

Honeywell公司的SDS(智能分布系统)

Rockwell公司的Devicenet

§2.2 CAN总线介质装置

在1993年形成的国际标准ISO11898中对基于双绞线的CAN总线介质装置特性做了建议。

总线可具有两种逻辑状态:隐性或显性。显位能改写隐位。“0”为显性位,“1”为隐性位。

§2.3 报文传送与帧结构

报文中的位流按照非归零码(NRZ)方法编码。

报文传送由4种不同类型的帧表示和控制:

?数据帧携带数据由发送器至接收器;

?远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;

?出错帧由检测出总线错误的任何单元发送;?超载帧用于提供当前的和后续的数据帧的附加延迟。

一、数据帧

数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧尾。数据场长度可为0。

在CAN 2.0B中存在两种不同的帧格式(标准格式和扩展格式)。

为使控制器设计相对简单,并不要求执行完全的扩展格式,但必须完全执行标准格式。

如何实现CAN技术规范兼容?

每个控制器均支持标准格式,每个控制器均接受扩展格式报文,不至于因为格式而破坏扩展帧。

1、帧起始(SOF)

标志数据帧和远程帧的开始,它仅由一个显位构成。

2、仲裁场

对于CAN 2.0B,标准格式和扩展格式的仲裁场格式不同。

RTR——远程发送请求位;SRR——替代远程请求位。

标准:ID.28-ID.18;扩展:ID.28-ID.0(基本和扩展ID)

can总线协议完全解析

CAN总线协议解析 李玉丽 (吉林建筑工程学院电气与电子信息工程学院,吉林长春,130021 ) 摘要:现场总线的发展与应用引起了传统控制系统结构的改变。控制局域网(C AN)总线因其自身的特点被广泛应用于 自动控制领域。本文对C AN总线协议作了详尽解析。 关键词:C AN总线;隐性位;显性位;节点 中图分类号:T U 85 文献标识码:A CAN(Cont roll e r A rea N et work)是分布式实时控 制系统的串行通信局域网,称谓CAN总线。在数据 实时传输中,设计独特、低成本,具有高可靠性,得到 广泛应用。 本文着重解析C AN 技术规范2.0B 版的CAN 的分层结构规范和CAN 报文结构规范。重点在于 充分理解CAN总线协议精髓,有助于CAN总线的 局网设计、软件编程、局网维护。 一、C AN的分层结构 CAN 遵从O SI ( Ope n Syste m I nte rc onnec ti on Re fe re nce Mode l ) 模型,其分层结构由高到低如图1 所示。 图1 C AN的分层结构 对应OSI 模型为两层,实际为三层,即LLC、 MA C、PL S。由此而知,对应于CAN总线系统每个 节点都是三层结构。数据发送节点数据流为LLC→ MA C→P LS ,然后将数据发送到总线上;而对于挂在 总线上的所有节点(包括发送节点)的接收的数据流 为PL S→MA C→LLC。 这种分层结构的规范保证了CAN 总线的多主 方式工作模式,即不分主从,非破坏性的仲裁工作模 式。而LLC 层的报文滤波功能可实现点到点、一点 对多点、全局广播、多点对一点,多点对多点等数据 传递方式。 各分层主要功能如下: LLC 层:接收滤波、超载通知、恢复管理; MAC 层:控制帧结构、执行仲裁、错误检测、出 错标定、故障界定。该层是CAN的核心; PL S 层:位编码/ 解码、位定时。 二、CAN总线的报文规范 CAN报文的传送有4 种不同类型的帧结构,数 据帧、远程帧、出错帧、超载帧。CA B2.0B 有4 种帧 格式。 (一)数据帧

CAN总线协议的物理层和报文类型

CAN总线协议的物理层和报文类型 CAN 总线的物理层是将ECU 连接至总线的驱动电路。ECU 的总数将受限 于总线上义了物理数据在总线上了物理数据在总线上各节点间的传输过程,主 要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。BOSCH CAN 基本上没有对物理层进行定义,但基于CAN 的ISO 标准对物理 层进行了定义。设计一个CAN 系统时,物理层具有很大的选择余地,但必须 保证CAN 总线协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时, 具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN 总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐 性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。 在CAN 中,物理层从结构上可分为三层:分别是物理层信令(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS 连同数据链路层功能由CAN 控制器完成,PMA 层功能由CAN 收发器完成,MDI 层定义了电 缆和连接器的特性。目前也有支持CAN 的微处理器内部集成了CAN 控制器和 收发器电路,如MC68HC908GZl6。PMA 和MDI 两层有很多不同的国际或国 家或行业标准,也可自行定义,比较流行的是ISOll898 定义的高速CAN 发送 /接收器标准。理论上,CAN 总线上的节点数几乎不受限制,可达到2000 个,实际上受电气特性的限制,最多只能接100 多个节点。CAN 的数据链路层 是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载 通知和管理恢复等功能,媒体访问控制(Medium Aeeess control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串

CAN总线及CAN通讯协议

CAN总线及CAN通讯协议 CAN,全称为Controller Area Network,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信息,形成汽车电子控制网络。比如:发 动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN 控 制装置。一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250 作为CAN 收发器时,同一网络中允许挂接110 个节点。CAN 可提供高达1Mbit/s 的数据传输速率,这使实时控制变得非常容易。另外,硬件的错 误检定特性也增强了CAN 的抗电磁干扰能力。CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每一 层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI 开放式互连模型的各层。应用层 协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业控制和 制造业领域得到广泛应用的标准是DeviceNet,这是为PLC 和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的 两层,而设备只通过模型物理层的物理介质互连。CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI 开放式互连模型的各层。 应用层协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业 控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC 和智能传感

CAN总线技术详解

CAN总线技术详解 起源 20世纪80年代,Robert Bosch 公司在SAE(汽车工程协会)大会上介绍了一种新型的串行总线CAN控制器局域网,那也是CAN 诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有CAN 局域网。同样,CAN也用于其他类型的交通工具,从火车到轮船或者用于工业控制。CAN 已经成为全球范围内最重要的总线之一甚至领导着串行总线。CAN总线的工作原理 CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。 当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。 当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。 由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

汽车can总线协议

汽车can总线协议 篇一:史上最全can总线协议规则 一、CAN总线简介 CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH 公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。 二、CAN总线技术及其规范 2.1性能特点 (1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息; (2) CAN网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输;

(3) 采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况; (3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M); (4) 通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。 (5) 采用短帧结构,传输时间短,受干扰概率低,每帧信息都有CRC校验及其他检验措施,数据出错率极低; (6) 节点在严重错误的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。 (7) CAN总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。 2.2技术规范 2.2.1CAN的分层结构 图1 CAN的分层结构 逻辑链路控制子层(LLC)的功能:为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文实际上已被

CAN总线协议

CAN总线协议 依据国际标准化组织/开放系统互连(International Standardi-zation Organization/Open SystemInterconnection,ISO/OSI)参考模型,CAN的ISO/OSI参考模型的层结构如图7-6所示。下面对CAN协议的媒体访问控制子层的一些概念和特征做如下说明: (1)报文(Message) 总线上的报文以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。 (2)信息路由(Information Routing) 在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。 (3)标识符(Identifier) 要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。 (4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。 (5)位传输速率不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。 (6)优先权由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。 (7)远程数据请求(Remote Data Request) 通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。 (8)仲裁(Arbitration) 只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。 (9)总线状态总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式,如图7-7所示。 10)故障界定(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。 (11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。

(完整版)CAN总线解析

一、概述 CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。 想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel)CAN 有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10KM,无损位仲裁机制,多主结构。 近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。 一个典型的CAN应用场景: 二、CAN总线标准 CAN总线标准只规定了物理层和数据链路层,需要用户来自定义应用层。不同的CAN标准仅物理层不同。

CAN收发器负责逻辑电平和物理信号之间的转换,将逻辑信号转换成物理信号(差分电平)或者将物理信号转换成逻辑电平。 CAN标准有两个,即IOS11898和IOS11519,两者差分电平特性不同。(有信号时,CANH 3.5V,CANL 1.5V,即显性;没有信号时,CANH 2.5V,CANL 2.5V,即隐性) IOS11898高速CAN电平中,高低电平的幅度低,对应的传输速度快。 双绞线共模消除干扰,是因为电平同时变化,电压差不变。 2.1物理层 CAN有三种接口器件

多个节点连接,只要有一个为低电平,总线就为低电平,只有所有的节点都输出高电平时,才为高电平。所谓“线与”。 CAN总线有5个连续性相同的位后,就会插入一个相反位,产生跳变沿,用于同步。从而消除累计误差。 和485、232一样,CAN的传输速度与距离成反比。 CAN总线终端电阻的接法:

特点:低速CAN在CANH和CANL上串入2.2kΩ的电阻;高速CAN在CANH和CANL 之间并入120Ω电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。(因为大多数双绞线电缆特性阻抗大约在100~120Ω。) 120欧姆只是为了保证阻抗完整性,消除回波反射,提升通信可靠性的,因此,其只需要在总线最远的两端接上120欧姆电阻即可,而中间节点并不需要接(接了反而有可能会引起问题)。因此各位在使用CAN Omega做CAN总线侦听的时候,大多数情况下是不需要这个120欧姆电阻的,当然,即使当前网络中并没有终端匹配电阻,只要传输线长度不长(比如SysCan360比赛环境中,传输线只有1-2米)CAN节点数量不多的情况下,不要这个120欧姆电阻也完全可以工作,甚至,你接任意电阻都是不会有影响的。因为此时传输线长度和波长还相差甚远,节点不多的情况下,反射波的叠加信号强度也不会很强,因此传输线效应完全可以忽略。 而哪些情况需要呢,主要就是,当使用2个CAN Omega对发或者当前网络中仅有2个CAN设备的时候,此时两个端点最好都加上终端匹配电阻,当然,前面也说过了,传输线长度不长的时候,也可以不需要2端120欧姆电阻,但为了信号完整性考虑,加上这两个电阻才是严谨的。 2个120欧姆电阻的意义在于,使用USB CAN调试某些不带终端电阻的中间节点设备时,有时候CAN总线上没有2个120欧姆电阻通信可能会异常,此时可以接入2个120欧姆电阻作为2个终端电阻来作阻抗匹配,这时候其他端点不应接入任何终端电阻!并且,这2个120欧姆电阻不可用1个60欧姆电阻代替!

CAN总线的特点及J1939协议通信原理、内容和应用

CAN总线的特点及J1939协议通信原理、内 容和应用 众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧Ⅲ标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算机及控制技术。采用控制器局域网和国际公认标准协议J1939来搭建网络,并完成数据传输,以实现汽车内部电子单元的网络化是一种迫切的需要也是必然的发展趋势。 1 CAN总线特点及其发展 控制器局域网络(CAN)是德国Robert bosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线。CAN是一种很高保密性,有效支持分布式控制或实时控制的串行通信网络。CAN的应用范围遍及从高速网络到低成本底多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电气系统中,如灯光聚束、电气窗口等,可以替代所需要的硬件连接。它采用线性总线结构,每个子系统对总线有相同的权利,即为多主工作方式。CAN网络上任意一个节点可在任何时候向网络上的其他节点发送信息而不分主从。网络上的节点可分为不通优先级,满足不同的实时要求。采用非破坏性总线裁决技术,当两个节点(即子系统)同时向网络上传递信息时,优先级低的停止数据发送,而优先级高的节点可不受影响地继续传送数据。具有点对点、一点对多点及全局广播接收传送数据的功能。 随着CAN在各种领域的应用和推广,对其通信格式的标准化提出了要求。1991年9月Philips Semiconductors制定并发布了CAN技术规范(Versio 2.0)。该技术包括A和B两部分。2.OA给出了CAN报文标准格式,而2.OB给出了标准的和扩展的两种格式。1993年11月ISO颁布了道路交通运输工具-数据信息交换-高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。美国的汽车工程学会SAE于2000年提出的J1939,成为货车和客车中控制器局域网的通用标准。 2.J1939协议通信原理及内容 (1)J1939与CAN J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表2则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。

CAN总线自定义协议使用说明

CAN总线自定义协议使用说明 用C语言实现自己的协议 进入EV5000安装目录下builddriver目录(如图1),这个目录里面的fbserver.c文件即协议程序,用户不需要了解CAN口的细节编程,只需要按照该框架,用C语言来编写自己的协议即可。不可随意更改该文件中的函数名及头文件引用。 图1

CAN 自定义协议程序的流程图 接收线程流程 主程序流程 图2 需要用户实现的函数 void Init(CAN_PORT canport) 调用方式:仅在组态程序运行的时候执行一次 功能:用户程序的初始化 void main_process (CO_Data* d, UNS32 id) 调用方式:周期性执行,默认周期为10ms ,周期可以在void Init(CAN_PORT canport)中调用Set_Cycle 来设定,最小周期为10ms 功能:用户程序的“main 函数” void MsgDispatch (CO_Data* d, Message *m) 调用方式:每接收到一帧CAN 数据,就执行一次 功能:常用于对接收到的数据做解析,或者做出响应

供用户调用的API函数 void Set_Cycle(ms) 功能:用于设定main_process的运行周期, 参数:ms的单位为毫秒, 非零 UNS8 Send_Msg(CAN_PORT port, Message *m,UNS8 bExtended) 功能:向CAN总线发送一帧CAN数据 参数:port指向已打开CAN口的句柄,m指向Message结构体的指针,bExtended为1时按扩展帧发送,为0时按标准帧发送 void Write_LW8K (UNS32 n,UNS16 val) 功能:将val 写入LW8000+n的寄存器 参数:n偏移量、最大999,val待写入的值 UNS16 Read_LW8K (UNS32 n) 功能:读取LW8000+n的寄存器的值 参数:n偏移量、最大999 void Set_Timer(TimerCallback_t callback,TIMEVAL value, TIMEVAL period) 功能:使用定时器,经过设定的时间后,调用callback函数 参数:callback回调函数指针,value单次定时时间,period周期定时时间 void CopyToLW(UNS32 offset,const void *src, size_t n); 功能:由src所指内存区域复制n个字节到LW8000+offset所在内存区域 说明:src和LW8000+offset所在内存区域不能重叠 void CopyFromLW(UNS32 offset,const void *src, size_t n); 功能:由LW8000+offset所在内存区域复制n个字节src所指内存区域 说明:src和LW8000+offset所在内存区域不能重叠 相关的结构体定义 typedef struct { UNS32 w; /* 32 bits */ } SHORT_CAN; /** Can message structure */ typedef struct { SHORT_CAN cob_id; /* l'ID du mesg */ UNS8 rtr; /* remote transmission request. 0 if not rtr, 1 for a rtr message */

CAN总线技术讲解

摘要: 随着工业测控技术和生产自动化技术的不断进步,传统的RS-232、RS-485和CCITTV.24通信技术已不能适应现代化的工业控制需要,而现场总线(Fieldbus)以其低廉的价格、可靠的性能而逐步成为新型的工业测控领域的通信技术。现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节点数字通信的系统,是一种开放式、数字化、多点通信的底层控制网络。汇集了计算机技术、网络通信技术和自动控制技术(3C)的现场总线技术,从20世纪80年代开始发展起来,并逐步在制造业、流程工业、交通、楼宇等方面的自动化系统中得到了广泛的重视和应用。现场总线主要有以下几种类型[1-3]:基金会现场总线(FF)、LonWorks、ProfiBus、CAN、HART,而其中CAN即控制器局域网因为具有高性能、高可靠性以及独特的设计而越来越受到关注,现已形成国际标准,被公认为几种最有前途的现场总线之一。 Abstract: As industrial measurement and control technology and production automation technology advances, the traditional RS - 232, RS - 485 and CCITTV. 24 communication technology can not meet the needs of modern industrial control, and field bus (Fieldbus), with its low price, reliable performance, and gradually become a new kind of communication technology in the field of industrial measurement and control. Field bus is used in production field, between microcomputer-based measuring control equipment to realize the bidirectional serial multi-node digital communication system, is a kind of open, digital, multipoint communication bottom control network. Brings together computer technology, network communication technology and automatic control technology (3 c) field bus technology, developed in the 1980 s, and gradually in the manufacturing and process industries, transportation, building automation system has been widely attention and application. Fieldbus basically has the following several types: [1-3] foundation fieldbus (FF), LonWorks, ProfiBus, CAN, HART, and which CAN namely controller local area network (LAN) because of the high performance, high reliability and unique design is more and more attention, already formed the international standard, is recognized as one of the most promising fieldbus.

can总线的通信协议

竭诚为您提供优质文档/双击可除 can总线的通信协议 篇一:停车场系统can总线通信协议 停车场系统can总线通信协议 本系统主控制器采用Rs485通信方式以同管理机(pc)通信。主控制器同分控制器之间采用can通信方式。协议按can2.0a规范设计。 标识符用法定义如下: 1定义通行的主机和从机,主控制器为主机,分控制器为从机。2通信速率为100kbps,使用can2.0a标准帧格式。 3使用id10为命令/应答标志,id10=1时该帧为命令帧,id10=0时该帧为应答帧。4id9出/入口标志,0表示入口/1表示出口;id8~id3为系统标识地址。5id2广播标识。0为广播帧,1为非广播帧。 主/从机在发送数据时必须判断总线上的数据是否为多帧数据,若是则必须等多帧数据结束才可以上传数据,而不至于使多帧数据被打断。 (1)有效数据包含命令和数据。 (2)主机/从机接收数据后,分析data1若为本机机号或

广播地址,则必须处理后续数 据,否则不予处理。主机/从机接收的有效数据应该从 数据场的第二个字节开始,共7个字节。 二)应用层协议 该层协议定义了主机和从机之间的命令和数据格式(定 义在报文的数据区,由于data1参与了滤波,所以从data2 开始),包括两部分:从机主机协议和主机从机协议。主从 机之间相互传递的有效数据的最后一个字节为有效数据中 除去命令字节和数据长度字节之外所有数据的异或和(bcc)。 1)从机主机协议:说明: 1.如果数据长度超过5个字节,则必须多帧发送。2.分机主动上传卡号时,data2=5ah。,数据长度=05h(其中卡号data4—data6为 卡号,data8为bcc。 3.数据长度为data4至data8有效数据字节数。 4.从机应答命令:在分机接收到主机的命令后,返回 一个应答帧。通知主机是否接正 确收到命令和返回执行命令的结果。此时,如果接收命令和执行命令正确,data2为主机发送的命令字节数据,如 果接收的命令不正确或执行失败,则data2为将主机发送的命令字节数据的最高位置1后的字节数据。5.从机请求命令:(1).command:5bh功能:上传开闸设置length:3

车辆CAN总线概述(完整版)解析

一.CAN总线简介 1. CAN总线的发展历史 20世纪80年代初期,欧洲汽车工业的蓬勃发展,车辆电子信息化程度的也不断提高。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,但是传统的线束式汽车电子系统已经不能满足车辆电子信息功能发展的需求。为了解决这一制约现代汽车电子信息化发展的瓶颈,德国Bosch公司设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上,经过试验,这一总线能够有效解决现代汽车中庞大的电子控制装置之间的通讯,并且能够减少不断增加的信号线。所以在1986年Bosch公司正式公布了这一总线,且命名为CAN总线。 CAN控制器局部网(CAN—Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通讯网络,它具有很高的网络安全性、通信可靠性和实时性,简单实用,网络成本低,特别适用于汽车计算机控制系统和环境恶劣、电磁辐射强和振动大的工业环境,因此CAN总线在诸多现场总线中独占鳌头,成为汽车总线的代名词,CAN总线开始进入快速发展时期:1987年Intel公司生产出了首枚CAN控制器(82526)。不久,Philips公司也推出了CAN 控制器82C200; 1991年,Bosch颁布CAN 2.0技术规范,CAN2.0包括A和B两个部分 为促进CAN以及CAN协议的发展,1992在欧洲成立了国际用户和厂商协会(CAN in Automation,简称CiA),在德国Erlangen注册,CiA总部位于Erlangen。CiA提供服务包括:发布CAN的各类技术规范,免费下载CAN文献资料,提供CANopen规范DeviceNet规范;发布CAN产品数据库,CANopen产品指南;提供CANopen验证工具执行CANopen认证测试;开发CAN规范并发布为CiA 标准。 1993 年CAN 成为国际标准ISO11898(高速应用)和ISO11519(低速应用); 1993年,ISO颁布CAN国际标准ISO-11898; 1994年,SAE颁布基于CA N的J1939标准; 2003年,Maybach发布带76个ECU的新车型(CAN,LIN,MOST);

史上最全can总线协议规则

一、CAN总线简介 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。 二、CAN总线技术及其规范 2.1性能特点 (1)数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息; (2)CAN网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输; (3)采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况; (3)通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M); (4)通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。 (5)采用短帧结构,传输时间短,受干扰概率低,每帧信息都有CRC校验及其他检验措施,数据出错率极低; (6)节点在严重错误的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。 (7)CAN总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。 2.2技术规范 2.2.1CAN的分层结构

CAN232MB CAN总线协议转换器用户手册

GY850X CAN232MB/CAN485MB/CAN422MB CAN总线协议转换器 型号产品名称描述 CAN总线协议转换器 CAN总线转RS232 GY8502 CAN232MB CAN总线协议转换器 CAN总线转RS485 GY8503 CAN485MB CAN总线协议转换器 CAN总线转RS422 GY8504 CAN422MB 说明书时间硬件版本软件版本 V1.0 2006年11月V1.0 V1.0 Beta发布 V2.2 2008年4月V2.1 V2.1 CAN232MB,CAN485MB手册整理V2.3 2008年5月 V2.2 V2.2 说明书整理,增加CAN422MB

目录 目 录 (2) 第一章 产品简介 (4) 1.1 概述 (4) 1.2 性能与技术指标 (4) 1.3 典型应用 (5) 1.4 产品销售清单 (6) 1.5 技术支持与服务 (6) 第二章 硬件描述与使用方法 (7) 2.1 产品外观 (7) 2.2 CAN总线接口定义 (7) 2.3 DB9端接口定义 (8) 2.4 指示灯定义 (8) 2.5 CAN总线连接 (8) 第三章 配置说明 (9) 3.1 配置方法 (9) 3.2 软件说明 (9) 3.2.1 配置基本参数 (10) 3.2.2 配置串口参数 (12) 3.2.3 配置CAN接口参数 (12) 3.2.4 举例介绍验收滤波的设置 (14) 3.2.5 软件下方按钮说明 (16) 第四章 应用说明 (16) 4.1 模式1 透明转换模式 (17) 4.1.1 串行帧转CAN 报文 (17) 4.1.2 CAN报文转串行帧 (18) 4.2 模式2 透明带ID标识转换 (18) 4.2.1 串行帧转CAN 报文 (18) 4.2.2 CAN报文转串行帧 (20)

CAN总线协议转换器

GY850X CAN232MB/CAN485MB CAN总线协议转换器 型号 产品名称 描述 GY8502 CAN232MB CAN总线协议转换器 CAN总线转RS232 GY8503 CAN485MB CAN总线协议转换器 CAN总线转RS485 说明书 时间 V1.0 2006年11月 Beta发布 V2.2 2008年4月 CAN232MB,CAN485MB手册整理 V2.3 2008年5月 说明书整理 V2.4 2008年10月 增加ModbusRTU协议支持 V2.5 2009年3月 增加透明带协议头转换模式 V2.51 2010年6月 文档整理,去掉422接口产品说明

目 录 目 录 (2) 第一章 产品简介 (4) 1.1 概述 (4) 1.2 性能与技术指标 (4) 1.3 典型应用 (5) 1.4 产品销售清单 (5) 1.5 技术支持与服务 (6) 第二章 硬件描述与使用方法 (6) 2.1 产品外观 (6) 2.2 CAN总线接口定义 (7) 2.3 DB9端接口定义 (7) 2.4 指示灯定义 (8) 2.5 CAN总线连接 (8) 第三章 配置说明 (8) 3.1 配置方法 (9) 3.2 软件说明 (9) 3.2.1 配置基本参数 (10) 3.2.2 配置串口参数 (12) 3.2.3 配置CAN接口参数 (12) 3.2.4 举例介绍验收滤波的设置 (13) 3.2.5 软件下方按钮说明 (15) 第四章 应用说明 (16) 4.1 模式1 透明转换模式 (16) 4.1.1 串行帧转CAN 报文 (17) 4.1.2 CAN报文转串行帧 (17) 4.2 模式2 透明带ID标识转换 (18) 4.2.1 串行帧转CAN 报文 (18) 4.2.2 CAN报文转串行帧 (19) 4.3 模式3 Modbus RTU转换 (20)

CAN总线教程详解

工作原理 当CAN 总线上的一个节点(站)发送数据时,它以报文的形式广播给网络中所有节点,对每个节点来说,无论数据是否是发给自己的,都对其接收。 每组报文开头的11 位字符为标识符,定义了报文的优先级,这种报文格式成为面向内容的编制方案。同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文,当几个站同时竞争总线读取时,这种配置十分重要。 大体的工作原理我们搞清了,但是根本的协议我们还要花一番功夫。下面介绍一个重要的名词,“显性”和“隐性”:首先CAN 数据总线有两条导线,一条是黄色的,一条是绿色的------分别是CAN_High 线和CAN_Low 线,当静止状态时,这两条导线上的电平一样,这个电平称为静电平,大约为2.5 伏。 这个静电平状态就是隐形状态,也称隐性电平,也就是没有任何干扰的时候的状态称为隐性状态。当有信号修改时,CAN_High 线上的电压值变高了,一般来说会升高至少1V;而CAN_Low 线上的电压值会降低一个同样值,也是1v。 那么这时候,CAN_High 就是 2.5v+1v=3.5v,它就处于激活状态了。而CAN_Low 降为2.5v-1v=1.5v。可以看看这个图 由此我们得到 在隐性状态下,CAN_High 线与CAN_Low 没有电压差,这样我们看到没有任何变化也就检测不到信号。但是在显性状态时,改值最低为2V,我们就可以利用这种变化才传输数据了。所以出现了那些帧,那些帧中的场,那些场中的位,云云。

在总线上通常逻辑 1 表示隐性。而0 表示显性。这些 1 啊,0 啊,就可以利用起来为我们传数据了。利用这种电压差,我们可以接收信号。 一般来说,控制单元通过收发器连接到 CAN 驱动总线上,这个收发器(顾名思义,可发送,可接收)内有一个接收器,该接收器是安装在接收一侧的差动信号放大器。然后,这个放大器很自然地就放大了CAN_High 和CAN_Low 线的电平差,然后传到接收区。如下图 由上图可知,当有电压差,差动信号放大器放大传输,将相应的数据位转化为0。 下面我们进入重点难点-----报文 所谓报文,就是CAN 总线上要传输的数据报,为了安全,我们要给我们传输的数据报编码定一下协议,这样才能不容易出错,所以出现了很多的帧,以及仲裁啊,CRC 效验。这些都是难点。 识别符的概念 识别符顾名思义,就是为了区分不同报文的可以鉴别的好多字符位。有标准的,和扩展的。标准的是11 位,扩展的是29 位。他有一个功能就是可以提供优先级,也就是决定哪个报文优先被传输,报文标识符的值越小,报文具有越高的优先权。 CAN 的报文格式有两种,不同之处其实就是识别符长度不同,具有11 位识别符的帧称为标准帧,而还有29 位识别符的帧为扩展帧,CAN 报文有以下4 个不同的帧类型。分别是:

CAN总线和iCAN协议的介绍

CAN总线和iCAN协议的介绍 在进行系统信息传输网络的设计时,根据本系统的特性和实际的应用性从现有的几种较为普遍的车用总线中选择了CAN总线作为通信网络。 作为车用总线系统中覆盖范围最广的总线,CAN总线的主要特点是: 1.总线为多主站总线,通信灵活; 2.采用独特的非破坏性总线仲裁技术,从而避免了总线冲突,满足了实时性要求; 3.支持多主工作方式,支持点对点,一点对多点的全局广播方式接受/发送数据方式; 4.采用短帧结构传输,每帧有效字节数最多为8个,数据传输时间短,并有CRC及其他校验措施,数据出错率极低; 5.具有自动关闭严重错误节点的功能,抗干扰能力强,可靠性高; 6.系统走线少,扩充容易,改型灵活; 7.最大传输速率可达1MB/S,直接通信距离最远可达l0KM; 8.总线上的节点数量主要取决于总线驱动电路,标准帧(11位报文标识符)可达110个,而扩展帧(29位报文标识符)个数几乎不受限制[i]。 系统要求车身信息及时显示,各检测模块与主屏显示模块间的信息传输速率范围在10KB/S~125KB/S间;显示模块与检测模块之间能实现点对点,一点对多点、全局广播的数据通信模式;当总线上的一个模块出现问题时不影响到其他模块的通信。基于以上的设计要求本系统选择了B类CAN总线作为通信网络。 由于CAN总线协议只规定了物理层和数据链路层,没有对应用层进行规定,导致整体功能并不完整[ii]。因此在基于CAN总线技术的分布式控制系统中,有些功能必须要通过一个更高层的协议来实现,从而实现在CAN网络中通讯模式、网络管理功能执行、以及设备功能描述方式的统一[iii]。 目前占领主要国际市场的两个应用层协议为:CANOpen 协议和DeviceNet 协议。CANopen协议适用于产品内部的嵌入式网络通信应用,DeviceNet协议是用于工业自动化控制,两种协议规范的复杂度较高,理解开发的难度较大[iv]。这两种协议本车载信息系统设计中均不太适用,因此选用了一种简单可靠的CAN 总线应用层标准协议——iCAN协议。 iCAN 协议全称为“Industry CAN-bus ApplicatI/On Protocol”,即工业CAN 总线应用层协议,该协议为现场设备和管理设备之间的连接提供了一种成本低廉,结构简单的通信方案,详细的定义了传输的CAN 报文中各ID 以及数据的分配和应用,定义了各设备的I/O资源和访问规则,建立起了统一的设备模型[v]。

相关主题