当前位置:首页 > 单片机 > 单片机
[导读]1 前 言现场总线是当前工业总线领域中最活跃的一个领域, CAN 总线是工业数据总线领域重要的现场总线之一。CAN 是Contro ller Area N etw ork的缩写, 是国际标准化的串行通信协议。在当今的汽车产业中, 出于对安全

1 前 言

现场总线是当前工业总线领域中最活跃的一个领域, CAN 总线是工业数据总线领域重要的现场总线之一。CAN 是Contro ller Area N etw ork的缩写, 是国际标准化的串行通信协议。在当今的汽车产业中, 出于对安全性、舒适性、方便性、低公害、低成本的要求, 各种各样的电子控制系统被开发出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同, 由多条总线构成的情况很多, 线束的数量也随之增加。为减少线束的数量、通过多个LAN进行大量数据的高速通信, 1986年德国电气商博世公司开发出面向汽车的CAN 通信协议。而今CAN 在欧洲已是汽车网络的标准协议。CAN 的初衷是为了解决汽车里多种复杂数据的通信, 后来证实在很多工业领域也能应用自如。

2 CAN 总线特性及当今状况

CAN 总线与其他通讯网络的不同之处在于: 报文传送中不包括目标地址, 以全网广播为基础, 各接收站根据报文中反映数据性质的标识符过滤报文;强化了对数据安全性的关注, 满足控制系统较高的数据需求。它具有如下显着特征: 极高的总线利用率、低成本、高速的数据传输速率、远距离传输、可靠的错误处理和检错机制、可根据报文的ID决定接收或屏蔽该报文, 节点在错误严重的情况下具有自动退出总线的功能等等。

CAN 总线所需完善的通信协议可由CAN 控制器芯片和接口芯片实现, 大大降低了系统的开发难度、组成成本、缩短了开发周期, 其高性能高可靠性以及灵活的设计受到人们的重视, 应用也越来越广泛。目前比较流行的控制器芯片是飞利浦公司的SJA1000和收发器芯片TJA1050。

由于近几年来CAN 总线技术逐步在我国推广开来, CAN 总线技术的独特特点 传输数据的可靠性和实时性, 已获得国际自动化控制领域的认可,其应用前景十分光明。国内推动CAN 总线技术进步的应用事例不断扩展, 积极促进了我国自动化技术的进步。由于CAN 总线本身的特点, 其应用范围己经扩展到过程工业、机械工业、数控机床、医疗机械、家用电器及传感器等领域, 而在电梯控制系统中, 主板需要接收不同楼层呼梯、轿厢里呼梯、调整电梯运行参数等多路信号, 因此CAN 总线的优势明显。如图1所示。

 

 

图1 CAN总线应用拓扑结构

3 集成CAN 控制器的ARM 微处理器

CAN 总线基于一组严格的协议, 一般来说在主CPU 外接一个专用CAN 控制器以实现。由于近年来微处理器的迅速发展, 出现了很多功能强大的集成CAN 控制器的CPU, 使得在CAN 总线应用上又简便了一些。而在价格上, 集成CAN 总线的微处理器和一般处理器加上专用CAN 控制器芯片的价格相当, 所以, 集成CAN 总线的微处理器必然成为今后CAN 总线应用的趋势。NXP 公司生产的ARM结构LPC2294就是其中一款流行的带CAN 总线控制器的CPU。它是基于一个支持实时仿真和跟踪的32位ARM7TDM I- S CPU 的微控制器, 并带有256k字节嵌入的高速Flash 存储器。极低的功耗、多个32位定时器、8路10位ADC、4路CAN以及多达9个外部中断使它们特别适用于工业控制, 因此,LPC2294也可作为电梯控制系统的主控制器。

4 集成CAN 控制器的高端8位AVR

上文提到, 电梯控制系统需要处理多路信息, 而且它们可能是具有不同传输速率的, 因此需要使用不同通道的CAN 总线控制器。对于控制系统, 必须具有可操作性, 考虑到要减轻主CPU 的负担, 因此,设计一个简单的操作系统对主系统进行操作, 而数据的交换方式就是采用CAN 总线传输, 此文中称这个操作系统为副系统。副系统相对比较简单, 其功能主要包括: ! 和主板进行信息交换; ? 具有按键供输入; # 具有显示信息的显示器。针对功能的需要和程序的体积, 选用了ATMEL公司近年力推的8位AVR控制器at90can128。

a t90can128是一种基于AVR 增强型R ISC结构的低功耗CMOS 8位单片机。通过执行一个单时钟周期的高效指令, AT90CAN128每MH z能达1M IPS,这就可让系统设计人员将功率损耗与处理速度优化。AVR内核具有丰富的指令集并带有32个通用目的工作寄存器。32 个寄存器全都直接连到运算逻辑单元( ALU ) , 允许两个独立的寄存器在一个时钟周期执行单个指令的方式访问。其结果就是, 采用这种结构的速度比常规的R ISC单片机快10倍的同时代码效率更高。它除了拥有一般AVR 处理器的AD 模块, SPI模块外, 还集成CAN 控制器, 为搭建基于CAN 通信的系统提供了便利。控制结构如图2所示。

 

 

