藍(lán)牙4.0BLE協(xié)議棧介紹
問(wèn)題:什么是BLE協(xié)議棧珊泳?BLE協(xié)議棧與BLE協(xié)議的關(guān)系鲁冯?
顧名思義,人類之間需要一種語(yǔ)言才能溝通色查,機(jī)器之間薯演,電子之間也有一個(gè)標(biāo)準(zhǔn),也就是作為通訊標(biāo)準(zhǔn)秧了,也就是通訊協(xié)議跨扮。
協(xié)議:定義了一系列通訊標(biāo)準(zhǔn),通訊雙方都按照這一標(biāo)準(zhǔn)验毡,進(jìn)行數(shù)據(jù)通訊衡创。
協(xié)議棧:協(xié)議的具體實(shí)現(xiàn)形式,實(shí)現(xiàn)的函數(shù)庫(kù)晶通,固件庫(kù)璃氢。
把個(gè)個(gè)協(xié)議集合到了一起,以函數(shù)庫(kù)的形式實(shí)現(xiàn)狮辽,并用這些給用戶提供一些應(yīng)用層的API接口一也,用戶可以進(jìn)行一些調(diào)度。
問(wèn)題:如何使用BLE協(xié)議棧進(jìn)行開(kāi)發(fā)喉脖?
三個(gè)步驟:
1.不需要具體了解BLE協(xié)議棧的具體復(fù)雜的過(guò)程椰苟,只需要知道它的數(shù)據(jù)從哪里來(lái),需要到哪里去就行了树叽。
2.根據(jù)BLE協(xié)議棧調(diào)用它里面的函數(shù)舆蝴,實(shí)現(xiàn)自己的一些功能。
3.可以自己編寫一些函數(shù),實(shí)現(xiàn)自己需要特定的功能洁仗。
協(xié)議結(jié)構(gòu)圖
第一層:physicallayer(物理層)
信道帶寬提供2M层皱,提供三個(gè)廣播信道1M。
第二層:link layer(鏈路層)
執(zhí)行一些基帶協(xié)議京痢,底層的數(shù)據(jù)包管理協(xié)議。
第三層:host controller interface(主機(jī)控制接口層)
提供主機(jī)與控制層的通訊方式篷店,以及命令格式祭椰,重用藍(lán)牙標(biāo)準(zhǔn),比如一些串口疲陕,USB等等方淤。
第四層:L2CAP(邏輯鏈路于適配器協(xié)議層)
為它上層提供數(shù)據(jù)業(yè)務(wù),提供端到端的邏輯數(shù)據(jù)通信蹄殃。
第五層:security manager(SM)安全管理層
層與層之間會(huì)有通信携茂,它是建立數(shù)據(jù)交換安全方面的數(shù)據(jù)知識(shí)。
第六層:attribute protocol(ATT)通用接入層
定義了一些通用接口诅岩,供應(yīng)用層和底層之間的調(diào)用讳苦,比如你要調(diào)底層的硬件模塊的東西,就需要這個(gè)層的底層的驅(qū)動(dòng)模塊去實(shí)現(xiàn)它的一些功能吩谦,所以它會(huì)同時(shí)封裝一些API的函數(shù)設(shè)置鸳谜。
第七層:generic attribute profile(GATT)(屬性協(xié)議層)
允許設(shè)備以屬性的形式向外設(shè)備暴露它的一些數(shù)據(jù),就像廣播者與觀察者之間式廷,它一直在廣播自己的屬性咐扭,數(shù)據(jù)出去。觀察者觀察到了它以后就可以把它的屬性提取出來(lái)滑废。
第八層:generic access profile(GAP)通用屬性剖面
具體屬性協(xié)議的應(yīng)用框架蝗肪,應(yīng)用了屬性協(xié)議的應(yīng)用架構(gòu),通過(guò)這個(gè)層蠕趁,可以在里面開(kāi)發(fā)一些應(yīng)用的東西薛闪,這里做好了一些應(yīng)用的框架,可以在上面寫一些開(kāi)發(fā)俺陋。