- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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 通过索引方式间接来访问。报文处理寄存
您可能关注的文档
最近下载
- 执业药师继续教育《解表剂》习题答案.docx VIP
- 《中药鉴定技术》教材目录资料.pdf VIP
- 3.1《土地资源》(课件)2025-2026学年度人教版地理八年级上册.pptx VIP
- 2025年文旅景区旅游人才引进改造项目可行性研究报告.docx
- 公路桥梁工程(样表)竣工资料.docx VIP
- 课题申报书:地方应用型高校服务西部地区新质生产力发展的实证研究.docx VIP
- 韩非子原文全文集.docx VIP
- 2023年一级建造师《(民航机场工程)管理与实务》考试真题及答案.docx VIP
- 最新重庆出版社综合实践四年级上全册教案.pdf VIP
- 亚足联足球教练员培训B级中文课件.pdf VIP
文档评论(0)