正文
今天stone和大家一起來看看藍牙相關的幾個基礎知識,這樣大家在看具體的代碼的時候能夠做到“手里有槍,心中不慌”。 一、基本概念 微微網——Piconet Q1:藍牙的網絡結構是怎么樣的? 藍牙是一個點對點或者點對多點的拓撲結構,他們的交互都是基于一個物理通道(Physical Channel)上的。也就是說點對點之間有一條物理通道,點對多點共享一條物理通道。我們把這些共用一個物理通道的集合稱之為微微網(piconet)。 在一個微微網中只有一個設備能稱之為Master,其余的設備都是Slave。需要注意的是活躍的slave最多只能是7個,當然我們可以連接更多的slave,但是在同一時間,除了7個活躍的slave外別的slave不能處于活躍的狀態。我們把他們稱之為parked的slave,也就是說他們是在睡大覺。若是piconet中活躍的設備不足7個,他們就可以隨時醒來,而且不需要再進行任何connection建立的過程。具體的可參見下圖一,其中綠色的為Master,黑色的為Slave。
11.png (15.54 KB, 下載次數: 58)
下載附件
2019-1-3 10:00 上傳
這個你不禁會要問: Q2:piconet是否有可能交叉呢?
這是一個很好的問題,是的piconet是有可能交叉的,也就是說一個piconet中的master有可能在別的piconet中它只是一個slave,反之一個piconet中的slave他有可能在另外一個piconet中扮演master的角色。當然一個piconet中的slave也是有可能在另外一個piconet中仍然是slave,但是一個piconet中的master是不可能在另外一個piconet中扮演master的,這個道理應該還是很簡單吧。這里我們提出一個新的概念,就是有同樣設備的piconet組成的網絡我們稱之為scatternet。
2222.png (11.55 KB, 下載次數: 70)
下載附件
2019-1-3 10:00 上傳
圖二 Scatternet示意圖
如圖二所示,每一個piconet都是只有一個master,而一個piconet中的master在另外一個piconet中可以是一個slave,如圖二中設備1,他在以2為master的piconet中就是slave。同樣的設備2在以1為master的piconet中也是slave。反過來看,一個piconet中的slave在另外一個piconet中可以為master,比如設備1和2。當然也是可以在另外一個piconet中仍然作為slave,如設備4在以3為master的piconet中就是仍然是slave。需要注意的是,一個piconet中的master在另外一個piconet中是不能夠作為master的。否則要么出現一個piconet中有兩個master或者這就不是兩個piconet的問題。 傳輸速率 Q3:藍牙的傳輸速率怎么樣? 藍牙是在空氣中進行傳輸的,他有兩種傳輸模式: 1、Basic Rate:它的傳輸速率是1Mbps。 2、Enhanced Data Rate:a)初級調制模式:2Mbps;b)二級調制模式:3Mbps。
下面是各個版本指標的總結,特別是傳輸速度跟范圍。
大家知道為什么2.1之后的藍牙的速度有了很大的提升嗎?給大家留一個懸念。其實之前我也有提過。
時鐘相關 Q4:藍牙有內部時鐘嗎? 答案是肯定的,藍牙內部有native的clock。和外部的真實時間是沒有關系的。它最低能表示的單元必須是312.5μs,就是半個slot。也就是說時鐘的頻率需要是3.2kHz。有四個周期在藍牙中是很重要的,他們分別是312.5μs,625μs,1.25ms以及1.28s。他們對應的就是我們俗稱的CLK0,CLK1,CLK2和CLK12。 Q5:藍牙能容忍的時鐘偏差是多少啊? 這是一個很好的問題。在spec上規定,正常情況下native的clock的偏差允許范圍是+/-20ppm,當然在一些底功耗的模式下,比如park,sniff,hold等模式下,這個偏差的范圍有所擴大,可以到+/-250ppm。 藍牙地址 Q6:藍牙地址就是我們看到的那一堆隨機數嗎? Spec中對藍牙地址的格式是有很嚴格的規定的。他主要分為兩個區域三個部分。 1、company_assigned:這個部分主要是LAP,就是Low Address Part,需要注意的是在這個部分0X9E8B00~0X9E8B3F的值是不能使用的。這部分的值是用于設備的特殊類型值的搜索的,除了這個部分,其余的值都是可以使用的。 2、company_id:包含UAP(Upper Address Part)和NAP(None significant Address Part)。他們可以使用任何的值,只不過只有UAP是有意義的,NAP是沒有意義的。 這兩者的組成部分見下圖:
Catch6987.jpg (124.7 KB, 下載次數: 69)
下載附件
2019-1-3 10:03 上傳
圖四 工作頻段 Q7:藍牙工作的頻段是在哪個區間 這是個很好的問題,通常我們都說藍牙工作在2.4G的頻段。其實它真實的工作頻段范圍是2400~2483.5MHz。它RF通道的設置如下表一所示。
0.png (5.19 KB, 下載次數: 70)
下載附件
2019-1-3 15:04 上傳
表一藍牙工作頻段
我國的藍牙頻率在2.402GHz~2.483GHz,藍牙每個頻道的寬度為1MHz,為了減少帶外輻射的干擾,保留上、下保護為3.5MHz和2MHz,79個跳頻點中至少75個偽隨機碼跳動,30S內任何一個頻點使用時長不能超過0.4S。
Q8:藍 牙用什么技術皮面工作頻段干擾? 藍牙采用跳頻擴譜技術主動的避免工作頻段受干擾(微波爐的工作頻率也是2.4GHz)。 那么大家知道什么是藍牙的跳頻擴譜技術嗎?他們的工作原理是什么?
給大家留一個懸念,下次stone君給大家拔拔。
|