微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种智能无线多媒体数字播放系统的设计方案

一种智能无线多媒体数字播放系统的设计方案

时间:07-12 来源:互联网 点击:

制器;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完成的[11]。图3所示为本系统中SPI驱动设备描述符函数组成框图。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top