跟着旅行业的进一步开展,信息技能的前进,极大的改进和丰厚了人们的日常日子。以休闲、观赏为主的旅行业和以科技信息和人文信息吸收为主的展览馆、博物馆、文化教育成列馆、产品交易会越来越遭到人们的重视。观赏、旅行服务的电子化、智能化、可视化是全方位进步服务层次和水平的开展方向。 传统的人工说明方法不光需求很多人力和物力,还不能确保说明质量,特别是人数较多、多个说明员一起说明时,观赏者大多听不到或听不清楚说明内容。依据传统说明方法存在的缺乏和旅行商场对电子导游产品的火急需求,本文提出一种依据嵌入式的智能无线多媒体数字播映体系的规划方案,并经过软硬件单元规划,完结体系样机研发。本文介绍一种智能无线多媒体播映体系,该产品将嵌入式运用技能运用于电子多媒体导游产品开发,完结了视频受控播映,弥补了以往单一语音说明的缺乏,也有重要的商场推广价值。
1、 体系组成
一种能够主动接纳并辨认无线地址码的嵌入式智能无线多媒体播映体系结构如图1所示,该体系由手持智能无线多媒体终端和地址码无线发射机构成。
地址码无线发射机安装在各个景点或展台处,周期性地向外发射本身地址码,不同的景点/展台具有不同的地址码,同一景点/展台能够设置一个或多个相同地址码的发射机,尽量让所发射的信号掩盖整个景点/展台,一起经过发射功率操控技能防止相邻景点/展台之间发生穿插搅扰。跟着用户的移动,所带着的手持智能无线多媒体终端在走近某景点/展台时会主动接纳到对应该景点/展台的地址码,经过对该地址码的解析,接纳终端调用并切换到该地址码对应的、预存在SD存储卡中的音视频文件进行播映,用户可经过LCD液晶接触显示屏观看播映内容,也能够停止主动播映,手动挑选其他的音视频文件进行播映。
2 、体系规划
2.1 体系规划目标
规划目标为:各景点/展台的掩盖规模5 m~25 m可调;各景点/展台之间互不搅扰;景点辨认编码发射选用ISM频段;信号发射功率在答应规模之内可调;能在温度湿度相对恶劣的环境下作业;运用智能化操作体系,可随时更新运用程序;主动完结不同景点/展台的音视频内容切换;具有图形用户界面,用户可经过接触屏手动挑选音视频文件和语种;可寄存音视频文件,巨细及数量依据SD存储卡容量决议,可现场下载更新;支撑音频MP3和MPEG1-4视频文件播映;发射主机契合国家相关规范。
为了满意规划技能目标要求,对构成体系的首要器材挑选如下:(1)地址码无线发射机的主控芯片选用TI公司的MSP430F133;(2)手持智能无线多媒体终端的主控芯片选用三星公司的S3C2440A,该芯片典型主频为400 MHz,集成了NAND Flash操控器、SD/MMC操控器、LCD操控器、SPI接口操控器等;(3)无线收发模块选用CYWUSB6934;(4)Flash存储器选用三星公司的K9F1208UOB;(5)SDRAM选用Hynix公司的HY57561620T;(6)显示屏选用NEC 3.5′ TFT接触屏;(7)音频解码芯片选用UDA1341TS。
嵌入式操作体系构成如下:(1)Bootloader运用三星公司专为其产品开发的发动代码VIVI;(2)内核选用Linux2.6.13版[3];(3)文件体系挑选与NAND Flash兼容较好的YAFFS文件体系[4-6];(4)图形用户界面选用QTOPIA1.7[7]。
2.2 ARM9嵌入式微处理器S3C2440A
当时,嵌入式技能的运用越来越广泛,从航天科技到民用产品,嵌入式产品的身影无处不在,而这些嵌入式产品的中心——处理器决议了产品的商场和功用。在32位嵌入式处理器商场中,ARM处理器占有很大的比例。现在因为存储空间等原因,在嵌入式芯片上编程有较大的困难,选取适宜的渠道就显得很重要。Linux自呈现以来,得到了迅猛的开展。Linux是开放源码的操作体系,吸引着全世界的程序员参加到开展和完善的作业中来,所以Linux坚持了安稳并且杰出的功用。Linux在服务器范畴现已占有很大的比例,在图形界面方面也不输于Windows。因为源码能够修正、移植,Linux在嵌入式范畴中的运用也越来越广。
S3C2440A是三星公司依据ARM920T规划的一款处理器,主频400 MHz;扩展总线最大频率100 MHz;32 bit数据,27 bit外部数据线;彻底静态规划(0~400 MHz);存储操控器(8个存储体),4个带有PWM的16 bit守时器;多达55个中止源的中止操控器;RTC;3个UART,支撑IrDA 1.0;4个DMA通道支撑外设DMA;8通道,500 kS/s,10 bit ADC;支撑STN与TFT LCD操控器;看门狗;I2S音频接口;2个USB接口;I2C-Bus接口;2个串行外围接口电路(SPI);SD卡接口。挑选ARM9芯片能够运用Linux操作体系来削减软件开发时刻,并且S3C2440A对干流多媒体支撑较好,很合适用于开发智能多媒体体系。
2.3 CYWUSB6934无线收发模块
无线收发模块选用Cypress公司的CYWUSB6934。该芯片既可用作发射,也可用作接纳,作业在2.4 GHz ISM 频段,频率规模为2.4 GHz~2.483 GHz。具有低功耗、低辐射的特色(辐射功率最大为0 dBm),且发射功率可调(共7个等级);无线接纳灵敏度高,可达-90 dBm;通讯半径可达10 m(当输出最大功率且无障碍物阻挠时的直线通讯间隔可达15 m左右)。因为其近间隔、低功耗等特色,十分适用于短间隔无线传输。
2.4 地址码无线发射机
地址码无线发射机是以单片机为中心构成的操控体系,首要包含电源模块、无线发射模块和发射功率调整拨动开关,单片机与无线发射模块的接口为SPI口。
2.5 手持智能无线多媒体终端
每个景点/展台的音视频内容都以特定格局存储在SD存储卡中,每一个文件以规则方法命名,且对应于一个地址码。
手持智能无线多媒体终端开机完结硬件初始化、Linux操作体系的发动、文件体系的挂载和图形用户界面的发动后,由用户点击图形桌面上的智能点播体系程序图标运转点播程序。体系查询到这个信息后,当即读取CYWUSB6934的数据寄存器以取得地址码。体系会将接纳到的地址码与前一数据进行比照,若相同则持续播映,若不同则主动切换到对应该地址码的文件进行播映。
3、 智能无线点播的完结
微处理器S3C2440A和无线芯片CYWUSB6934之间经过SPI接口进行通讯,在Linux体系中两者之间的通讯就必须经过SPI驱动程序来完结。而智能点播则是在用户发动Linux体系中的点播程序时,体系辨认接纳到的数据后,主动调用音视频文件进行播映。
3.1 SPI驱动
在Linux操作体系中,一切外围设备的操控都是经过驱动程序完结的,设备驱动程序是操作体系内核与机器硬件之间的接口。
SPI,是英语Serial Peripheral interface的缩写,望文生义便是串行外围设备接口。是Motorola首要在其MC68HCXX系列处理器上界说的。SPI接口首要运用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通讯总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,一起为PCB的布局上节约空间,供给方便,正是出于这种简略易用的特性,现在越来越多的芯片集成了这种通讯协议。手持智能无线多媒体终端需求经过SPI接口操控无线收发芯片,这就需运用SPI接口驱动程序来树立无线收发芯片与内核之间的通讯桥梁。SPI接口以主从方法进行作业,其接口包含4种信号:(1)MOSI:主器材数据输出,从器材数据输入;(2)MISO:主器材数据输入,从器材数据输出;(3)SCLK:时钟信号,由主器材发生;(4)/SS:从器材使能信号,由主器材操控。
图2为S3C2440A与CYWUSB6934之间SPI接口的衔接图。图中nSS操控CYWUSB6934作为从器材,SPIMOSI和SPIMISO是它们之间的数据传输通道,SPICLK为时钟信号。当SPI作为主操控器时,由SPPRE寄存器中相应的比特位操控。而当SPI为从设备时,时钟信号则是由其他设备供给。某些情况下,在将数据写入SPTDAT寄存器之前,nSS应该被置为高电平。在本体系中首要用到的S3C2440A内部与SPI相关的寄存器如下:
(1)SPCON寄存器:首要用于设置时钟敞开、SPI传输格局、SPI传输方法。其间传输方法有3种,分别是polling方法、DMA方法、中止方法。
(2)SPSTA寄存器:SPI接口的状况寄存器,用于指示数据接纳或发送是否现已完结。
(3)SPPIN寄存器:用于检测是否有多个主机。
(4)SPPRE寄存器:用于设置SPI传输时钟频率。其值经过如下计算式确认:
Baud rate=PCLK/2/(Prescaler value+1)
其间Prescaler value的初始值为0x00。
(5)SPTDAT和SPRDAT寄存器:发射和接纳数据寄存器。
在Linux体系发动时,要对以上寄存器进行赋值,就必须经过SPI驱动程序。而驱动程序便是作为体系和外部设备的一个桥梁,在这儿只要将SPI通道正确翻开,体系才能够经过这个桥梁对外部无线芯片的根本作业寄存器进行操作,完结数据的收发。
Linux中的I/O子体系向内核中的其他部分供给了一个一致的规范设备接口,这是经过include/linux/fs.h中的数据结构file_operaTIons完结的。图3所示为本体系中SPI驱动设备描述符函数组成框图。
图3中驱动程序的struct file_operaTIons( )只运用了体系供给的4个子函数接口:open( )、write( )、ioctl( )和release( )。其间open( )用于完结SPI设备的翻开、初始化相关寄存器、预备进行设备I/O操作;write( )完结经过SPI接口进行写操作;ioctl( )是进行读写以外的其他操作,经过对I/O口凹凸电平的改动完结不同功用;release( )用于封闭设备,开释占用内存[12]。
S3C2440A SPI的传输方法是由SPI操控寄存器SPCON中的1 bit位和2 bit位的值一起决议的。1 bit位是CPHA(Clock Phrase Select),它用来挑选传输格局为Format A或Format B,置0为Format A,置1为Format B;2 bit位是CPOL(Clock Polarity),它决议时钟信号是高电平触发仍是低电平触发,置0为acTIve high,置1为acTIve low。由图3能够看出,CYWUSB6934的SPI单字节读出时钟是高电平触发的,又如虚线箭头处时钟信号的上升沿正与图4中SPI时钟相吻合,而在图4中cmd的2 bit位是传输字节中的最高2位,再依据图5中 MOSI的MSB就应该是传输字节的最高2位,为00,所以挑选方法为Format A高电平触发。
在确认了它们之间的传输格局以及触发方法后, SPI驱动的完结便是对这些寄存器进行正确的赋值。无线收发芯片CYWUSB6934经过SPI接口与ARM9主控芯片进行通讯,需求对各个寄存器进行设置。依据体系要求,运用SPI1口完结SPI通讯,其详细的编程完结如下:
(1)在open( )函数中,对SPI接口进行初始化,设置端口运用状况,设置SPI传输时钟和传输方法。其代码如下:
在对S3C2440A中的SPI相关寄存器进行初始化时,需求留意SPI的时钟是与主时钟相关联的,假如不首要敞开主时钟,即便将SPI本身作业时钟敞开也不能使接口正常作业。
(2)经过写函数write( )完结对无线收发芯片CYWUSB6934的数据及地址寄存器的操作。其代码如下:
static ssize_t spi_write(struct file*filp,const char*buf,size_t
count,loff_t*f_ops)
{
unsigned int tmp=0;
get_user(tmp,(char*)buf);/*获取CYWUSB6934中寄存器地址*/
while((readl(SPSTA1) & 0x1)==0);
writel(tmp,SPTDAT1);/*向寄存器中写预置数据*/
while((readl(SPSTA1) & 0x1)==0);
tmp=readl(SPRDAT1);/*再次从读出的数据才是有用数据*/
put_user(tmp,(char*)buf);
return 0;
}
(3)驱动中的ioctl( )函数经过改动I/O输出电平的凹凸操控CYWUSB6934的PD(Power Down)口。该端口电平为低时能够使无线芯片作业在休眠状况,以到达省电的意图。其代码如下:
3.2 智能点播界面
当手持智能无线多媒体终端接纳到由地址码无线发射机宣布的地址码时,将其存储在数据寄存器中,主控芯片经过SPI接口读取该地址码信息,并以此为指针查找对应的、预存在SD存储卡中的音视频文件,并按需调用终端中的音视频播映器解码播映。
软件界面有2个按钮,左面是主动播映按钮,右边是手动播映按钮。在用户发动点播软件时,终端处于主动播映状况,而主动播映按钮是当用户进行手动播映后,如需求再让其进行主动播映时运用此按钮。当用户点下手动播映按钮时,会当即停止主动播映,弹出文件挑选菜单,手动挑选需求播映的文件。
智能点播软件需求处理的是底层数据和上层运用程序的衔接问题。而对地址码的判别是对底层进行操作,需调用C程序,则用户界面程序运用一个自界说的data外部变量,作为上层界面程序与底层运用程序的桥梁。为了使程序能精确地调用播映器,这儿还设立了一个音讯机制,守时查询CYWUSB6934的数据寄存器。一旦收到数据,就改动音讯参数,上层界面程序查询到这个参数改动后,便当即调用播映器。
本文规划的依据嵌入式的无线智能多媒体数字播映体系将嵌入式运用技能与短间隔无线通讯技能相结合,构成一套既具有工程实用价值,又可按需扩展功用的体系,完结了智能化的区域辨认与音视频播映,适用于各种景点及展台的音视频主动/手动受控播映,有很好的商场前景,能给厂商带来很大的赢利。
责任编辑:gt