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

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

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

图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的数据寄存器。一旦收到数据,就改变消息参数,上层界面程序查询到这个参数改变后,便立即调用播放器。

本文设计的基于嵌入式的无线智能多媒体数字播放系统将嵌入式应用技术与短距离无线通信技术相结合,构成一套既具有工程实用价值,又可按需扩展功能的系统,实现了智能化的区域识别与音视频播放,适用于各种景点及展台的音视频自动/手动受控播放,有很好的市场前景,能给厂商带来很大的利润。

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

网站地图

Top