藍(lán)牙開發(fā)關(guān)鍵技術(shù)剖析
來(lái)源:與非網(wǎng)
摘要: 藍(lán)牙是一種工作在免費(fèi)的ISM頻段(2.4GHz)的短距離無(wú)線通信技術(shù),在各種設(shè)備之間實(shí)現(xiàn)靈活、安全、低成本、低功耗的語(yǔ)音和數(shù)據(jù)通信,。它采用自適應(yīng)跳頻(AFH)技術(shù),可以和多種無(wú)線通信共存于ISM頻段,與同用于短距離無(wú)線通信的Zigbee和UWB相比,,藍(lán)牙協(xié)議和標(biāo)準(zhǔn)更加完善,設(shè)備間一致性和互連通性好,,而且以Profile的形式定義了具體應(yīng)用的實(shí)現(xiàn)方式,,從而保證了兼容性。一款成熟穩(wěn)定的藍(lán)牙產(chǎn)品的設(shè)計(jì)面臨諸多技術(shù)上的挑戰(zhàn),,結(jié)合自己設(shè)計(jì)一款車載藍(lán)牙設(shè)備的開發(fā)經(jīng)驗(yàn),,筆者從配對(duì)列表管理,、連接管理、時(shí)鐘設(shè)計(jì)三個(gè)方面講下相關(guān)關(guān)鍵技術(shù)及開發(fā),。
Abstract:
Key words :
藍(lán)牙是一種工作在免費(fèi)的ISM頻段(2.4GHz)的短距離無(wú)線通信技術(shù),,在各種設(shè)備之間實(shí)現(xiàn)靈活、安全,、低成本,、低功耗的語(yǔ)音和數(shù)據(jù)通信。它采用自適應(yīng)跳頻(AFH)技術(shù),,可以和多種無(wú)線通信共存于ISM頻段,,與同用于短距離無(wú)線通信的Zigbee和UWB相比,藍(lán)牙協(xié)議和標(biāo)準(zhǔn)更加完善,,設(shè)備間一致性和互連通性好,,而且以Profile的形式定義了具體應(yīng)用的實(shí)現(xiàn)方式,從而保證了兼容性,。一款成熟穩(wěn)定的藍(lán)牙產(chǎn)品的設(shè)計(jì)面臨諸多技術(shù)上的挑戰(zhàn),,結(jié)合自己設(shè)計(jì)一款車載藍(lán)牙設(shè)備的開發(fā)經(jīng)驗(yàn),筆者從配對(duì)列表管理,、連接管理,、時(shí)鐘設(shè)計(jì)三個(gè)方面講下相關(guān)關(guān)鍵技術(shù)及開發(fā)。
連接機(jī)制分析
物理信道(physical channel)是藍(lán)牙系統(tǒng)的最底層結(jié)構(gòu),,通過(guò)偽隨機(jī)跳頻序列,、發(fā)送時(shí)槽定時(shí)、接入碼及幀頭編碼來(lái)表征,。藍(lán)牙針對(duì)不同應(yīng)用定義了一系列物理信道,,包括用于匹克網(wǎng)內(nèi)設(shè)通信的匹克網(wǎng)物理信道、用于尋呼設(shè)備的尋呼掃描物理信道和用于查找設(shè)備的查找掃描物理信道,。兩臺(tái)設(shè)備必須采用相同的物理信道才能進(jìn)行通信,。
主從設(shè)備建立連接的過(guò)程就是建立相同匹克網(wǎng)信道的過(guò)程,該過(guò)程確保主從設(shè)備以同樣的定時(shí)和次序進(jìn)行載波頻率的跳變,,進(jìn)行數(shù)據(jù)傳輸,,同時(shí)可以根據(jù)匹克網(wǎng)接入碼和幀頭編碼進(jìn)行數(shù)據(jù)過(guò)濾和解析,避免和其他設(shè)備在同一個(gè)頻段上的相撞,。
尋呼掃描物理信道(page scan physical channel)用于主設(shè)備尋呼從設(shè)備,,是設(shè)備建立連接的必經(jīng)階段。尋呼掃描跳頻序列和尋呼請(qǐng)求幀的設(shè)備接入碼(DAC)是由從設(shè)備物理地址運(yùn)算,,處于可被連接模式的從設(shè)備以固定的周期(由page scan interval決定)在一個(gè)固定的時(shí)間窗(由page scan window決定)內(nèi)以某個(gè)跳頻頻率監(jiān)聽主設(shè)備的尋呼請(qǐng)求,。
主從設(shè)備建立連接的過(guò)程就是建立相同匹克網(wǎng)信道的過(guò)程,該過(guò)程確保主從設(shè)備以同樣的定時(shí)和次序進(jìn)行載波頻率的跳變,,進(jìn)行數(shù)據(jù)傳輸,,同時(shí)可以根據(jù)匹克網(wǎng)接入碼和幀頭編碼進(jìn)行數(shù)據(jù)過(guò)濾和解析,避免和其他設(shè)備在同一個(gè)頻段上的相撞,。
尋呼掃描物理信道(page scan physical channel)用于主設(shè)備尋呼從設(shè)備,,是設(shè)備建立連接的必經(jīng)階段。尋呼掃描跳頻序列和尋呼請(qǐng)求幀的設(shè)備接入碼(DAC)是由從設(shè)備物理地址運(yùn)算,,處于可被連接模式的從設(shè)備以固定的周期(由page scan interval決定)在一個(gè)固定的時(shí)間窗(由page scan window決定)內(nèi)以某個(gè)跳頻頻率監(jiān)聽主設(shè)備的尋呼請(qǐng)求,。
自動(dòng)連接
為了方便用戶的使用,大多藍(lán)牙設(shè)備都實(shí)現(xiàn)了自動(dòng)連接功能,,根據(jù)以上對(duì)藍(lán)牙連接機(jī)制的分析,,設(shè)計(jì)自動(dòng)連接方案時(shí)必須考慮設(shè)備在不同的工作狀態(tài)下采用不同的物理信道和跳頻序列,,而不能按照人為的邏輯隨意設(shè)置,否則會(huì)給用戶帶來(lái)不便,。
以車載免提裝置為例,,上電自動(dòng)連接對(duì)駕駛員來(lái)說(shuō)可以提高使用車載免提的自覺性,降低行車期間通話帶來(lái)的風(fēng)險(xiǎn),。采用搜索方式判斷設(shè)備是否在有效范圍內(nèi),,按照優(yōu)先級(jí)從低到高連接,最后一次連接的手機(jī)為優(yōu)先級(jí)最高的,,然后按照配對(duì)列表的逆序而優(yōu)先級(jí)依次降低,。鏈路丟失后的自動(dòng)連接只針對(duì)最后一部手機(jī),這樣可以實(shí)現(xiàn)服務(wù)的連續(xù)性,。
為了方便用戶的使用,大多藍(lán)牙設(shè)備都實(shí)現(xiàn)了自動(dòng)連接功能,,根據(jù)以上對(duì)藍(lán)牙連接機(jī)制的分析,,設(shè)計(jì)自動(dòng)連接方案時(shí)必須考慮設(shè)備在不同的工作狀態(tài)下采用不同的物理信道和跳頻序列,,而不能按照人為的邏輯隨意設(shè)置,否則會(huì)給用戶帶來(lái)不便,。
以車載免提裝置為例,,上電自動(dòng)連接對(duì)駕駛員來(lái)說(shuō)可以提高使用車載免提的自覺性,降低行車期間通話帶來(lái)的風(fēng)險(xiǎn),。采用搜索方式判斷設(shè)備是否在有效范圍內(nèi),,按照優(yōu)先級(jí)從低到高連接,最后一次連接的手機(jī)為優(yōu)先級(jí)最高的,,然后按照配對(duì)列表的逆序而優(yōu)先級(jí)依次降低,。鏈路丟失后的自動(dòng)連接只針對(duì)最后一部手機(jī),這樣可以實(shí)現(xiàn)服務(wù)的連續(xù)性,。
時(shí)鐘設(shè)計(jì)
藍(lán)牙核心規(guī)范要求時(shí)鐘頻率精度為±20ppm,,如果載波頻率不穩(wěn)定,則會(huì)發(fā)生“過(guò)零點(diǎn)”錯(cuò)誤(zero-cross),。載波頻率由本地時(shí)鐘(晶振)做為PLL的參考時(shí)鐘倍頻產(chǎn)生,。一般說(shuō)來(lái),藍(lán)牙設(shè)備的時(shí)鐘設(shè)計(jì)便是指晶振電路的設(shè)計(jì)及微調(diào),。
決定晶振工作精度的兩個(gè)重要參數(shù)是制造公差和溫度穩(wěn)定度,如果選擇有源晶振作為本地時(shí)鐘,,需要滿足:制造公差+溫度穩(wěn)定度≤±20ppm,,有源晶振內(nèi)部集成晶體和相應(yīng)的振蕩電路,匹配精確,,頻率穩(wěn)定性高,,而且抗干擾性能好,缺點(diǎn)是成本較高,。
藍(lán)牙核心規(guī)范要求時(shí)鐘頻率精度為±20ppm,,如果載波頻率不穩(wěn)定,則會(huì)發(fā)生“過(guò)零點(diǎn)”錯(cuò)誤(zero-cross),。載波頻率由本地時(shí)鐘(晶振)做為PLL的參考時(shí)鐘倍頻產(chǎn)生,。一般說(shuō)來(lái),藍(lán)牙設(shè)備的時(shí)鐘設(shè)計(jì)便是指晶振電路的設(shè)計(jì)及微調(diào),。
決定晶振工作精度的兩個(gè)重要參數(shù)是制造公差和溫度穩(wěn)定度,如果選擇有源晶振作為本地時(shí)鐘,,需要滿足:制造公差+溫度穩(wěn)定度≤±20ppm,,有源晶振內(nèi)部集成晶體和相應(yīng)的振蕩電路,匹配精確,,頻率穩(wěn)定性高,,而且抗干擾性能好,缺點(diǎn)是成本較高,。

