TWI795165B - 藍牙封包的接收和錯誤修正方法及電腦程式產品及裝置 - Google Patents
藍牙封包的接收和錯誤修正方法及電腦程式產品及裝置 Download PDFInfo
- Publication number
- TWI795165B TWI795165B TW111100964A TW111100964A TWI795165B TW I795165 B TWI795165 B TW I795165B TW 111100964 A TW111100964 A TW 111100964A TW 111100964 A TW111100964 A TW 111100964A TW I795165 B TWI795165 B TW I795165B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- packets
- bluetooth
- receiving
- bluetooth packets
- Prior art date
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本發明涉及一種藍牙封包的接收和錯誤修正方法、電腦程式產品及裝置。該方法由處理單元執行,包含:從射頻訊號中接收到多個藍牙封包;當所述多個藍牙封包能夠產生唯一的合成封包時,將所述唯一的合成封包進行校驗和的校驗;當所述多個藍牙封包不能夠產生所述唯一的合成封包時,依據所述多個藍牙封包間的一個或多個不一致位元產生多個候選合成封包,將所述多個候選合成封包進行校驗和的校驗;當所述唯一的合成封包或者所述多個候選合成封包中的一個通過校驗時,傳送通過校驗的合成封包到應用程序模組;以及當所述唯一的合成封包不通過校驗或者所述多個候選合成封包都不通過校驗時,啟動重傳藍牙封包的接收操作。通過如上所述的唯一的合成封包或者多個候選合成封包的產生和校驗,可減少重傳次數,或者提升藍牙封包的成功接收率。
Description
本發明涉及無線傳輸技術,尤指一種藍牙封包的接收和錯誤修正方法、電腦程式產品及裝置。
藍牙是一種短距無線傳輸技術標準,用於利用ISM頻段的無線電波在固定和移動裝置間進行短距離的資料交換,ISM頻段包含2.402千兆赫(GHz)到2.48千兆赫(GHz)的頻率。依據封包類型的不同,每個封包可以錯誤修正技術保護,如1/3或2/3前向錯誤修正(Forward Error Correction,FEC)。此外,封包資料(Payload)和循環冗餘碼(Cyclical Redundancy Check,CRC)將會不斷重傳,一直到自動重傳請求(Automatic Repeat reQuest,ARQ)被確收為止。然而,如何加快藍牙封包的錯誤修正,一直在藍牙封包的接收上是重要的課題。因此,本發明提出一種藍牙封包的接收和錯誤修正方法、電腦程式產品及裝置,用於提昇藍牙通訊的效率。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種藍牙封包的接收和錯誤修正方法的實施例,由處理單元執行,包含:從射頻訊號中接收到多個藍牙封包;當所述多個藍牙封包能夠產生唯一的合成封包時,將所述唯一的合成封包進行校驗和的校驗;當所述多個藍牙封包不能夠產生所述唯一的合成
封包時,依據所述多個藍牙封包間的一個或多個不一致位元產生多個候選合成封包,將所述多個候選合成封包進行校驗和的校驗;當所述唯一的合成封包或者所述多個候選合成封包中的一個通過校驗時,傳送通過校驗的合成封包到應用程序模組;以及當所述唯一的合成封包不通過校驗或者所述多個候選合成封包都不通過校驗時,啟動重傳藍牙封包的接收操作。
本說明書還涉及一種電腦程式產品的實施例,包含程式碼。當處理單元載入及執行程式碼時,實施如上所示的藍牙封包的接收和錯誤修正方法。
本說明書還涉及一種藍牙封包的接收和錯誤修正裝置的實施例,包含:處理單元。處理單元用於載入及執行程式碼時,實施如上所示的藍牙封包的接收和錯誤修正方法。
上述實施例的優點之一,通過如上所述的唯一的合成封包或者多個候選合成封包的產生和校驗,可減少重傳次數,或者提升藍牙封包的成功接收率。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
110:左無線耳機
120:右無線耳機
130:手機
210:天線
220:射頻模組
230:調變解調器
240:基頻模組
242:處理單元
244:記憶體
S310~S360:方法步驟
410:傳送器
420:接收器
430:傳送器產生的藍牙封包
440#0,440#1:接收器接收的藍牙封包
450#0~450#7:候選合成封包
510:傳送器
520:接收器
530:傳送器產生的藍牙封包
540#0~540#2:接收器接收的藍牙封包
550:合成封包
610,630,710:反白化操作
620,640,720,740:CRC校驗操作
730:E0演算法的解密操作
圖1為依據本發明實施例的藍牙通訊應用的示意圖。
圖2為依據本發明實施例的設置在左無線耳機或右無線耳機的系統架構圖。
圖3為依據本發明實施例的藍牙封包的接收和錯誤修正方法的流程圖。
圖4顯示依據本發明實施例的候選合成封包的產生和校驗的示意圖。
圖5顯示依據本發明實施例的唯一的合成封包的產生和校驗的示意圖。
圖6顯示依據本發明實施例的在低功耗未編碼實體層和低功耗已編碼實體層上的封包資料位元處理流程的示意圖。
圖7顯示依據本發明實施例的基本傳輸率/增強資料傳輸率的封包資料位元處理流程的示意圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、”第二”、”第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為”連接”或”耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為”直接連接”或”直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如”介於”相對於”直接介於”,或者是”鄰接”相對於”直接鄰接”等等。
參考圖1所示的藍牙通訊應用。使用者在本實施例中可通過無線耳機來獲取手機130的資料。無線耳機是一對具有無線通訊能力的裝置,包含左無線耳機(left wireless earbud)110和右無線耳機(right wireless earbud)120,左無線耳機110與右無線耳機120之間並沒有實體線互相連接。手機130與左無線耳機110之間以及手機130與右無線耳機120之間可使用無線通訊連線傳遞攜帶使用者的語音訊號的封包,例如藍牙(Bluetooth)的低功耗音訊(low energy,LE
Audio)等。在一些實施例中,左無線耳機110和右無線耳機120可分別從手機130接收相應於立體聲資料(stereo data)的左聲道(left channel)和右聲道(right channel)的媒體封包(media packets)。手機130可稱為無線主裝置(wireless master device),而左無線耳機110和右無線耳機120可稱為無線從裝置(wireless slave devices)。左無線耳機110和右無線耳機120互為對等端裝置。
除了以上所述的藍牙的低功耗音訊,本發明實施例也可應用在其他的藍牙通訊技術,例如,藍牙的基礎速率(Basic Rate,BR)、增強資料率(Enhanced Data Rate,EDR)、同步連結導向(Synchronous Connection-Oriented,SCO)、延伸同步連結導向(extended Synchronous Connection-Oriented,eSCO)等。此外,本發明實施例也可應用在其他的藍牙通訊應用,例如,兩個電子裝置間的點對點資料傳輸,或者個人區域網路(Personal Area Network,PAN)中多個電子裝置間的點對點資料傳輸等。
參考圖2所示的系統架構圖。此系統架構可設置在手機130、左無線耳機110或右無線耳機120之中,包含天線210、射頻模組(RF module)220、調變解調器(modulator-demodulator,modem)230和基頻模組(baseband module)240。基頻模組240包含處理單元242和記憶體244。處理單元242可使用多種方式實施,如使用通用硬體(例如,微控制單元、數位訊號處理器、單一處理器、具備平行處理能力的多處理器、圖形處理器或其他具備運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。記憶體244可配置空間作為資料緩衝區,暫存從介質中接收到的控制資料、媒體封包等。記憶體244另可儲存執行過程中需要的資料,例如,變數、資料表等。處理單元242可通過匯流排架構耦接記憶體244,用以存取資料。
在藍牙低功耗通道選擇演算法(BLE Channel Selection Algorithm)
下,手機130可傳送相同或不同的通道圖(channel map)給左無線耳機110和右無線耳機120。左無線耳機110或右無線耳機120可依據接收到的通道圖和預定的跳入演算法(hopping algorithm)知道在每個時間區間(或時槽)中使用2.4到2.48GHz頻段中的多個實體通道(例如37個)中的指定一個進行資料接收或傳送。射頻模組220可在每個時間區間中使用指定的實體通道進行資料接收或傳送。射頻模組220用於接收介質中的射頻訊號,將接收到的訊號轉為可以讓調變解調器230處理的基頻訊號,以及從調變解調器230接收基頻訊號並轉換為可以傳送到手機130的射頻訊號。射頻模組220可包含混頻器(mixer),用於依據輸入的訊號和本地震盪器(local oscillator)所輸出的訊號以產生新的頻率。調變解調器230可實施高思頻率鍵移(Gaussian Frequency Shift Keying,GFSK)、π/4-差分正交相位鍵移(Differential Quadrature Phase Shift Keying,DQPSK)或8-差分相位鍵移(Differential Phase Shift Keying,DPSK)等調變及解調技術。
雖然藍牙通訊協議中使用了重傳的機制,用於在封包資料無法通過校驗時,讓傳送端可以重傳封包資料給接收端,但是,每重傳一次就會多耗費一些時間和頻寬。因此,本發明實施例提出一種藍牙封包的接收和錯誤修正方法,由藍牙裝置(例如,手機130、左無線耳機110、右無線耳機120等)中的處理單元242於載入並執行特定韌體時實施,用於減少重傳的次數,提升資料接收的成功率。在這裡需要注意的是,當傳送端和接收端之間的連接組態為每次重傳的藍牙封包都相同於原始的藍牙封包,並且藍牙封包的長度是固定的時,此方法才會啟動。參考圖3所示的詳細步驟:
步驟S310:通過天線210、射頻模組220和調變解調器230中的接收路徑從傳送端接收具有特定識別碼的藍牙封包(如果沒有特別說明,以下步驟都簡稱為藍牙封包)。藍牙封包中至少包含封包資料
(payload)和校驗和(checksum)。校驗和是依據封包資料產生的冗餘位元,可以是循環冗餘碼(Cyclical Redundancy Check,CRC)、MD5等。在這裡需要注意的是,以上所述的藍牙封包可能是傳送端第一次傳送的原始封包,或者是傳送端重傳的藍牙封包。
步驟S320:判斷先前接收到的多個藍牙封包是否能產生唯一的合成封包(unique synthesized packet)。如果是,流程繼續進行步驟S340的處理;否則,流程繼續進行步驟S330的處理。處理單元242可判斷先前接收到的多個藍牙封包中的不一致的位元是否能夠依據多數決原則(majority decision)產生唯一的合成封包。例如,如果接收到的三個藍牙封包只有第10個位元不一致,第一次接收到的藍牙封包的第10個位元為”1”,第二次接收到的藍牙封包的第10個位元為”0”,而第三次接收到的藍牙封包的第10個位元為”1”,則依據多數決原則能夠產生第10個位元為”1”的唯一的合成封包。
步驟S330:依據先前接收到的多個藍牙封包間不一致的位元產生多個候選合成封包(multiple synthesized packet candidates),用以表示多個藍牙封包間不一致位元的所有可能組合。
步驟S340:判斷產生的候選合成封包中是否有一個能夠通過校驗。如果是,流程繼續進行步驟S360的處理;否則,流程繼續進行步驟S350的處理。處理單元242可依據藍牙封包中攜帶的校驗和來判斷藍牙封包中的封包資料是否通過校驗。
步驟S350:啟動重傳操作。例如,通過天線210、射頻模組220和調變解調器230中的傳送路徑回覆相應於在步驟S310接收到的藍牙封包的不認可訊息(negative acknowledgement,NAK)給傳送端,或者傳送帶有特定識別碼的重傳請求(re-transmission request)給傳送端,使得傳送端可據以重傳特定識別碼所指出的藍牙封包。
步驟S360:傳送通過校驗的合成封包到特定應用的程序模組,而特定應用可以是文件資料處理、語音資料處理、人機界面控制等。
以下舉出幾個使用案例來說明如上所述的方法。參考圖4所示的使用案例,傳送器410在時間點t0傳送藍牙封包“0xFE28 555555555555 00C5AB A53C68”430給接收器420,其中“0xFE28”表示封包表頭(packet header),“0x555555555555”表示封包資料,“0x00C5AB”表示訊息統合校驗碼(Message Integrated Check,MIC),並且“0xA53C68”表示校驗和。然而,因為噪訊的干擾,接收器420在時間點t0接收到錯誤的藍牙封包“0xFE28 555557555555 00C5AB A53C68”440#0,其中,底線標起的地方包含錯誤數字(步驟S310),使得錯誤的藍牙封包無法通過校驗(步驟S340中“否”的路徑),並且啟動重傳操作(步驟S350)。傳送器410在時間點t1重傳藍牙封包“0xFE28 555555555555 00C5AB A53C68”430給接收器420。然而,因為噪訊的干擾,接收器420在時間點t1依然接收到錯誤的藍牙封包“0xFE28 555545555555 00C5AB A53C69”440#1,其中,底線標起的地方包含錯誤數字(步驟S310)。由於先前接收到的藍牙封包440#0和440#1不能產生唯一的合成封包(步驟S320中“否”的路徑),於是,依據先前接收到的藍牙封包440#0和440#1產生八個候選合成封包450#0至450#7,用以表示接收到的藍牙封包440#0和440#1中的不一致位元的所有可能組合(步驟S330),並且對這八個候選合成封包450#0至450#7進行校驗。
進一步來說,藍牙封包440#0及440#1在最低位的數字上不相同,分別是8及9。“0x8”相當於“2b1000”,而“0x9”相當於“2b1001”,不一致位元的所有可能組合為“1000”及“1001”,據以所有可能數字為8及9。
類似的,藍牙封包440#0及440#1在第十九個數字上不相同,分別是7及5。“0x7”相當於“2b0111”,而“0x5”相當於“2b0101”,不一致位元的所有可能組合為“0111”及“0101”,據以所有可能數字為7及5。
類似的,藍牙封包440#0及440#1在第二十個數字上不相同,分別是
5及4。“0x5”相當於“2b0101”,而“0x4”相當於“2b0100”,不一致位元的所有可能組合為“0101”及“0100”,據以所有可能數字為5及4。
在校驗的過程中,發現候選合成封包450#1通過校驗(步驟S340中“是”的路徑),於是,傳送候選合成封包450#1到特定應用的程序模組(步驟S360)。
參考圖5所示的使用案例,傳送器510在時間點t0傳送藍牙封包“0xFE28 555555555555 00C5AB A53C68”530給接收器520。然而,因為噪訊的干擾,接收器520在時間點t0接收到錯誤的藍牙封包“0xFE28 55555F555555 00C5AB A53C68”540#0,其中,底線標起的地方包含錯誤數字(步驟S310),使得錯誤的藍牙封包無法通過校驗(步驟S340中“否”的路徑),並且啟動重傳操作(步驟S350)。傳送器510分別在時間點t1和t2重傳藍牙封包“0xFE28 555555555555 00C5AB A53C68”530給接收器520。然而,因為噪訊的干擾,接收器520在時間點t1接收到錯誤的藍牙封包“0xFE28 555515555555 00C5AB A53C65”540#1,並且在時間點t2接收到錯誤的藍牙封包“0xFE28 555555555045 00C5AB A53C68”540#2,其中,底線標起的地方包含錯誤數字(步驟S310)。由於先前接收到的藍牙封包540#0、540#1和540#2中不一致的數字依據多數決原則(majority decision)能產生唯一的合成封包“0xFE28 555555555555 00C5AB A53C68”550(步驟S320中“是”的路徑),並且發現唯一的合成封包550通過校驗(步驟S340中“是”的路徑),於是,傳送合成封包550到特定應用的程序模組(步驟S360)。
由圖5所示的使用案例可以理解,是通過逐一比較多個藍牙封包的每一數字,來評估是否有錯誤數字。例如通過比較藍牙封包540#0及重傳的藍牙封包540#1及540#2,可知藍牙封包540#1的最低位十六進制數字的數值“5”不同於藍牙封包540#0及540#2的最低位十六進制數字的數值“8”。也就是說,為確保能夠完成藍牙封包540#0中
每一數字與重傳的藍牙封包540#1中每一數字的比較,重傳的藍牙封包540#1的長度需跟藍牙封包540#0的長度相同。同理,藍牙封包540#2的長度需跟藍牙封包540#0的長度相同。
如上所述的藍牙封包的接收和錯誤修正方法可應用在低功耗音訊(Low Energy,LE audio)的標準,在一些實施例中,手機130可分別和左無線耳機110及右無線耳機120建立不同的連接導向等時通道(connection-oriented isochronous channels),而每個通道使用低功耗連接等時串流(LE Connected Isochronous Stream,LE-CIS)的邏輯傳輸並且支援雙向通訊。這兩個CIS形成連接等時群(Connected Isochronous Group,CIG),並且每個CIS可具有多個CIS實例(instances)。在一個CIG中,針對每個CIS會排程傳送時槽(TX slot)和接收時槽(RX slot),稱為事件(events)和子事件(subevents)。在相同CIG中的CIS實例擁有共通的時間參考資料,其用於讓左無線耳機110及右無線耳機120同步等時資料的處理。每個事件以規律的時間間隔發生,又稱為等時區間(isochronous,ISO interval),ISO區間可以設為從5毫秒(milliseconds,ms)到4秒中的1.25毫秒的倍數。每個事件還可切分出一個或多個子事件。每個子事件包含一個傳送時槽和一個接收時槽。在CIS中的每個子事件,手機130可在手機130的傳送時槽傳送媒體封包給左無線耳機110或右無線耳機120,並且左無線耳機110或右無線耳機120可在手機130的接收時槽傳送回覆封包(response packet)給手機130。媒體封包可指包含鏈結層資料協議資料單元(link layer data protocol data unit,LL data PDU)的封包,用於攜帶左聲道或右聲道資料。回覆封包可為空封包(empty packet),並且包含確收(acknowledgement,ACK)或者是不確收(negative-acknowledgement,NAK)的資訊。當手機130從左無線耳機110或右無線耳機120接收到不確收的資訊時,手機130可重傳媒體封包。
例如,在一個子事件中,當手機130發現回覆封包中的下個期望順序號碼(next expected sequence number,NESN)等於媒體封包中的順序碼(sequence number,SN)時,代表回覆封包中包含不確收的資訊,手機130在下個子事件中重傳此媒體封包。反之,代表回覆封包中包含確收的資訊,此媒體封包不需要重傳。
在建立CIS連接時,手機130可發送鏈結層連接等時串流請求(LL CIS request,LL_CIS_REQ)給左無線耳機110和右無線耳機120,其中的控制資料欄位(CtrData Field)可包含1位元的幀化(Framed)參數,其中,當幀化參數設為“0”時,代表此CIS連接用於傳輸非幀化資料封包資料單元(unframed Data PDUs);當幀化參數設為“1”時,代表此CIS連接用於傳輸幀化資料封包資料單元(framed Data PDUs)。當左無線耳機110或右無線耳機120收到LL_CIS_REQ後,送出鏈結層連接等時串流回覆(LL CIS response,LL_CIS_RSP)給手機130。當左無線耳機110或右無線耳機120中的處理單元242偵測到LL_CIS_REQ中的幀化參數設為“0”時,知道手機130在此CIS連接上傳送的藍牙封包的長度是固定的,接著啟動如上所述的藍牙封包的接收和錯誤修正方法。
在另一些實施例中,手機130可和左無線耳機110及右無線耳機120建立非連接等時通道(connectionless isochronous channel),其使用兩個低功耗廣播等時串流(LE broadcast isochronous stream,LE-BIS)的邏輯傳輸並且支援單向通訊(uni-directional communication)。這兩個BIS形成廣播等時群組(broadcast isochronous group,BIG),並且每個BIG可具有多個BIS實例。在BIG中的BIS實例擁有共通的時間參考資料,其用於讓左無線耳機110及右無線耳機120同步廣播等時資料的處理。每個BIS可擁有多個無線接收端,並且每個BIS實例具有獨一無二的存取地址及使用特定的通道圖來發送媒體封包。針對每個BIS,會排程傳送時槽,稱為事件和子事件。每個事件以
規律的ISO區間發生。每個事件還可切分出一個或多個子事件。每個子事件包含一個傳送時槽。以手機130為例,在BIS中的每個子事件,手機130可在手機130的傳送時槽傳送媒體封包給左無線耳機110或右無線耳機120。此外,針對每個BIS還會設定重傳次數(retransmission number,RTN)。舉例來說,當RTN=1時,表示每個媒體封包都會重傳一次。
在建立BIG廣播時,手機130可發送多組BIS與週期性通告封包(Periodic Advertising)封包,且週期性通告封包內有包含BIG傳輸資訊(BIG Information,BIGInfo)。左無線耳機110和右無線耳機120接收到週期性通告封包的BIG傳輸資訊,其中BIG傳輸資訊包含1位元的幀化(Framing)參數,其中,當幀化參數設為“0”時,代表此BIS連接用於傳輸非幀化資料封包資料單元(unframed Data PDUs);當幀化參數設為“1”時,代表此BIS連接用於傳輸幀化資料封包資料單元(framed Data PDUs)。當左無線耳機110或右無線耳機120中的處理單元242偵測到建立廣播等時群組命令中的幀化參數設為“0”時,知道手機130在此BIS連接上傳送的藍牙封包的長度是固定的,接著啟動如上所述的藍牙封包的接收和錯誤修正方法。
圖6的(A)部分(上半部分)顯示在LE未編碼實體層(Uncoded PHYs)上的封包資料位元處理流程(payload bit process)。傳送端產生藍牙封包的封包表頭(表示為“HDR”)和封包資料(表示為“Payload”),並且分別對其加密以產生訊息統合校驗碼(表示為“MIC”)和加密後封包資料(表示為“Enc.Payload”)。接著,傳送端對藍牙封包的封包表頭、加密後封包資料和訊息統合校驗碼進行循環冗餘碼的編碼,並將編碼後的結果(表示為“CRC”)封裝到藍牙封包。接收端在執行反白化(dewhitening)610之後,理論上應該會獲得如上所述的從傳送端傳送出來的藍牙封包。為了驗證接收的結果是否正確,接收端會進行CRC校驗620。以上所述的藍牙封
包的接收和錯誤修正方法可整合到CRC校驗620的處理中,或者執行在反白化610和CRC校驗620之間。如果接收的藍牙封包無法通過CRC校驗,則執行重傳的操作。
在一些特定藍牙通訊標準中,即便未受到雜訊的干擾,在CRC校驗之前,重傳的藍牙封包與原始的藍牙封包之間仍存在差異。若將上述的藍牙封包的接收和錯誤修正方法應用到上述的特定藍牙通訊標準,可能無法有效地進行錯誤修正,因為即使辨識出藍牙封包之間的差異,此差異不一定是雜訊的干擾所致。換言之,在未受到雜訊的干擾下,在受到CRC校驗處理之前,只要重傳的藍牙封包與原始的藍牙封包之間實質上無差異,上述的藍牙封包的接收和錯誤修正方法相對有效。
圖6的(B)部分(下半部分)顯示在LE已編碼實體層(Coded PHYs)上的封包資料位元處理流程。類似地,以上所述的藍牙封包的接收和錯誤修正方法可整合到CRC校驗640的處理中,或者執行在反白化630和CRC校驗640之間。圖6的位元流處理流程的技術細節可參考在2019年12月31日發表的Bluetooth Core Specification v5.2,Vol 6,Part B,Chapter 3。
如上所述的藍牙封包的接收和錯誤修正方法可應用在基本傳輸率(Basic Rate,BR)/增強資料傳輸率(Enhance Data Rate,EDR)的第一代/第二代藍牙通訊標準,在一些實施例中,手機130可和左無線耳機110及右無線耳機120建立同步連結導向(Synchronous Connection Oriented,SCO)/增強同步連結導向(enhanced Synchronous Connection Oriented,eSCO)連接。SCO/eSCO連接是在手機130和左無線耳機110與右無線耳機120中之一者之間對稱的、點對點連接。舉例來說,手機130通過在固定時間間隔中預留時槽來維持eSCO連接。依據傳輸的封包形態,手機130在固定時間間隔傳送封包,例如,以每12個時槽中的2~8個時槽用來傳送2-EV3封包,
其中每個時槽通常為625微秒(microsecond,μs)。eSCO連接提供有限次數的重傳。詳細舉例來說,手機130可在第一時槽傳送2-EV3封包(可稱為媒體封包)給已經建立連線的裝置,其中攜帶單聲道資料。此連線裝置在第二時槽傳送2-EV3封包(可稱為回覆封包)給手機130,其中攜帶確收或者是不確收的資訊。當手機130從連線裝置接收到不確收的資訊時,手機130可在第三時槽重傳媒體封包給連線裝置。第一至第二時槽可稱為eSCO窗口(window),而第三至第四時槽可稱為重傳窗口。當左無線耳機110或右無線耳機120中的處理單元242在建立連線的過程中確定了主裝置和從裝置間的調變模式和加/解密方法之後,在SCO/eSCO連接上傳送的藍牙封包的長度是固定的,接著啟動如上所述的藍牙封包的接收和錯誤修正方法。
圖7顯示BR/EDR的封包資料位元處理流程。傳送端和接收端之間的通訊可使用E0加密,或者AES-CCM加密。當選擇使用E0加密時,傳送端產生藍牙封包的封包表頭(表示為“HDR”)和封包資料(表示為“Payload”),以及對藍牙封包的封包表頭和封包資料進行循環冗餘碼的編碼,並將編碼後的結果(表示為“CRC”)封裝到藍牙封包。接著,傳送端對封包資料進行E0演算法的加密,其中的鍵值加入了時間的資訊,並將加密後的結果(表示為“Enc(Payload,CLK A)”)取代原來的封包資料。接著,接收端在執行反白化710和E0演算法的解密730之後,理論上應該會獲得如上所述的從傳送端傳送出來的未加密藍牙封包。為了驗證接收的結果是否正確,接收端會進行CRC校驗740。以上所述的藍牙封包的接收和錯誤修正方法可整合到CRC校驗740的處理中,或者執行在E0演算法的解密730和CRC校驗740之間。
在使用E0加密的方案中,相較於圖6的(B)部分(下半部分),雖然CRC校驗740是設置在解密730之後,但只要確保在受到CRC校驗
740處理之前重傳的藍牙封包與原始的藍牙封包之間實質上無差異,就能夠有效地使用上述的藍牙封包的接收和錯誤修正方法。
當選擇使用AES-CCM加密時,傳送端藍牙封包的封包表頭(表示為“HDR”)和封包資料(表示為“Payload”),並且分別對其加密以產生訊息統合校驗碼(表示為“MIC”)和加密後封包資料(表示為“Enc.Payload”)。接著,傳送端對藍牙封包的封包表頭、加密後封包資料和訊息統合校驗碼進行循環冗餘碼的編碼,並將編碼後的結果(表示為“CRC”)封裝到藍牙封包。接收端在執行反白化710之後,理論上應該會獲得如上所述的從傳送端傳送出來的已經經過AES-CCM演算法加密的藍牙封包。為了驗證接收的結果是否正確,接收端會進行CRC校驗720。以上所述的藍牙封包的接收和錯誤修正方法可整合到CRC校驗720的處理中,或者執行在反白化710和CRC校驗720之間。如果接收的已加密藍牙封包無法通過CRC校驗,則執行重傳的操作。
本發明所述的方法中的全部或部份步驟可以電腦指令實現,例如硬體的驅動程式、DSP程式碼等。此外,也可實現於其他類型程式。所屬技術領域人員可將本發明實施例的方法撰寫成電腦指令,為求簡潔不再加以描述。依據本發明實施例方法實施的電腦指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖3的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是
除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S310~S360:方法步驟
Claims (11)
- 一種藍牙封包的接收和錯誤修正方法,由處理單元執行,所述方法包含:從射頻訊號中接收到多個藍牙封包;當所述多個藍牙封包能夠產生唯一的合成封包時,將所述唯一的合成封包進行校驗和的校驗;當所述多個藍牙封包不能夠產生所述唯一的合成封包時,依據所述多個藍牙封包間的一個或多個不一致位元產生多個候選合成封包,將所述多個候選合成封包進行校驗和的校驗,其中,所述多個候選合成封包用於表示所述多個藍牙封包間不一致位元的所有可能組合;以及當所述唯一的合成封包或者所述多個候選合成封包中的一個通過校驗時,傳送通過校驗的合成封包到應用程序模組。
- 如請求項1所述的藍牙封包的接收和錯誤修正方法,包含:判斷所述多個藍牙封包間的不一致的位元是否能夠依據多數決原則產生所述唯一的合成封包。
- 如請求項1所述的藍牙封包的接收和錯誤修正方法,包含:與傳送端建立連接導向等時通道,其中所述連接導向等時通道使用低功耗連接等時串流的邏輯傳輸,並且設定所述低功耗連接等時串流的幀化參數為非幀化資料封包資料單元;以及在所述低功耗連接等時串流上從所述傳送端接收所述多個藍牙封包。
- 如請求項1所述的藍牙封包的接收和錯誤修正方法,包含: 與傳送端建立非連接等時通道,其中所述非連接等時通道使用低功耗廣播等時串流的邏輯傳輸,並且設定所述低功耗廣播等時串流的幀化參數為非幀化資料封包資料單元;以及在所述低功耗廣播等時串流上從所述傳送端接收所述多個藍牙封包。
- 如請求項1所述的藍牙封包的接收和錯誤修正方法,包含:與傳送端建立同步連結導向連接或者增強同步連結導向連接;以及在所述同步連結導向連接或者所述增強同步連結導向連接上從所述傳送端接收所述多個藍牙封包。
- 一種電腦程式產品,包含程式碼,其中,當處理單元執行所述程式碼時,實施如請求項1至5中任一項所述的藍牙封包的接收和錯誤修正方法。
- 一種藍牙封包的接收和錯誤修正裝置,包含:處理單元,通過射頻模組和調變解調器從射頻訊號中接收到多個藍牙封包;當所述多個藍牙封包能夠產生唯一的合成封包時,將所述唯一的合成封包進行校驗和的校驗;當所述多個藍牙封包不能夠產生所述唯一的合成封包時,依據所述多個藍牙封包間的一個或多個不一致位元產生多個候選合成封包,將所述多個候選合成封包進行校驗和的校驗;當所述唯一的合成封包或者所述多個候選合成封包中的一個通過校驗時,傳送通過校驗的合成封包到應用程序模組;以及當所述唯一的合成封包不通過校驗或者所述多個候選合成封包都不通過校驗時,啟動重傳操作,其中,所述多個候選合成封包用於表示所述多個藍牙封包間不一致位元的所有可能組合。
- 如請求項7所述的藍牙封包的接收和錯誤修正裝置,其中,所述處理單元判斷所述多個藍牙封包間的不一致的位元是否能夠依據多數決原則產生所述唯一的合成封包。
- 如請求項7所述的藍牙封包的接收和錯誤修正裝置,其中,所述處理單元通過所述射頻模組和所述調變解調器與傳送端建立連接導向等時通道,其中所述連接導向等時通道使用低功耗連接等時串流的邏輯傳輸,並且設定所述低功耗連接等時串流的幀化參數為非幀化資料封包資料單元;以及在所述低功耗連接等時串流上從所述傳送端接收所述多個藍牙封包。
- 如請求項7所述的藍牙封包的接收和錯誤修正裝置,其中,所述處理單元通過所述射頻模組和所述調變解調器與傳送端建立非連接等時通道,其中所述非連接等時通道使用低功耗廣播等時串流的邏輯傳輸,並且設定所述低功耗廣播等時串流的幀化參數為非幀化資料封包資料單元;以及在所述低功耗廣播等時串流上從所述傳送端接收所述多個藍牙封包。
- 如請求項7所述的藍牙封包的接收和錯誤修正裝置,其中,所述處理單元通過所述射頻模組和所述調變解調器與傳送端建立同步連結導向連接或者增強同步連結導向連接;以及在所述同步連結導向連接或者所述增強同步連結導向連接上從所述傳送端接收所述多個藍牙封包。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163237658P | 2021-08-27 | 2021-08-27 | |
US63/237,658 | 2021-08-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202310644A TW202310644A (zh) | 2023-03-01 |
TWI795165B true TWI795165B (zh) | 2023-03-01 |
Family
ID=85292322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111100964A TWI795165B (zh) | 2021-08-27 | 2022-01-10 | 藍牙封包的接收和錯誤修正方法及電腦程式產品及裝置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115733581A (zh) |
TW (1) | TWI795165B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110185248A1 (en) * | 2010-01-25 | 2011-07-28 | Qual Comm Incorporated | Majority vote error correction |
WO2019178107A1 (en) * | 2018-03-14 | 2019-09-19 | Cypress Semiconductor Corporation | Bit error correction for wireless retransmission communications systems |
US20210160673A1 (en) * | 2019-11-26 | 2021-05-27 | Tap Sound System | Bluetooth Audio Streaming Passthrough |
CN113271641A (zh) * | 2021-05-18 | 2021-08-17 | 南京大学 | 一种基于蓝牙散射网络通信的降低丢包率方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9647689B2 (en) * | 2015-01-15 | 2017-05-09 | Texas Instruments Incorporated | Robust connection for low-energy wireless networks |
CN108923892B (zh) * | 2018-06-20 | 2021-01-19 | 南京中感微电子有限公司 | 一种蓝牙接收方法、蓝牙接收机及蓝牙音频设备 |
-
2022
- 2022-01-10 TW TW111100964A patent/TWI795165B/zh active
- 2022-01-10 CN CN202210021710.7A patent/CN115733581A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110185248A1 (en) * | 2010-01-25 | 2011-07-28 | Qual Comm Incorporated | Majority vote error correction |
WO2019178107A1 (en) * | 2018-03-14 | 2019-09-19 | Cypress Semiconductor Corporation | Bit error correction for wireless retransmission communications systems |
US20210058190A1 (en) * | 2018-03-14 | 2021-02-25 | Cypress Semiconductor Corporation | Bit error correction for wireless retransmission communications systems |
US20210160673A1 (en) * | 2019-11-26 | 2021-05-27 | Tap Sound System | Bluetooth Audio Streaming Passthrough |
CN113271641A (zh) * | 2021-05-18 | 2021-08-17 | 南京大学 | 一种基于蓝牙散射网络通信的降低丢包率方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202310644A (zh) | 2023-03-01 |
CN115733581A (zh) | 2023-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109561419B (zh) | 高可靠性的双耳无线耳机及用于双耳无线耳机的通信方法 | |
TWI767820B (zh) | 無線對等端的封包重傳方法及電腦程式產品及裝置 | |
US10911184B2 (en) | Error correction for data packets in short-range wireless communications systems | |
US10784993B1 (en) | Soft combining packets received from different piconets | |
JP2013518514A (ja) | 多数決エラー訂正技術分野 | |
US20190097952A1 (en) | Block Acknowledgement with Out-of-Order Packets | |
WO2018201829A1 (zh) | 一种传输方法、终端设备及基站 | |
CN113169829B (zh) | 经解密分组的实时软组合、crc验证和mic验证 | |
TW202203608A (zh) | 用於低能量音訊的廣播中繼微微網 | |
JP2019041182A (ja) | 無線通信装置および無線通信方法 | |
CN111770428A (zh) | 一种无线设备的监听方法 | |
TW202139657A (zh) | 空資料封包硬對準 | |
WO2021217723A1 (en) | Systems and methods for wireless transmission of audio information | |
Woolley | The bluetooth low energy primer | |
WO2022022234A1 (zh) | 处理蓝牙数据包的方法和通信装置 | |
TWI779383B (zh) | Br/edr 鏈路的mic 恢復 | |
JP7035089B2 (ja) | データマッピング伝送方法及び関連製品 | |
TWI795165B (zh) | 藍牙封包的接收和錯誤修正方法及電腦程式產品及裝置 | |
US10778479B1 (en) | Systems and methods for wireless transmission of audio information | |
WO2019028965A1 (zh) | 传输数据的方法和装置 | |
US12004064B2 (en) | Method and non-transitory computer-readable storage medium and apparatus for receiving Bluetooth packets and correcting error bits therein | |
WO2018201905A1 (zh) | 一种数据传输方法、终端以及基站 | |
WO2023001130A1 (zh) | 通信方法与装置 | |
WO2019029213A1 (zh) | 传输参数获取、数据传输方法和装置 | |
JP7318033B2 (ja) | 無線通信装置および無線通信方法 |