计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

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

2016-11-22 01:21
导读:理工论文论文,P87C591内嵌CAN控制器的应用设计样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错: 摘要:独立的CAN控制器芯片需要外接一个微处理器,接受外部
摘要:独立的CAN控制器芯片需要外接一个微处理器,接受外部CPU的控制才能运行。如果微处理器内部带有CAN控制器,无疑会大大简化应用系统的硬件设计,系统的可靠性也有很大提高 ,同时还可以大幅度降低生成成本。Philips的新产品P87C591内部集成了CAN控制器。本文主要介绍如何利用P87C591进行CAN节点的设计和应用。

引言

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个滤波器用于扩展帧格式;验收滤波器的“运行中改变”特性。 (转载自http://zw.NSEAC.com科教作文网)

图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自动增加。

上一篇:一种QCM信号在线采集系统的实现 下一篇:没有了