桂林师范高等专科学校物理与信息技术系 羊日飞 温守轰
在如今的信息化数字化时代,人们对于文本、数据、图像、视频等数字化信息的展示需求越来越大,各种显示系统在军事、教育、商务、娱乐等各个领域应用广泛。其中投影显示系统相比液晶、等离子等显示系统在需要大屏幕显示时更具优势。
从上世纪80年代以来,投影显示技术飞速发展,其间诞生了两种主流的投影显示技术:LCD(Liquid Crystal Display)投影技术和DLP(Digital Lighting Process)投影技术。DLP也称数字光处理,是一种基于美国德州仪器公司开发的DMD(Digital Micromirror Device)数字微反射镜器件的反射式投影技术。相比LCD投影技术,作为“后起之秀”的DLP投影技术具有图像清晰度高、视觉效果好,响应速度快,光利用率高等特点。DLP投影技术具有结构相当紧凑的光学系统,因此“便携移动”是DLP投影显示系统的一大优势,也是DLP投影系统的重要发展方向。本文研究将蓝牙技术应用于DLP投影系统,设计开发了一套以蓝牙手机作为控制器的无线DLP投影系统,进一步提高了DLP投影系统使用的灵活性。
系统总体结构框图如图1所示,由两大部分组成:蓝牙手机无线控制器和DLP投影机。在具有蓝牙功能的手机底层蓝牙软硬件的基础上利用Java平台开发了一套客户端控制器程序,用于搜索、连接和控制DLP投影机。DLP投影机内部包含蓝牙模块,该蓝牙模块主要由蓝牙芯片和运行在芯片中的服务端程序构成。手机上的客户端程序与DLP投影机的服务器端程序通过建立蓝牙SPP服务进行通信,传输控制信号,DLP投影机中的蓝牙模块再将控制信号传输给DLP主控芯片DDP2000。
图1 系统总体结构
本系统DLP投影机部分硬件结构框图如图2所示,选用TI公司的DDP2000作为主控制器和视频图像处理器,并且通过它的输入输出接口与其它外围芯片相连接。模拟视频RGB信号经VGA接口输入,通过ADC芯片进行模数转换,转换后的数字视频信号送DDP2000处理。ADC芯片的另一路输入来源于ESS公司的ES6425多媒体解码芯片,ES6425有SD卡和USB接口,能够直接读取这些存储介质中的视频或图像文件进行解码,输出视频信号。DDP2000将处理后的数字视频信号送到DMD数字微反射镜器件,通过DMD器件上200万个微反射镜的转动反射投影出影像。DDP2000配置有用于存储程序的Flash存储器和用于缓存视频图像的RDRAM数据存储器。DAD1000是DMD的电源/复位芯片,PMD1000是电源/电机驱动芯片用于驱动控制风扇和色轮。蓝牙模块选用英国CSR公司开发的BlueCore3蓝牙芯片,由BlueCore3发出的控制信号分别用于控制ES6425和DDP2000。
图2 DLP投影机硬件结构图
蓝牙模块在本系统中被设计为DLP投影机内部与外界联系的通道。它将无线蓝牙通讯中接收到的控制命令转换为控制DDP2000和ES6425的信号,从而实现无线蓝牙控制的功能。
模块选用英国CSR公司开发的蓝牙芯片——BlueCore3-Multimedia。该芯片是蓝牙2.4GHz系统数据和语音传输的射频和基带芯片,它提供了单芯片的蓝牙模块解决方案,且具有如下特性:
●蓝牙v1.2规格的完全兼容;
●全速蓝牙操作,完整蓝牙微微网支持;
●集成Kalimba DSP开放平台协处理器;
●最小的外围部件;
●内置16位立体声音频CODEC;
●提供包括UART、USB、SPI等各种外围接口。
图3 BlueCore3芯片功能框图
蓝牙模块的软件设计在CSR公司提供的开发环境BlueLab中进行,并利用了BlueLab提供的开发库。BlueLab开发库位于用户应用程序与芯片固件(fireware)之间,其中包括了基础(Foundation)库、支持(Support)库、应用剖面(profile)库和连接库(connection library)。
软件程序的功能是基于蓝牙SPP应用剖面实现的。SPP也称串口应用规范,它规定了蓝牙串口应用模型中用到的协议和过程。而蓝牙串口应用模型是指两个对等设备间使用RFCOMM电缆替代协议建立一个仿真串口连接,在连接的过程中一个设备作为客户端,另一个设备作为服务器端,服务器端等待客户端发起连接请求。本设计中DLP投影机的蓝牙模块作为服务器端,手机作为客户端。
程序设计时主要使用BlueLab应用剖面库中的SPP库。从逻辑关系上看,用户程序位于SPP库的上层,其向下调用SPP库中的库函数,而SPP库则向上给用户程序发送消息。因此,程序设计时采用了以事件消息处理为中心的构架。其主函数main()的流程如图4所示。
图4 主函数流程图
主函数首先初始化芯片的PIO口,然后装载芯片内部DSP协处理器的代码启动DSP,之后注册主消息处理函数,设置SPP连接状态,初始化连接管理器,最后调用MessageLoop()函数启动消息调度循环。主函数执行完后程序进入以消息事件为驱动的工作模式,由刚才注册的主消息处理函数处理消息事件。
蓝牙手机作为DLP投影系统的无线控制器,要实现搜索附近的DLP投影机、显示当前可连接的DLP投影机列表、连接指定的DLP投影机、向DLP投影机发送各种控制命令等功能,为此需要设计实现一个运行在蓝牙手机上的客户端控制器程序。选择JavaTMME作为开发平台可以使我们设计的控制器程序能够在各个厂商、各种型号的蓝牙手机上运行。JavaTMME开发平台的体系结构如图5所示:最底层的是手机操作系统,比如Symbian S60,其上是Java虚拟机和CLDC 1.1配置,配置是对设备“纵向”的分类,CLDC对应低端设备,再上层是MIDP 2.0移动信息设备简表,它包含了支持移动信息设备各种应用功能的API,最上层是JSR-82蓝牙可选开发包。控制器程序建立在整个开发平台的基础上。
图5 JavaTM ME平台体系结构
控制器程序的结构由一个主类和其它几个相关的类组成,主类继承自MIDlet类,其中实现了程序生命周期的三个方法,主类中还定义了一个命令监听器,用于整个程序的命令处理和界面切换。另外有两个类用于无线蓝牙通信,其中一个用于设备搜索;另一个用于设备连接及数据通信。其余的类用于实现一些界面元素,如标签、按钮、表格、表格元素等。
负责设备搜索的类名为RemoteDeviceDiscovery,当在控制器程序界面按下“Search”命令后,程序创建该类的对象,执行该类的构造函数,构造函数主要由启动设备搜索的代码组成,该部分代码调用JSR-82提供的API函数实现其功能,例如调用getLocalDevice()方法获得本地蓝牙设备,调用getDiscoveryAgent()方法取得搜索代理,调用startInquiry()方法启动设备搜索。搜索到蓝牙设备后接下来搜索该蓝牙设备提供的服务,在调用searchServices()方法时,提供给参数searchUuidSet的值为“0x1101”,指明搜索的服务类型为仿真串口服务。服务器返回的服务记录为URL地址字符串:
“btspp://00025B00A5A5:1;authenticate=false;encrypt=false;master=false”
其中“btspp”为JavaTMME通用连接框架(GCF)定义的连接协议,具体指蓝牙SPP连接;“00025B00A5A5”是DLP投影机设备的蓝牙地址,“1”是RFCOMM服务通道号,authenticate、encrypt、master是三个连接可选参数,其值分别表示无需认证、不需要加密以及从设备。程序根据服务器返回的URL地址进行连接,负责连接和数据通信的类名为SppConnect,当用户在控制器程序界面按下“Connect”命令后,程序创建该类的对象,调用构造方法,该方法中调用通用连接框架的Connector.open()方法打开蓝牙连接。该方法返回StreamConnection接口对象,StreamConnection接口对象用于实现双向通信。之后调用openInputStream()方法打开输入数据流,调用openOutputStream()方法打开输出流,输出流打开后,只要调用输出流的write()方法就可以向DLP投影机蓝牙模块发送命令字符串,从而实现对投影机的无线控制。
本文介绍了基于蓝牙技术的DLP投影系统设计与实现过程,包括系统总体设计、投影机硬件设计、蓝牙模块设计以及蓝牙手机无线控制器设计。本系统基于蓝牙技术使蓝牙手机成为控制器,实现对DLP投影机的无线控制。蓝牙手机控制器克服了传统红外遥控器作用距离短、需要正对接收端、容易受到阻碍的缺点,充分发挥了DLP投影机小巧轻便,移动灵活的特点,拓展了DLP投影系统的应用场合。
[1]莫志君.基于TI DLP技术实现的投影和显示系统[D].硕士论文:上海交通大学,2009.
[2]严紫建,刘元安.蓝牙技术[M].北京:北京邮电大学出版社,2001.
[3]BlueCoreTM3-Multimedia Single Chip Bluetooth v1.2 System Datasheet,2006.
[4]詹建飞.J2ME开发精解[M].北京:电子工业出版社,2006.
[5]马毅华,冯恩信.基于JSR-82规范的J2ME蓝牙应用及其实现[J].无线电工程,2004(8).