基于ARMCortex_M3的嵌入式网络播放系统

  • 格式:pdf
  • 大小:352.80 KB
  • 文档页数:3

收稿日期:2009-07-21稿件编号:200907070基金项目:广东省教育部产学研结合项目(2008B090500230)作者简介:王坤(1984—),男,湖北黄冈人,硕士研究生。研究方向:雷达信号处理。随着网络应用的普及,为普通嵌入式系统增加网络功能,能更好满足消费者对网络资源的需求。这里采用基于ARMCortex-M3的微控制器LM3S1138实现一种具备网络功能的播放终端系统,该系统不仅具有良好的播放效果,还可从网络音乐服务器上点播音乐并实时播放。1网络播放系统的设计方案该网络播放系统由服务器﹑用户终端和音响设备组成。其中,服务器通过以太网提供音乐资源,用户终端通过网络下载音频数据再实现音频解码,音响设备实现音乐播放。图1给出该系统设计框图。

该系统设计采用基于ARMCortex-M3的控制器LM3S1138作为主控制器。该控制器改进了代码密度,减少中断延时,实现Thumb-2指令集,并具有更低功耗,适用于嵌入式微处理器[1];网络模块采用以太网控制器ENC60J28;音频编解码器采用VS1003,该器件拥有自主产权的DSP处理器核,具有高性能﹑低功耗等特性;并采用USB总线接口器件CH375扩展存储模块,支持海量存储。将嵌入式实时操作系统μC/OS-II移植到主处理器上,实现多任务的调度管理[2]。系统工作时,通过操作播放器上的配置按钮,设置服务器和用户终端的相关网络配置,点击播放器中的连接按钮,发送连接服务器请求,服务器收到用户终端的连接请求,验证终端帐号正确后开始网络连接,向用户传送点播的资源列表,用户终端在播放器界面显示列表,此时,用户可以选择点播的歌曲,然后将音乐文件下载到存储设备中,下载完毕后,服务器关闭网络连接,播放器就可播放已下载歌曲。2系统硬件模块设计[3-5]2.1以太网接口ENC28J60是独立的以太网控制器,采用业界标准的SPI串行接口,具有10Mb/sSPI接口,符合IEEE802.3协议,内置10Mb/s以太网物理层器件(PHY)及介质访问控制器(MAC)。另外,它还具有可编程8KB双端口SRAM缓冲器,此缓冲存基于ARMCortex-M3的嵌入式网络播放系统王坤,皮亦鸣(电子科技大学电子工程学院,四川成都610054)摘要:针对一般嵌入式播放系统无网络功能,提出一种网络播放系统硬件平台设计方案。该方案采用ARMCortex-M3构架的LM3S1138作为主控制器,以USB控制器CH375﹑网络器件ENC28J60和音频解码器VS1003作为外围器件,采用μC/OS作为操作系统。并给出系统软件的设计方法,包括设备驱动程序设计和应用程序设计。通过测试,该系统能流畅下载和播放网络歌曲,并能广泛应用于家电产品、车载电子产品和公共广播场所。关键词:嵌入式系统;ARMCortex-M3;以太网接口;API;应用程序中图分类号:TP393文献标识码:A文章编号:1674-6236(2010)01-0071-03EmbeddednetworkdisplaysystembasedonARMCortex-M3WANGKun,PIYi-ming(DepartmentofElectronicEngineering,UESTofChina,Chengdu610054,China)Abstract:Aimingatthecommonembeddedmultimediasystemwithoutnetworkfunction,anembeddedhardwareplatformprogramforthenetworkdisplaysystemispresented.ThissystemdesignusesLM3S1138withARMCortex-M3asthemaincontroller,usesUSBcontrollerCH375,EthernetcontrollerENC28J60andaudio-decoderVS1003astheperipherychips,andusesμC/OSasoperationsystem.Themethodofthesystemsoftwaredesignisgiven,includingthedevicediverdesignandapplicationprogramdesign.Inthetest,thissystemdesigndownloadsandplaysthemusiconthenetfluently,itiswidelyusedinhouseelectricalappliances,carelectronicsproductsandpublicbroadcasting.Keywords:embeddedsystem;ARMCortex-M3;Ethernetinterface;API;applicationprogram

图1网络播放系统设计框图2010年1月Jan.2010第18卷第1期Vol.18No.1电子设计工程ElectronicDesignEngineering

-71-储器具有灵活可靠的数据管理机制,以高效方式进行信息包的存储、检索和修改,以减轻主控器件的内存负荷。图2为网络接口硬件连接示意图。ENC28J60通过SPI总线实现与LM3S1138的数据传输,CS为片选信号,SCLK为时钟信号,MOSI/MISO为数据传输串口。此外,ENC28J60还与网络变压器HR901170A相连,引出RJ45接口。

2.2音频接口VS1003音频编解码器为VS10XX系列第3代产品,包括MP3/WMA/MIDI解码和ADPCM编码2个单器件。其内置有高性能﹑低功耗的DSP处理核(VSDSP),工作内存,可供用户程序使用的5.5KBRAM,串行SPI总线接口,高质量的采样频率可调的过采样D/A转换器以及16位的过采样A/D转换器。图3为音频编解码器模块硬件连接示意图,VS1003采用SPI总线与LM3S1138实现通信。其中,SCLK为输入时钟,CS为片选信号,MOSI/MISO为数据串口,Demand为命令有效信号,VS1003外接音频输出设备[4]。

