APP下载

U盘接口芯片CH378在音乐播放器设计中的应用

2016-01-19胡志强张宏赵瑞瑞王洪斌

哈尔滨理工大学学报 2015年5期
关键词:U盘

胡志强++张宏++赵瑞瑞++王洪斌

摘要:针对如何保证音频数据流畅的问题,在音乐播放器系统设计中使用了一种新型接口芯片CH378.系统主要由微处理器(MPU) STC12C5A60S2,音频文件存储器U盘、SD/TF卡,音频解码芯片VS1003等组成,在分析U盘接口芯片的基础上,采用新型接口芯片CH378实现对U盘,SD/TF卡直接管理,设计了CH378接口电路,介绍了CH378操作的主要过程,程序设计要点.CH378以其具有大的数据缓存RAM,可以与MPU并行接口,支持FAT文件操作等优点,使系统结构设计得到优化,操作方便,避免了音频播放中音频数据流堵塞现象,音乐播放流畅.

关键词:接口芯片CH378;U盘,SD/TF卡;音乐播放器

DOI:10.15938/j.jhust.2015.05.020

中图分类号:TN912.3

文献标志码:A

文章编号:1007-2683(2015)05-0103-05

0 引言

目前市场上很多种便携式的音乐播放器很受欢迎,但是受到存储容量的限制,因此出现了解码器与存储器分离的要求,以加大存储扩展,同时USB接口因其方便快捷的特点得到众多领域广泛的应用.音乐播放器也逐渐发展能够直接识别U盘,但是有的不能识别SD卡,或者在与SD卡连接时多通过串行输入(RXD)、串行输出(TXD)或者SPI等方式,这些方式增加了MPU的负担,操作也比较繁琐,本设计采用一种新型接口芯片CH378,实现MPU对U盘和SD卡的操作.与之前的CH375不同,CH378支持直接与SD/TF卡的连接,所以嵌入式系统的MPU可以通过CH378,将U盘(USB闪存盘、USB外置硬盘)和SD/TF卡作为可移动的大容量存储器,通过CH378操作命令,可以实现对U盘和SD/TF卡上的文件进行操作,而不需要详细了解USB通信协议,具有成本低、方便快捷、可利用性高、可靠性好等优点.

1 系统设计方法

1.1 芯片CH378简介

作为存储器文件管理芯片,CH378支持MPU系统可以快速方便的对U盘、SD/TF卡中的文件进行读写.CH378支持USB主机方式,内部集成了处理海量存储设备(Mass-Storage)的专用通讯协议的固件、FAT16和FAT32以及FAT12文件系统的管理固件、USB和SD/TF卡的通信接口固件,并且支持常用的各种USB存储设备.其良好的兼容性涵盖了各种U盘/USB硬盘/USB闪存盘/USB读卡器,以及各种SD卡,包括标准容量SD卡和高容量HC-SD卡以及协议兼容的MMC卡和TF卡.MPU可以通过这3种通信接口中任何一种,实现对CH378芯片控制,对U盘或者SD卡中的文件操作,并与单片机(MPU)进行通信.CH378芯片有两种型号CH378L和CH378Q,分别具有128和64管脚脚,应用框图如图1.其中CH378L还同时支持SPI接口、8位并口、异步串口3种通讯接口.

1.2 芯片比较选择

CH375芯片支持DEVICE设备方式和HOST主机方式,内部有数据缓冲区、主从USB接口、被动并行接口、异步串行接口、控制传输的协议处理器、通用的固件程序等.虽然CH375可以很方便地与USB设备通信,但是其不能与SD卡直接连接.MPU通常是通过SPI总线与SD卡相连,在程序设计上,要具有嵌入式文件系统,比如ZnFAT,对SD卡上的文件操作.工作量较大,并且文件系统需要占用大量内存.作为改进的接口芯片CH376是一个通用的USB-HOST硬件接口芯片,而且内置了Bulk-Only协议传输固件程序,内置了相关的USB底层传输固件程序,FAT文件系统管理固件程序,所以实际的单片机程序只需要发出读写命令即可完成对U盘和SD卡的操作,虽然CH376较CH375有了较大的进步,但其上没有数据缓存RAM.为了保证音频播放中,音频文件数据流传输流畅性,接口芯片的数据缓存是必要的.CH378具有20K的RAM,适合应用在在音乐播放系统设计中.本设计采用CH378L则支持12 Mbps全速和480 Mbps高速USB通信,外围元器件只需要晶体和电容.自动检测USB设备或SD卡的连接和断开,提供设备连接和断开的事件通知.提供SPI主机接口,支持SD卡以及TF卡等,支持容量高达32GB的U盘和SD卡,具有大的存储空间,不仅更加方便快捷,而且播放音乐更加流畅.

