[發(fā)明專利]基于可編程芯片的USB麥克風(fēng)陣列實時完整數(shù)據(jù)流方法在審
| 申請?zhí)枺?/td> | 202210370519.3 | 申請日: | 2022-04-10 |
| 公開(公告)號: | CN114783475A | 公開(公告)日: | 2022-07-22 |
| 發(fā)明(設(shè)計)人: | 汪志勝;崔俊寧;程鐘義 | 申請(專利權(quán))人: | 哈爾濱工業(yè)大學(xué) |
| 主分類號: | G11C7/16 | 分類號: | G11C7/16;G06F13/28 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 150001 黑龍*** | 國省代碼: | 黑龍江;23 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 可編程 芯片 usb 麥克風(fēng) 陣列 實時 完整 數(shù)據(jù)流 方法 | ||
基于可編程芯片的USB麥克風(fēng)陣列實時完整數(shù)據(jù)流方法,包括:乒乓緩沖,主循環(huán)解碼,環(huán)形隊列、USB IN中斷程序模塊。麥克風(fēng)陣列內(nèi)需傳輸處理龐大數(shù)據(jù)流,而其過程需確保數(shù)據(jù)流的實時和完整性。為此,首先設(shè)計一種軟件的乒乓緩沖,通過開辟等長的兩段緩存數(shù)組,用于交替接收麥克風(fēng)連續(xù)輸出的PDM數(shù)據(jù)流;然后每當某段乒乓緩沖存滿數(shù)據(jù),便將其整塊放入主循環(huán)程序內(nèi)抽取解碼,得到PCM數(shù)據(jù)塊;最后將每次解碼完成的PCM數(shù)據(jù)塊直接寫入設(shè)計的環(huán)形隊列內(nèi),待USB IN中斷,采用自適應(yīng)算法從環(huán)形隊列動態(tài)讀取數(shù)據(jù)上傳。此外,本發(fā)明設(shè)計乒乓緩沖大小以保證數(shù)據(jù)流完整性。以可編程芯片為核心的麥克風(fēng)陣列,本方法能保障其內(nèi)龐大數(shù)據(jù)流傳輸處理的實時與完整性。
技術(shù)領(lǐng)域
本發(fā)明屬于電子與通信技術(shù)領(lǐng)域,更具體地說,涉及基于可編程芯片的USB麥克風(fēng)陣列實時完整數(shù)據(jù)流方法。
背景技術(shù)
麥克風(fēng)陣列是實現(xiàn)聲源定位、智能視頻會議、智能感知等應(yīng)用的基礎(chǔ),基于嵌入式可編程芯片開發(fā)的USB麥克風(fēng)陣列平臺是一種便捷且低成本的方案,商用應(yīng)用價值大。陣列功能實現(xiàn)的關(guān)鍵在于可編程芯片固件程序的設(shè)計,而固件程序的核心是音頻數(shù)據(jù)流架構(gòu)。為方便開發(fā)者基于便捷開源的可編程芯片開發(fā)USB音頻類設(shè)備應(yīng)用,現(xiàn)有數(shù)據(jù)流方案難以在計算能力有限的可編程芯片內(nèi)傳輸處理龐大音頻數(shù)據(jù)流的過程中保證數(shù)據(jù)的實時性和完整性。因此,對于以可編程芯片為核心的麥克風(fēng)陣列,需要一種更加高效,詳細,且能夠最大化地保證數(shù)據(jù)流實時與完整性的音頻數(shù)據(jù)流架構(gòu)方法。音頻數(shù)據(jù)流的設(shè)計需考慮解決以下關(guān)鍵問題:
1)音頻數(shù)據(jù)流傳輸卡頓及丟幀
由于固件程序需要實時完成龐大音頻數(shù)據(jù)流的讀寫、傳輸以及處理等過程,主控芯片內(nèi)部程序任務(wù)繁忙。若程序出現(xiàn)阻塞和執(zhí)行過程中耗時嚴重,以及數(shù)據(jù)在讀寫過程中出現(xiàn)丟幀現(xiàn)象,會使得實時音頻數(shù)據(jù)流受到破壞,丟失有效數(shù)據(jù)。
2)USB的異步時鐘傳輸
由于USB總線上未設(shè)置同步時鐘線,USB底層協(xié)議也不提供固有的時鐘同步機制,因此USB麥克風(fēng)陣列與系統(tǒng)平臺間是異步時鐘通信,音頻數(shù)據(jù)流傳輸過程會出現(xiàn)跨時鐘域讀寫不同步的問題,隨著工作時間增長會出現(xiàn)緩存區(qū)內(nèi)數(shù)據(jù)溢出或讀空的現(xiàn)象,即丟失有效數(shù)據(jù)。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的缺點,對于以嵌入式可編程芯片為控制核心的USB麥克風(fēng)陣列,本發(fā)明對其內(nèi)部音頻數(shù)據(jù)流架構(gòu)進行了精巧設(shè)計與詳細優(yōu)化,其目的在于提供一種更加高效,詳細,且能夠最大化地保證數(shù)據(jù)流實時與完整性的音頻數(shù)據(jù)流架構(gòu)方法。
為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
基于可編程芯片的USB麥克風(fēng)陣列實時完整數(shù)據(jù)流方法,包括:
乒乓緩沖程序模塊,用于提供高效的臨時緩沖區(qū),以保證對麥克風(fēng)PDM數(shù)據(jù)流進行接收以及后續(xù)抽取解碼操作的實時性,其主要技術(shù)方法是:開辟等長的兩段緩存數(shù)組buffer0和bufferl,在DMA傳輸過程使兩段緩存不斷被交替接收麥克風(fēng)連續(xù)輸出的PDM數(shù)據(jù)流;
主循環(huán)解碼程序模塊,用于對麥克風(fēng)輸出的PDM數(shù)據(jù)流進行軟件上的抽取濾波,以解碼為所需的PCM數(shù)據(jù)流,其過程耗占CPU資源,其主要技術(shù)方法是:每當判定乒乓緩沖中的某一段緩存數(shù)組存滿PDM數(shù)據(jù),主循環(huán)便將該段緩存數(shù)組整塊進行抽取解碼,進而解碼為一PCM數(shù)據(jù)塊;
環(huán)形隊列程序模塊,用于提供足夠的內(nèi)存空間進行快速的數(shù)據(jù)讀寫,保證數(shù)據(jù)流的實時性外,還需保證數(shù)據(jù)流的完整性,即不丟幀,其主要方法為:在MCU內(nèi)存中開辟一段元素個數(shù)為M=2N(N為正整數(shù))的一維數(shù)組que[M],利用位與運算實現(xiàn)讀/寫指針(即數(shù)組元素的索引值,分別用wr_ptr/rd_ptr指代)的反轉(zhuǎn)操作。
USB IN中斷程序模塊,主要是采用一種自適應(yīng)算法,從環(huán)形隊列動態(tài)讀取適量的音頻數(shù)據(jù),使得設(shè)備內(nèi)數(shù)據(jù)量穩(wěn)定,待系統(tǒng)平臺請求數(shù)據(jù)時進行上傳。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于哈爾濱工業(yè)大學(xué),未經(jīng)哈爾濱工業(yè)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210370519.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





