- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈基于单片机的CAN总线通信系统.doc
浅谈基于单片机的CAN总线通信系统
【摘要】CAN,全称为“Controller Area Network即控制器局域网,是国际上应用最广泛的现场总线之一。在自动化领域的应用非常广泛,其特点是结构简单、成木低,但速度高、实时性和可靠性好。CANoe是德国Vector公司开发的一款功能非常强大的CAN总线开发测试软件,可以实现真实总线的实时监控,半实物仿真和全虚拟总线的仿真。它包含CAN网络数据库编辑器CANdb++,虚拟节点CANPL语高编程,用户自定义而板组件Panel Generator以及一些集成的调试监控组件,能满足各种开发测试的需要。木文将介绍如何基于这些工具模拟CAN总线的数据通信,实现特定的一些功能。
【关键词】CAN;总线;通信
一、CAN总线数据库的设计
CANdb++是CANoe内置的工具,用来描述CAN总线的一些对象,这些对象包括:
(1)CAN节点。具体包括CAN总线网络中所有节点的名称以及通信1D。
(2)信号signal。信号signal代表一种类型的变量,一般用消息中的一位或者几位来表示。一般包含的主要信息有:startBit,即开始位;length即这个变量的长度是多少位的。除此之外还有最大值最小值的设置等等。
(3)消息Message:Message。的实质就是在CAN总线上通信的数据帧,一个Message包含的主要信息有:ID,表明这个数据帧是从哪个节点发出的:DLC,也就是数据帧的长度,即多少个字节(Byte):信号signal,一个消息一般含有一个或多个信号。
(4)环境变量(environment variables)。环境变量是信号的另一个身份,用以在CANPL编程和Panel而板时进行变量绑定。
由美国公司Silicon Laboratories研发出的单片机C8051 F040在内部嵌入了CAN总线控制器CAN2.0B,使CAN总线与单片机之间的通信更加简捷方便。CAN总线采用了新技术与独特设计,为分布式控制系统实现各节点之间的实时、可靠的数据通信提供强了有力的技术支持。
因此,本文阐述了单片机C8051F040及内嵌CAN总线模块,利用对CAN总线网络进行数据传输,实现了CAN总线的数据通信。
二、增强型单片机C8051F040简介
C8051F040采用的微控制器内核是CIP 51,它完全兼容MCS 51TM的指令集,其外部设备与标准的8052的外设完全相同,包括5个16Bit的计数器/定时器、256Byte的内部RAM,128Byte的特殊功能寄存器(SFR)、2个全双工串口及8个8bit的I/0端口。CIP51微控制器内核采用了流水结构,这就使得指令的执行速度得到了极大的提升。CIP 51微控制器内核还包括256Byte的RAM,其中高128Byte为双映射。通用RAM的高128Byte采用间接寻址方式,128Byte的SFR地址空间采用直接寻址方式。CIP 51微控制器内核的SFR地址空间含有256个SFR页。通过SFR分页,CIP51微控制器内核可以实现对控制和配置片内外设的SFR的控制。该芯片内还含有片内调试接口JTAG,方便进行软件开发调试。
三、CAN2.0控制器简介
C8051F040单片机内部集成了Bosch公司的CAN控制器,可以用来实现CAN总线的数据通信,Bosch CAN由下面几部分组成:CAN内核(CAN协议控制器和用来完成消息串/并行转换的接收和发送移位寄存器)、报文RAM(含有32个报文对象)、报文处理状态机制(控制管理功能)和CAN控制寄存器(配置C_CAN模块等)。
CAN内核是模块对总线网络进行数据传输的核心,主要完成的功能是对CAN协议进行解析,并通过串/并移位寄存器实现通信节点间的数据通信:报文RAM含有32个报文对象,每个报文对象都可以存取通信节点的相关信息及数据身份码等:当通信节点的数据在网络上进行传输时,CAN控制寄存器可以对其进行信息管理的设置:报文处理状态机制主要是完成控制管理功能,实现CAN核、报文RAM和CAN控制寄存器之间的数据传输,并向CIP-51微控制器内核提供有关总线状态和消息对象的数据收发完成的中断标志
在CAN控制器寄存器中有3个寄存器可以通过CIP 51微控制器内核的特殊功能寄存器直接访问,其它的寄存器只能通过CANODATH,CANODATL和CANOADR寄存器以地址索引的方式间接访问。CANODAT(CANODATH和CANO DATL)用来存储数据,CANOADR用来存储地址。如果想要读/写某一个CAN寄存器,可以先把该寄存器的索引号写到CANOADR中,然后从CANODAT中就可以读/写该寄存器
文档评论(0)