当前位置:首页 > 工业控制 > 工业控制
[导读]独立的CAN控制器芯片需要外接一个微处理器,接受外部CPU的控制才能运行。如果微处理器内部带有CAN控制器,无疑会大大简化应用系统的硬件设计,系统的可靠性也有很大提高 ,同时还可以大幅度降低生成成本。Philips的新产品P87C591内部集成了CAN控制器。本文主要介绍如何利用P87C591进行CAN节点的设计和应用。

   摘要:独立的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应用的外围电路接法,还给出了应用的初始化程序,这为以后的系开发提供了一个很好的基础。

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

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 信息技术
关闭
关闭