基于ARM Cortex-M3的嵌入式网络播放系统
时间:11-05
来源:互联网
点击:
3.2文件系统
文件系统是一种以结构化格式存储和信息检索的实现方法,可使用户方便快捷的管理存储数据。文件系统一般包括 FAT32/16,NTFS,ext2/3,NFS等,本设计采用FATl6,可支持2 GB的最大分区,用于管理U盘中的音频文件,该文件系统的实现主要针对USB接口器件CH375进行驱动开发。
在CH375驱动设计中,先实现FAT32/16文件系统层,再实现文件级API应用层。文件系统层采用CH375开发商提供的U盘文件级子程序库来实现,CH375的 U盘文件级子程序库具有以下特性;支持常用的FAT16和FAT32文件系统,磁盘容量可达100 GB以上,支持多级子目录。支持8.3格式的大写字母和中文文件名,支持小写字母或长文件名,支持文件打开、删除、读写以及搜索等。文件系统移植好后,再进行API应用层驱动设计。应用层驱动包括CH375引脚配置、文件读写缓冲区配置、CH375读写程序的设计。在读写程序的设计中,要注意对CH375的延时操作,满足CH375的时序要求。
3.3音频驱动程序
音频驱动的设计主要是针对VSl003的初始化设置和实现音频数据流的传输,并对应用层提供API接口,这里完成了音频播放功能程序的设计。
在该程序设计中,首先对LMll38和VSl003控制接口的(MISO、MOSI、SCK、CS、Demand)引脚进行相应配置,VSl003初始化配置完成后,开始等待系统的播放标志置位,播放标志为“0”时,重新初始化VSl003,播放标志为“l”时,接收到系统的播放消息,使能SPI接口,选择将要播放的数据包,把音频数据写入SPI的缓冲存储区,然后再发送给VSl003的数据寄存器,当音频数据发送完成后,开始由 VSl003处理这些音频数据,实现模拟音频数据的输出。该函数能够流畅地完成音频播放功能。
3.4用户应用程序
系统的应用程序主流程如图6所示。
系统主任务启动后,先初始化人机界面库函数,它提供了操作界面的按键中断处理函数以及LCD的显示函数;再读取初始系统配置数据,如本地IP、服务器IP、用户账号、密码等,完成网络、音频编解码以及存储等模块的初始化;然后,主任务再创建多个子任务,包括ENC28-J60task,CH375task,VSl003task,humaninteRFacetask,接着进入消息循环,消息循环是整个应用程序的核心部分,通过消息循环,系统不断获取用户操作消息,并做出相应处理,实现系统功能;当收到一个退出消息时,系统强制主任务跳出消息循环,关闭播放器操作界面,系统退出应用程序。
4 系统测试及分析
系统调试成功后,可流畅地从服务器中下载音频数据,保存到外接USB设备中,然后再通过音频解码从音响播放出来。图7为该系统主界面,系统音质良好,达到设计要求。
5 结束语
本系统设计采用基于ARM Cortex-M3的嵌入式器件LM3S1138作为主控制器件,采用ENC28J60作为网络接口器件,在μC/OS-II平台上构建一个实时的网络播放系统。该系统能够实现网络点播功能。如将ENC28J60更成为具有USB接口的无线网卡,则该系统还具有无线网络功能。而随着以太网技术的深入发展,将嵌入式系统与网络结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向,且对于一些基于网络接口的嵌入式系统都将具有广泛的应用前景。
文件系统是一种以结构化格式存储和信息检索的实现方法,可使用户方便快捷的管理存储数据。文件系统一般包括 FAT32/16,NTFS,ext2/3,NFS等,本设计采用FATl6,可支持2 GB的最大分区,用于管理U盘中的音频文件,该文件系统的实现主要针对USB接口器件CH375进行驱动开发。
在CH375驱动设计中,先实现FAT32/16文件系统层,再实现文件级API应用层。文件系统层采用CH375开发商提供的U盘文件级子程序库来实现,CH375的 U盘文件级子程序库具有以下特性;支持常用的FAT16和FAT32文件系统,磁盘容量可达100 GB以上,支持多级子目录。支持8.3格式的大写字母和中文文件名,支持小写字母或长文件名,支持文件打开、删除、读写以及搜索等。文件系统移植好后,再进行API应用层驱动设计。应用层驱动包括CH375引脚配置、文件读写缓冲区配置、CH375读写程序的设计。在读写程序的设计中,要注意对CH375的延时操作,满足CH375的时序要求。
3.3音频驱动程序
音频驱动的设计主要是针对VSl003的初始化设置和实现音频数据流的传输,并对应用层提供API接口,这里完成了音频播放功能程序的设计。
在该程序设计中,首先对LMll38和VSl003控制接口的(MISO、MOSI、SCK、CS、Demand)引脚进行相应配置,VSl003初始化配置完成后,开始等待系统的播放标志置位,播放标志为“0”时,重新初始化VSl003,播放标志为“l”时,接收到系统的播放消息,使能SPI接口,选择将要播放的数据包,把音频数据写入SPI的缓冲存储区,然后再发送给VSl003的数据寄存器,当音频数据发送完成后,开始由 VSl003处理这些音频数据,实现模拟音频数据的输出。该函数能够流畅地完成音频播放功能。
3.4用户应用程序
系统的应用程序主流程如图6所示。
系统主任务启动后,先初始化人机界面库函数,它提供了操作界面的按键中断处理函数以及LCD的显示函数;再读取初始系统配置数据,如本地IP、服务器IP、用户账号、密码等,完成网络、音频编解码以及存储等模块的初始化;然后,主任务再创建多个子任务,包括ENC28-J60task,CH375task,VSl003task,humaninteRFacetask,接着进入消息循环,消息循环是整个应用程序的核心部分,通过消息循环,系统不断获取用户操作消息,并做出相应处理,实现系统功能;当收到一个退出消息时,系统强制主任务跳出消息循环,关闭播放器操作界面,系统退出应用程序。
4 系统测试及分析
系统调试成功后,可流畅地从服务器中下载音频数据,保存到外接USB设备中,然后再通过音频解码从音响播放出来。图7为该系统主界面,系统音质良好,达到设计要求。
5 结束语
本系统设计采用基于ARM Cortex-M3的嵌入式器件LM3S1138作为主控制器件,采用ENC28J60作为网络接口器件,在μC/OS-II平台上构建一个实时的网络播放系统。该系统能够实现网络点播功能。如将ENC28J60更成为具有USB接口的无线网卡,则该系统还具有无线网络功能。而随着以太网技术的深入发展,将嵌入式系统与网络结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向,且对于一些基于网络接口的嵌入式系统都将具有广泛的应用前景。
嵌入式 ARM Cortex 解码器 DSP USB 总线 变压器 LCD 相关文章:
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)