PC机中的上位机程序负责USB接口的通信应用、原始影音资料的转化处理。MCU响应键盘控制单元即时输入的命令,完成与PC机中上位机程序的USB交互通信或PC机端影音文件的巨量下载传输。
设备端将载入的影音文件保存在Flash存储单元中,由键盘命令控制MCU完成影音数据向音频处理模块和OLED显示模块的传送。音频处理模块和OLED显示模块实时处理并播放影音数据,从而完成对各旅游景点的综合性描述。同时,音频处理模块在MCU的驱动下也可即时录放模拟音频。
1.2 ETUSBICE嵌入式擞控制器开发组件
ETUSBICE是ET44M210的专用ICE组件及开发环境。ET44M210是一款高速的具有uSB+BB微控制器及8位精简指令集架构的CMOS MCU,除具备微控制器的功能外,还提供了与2.4GHz无线传输(Wireless Transmission)的基带(BB)、通用串行总线集线器(USB HUB)、串行外围接口(SPI)、双脉宽调变(PWM)及16个多信道的10位模拟对数字转换(ADC)。这些强大的功能,使ET44M210的应用范围扩大,并且在设计上更有弹性。
1.3 音频处理子系统
该子系统利用ET83X431模块实现音频文件的录制、播放等功能。ET83X431为该系统模块的主要芯片,采用48引脚的封装方式,包括2个16位的ADC和2个16位的DAC、连续音频接口、数字过滤装置、压缩/解压缩等模块,具有压缩和解压缩高质量立体声音频的功能。
ET83X431芯片配合其模块整体的硬件架构,能对特殊格式的音频文件进行直接的解码播放。因此需要设计PC端上位机程序,将所需播放的音频文件(如mp3、wma、wav等)或影音文件(如avi、wmv、mpeg等)中的音频采样转换为本模块通用的音频格式。将转换后的音频文件通过USB巨量下载到设备端并在下位机系统的整体协调下,利用本子系统实现对音频流文件的直接播放。
同时,本子系统支持直接的模拟采样。子系统的ADC与DAC部分可将模拟音频信号与数字音频文件相互转换,ET83X431可以直接对模拟音频信号采样和压缩编码。
1.4 OLED显示子系统
有机发光二极管显示器OLED(OrgamcLight-emittingDiode)是指有机半导体材料和发光材料在电流驱动下发光并实现显示的技术。ET52141彩色OLED控制器与驱动器模块支持96×96点的65k色的显示,具有方便的位操作能力、16位高速总线接口能力、高效的数据传输能力、对图形RAM的高速写入能力,适合数字移动电话或小型PDA设备等终端设计。
OLED显示子系统主要依赖PC上位机端、设备端微处理器、Flash单元、RAM单元与ET52141模块的精确配合实现设计功能。在对位图文件与影音文件格式充分认识的基础上,整个设计流程需要合理配置各种硬件资源,协调时序,从而实现静态图像的显示和系统菜单的制作,并完成动画影像的连续播放。
1.5 PC机与嵌入式微控制器的USB通信
本USB通信子系统的设计目标是通过USB接口、利用USB协议实现与PC机及USB设备的数据交互和数据传输。例如,利用此接口下载图片或音频信息、影音资料,读取Flash单元中的信息并上传。USB设备端的固件配合上位机程序,协调USB的数据传输。
2 系统软件设计
基于ET系列芯片的嵌入式多媒体导游系统软件由上位机程序和下位机程序组成。上位机程序主要采用Bodand C++Builder 6编写,下位机(嵌入式微控制器MCU)控制程序采用忙编语言编写。上位机与下位机软件的整体架构如图2所示。
2.1上位机程序
PC端的上位机程序包括三部分:USB通信应用部分、影音资料处理部分、USB驱动部分。前两项采用Borland C++Builder 6编写。
USB通信应用部分位于PC端uSB驱动部分的上层,严格按照USB通信的四种模式(Control、Interrupt、Bulk、Insochronous)配合下位机完成USB的通信与双向数据传输。
其中,用户界面的按键多用于驱动中断(Interrapt)模式的USB设备响应,配合下位机的多个中断地址和向量,改变USB设备状态,完成控制指令的发送。而巨量(Bulk)模式专用于大量资料的连续传送,以64B为一帧,传输时间间隔小于1ms。
在本部分程序中,需要定义USB设备的GUID,借此通过USB驱动程序与USB设备连通,且需要利用Windows的API函数取得USB设备的Handle。本部分软件实现巨量传输的多个循环,上位机配合下位机输入输出FIFO与RAM中的缓冲区响应完成上传或下传运作,达到PC机存储资源与下位机Flash存储资源共享的目的。
影音资料处理部分针对PC中存储的影音资源按照设备端用户使用目的进行裁减转换,成为下位机ET83X431模块与ET52141模块可直接读取并播放的影音文件,从而达到以影视资料或景点介绍辅助导游的最终目的。例如,针对avi格式的影音资料,本部分软件将其解码并采样为位图信息与声音资料,并按照下位机固件的具体需要进行编码并完成文件整合与转化。生成的影音文件可被USB通信部分巨量传输给下位机Flash单元保存并由各模块配合播放。
2.2 嵌入式微控制器MCU程序
ETUSBICE是8位处理器ET44M210的专用ICE集成开发环境(IDE),拥有编辑器、工程窗体、汇编编译器、调试器等。嵌入式微控制器的固件程序就是通过此IDE编辑完成写入的。此嵌入式微控制器MCU程序大体分为三部分:系统运行部分、多媒体模块功能函数、USB通信服务部分。三部分程序的结构关系如图3所示。
系统运行部分是整个系统独立运行的主程序。从系统上电到系统关机,程序都在此部分的软件流程中运行。此部分软件整合了系统各个模块的贤源,协调各个硬件模块,监控其他软件模块,对各寄存器、RAM资源、Flash资源合理分配,分时合理分配,I/O资源,即时接收键盘输入指令与USB输入命令,按当前任务要求实时访问各子系统模块,精确各流程环节并保持显示菜单,协调各资源以维持巨量传输通信。在系统运行中,如果得到键盘指令需要运作音频子系统或0LED显示子系统,可调用多媒体模块功能函数中的各个单元函数,完成键盘响应,产生多媒体效果,且最终使流程返回主程序。系统运行部分的程序如图4所示。
USB通信服务部分程序通过协议直接响应上位机的USB通信应用部分的程序,作为后者的控制命令在设备端功能的体现。这部分程序的运行通常存在于软件流程的后台,是系统运行部分的有力补充。
本部分程序包括USB程序库与宏集合,作为设备端USB控制的主体响应上位机的控制(Contr01)信息。并被固件中的上层函数调用,完成诸如设备端USB初始化、SOF计数器等底层设置和操作。在响应上位机指令时,如需要运行音频子系统或0LED显示子系统,宏集合中的函数即可调用多媒体模块功能函数中的各个单元函数,完成对上位机命令的响应,产生多媒体效果。
多媒体模块功能函数是以特定多媒体功能的实现为目的,基于音频处理子系统、OLED显示子系统、RAM单元、Flash单元等硬件资源的特点编写的应用函数模块集合。此集合的编写源于对各个硬件模块特性的深入了解,对硬件资源的充分利用和挖掘,对时序的严格控制,精确软件流程,合理分配存储资源,协调MCU处理能力,从而完成音频播放、静态图片显示、影像播放、音频录制等多媒体要求各自对应的函数集合。各函数集合包括方便的应用程序接口,为调用此函数的主程序提供便利。
基于ET系列芯片的嵌入式多媒体导游系统,采用性能完善、价位合理的硬件模块,人机界面良好,运行效果优秀,性能价格比高。作为一种新型消费类电子的解决方案,立意独特,应用前景看好。