中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 传感控制 >>电子行业新闻正文

P87C591内嵌CAN控制器的应用设计

时间:2005/5/6 10:33:00  作者:  来源:ic72  浏览人数:1740
 
 
   摘要:独立的CAN控制器芯片需要外接一个微处理器,接受外部CPU的控制才能运行。如果微处理器内部带有CAN控制器,无疑会大大简化应用系统的硬件设计,系统的可靠性也有很大提高 ,同时还可以大幅度降低生成成本。Philips的新产品P87C591内部集成了CAN控制器。本文主要介绍如何利用P87C591进行CAN节点的设计和应用。
   关键词:P87C591 CAN 节点 PeliCAN 应用设计
引言
CAN属于总线式串行通信网络。由于其独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。CAN总线早已成为国际标准,其应用范围也从最初的汽车电控逐步扩展到工业控制的各个领域,成为最有前途的现场总线之一。CAN总线上的节点一般采用单片机外加CAN控制器的设计方法,不利于产品的集成和成本的降低。现在Philips公司推出的P87C591集成了CAN控制器SJA1000。本文将详细介绍基于P87C591的CAN智能节点软硬件设计及其应用。
1 P87C591简介
P87C591有44个引脚,是一个单片8位高性能微控制器,具有片内CAN控制器。它从MCS-51微控制器家族派生而来,采用了强大的80C51指令集并包括了Philips半导体SJA1000 CAN控制器的PeliCAN功能。全静态内核提供了扩展的节点方式。振荡器可停止和恢复而不丢失数据。改进的1:1内部时钟分频器,在12MHz外部时钟速率是实现500ns指令周期。中央处理器CPU使用的操作数来自3个存储空间:16KB内部程序存储器,可扩展到64KB;512B内部数据存储器;最大64KB外部数据存储器。图1为P87C591的功能框图。
有关芯片的引脚定义和更多的扩展功能可参阅P87C591芯片资料,在此不多讲。芯片引脚P3.0和P3.1作为复用脚使用,除了具有普通C1单片机功能外,还可分别复用为CAN的RxD和TxD输入输出脚。
P87C591包括Philips半导体公司的独立CAN控制器SJA1000具有的所有功能,并在此基础上扩展了以下功能:①增强的CAN接收中断,有接收缓冲区级的接收中断;用于接收中断的高优先级验收滤波器。②扩展的验收滤波器,8个滤波器用于标准帧格式,4个滤波器用于扩展帧格式;验收滤波器的“运行中改变”特性。

图1

2 PeliCAN控制器的CPU之间的通信
CPU与CAN之间的接口功能框图如图2所示。80C51CPU接口将PeliCAN与P87C591微控制器内部总线相连,通过5个特殊功能寄存器CANADR、CANDAT、CANMOD、CANSTA和CANCON对PeliCAN寄存器和RAM区进行快捷的访问。由于支持大范围的地址,基于寻址的间接指针允许使用自动增加模式对寄存器进行快速访问,这样就将所需的SFR的数目减少到5个。需要注意的是,CANCON和CANSTA根据访问方向的不同而具有不同的寄存器结构。PeliCAN寄存器可以通过两种不同的访问访问。那些控制CAN主要功能最重要的几个寄存器,支持软件轮询,可以像单独的SFRs一样直接访问;而PeliCAN模块中的其它部分通过一个间接的指针机制进行访问。为了达到高数据吞吐量,在使用间接寻址时也包含了地址增加的特性。
3 特殊功能寄存器
下面简要介绍5个特殊功能寄存器。
①CANDAR。该读/写寄存器定义通过CANDAT访问的PeliCAN内部寄存器的地址,可以将其解释为对PeliCAN的一个指针。对PeliCAN块寄存器的读/写访问通过CANDAT寄存器执行。通过地址自动增加模式,为CAN控制寄存器提供了快速的类似栈的读/写。如果CANADR内当前定义的地址大于或等于32(十进制),CANADR的内容在任意对CANDAT读/写操作后自动增加。例如,将一个信息装入发送缓冲区可通过将发送缓冲区的首地址(112)写入CANADR,然后将信息字节一个接一个写入CANDAT。CANADR超过FFH后复位为00H。如果CANADR小于32,不会执行自动地址增加。即使CANDAT执行读或写,CANADR的值仍保持不变。这允许在PeliCAN控制器的低地址空间进行寄存器轮询。
②CANDAT CANDAT作为一个读/写寄存器。特殊功能寄存器CANDAT看上去是对CANADR所选的CAN控制器内部寄存器的一个端口。对CANDAT寄存器的读写等效于对该内部寄存器的访问。需要注意的是,如果CANADR中当前的地址大于等于32,那么任何对CANDAT的访问将使LANADR自动增加。

    ③CANMOD对PeliCAN模块寄存器CANMOD是直接进行读写访问的,模式寄存器位于PeliCAN模块中的地址00H。
