2012年1月5日 星期四

傳統BT與BLE架構有什麼不一樣呢?

HCI 

以上面這張Bluetooth的架構圖,可以看到Bluetooth的基礎架構仍然是維持上下兩大塊,Host及controller,中間是兩方面溝通的HCI(Host Controller Interface)。以controller而言,原本到3.0是分為兩個controller; BR/EDR controller及AMP controller,現在將BR/EDR擴充,變為BR/EDR/LE controller,可以看到與原本的controller有一些的不同,就是在於Link Layer。而PHY(RF)及HCI也都有為了low energy(以下簡稱LE)做了補充加強。而Host,則是除了L2CAP及GAP是擴充原本加入支援LE的功能,其他的ATT protocol及GATT profile都是為了LE而新增的階層。

以上圖說明,傳統的藍牙有9種的protocol,而BLE則簡化為一個,稱作Attribute protocol(ATT),就很像傳統藍牙用來傳資料的protocol,RFCOMM;基於ATT上面稱作Generic Attribute profile,BLE各種制定的Profile就是基於GATT的,這很重要唷。如果再將架構圖畫細一點,如下圖。

BLE-training

BLE與傳統BT架構有類似的階層,那就是PHY、HCI、L2CAP以及GAP,除了延用傳統BT時的舊有功能,針對BLE也做了整體性的加強。BLE一開始就是為了省電及傳資料為最主要目的,與傳統BT包山包海大不同,傳統BT不僅支援資料傳輸、語音通話、立體聲、HID,以及各式各樣的控制。但BLE所制定的profile只是要改善BT其中一部份而已,但這部份卻足以應用更加多元,讓這些新的profile更加省電。比如HDP及HID,明顯看得出來這些profile都是偏向小資料傳輸的,所以BLE並不支援聲音的傳送唷。

傳統的BT為了要支援許許多多的profile,制定了好幾種的protocol,所以所傳送的packet也有好幾種,就連我現在也仍未搞懂所有的規範啦;BLE的設計就簡單多了,只有一種,ATT,只有一種packet structure,一個packet formats,當中參數不同來決定是Advertising還是Data packets,一切的一切都是為了簡單再簡單,省電再省電啦,封包小了,步驟簡化了,當然就省電啦。

5 則留言:

  1. 写得真好~谢谢分享。最近在研究BLE,TI的协议栈真是弄得人头大!顺便问一下这么漂亮的图示哪里找的?

    回覆刪除
    回覆
    1. 圖示是參考好多份簡報,自己繪制的,感謝捧場!

      刪除
  2. 請問板大有開發過 CC2540相關系列的BT4.0嗎?可否交流一下~

    回覆刪除
  3. 相對的Dialog 的DA14580簡易多了.

    回覆刪除
  4. 因為工作研究需要~ 看到您寫的這篇; 真是大大的感謝讓我這門外漢一看就明白BT/BLE的差異~

    回覆刪除