
图1 p8xc591的方框图
p8xc591是一个高性能的微控制器,其专注的硬件结构及增强型的philips“rx+内核”使得其可以广泛用于工业控制和汽车领域。片上自带的can控制器为can的应用提供许多专用的硬件功能。p8xc591完全履行can2.0b规范并提供一个直接从sja1000独立can控制器的软件移植路径。p8xc591具有can的扩充特性,其中包括增强型接收滤波器、支持系统维护、诊断、系统优化以及接收fifo特性等,使得p8xc591具有非常广泛的应用领域。
p8xc591包含的嵌入式can控制器具有下列功能模块:can内核模块,根据can2.0b规范控制can帧的发送和接收;can接口模块,包含了5个实现cpu与can控制器连接的特殊功能寄存器,对重要can寄存器的访问通过快速自动增加的寻址特性和对特殊功能寄存器的位寻址来实现;can控制器的发送缓冲区模块,能够保存一个完整的can信息扩展或标准帧格式,只要通过cpu启动发送信息,字节就从发送缓冲区传输到can内核模块,当接收一个信息时,can内核模块将串行位流转换成并行数据输入到接收滤波器,通过该可编程滤波器,p8xc591确定实际接收到的信息,所有由接收滤波器接收的数据都保存在接收fifo(64字节)中,取决于操作模式和数据长度的不同该接收缓冲区最多可保存21个can信息。这使用户在指定系统的中断服务和中断优先级时有更多的灵活性,因为数据溢出的可能性大大降低。
除了普通的can特性以外,p8xc-591还提供增强型pelican。pelican具有4个独立可配置的接收滤波器组,每个组都有4个可选的接收滤波器配置;每个接收滤波器都有32位区分符、32位代码和32位屏蔽;所有滤波器配置都可在运行中改变;支持更高层协议的接收滤波器;接收fifo特性;只听模式及自检测模式;只有达到fifo接收中断级才能产生接收中断;在接收到高优先级数据帧时立即产生接收中断;支持系统维护、诊断和优化等特性[2]。
3 两种通信方式比较
当独立的can控制器进行数据的接收和发送时,在设计微处理器与sja1000的接口电路时,首先要选择微处理器和sja1000的接口模式,其次要注意sja1000的片选地址应与其他的外部存储器无冲突,还应注意sja1000的复位电路应为低电平有效等一些问题,其硬件电路的设计相对来说是非常复杂的。如果有一点问题没有注意到,就有可能造成数据无法发送和接收。
sja1000内部寄存器分布于0~31连续的地址空间中,包括控制段和信息缓冲区。控制段在初始化载入时可被编程来配置通讯参数(例如:波特率、位时序等)。微控制器也是通过这个段来控制can总线上的通讯状态。信息缓冲区分为发送缓冲区和接收缓冲区。微处理器将要发送的信息写入发送缓冲区,然后启动发送命令后,可进行报文的发送。符合接收条件的接收到的信息放入接收缓冲区,微处理器可以读出这些信息,并进行处理。
硬件电路的设计如果采用了philips公司的自带can控制器的单片机p8xc591,就不会存在以上的问题。由于p8xc591含有片上的can控制器,透过txdc、rxdc两个管脚,p8xc591就可以直接和外部的can节点交换数据。p8xc591自带的can控制器在软件上是向上兼容sja1000的。p8xc591所连接的can节点电路所需要的外部元件仅仅是一个晶振加两个电容驱动片内振荡器、一个连接到复位脚的电阻、电容。使用片内上电复位电路以及一个收发器pca82c250用于将p8xc591连接到can总线。所以我们能够很方便的使用,而且不必考虑很多外部电路的连接,使我们能够避免很多容易出现的错误。
p8xc591通过对can的特殊功能寄存器如地址寄存器(canadr)、数据寄存器(candat)、模式寄存器(canmod)、控制寄存器(cancon)、状态寄存器(cansta)、总线定时寄存器(btr0,btr1)等的设置以及对收发缓冲区的读写,从而完成和其它can节点的数据交换。
4 结束语
通过本文的介绍,我们对独立can控制器sja1000和philips公司的p8xc591单片机有了进一步的了解,通过后者,我们可以把硬件电路连接两个处理器所完成的任务,简化为只用一个微控制器就可以完成。这样大大简化了电路的硬件连接,而且也提高了系统的可靠性。
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。