当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1 引言can全称为controller area network,即控制器局域网,由德国bosch公司最先提出,是国际上应用最广泛的现场总线之一。最初can 被设计作为汽车环境中的通讯,在汽车电

1 引言

can全称为controller area network,即控制器局域网,由德国bosch公司最先提出,是国际上应用最广泛的现场总线之一。最初can 被设计作为汽车环境中的通讯,在汽车电子控制装置之间交换信息形成汽车电子控制网络。由于其卓越的性能、极高的可靠性和低廉的价格现已广泛应用于工业现场控制、医疗仪器等众多领域[1][2]。

can协议是建立在osi 7层开放互连参考模型基础之上的。但can协议只定义了模型的最下面两层:数据链路层和物理层,仅保证了节点间无差错的数据传输。can的应用层协议必须 由can 用户自行定义,或采用一些国际组织制订的标准协议。应用最为广泛的是devicenet和canopen,分别广泛应用于过程控制和机电控制领域。但此类协议一般结构比较复杂,更适合复杂大型系统的应用。笔者在研制一种基于can总线的分布式高频开关电源充电机系统的过程中设计了一种适合于小型控制系统的 can总线高层通信协议。

2 can的特点[3]

can 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率、抗电磁干扰性,而且要能够检测出总线的任何错误。当信号传输距离达10km时,can仍可 提供高达50kbps 的数据传输速率。

can具有十分优越的特点:

(1) 较低的成本与极高的总线利用率;

(2) 数据传输距离可长达10km,传输速率可高达1mbps[7];

(3) 可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发;

(4) 节点在错误严重的情况下具有自动退出总线的功能;

(5) 报文不包含源地址或目标地址,仅用标志符来指示功能信息和优先级信息。

3 can的技术规范

(1) 帧类型

在can总线中,有四种不同的帧类型[4][5]:

·数据帧(data frame) 数据帧带有应用数据;

· 远程帧(remote frame) 通过发送远程帧可以向网络请求数据,启动其他资源节点传送他们各自的数据,远程帧包含6个不同的位域:帧起始、仲裁域、控制域、crc域、应答域、帧结尾。仲裁域中的rtr位的隐极性表示为远程帧;

·错误帧(error frame)错误帧能够报告每个节点的出错,由两个不同的域组成,第一个域是不同站提供的错误标志的叠加,第二个域是错误界定符;

·过载帧 (overload frame)如果节点的接收尚未准备好就会传送过载帧,由两个不同的域组成,第一个域是过载标志,第二个域是过载界定符。

(2) 数据帧结构

数据帧由以下7个不同的位域(bit field)组成:帧起始、仲裁域、控制域、数据域、crc域、应答域、帧结尾。其标准帧结构如表1所示:

表1 数据帧的结构[4]

 

·帧起始:标志帧的开始,它由单个显性位构成,在总线空闲时发送,在总线上产生同步作用。

·仲裁域: 由11位标识符(id10-id0)和远程发送请求位(rtr)组成,rtr位为显性表示该帧为数据帧,隐性表示该帧为远程帧;标识符由高至低按次序发送,且前7位 (id10-id4)不能全为显性位。标识符id用来描述数据的含义而不用于通信寻址,can总线的帧是没有寻址功能的。标识符还用于决定报文的优先权,id值越低优先权越高,在竞争总线时,优先权高的报文优先发送,优先权低报文退出总线竞争。can总线竞争的算法效率很高,是一种非破坏性竞争。

· 控制域:为数据长度码 (dlc3-dlc0),表示数据域中数据的字节数,不得超过8。

·数据域:由被发送数据组成,数目与控制域中设定的字节 数相等,第一个字节的最高位首先被发送。其长度在标准帧中不超过8个字节。

·crc域:包括crc(循环冗余码校验)序列(15位)和crc界定 符(1个隐性位),用于帧校验。

l应答域:由应答间隙和应答界定符组成,共两位;发送站发送两个隐性位,接收站在应答间隙中发送显性位。应答界定符必须是隐性位。

·帧结束:由7位隐性位组成。

4 自订can高层协议

can的高层协议也可理解为应用层协议,是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。由于充电机系统的结构比较简单,网络规模也比较 小。因此我们自行制订了一种简单而有效的高层通信协议。

