微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于USB主机结构的数字录音技术研究

基于USB主机结构的数字录音技术研究

时间:05-21 来源:电子技术应用 点击:

  4.2 主机与存储设备之间的数据传输

  数字语音存储应用中采用的移动存储设备是Mass Storage类(海量存储类)。Mass Storage类主要用于软磁盘接口、ATA接口、IDE硬盘接口及Flash存储器等设备建立的USB接口。

  不同的数据存储载体接口构成了Mass Storage类的子类,UFI即为实现软磁盘接口的Mass Storage类的子类。各个子类都有一套自己的协议,并通过命令的形式实现各种功能。这些命令都是各子类所特
有的,与USB没有任何关系,只是在uSB传输时被打包成一系列的命令包进行传输。而真正与Mass Storage的传输方式相关的是其传输协议。

  BULK-ONLY协议没有使用中断和控制端点,仅使用BULK(批量)端点进行命令、数据和状态的传输。批量传输方式不受时间限制并能保证数据的完整性。在这种传输方式下,有三种类型的数据在USB与设备之间传送:CBW、CSW和普通数据。

  图6描述了主机端数据传输方式。从图6可以看到数据段一分为二,一个是数据输出(主机发送数据到设备),另一个是数据输入(主机从设备获取数据)。主机发送CBW,这个CBW本身作为描述符的负载数据传输到设备。CBW的封包也包括封包头和 图6 BULK-ONLY传输方式命令块两部分。封包头表征了数据传输方向传输的逻辑单元和命令块长度,命令块是真正需要实现的命令。

  4.3 数字语音数据存储

  (1)单片机对移动存储设备的读写

  USB移动存储设备的读写需要对存储体的存储格式有一定了解。FAT文件系统通过Mass Storage类的UFI子类命令与u盘建立联系,并在系统中建立一个U盘的空间结构实现写文件、读文件等功能。对于只有一个分区的FATl6格式的U盘,其结构依次是主引导记录(MBR)、系统引导记录(DBR)、文件分配表(FAT)、文件目录表(FDT)和数据区(DATA)。

  MBR包括446字节的主引导代码、64字节的DPT(Disk Partition Table,磁盘分区表)和"55.AA"的结束标志。DBR是操作系统可以直接访问的第一扇区,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。

  BPB含有对文件系统操作的关键信息,因此非常重要。在对U盘进行读写前首先要读取MBR扇区和DBR扇区,以获取DPT和BPB信息作为文件系统操作的基础;然后根据FAT表中簇的使用情况为相应文件进行分配(回收)并在FDT表中注册(删除)文件属性等信息,即可实现对文件写、删除等操作。

  (2)数字语音文件的实时存储

  在本应用系统中,把实时采集编码后的数字语音按文件格式存储到uSB接口的移动存储设备上,以实现嵌入式环境下实时语音数据的存储与交换。对于存储后的数字语音文件可在PC环境下作后期处理,非常方便和灵活。整个系统的主循环程序设计流程如图7所示。根据实际应用需求,设计了两路实时语音的采集编码,每路语音的数据速率为8kbps。

  由于语音数据是恒定速率输入且长时间存储的数据量比较大,因此如何提高存储速度以保证语音数据的实时存储就非常重要。为此系统采用前后台操作方式,即语音数据的缓存在中断服务程序中完成,并且每路语音数据均采用双缓冲区形式。其中一个用于实时采集的语音数据缓存,另一个用于USB主机发送到U盘的数据缓存。

  在系统运行中两个缓冲区的角色动态切换。在系统缓存容量允许的情况下,每个缓冲区大小尽可能大一些。因为对U盘一次性写入的文件容量越大,平均字节的系统开销越小,速度越快。数字语音文件存储到u盘的操作在后台主循环中实现,主循环对两个缓冲区满标志进行查询来决定当前待发送的缓冲区,发送完毕后清除相应的缓冲区满标志。所以通过有效分配缓冲区大小和双缓冲方式能有效提高数据存储速度,再通过采用前后台的操作方式更好地保证数据存储的实时性能。

  本文主要研究了嵌入式环境下基于USB-HOST结构的数字录音技术及其实现,目前已通过系统调试。系统能够完成设计预期的对两路语音的实时存储,且长时间运行稳定性较好。在设计中由于USB主机协议框架部分按自底向上的层次设计方法,因此系统具有很好的移植性,稍做修改即可移植到如数据采集系统、工控领域等应用场合。

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

网站地图

Top