图2 at90can128的CAN控制结构。

对于复杂的CAN 通信协议, 在此不详述, 以下就at90can128的CAN控制器使用作介绍。

a t90can128的CAN 控制器提供了所有有利于消息管理的硬件, 对于每个要发送或接收的信息都是通过一个叫做消息对象( message ob ject) 的东西来封装起来的。在对模块初始化的时候, 程序会指定哪些消息要发送, 哪些消息要接收, 只有那些约定好标识符的消息才能被正确无误地交换。另外, 对于接收到的远程帧, 控制器会进行相应的自动回复。

所以在这种方式下, 相对于最原始的CAN 控制方式, CPU 的负担大大减小了。用户可以根据自身要求, 通过对相关寄存器进行配置达到自己的要求。

而在发送消息之前, 必须初始化几个字段:

其中IDT 是标识符字段, IDE 是标识符扩展使能选择, RTRTAG是远程传输请求, DLC 是数据长度代码, RBnTAG 是保留字段( n = 0, 1) , MSG 是指向相应MOB的CAN 数据。当MOB 的发送指令执行后, MOB 就会准备发送一个数据或者是一个远程帧。接着, CAN 通道就会扫描各个MOB, 寻找到优先级最高的MOB, 将其发送出去。当传送成功后,MOB 状态寄存器CANSTMOB 中的TXOK 位就会置位。而最重要的是, 对于每一次新的数据传输都必须重新对相关寄存器初始化, 否则无法正常工作。

接收消息之前所要做的初始化步骤基本相同,只是多了IDMSK 和IDEMSK 标识符掩码的设置。

以下就给出基于AVR at90can128CAN 总线接口初始化以及发送、接收功能模块的关键代码及注解(见图3)。

 

 

图3 电梯系统主板与调试器之间的CAN通信。

CAN 初始化:

CANGCON | = 0X01;

for( i= 0; i< 15; i+ + )

{

CANPAGE = i< < 4; / /将15个MOB 都初始化一次

CANCDMOB = 0;

CANSTMOB= 0;

CAN IDT1= 0;

CAN IDT2= 0;

……

for( j= 0; j< 8; j+ + )

CANMSG= 0;

CANBT1= 0X1E; / /设置CAN 传输波特率, 16分频

CANBT2= 0X40;

CANBT3= 0X49;

CANPAGE = ( 0< < 4) ; / /选择MOB0作为接收MOB, 并设定标识码

CAN IDT1= 0X00;

CAN IDM1= 0X00;

……

CANPAGE = ( 1< < 4); / /选择MOB1作为发送MOB, 并设定标识码

CAN IDT1= 0X00;

……

}

发送模块代码:

CANPAGE = ( 1< < 4); / /选定MOB1

If( ( CANGSTA& 0X10) = = 0) / /查询CAN 状态寄存器的TXBSY 位, 为0, 则可以发送

for( i= 0; i< 8; i+ + )

{

CANMSG= my _dada[ i] ; / /将要发送的数据装入数据寄存器中, 共8 by te

CANCDMOB | = 0X48; / /发送

}

接收模块代码是类似的, 设计思路都是在判断发送允许标志之后, 如果允许, 就将数据装入到指定的MOB中, 而每个MOB 一个发送周期一共可以发送8byte的数据。而CAN 总线的另一端是NXP公司LPC2294的CAN总线外围, 其结构和原理都差不多, 当然, 在寄存器设置中会有一点差别, 但只要两个CPU 约定好数据帧的标识符编号是什么, 传输速率相同, 就可以进行数据交换了。由于篇幅有限,LPC2294的CAN接口设置在此就不作介绍了。

最后给出了CAN 总线应用CPU 外部的硬件原理参考图, 如图4所示。

5 CAN 总线收发器TJA1050硬件连接图

图中CAN 收发器为NXP公司的TJA1050, TXD和RXD分别连接到CPU 的CAN接口, CANL和CANH 则为与另一个CPU 连接的总线, CANL 和CANH 之间电阻值约为120欧姆, 开关S可以作为CAN 总线的硬件启用开关。另外, 如果在抗干扰要求高的场合, 可以对TXD 和RXD使用光电隔离。

 

 

图4 CPU 外围收发器的硬件原理图。

6 结束语

基于at90can128的CAN 总线模块设计的电梯系统调试器, 经过长时间的检验, 使用良好, 通信正常无误。在众多的现场总线当中, CAN 总线凭借其优秀的特性已经为越来越多的工程人员认同和偏爱, 而随着越来越多的高端CPU 对CAN 控制器的集成和综合成本的下降, CAN 总线的使用必定会越来越普遍, 其中集成CAN 控制器的8位AVR 也会受到越来越多人的青睐。

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

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 隧道灯 驱动电源
关闭