2 硬件电路设计

2.1 系统总体设计

本设计MPU采用STC12C5 A60S2为系统控制芯片,CH378L作为U盘,SD/TF卡接口芯片,利用并口方式进行连接方式.CH378L并口数据可以直接与MPU数据相连,通过CH378L读取U盘或SD/TF卡上的音频数据,并将其按照操作时序,传输给频解码器VS1003,VS1003对音频文件数据进行解码,输出音频信号驱动音箱,实现音乐播放.系统总体框图如图2.

2.2 接口电路设计

CH378L与MPU共有并口,串口,SPI3种通信方式,如果需要将CH378 L配置为并口方式,那么TXD引脚应该悬空,SEL引脚应该接地.接口引脚包括有AO、PCS#、RD#、WR#、DO-D7、INT#.

如果需要将CH378L配置为SPI串行通讯方式SPI,那么SEL引脚应该悬空,TXD引脚应该接地.该接口与MPU通信,连接的引脚包括SCS、SCK、SDO、SDI、INT#.如果需要将CH378L配置为异步串口通信方式,那么TXD引脚和SEL引脚应该都悬空.该接口与MPU通信的引脚有TXD、RXD、INT#.CH378L的接口电路如图3所示.

MPU与CH378L以并口的方式进行操作,速度更快,在并口方式下,通过CH378L的状态端口即INT#引脚,获取接口状态,为0时表示有中断请求.并口信号线包括:地址输入引脚AO、片选输入引脚PCS#、读选通输入引脚RD#、写选通输入引脚WR#以及8位双向数据总线D7~DO. CH378L与SD/TF卡是通过SD_IN,SD_WP,SD_CS,SD_CK,SD_DO,SD_DI这些信号线连接的.CH378L与U盘接口总线包括SV电源线,地(GND)线,和一对数据信号线UD -与UD+连接.接口电路如图4所示.

CH3781.芯片的PCS#可以由地址译码电路产生,也可以占有一个I/O线.CH378L芯片的RD#引脚和WR#引脚可以分别连接到单片机的读选通输出引脚和写选通输出引脚,表1为并口I/O操作的真值表(X代表不关心此位,Z代表CH378L高阻态)

2.3 音频解码VS1003接口电路

VS1003通过串行总线SPI与主机进行控制和数据信息的交换,并且SPI总线有两种功能特性:串行控制接口(SCI)和串行数据接口(SDI).VS1003芯片主要通过这两个接口来接收主机传送过来的控制命令和音频数据.其中SCI的数据传输长度固定为16位,通过对SCI接口的16个位寄存器进行读写操作来控制.系统开始运行后,单片机将歌曲的信息传送到VS1003解码芯片中.音频解码模块对单片机从U盘或者SD卡里读取的数字音频数据流进行解析,并转换成模拟信号进行输出.

3 系统软件设计

由于CH378L内置了USB控制传输的协议处理器,内置FAT16和FAT32以及FAT12文件系统的管理固件,支持Bulk-Only传输协议和SCSI、UFI、RBC或等效命令集的USB存储设备,MPU可以通过CH378L直接读取U盘和SD卡中的音频文件信息.CH378L芯片包含的主要常用文件管理控制类命令码如表2所示.

