文档详情

C8051F040中CAN控制器应用.pdf

发布:2017-08-24约7.04千字共10页下载文档
文本预览下载声明
C8051F040 中CAN 控制器的应用 摘要:介绍C8051F040 单片机内部CAN 控制器的应用。详细叙述此控制器的构成 及其访问方式,指出在使用时是如何配置控制器的相关控制寄存器,并且给出 CAN 控制器在应用中的物理层硬件电路和应用层软件设计。 关键词:CAN 控制器 寄存器 报文对象 C8051F040 单片机与CAN 总线连接的传统方式是将CPU 与总线控制器和总线收发器相连后再 接入总线网络,这样使CPU 外围电路复杂化,整个系统受外部影响较大。为了解 决这一问题,很多单片机厂商纷纷将CAN 控制器集成在单片机芯片上。目前,单 片机内部集成的CAN 控制器有Motorola 公司的MC68HC912DG128A、Philips 公司 的P87C591、Atmel 公司的AT89C51CC01 和AT89C51CC02、Intel公司的TN87C196CA 和TN87C196CB 以及Cygnal 公司的C8051F040 等。 不同单片机内部CAN 控制器的使用方法有所不同,但存在着很多相似之处。这里 以C8051F040 为列详细介绍其内部CAN 控制器的使用方法,希望通过这篇文章能 给初学带来方便,并能和广大的单片机爱好者就这一问题做进一步的讨论。 1 C8051F040 CAN控制器构成及访问方式 C8051F040 单片机是美国Cygnal 公司生产的完全集成的混合信号系统级芯 SoC(System on Chip),具有与8051 指令集完全兼容的CIP-51 内核。它在一块 芯片上集成了构成一个单片机数据采样或控制系统所需要的几乎所有模拟和数 字外设及其它功能部件。它具有64KB Flash、4352B RAM、CAN 控制器2.0、2 个串行接口、5 个16位定时器、12位A/D 转换器、8 位A/D 转换器及12 位D/A 转换器等,它内部还带有JTAG 接口,使调试变得非常方便。 C8051F040 内部集成的CAN 控制器为Bosch CAN 控制器。此CAN 控制器有以下几 部分构成:CAN 内核、报文RAM (与C8051 RAM 相互独立)、报文处理状态机制 和CAN 控制寄存器。其结构框图如图 1所示。 在CAN 控制器里只有三个寄存器可通过CIP-51 中的特殊功能寄存器直接访 问,其它的寄存器只能通过CAN0ADR、CAN0DATH 和CAN0DATL 寄存器以地址索引 的方式间接访问。在使用CAN 控制器时,重点和难点是对CAN 控制器的寄存器 的使用,其内部寄存器的分类及其主要功能如下: (1)CAN 控制器协议寄存器 该协议寄存器是用来配置CAN 控制器,处理各种中断,监控总线状态以及置控制 器为测试模式。CAN 控制器协议寄存器可使用C8051 MCU 特殊功能寄存器通过索 引方式间接访问,其中有些还可以很方便的通过C8051 内部特殊功能寄存器直接 寻址来访问。这部分的寄存器有:CAN 控制寄存器(CAN0CN)、CAN 状态寄存器 (CAN0STA)、CAN 测试寄存器(CANTST)、错误计数寄存器、位定时寄存器和 波特率预比列因子扩展寄存器。其中,CAN0CN、CAN0STA 和CANTST 可通过C8051 MCU 特殊功能寄存器直接访问,其它的只能通过间接访问。 (2)报文对象接口寄存器 CAN 控制器中有两组报文对象接口寄存器,它们用来配置报文RAM 中32 个报文 对象是用来向CAN 总线发送数据,还是从CAN 总线接收数据。当其中的一组被设 置为向报文RAM 中写数据,另一组则从报文RAM 中读取数据。利用此接口寄存器 可以避免CPU 访问报文RAM 与CAN 报文接收和发送缓冲转移之间的冲突。所有的 报文对象都存储在报文RAM 里面,通过报文对象寄存器对其进行访问和配置,这 些寄存器要通过C8051 的CAN0ADR 和CAN0DAT 寄存器,使用间接索引地址方式来 访问。这部分寄存器有:IFX 命令请求寄存器、IFX 命令屏蔽寄存器、IFX 屏蔽 寄存器1、IFX 屏蔽寄存器2、IFX 仲裁寄存器 1、IFX 仲裁寄存器2、IFX 报文控 制寄存器、IFX 数据寄存器A1、IFX 数据寄存器A2、IFX 数据寄存器B1 和IFX 数据寄存器B2。 (3)报文处理寄存器 所有的报文处理寄存器都是只读寄存器。通过读取它们的值可以实时地判断相应 报文对象的状态,从而使CAN 控制器能正确运行。它们的标识位由CAN0ADR、 CAN0DATH 和CAN0DATL 通过索引方式间接来访问。报文处理寄存
显示全部
相似文档