论文部分内容阅读
随着移动互联网的发展,智能设备成为了一种趋势。智能设备成为人们交流、通信以及获取资讯的主要方式。它不仅对人们的生活产生巨大的影响,还为人们带来了乐趣。为了获得更好的智能性和用户体验,多种传感器被加入到智能设备中。这些传感器大多数都可以使用I2C进行数据传输,运行在这些智能设备中操作系统大部分为Android系统或以Linux为内核的操作系统。 以iDR420项目的研发为背景,重点设计与研究重力传感器模块。首先介绍了安卓系统架构和重力传感器,在此基础上介绍了重力传感器模块的底层软件的总体架构,并对驱动程序的各个模块作用以及他们之间的联系进行简单的介绍。其次介绍了传感器驱动的各个模块以及HAL层的设计与实现,为了提高数据传递的实时性,在硬件抽象层加入了缓冲队列。然后对Binder的通信机制进行深入的研究,并分析了Server端和Client端是如何通过Binder驱动进行通信。在此基础上分析了传感器服务的启动以及如何与HAL层的交互,并从应用层出发对获得传感器的数据流程进行详细的分析,包括客服端与服务端创建的连接和Android字节管道。最后通过Android调试工具以及App,对Android传感器模块要求的注册Linux输入设备以及为Android传感器模块提供控制接口的字符设备节点进行了验证。验证了驱动程序以及硬件抽象层的性能和可靠性,从而验证了Android传感器底层软件设计方案的可行性和有效性。