技术规范can2.0a规定标准的数据帧有11位标识符,用户可以自行规定其含义,将所需要的信息包含在内。在充电机系统中,每一个节点都有一个唯一的地址,地址码和模块一一对应,通过拨码开关设定,总线上数据的传送也是根据地址进行的。由于本系统规模较小,节点数少于32个,因此为每个模块分配一个5位 的地址码,同一系统中地址码不得重复,系统初始化时由外部引脚读入。将标识符id9-id5定义为源地址,id4-id0定义为目的地址,本协议中从模块 的目的地址全填0,表示数据是广播数据,所有节点都可接收,主模块中目的地址根据要进行通信目的模块的地址确定。本通信协议的数据帧格式详见表2。

表2 数据帧格式

 

理论上源地址和目的地址的范围都是0~31,但由于can协议中规定标识符前7位不能全为显性位,所以源地址不能为31,这时实际节点只有31 个 (0~30)。因此每个系统所含的模块不超过31个。所以源地址和目的地址的范围缩减到0~30。同时上位监控机也要占用一个地址,因此系统中的电源模块 不超过30个,设计时根据节点的优先权高低从小到大分配节点地址。id10位定义为主模块识别码,该位主模块为隐性位,从模块为显性位,以保证主模块通信优先。模块的地址码决定发送数据的优先级。主模块向总线发送的数据有两种:一种是目的地址全部填0的广播数据;另一种是包含特定目的地址的非广播数据。

协议中一帧数据最多能传送8个字节,对于充电机控制系统来说已经足够用了,本系统只用到其中的前5个字节,其余3个节字可用于以后的扩展使用,因此未定义 多帧传输方式。

从模块以广播形式向总线发送数据,同时回收自己发送的数据,若检测到所发送与所收到的数据不符,则立即重新发送上一帧数据。从模块发送信息的顺序由主模块的发出的指令决定,以免在总线通信繁忙时优先级较低的模块始终得不到总线通信权。指令的发送顺序按照各从模块的地址顺序进行,即地址较低的从模块首先获得 指令,得以发送自己的地址码和电流、温度采样值。如发生冲突,则由can控制器自动根据模块的优先级调整发送顺序,在can的底层协议中有完善的优先级仲裁算法,因此应用层协议不必考虑此类问题。[!--empirenews.page--]

对于每个模块,上电1s后若未收到任何通信信息,则按计算延时发送自身的地址码和温度电流采样值。延时时间的计算为[6]:

tdelay=t×add

其中:tdelay-为延时发送时间;

t-为单位延时时间常数,该值根据通信速率定义;可以取1个位周期,在波特率为100khz时为10μs;

add-为模块地址编码。

主模块是id10=0的模块,因此具有最高的优先级。上电后主模块首先向总线广播发送自身的地址码和温度电流采样值,然后即按顺序向从机发送指令,等待从机的回答。主机1秒钟后若未收到任何通信信息则认为该模块出错,发出报警。同样从机1s后若未收到主机任何通信信息则认为主机出错,按照源地址优先级由其 余模块中地址最低的模块充当主模块,并将其id10由1改为0,以获得最高通信优先权。

各模块检测到自身故障时,将切断输出,退出通信,并向上位机报警,同时发出声光报警。

5 结束语

本文中所介绍的can高层通信协议,结构简单、使用灵活、可靠性极高,实现也比较容易。很适合在节点数不多、通信可靠性要求高、控制结构较简单的小型控制系统中应用,具有一定的实用价值。

参考文献

[1] can基本知识[eb]. http://www.zlgmcu.com.

[2] 控制器局域网(can)未来的工业微处理器串行通讯[eb]. http://www.zlgmcu.com.

[3] 周立功等. 增强型80c51单片机速成与实战[m]. 北京:北京航空航天大学出版社,2003.

[4] 饶运涛等.现场总线can原理与应用技术[m]. 北京:北京航空航天大学出版社,2003.

[5] 蒋建文等. can总线通信协议的分析和实现[j]. 计算机工程,2002,2.

[6] 郑尊标.数字化智能电源模块研究[d]. 浙江:浙江大学,2001.

[7] canbus现场总线基础方案芯片篇[eb]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