《嵌入式系统设计》课程论文--基于ARM的CAN总线智能节点的设计.doc

《嵌入式系统设计》课程论文--基于ARM的CAN总线智能节点的设计.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《嵌入式系统设计》课程论文 题目: 基于ARM的CAN总线智能节点的设计 专 业 化 班 级 姓 名 指导老师 起止日期:2012年10月8日~2012年12月22 目录 一、摘要 3 二、关键字 3 三、CAN总线 3 3.1简介 3 3.2特点 3 3.3应用 4 四、智能节点的设计 4 4.1CAN智能节点系统构成 4 4.2智能节点的特点 4 4.3CAN总线智能节点设计 5 4.3.1硬件设计 5 4.3.2软件设计 5 CAN控制器初始化 数据发送 6 数据接收 6 异常情况处理 6 五、总结 7 六、参考文献 7 基于CAN总线智能节点的设计 摘要: 控制器局域网CAN(Controller Area Network)是一种多主方式的串行通信总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。CAN在汽车上的应用,具有很多行业标准或者是国际标准,比如国际标准化组织(ISO)的ISO11992、ISO11783以及汽车工程协会(Society of Automotive Engineers)的SAE J1939。CAN总线已经作为汽车的一种标准设备列入汽车的整车设计中。CAN总线简介CAN通信协议规定了4种不同的帧格式,即数据帧、远程帧、错误帧和超载帧。基于以下几条基本规则进行通信协调:总线访问、仲裁、编码/解码、出错标注和超裁标注。CAN遵从OSI模型。按照OSI基准模型只有三层:物理层、数据链路层和哀告层,但应用层尚需用户自己定义。 STM32F107芯片是意法半导体公司推出的一款STM32互连型系列、内核为ARM Cortex-M3的32位高性能微控制器。通用CAN收发器CTM8251T是用于CAN控制器和CAN总线之间的接口芯片,波特率是自适应的,其内部集成了所有通信必需的CAN隔离及CAN收发器件。此外,该芯片还具有自动热关断保护、未上电节点或者处于欠压状态的节点不会影响CAN总线、高压瞬态保护等特点。 2 软件设计 软件调试环境采用ARM公司的ARM核处理器集成开发工具ADSv1.2。ADSv1.2集成了汇编、C、C++编译器和调试器,编译效率高,提供了功能强大的系统库,支持软件调式、JTAG仿真调试及硬件调试。本设计采用的是JTAG仿真调试。对于一般的32位ARM应用系统,在运行主程序前必须初始化运行环境,即为ARM芯片编写启动代码。该启动代码包括异常向量表、堆栈初始化、存储系统初始化和目标板初始化等,一般用汇编语言编写。对于该设计来说,关键的是编写CAN驱动程序。主程序只需通过调用驱动程序提供的接口来实现数据的接收和发送,驱动程序包括四部分内容:CAN控制器的初始化、接收数据、发送数据和总线异常处理。 CAN控制器初始化 初始化CAN控制器的操作包括:硬件使能、软件复位、设备报警界限、设备总线波特率、设备中断工作方式、设备验收滤波器工作方式、设备工作模式并启动CAN等。 数据发送 将待发送的数据打包成符合CAN协议的帧格式后,便可写入发送缓站区,并自动发送。在写发送缓冲区前必须查询其状态。LPC2294中的每个CAN控制器有三个发送缓冲区,它们的状态可通过查询CANSR得知。只有当其中有空间的发送缓冲区即才将数据写入。在发送大量数据时,这一步显得尤其重要,否则发送可靠性将不能保证。启动发送成功后,只能通过查询CANGSR的TCS位或配置发送成功中断来判断数据是否发送成功。 3) 数据接收 接收数据可采用查询方式或中断方式。在某一段时间内,CAN总线并不是总是在活动,为了提高效率,可采用中断方式。在初始化程序中必须使能接收中断。在中断服务子程序中,读取CANICR,判断是否有接收中断标志,有则读取接收缓冲区数据。为了防止接收缓冲区数据溢出,可开辟一个循环接收数据队列来暂时存储数据,主程序则通过查询该队列来获得总线数据。 4) 异常情况处理 在线总线发生严重故障的情况下,CAN节点有可能脱离总线,此时以下寄存器位被置位:CANSR的BS位、CANIR的BEI位和EI位(如果使能)和CANMOD的RM位。RM将许多CAN控制器功能复位和禁止。软件下一步必须置零RM位。发送错误计数器将递减计数总线释

文档评论(0)

ze122230743 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档