④CANSTA根据访问方向的不同,CANSTA提供对PeliCAN的状态寄存器和中断使能寄存器的直接访问。对CANSTA的读操作是对PeliCAN的状态寄存器(地址2)进行访问。对CANSTA的写操作是对中断使能寄存器(地址4)进行访问。
⑤CANCON。根据访问方向的不同,CANCON提供对PeliCAN的状态寄存器中断使能寄存器的直接访问。对CANSTA的CANSTA的读操作是对PeliCAN的状态寄存器(地址2)进行访问。对CANSTA的写操作是对中断使能寄存器(地址4)进行访问。
4 基于P87C591的CAN节点接口应用电路
基于87C591的CAN节点接口应用电路十分简单,只需要附加一些CAN收发电路就可以进行CAN总线数据传输。CAN收发芯片采用philips公司的TJA1050收发器。为了增强CAN总线节点的抗干扰能力 ,SJA1000的TX0和RX0并不是直接与TJA1050的TXD和RXF相连,而是通过高速光电耦合器6N167与TJA1050相连。这样,就可以很好地实现总线上的总CAN节点间的电器隔离。不过,应该特别说明的一点是,光电耦合器采用的是两个独立的电源供电,电源Vcc和CAN_V必须完全隔离,否则光耦也就失去了意义。电源的完全隔离可采用小功率的电源隔离模块或通过带多路5V隔离输出的开关电源模块实现。这样虽然电路复杂些,但却提高了节眯的稳定性和安全性,具体节点电路如图3所示。

图3

5 CPU对PeliCAN的软件访问
除了CANMOD、CANSTA、CANCON等PeliCAN常用特殊寄存器可以进行直接读/写访问除外,所有其它的CAN寄存器都需要进行间接寻址。CANADR寄存器指向PeliCAN寄存器的地址,在写操作时将要送到被寻址寄存器的数据写入CANDAT;读操作时被寻址寄存器的数据可以从CANDAT中读出。下面的例子说明了对PeliCAN寄存器的直接和间接寻址功能。
/*模式寄存器的直接寻址*/
CANMOD=0x01;/*位RM置1进入复位模式*/
/*对位定时寄存器0和1的间接寻址*/
CANADR=BTR0;/*将地址设置到BTR0寄存器*/
CANDAT=0x45;/*将数据写入BTR0寄存器*/
CANADR=BTR1;/*将地址设置到BTR1寄存器*/
CANDAT=0x2B;/*将数据写入BTR1*/
下面给出上述节点电路的CAN初始化部分的程序。该程序可以直接应用到其它的系统程序之中。初始化部分的源程序如下:
#include<reg591.h>
void ini_can_controller(void)
{
CANMOD=0x01;/*进入复位模式,启动CAN初始化*/
P1M2=P1M2 I 0x02;/*引脚TXDC设置为推挽模式*/
CANSTA=0x03;/*使能接收和发送中断*/
CANADR=BTR0;/*BTR0和BTR1编程为125kb/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:与接收屏蔽寄存器无关,允许任何数据通过滤波器*/
CANDAT=0xFF;/*Bank1:与接收屏蔽寄存器3无关,允许任何数据通过滤波器*/
CANDAT=0xFF;/*Bank1:与接收屏蔽寄存4无关,允许任何数据通过滤波器*/
CANADR=ACFMODE;/*设定接收滤波器模式寄存器的地址*/
CANDAT=0x01;/*设定BANK1为单滤波模式,标准帧*/
CANADR=ACFENA;/*设定接收滤波器使能寄存器的地址*/
CANDAT=0x01;/*使能BANK1的滤波器*/
CANMOD=0x00;/*请求进入CAN的激活模式*/
while(CANSTA & 0x80);/*等待总线激活*/
}
结语
在CAN网络节点的设计中,使用集成的CAN控制器是大势所趋。本文从硬件和软件的角度对内嵌CAN控制器(SJA1000)的P87C591进行了详细的介绍。不仅给出了P87C591 CAN应用的外围电路接法,还给出了应用的初始化程序,这为以后的系开发提供了一个很好的基础。
 
【相关文章】
·一种高精度波形发生器的设计
·机器视觉软件Sherlock的应用——标定
·双目立体视觉技术的实现及其进展
·ISFET 传感器偏置电路
·用处理器的一个引脚控制开/关功能
·具有故障保护功能的数据采集系统
·多功能车辆总线控制器芯片(MVBC)的帧收发器设计
·P87C591内嵌CAN控制器的应用设计
·PLC可编程逻辑器件的选择方法
·单片机嵌入式系统在远程电网监测系统中的应用
·COM组件技术在现场总线控制系统组态软件中的应用
·CAN总线中循环冗余校验码的原理及其电路实现
·基于双处理器的点焊控制系统的硬件设计
·电机驱动芯片LMD18200原理及应用
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9