当前位置:首页 > 工业控制 > 工业控制
[导读]由于CAN总线具有通讯速率高、可靠性高、连接方便和性能价格比高等诸多特点,CAN的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统、工业自动化、建筑物环境控制、机床或电梯控制、医疗设备等领域得到了较为广泛的应用。

引言

由于CAN总线具有通讯速率高、可靠性高、连接方便和性能价格比高等诸多特点,CAN的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统、工业自动化、建筑物环境控制、机床或电梯控制、医疗设备等领域得到了较为广泛的应用。

CAN 的信号传输采用短帧结构,每一帧的有效字节数为 8个,因而传输时间短、受干扰的概率低。当节点严重错误时,具有自动关闭的功能以切断该节点与总线的联系,使总线上的其它节点极其通信不受影响,具有较强的抗干扰能力和检错能力。CAN控制器支持四种不同的CAN协议类型:数据帧、远程帧、出错帧和超载帧。

CAN支持多主方式工作,网络上任何节点均可在任意时刻主动向其它节点发送信息,支持点对点、一点对多点和全局广播方式接收/发送数据。它采用总线仲裁技术,当出现几个节点同时在网络上传输信息时,优先级高的节点可继续传输数据,而优先级低的节点则主动停止发送,从而避免了总线冲突。

    CAN总线信号传输介质使用特性阻抗为120欧姆的双绞线,信号传输方式和RS485一样,也采用差动发送和差动接收的方式。理论上使用CAN2.0A总线的节点可达到2032个,CAN2.0B则可以达到5亿多个。使用PCA82C250作为CAN总线的收发器时,CAN直接通信距离最远可达到10km(传输率为5kbps),通讯速率最高可达1Mbps(传输距离为40m);由于收发器的限制, CAN总线上节点数实际上最多可达110个。对于节点超过110个的CAN网络,可以使用CAN网关对CAN总线进行扩展,以达到用户的要求。

网关可以采用特定的控制逻辑去控制一对背-背相接的收发器PCA82C250,连接两个物理上完全独立的CAN网,双向传输数据,从物理层上来看,它实现了CAN总线信号的中继,也可以采用P8XC591+SJA1000的结构去实现。下面将着重介绍后者的硬件及软件实现。

P8XC591片上自带CAN的微控制器

P8XC591是一个高性能的微控制器,它的硬件接构及增强型的飞利浦“RX+内核”使得其可以广泛用于工业控制和汽车领域。片上自带的CAN控制器为CAN的应用提供了许多专用的硬件功能。P8XC591完全履行CAN2.0B规范,并提供一个直接从SJA1000独立CAN控制器的软件移植路径。P8XC591具有CAN的扩展特性,其中包括增强型接收滤波器、支持系统维护、诊断、系统优化以及接收FIFO特性等。   

P8XC591除了标准的外围功能以外,还有一个强大的CAN控制器模块。该嵌入式CAN控制器还包括了下列功能模块:CAN内核模块,根据CAN2.0B规范控制CAN帧的发送和接收;CAN接口模块,包含5个实现CPU与CAN控制器连接的特殊功能寄存器,对重要CAN寄存器的访问通过快速自动增加的寻址特性和对特殊功能寄存器的位寻址来实现;CAN控制器的发送缓冲区模块,能够保存一个完整的CAN信息扩展或标准帧格式。只要通过CPU启动发送信息,字节就从发送缓冲区传输到CAN内核模块。当接收一个信息时,CAN内核模块将串行位流转换成并行数据输入到接收滤波器,通过该可编程滤波器,P8XC591确定实际收到的信息,所有由接收滤波器接收的数据都保存在接收FIFO(64字节)中,由于操作模式和数据长度的不同,该接收缓冲区最多可保存21个CAN信息。这使用户在指定系统的中断服务和中断优先级时有更多的灵活性,因为数据溢出的可能性大大降低。

除了普通的CAN特性以外,P8XC591还提供增强型PeliCAN。PeliCAN具有4个独立可配置的接收滤波器组,每个组都有4个可选的接收滤波器配置;每个接收滤波器都有32位区分符、32位代码和32位屏蔽;所有滤波器配置都可在运行中改变;支持更高层的协议的接收滤波器;接收FIFO特性;只听模式及自检测模式;只有达到FIFO接收中断级才产生接收中断;在接收到高优先级数据帧时立即产生接收中断;系统维护诊断和优化特性。

    硬件电路设计

