430 likes | 684 Views
課程參與度之評估方式. 上課時必須專心聽講,跟上進度,參與討論 扣分項目 玩線上遊戲一次扣 1 分 玩手機一次扣 1 分 睡覺一次扣 1 分 聊天一次扣 1 分 無法回答老師提出的問題一次扣 1 分 加分項目 主動回答老師的問題一次加 2 分 找出老師程式中的錯誤一次加 1 分 修正老師程式中的錯誤一次加 4 分. 無線通訊網路 CH04 藍芽. 鄧姚文. 大綱. 藍芽簡介 藍 芽協定 藍 芽無線電層協定 藍 芽的基頻層協定 藍 芽微網的建立及連接過程 藍 芽連線及應用層 藍 芽的應用及未來發展 . 4.1 藍芽 簡介 .
E N D
課程參與度之評估方式 • 上課時必須專心聽講,跟上進度,參與討論 • 扣分項目 • 玩線上遊戲一次扣1分 • 玩手機一次扣1分 • 睡覺一次扣1分 • 聊天一次扣1分 • 無法回答老師提出的問題一次扣1分 • 加分項目 • 主動回答老師的問題一次加2分 • 找出老師程式中的錯誤一次加1分 • 修正老師程式中的錯誤一次加4分
無線通訊網路CH04 藍芽 鄧姚文
大綱 藍芽簡介 藍芽協定 藍芽無線電層協定 藍芽的基頻層協定 藍芽微網的建立及連接過程 藍芽連線及應用層 藍芽的應用及未來發展
4.1 藍芽簡介 • 藍芽起源於 1994 年,易利信(Ericsson) • 電腦與電話等週邊設備透過無線網路互相溝通的技術 • 目標:低成本、低耗電量為 • 期望與快速成長的手機結合 • 藍芽是以西元 10 世紀一位丹麥國王的名字 • HaraldBlatand • Blatand翻為英文即為 Bluetooth
應用 Application 展現 Presentation 會談 Session 傳輸 Transport 網路 Network 資料鏈結 Data Link 實體 Physical http://linux.vbird.org/linux_server/0110network_basic.php#whatisnetwork_osi
4.2 藍芽協定 • 形成網路的基本單位是微網(Piconet) • 一個微網內的裝置數目最多八個 • 至少一個主裝置(Master device) • 一至七個的從裝置(Slave device) • 基本的網路架構是星狀(Star Topology) • 各個 Slave Device 都和一個 Master Device 連接 • 若幾個微網間有共用的裝置,則由這些微網形成的網路稱為擴散網(Scatternet)
4.3 藍芽無線電層協定Bluetooth Radio Layer • 使用免執照的 ISM 頻帶 • 大部分使用頻率範圍 2,400~2,4825 GHz • 分成 79 個頻道,每個頻寬為 1MHz • 調變:高斯頻移鍵控(Gaussian Frequency Shift Keying, GFSK) • 傳輸:跳頻(Frequency Hopping) • 將時間切成多個時槽 • 對一個裝置而言,每換一個時槽就重新選一個不同的頻道來傳輸 • 可以有效降低碰撞的機率
Frequency Hopping http://ipsit.bu.edu/sc546/sc546Fall2002/bluetooth/about_bt.html
4.4.1 跳頻和跳頻序列 • 在一個微網中,一個時槽內只有主裝置和某一個從裝置進行傳輸 • 傳輸所使用的頻道由主裝置決定 • 主裝置和從裝置都根據主裝置 48 位元的藍芽裝置位址(Bluetooth Device Address, BD_Addr)以及主裝置目前的時脈算出一組頻道的近隨機跳頻序列(Pseudo-random hopping sequence) • 各裝置依照這個序列切換頻道。
4.4.2 藍芽的分時雙工 • 時間被分成許多個大小相等的時槽 • 下傳(Downlink) • 由主裝置傳送資料給從裝置 • 上傳(Uplink) • 由從裝置傳送資料給主裝置 • 兩種動作交互出現
4.4.3 實體連接 • 語音採同步定向傳輸 • Synchronous Connection-Oriented, SCO • 語音具有即時的特性 • 在同步定向傳輸中,主裝置在每段時間保留固定的時槽傳送具有即時性的資料 • 其他的資料使用其餘的時槽傳輸。 • 資料採非同步無連接傳輸 • Asynchronous Connection-Less, ACL • 沒有保留頻寬給某些特定裝置的機制 • 如果微網內沒有使用 SCO 的裝置,各個裝置可以在任意時槽傳輸 • 出現使用 SCO 裝置之後,使用 ACL 的裝置必須讓出 SCO 所需要的時槽,以確 SCO 的即時性
SCO & ACL The SCO link between master and slave 1 occurs every six time slots. http://ipsit.bu.edu/sc546/sc546Fall2002/bluetooth/about_bt.html
4.4.4 錯誤檢查 • 二種錯誤檢查機制 • 比率 1/3 的錯誤校正碼 • 1/3 Rate forward error correction • 將同樣的資料傳送三份,再用多數投票(Majority Voting)決定每個位元正確的值 • 比率 2/3 的錯誤校正碼 • 2/3 Rate forward error correction • 利用漢明碼(Hamming Code),可以校正單一位元錯誤,或是查出兩個位元錯誤 • 以自動重送請求(Automatic Repeat reQuest, ARQ)確保資料能在發生錯誤時能夠再次被傳輸
4.4.5 藍芽封包格式 • 頻道存取碼(Channel Access Code, CAC) • 用於辨別同一區域的微網 • 每個微網的頻道存取碼是唯一的 • 由微網中主裝置的藍芽裝置位址的低位 24 位元決定 • 設備存取碼(Device Access Code, DAC) • 在呼叫程序時的信號 • 內容為從裝置的藍芽裝置位址的低位 24 位元。 • 查詢存取碼(Inquiry Access Code, IAC) • 主裝置查詢附近是否有其他從裝置 • 又分為 • 一般查詢存取碼(General Inquiry Access Code, GIAC) • 查詢所有的裝置 • 特定查詢存取碼(Dedicated Inquiry Access Code, DIAC) • 查詢特定種類的裝置
4.4.5 藍芽封包格式 存取碼內含前導碼(Preamble)、同步字元(Sync word)以及尾碼(Trailer) 前導碼和尾碼的作用都是作為 DC 補償(DC Compensation) 前導碼依同步字元的第一個 LSB 位元決定 64 位元的同步字元(sync word)由 BCH code、LAP(Lower Address Part)與 Barker code 三個部分運算而成。
同步字元的運算方式 • 將 LAP 後方接上 6 個位元的 Barker Code • 若 LAP 的 MSB 位元為 0,則 Barker code 為 001101 • 若 MSB 為 1,則 Barker code 為 110010 • LAP 的MSB 位元與Barker code 所形成的 7 位元的值,稱之為 Barker sequence。
同步字元的運算方式 利用一個 6 位元的線性回授位移暫存器來隨機生成一個 64 位元虛擬雜訊序列(Psuedonoise sequence, PN)p 0 p 1 … p 63。PN 序列的種子值為100000。 將 (p 34 p 35 … p 63 ) 與步驟 1 所產生的 30 位元序列做 XOR 的運算。透過這樣的運算方式能夠破壞掉原始資訊的規則性,達成擾亂資訊的效果。 藉由 (63, 30) 的 30 位元的 BCH 碼產生一個 34 位元的錯誤更正碼(error-correcting BCH code),然後將其置於步驟 3 所得到的結果前面形成 64 位元的碼字。 將 (p 0 p 1 … p 63 ) 與步驟 4 所產生的 64 位元序列做 XOR 的運算。透過這樣的運算方式能夠還原 LAP 與 Barker code,同時也能破壞掉 BCH code的規則性,達成擾亂資訊的效果。
4.4.5 藍芽封包格式 • 標頭碼共有 18 個位元。 • 活動成員位址(Active Member Address, AM_Addr)代表的是主裝置分配給從裝置的一個 3 位元的位址。 • 流量(Flow)是在使用非同步無連接傳輸時用來控制流量。 • 封包類型(Type)代表的是這個封包的種類,以及這個封包使用的時槽個數。
4.4.5 藍芽封包格式 ARQN 是接收端告知傳送端上一個封包是否傳送成功的欄位。傳送端如果未收到 ARQN=1 的回覆,傳送端會重新傳送封包,直到收到正確的回覆。使用 ARQN 判斷是否要重新傳送封包的機制僅用於非同步無連接傳輸。 序列號碼(SEQuence Number, SEQN)是在接收端收到封包時用來判斷這個封包是否是重複的封包。 標頭錯誤檢查(Header Error Check, HEC)用來檢查標頭在傳送的過程中是否發生錯誤。
4.4.5 藍芽封包格式 • 負載(Payload)用於記錄資料,總共分為三個部分: • 標頭、 • 主體(Body)、 • CRC(Cycle Redundancy Check)檢查碼。
4.4.5 藍芽封包格式 • 標頭代表負載的資料種類,單時槽封包和多時槽封包負載內的標頭大小分別是 8 位元和 16 位元。 • 主體代表的是資料的內容。 • 傳送端送出封包前會計算出負載的標頭和主體的 CRC 數值,加到負載中。 • 接收端收到封包以後以同樣的方式算出 CRC 數值,再和收到的CRC 檢查碼比較,就可以判斷封包是否錯誤。
4.5 藍芽微網的建立及連接過程 4.5.1 查詢階段
4.5 藍芽微網的建立及連接過程 4.5.1 查詢階段
4.5 藍芽微網的建立及連接過程 • 4.5.2 掃描階段 • 當主裝置藉由FHS 封包得到從裝置的位置位址及時序後,進入呼叫(Page)狀態。 • 主裝置會不斷地發送 ID 封包,其中包含從裝置的裝置存取碼。 • 主裝置依照從裝置的裝置位址和時序來算出從裝置的跳頻序列,並估計從裝置目前使用的頻道。
4.5 藍芽微網的建立及連接過程 • 4.5.3 連線後的各種狀態 • 四種模式: • 主動模式(Active):主裝置和從裝置傳遞資料的一般模式,在這個模式下,主裝置要定期地傳送同步訊息來維持與其他從裝置的同步。 • 監聽模式(Sniff):從裝置只有在某些特定的時槽時才醒來監聽主裝置的訊號,但仍然保有和主裝置同樣的跳頻序列。 • 保持模式(Hold):從裝置進入保持模式以後將不支援非同步無定向的傳輸,但仍可加入其他微網,進行上述與主裝置連線的傳輸。 • 休眠模式(Park):從裝置不參與任何微網內的傳輸,但仍是微網的一員,而且與微網仍保持同步。 • 最多 256 個 Parked Member Address
4.6 藍芽連線及應用層 • 4.6.1 連結管理協定 • 藍芽的連結管理器(Link manager, LM)負責管理網路的連結,如主裝置將從裝置加到微網中並給予活動成員位址、將從裝置移除、建立同步定向連接及非同步無連接傳輸的連線設立、認證等工作,以及在需時在主裝置/從裝置間切換。
4.6 藍芽連線及應用層 • 4.6.2 主機控制介面 • 藍芽標準制定了主機控制介面(Host Controller Interface, HCI)來將上層的程式和下層的連線處理分開,並且經由主機控制介面提供統一的指令讓上層處理器和下層的基頻層,這種統一的標準提供了使用藍芽裝置的彈性。
4.6 藍芽連線及應用層 • 4.6.3 邏輯連接控制及調整協定 • 邏輯連接控制及調整層(Logical Link Control and Adaptation Protocol, L2CAP)位於基頻層之上, • 接收基頻層的事件並將它發送給上層的協定, • 將上層要傳送的資料切成較小的封包來傳送。 • 另外,邏輯連接控制及調整協定可以用多工(Multiplexing)的方式傳送多個不同的上層協定的資料,使它們可以共享連接的資源。 • 邏輯連接控制及調整層也有維護服務品質(QoS)的功能。
4.6 藍芽連線及應用層 • 4.6.3 邏輯連接控制及調整協定 • 三種邏輯頻道: • 信號頻道(Signaling channel):用來交換控制用的命令及訊息,信號頻道被分配的頻道代碼固定是 1,每個 ACL 連線一定會有一個信號頻道。 • 無連線資料頻道(Connectionless data channel):這種傳輸的方向是單一的,比如說廣播。一個裝置的無連線頻道只有一個,被分配到的頻道代碼固定為 2。 • 連線導向頻道(Connection-oriented data channel):這種連線的傳輸是雙向的(分時雙工),並且必須有 QoS的支援。
4.6 藍芽連線及應用層 • 4.6.4 RFCOMM • RFCOMM protocol 位於 L2CAP 之上,利用 L2CAP 以多工的方式來處理多個連線, • 提供一個模擬的 RS-232 序列埠讓上層協定使用,使用 RS-232介面的軟體都可以在RFCOMM 之上正常運作。
4.6 藍芽連線及應用層 • 4.6.5 服務發現協定 • 服務發現協定(Service Discovery Protocol, SDP)是幫助藍芽裝置上的應用程式找到附近的區域有哪些可用的服務。 • SDP 使用 L2CAP 連線並使用請求/回應的方式來找尋服務,當一個 SDP client 與 SDP server 的連線建立之後,SDP 便可以向 SDP server 發出 SDP 請求(SDP request)。
4.6 藍芽連線及應用層 • 4.6.6 TCS-binary • TCS-binary(Telephony Control Specification) • 定義一個無線裝置如何轉換成無線電話(Cordless phone)或 • 一個有藍芽功能的手機如何在接近藍芽電話基地臺時轉換成藍芽無線電話。
藍牙的應用與未來發展 • UWB(Ultra Wide Band)超高寬頻 • WiMedia聯盟 • 480 Mbps • 影像傳輸 • 低功耗 • ULP • WiBree