<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 基于USB主機結構的數字錄音技術(shù)研究

基于USB主機結構的數字錄音技術(shù)研究

——
作者: 時(shí)間:2007-04-28 來(lái)源: 收藏
     介紹了一種基于主機結構的系統,提出了一種將大容量數據存儲技術(shù)應用于系統的新方法,重點(diǎn)介紹了語(yǔ)音PCM編碼電路和-HOST接口電路的硬件設計、由底向上的主機軟件設計框架以及實(shí)時(shí)語(yǔ)音文件的存儲。

     隨著(zhù)數字技術(shù)的發(fā)展,錄音技術(shù)也進(jìn)入了數字化階段。目前系統應用已非常廣泛,如電力、鐵路、石油等行業(yè)的指揮調度,機場(chǎng)、港口、公安、軍事等要害部門(mén)的錄音和監聽(tīng),金融行業(yè)授權指令的實(shí)時(shí)錄音,無(wú)線(xiàn)尋呼臺、電信局、服務(wù)行業(yè)的服務(wù)等。數字錄音系統為及時(shí)了解和發(fā)現事故原因以及提供準確可靠的原始錄音記錄發(fā)揮了巨大作用。
   
    目前,很多數字錄音系統是基于PC實(shí)現的。語(yǔ)音數據采集后通過(guò)串口實(shí)時(shí)傳送到PC進(jìn)行數字語(yǔ)音的存儲,再由PC對數字語(yǔ)音數據進(jìn)行后期處理。但是在很多應用場(chǎng)合(如移動(dòng)裝置、野外作業(yè)、竊聽(tīng)等),由于受布線(xiàn)、成本、安裝空間及環(huán)境等影響,基于PC的數字錄音方案受到限制。這些應用場(chǎng)合下,如何實(shí)現語(yǔ)音數據的存儲就成為關(guān)鍵。
 
    方案一是采用無(wú)線(xiàn)傳輸。實(shí)時(shí)將采集到的語(yǔ)音數據傳送。但是由于受無(wú)線(xiàn)數據傳輸的距離、速度以及實(shí)現成本的限制,這種方案的可行性不高;
 
    方案二是采用可移動(dòng)的存儲體。目前應用較廣的有CF、SD等存儲卡和基于USB接口的移動(dòng)存儲設備。從單位字節存儲成本考慮,存儲卡的成本明顯高于基于USB接口的移動(dòng)存儲設備。
 
    另外,PC與存儲卡進(jìn)行數據交換時(shí)必須購買(mǎi)相應的讀卡器,這意味著(zhù)要增加額外的成本且使用不靈活。隨著(zhù)USB技術(shù)的發(fā)展與不斷成熟,目前幾乎所有PC主板都帶有多個(gè)USB接口,且操作系統對USB設備的支持也非常完備。這樣數字語(yǔ)音數據可與任意PC進(jìn)行數據交換,從而使應用變得非常方便和靈活。因此,研究嵌入式環(huán)境下基于USB主機結構的數字錄音技術(shù)就具有實(shí)際意義和應用前景。
 
    1 數字錄音系統的設計和工作原理
   
    整個(gè)錄音系統主要由兩大部分組成。一是語(yǔ)音數據的PCM編碼電路,實(shí)現語(yǔ)音的AD轉換;二是USB主機的接口電路。單片機P89C51RD2HBA實(shí)現USB-HOST主機協(xié)議和語(yǔ)音數據的采集功能,系統原理如圖l所示。

    2 語(yǔ)音編解碼電路設計
    2.1 MCl4LC5480芯片簡(jiǎn)介
   
    語(yǔ)音的PCM編碼是將模擬語(yǔ)音信號轉變?yōu)閿底终Z(yǔ)音信號。它是語(yǔ)音數字化的第一步,也是語(yǔ)音壓縮的基礎。MCl4LC5480是Motorola公司生產(chǎn)的μ/A律PCM芯片,具有以下特點(diǎn):低功耗;低噪聲的全差分模擬電路設計;片內集成有發(fā)送帶通濾波器和接收低通濾波器;具有RC預濾波器后濾波器;μ/A律可選擇。MCl4LC5480的原理如圖2所示。

    圖2中,RO+、RO-和TI+、TI-分別是PCM模擬語(yǔ)音信號的差分輸出和輸入;PI、PO+、PO-用來(lái)放大模擬信號以驅動(dòng)模擬語(yǔ)音設備;同步控制部分主要用于控制幀同步和位同步,控制引腳主要用于μ/A律的選擇和低功耗模式的選擇。
 
    2.2 語(yǔ)音編解碼應用電路設計
   
     基于MCl4LC5480的語(yǔ)音編解碼應用電路如圖3所示。其中輸入的8kHz時(shí)鐘源用于幀同步,2.048MHz的時(shí)鐘源用于位同步。PCM輸出即為編碼后的串行輸出數據,再經(jīng)過(guò)SN74HC595轉換為并行數據與單片機的8位數據總線(xiàn)連接;PCM輸入則為串行輸入的數字語(yǔ)音數據。在圖3中,8kHz、2.048MHz時(shí)鐘源可用Motorola公司的MC74HC4060產(chǎn)生。具體實(shí)現如圖4所示。

 

  3 USB主機接口電路設計
  3.1 USB-HOST接口芯片SL811HS簡(jiǎn)介
   
  SL811HS是Cypress公司推出的一種遵從USB1.1協(xié)議的嵌入式USB Host/Slave芯片。該芯片既能與USB低速設備通信,也能與USB高速設備通信。由于提供了8位寬的數據總線(xiàn)及中斷支持,使得該芯片能方便地與微處理器、微控制器以及DSP連接。SL811HS可以在Host/Slave兩種模式下工作。該芯片具有以下特點(diǎn):
   
   (1)自動(dòng)探測所接設備是低速設備還是高速設備;
  
    (2)具有8位雙向數據總線(xiàn)及片上SIE、USB收發(fā)器;
   
  (3)自動(dòng)產(chǎn)生SOF令牌包及自動(dòng)生成令牌包、數據包中所需要的CRCS/CRCl6數據;
   
   (4)內部256B RAM,支持乒乓操作;
   
   (5)支持SUSPEND/RESUME、WAKE UP、LDW-POW-ER模式。
 
  3.2 USB-HOST接口電路設計
   
   SL811HS的接口電路原理如圖5所示。
 
  由于系統只需要具有USB主機的功能,因此只需將控制SL811HS為主機或從機工作方式的M/S管腳接地。SL811HS的地址數據復用總線(xiàn)AD[7:0]與單片機P89C51RD2HBA的P0口連接。其中SL811HS的A0功能較為靈活。AO=0時(shí)表示數據線(xiàn)上的數據是SL811HS的RAM空間的地址指針;A0=1時(shí)則讀寫(xiě)指定地址的RAM數據,從而實(shí)現數據的傳輸。
 
  而且它支持地址自增模式,即可讀寫(xiě)連續地址單元中的數據,而不需要多次寫(xiě)入地址,從而大大提高傳輸速度。為了提高系統的抗干擾能力和穩定性,VDD引腳的去耦電容采用103電容。并且在設計PCB時(shí)DATA+和DATA-的走線(xiàn)盡量短,整個(gè)PEB板做覆銅處理。
 

  4 軟件設計與實(shí)現
  4.1 USB主機對設備的枚舉軟件框架設計
   
  枚舉是任何USB設備使用前必經(jīng)的過(guò)程,因此枚舉作為整個(gè)USB通信的前提顯得非常關(guān)鍵。下面依照自底向上的軟件設計方法實(shí)現USB主機對設備的枚舉。整個(gè)USB主機系統的實(shí)現也是按照層次由底向上的設計思路,這樣便于系統移植。
   
   (1)MCU與sL811HST的底層通信。這是整個(gè)USBHost模塊的基礎,它主要包括對SL8llHS字節的讀/寫(xiě)和字節串的讀/寫(xiě)等函數。
   
   (2)USB最底層數據包發(fā)送的實(shí)現。這是一個(gè)發(fā)送數據包的函數,參數包括發(fā)送的數據包類(lèi)型、端點(diǎn)地址、端點(diǎn)負載、傳輸長(cháng)度和數據緩存區地址指針。
   
   (3)控制傳輸和USB協(xié)議棧標準請求命令的實(shí)現??刂苽鬏斨饕糜诎l(fā)送和接收與USB設備的配置信息相關(guān)的數據,包括建立階段、可選數據階段和狀態(tài)階段。每個(gè)階段都由特定的事務(wù)(USB最底層數據包的發(fā)送)組成。建立階段發(fā)送規定格式的USB標準請求命令;數據階段是可選的,它根據建立階段指明的傳輸方向傳輸具有USB定義的數據,該階段包含一個(gè)或多個(gè)IN/OUT事務(wù);狀態(tài)階段用于報告建立階段和數據階段的傳輸結果。
   
   (4)USB設備的枚舉。根據USB協(xié)議的規定,在調用標準請求命令函數的基礎上,實(shí)現主機對USB設備的枚舉。首先通過(guò)缺省地址0獲取設備描述符,如廠(chǎng)商ID、產(chǎn)品ID、設備類(lèi)等信息;之后為設備分配新的地址;然后通過(guò)這個(gè)新地址與設備通信,獲取配置描述符、接口描述符、端點(diǎn)描述符等;根據獲取的配置描述符信息,為設備設定一個(gè)配置。
   
   (5)整個(gè)USB的協(xié)議框架。至此,整個(gè)USB主機的活動(dòng)特性已了解。從(1)~(4),層層遞進(jìn),一級比一級高級。最簡(jiǎn)單地說(shuō),就是(4)中宏觀(guān)的USB主機活動(dòng)是由最底層的(1)實(shí)現。
 
  而(1)中的函數是完全與硬件相關(guān)的部分,且越往上與硬件的關(guān)系越小,以至于在(4)中的層次就完全是與硬件無(wú)關(guān)的軟件平臺。這也為整個(gè)系統的移植奠定了基礎,只需修改與硬件緊密相關(guān)的函數體即可。
 
  4.2 主機與存儲設備之間的數據傳輸
   
  數字語(yǔ)音存儲應用中采用的移動(dòng)存儲設備是Mass Storage類(lèi)(海量存儲類(lèi))。Mass Storage類(lèi)主要用于軟磁盤(pán)接口、ATA接口、IDE硬盤(pán)接口及Flash存儲器等設備建立的USB接口。
 
  不同的數據存儲載體接口構成了Mass Storage類(lèi)的子類(lèi),UFI即為實(shí)現軟磁盤(pán)接口的Mass Storage類(lèi)的子類(lèi)。各個(gè)子類(lèi)都有一套自己的協(xié)議,并通過(guò)命令的形式實(shí)現各種功能。這些命令都是各子類(lèi)所特有的,與USB沒(méi)有任何關(guān)系,只是在uSB傳輸時(shí)被打包成一系列的命令包進(jìn)行傳輸。而真正與Mass Storage的傳輸方式相關(guān)的是其傳輸協(xié)議。
   
   BULK-ONLY協(xié)議沒(méi)有使用中斷和控制端點(diǎn),僅使用BULK(批量)端點(diǎn)進(jìn)行命令、數據和狀態(tài)的傳輸。批量傳輸方式不受時(shí)間限制并能保證數據的完整性。在這種傳輸方式下,有三種類(lèi)型的數據在USB與設備之間傳送:CBW、CSW和普通數據。
 
  圖6描述了主機端數據傳輸方式。從圖6可以看到數據段一分為二,一個(gè)是數據輸出(主機發(fā)送數據到設備),另一個(gè)是數據輸入(主機從設備獲取數據)。主機發(fā)送CBW,這個(gè)CBW本身作為描述符的負載數據傳輸到設備。CBW的封包也包括封包頭和 圖6 BULK-ONLY傳輸方式命令塊兩部分。封包頭表征了數據傳輸方向傳輸的邏輯單元和命令塊長(cháng)度,命令塊是真正需要實(shí)現的命令。

  4.3 數字語(yǔ)音數據存儲
  
    (1)單片機對移動(dòng)存儲設備的讀寫(xiě)
   
  對USB移動(dòng)存儲設備的讀寫(xiě)需要對存儲體的存儲格式有一定了解。FAT文件系統通過(guò)Mass Storage類(lèi)的UFI子類(lèi)命令與u盤(pán)建立聯(lián)系,并在系統中建立一個(gè)U盤(pán)的空間結構實(shí)現寫(xiě)文件、讀文件等功能。對于只有一個(gè)分區的FATl6格式的U盤(pán),其結構依次是主引導記錄(MBR)、系統引導記錄(DBR)、文件分配表(FAT)、文件目錄表(FDT)和數據區(DATA)。
 
  MBR包括446字節的主引導代碼、64字節的DPT(Disk Partition Table,磁盤(pán)分區表)和“55.AA”的結束標志。DBR是操作系統可以直接訪(fǎng)問(wèn)的第一扇區,它包括一個(gè)引導程序和一個(gè)被稱(chēng)為BPB(Bios Parameter Block)的本分區參數記錄表。
 
  BPB含有對文件系統操作的關(guān)鍵信息,因此非常重要。在對U盤(pán)進(jìn)行讀寫(xiě)前首先要讀取MBR扇區和DBR扇區,以獲取DPT和BPB信息作為文件系統操作的基礎;然后根據FAT表中簇的使用情況為相應文件進(jìn)行分配(回收)并在FDT表中注冊(刪除)文件屬性等信息,即可實(shí)現對文件寫(xiě)、刪除等操作。
  
    (2)數字語(yǔ)音文件的實(shí)時(shí)存儲
   
   在本應用系統中,把實(shí)時(shí)采集編碼后的數字語(yǔ)音按文件格式存儲到uSB接口的移動(dòng)存儲設備上,以實(shí)現嵌入式環(huán)境下實(shí)時(shí)語(yǔ)音數據的存儲與交換。對于存儲后的數字語(yǔ)音文件可在PC環(huán)境下作后期處理,非常方便和靈活。整個(gè)系統的主循環(huán)程序設計流程如圖7所示。根據實(shí)際應用需求,設計了兩路實(shí)時(shí)語(yǔ)音的采集編碼,每路語(yǔ)音的數據速率為8kbps。
 
  由于語(yǔ)音數據是恒定速率輸入且長(cháng)時(shí)間存儲的數據量比較大,因此如何提高存儲速度以保證語(yǔ)音數據的實(shí)時(shí)存儲就非常重要。為此系統采用前后臺操作方式,即語(yǔ)音數據的緩存在中斷服務(wù)程序中完成,并且每路語(yǔ)音數據均采用雙緩沖區形式。其中一個(gè)用于實(shí)時(shí)采集的語(yǔ)音數據緩存,另一個(gè)用于USB主機發(fā)送到U盤(pán)的數據緩存。
 
  在系統運行中兩個(gè)緩沖區的角色動(dòng)態(tài)切換。在系統緩存容量允許的情況下,每個(gè)緩沖區大小盡可能大一些。因為對U盤(pán)一次性寫(xiě)入的文件容量越大,平均字節的系統開(kāi)銷(xiāo)越小,速度越快。數字語(yǔ)音文件存儲到u盤(pán)的操作在后臺主循環(huán)中實(shí)現,主循環(huán)對兩個(gè)緩沖區滿(mǎn)標志進(jìn)行查詢(xún)來(lái)決定當前待發(fā)送的緩沖區,發(fā)送完畢后清除相應的緩沖區滿(mǎn)標志。所以通過(guò)有效分配緩沖區大小和雙緩沖方式能有效提高數據存儲速度,再通過(guò)采用前后臺的操作方式更好地保證數據存儲的實(shí)時(shí)性能。

  本文主要研究了嵌入式環(huán)境下基于USB-HOST結構的數字錄音技術(shù)及其實(shí)現,目前已通過(guò)系統調試。系統能夠完成設計預期的對兩路語(yǔ)音的實(shí)時(shí)存儲,且長(cháng)時(shí)間運行穩定性較好。在設計中由于USB主機協(xié)議框架部分按自底向上的層次設計方法,因此系統具有很好的移植性,稍做修改即可移植到如數據采集系統、工控領(lǐng)域等應用場(chǎng)合。


關(guān)鍵詞: USB 數字錄音

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>