




免费预览已结束,剩余81页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号 : 密级 : UDC : 学号 : 东 南 大 学工 程 硕 士 学 位 论 文基于Android平台的iButton驱动的设计与实现研究生姓名: 导师姓名: 申请学位级别 工程领域名称 论文提交日期 20 年 月 日 论文答辩日期 20 年 月 日学位授予单位 东 南 大 学 学位授予日期 20 年 月 日答辩委员会主席 评 阅 人 20 年 月 日 摘要 关键词: ABSTRACT Key Words: 目录摘要4ABSTRACT5目录6第1章 绪论81.1 背景介绍81.1.1 iButton背景与现状81.1.2 Android背景与现状91.2 内容与章节安排11第2章 技术简介122.1 iButton技术简介122.1.1 1-Wire 总线原理132.1.2 iButton相关设备 iButton读写器和适配器 iButton从设备172.2 Android技术简介192.2.1 Android系统简介192.2.2 Android系统架构202.2.3 Android硬件平台三星S3C6410222.2.4 Android开发板友坚恒天UT-S3C641023第3章 总体设计253.1 硬件分析与设计253.1.1 硬件分析263.1.2 硬件设计2 基于Android主机引脚的直接连接方式2 通过1-Wire适配器的间接连接方式283.2 软件分析与设计303.2.2 软件分析3 Android的Linux内核3 Android原生框架层和Android Runtime3 Android应用框架层3 Android应用程序层343.2.3 软件设计3 iButton驱动在Android内核层的设计思路3 iButton驱动在Android原生框架层的设计思路3 iButton驱动在Android应用框架层的设计思路38第4章 技术实现424.1 硬件方面的技术实现424.2 软件方面的技术实现444.2.1 Android内核上的技术实现4 Linux内核配置的修改4 Linux内核源码的修改474.2.2 Android原生框架层上的技术实现5 1-Wire HAL 模块的设计与实现5 1-Wire HAL 模块的编译和部署614.2.3 Android应用框架层上的技术实现6 1-Wire 应用框架层服务的设计6 OneWire服务的AIDL定义6 OneWire服务的JNI实现6 OneWire服务的Server端实现7 OneWire服务的Client端实现7 修改Android上下文代码让系统内置OneWire服务754.2.4 iButton在Android上的应用程序开发与驱动验证7 基于DS1990A的身份验证程序7 基于DS1904L的电子时钟程序7 基于DS1921G的温度计程序7 基于DS1972的密码保护程序79第5章 结论与展望80致谢81第1章 绪论1.1 背景介绍在Android系统上集成iButton,形成一个基于Android和iButton的综合应用系统,目前市面上还没有成熟的产品与解决方案。而分拆开来,它们已经各自拥有相当多成熟的产品和应用,并且在各自的领域都得到了广泛的应用。经过分析和研究,本文提出了一种将iButton集成到Android系统上的方式,为今后针对二者可能出现的相关系统与应用,提供了一种可行的选择。1.1.1 iButton背景与现状 iButton作为一种接触式单总线智能信息纽扣(如图1-1所示),与RFID智能卡一样,在国内已经被广泛使用。它由美国Dallas公司设计和推出(美国Dallas公司于2001年被Maxim公司收购,其Dallas品牌被保留),在国内又被称为TM(Touch Memory)卡,目前主要应用于智能小区、酒店、邮政、运输、铁路、消防、电力、有线电视、化工、油田等各种巡检系统,衍生产品包括TM门锁、TM水表、TM电表和TM煤气表等。在国外,它也被用来做为访问控制器、电子钱包、环境温度湿度检测仪等。图1-1: iButton相关图示iButton采用了微芯片设计,体积很小,并且它被封装在一个直径约16mm的高强度不锈钢外壳内,耐热耐湿耐磨耐摔,不易损坏。它比普通的RFID卡片更小巧、更坚固、更耐久。另外它具有全球唯一的只读ID(最大为2的64次方),可以读写并存储数据,对数据进行加解密,也可以读取环境温度和湿度,还可以做时钟。小小的一枚电子纽扣,作用甚至超过了普通RFID卡片。近年来,iButton的在某些特定领域的应用大有取代普通RFID卡片之势。比如在苏州,一些高档小区纷纷采用iButton作为入户门禁,取代之前的普通RFID卡片;而一些外资企业,也开始抛弃普通的RFID卡片,转而采用iButton作为员工的身份识别和考勤工具。而在笔者所在的公司,iButton则作为智能交通终端的重要组成部分,实现包括身份识别、车辆安全控制、车厢保险、车内温度检测、电子钱包等各种功能。相信在不久的将来,iButton作为一种微型智能芯片,将慢慢国内相关领域普及并大量使用。到目前为止,对iButton的读写操作,一般是在Windows电脑中进行,或在特定的单片机环境中进行。Maxim公司针对这两种情况有提供的相应的Windows驱动程序和单片机(如51单片机)上的驱动代码。而对于Android系统,还没有专门针对iButton提供相应的驱动或API以供使用。因此,本文基于Android系统,进行了iButton相关驱动的设计与实现,为Android上使用iButton设备,奠定了基础。1.1.2 Android背景与现状Android是由Google公司在2008年发布的一款移动设备操作系统。第一款Android设备是Google联合HTC出品的Dream G1手机,发布于2008年10月。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一,成为全球智能手机市场上占有率最高的移动智能操作系统。根据最新的权威资料显示2 数据来自中国工业和信息化部电信研究院2013年2月发布的移动互联网白皮书,截止到2012年第三季度,Android的出货量已经达到了全球移动操作系统市场的72.4%;而在国内,到2012年底,Android已占到增量市场的86.4%。到目前为止,基于Android操作系统的设备已经衍生到平板电脑、机顶盒、智能电视、智能相机、游戏机等多个领域。可以说,Android已经成为当前大众消费领域智能设备操作系统的事实标准。Android系统的功能包括:多种显示布局,2D/3D显示,OpenGL支持,支持多点触控,支持多种数据存储(如SQLite、XML、JSON等)和多种网络制式(包括GSM/EDGE、IDEN、CDMA、EV-DO、UMTS、Bluetooth、Wi-Fi、LTE、NFC和WiMAX),支持短信有邮件,支持语音通讯、语言识别与输出,支持多语言,支持Web浏览器(包括HTML5、Flash等),支持多媒体音频视频播放,支持多种流媒体,支持各种传感器硬件和辅助设备,支持无线共享以及实时截图、远程控制等等。Android系统几乎每年都有一次重大的升级,由于Android系统更新速度太快,许多正在使用的设备来不及升级或无法升级。因此,截至到2013年2月,全球范围内接近50%的设备依然使用的Android 2.x或以下的版本。本文基于Android 2.1开发,下图显示了Android 2.x系统的标准界面。图1-2:Android 2.1系统桌面Android系统是基于Linux内核的操作系统,但它不是Linux系统。(Patrick Brady 在Google IO 2008上的发言, Google Inc.)Android系统最大的特点是源码开放。从底层的Linux内核源码,到上层的Android平台源码,全部都是开源的。任何人几乎都可以轻而易举的获得Google官方全部的源代码(硬件驱动部分由于受厂商保护,Google源码的驱动部分只包含几款特定硬件的样例)。而一些与Google有合作关系的硬件设备厂商,也会不时通过一些特定的渠道发布基于某种特定硬件平台的源码。除了Google官方会在网上发布Android相关的参考资料,一些掌握核心技术的工程师,也会出版一些书籍或者在网上发布一些技术资料,这也成为宝贵的资料来源。随着源码的开发和学习门槛的降低,越来越多的公司和个人都投入到了Android开发的行业。当前,Android系统所占领的领域大多是消费电子领域,比如手机、平板、电视、相机等。而在工业领域,Android系统尚未取得显著的成绩。工业领域的智能设备,需要和各类不同的工业外设进行连接和通讯。而操作这些外设,就要求该工业设备,能够从硬件上和软件上集成不同的工业外设,针对不同的行业需求,自动地完成不同的工作任务。而一般的工业外设,则主要是通过IO、串口、USB、I2C等各类不同的硬件接口,连入主控系统;主控系统再通过其上运行着的操作系统和应用软件来控制这些外设,从而达到控制工业外设的目的。本文的主要任务,就是探索Android在工业领域的应用。通过在Android系统上集成iButton这种单总线的外设,开辟出一条基于Android和iButton的行业应用的道路。同时为后来人集成其他类型的工业外设,提供思路和参考。论文的主要研究内容1.2 论文的组织结构和章节安排本文在内容安排上采用了经典的软件工程结构。第一章 绪论,背景介绍,主要分析了iButton与Android相关技术的背景与现状。第二章 技术简介,主要从技术角度对iButton和Android进行介绍。第三章 系统总体设计,主要对本文的课题进行了整体上的分析与设计。第四章 系统实现和应用,主要对本文的课题进行具体的相关技术实现。第五章 是总结,主要是进行总结性的分析与展望。第2章 论文所涉及到的相关技术 2.1 iButton技术简介iButton器件3 /products/ibutton/index.cfm是一个封装在16mm直径的不锈钢外壳内的IC芯片。如图2-1所示。图2-1:iButton外观和封装由于其采用独特的坚固外壳,可以将最新信息随人或目标物体携带到任何地方。实际上由于钢制的iButton外壳足够坚固,可承受室内或室外的各种苛刻环境,使得iButton器件几乎可以安装在任何地方。iButton器件十分的小巧轻便,可以附着在钥匙链、戒指环、手表或其他个人物品上,非常适合在日常生活中控制诸如建筑物及计算机、资产管理以及各种数据记录的访问权限。iButton器件利用其不锈钢外壳作为电子通信接口,每个外壳都具有一个数据触点,称作“盒盖”,以及一个接地触点,称作“盒底”。这些触点都被连接至内部硅片。盒盖是外壳的顶部;盒底则由外壳的边缘和底部组成,包括一个便于按钮附着在其他任何物件的凸缘。这两个触点由聚丙烯扣环隔离。iButton采用了微芯片设计,体积很小,并且它被封装在一个直径约16mm的高强度不锈钢外壳内,耐热耐湿耐磨耐摔,不易损坏。它比普通的RFID卡片更小巧、更坚固、更耐久。另外它具有全球唯一的只读ID(最大为2的64次方),可以读写并存储数据,对数据进行加解密,也可以读取环境温度和湿度,还可以做时钟。目前基于iButton的相关产品有几十种4 参考Maxim官方网站的iButton站点:/products/ibutton/products/ibuttons.cfm。由于iButton是一个总线设备,iButton相关硬件包括两大部分。一部分是iButton主控端,另外一部分是iButton芯片本身(作为受控端)。iButton主控端设备包括iButton探测器DS9092、iButton串口适配器DS9097U和USB适配器DS9490R等(iButton探测器和适配器在国内又被称为iButton读卡器)。iButton受控端则包括各种不同类型的iButton,如型号为DS1990A的只读的iButton,型号为DS1996L的64Kb可读写iButton,型号为DS1961S的可加密iButton,型号为DS1920的可读取环境温度的iButton,型号为DS1904的带时钟功能的iButton,以及型号为DS1963S的可作为电子钱包的iButton等等。2.1.1 1-Wire 总线原理iButton从硬件设计上看是一个单总线设备,该总线被称为1-Wire总线5 /products/1-wire/flash/overview/index.cfm,由美国Dallas公司设计和实现(由于Dallas公司被Maxim公司收购,现在知识产权由是美国Maxim公司所有)。1-Wire总线技术采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的。这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。连接iButton,实际上就是把iButton接入1-Wire总线,系统通过1-Wire总线来操作接入其上的iButton。图2-2显示了1-Wire总线的基本原理。图2-2 1-Wire总线的基本原理图从该原理图上可以看出,1-Wire总线上分为Host和Device,Host作为主控端(也叫Master),Device作为受控端(也叫Slave)。一条1-Wire总线上只能存在一个Master,可以存在多个Slave。1-Wire总线支持双向通讯,通讯方式为半双工。Slave设备的电量从1-Wire总线上获取并保存在内部电容内。因此在进行双向通讯时,iButton从设备要与主控端保持接触以获取电量。2.1.2 iButton相关设备在上一节我们提到,iButton是一种1-Wire总线设备6 Maxim Application Note 1796“Overview of 1-Wire Technology and Its Use”。1-Wire总线技术实际上是一种用于设备通信的串行总线系统,从硬件设计上看,它只需要一根数据线外加一根地线来传输数据、信号和电量。如图2-3所示,1-Wire Host(主设备)作为控制端发起和控制数据通讯,它可以与1个或多个1-Wire Device(从设备)进行通讯。每个1-Wire 从设备有一个工厂预先设定的唯一的、不可变的64位ID作为1-Wire总线上的设备地址,其中8位作为设备类型码。通常,操作1-Wire 从设备需要2.5V(最小)到5.25V(最大)的电压范围。大多数1-Wire 从设备没有电源引脚,他们需要通过1-Wire总线吸取电量,这种方式也叫寄生供电 (Parasitic Supply)。图2-3:1-Wire Host(主设备)和 1-Wire Device(从设备)连接配置参考1-Wire是一种基于电压信号的数字系统,它只需要两个接触电,数据端和地端,进行半双工通讯。与其它串行总线系统如I2C、SPI等不一样的地方是,1-Wire设备是设计用于完全接触式通讯环境。任何与1-Wire总线断开连接或脱离接触点的情况,都会导致1-Wire 从设备进入一种预定义的重置状态。当电压返回时,这些1-Wire 从设备才能被唤醒并发出在线的信号。由于只有一个数据接触点,1-Wire从设备内置的静电保护(ESD Protection)非常高。1-Wire从设备被通过以下方式封装:传统晶体管(TO-92),包括TSOC、SOIC、SOT23在内的IC封装方式,2点接触式SFN1封装方式,16毫米直径不锈钢iButton封装,还包括倒装芯片(Flip Chip)和UCSP3等方式。本文采用的是iButton封装方式的1-Wire从设备。 iButton读写器和适配器读写iButton设备,需要1-Wire主控制器硬件,通过把1-Wire主控制器集成到Android主机平台上,形成可读写iButton的1-Wire主设备。需要iButton读写器或适配器7 /results.mvp?fam=ibuttonr_a。目前Maxim提供包括基于GPIO的iButton探测器(读头)、基于I2C接口的1-Wire主控制器、基于RS232的1-Wire串口适配器、并口适配器、基于USB的1-Wire适配器等多种可作为1-Wire主控制器的iButton读写器和适配器。iButton探测器(读头)8 /products/ibutton/products/readers_probes.cfm 有很多型号,分为不同系列:DS1402系列iButton读头,DS1402D系列iButton蓝点(Blue Dot)接收器,DS9092系列iButton探测器。DS1402-RP8DS1402-BP8 with DS1404图2-4:DS1402系列DS1402D-DR8DS1402D-41图2-5: DS1402D系列DS9092DS9092GT图2-6:DS9092系列这些读头有个共同的特点,都只提供两个引脚,一个Data引脚作为数据端接触点,一个GND引脚作为低端接触点。将这样一个读头和Android硬件平台连接在一起,就形成了一个1-Wire主设备。而iButton适配器,就是把从不同的硬件接口来的数据适配成1-Wire数据,进行双向的数据转换。比如RS232适配器DS9097U系列9 /datasheet/index.mvp/id/2983/t/al,可以把串口数据转换成1-Wire数据;并口适配器DS1410E系列10 /datasheet/index.mvp/id/2709/t/al (已停产),可以把并口数据转换成1-Wire数据;USB适配器DS9490系列11 /datasheet/index.mvp/id/3834/t/al,可以把USB数据转换成1-Wire数据。把这些适配器一端通过串口、并口或USB口接上Android硬件平台,一端接上iButton读头,便形成了基于串口、并口或USB口的1-Wire主设备。通用1-Wire/iButton串口适配器 DS9097U-0091-Wire/iButton并口适配器 DS1410E-001图2-7: 1-Wire/iButton串口适配器和并口适配器1-Wire/iButton USB适配器 DS9490R1-Wire/iButton USB适配器 DS9481R图2-8:1-Wire/iButton USB适配器 iButton从设备iButton从设备就那枚直径为16mm大小的不锈钢“纽扣”了。目前比较常见的是把它做成不同颜色的钥匙(图2-9),在一些行业它也被做成别具特色的腕带(图2-10),当然也有人把它订做成iButton指环(图2-11)。图2-9:iButton钥匙图2-10:iButton腕带图2-11:iButton指环iButton按功能分为六大类12 /products/ibutton/products/ibuttons.cfm几十种,包括只读ID类,存储器类,实时时钟(RTC)类,安全器件类,传感器类和数据记录器类。每一大类又包括一到多种iButton。详细分类如表2-1所示。大类别小类别型号描述只读ID-DS1990AiButton序列号存储器NVRAMDS1992LiButton 1K位/4K位存储器 DS1993LiButton 1K位/4K位存储器 DS1995LiButton 16K位存储器 DS1996LiButton 64K位存储器 EPROMDS1982iButton 1K位只添加存储器 DS1985iButton 16K位只添加存储器DS1986iButton 64K位只添加存储器 UniqueWareDS1982UUniqueWare iButton 1K位只添加存储器 DS1985UUniqueWare iButton 16K位只添加存储器EEPROMDS1971iButton 256位EEPROM DS1972iButton 1024位EEPROM DS1973iButton 4K位EEPROM DS1977iButton 32K字节EEPROM实时时钟-DS1904iButton RTC DS1994LiButton 4K位、带有时钟的存储器 安全器件密码保护存储器DS1991iButton多密钥 DS1977iButton 32K字节EEPROM 内置SHA-1质询应答算法的电子钱包DS1961S带有SHA-1引擎的iButton 1Kb EEPROM DS1963S带有SHA-1功能的iButton金融器件 传感器温度检测DS1920iButton温度记录仪 数据记录器温度记录器DS1921LThermochron iButton器件DS1921GThermochron iButton器件改进版DS1921H高分辨率、Thermochron iButton器件 DS1921Z高分辨率、Thermochron iButton器件 高容量温度记录器DS1922LiButton温度记录器,带有8KB数据记录存储器 DS1922TiButton温度记录器,带有8KB数据记录存储器 DS1922EiButton温度记录器,带有8KB数据记录存储器 湿度记录仪DS1923Hygrochron iButton器件,具有8KB数据记录存储器 表2-1 iButton型号分类由于iButton种类繁多价格不一,本文只选择了其中几个比较具有代表性的iButton进行开发和测试,包括:DS1990A只读ID型,DSDS1996L存储器NVRAM型,DS1972存储器EEPROM型,DS1904实时时钟,内置SHA-1算法的DS1961S和DS1963,和DS1921G温度记录器。2.2 Android技术简介Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区大多数人使用“安卓”作为Android的中文译名。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额。2013年09月24日,Android操作系统迎来了5岁的生日,谷歌当天宣布:全世界采用Android系统的设备数量达到10亿台。2.2.1 Android系统简介目前最新的Android操作系统具有以下功能:显示布局:Android操作系统支持更大的分辨率,VGA,2D显示,3D显示都给予OpenGL ES 3.0标准规格(4.3版本开始支持OpenGL ES 3.0),并且支持传统的智能手机。数据存储:Android操作系统内置SQLite小型关联式资料库管理系统来负责存储数据。网络:Android操作系统支持所有的网络制式,包括GSM/EDGE、IDEN、CDMA、EV-DO、UMTS、Bluetooth、Wi-Fi、LTE、NFC和WiMAX。信息:作为原设计给智能手机使用的操作系统,Android操作系统原生支持短信和邮件,并且支持所有的云信息和服务器信息。语言:Android操作系统支持多语言。浏览器:Android操作系统中内置的网页浏览器基于WebKit核心,并且采用了Chrome V8引擎。在Android 4.0内置的浏览器测试中,HTML5和Acid3故障处理中均获得了满分,并且于2.2版及之后能原生支持Flash,4.0版本后去除对Flash的支持。支持Java:虽然Android操作系统中的应用程序大部分都是由Java编写的,但是Android却是以转换为Dalvik executables的文件在Dalvik虚拟机上运行的。由于Android中并不自带Java虚拟机,因此无法直接运行Java程序。不过Android平台上提供了多个Java虚拟机供用户下载使用,安装了Java虚拟机的Android系统可以运行Java_ME的程序。多媒体支持:Android操作系统本身支持以下格式的音频/视频/图片媒体:WebM、H.263, H.264(in 3GP or MP4 container)、MPEG-4 SP、AMR, AMR-WB(in 3GP container)、AAC, HE-AAC(in MP4 or 3GP container)、MP3、MIDI、Ogg Vorbis、FLAC、WAV、JPEG、PNG、GIF、BMP。如果用户需要播放更多格式的媒体,可以安装其他第三方应用程序。流媒体支持:Android操作系统支持RTP/RTSP(3GPP PSS, ISMA)的流媒体以及(HTML5 )的流媒体,同时还支持Adobe的Flash,在安装了RealPlayer之后,还支持苹果公司的流媒体。硬件支持:Android操作系统支持识别并且使用视频/照片摄像头,多点电容/电阻触摸屏,GPS,加速计,陀螺仪,气压计,磁强计,键盘,鼠标,USB Disk,专用的游戏控制器,体感控制器,游戏手柄,蓝牙设备,无线设备,感应和压力传感器,温度计,加速2D位位块传输(硬件方向,缩放,像素格式转换)和3D图形加速。多点触控:Android支持本地的多点触摸,在最初的HTC Hero智能手机上即有这个功能。该功能是内核级别(为了避免对苹果公司的触摸屏技术造成侵权)。蓝牙:Android支持A2DP,AVRCP,发送文件(OPP),访问电话簿(PBAP),语音拨号和发送智能手机之间的联系。同时支持键盘,鼠标和操纵杆(HID)。多任务处理:Android操作系统支持本地的多任务处理。语音功能:除了支持普通的电话通话之外,Android操作系统从最初的版本开始就支持使用语音操作来使用Google进行网页搜索等功能。而从Android OS v2.2开始,语音功能还可以用来输入文字、语音导航等功能。无线共享功能:Android操作系统支持用户使用本机充当“无线路由器”,并且将本机的网络共享给其他智能手机,其他机器只需要通过WiFi查找到共享的无线热点,就可以上网。而在Android OS v2.2版本之前的操作系统则需要通过第三方应用或者其他定制版系统来实现这个功能。截图功能:从Android OS v4.0版本开始,Android操作系统便支持截图功能,该功能允许用户直接抓取智能手机屏幕上的任何画面,用户还可以通过编辑功能对截图进行处理,还可以通过蓝牙/E-mail/微博/共享等方式发送给其他用户或者上传到网络上,也可以拷贝到电脑中。2.2.2 Android系统架构Android系统是基于Linux内核的操作系统,但它不是Linux系统(Patrick Brady 在Google IO 2008上的发言, Google Inc.)。Android系统是高度层次化的操作系统,见图2-12。它自下而上分为四层:Linux内核层,Android原生框架层和Android Runtime,Android应用框架层和Android应用程序层。图2-12: Android系统架构图Android最底层(图中红色部分)是经过修改和定制的Linux内核,由C语言和汇编开发,只提供最核心的系统功能和与硬件直接相关的操作。Android原生框架层和Android Runtime(图中绿色和黄色的部分)包括硬件抽象层(HAL)、原生函数库、Dalvik虚拟机13 /wiki/Dalvik_(software)、Java运行时环境、Java核心类库等,由C/C+和Java开发,提供了最核心的运行环境、函数类库以及系统原生服务。Android应用框架层(自顶向下第二层)是用Java编写的系统应用服务框架、相关应用服务以及相关的Java类库。最顶层的Android应用程序层提供了所有操作系统相关的应用程序,通过这些应用程序可以方便的操作整个系统,另外通过Android的Java API编写的客户应用程序也属于这一层。Android系统上的驱动开发,相对于Linux系统上的驱动开发(主要集中在Linux内核),要多出至少两方面的工作:一方面要在原生框架层的硬件抽象层进行相关的功能抽象与API设计;另外一方面要在应用框架层进行Java API和相关服务的封装,方便应用软件的开发与调用。2.2.3 三星S3C6410 Android硬件平台三星S3C6410是一个16/32 位 RISC 片上微处理器,片上集成了丰富的硬件资源。它基于ARM1176JZF-S应用处理器14 /zh/products/processors/classic/arm11/arm1176.php,它具有成本效益、功耗低、性能高等特点,基于该硬件平台,可以开发如移动电话、平板电脑、机顶盒等相关的应用解决方案。图2-13:S3C6410 (ARM11) 平台硬件结构图S3C6410采用了64/32 位内部总线架构,该内部总线结构由AXI、AHB 和 APB 总线组成。它还包括许多强大的硬件加速器,像视频处理,音频处理,二维图形,显示操作和缩放。一个集成的多格式编解码器(MFC)支持 MPEG4/H.263/H.264 编码、译码以及VC1 的解码。这个H/W 编码器/解码器支持实时视频会议和NTSC、PAL 模式的TV 输出。 S3C6410 有一个优化的接口连线到外部存储器。存储器系统具有双重外部存储器端口、DRAM和FLASH/ROM/DRAM 端口。DRAM 的端口可以配置为支持移动DDR、DDR、移动SDRAM和SDRAM。FLASH/ROM/DRAM端口支持NOR-FLASH、NAND-FLASH、ONENAND、CF、ROM 类型外部存储器,以及移动DDR、DDR、移动SDRAM和SDRAM。 S3C6410 包括许多硬件外设,包括TFT 24 位真彩色液晶显示控制器、系统管理器(电源管理等)、4 通道 UART、32 通道 DMA、4 通道定时器、通用的 I/O 端口、IIS 总线接口、IIC 总线接口、USB 主设备接口、在高速(480 MB/S)时 USB OTG 接口、SD 主设备接口、高速多媒体卡接口和用于产生时钟的 PLL,以及一个相机接口。2.2.4 友坚恒天UT-S3C6410 Android开发板本文采用的是来自深圳市友坚恒天科技有限公司15 深圳市友坚恒天科技有限公司()是国内一家知名的三星ARM开发平台和方案供应商,主要提供平板成品方案和开发板。该公司成品出货量很大,远销海内外。(简称友坚恒天)的一款UT-S3C6410 开发板,它性能稳定、功能强大、性价比高,专为消费类电子、工业控制、车载导航、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用,其小巧、紧凑、一体式的人性化外观设计也是高校、培训机构、嵌入式爱好者学习研究的最佳工具。 UT-S3C6410开发板完美实现了三星S3C6410在视频媒体编解码、2D/3D 图形加速、显示处理和缩放等方面的功能,并提供了LCD 接口、TV-Out 接口、Camera 输入接口、4 路串口、SD卡接口、SPI、100M 网口、USB2.0-OTG 接口,USB Host接口、音频输入输出接口、按键接口、I2C 接口等硬件资源,具有更高的主频和更丰富外设,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合。 该开发板采用了核心板加底板的组件化设计方式。UT6410核心板(如图2-14)上集成了包括S3C6410处理器、DDR内存、NANDFlash在内的核心芯片及核心外围电路,同时提供了180个外部引脚可以直接集成到相应的UT6410底板上。UT6410底板(如图2-15)是根据核心板来设计的,底板上加入了包括电源管理电路在内的几乎所有常用硬件接口电路。由图2-5可以看出,底板上包括电源插槽、电源开关和复位键,USB Host插槽和USB OTG插槽,普通网口和TV输出端,音频输出和MIC输入口,板载调试串口,预留的IO排插可供SPI、GPIO、摄像头、UART(TTL串口)、RS485串口、LCD、SDI、矩阵键盘等多种硬件接入。而且该底板还提供SD卡插槽、RTC纽扣电池槽,以及几个用户自定义按键和用户自定义LED指示灯等。对于本文的研究课题来说,该硬件平台上所需要使用的硬件接口一应俱全,包括GPIO、串口、USB Host在内的所有相关接口都已具备。关于该硬件平台的系统源码,友坚恒天公司提供了该平台上Android 2.1的全套源码(除关键硬件的HAL驱动实现的部分),在此基础上进行全新的硬件驱动的开发是可行的。图2-14: UT6410核心板图2-15:UT6410底板(核心板已安装)语言介绍(C、 C+、Java、) 第3章 总体设计在Android系统上集成iButton,涉及到硬件和软件两大方面的问题。硬件方面主要解决一个问题,对Android系统硬件平台进行外围搭建,把iButton相关的硬件设备集成到该硬件平台。软件方面主要解决三个问题,一是需要对Android系统的Linux内核进行适当的修改,使其兼容iButton相关的硬件;二是需要在Android系统的硬件抽象层(用户空间驱动)进行iButton驱动开发,提供相应的系统接口给Android应用框架层调用;三是需要在Android的应用框架层进行iButton相关library的开发,使得Android应用程序可以通过该框架调用到相关的系统接口,从而达到最终控制iButton的目的。3.1 硬件分析与设计本文采用的Android系统硬件平台是三星S3C6410平台。S3C6410是三星出品的基于ARM1176的移动应用处理器,它在智能手机、数字电视、机顶盒、移动互联网设备(MID)、个人导航设备(PND)等领域都有广泛应用。它的主频可达667MHz,片上功能也非常齐全,同时提供了丰富的外围接口以供使用,包括GPIO、I2C、串口、USB等。本文所需要的硬件接口,该平台都有提供。同时,在源码方面,开发板供应商也提供了Android 2.1的全套源码(不包括硬件的HAL驱动),为本文的软件开发与实现提供了便利。本文采用的iButton相关设备包括两大部分:一部分是iButton主控制器硬件,另外一部分是iButton从设备硬件。iButton主控制器硬件有iButton探测器DS9092、iButton串口适配器DS9097U和USB适配器DS9490R等16 iButton探测器和适配器在国内又被称为iButton读卡器。iButton从设备硬件则包括各种不同类型的iButton,如型号为DS1990A的只读的iButton,型号为DS1996L的64Kb可读写iButton,型号为DS1961S的可加密iButton,型号为DS1920的可读取环境温度的iButton,型号为DS1904的带时钟功能的iButton,以及型号为DS1963S的可作为电子钱包的iButton等等。iButton相关硬件目前只有美国Maxim公司生产,并且只能从Maxim的产品代理机构进行购买。由于国内的代理机构只可以拿到最基本的几种iButton器件,除了只读的iButton芯片DS1990A和基本的iButton探测器DS9092,其他的器件基本上很难有存货,并且大多数国内代理商不愿单独销售样品,因此只能通过美国的电子元器件经销商进口所需的iButton元器件。笔者是通过美国元器件代理商Digikey的网站在线订购了一批iButton元器件,包括三种iButton主控制器,以及各种具有典型功能的iButton从设备。3.1.1 硬件分析根据1-Wire总线原理,1-Wire总线是单信号模式,并且在一个主设备和多个从设备之间进行半双工通讯。电量传递和数据通讯都在这一个信号线上,为了让总线上的1-Wire设备满足功能需要,总线上的互连必须最小化。由于1-Wire主设备需要生成合适的电压波形去识别1-Wire 从设备并与它们通信。一个1-Wire总线网络上只能有一个主设备,并且短总线网络上只能有最多5个从设备17 Maxim Application Note 4206: “Choosing the Right 1-Wire Master for Embedded Applications”,长总线网络18 Maxim Application Note 148: “Guidelines for Reliable Long Line 1-Wire Networks”需要在连接线路上增加额外的硬件组件才能进行组网通讯。由于本文的重点在驱动软件的部分,所以这里只进行1-Wire短总线网络的设计与搭建。搭建一个1-Wire系统网络,需要考虑以下几点:主机接口前面所讨论的1-Wire主控端硬件,包括iButton探测器和适配器,都不能作为单独的实体来工作,它们必须与一个主机(电脑或嵌入式设备)连接起来,由主机来告诉它们需要在1-Wire总线上执行什么动作。主机接口就是主机与1-Wire主控端连接的接口。本文所采用的主机就是Android硬件平台S3C6410开发板。操作电压正常情况下,1-Wire设备可以工作在2.8V到5.25V的电压范围内。大多数1-Wire设备没有电源输入引脚,这些设备都通过1-Wire通讯线路汲取电量。1-Wire操作电压和上拉电压实际上是同义的。操作电压(上拉电压)越高,1-Wire设备就可以得到更多的电量。更多的电压意味着更多的1-Wire设备接入从总线,或者减少每两个时隙(Time Slot)19 Maxim Application Note 159: “Software Methods to Achieve Robust 1-Wire Communication in iButton Applications”之间的恢复时间。强上拉强上拉是一种在1-Wire网络的时隙间提供额外电量的一种方式。对于某些iButton的一些功能,额外电量是必要的:比如对于EEPROM存储器类的iButton,在把一串数据从缓存写入到EEPROM时就需要额外电量;而对于安全器件的iButton,当SHA-1引擎在工作时,也需要额外电量;或者在1-Wire温度传感器进行数据转换时等等。当这些1-Wire从设备被使用在3V的环境下,强上拉是必须的;而在5V的环境下,强上拉是可选的。1-Wire 时钟(Timing)1-Wire 时钟是对1-Wire时隙的形状、设备重置/设备检测时序,以及生成这些波形的方式的一般性表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村级财务制度培训与优化提升
- 七年级生物下册 第四单元 生物圈中的人 第七章 人类活动对生物圈的影响第一节 分析人类活动破坏生态环境的实例教学设计 (新版)新人教版
- 人教版 (2019)选择性必修 第二册Unit 1 Science and Scientists教案及反思
- 2024云南曲靖福牌彩印有限公司招聘2人笔试参考题库附带答案详解
- 三年级信息技术上册 第3课 可爱的小老鼠教学设计 辽师大版(三起)
- 人教精通版四年级下册Unit 3 What subject do you like bestLesson 14教案
- 上海市金山区九年级历史上册 第二单元 近代社会的确立与动荡 第11课 开辟新时代的“宣言”教学设计 北师大版
- 2024中核汇海招聘笔试参考题库附带答案详解
- 人教版四年级上册语文教案设计(教学反思参考3)去年的树学案-学案下载
- 内蒙古版四下综合实践 第三单元 主题活动四《自主选题:桥梁知多少》教案+素材
- 2025年新高考历史模拟试卷2(含答案解析)
- 中国汽车用品行业市场深度分析及发展前景预测报告
- 《森马服饰公司营运能力存在的问题及对策【数据图表论文】》11000字
- 外墙真石漆采购合同
- 物流行业招聘流程及人员配置
- 2025年扎赉诺尔煤业有限责任公司招聘笔试参考题库含答案解析
- 儿童科普教育:2025年《肥皂泡》
- 液化气充装站建站可行性研究报告
- 员工黄赌毒法制培训
- 2025年广西现代物流集团限公司校园招聘60人高频重点提升(共500题)附带答案详解
- 2025年度跨境电商平台公司合伙人股权分配与运营管理协议3篇
评论
0/150
提交评论