2.3USB控制接口CH375是一款支持USB-HOST主机方式和USB-DE-VICE/SLAVE从设备方式的器件,主机端点输入和输出缓冲区各64字节,支持常用的12Mb/s全速USB设备,支持USB设备的控制传输﹑批量传输﹑中断传输。内置固件处理海量存储设备的专用通讯协议,支持Bulk-Only传输协议和SCSI,UFI,RBC或等效命令集的USB存储设备。图4为USB控制接口模块硬件连接示意图,CH375通过UART串口与LM3S1138传输数据,INT为中断信号,TXD/RXD为数据传输串口,CH375连接USB存储设备。

3系统软件设计μC/OS-II是专门为嵌入式应用设计的实时操作系统内核,其具有以下优点:源代码公开,代码结构清晰,注释详尽,组织有条理,具有良好的可扩展性和可移植性,最多可以管理60个任务。该系统移植的μC/OS-II由用户层﹑中间件层﹑μC/OS-II源码层﹑μC/OS-II移植层和驱动库组成。用户层存放用户代码及设置,其中Main.c是用户编写任务处,Main.h定义堆栈大小及优先级;中间件层Middleware存放UART﹑SPI等串口通信中间件和TCP/IP协议栈LwIP;μC/OS-II源码层Source存放μC/OS-II的源代码;μC/OS-II移植层Port存放μC/OS-II基于LM3S的移植代码,包括OS_CPU_C.C,OS_CPU_A.A,OS_CPU.C等3个必要文件;驱动库层是直接面向硬件设备层,它是硬件设备和应用程序之间的枢纽,直接与系统底层的硬件设备打交道,按照硬件设备的具体工作方式读写设备寄存器,将寄存器的数据与应用软件交互,ENC28J60﹑VS1003和CH375的驱动函数都在该层。3.1网络驱动程序本系统采用ENC28J60以太网控制器,需编写网络设备驱动程序,实现低层网络接口及硬件函数驱动。该驱动程序设计主要包含网卡的初始化和数据的发送接收[5]。网卡初始化的驱动程序包括定义发送缓冲区大小﹑发送缓冲区数﹑ENC28J60的片选信号﹑ENC28J60的复位引脚以及网卡自检。具体程序代码如下[6]:#defineMAC_TX_BUFFER_SIZE(600)//定义发送缓冲区大小#defineMAC_TX_BUFFER_COUNT(1)//定义发送缓冲区数#defineLM1138_CS_ENC28J60GPIO_PIN_3//ENC28J60的片选信号PA.3#defineLM1138_RESET_ENC28J60GPIO_PIN_1//ENC28J60的复位引脚VoidENC28J60_PowerOn_Init(void)//ENC28J60上电初始化函数网卡数据传输的驱动程序包括申请IP地址,建立与服务器的连接,以及数据的接收和发送等,图5为其程序流程。

3.2文件系统文件系统是一种以结构化格式存储和信息检索的实现方法,可使用户方便快捷的管理存储数据。文件系统一般包图2网络接口硬件连接

图3音频编解码模块硬件连接

图4USB控制接口模块硬件连接图5网卡数据传输流程《电子设计工程》2010年第1期

-72-括FAT32/16,NTFS,ext2/3,NFS等,本设计采用FAT16,可支持2GB的最大分区,用于管理U盘中的音频文件,该文件系统的实现主要针对USB接口器件CH375进行驱动开发。在CH375驱动设计中,先实现FAT32/16文件系统层,再实现文件级API应用层。文件系统层采用CH375开发商提供的U盘文件级子程序库来实现,CH375的U盘文件级子程序库具有以下特性:支持常用的FAT16和FAT32文件系统,磁盘容量可达100GB以上,支持多级子目录,支持8.3格式的大写字母和中文文件名,支持小写字母或长文件名,支持文件打开、删除、读写以及搜索等。文件系统移植好后,再进行API应用层驱动设计。应用层驱动包括CH375引脚配置、文件读写缓冲区配置、CH375读写程序的设计。在读写程序的设计中,要注意对CH375的延时操作,满足CH375的时序要求。3.3音频驱动程序音频驱动的设计主要是针对VS1003的初始化设置和实现音频数据流的传输,并对应用层提供API接口,这里完成了音频播放功能程序的设计。在该程序设计中,首先对LM1138和VS1003控制接口的(MISO﹑MOSI﹑SCK﹑CS﹑Demand)引脚进行相应配置,VS1003初始化配置完成后,开始等待系统的播放标志置位,播放标志为“0”时,重新初始化VS1003,播放标志为“1”时,接收到系统的播放消息,使能SPI接口,选择将要播放的数据包,把音频数据写入SPI的缓冲存储区,然后再发送给VS1003的数据寄存器,当音频数据发送完成后,开始由VS1003处理这些音频数据,实现模拟音频数据的输出,该函数能够流畅地完成音频播放功能[4]。3.4用户应用程序系统的应用程序主流程如图6所示。

系统主任务启动后,先初始化人机界面库函数,它提供了操作界面的按键中断处理函数以及LCD的显示函数;再读取初始系统配置数据,如本地IP、服务器IP、用户账号、密码等,完成网络、音频编解码以及存储等模块的初始化;然后,主任务再创建多个子任务,包括ENC28J60task,CH375task,VS1003task,humaninterfacetask,接着进入消息循环,消息循环是整个应用程序的核心部分,通过消息循环,系统不断获取用户操作消息,并做出相应处理,实现系统功能;当收到一个退出消息时,系统强制主任务跳出消息循环,关闭播放器操作界面,系统退出应用程序[2]。4系统测试及分析系统调试成功后,可流畅地从服务器中下载音频数据,保存到外接USB设备中,然后再通过音频解码从音响播放出来。图7为该系统主界面,系统音质良好,达到设计要求。