新四季網

一種解析音頻數據的方法

2023-04-30 06:24:41

專利名稱:一種解析音頻數據的方法
技術領域:
本發明涉及通信領域,特別涉及一種解析音頻數據的方法。
背景技術:
智能密鑰設備,是一種帶有處理器和存儲器的小型硬體裝置,主要用於身份認證、軟體保護等領域,它通過計算機的數據通訊接口與計算機連接,然而隨著手機技術的發展,手機越來越多的替代了計算機的功能;發明人在實現本發明的過程中發現,目前尚無一種有效的方法實現在手機上使用智能密鑰設備進行數字通訊。

發明內容
為了解決現有技術中存在的問題,本發明提供了一種解析音頻數據的方法。本發明方法是通過下述技術方案實現的:一種解析音頻數據的方法,其基本實施過程如下:步驟A:根據解析索引值判斷上升沿數組和下降沿數組中是否有滿足預設條件的字節,是則將有滿足預設條件的字節的數組作為當前數組,關閉另外一個數組對應的中斷,執行步驟C,否則執行步驟B;步驟B:按照第一預設方法更新所述解析索引值,返回執行步驟A ;步驟C:按照第二預設方法更新所述解析索引值,根據所述解析索引值獲取當前數組的當前字節存入第一 寄存器的第一指定位置;步驟D:按照第一預設方法更新所述解析索引值,根據所述解析索引值獲取當前數組的當前字節存入所述第一寄存器的第二指定位置,判斷所述第一寄存器中數據的值是否滿足預設要求,是則執行步驟E,否則清空當前數組,打開關閉的所述另外一個數組對應的中斷,報錯,返回執行步驟A ;步驟E:按照第一預設方法更新所述解析索引值,按照第三預設方法更新索引值更新次數,根據所述解析索引值獲取當前數組的當前字節,存入第二寄存器;步驟F:按照第一預設方法更新所述解析索引值,按照第三預設方法更新索引值更新次數,根據所述解析索引值獲取當前數組的當前字節,存入第三寄存器;步驟G:將所述第二寄存器中的數據與所述第三寄存器中的數據進行校驗運算,用運算結果替換所述第二寄存器中的數據,判斷所述索引值更新次數是否等於所述第一寄存器中數據的值,是則執行步驟H,否則返回執行步驟F ;步驟H:按照第一預設方法更新所述解析索引值,根據所述解析索引值獲取當前數組的當前字節並用其替換所述第三寄存器中的數據,判斷所述第二寄存器中數據的值是否等於第三寄存器中數據的值,是則提示接收到的數據正確,結束,否則清空當前數組,打開關閉的所述另外一個數組對應的中斷,報錯,返回執行步驟A ;其中,所述步驟A包括:
步驟Al:根據所述解析索引值判斷上升沿數組的當前字節以及下降沿數組的當前字節中是否有等於第一數值的,是則執行步驟A3,否則執行步驟B ;步驟A2:判斷上升沿數組和下降沿數組中哪一個數組的當前字節等於第一數值,若是上升沿數組的當前字節則關閉下降沿中斷,將上升沿數組作為當前數組,執行步驟A3,若是下降沿數組的當前字節則關閉上升沿中斷,將下降沿數組作為當前數組,執行步驟A3 ;步驟A3:按照第一預設方法更新所述解析索引值,根據所述解析索引值判斷當前數組的當前字節是否等於第二數值,是則執行步驟A4,否則打開關閉的中斷,返回執行步驟Al ;步驟A4:按照第一預設方法更新所述解析索引值,根據所述解析索引值判斷當前數組的當前字節是否等於第三數值,是則執行步驟A5,否則打開關閉的中斷,返回執行步驟Al ;步驟A5:按照第一預設方法更新所述解析索引值,根據所述解析索引值判斷當前數組的當前字節是否等於第四數值,是則執行步驟C,否則打開關閉的中斷,返回執行步驟Al ;所述將所述第二寄存器中的數據與所述第三寄存器中的數據進行校驗運算具體為將所述第二寄存器中的數據與所述第三寄存器中的數據進行異或運算;所述根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的第一指定位置具體為根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的低位端;所述根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的第二指定位置具體為根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的高位端;所述判斷所述第一寄存器中數據的值是否滿足預設要求具體為判斷所述第一寄存器中數據的值是否不大於緩存的大小;所述按照第一預設方法更新所述解析索引值具體為將所述解析索引值更新為其當前值加I ;所述按照第二預設方法更新所述解析索引值具體為將所述解析索引值更新為其當前值加4 ;所述按照第三預設方法更新索引值更新次數具體為將所述索引值更新次數更新為其當前值加I ;進一步地,所述步驟A之前包括:將音頻模擬信號通過濾波電路濾除雜波,通過波形整波電路整形為數位訊號後再通過濾波電路濾除雜波,輸入到單片機的IO 口當所述IO口檢測到上升沿中斷時,跳轉至上升沿中斷處理流程,執行步驟Si後繼續檢測到上升沿中斷時正在執行的操作,當所述IO 口檢測到下降沿中斷時,跳轉至下降沿中斷處理流程,執行步驟S2後繼續檢測到下降沿中斷時正在執行的操作;步驟S1:記錄當前定時器的值,計算每兩個相鄰記錄值之差的絕對值,當所述絕對值符合預設要求時從下一絕對值開始依次判斷每個絕對值是否在預設範圍內,是則向第一數組中寫入I個數據位1,否則向所述第一數組中寫入I個數據位0,當所述第一數組中寫滿8個數據位時,將所述第一數組中的數據寫入上升沿數組;步驟S2:記錄當前定時器的值,計算每兩個相鄰記錄值之差的絕對值,當所述絕對值符合預設要求時從下一絕對值開始依次判斷每個絕對值是否在預設範圍內,是則向第二數組中寫入I個數據位1,否則向所述第二數組中寫入I個數據位O,當所述第二數組中寫滿8個數據位時,將所述第二數組中的數據寫入下降沿數組;其中,所述步驟SI包括:步驟Sl-1:判斷首次上升沿中斷觸發標誌是否置位,是則執行步驟S1-2,否則執行步驟S1-3 ;步驟S1-2:記錄當前時刻定時器的計數值到第四寄存器,將所述首次上升沿觸發標誌復位,返回執行步驟Sl-1 ;步驟S1-3:記錄當前時刻定時器的計數值到第五寄存器,計算所述第五寄存器中數據與所述第四寄存器中數據差的絕對值,用所述第五寄存器中的數據替換所述第四寄存器中的數據,判斷第一數據開始標誌是否置位,是則執行步驟S1-5,否則執行步驟S1-4 ;步驟S1-4:判斷所述絕對值是否滿足預設條件,是則將所述第一數據開始標誌置位,返回執行步驟S1-1,否則直接返回執行步驟Sl-1 ;步驟S1-5:判斷所述絕對值是否在預設範圍內,是則向第一數組中寫入I個數據位1,執行步驟S1-6,否則向第一數組中寫入I個數據位0,執行步驟S1-6;步驟S1-6:按照第四預設方法修改第一寫入次數變量的值,判斷所述第一寫入次數變量的當前值是否為預設值,是則修改所述第一寫入次數變量的值為其初始值,根據第一接收索引值將所述第一數組中的數據寫入所述上升沿數組的指定位置,按照第五預設方法更新所述第一接收索引值,否則返回執行步驟Sl-1 ;其中,所述首次上升沿中斷觸發標誌的初始狀態為置位,所述第一數據開始標誌的初始狀態為復位;所述步驟S2包括:步驟S2-1:判斷首次下降沿中斷觸發標誌是否置位,是則執行步驟S2-2,否則執行步驟S2-3 ;步驟S2-2:記錄當前時刻定時器的計數值到第六寄存器,將所述首次下降沿觸發標誌復位,返回執行步驟S2-1 ;步驟S2-3:記錄當前時刻定時器的計數值到第七寄存器,計算所述第七寄存器中數據與所述第六寄存器中數據差的絕對值,用所述第七寄存器中的數據替換所述第六寄存器中的數據,判斷第二數據開始標誌是否置位,是則執行步驟S2-5,否則執行步驟S2-4 ;步驟S2-4:判斷所述絕對值是否滿足預設條件,是則將所述第二數據開始標誌置位,返回執行步驟S2-1,否則直接返回執行步驟S2-1 ;步驟S2-5:判斷所述絕對值是否在預設範圍內,是則向第二數組中寫入I個數據位1,執行步驟S2-6,否則向第二數組中寫入I個數據位0,執行步驟S2-6;步驟S2-6:按照第六預設方法修改第二寫入次數變量的值,判斷所述第二寫入次數變量的當前值是否為第二預設值,是則修改所述第二寫入次數變量的值為其初始值,根據第二接收索引值將所述第二數組中的數據寫入所述下降沿數組的指定位置,按照第七預設方法更新所述第二接收索引值,否則返回執行步驟S2-1 ;其中,所述首次下降沿中斷觸發標誌的初始狀態為置位,所述第二數據開始標誌的初始狀態為復位;更進一步地,所述第一寫入次數變量的初始值為O ;
所述按照第四預設方法修改第一寫入次數變量具體為修改所述第一寫入次數變量的值為其當前值加I ;所述判斷所述第一寫入次數變量的當前值是否為預設值具體為判斷所述第一寫入次數變量的當前值是否為8 ;所述步驟S1-5具體包括:判斷所述絕對值是否在預設範圍內,是則向所述第一數組的低位端寫入I個數據位1,並將寫入的數據位I左移,左移位數等於所述第一寫入次數變量當前值大小,執行步驟S1-6,否則直接執行步驟S1-6 ;其中,所述第一數組中存儲的初始數據為0x00 ;或者包括:判斷所述絕對值是否在預設範圍內,是則根據所述第一寫入次數變量當前值向所述第一數組指定位寫入I個數據位1,執行步驟S1-6,否則直接執行步驟
51-6;其中,所述第一數組中存儲的初始數據為0x00 ;所述第一接收索引值的初始值為0,指向所述上升沿數組的第O個字節;所述按照第五預設方法更新所述第一接收索引值具體為更新所述第一接收索引值為其當前值加I;所述第二寫入次數變量的初始值為O ;所述按照第六預設方法修改第二寫入次數變量具體為修改所述第二寫入次數變量的值為其當前值加I ;所述判斷所述第二寫入次數變量的當前值是否為第二預設值具體為判斷所述第二寫入次數變量的當前值是否為8 ;所述步驟S2-5具體包括:判斷所述絕對值是否在預設範圍內,是則向所述第二數組的低位端寫入I個數據位1,並將寫入的數據位I左移,左移位數等於所述第二寫入次數變量當前值大小,執行步驟S2-6,否則直接執行步驟S2-6 ;其中,所述第二數組中存儲的初始數據為0x00 ;或者包括:判斷所述絕對值是否在預設範圍內,是則根據所述第二寫入次數變量當前值向所述第二數組指定位寫入I個數據位1,執行步驟S2-6,否則直接執行步驟
52-6;其中,所述第二數組中存儲的初始數據為0x00 ;所述第二接收索引值的初始值為0,指向所述下降沿數組的第O個字節;所述按照第七預設方法更新所述第二接收索引值具體為更新所述第二接收索引值為其當前值加I。本發明方法的有益效果在於:提高了音頻數據解析的效率和音頻通信的兼容性,廣泛適用於基於耳機通信的雙方進行數字通信。


