谈移植Android体系下SAEJ1939协议的移植毕业365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐范文

365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐导读:rea?Network,?CAN)总线驱动仅仅实现了开放式系统互联(Open?System?Interconnection,?OSI)参考模型的物理层和数据链路层的功能,还没有实现应用层结构所对应的功能。本文的主要工作是为Android系统下的CAN总线移植应用层驱动,使CAN总线驱动在结构和功能上更加完善。  CAN总线是一种在汽车总线、自动化控制、嵌入式设备中得到
  摘要:

  针对Android系统下的控制器局域网(CAN)总线缺少应用层驱动的现状,提出了一种将Linux系统中的CAN总线应用层驱动移植到Android系统中的方法。选择SAE J1939协议作为Android系统下CAN总线应用层协议并移植由Kurt Van Dijck和Pieter Beyens维护的linuxcanj1939项目。首先分析项目结构,将对应文件合并到Android内核代码中;然后修改头文件、协议实现代码并增加内核缺失的结构体、函数等;最后修改Makefile和Kbuild文件并编译生成内核。实验结果表明:编译后的Android内核实现了SAE J1939协议所规定的地址声明、数据拆包重组、网络管理等功能。应用层驱动移植后,通过调用Android应用层接口就可开发丰富的基于CAN总线的Android应用程序。

  关键词:Android;SAE J1939;控制器局域网总线;移植;驱动

  :A

  0引言

  Android系统下的控制器局域网(Controller Area Network, CAN)总线驱动仅仅实现了开放式系统互联(Open System Interconnection, OSI)参考模型的物理层和数据链路层的功能,还没有实现应用层结构所对应的功能。本文的主要工作是为Android系统下的CAN总线移植应用层驱动,使CAN总线驱动在结构和功能上更加完善。

  CAN总线是一种在汽车总线、自动化控制、嵌入式设备中得到广泛应用的拥有国际标准的现场总线[1-2]。利用嵌入式系统采和处理CAN总线上传输的数据信息成为了研究的热点[3-4],而Android系统作为一种理想的开放嵌入式系统,在智能移动电话、汽车、家居、教育、医疗、军事等领域得到了迅速普及和发展[5]。在Android系统下开发CAN总线能够充分结合Android和CAN总线的特点,具有很高的研究和应用价值。目前,部分CAN总线控制器的底层驱动在Android系统下已经移植成功,但是还没有移植高层驱动的先例,而移植高层驱动除了完善驱动结构和功能外,还可为开发Android框架层和应用层接口做好必要的准备,最终实现应用程序与CAN总线更好的数据交互。

  1SAE J1939协议的作用

  1991年,Philips Semiconductors发布了包括CAN2.0A和CAN2.0B两部分的CAN2.0技术规范。CAN2.0A规定了CAN的标准报文格式, CAN2.0B规定了CAN的标准和扩展两种报文格式,SAE J1939协议则是基于CAN2.0B规范的。

  SAE J1939协议由美国汽车工程师协会(Society of Automotive Engineers, SAE)维护并推广,遵循OSI七层结构,由一系列的文件构成,OSI每层结构使用相应的文件进行描述,如表1所示。CAN2.0B规范定义了OSI七层结构中的物理层和数据链路层等底层驱动,而J1939协议的作用则是在CAN2.0B的基础上又对网络层和应用层等进行了规范[6]。

  CAN总线底层驱动方面,由于Android系统采用的是针对移动设备优化和增强的Linux内核,并且在Linux内核中已经实现了部分CAN控制器(如mcp2515、sja1000等)的底层驱动,所以可以方便地将Linux系统中的CAN总线底层驱动直接移植到Android系统中。目前,Linux系统中可移植的CAN总线底层驱动有字符设备型和网络设备型两种。字符设备型的CAN驱动属于早期设计开发的驱动,提供的功能相对较少,并且可移植性不够理想;网络设备型CAN驱动则针对字符设备型驱动的不足进行了改进,并且为了便于按照网络设备进行编程和使用,在设计上类似于TCP/IP协议,使用了伯克利套接字(Berkeley socket),即socketCAN [7]。但是,socketCAN仅仅实现的是OSI的物理层和数据链路层的功能,还没有实现应用层结构所对应的功能。

  2开发环境

  Android系统的硬件平台为飞凌TE6410开发板,TE6410开发板分为核心板和底板,核心板处理器采用Samsung公司ARM11处理器S3C6410,底板上集成了工业CAN总线模块,CAN控制器型号为mcp2515[8]。CAN分析仪采用双路USBCAN_II[9]。Android文件系统版本为2.3.4,内核版本为2.6.36。驱动开发环境为32位Ubuntu11.04,CAN分析仪运行于32位Windows XP。计算机与开发板通过USB转串口线进行连接,计算机端使用minicom终端打印开发板的串口调试信息。

  5结语

摘自:本科毕业365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐答辩http://2s4f.com

  本文的主要工作是为Android系统下的CAN总线移植SAE J1939协议。实验表明,相比自主开发CAN总线高层驱动,移植是方便、快速且可行的,且实现了SAE J1939协议所定义的功能。移植SAE J1939协议后,Android系统下的CAN总线在结构和功能上更加完整,下一步只需在Android系统的框架层和应用层开发相应的接口,通过调用更加丰富的功能函数就可以和CAN总线进行充分的数据交互,进而为开发多样化的基于CAN总线的应用程序打下基础。从移植的过程和结果来看,linuxcanj1939项目的可移植性比较好,其他版本的Android系统也可以以此为参考。
上一篇: 谈机械手机械手避碰路径规划计算机辅助设计与模拟毕业设计365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐致谢 下一篇: 试述核磁共振基于二维自动主动形状模型的椎间盘核磁共振图像分割算法大专毕业365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐范文
穗丰365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐网———写经典365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐经典的网站,找毕业365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐范文,365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐格式模板,365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐****就上穗丰365bet体育在线下载_365bet娱乐场注册_365bet提款多久到帐网!