首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于飞利浦P8XC591的CAN总线节点扩展
来源:本站整理  作者:佚名  2009-09-21 11:05:12



引言

由于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是为了增加通信距离,提高系统的瞬间抗干扰能力,保护总线、降低干扰等。

[1] [2]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:268,640.60000 毫秒