MPU在FAT规范下通过文件的形式存取U盘中的数据,且实际的单片机程序只需要发出文件管理和文件读写命令.由于使用通用I/O模块并口读写时序,所以首先进行初始化CH378L_PORT_INIT(),如果通过PC机监测系统工作状态,需要通过串口调试窗口进行,对系统串口进行初始化mlnitSTDIO(),初始化CH378L芯片后查询CH378L中断并更新中断状态,等待U盘或SD卡的插入,需要注意的是,对于某些U盘必须检查U盘是否准备好,查询完磁盘的容量后就可以开始操作U盘或SD了,具体程序操作过程为:对于U盘上的某子目录,寻找文件,如果没有发现该子目录,则对根目录下各音频文件(这里以mp3文件为例),进行枚举打开,并通过串口调试窗口显示.之后对找到的mp3文件信息进行显示.

4 实验结果测试

音乐播放过程在于,MPU对SD卡/U盘以文件形式访问,前面重点论述的,为采用CH378L接口芯片的实现方案,当MPU读取了SD卡/U盘上的音频数据,只有按照正确的方法将音频文件,比如MP3文件发给VS1003,音乐才能正确播放出来.MPU通过SPI串行总线对音频解码芯片VS1003进行操作.VS1003等待接收MPU从SD卡/U盘上读取的MP3文件数据流.以U盘为例,从U盘读出MP3文件到MPU的缓冲区,缓冲区的大小设置为512Byte,然后将数据发往VS1003. VS1003内置有32Byte的数据缓冲区,MPU可以发送一组32Byte的数椐,然后检测DREQ,当DREQ为低停止等待发送,只有当DREQ为高时,才可以送下一组32Byte的数据.为了实现音乐播放的连续性,MPU要保证音频数据流不间断,要保持对U盘音频文件数据的读取,并且按32Byte -组数据,按上述操作发送给VS1003,直到把整个音频文件发完为止,完成一首音乐的完整播放.流程如下:

1)打开一个指定的MP3文件;

2)读一个扇区数据( 512Byte);

3)发32Byte的数据到VS1003;

4)检测DREQ,当DREQ为高时发下一个32个printf(”lFFFile MP3%s\n”,Ptr);delayx(50);while(*Ptr!=,\0'Ptr++;Ptr++;}}

程序流程图如图5.字节的数据;

5)是否发完512Byte,否,则回到3);

6)是否发完打开的MP3文件,否,则回到2);

7)关闭打开的文件.

对关键的系统硬件电路器件进行调试,测试CH378L,VS1003,确认硬件电路正常,并将U盘/SD卡插入.在Keil version4环境下,采用C语言对相应的功能进行了软件调试,编译连接,通过ISP软件,将程序代码下载到STC12C5A60S2.此时系统开始对U盘/SD卡操作,读取音频文件信息,在串口调试窗口可以观察得到调试信息,如图6.这些显示的信息表明,CH378L,已经正常工作,并检查U盘,总容量为3899MB,对存储在其上的音频文件进行的查询,总共有14个文件.之后系统进行音乐播放.

5 结论

本设计采用新型接口芯片CH378L进行单片机对U盘和SD卡控制的设计,简化了对U盘和SD卡的读写控制部分,具有简单、方便、快捷的特点,优化了对SD卡读写的部分,而且CH378L具有20KRAM存储的空间,支持容量高达32 GB的U盘和SD卡,为解决对大的存储设备管理,并避免音乐播放不流畅的问题提供了一种有效可靠的方案,本文介绍的基于CH378L的音频播放器,可以实现对存储在SD卡/U盘上任意音频文件的操作,播放形式也是可以选择,可以按顺序进行,也可以通过按键随机选择,并实现了暂停、继续、上一曲、下一曲等功能.达到了设计效果,

猜你喜欢

U盘
压榨潜力:锦上添花用U盘
自动辨认插口方向的U盘
当U盘被提示 “格式化”时
让U盘起死回生
简单几步恢复U盘被删文件
见招拆招,轻松修复故障U盘
解决插入U盘时提示格式化磁盘的故障
电脑不能识别U盘的两三事
U盘遇见名片盒
U盘“闹肚子”