為了更清楚的說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明實施例一中提供的一種解析音頻數據的方法流程圖;圖2為上升沿數組和下降沿數組的結構示意圖;圖3為本發明實施例二中提供的一種解析音頻數據方法的上升沿中斷處理流程圖4為本發明實施例二中提供的上升沿中斷處理實例圖;圖5為本發明實施例三中提供的一種解析音頻數據方法的下降沿中斷處理流程圖;圖6為本發明實施例三中提供的下降沿中斷處理實例圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。實施例一參見圖1,本發明實施例提供的一種解析音頻數據的方法,本方法中,首先將手機終端音頻接口輸出的模擬信號通過濾波電路濾除雜波,然後通過波形整形電路將模擬信號整形為數位訊號,最後再通過濾波電路濾除雜波,輸入到單片機的IO 口,當IO 口有上升沿中斷觸發時,跳轉至上升沿中斷處理流程,記錄當前定時器的值,計算每兩個相鄰記錄值之差的絕對值,當所述絕對值符合預設要求時從下一絕對值開始依次判斷每個絕對值是否在預設範圍內,是則向第一數組中寫入I個數據位I,否則向第一數組中寫入I個數據位0,當第一數組中寫滿8個數據位時,將第一數組中的數據寫入上升沿數組,然後繼續執行檢測到上升沿中斷處理流程;當IO 口有下降沿中斷觸發時,跳轉至下降沿處理流程,記錄當前定時器的值,計算每兩個相鄰記錄值之差的絕對值,當所述絕對值符合預設要求時從下一絕對值開始依次判斷每個絕對值是否在預設範圍內,是則向第二數組中寫入I個數據位1,否則向第二數組中寫入I個數據位0,當第二數組中寫滿8個數據位時,將第二數組中的數據寫入下降沿數組,然後繼續執行檢測到下降沿中斷時正在執行的操作;所述方法具體包括以下步驟:步驟101:初始化解析過程中的索引值、標誌、數組和寄存器,開啟上升沿中斷和下降沿中斷;步驟102:根據解析索引值判斷上升沿數組的當前字節以及下降沿數組的當前字節中是否有等於第一數值的,是則執行步驟104,否則執行步驟103 ;具體地,在本實施例中,所述解析索引值的初始值為0,指向上升沿數組的第O個字節和下降沿數組的第O個字節,所述第一數值為OxOf,所述上升沿數組和下降沿數組的結構示意圖可參見圖2,圖2中以接收到的為取隨機數指令且為上升沿中斷觸發為例,當判斷出上升沿數組中某一字節為OxOf時關閉下降沿中斷;在後面的內容中,本實施例以檢測出上升沿數組或下降沿數組中的當前字節等於第一數值時即關閉另一中斷為例進行說明,顯然,為了提高準確性,在檢測出上升沿數組或下降沿數組中有預先約定的音頻通信雙方進行通信的數據幀的幀頭的更多部分甚至全部都是可以的,在此不再贅述。步驟103:更新解析索引值,返回執行步驟102 ;具體地,將所述解析索引值更新為其當前值加I。步驟104:判斷上升沿數組和下降沿數組中哪一個數組的當前字節等於第一數值,若是上升沿數組的當前字節則執行步驟105,若為下降沿數組的當前字節則執行步驟106 ;步驟105:關閉下降沿中斷,將上升沿數組作為當前數組,執行步驟107 ;步驟106:關閉上升沿中斷,將下降沿數組作為當前數組,執行步驟107 ;步驟107:更新解析索引值,判斷當前數組的當前字節是否等於第二數值,是則執行步驟108,否則打開關閉的中斷,返回執行步驟102 ;具體地,將所述解析索引值更新為其當前值加1,所述第二數值為OxfO。步驟108:更新解析索引值,判斷當前數組的當前字節是否等於第三數值,是則執行步驟109,否則打開關閉的中斷,返回執行步驟102 ;具體地,將所述解析索引值更新為其當前值加1,所述第三數值為0x55。步驟109:更新解析索引值,判斷當前數組的當前字節是否等於第四數值,是則執行步驟110,否則打開關閉的中斷,返回執行步驟102 ;具體地,將所述解析索引值更新為其當前值加1,所述第四數值為Oxaa。步驟110:更新解析索引值,獲取當前數組的當前字節存入第一寄存器的低位端;具體地,將所述解析索引值更新為其當前值加4 ;在本實施例中,連續的四個字節:0x0f OxfO 0x55 Oxaa為預先約定的音頻通信雙方進行通信的數據幀的幀頭,所述幀頭後約定有三個字節的冗餘數據,所述冗餘數據後為兩個字節的數據長度。步驟111:更新解析索引值,獲取當前數組的當前字節存入第一寄存器的高位端;具體地,將所述解析指針更新為其當前值加I。步驟112:判斷第一寄存器中數據的值是否大於緩存的大小,是則清空當前數組,打開關閉的中斷,報錯,返回執行步驟102,否則執行步驟113 ;具體地,在本實施例中,所述緩存的大小為300位元組。步驟113:初始化索引值更新次數為O ;步驟114:更新解析索引值和索引值更新次數,獲取當前數組的當前字節,存入第
二寄存器;具體地,將所述解析索引值更新為其當前值加1,將所述索引值更新次數更新為其當前值加I。步驟115:更新解析索引值和索引值更新次數,獲取當前數組的當前字節,存入第
三寄存器;具體地,將所述解析索引值更新為其當前值加1,將所述索引值更新次數更新為其當前值加I。步驟116:將第二寄存器中的數據與第三寄存器中的數據進行異或,用異或結果替換第二寄存器中的數據;步驟117:判斷索引值更新次數是否等於第一寄存器中數據的值,是則執行步驟118,否則返回執行步驟115;步驟118:更新解析索引值,獲取當前數組的當前字節並用其替換第三寄存器中的數據,判斷第二寄存器中數據的值是否等於第三寄存器中數據的值,是則提示接收到的數據正確,否則清空當前數組,打開關閉的中斷,報錯,返回執行步驟102。
具體地,將所述解析索引值更新為其當前值加I。實施例二實施例一所提供的解析音頻數據方法中,當檢測到上升沿中斷時,跳轉至上升沿中斷處理流程,待所述上升沿中斷處理流程結束後繼續執行檢測到上升沿中斷時正在執行的操作,優選地,參見圖3,所述上升沿中斷處理流程包括:步驟201:判斷首次上升沿中斷觸發標誌是否置位,是則執行步驟202,否則執行步驟203 ;具體地,在本實施例中,所述首次上升沿觸發標誌的初始狀態為置位。步驟202:記錄當前時刻定時器的計數值到第四寄存器,將首次上升沿觸發標誌復位,返回執行步驟201 ;步驟203:記錄當前時刻定時器的計數值到第五寄存器;步驟204:計算第五寄存器中數據與第四寄存器中數據差的絕對值,用第五寄存器中的數據替換第四寄存器中的數據;步驟205:判斷第一數據開始標誌是否置位,是則執行步驟207,否則執行步驟206 ;具體地,在本實施例中,所述第一數據開始標誌的初始狀態為復位。步驟206:判斷所述絕對值是否滿足預設條件,是則將第一數據開始標誌置位,返回執行步驟201,否則直接返回執行步驟201 ;具體地,在本實施例中,當所述絕對值大於第一預設值且小於第二預設值時滿足預設條件,否則所述絕對值不滿足預設條件,例如,所述第一預設值為0x047c,第二預設值為 0x08f8。步驟207:判斷所述絕對值是否在預設範圍內,是則向第一數組中寫入一個數據位1,執行步驟208,否則向第一數組中寫入一個數據位0,執行步驟208 ;具體地,步驟207包含但不限於如下兩種實現方法:1、判斷所述絕對值是否在預設範圍內,是則向所述第一數組的低位端寫入一個數據位1,並將寫入的數據位I左移,左移位數等於第一寫入次數變量當前值(例如,所述第一寫入次數變量當前值為3,則將寫入的數據位I左移3位),執行步驟208,否則直接執行步驟208 ;採用本實現方法時,在步驟101中將第一數組中存儲的數據初始化為0x00 ;2、判斷所述絕對值是否在預設範圍內,是則根據第一寫入次數變量當前值向所述第一數組指定位寫入一個數據位I (例如,所述第一寫入次數變量當前值為3,則向第一數組低位端起第4位寫入一個數據位1),執行步驟208,否則直接執行步驟208 ;採用本實現方法時,在步驟101中將第一數組中存儲的數據初始化為0x00。步驟208:按照預先設定的方法修改第一寫入次數變量的值,判斷所述第一寫入次數變量的當前值是否為8,是則執行步驟209,否則返回執行步驟201 ;具體地,所述第一寫入次數變量的初始值為0,修改第一寫入次數變量的值為其當前值加I。步驟209:修改第一寫入次數變量的值為其初始值,根據第一接收索引值將第一數組中的數據寫入上升沿數組的指定位置,更新第一接收索引值。具體地,所述第一接收索引值的初始值為0,指向上升沿數組的第O個字節,將所述第一接收索引值更新為其當前值加1,指向上升沿數組的下一字節。舉例說明上述過程,具體可參見圖4。實施例三實施例一中,當檢測到下降沿中斷時,跳轉至下降沿中斷處理流程,待所述下降沿中斷處理流程結束後繼續執行檢測到下降沿中斷時正在執行的操作,優選地,參見圖5,所述下降沿中斷處理流程包括:步驟301:判斷首次下降沿觸發標誌是否置位,是則執行步驟302,否則執行步驟303 ;具體地,在本實施例中,所述首次下降沿觸發標誌的初始狀態為置位。步驟302:記錄當前時刻定時器的計數值到第六寄存器,將首次下降沿觸發標誌復位,返回執行步驟301 ;步驟303:記錄當前時刻定時器的計數值到第七寄存器;步驟304:計算第七寄存器中數據與第六寄存器中數據差的絕對值,用第七寄存器中的數據替換第六寄存器中的數據;步驟305:判斷第二數據開始標誌是否置位,是則執行步驟307,否則執行步驟306 ;具體地,在本實施例中,所述第二數據開始標誌的初始狀態為復位。步驟306:判斷所述絕對值是否滿足預設條件,是則將第二數據開始標誌置位,返回執行步驟301,否則直接返回執行步驟301 ;具體地,在本實施例中,當所述絕對值大於第一預設值且小於第二預設值時滿足預設條件,否則所述絕對值不滿足預設條件,例如,所述第一預設值為0x047c,第二預設值為 0x08f8。步驟307:判斷所述絕對值是否在預設範圍內,是則向第二數組中寫入一個數據位1,執行步驟308,否則向第二數組中寫入一個數據位0,執行步驟308 ;具體地,步驟307包含但不限於如下兩種實現方法:1、判斷所述絕對值是否在預設範圍內,是則向所述第二數組的低位端寫入一個數據位1,並將寫入的數據位I左移第二寫入次數變量當前值大小位(例如,所述第二寫入次數變量當前值為2,則將寫入的數據位I左移2位),執行步驟308,否則直接執行步驟308 ;採用本實現方法時,在步驟101中將第二數組中存儲的數據初始化為0x00 ;2、判斷所述絕對值是否在預設範圍內,是則根據第二寫入次數變量當前值向所述第二數組指定位寫入一個數據位I (例如,所述第二寫入次數變量當前值為2,則向第二數組低位端起第3位寫入一個數據位1),執行步驟308,否則直接執行步驟308 ;採用本實現方法時,在步驟101中將第二數組中存儲的數據初始化為0x00。步驟308:按照預先設定的方法修改第二寫入次數變量的值,判斷所述第二寫入次數變量的當前值是否為8,是則執行步驟309,否則返回執行步驟301 ;具體地,在本實施例中,所述第二寫入次數變量的初始值為0,修改第二寫入次數變量的值為其當前值加I。步驟309:修改第二寫入次數變量的值為其初始值,根據第二接收索引值將第二數組中的數據寫入下降沿數組的指定位置,更新第二接收索引值。
具體地,在本實施例中,所述第二接收索引值的初始值為0,指向下降沿數組的第O個字節,將所述第二接收索引值更新為其當前值加1,指向下降沿數組的下一字節。舉例說明上述過程,具體可參見圖6,圖中的音頻數據與圖4中音頻數據相同,圖4和圖6是對於相同的音頻數據根據上升沿中斷和下降沿中斷處理得到不同的數據。以上所述的實施例只是本發明較優選的具體實施方式
,本領域的技術人員在本發明技術方案範圍內進行的通常變化和替換都應包含在本發明的保護範圍內。
權利要求
1.一種解析音頻數據的方法,其特徵在於,包括: 步驟A:根據解析索引值判斷上升沿數組和下降沿數組中是否有滿足預設條件的字節,是則將有滿足預設條件的字節的數組作為當前數組,關閉另外一個數組對應的中斷,執行步驟C,否則執行步驟B; 步驟B:按照第一預設方法更新所述解析索引值,返回執行步驟A ; 步驟C:按照第二預設方法更新所述解析索引值,根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的第一指定位置; 步驟D:按照第一預設方法更新所述解析索引值,根據所述解析索引值獲取當前數組的當前字節存入所述第一寄存器的第二指定位置,判斷所述第一寄存器中數據的值是否滿足預設要求,是則執行步驟E,否則清空當前數組,打開關閉的所述另外一個數組對應的中斷,報錯,返回執行步驟A ; 步驟E:按照第一預設方法更新所述解析索引值,按照第三預設方法更新索引值更新次數,根據所述解析索引值獲取當前數組的當前字節,存入第二寄存器; 步驟F:按照第一預設方法更新所述解析索引值,按照第三預設方法更新索引值更新次數,根據所述解析索引值獲取當前數組的當前字節,存入第三寄存器; 步驟G:將所述第二寄存器中的數據與所述第三寄存器中的數據進行校驗運算,用運算結果替換所述第二寄存器中的數據,判斷所述索引值更新次數是否等於所述第一寄存器中數據的值,是則執行步驟H,否則返回執行步驟F ; 步驟H:按照第一預設方法更新所述解析索引值,根據所述解析索引值獲取當前數組的當前字節並用其替換所述第三寄存器中的數據,判斷所述第二寄存器中數據的值是否等於第三寄存器中數據的值,是則提示接收到的數據正確,結束,否則清空當前數組,打開關閉的所述另外一個數組對應的中斷,報錯,返回執行步驟A。
2.根據權利要求1所述的方法,其特徵在於,所述步驟A包括: 步驟Al:根據所述解析索引值判斷上升沿數組的當前字節以及下降沿數組的當前字節中是否有等於第一數值的,是則執行步驟A3,否則執行步驟B ; 步驟A2:判斷上升沿數組和下降沿數組中哪一個數組的當前字節等於第一數值,若是上升沿數組的當前字節則關閉下降沿中斷,將上升沿數組作為當前數組,執行步驟A3,若是下降沿數組的當前字節則關閉上升沿中斷,將下降沿數組作為當前數組,執行步驟A3 ;步驟A3:按照第一預設方法更新所述解析索引值,根據所述解析索引值判斷當前數組的當前字節是否等於第二數值,是則執行步驟A4,否則打開關閉的中斷,返回執行步驟Al ;步驟A4:按照第一預設方法更新所述解析索引值,根據所述解析索引值判斷當前數組的當前字節是否等於第三數值,是則執行步驟A5,否則打開關閉的中斷,返回執行步驟Al ;步驟A5:按照第一預設方法更新所述解析索引值,根據所述解析索引值判斷當前數組的當前字節是否等於第四數值,是則執行步驟C,否則打開關閉的中斷,返回執行步驟Al。
3.根據權利要求1所述的方法,其特徵在於, 所述將所述第二寄存器中的數據與所述第三寄存器中的數據進行校驗運算具體為將所述第二寄存器中的數據與所述第三寄存器中的數據進行異或運算。
4.根據權利要求1所述的方法,其特徵在於, 所述根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的第一指定位置具體為根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的低位端; 所述根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的第二指定位置具體為根據所述解析索引值獲取當前數組的當前字節存入第一寄存器的高位端; 所述判斷所述第一寄存器中數據的值是否滿足預設要求具體為判斷所述第一寄存器中數據的值是否不大於緩存的大小。
5.根據權利要求4所述的方法,其特徵在於, 所述解析索引值、所述索引值更新次數的初始值均為O ; 所述按照第一預設方法更新所述解析索引值具體為將所述解析索引值更新為其當前值加I ; 所述按照第二預設方法更新所述解析索引值具體為將所述解析索引值更新為其當前值加4 ; 所述按照第三預設方法更新索引值更新次數具體為將所述索引值更新次數更新為其當前值加I。
6.根據權利要求1所述的方法,其特徵在於,所述步驟A之前包括:將音頻模擬信號通過濾波電路濾除雜波,通過波形整波電路整形為數位訊號後再通過濾波電路濾除雜波,輸入到單片機的IO 口。
7.根據權利要求6所述的方法,其特徵在於,當所述IO口檢測到上升沿中斷時,跳轉至上升沿中斷處理流程,執行步驟Si後繼續檢測到上升沿中斷時正在執行的操作,當所述IO口檢測到下降沿中斷時,跳轉至下降沿中斷處理流程,執行步驟S2後繼續檢測到下降沿中斷時正在執行的操作; 步驟S1:記錄當前定時器的值,計算每兩個相鄰記錄值之差的絕對值,當所述絕對值符合預設要求時從下一絕對值開始依次判斷每個絕對值是否在預設範圍內,是則向第一數組中寫入I個數據位1,否則向所述第一數組中寫入I個數據位0,當所述第一數組中寫滿8個數據位時,將所述第一數組中的數據寫入上升沿數組; 步驟S2:記錄當前定時器的值,計算每兩個相鄰記錄值之差的絕對值,當所述絕對值符合預設要求時從下一絕對值開始依次判斷每個絕對值是否在預設範圍內,是則向第二數組中寫入I個數據位1,否則向所述第二數組中寫入I個數據位0,當所述第二數組中寫滿8個數據位時,將所述第二數組中的數據寫入下降沿數組。
8.根據權利要求7所述的方法,其特徵在於,所述步驟SI具體包括: 步驟Sl-1:判斷首次上升沿中斷觸發標誌是否置位,是則執行步驟S1-2,否則執行步驟 S1-3 ; 步驟S1-2:記錄當前時刻定時器的計數值到第四寄存器,將所述首次上升沿觸發標誌復位,返回執行步驟Sl-1 ; 步驟S1-3:記錄當前時刻定時器的計數值到第五寄存器,計算所述第五寄存器中數據與所述第四寄存器中數據差的絕對值,用所述第五寄存器中的數據替換所述第四寄存器中的數據,判斷第一數據開始標誌是否置位,是則執行步驟S1-5,否則執行步驟S1-4 ; 步驟S1-4:判斷所述絕對值是否滿足預設條件,是則將所述第一數據開始標誌置位,返回執行步驟S1-1,否則直接返回執行步驟Sl-1 ; 步驟S1-5:判斷所述絕對值是否在預設範圍內,是則向第一數組中寫入I個數據位1,執行步驟S1-6,否則向第一數組中寫入I個數據位O,執行步驟S1-6; 步驟S1-6:按照第四預設方法修改第一寫入次數變量的值,判斷所述第一寫入次數變量的當前值是否為預設值,是則修改所述第一寫入次數變量的值為其初始值,根據第一接收索引值將所述第一數組中的數據寫入所述上升沿數組的指定位置,按照第五預設方法更新所述第一接收索引值,否則返回執行步驟Sl-1 ; 其中,所述首次上升沿中斷觸發標誌的初始狀態為置位,所述第一數據開始標誌的初始狀態為復位。
9.根據權利要求8所述的方法,其特徵在於, 所述第一寫入次數變量的初始值為O ; 所述按照第四預設方法修改第一寫入次數變量具體為修改所述第一寫入次數變量的值為其當前值加I; 所述判斷所述第一寫入次數變量的當前值是否為預設值具體為判斷所述第一寫入次數變量的當前值是否為8。
10.根據權利要求9所述的方法,其特徵在於,所述步驟S1-5具體包括: 判斷所述絕對值是否 在預 設範圍內,是則向所述第一數組的低位端寫入I個數據位1,並將寫入的數據位1左移,左移位數等於所述第一寫入次數變量當前值大小,執行步驟S1-6,否則直接執行步驟S1-6 ;其中,所述第一數組中存儲的初始數據為0x00。
11.根據權利要求9所述的方法,其特徵在於,所述步驟S1-5具體包括: 判斷所述絕對值是否在預設範圍內,是則根據所述第一寫入次數變量當前值向所述第一數組指定位寫入I個數據位1,執行步驟S1-6,否則直接執行步驟S1-6 ;其中,所述第一數組中存儲的初始數據為0x00。
12.根據權利要求8所述的方法,其特徵在於, 所述第一接收索引值的初始值為0,指向所述上升沿數組的第O個字節; 所述按照第五預設方法更新所述第一接收索引值具體為更新所述第一接收索引值為其當前值加I。
13.根據權利要求7所述的方法,其特徵在於,所述步驟S2具體包括: 步驟S2-1:判斷首次下降沿中斷觸發標誌是否置位,是則執行步驟S2-2,否則執行步驟 S2-3 ; 步驟S2-2:記錄當前時刻定時器的計數值到第六寄存器,將所述首次下降沿觸發標誌復位,返回執行步驟S2-1 ; 步驟S2-3:記錄當前時刻定時器的計數值到第七寄存器,計算所述第七寄存器中數據與所述第六寄存器中數據差的絕對值,用所述第七寄存器中的數據替換所述第六寄存器中的數據,判斷第二數據開始標誌是否置位,是則執行步驟S2-5,否則執行步驟S2-4 ; 步驟S2-4:判斷所述絕對值是否滿足預設條件,是則將所述第二數據開始標誌置位,返回執行步驟S2-1,否則直接返回執行步驟S2-1 ; 步驟S2-5:判斷所述絕對值是否在預設範圍內,是則向第二數組中寫入I個數據位1,執行步驟S2-6,否則向第二數組中寫入I個數據位0,執行步驟S2-6; 步驟S2-6:按照第六預設方法修改第二寫入次數變量的值,判斷所述第二寫入次數變量的當前值是否為第二預設值,是則修改所述第二寫入次數變量的值為其初始值,根據第二接收索引值將所述第二數組中的數據寫入所述下降沿數組的指定位置,按照第七預設方法更新所述第二接收索引值,否則返回執行步驟S2-1 ; 其中,所述首次下降沿中斷觸發標誌的初始狀態為置位,所述第二數據開始標誌的初始狀態為復位。
14.根據權利要求13所述的方法,其特徵在於, 所述第二寫入次數變量的初始值為O ; 所述按照第六預設方法修改第二寫入次數變量具體為修改所述第二寫入次數變量的值為其當前值加I ; 所述判斷所述第二寫入次數變量的當前值是否為第二預設值具體為判斷所述第二寫入次數變量的當前值是否為8。
15.根據權利要求14所述的方法,其特徵在於,所述步驟S2-5具體包括: 判斷所述絕對值是否在預設範圍內,是則向所述第二數組的低 位端寫入I個數據位1,並將寫入的數據位I左移,左移位數等於所述第二寫入次數變量當前值大小,執行步驟S2-6,否則直接執行步驟S2-6 ;其中,所述第二數組中存儲的初始數據為0x00。
16.根據權利要求14所述的方法,其特徵在於,所述步驟S2-5具體包括: 判斷所述絕對值是否在預設範圍內,是則根據所述第二寫入次數變量當前值向所述第二數組指定位寫入I個數據位1,執行步驟S2-6,否則直接執行步驟S2-6 ;其中,所述第二數組中存儲的初始數據為0x00。
17.根據權利要求13所述的方法,其特徵在於, 所述第二接收索引值的初始值為0,指向所述下降沿數組的第O個字節; 所述按照第七預設方法更新所述第二接收索引值具體為更新所述第二接收索引值為其當前值加I。
全文摘要
本發明公開一種解析音頻數據的方法,涉及通信領域,包括判斷上升沿數組和下降沿數組中是否有滿足預設條件的字節,是則將有滿足預設條件的字節的數組作為當前數組,關閉另外一個數組對應的中斷,獲取當前數組的當前字節和下一字節存入第一寄存器,若第一寄存器中數據的值滿足預設要求則更新解析索引值,獲取當前數組的當前字節存入第二寄存器,獲取下一字節存入第三寄存器,將第二寄存器中的數據與第三寄存器中的數據進行校驗運算,運算結果替換第二寄存器中的數據,當索引值更新次數等於第一寄存器中數據的值時若第二寄存器中數據的值滿足要求則提示接收到的數據正確,結束;本發明的有益效果在於提高音頻數據解析效率和音頻通信的兼容性。
文檔編號H04W88/02GK103198837SQ20131007851
公開日2013年7月10日 申請日期2013年3月12日 優先權日2013年3月12日
發明者陸舟, 於華章 申請人:飛天誠信科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