硬件电路的设计采用了飞利浦片上自带CAN控制器的单片机P8XC591和独立的CAN控制器SJA1000。两者都支持CAN 2.0B协议。P87C591片上自带的CAN控制器在软件上是向上兼容SJA1000的。

    P8XC591所连接的CAN节点电路所需要的外部元件仅仅是一个晶振加两个电容驱动片内振荡器、一个连接到复位脚的电阻、电容。使用片内上电复位电路以及一个收发器用于将P8XC591连接到CAN总线

    P8XC591通过对CAN的特殊功能寄存器,如地址寄存器(CANADR)、数据寄存器(CANDAT)、模式寄存器(CANMOD)、控制寄存器(CANCON)、状态寄存器(CANSTA)、总线定时寄存器(BTR0,BTR1)等的设置,以及对收发缓冲区的读写(接收缓冲区为64字节的FIFO缓冲区,最多储存21帧CAN信息),从而完成和其它CAN节点的数据交换。

 CAN的控制器分别采用了PXC591和SJA1000,可完成物理层和数据链路层的所有功能。CAN收发器使用飞利浦公司的PCA82C250,它是连接CAN控制器和物理总线之间的接口,提供了对总线的差动发动和接收能力。它与ISO11898标准完全兼容,有三种不同的工作方式即高速、斜率控制和待机,可根据实际情况选择。为了进一步提高系统的抗干扰能力,在控制器SJA1000和收发器PCA82C250之间,P87C591和收发器PCA82C250之间均增加了由高速隔离器件6N137 构成的隔离电路。硬件电路中使用PCA82C250是为了增加通信距离,提高系统的瞬间抗干扰能力,保护总线、降低干扰等。

微处理器P87C591和SJA1000均使用12MHz的石英晶体,以获得相同的时钟信号。由于 P87C591含有片上的CAN控制器,通过TXDC,RXDC两个管脚,P87C591就可和外部的CAN节点交换数据。另一方面,P87C591直接控制SJA1000的AD0~AD7, RD, WR, ALE, RST和INT管脚,SJA1000的MODE管脚接高电平,工作在Intel模式下;片选CS管脚接地,使SJA1000始终处于选通状态。P87C591对SJA1000的操作主要是对寄存器中的模式寄存器(MOD)、命令寄存器(CMR)、状态寄存器(SR)、中断寄存器(IR)、中断允许寄存器(IEP)、总线定时寄存器(BTR0, BTR1)、输出控制寄存器(OCR)、时钟分频计数器(CDR)进行设置和检测,以及对收发缓冲区进行读写,从而完成和其它CAN节点的数据交换。

为了能使CAN网络1(最多110个节点)的信息和CAN网络2(最多110个节点)的信息共享,P87C591在软件上必须使得任何格式的数据能实时的从CAN网络1传送到CAN网络2,以及信息从CAN网络2传送到CAN网络1。这样,两个不同的子网就实现了互联,CAN网络的节点得到了扩展。

    软件设计

*在初始化SJA1000时,必须设置接收代码寄存器ACRn,接收代码屏蔽寄存器AMRn的值为FF,以能收发所有的数据。由于P87C591片上自带的CAN控制器在软件上是向上兼容SJA1000的,所以对SJA1000的初始化,读、写的流程与P87C591基本类似。

初始化部分的原程序如下:

#include<reg591.h>

viod ini_can_controller (void)

{

CANMOD=0x01; /*进入复位模式,启动CAN初始化*/

P1M2=P1M2 I 0x02; /*管脚TXDC设置为推挽模式*/

CANSTA=0x03; /*使能接收和发送中断*/

CANADR=BTR0; /*BTR0和BTR1编程为125kbit/s@12MHz*/

CANDAT=0x45;

CANADR=BTR1; /*TSEG1=12, TSEG2=3, SJW=2*/

CANDAT=0x2B; /*用户可根据具体的CAN网络来调整BTR0, BRT1的参数*/

CANADR=AMR10; /*设定接收屏蔽寄存器的地址*/

CANDAT=0xFF; /*Bank1: 与接收屏蔽寄存器1无关,允许任何数据通过滤波器*/

CANDAT=0xFF; /*Bank1: 与接收屏蔽寄存器2无关,允许任何数据通过滤波器*/

CANDAT=0xFF; /*Bank1: 与接收屏蔽寄存器3无关,允许任何数据通过滤波器*/

CANDAT=0xFF; /*Bank1: 与接收屏蔽寄存器4无关,允许任何数据通过滤波器*/

CANADR=ACFMODE; /*设定接收滤波器模式寄存器的地址*/

CANDAT=0x01; /*设定BANK1为单滤波模式,标准帧*/

CANADR=ACFENA; /*设定接收滤波器使能寄存器的地址*/

CANDAT=0x01; /*使能BANK1的滤波器1*/

CANMOD=0x00; /*请求进入CAN的激活模式*/

while (CANSTA & 0x80); /*等待总线激活*/

}

类似以上的设置可以使得所有的CAN信息都通过CAN的连接滤波器而到达接收缓冲区,从而为不同CAN网络信息的交换奠定了基础。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