圖1 震蕩電路設(shè)計(jì)
本文自行設(shè)計(jì)的振蕩電路如圖1所示,。
選擇溫度穩(wěn)定性高、制造公差低的高精度晶體,,通過(guò)振蕩電路設(shè)計(jì)實(shí)現(xiàn)諧振頻率的精確調(diào)整,,這是由晶體負(fù)載電容的匹配及可調(diào)實(shí)現(xiàn)的。負(fù)載電容是指CRY_IN和CRY_OUT兩端的電容值,,在晶體的CRY_IN引腳上并聯(lián)一個(gè)可調(diào)電容,,調(diào)整該電容便可以對(duì)諧振頻率進(jìn)行精密微調(diào)。晶體負(fù)載電容計(jì)算公式如下:
Cload=Cint+(Cin+Ctrim)×Cout/(Cin+Ctrim+Cout)Cint包括IC內(nèi)部電容(一般為固定值)以及PCB雜散電容(3pF~5pF),。
本文自行設(shè)計(jì)的振蕩電路如圖1所示,。
選擇溫度穩(wěn)定性高、制造公差低的高精度晶體,,通過(guò)振蕩電路設(shè)計(jì)實(shí)現(xiàn)諧振頻率的精確調(diào)整,,這是由晶體負(fù)載電容的匹配及可調(diào)實(shí)現(xiàn)的。負(fù)載電容是指CRY_IN和CRY_OUT兩端的電容值,,在晶體的CRY_IN引腳上并聯(lián)一個(gè)可調(diào)電容,,調(diào)整該電容便可以對(duì)諧振頻率進(jìn)行精密微調(diào)。晶體負(fù)載電容計(jì)算公式如下:
Cload=Cint+(Cin+Ctrim)×Cout/(Cin+Ctrim+Cout)Cint包括IC內(nèi)部電容(一般為固定值)以及PCB雜散電容(3pF~5pF),。
配對(duì)列表管理
為了保證鏈路級(jí)的安全,,藍(lán)牙通信要求設(shè)備在連接建立前進(jìn)行“雙向認(rèn)證”。認(rèn)證成功的前提是設(shè)備雙方存儲(chǔ)了相同的鏈路密鑰Kab,,配對(duì)是產(chǎn)生初始密鑰Kint的階段,,Kint由PIN碼,、從設(shè)備藍(lán)牙地址和主設(shè)備發(fā)給從設(shè)備的一個(gè)隨機(jī)數(shù)由一套固定的算法計(jì)算出來(lái),只要PIN碼一致,,主從設(shè)備生成的的Kint也是一致的,。鏈路密鑰的輸入是主從設(shè)備的藍(lán)牙地址和主從設(shè)備各一隨機(jī)數(shù),只要主從設(shè)備能互換隨機(jī)數(shù),,便能得到一致的Kab,。主設(shè)備將隨機(jī)數(shù)RandA與Kint異或的結(jié)果發(fā)給從設(shè)備,從設(shè)備只將該結(jié)果與Kint異或便得到RandA,,即
為了保證鏈路級(jí)的安全,,藍(lán)牙通信要求設(shè)備在連接建立前進(jìn)行“雙向認(rèn)證”。認(rèn)證成功的前提是設(shè)備雙方存儲(chǔ)了相同的鏈路密鑰Kab,,配對(duì)是產(chǎn)生初始密鑰Kint的階段,,Kint由PIN碼,、從設(shè)備藍(lán)牙地址和主設(shè)備發(fā)給從設(shè)備的一個(gè)隨機(jī)數(shù)由一套固定的算法計(jì)算出來(lái),只要PIN碼一致,,主從設(shè)備生成的的Kint也是一致的,。鏈路密鑰的輸入是主從設(shè)備的藍(lán)牙地址和主從設(shè)備各一隨機(jī)數(shù),只要主從設(shè)備能互換隨機(jī)數(shù),,便能得到一致的Kab,。主設(shè)備將隨機(jī)數(shù)RandA與Kint異或的結(jié)果發(fā)給從設(shè)備,從設(shè)備只將該結(jié)果與Kint異或便得到RandA,,即
配對(duì)列表的管理包括添加,、替代及刪除,添加配對(duì)設(shè)備是在非易失性存儲(chǔ)中存儲(chǔ)該設(shè)備的藍(lán)牙地址及Kab,。刪除配對(duì)設(shè)備需要謹(jǐn)慎處理,,如果存在連接,需要先斷開連接然后刪除,,因?yàn)槿绻麆h掉該設(shè)備而有一種應(yīng)用的連接沒有斷開,,會(huì)存在臨時(shí)密鑰用于當(dāng)前應(yīng)用,這時(shí)不經(jīng)配對(duì)也可以連接上其他應(yīng)用,,違反了藍(lán)牙安全性要求,。
結(jié)語(yǔ)
一款成熟穩(wěn)定的藍(lán)牙產(chǎn)品開發(fā)需要在深入了解藍(lán)牙協(xié)議棧的基礎(chǔ)上不斷完善應(yīng)用程序,筆者從配對(duì),、連接和時(shí)鐘設(shè)計(jì)三個(gè)方面論述了相關(guān)技術(shù)和開發(fā)要點(diǎn),,希望可以帶來(lái)一些有益的借鑒。
一款成熟穩(wěn)定的藍(lán)牙產(chǎn)品開發(fā)需要在深入了解藍(lán)牙協(xié)議棧的基礎(chǔ)上不斷完善應(yīng)用程序,筆者從配對(duì),、連接和時(shí)鐘設(shè)計(jì)三個(gè)方面論述了相關(guān)技術(shù)和開發(fā)要點(diǎn),,希望可以帶來(lái)一些有益的借鑒。
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。