论文部分内容阅读
随着数字化技术的飞速发展,微型投影技术逐渐被应用于商务办公、教育、军事等领域中。微型投影仪具有信息存储量大、体积小、重量轻、功耗低等优点,可以用作野外军事行动中电子地图显示和作战指挥。相较于大多数技术成熟的产品,微型投影仪还处于发展的阶段,本文的研究工作具有重要意义。本文针对微型投影仪中主控系统的软件平台进行设计和优化,重点在于操作系统中驱动模块的设计,包括系统管理、外设通信、人机交互和信息安全等功能单元。方案结合了数字光处理技术和嵌入式技术以满足智能移动化的需求。系统管理单元的硬件基础是嵌入式微处理器,其上运行有Android操作系统以负责软硬件资源的调配管理。Android采用并修改了Linux内核,在用户空间中搭建了Java运行环境。针对该操作系统设计外设通信和人机交互驱动,不仅仅是Linux内核模块的设计,还需对Android框架做出相应的变动。外设通信单元涉及的总线接口类型有I2C和SPI,本文在设计这类设备驱动时以Linux内核中已存在的I2C和SPI子系统为基础,从而简化了驱动设计。另外出于指令安全方面的考虑,本文没有采用i2c-dev和spi-dev等通用驱动,而是重新实现为内核字符设备驱动。Android框架访问内核驱动生成的设备节点需通过硬件抽象层进行,需要分析新版硬件抽象层架构的源码来设计硬件抽象层代理模块,进行函数封装、参数转换和指令安全性检查等工作。系统服务对硬件抽象层的访问过程中存在Java与C++两种语言环境的交互,需设计JNI运行时库来进行函数映射。最后,Android应用程序调用硬件访问服务的操作涉及Binder远程过程调用。人机交互单元需实现按键输入和投影显示输出。考虑到Android图形环境中,现有的硬件抽象层模块可处理基于标准输入子系统和帧缓冲子系统实现的驱动:它们从驱动生成的设备节点中获取消息并进行分发。因此本文设计的人机交互单元是基于这两个标准子系统来实现的,这样上层工作可由Android现有框架完成。为保证微型投影仪稳定工作,所有功能单元均经过软硬件两个层面的测试验证。包括U-Boot、Linux和Android在内的软件平台也都进行了定制优化。本文的工作范围从硬件接口协议到内核驱动模块,直至最终上层测试应用的设计,包含了大量的工作,基本完成了预定的工作目标。