新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Android系统下CAN总线驱动程序的设计与实现

Android系统下CAN总线驱动程序的设计与实现

作者:时间:2013-04-25来源:网络收藏

摘要 嵌入式操作,不但需要在Linux内核中添加驱动设备,还要 HAL层的调用。以S5PV 210微处理器与控制器MCP2515为例,分析了设备驱动原理,以及Android下CAN设备的开发流程和方法,了相关的重要数据结构和代码,了CAN开发。
关键词 CAN;Android;Android HAL

Android是指“机器人”,由Google公司于2007年11月5日发布的基于Linux平台的开源手机操作,是首个为移动终端打造的真正开放和完整的移动软件。Android是一个开放平台,在嵌入式移动设备领域里具有良好的应用前景,但在不同的设备上往往有不同的硬件支持,要在Android中添加这些硬件应用,不是单纯地在Linux内核中添加驱动模块,还必须在用户空间和应用框架中添加对应的支持。
控制器局域网络(Control Area Network,CAN),属于现场总线的范畴,是德国Bosch公司在20世纪80年代初,为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信总线。由于CAN总线的数据通信具有良好的可靠性、实时性和灵活性,CAN已经在汽车工业、航空工业、工业控制等领域中得到了广泛应用。文中以S5PV210微处理器为硬件平台,通过扩展其SPI接口,实现了CAN控制器MCP 2515在Android操作下的驱动程序开发。

1 系统硬件结构
系统数据的收发都要通过CAN总线模块,CAN总线模块框图如图1所示,S5PV210通过SPI接口实现与MCP2515的连接,MCP2515的CAN输入输出引脚和CAN总线收发器MCP2551接在一起,构成一个完整的CAN总线收发模块。

本文引用地址:http://www.eepw.com.cn/article/148042.htm

a.JPG


1.1 S5PV210的SPI接口
接口协议(Setial Peripheral Interface,SPI)是Motorola公司推出的一种使用时钟线和2根数据线传输数据的同步串行协议,即串行外设接口。S5PV210提供的SPI接口主要用于S5PV210与外围低速器件之间进行同步串行数据传输,可以实现全双工通信,传输速度最高可达5 Mbit·s-1。SPI总线接口主要用于主从分布式的通信网络,由4根线即可完成主从之间的数据通信,这4根线分别为:时钟线(SCLK)、数据输入线(SI)、数据输出线(SO)和片选线(CS),其中CS的有效与否完全由主控制器决定,时钟信号也由主控制器发出。
1.2 CAN控制器MCP2515
MCP2515是Microchip生产的一款独立CAN协议控制器。MCP2515支持CAN1.2、CAN2.0A、主动和被动CAN2.0B等版本的协议,能够发送和接收标准和扩展报文,它还同时具备验收过滤以及报文管理功能。图2为MCP2515的结构框图。该器件主要由3个部分组成:(1)CAN协议引擎。(2)为器件及其运行进行配置的控制逻辑和SRAM寄存器。(3)SPI协议模块。

b.JPG


1.3 CAN收发器MCP2551
MCP2551是一个可容错的高速CAN器件,可作为CAN协议控制器和物理总线接口。MCP2551可为CAN协议控制器提供差分收发能力,它完全符合ISO—11898标准,且满足24 V电压要求。它的工作速率达1 Mbit·s-1。

尘埃粒子计数器相关文章:尘埃粒子计数器原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