采用S3C2440A和CYWUSB6934芯片实现无线点播系统的设计

发布时间:2023-01-13  

随着旅游业的进一步发展,信息技术的进步,极大的改善和丰富了人们的日常生活。以休闲、观光为主的旅游业和以科技信息和人文信息吸收为主的展览馆、博物馆、文化教育成列馆、产品交易会越来越受到人们的关注。参观、旅游服务的电子化、智能化、可视化是全方位提高服务档次和水平的发展方向。 传统的人工解说方式不但需要大量人力和物力,还不能保证解说质量,特别是人数较多、多个解说员同时讲解时,参观者大多听不到或听不清楚解说内容。基于传统解说方式存在的不足和旅游市场对电子导游产品的迫切需求,本文提出一种基于嵌入式的智能无线多媒体数字播放系统的设计方案,并通过软硬件单元设计,完成系统样机研制。本文介绍一种智能无线多媒体播放系统,该产品将嵌入式应用技术应用于电子多媒体导游产品开发,实现了视频受控播放,弥补了以往单一语音解说的不足,也有重要的市场推广价值。


1、 系统组成

一种能够自动接收并识别无线地址码的嵌入式智能无线多媒体播放系统结构如图1所示,该系统由手持智能无线多媒体终端和地址码无线发射机构成。

采用S3C2440A和CYWUSB6934芯片实现无线点播系统的设计

地址码无线发射机安装在各个景点或展台处,周期性地向外发射自身地址码,不同的景点/展台具有不同的地址码,同一景点/展台可以设置一个或多个相同地址码的发射机,尽量让所发射的信号覆盖整个景点/展台,同时通过发射功率控制技术避免相邻景点/展台之间产生交叉干扰。随着用户的移动,所携带的手持智能无线多媒体终端在走近某景点/展台时会自动接收到对应该景点/展台的地址码,通过对该地址码的解析,接收终端调用并切换到该地址码对应的、预存在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相关的寄存器如下:

采用S3C2440A和CYWUSB6934芯片实现无线点播系统的设计

(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通道正确打开,系统才能够通过这个桥梁对外部无线芯片的基本工作寄存器进行操作,完成数据的收发。


采用S3C2440A和CYWUSB6934芯片实现无线点播系统的设计

图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高电平触发。

采用S3C2440A和CYWUSB6934芯片实现无线点播系统的设计

采用S3C2440A和CYWUSB6934芯片实现无线点播系统的设计

在确定了它们之间的传输格式以及触发方式后, 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的数据寄存器。一旦收到数据,就改变消息参数,上层界面程序查询到这个参数改变后,便立即调用播放器。


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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    USB数字音频解码768KHZ DSD512 CT7601;USB数字音频芯片支持最高可达768Khz/DS512,低功耗高性能,兼容性好,Hi-res高清音频解码。 CT7601 USB数字音频芯片......
    1.8 A) 旨在通过高度集成的SoC设计降低eBOM 2.CT7601 USB数字音频芯片 USB数字音频芯片支持最高可达768Khz/DS512,低功耗高性能,兼容性好,Hi-res高清音频......
    基于JIN AUDIO(菁音)专业音频芯片的无线衣领麦克风解决方案;菁音电子科技(上海)有限公司是专注于音频芯片的集成电路设计公司,于2015年成立,系中国最大的电子乐器制造商——得理集团投资,其前......
    基于DP108T高集成度的USB/YTPE-C音频芯片;DP108T是一种高集成度的USB/YTPE-C音频芯片。嵌入了所有必要的模拟模块,包括双DAC 和音频驱动、麦克风增益器 、PLL、稳压......
    CS201 Type-C拓展坞音频芯片|CS201 USB音频设计方案|CS201设计资料;CS201是一款USB 声卡芯片,主要用于USB 耳机、USB麦克风、USB 音响、USBType-C拓展......
    响设计的产品的尺寸大小,且SSS1700是无电容的USB声卡芯片芯片内置晶振,真正的无晶振USB音频芯片USB耳机芯片。 SSS1700设计USB耳机、USB麦克风、USB喇叭、USB音响等USB音频解码方案,是免......
    炬芯科技量产全新第二代低延迟无线收发音频芯片ATS3031; 【导读】炬芯科技宣布全新第二代2.4G/BT低延迟无线收发音频SoC芯片ATS3031发布量产,终端......
    基于音频芯片WT2605的录音笔方案;概述 概述:本文主要介绍一款新型的音频芯片WT2605在录音产品中的应用与实现,主要依靠音频芯片通过ADC采集数据,将数据编码为音频流数据存储在本地,也可......
    AKM推出高性能音频芯片AK4493S/AK4490R;旭化成微电子株式会社(AKM)通过运用新的高音质技术,将此前已被多种家用高端音频设备和便携式音频设备所采用的DAC产品「AK4490」及更......
    。 资料显示,昆腾微的主营业务包括模拟集成电路的研发、设计和销售,主要产品包括音频SoC芯片和信号链芯片,其中音频SoC芯片主要包括无线音频传输芯片、FM/AM收发芯片USB音频芯片等,应用......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>