μcos-ii的can驱动程序设计

μcos-ii的can驱动程序设计

ID:20526063

大小:729.35 KB

页数:9页

时间:2018-10-13

μcos-ii的can驱动程序设计_第1页
μcos-ii的can驱动程序设计_第2页
μcos-ii的can驱动程序设计_第3页
μcos-ii的can驱动程序设计_第4页
μcos-ii的can驱动程序设计_第5页
资源描述:

《μcos-ii的can驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、μC/OS-II的CAN驱动程序设计最高的质量最低的成本——节省70%PCB返修成本查看最近90天中添加的最新产品最新电子元器件资料免费下载派睿电子TI有奖问答-送3D汽车鼠标IR推出采用焊前金属的汽车级绝缘栅双极晶体管全球电子连接器生产商—samtec最新断路器保护套    摘要:实时性是衡量CAN现场总线系统性能的一个重要标准。本文提出一种采用μC/OS-II操作系统和I-CAN协议,在应用层面上提高CAN总线系统实时性的驱动程序设计方案,并以分层的方式逐层阐述CAN驱动程序的设计过程。  引言  CAN总线是

2、德国Bosch公司于1983年针对汽车应用而开发的,一种能有效支持分布式控制和实时控制的串行通信网络,属于现场总线的范畴。其通信距离与波特率有关,最大通信距离可达10km,最大通信波特率可达1Mbps。CAN总线仲裁采用1l位(CAN2.OA协议)和29位(CAN2.OB协议)标志,以及非破坏性仲裁总线结构机制,可以确定数据块的优先级,保证在网络节点冲突时最高优先级节点不需要冲突等待。CAN总线上的任何节点均可在任意时刻,主动向网络上其他节点发送信息而不分主次,从而实现各节点之间的自由通信。目前,CAN总线协议已被

3、国际标准化组织认证,技术比较成熟,已广泛应用于汽车、工业、高速网络和低价位多路连线等领域中。  μC/OS-II是JeanJ.Labrosse开发的一种小型嵌入式操作系统。它实质上是基于优先级的可剥夺型内核,系统中的所有任务都有一个唯一的优先级别,适合应用于实时性要求较强的场合。本文采用μC/OS-II来设计CAN的驱动程序,以满足系统的实时要求。  1CAN节点的硬件设计  CAN节点是分布在CAN网络中进行相互通信的基本单元,主要由主控制器、CAN控制器和CAN收发器组成。本设计中,节点的基本结构如图1所示。在

4、CAN网络中,ECU(ElectrONicControlUnit)是指一个具有完整功能的CAN节点。  采用NXP公司的LPC2368作为CAN节点的主控制器。LPC2368是一款基于ARM7TDMI-S内核的RISC处理器,包含2个兼容CAN2.0B规范的CAN控制器。每个CAN控制器拥有双重接收缓冲器和三态发送缓冲器,具有快速的硬件实现的搜索算法,可以支持大量的CAN标识符。  LPC2368是一款3.3V器件,虽然其对应的CAN收发器接口引脚能够承受5V电压,但为了让CAN节点能够更稳定地运行,这里采用TI公

5、司的3.3VCAN收发器SN65HVD230D与之配合使用。凭借高输入阻抗特性,SN65HVD230D可以在一条总线上支持多达120个CAN节点,并且能够和5V的CAN收发器良好地兼容。本文重点介绍CAN驱动程序的设计方法。  2CAN驱动程序设计总体思想  为了使软件可移植性强、易于维护,采用分层的方法编写CAN驱动程序。驱动程序分层结构如图2所示。图中,双向箭头表示实时操作系统μC/OS-II与CAN驱动程序之间的数据交换,单向箭头表示上层软件对下层软件的调用。  3CAN设备控制层和CAN接口控制层  CAN

6、设备控制层的主要任务是:初始化主控制器与CAN控制器之间的连接配置,复位CAN控制器,建立主控制器和CAN控制器之间的通信函数。由于LPC2368内部集成了CAN控制器,CPU可以通过内部APB总线接口对CAN控制器的所有寄存器进行访问,所以不再需要编写设备控制驱动层程序,已经完全由硬件实现了。  CAN接口控制层主要任务是:实现CAN控制器的各种功能,如设置控制模式、发送数据、释放接收缓冲区、配置验收滤波器等。这些操作都是通过读写CAN控制器的内部相关寄存器来实现的。  CAN控制器初始化程序(在应用层中实现,内

7、部调用的函数也都是在该层中编写的)如下:  为了使程序更加简洁、可读性更强,可以通过宏定义的形式进行编写。例如:  #defineCAN_MOD_RM()CANlMOD

8、=1  CANlMOD是CAN控制器的模式寄存器,最低位置1可使CAN控制器进入复位模式。这种模式下,可以对控制器的所有寄存器进行写操作。其他对CAN控制器内部寄存器的操作可以参照LPC2368的技术手册。  4CAN协议层  从OSI网络模型的角度来看,现场总线网络一般实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层);而CAN现场总

9、线仅仅定义了第1层、第2层,这两层分别由CAN收发器和CAN控制器实现。CAN总线没有规定应用层,本身并不完整,因此需要一个高层协议来定义CAN报文中11/29位标识符、8字节的使用。目前,已经有一些国际上标准的CAN总线高层协议,例如DeviceNet协议和CANopen协议;但是这个协议规范比较复杂,理解和开发难度都比较大,对于一些并不复杂的基于CAN总

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。