物理通道是piconet區分的標準,它是藍芽系統結構層次中的最底層了。
Q1:物理通道有哪些類型
1、basicpiconet channel
2、adaptedpiconet channel
channel是兩個已經串連裝置之間通訊使用的。也就是說他們和特定的微微網之間是相關聯的。
3、inquiry scanchannel:用於discovering藍牙裝置
4、page scanchannel:用於串連藍牙裝置。
Basic Piconet Channel
Q2:Basicpiconet channel是如何工作的
Basic piconetchannel中,它會把通道分為以625μs為單位的時間長度(slot),使用的是TDD的策略進行傳輸,可以理解為TX和RX是時分雙工的。需要注意的是packet的開始和slot的開始需要是對齊的。從目前的packet type來看,最長會佔用5個time slot。多packet的slot傳輸情況見四。
Q3:為什麼都是占奇數個slot啊,有偶數個的嗎?
packet type所佔的slot只有三種,分別佔1,3,5個slot,暫未有偶數個的slot的packet出現。另外,需要注意的是master的tx需要在奇數個的slot開始,rx必須在偶數個的slot開始。
packet的平均漂移和625μs相比,不能超過20ppm。瞬時的時間和平均時間偏差不能超過1μs。
Q4:既然有時間的偏差,那麼rx的時候是否有對應的機制
rx的時候,我們是用一個windows來監聽的,而不是說就在625μs那個點去監聽。目前的監聽window的大小是20μs,也就是說允許的誤差是+-10μs,這樣的誤差容忍度還是很高的。圖五是以單packet為例來介紹的正常情況下的TX/RX。
master的TX/RX
windows也發生在slave的rx過程中,不詳細介紹。
master就是使用的它的native的時鐘,而slave則是在它的native時鐘上加上對應的offset得到和master同步的時鐘。這個offset是在inquiry過程中互動得到的。為了防止時鐘的位移,slave在每次收到master的packet的時候都需要重新整理offset。時鐘的得到方法見六。其中六-a)是master中時鐘的產生,六-b)是slave時鐘的產生。
master和slave的時鐘產生
Adapted piconet channel
Q6: adapted piconetchannel有何特別之處
adapted piconetchannel是用於串連支援AFH(Adapter Frequency Hopping)的裝置時使用的。和Basic相比,他的最大不同之處在於它可能沒有使用全部的79個頻點,但是它使用頻點的數目最小值是20。也就是說若是環境很差,79個頻點只有不到20個頻點是乾淨可用的,那麼AFH機制將無法運行,也就沒有所謂的自適應調頻了,表現到最終的使用者體驗上你看到的就是音樂的卡頓啊,或者打電話的斷音等等。
Page scan physical channel
Q7:master和slave的角色是在串連過程中才確定的,在page scan這個過程中是否也有master和slvae之分
master和slave還沒有確定之前,我們稱執行page的那個裝置為master,而page scan(也就是等待page)的那個裝置為slave。需要注意的是這個master和slave和最終建立串連之後的master和slave並不是對應的,這之間有可能發生role switch等一系列的操作。後面的inqiry scan也是類似的,就不多說了。
Q8:page時所使用的時鐘就是native的clk嗎
page到對方,在真正page的時候並沒有使用native的clk,而是採用了一個預測的clk,希望能夠盡量和slave的clk相接近。這之間有一個offset的位移,這個位移一般使用inquiry的資訊中的位移,在Android中只有10分鐘之內的inquiry資訊才會被使用,畢竟這個clk也是會變化的,時間過長這種inquiry到的clk offset就沒有什麼實際意義了。page過程中使用的clk如七所示。
page時的clk
Q9:Page scan和basicpiconet channe有什麼差別
page的packet很小(也是固定的),所以為了更好地利用時間,他不是625μs才發送一次,而是在625μs中發送了兩次,也就是312.5μs發送一次,這也是藍芽clk最小的時間間隔了。於是從master的角度來看,我們可以看到的內容就如八所示了。
page scan過程master的tx rx時序圖
slot中發送了兩個packet。同時在rx的時候也在兩個時間點前後進行了監聽。這樣就可以響應slave在兩個時間點發送的response。
slave而言就會有兩種可能,一種是它在master發送第一個packet的時候slave就收到了,這種情況和625μs發送一次是一樣的,就不再多說了。另外一種情況則是slave在master發送第二次packet的時候才收到,那麼他會在收到之後625μs回應,master收到這個回應之後就不再等待625μs了,而是在下一個slot開始就是回應了。具體看圖九所示。
slave在master第二次發送後收到的時序圖
packet就是真正收到的packet。
Inquiry scan physicalchannel
Q10:inquiry scan和basic有何差別
inquiryscan和page scan比較類似,他也是312.5μs發送一次,比較大的差別在於他的slave的回應比較長,超過了312.5μs,這樣假如它的回應是在第二次就會出現slave佔用master to slave slot的情況,中紅色圈圈所示,這是允許的。見十。
inquiryscan在第二次受到inquiry packet後的時序圖