TI Z stack協議棧開發環境和工作流程

2021-08-11 18:15:10 字數 3735 閱讀 2765

2016-12-18 12:36:37

分享:zstack 的體系結構由稱為層的各模組組成。每一層為其上層提供特定的服務:即由

資料服務實體提供資料傳輸服務;管理實體提供所有的其他管理服務。每個服務實體通

過相應的服務接入點(sap) 為其上層提供乙個介面,每個服務接入點通過服務原語來完

成所對應的功能。

ming inte***ce),hal(hardware abstract layer),mac(media access control),nwk(z

igbee network layer),osal(operating system abstract system),security,service,z

do(zigbee device objects)。zstack 的體系結構如圖所示

整個 zstack 的主要工作流程,如圖所示,大致分為以下 6 步:

(1) 關閉所有中斷;

(2) 晶元外部(板載外設)初始化;

(3) 晶元內部初始化;

(4) 初始化作業系統;

(5) 開啟所有中斷;

(6) 執行作業系統。

其中,初始化作業系統和執行作業系統這兩步是最為關鍵的兩步。這兩步都是在位

於 zmain 資料夾下的 zmain.c 檔案裡的 main 函式裡進行的。

osal_init_system()函式裡面是一些系統初始化操作,我們需要關心的是 osalinittasks()函

數,至於其他的初始化函式,都是關於晶元正常工作所需要的配置,所以,使用者可以不

用考慮。

下面分別介紹各層。

物理層(phy)

物理層定義了物理無線通道和 mac 子層之間的介面,提供物理層資料服務和物理

層管理服務,物理層內容:

(1)zigbee 的啟用;

(2) 當前通道的能量檢測;

269

(3) 接收鏈路服務質量資訊;

(4) zigbee 通道接入方式;

(5) 通道頻率選擇;

(6) 資料傳輸和接收。

 介質接入控制子層(mac)

mac 層負責處理所有的物理無線通道訪問,並產生網路訊號、同步訊號;支援 p

an 連線和分離,提供兩個對等 mac 實體之間可靠的鏈路。mac 層功能:

(1) 網路協調器產生信標;

(2) 與信標同步;

(3) 支援 pan (個域網) 鏈路的建立和斷開;

(4) 為裝置的安全性提供支援;

(5) 通道接入方式採用免衝突載波檢測多址接入(csma-ca)機制;

(6) 處理和維護保護時隙(gts )機制;

(7) 在兩個對等的 mac 實體之間提供乙個可靠的通訊鏈路。

 網路層(nwk)

zstack 的核心部分在網路層。網路層主要實現節點加入或離開網路、接收或拋棄其

他節點、路由查詢及傳送資料等功能。網路層功能:

(1) 網路發現;

(2) 網路形成;

(3) 允許裝置連線;

(4) 路由器初始化;

(5) 裝置同網路連線;

(6)直接將裝置同網路連線;

(7)斷開網路連線;

(8)重新復位裝置;

(9)接收機同步;

(10)資訊庫維護。

  應用層(apl)

zstack 應用層框架包括應用支援層(aps)、zigbee 裝置物件(zdo)和**商所定義

270

的應用物件。

(1) 應用支援層的功能包括:維持繫結表、在繫結的裝置之間傳送訊息。

(2) zigbee 裝置物件的功能包括:定義裝置在網路中的角色(如 zigbee 協調器和終

端裝置) ,發起和響應繫結請求,在網路裝置之間建立安全機制。zigbee 裝置物件還負

責發現網路中的裝置,並且決定向他們提供何種應用服務。

zigbee 應用層除了提供一些必要函式以及為網路層提供合適的服務介面外,乙個重

要的功能是應用者可在這層定義自己的應用物件。

  應用程式框架(af)

執行在 zigbee 協議棧上的應用程式實際上就是廠商自定義的應用物件,並且遵循

規範(profile)執行在端點 1~240 上。在 zigbee 應用中,提供 2 種標準服務型別:鍵值

對(kvp)或報文(msg)。

 zigbee  裝置物件(zdo )

遠端裝置通過 zdo 請求描述符資訊,接收到這些請求時,zdo 會呼叫配置物件獲

取相應描述符值。另外,zdo 提供繫結服務。

ti z-stack協議棧學習-新增新任務

1.zstack中如何實現自己的任務

在zstack(ti的zigbee協議棧)中,對於每個使用者自己新建立的任務通常需要兩個相關的處理函式,包括:

下面分3個部分分析.

1.使用者自己設計的任務**在zstack中的呼叫過程

(1).main()執行(在zmain.c中)

main()---> osal_init_system()

(2).osal_init_system()呼叫osalinittasks(),(在osal.c中)

osal_init_system()--->osalinittasks()

void osalinittasks( void )

2.任務處理呼叫的重要資料結構

const ptaskeventhandlerfn tasksarr = ;

注意, tasksevents和tasksarr裡的順序是一一對應的,tasksarr中的第i個事件處理函式對應於tasksevents中的第i個任務的事件.

//計算出任務的數量

const uint8 taskscnt =sizeof(tasksarr)/sizeof(tasksarr[0]);

uint16 *tasksevents;

3. 對於不同事件發生後的任務處理函式的呼叫

osal_start_system()很重要,決定了當某個任務的事件發生後呼叫對應的事件處理函式

void osal_start_system(void)

}while(++idxif(idx

#if defined( power_s**ing )

else // complete pass through all task events with no activity?

#endif}}

2.z-stack新增乙個新的任務

在osalinittasks()和tasksarr新增相應的項就可以了。

1.修改osalinittasks()

void osalinittasks( void )

2.修改tasksarr

const ptaskeventhandlerfn tasksarr = ;

3.新增_init()和_processevent()

// release the memory

osal_msg_deallocate( (uint8 *)msgpkt );

// next - if one is **ailable

}// return unprocessed events

return (events ^ sys_event_msg);

}// discard unknown events

return 0;}

TI Z stack協議棧開發環境和工作流程

zstack 的體系結構由稱為層的各模組組成。每一層為其上層提供特定的服務 即由 資料服務實體提供資料傳輸服務 管理實體提供所有的其他管理服務。每個服務實體通 過相應的服務接入點 sap 為其上層提供乙個介面,每個服務接入點通過服務原語來完 成所對應的功能。ming inte ce hal hard...

移動開發 oFono開源電話協議棧

ofono是乙個開源免費的 協議棧軟體,它遵循3gpp27.007等通訊標準,通過at命令與2g 3g modem進行互動,以實現各種 功能 voicecall,gprs,sms,stk等等 在ofono的基礎上,很容易開發用qt,gtk,clutter等api編寫的使用者介面。ofono一般作為守...

TCP IP 協議 協議棧

tcp ip協議棧 整個協議棧被分為了四層,每一層協議負責不同的功能 鏈路層 負責處理物理介面的細節,接受傳送的都是位元流,鏈路層主要有三個目的 1.為ip模組傳送和接收i p資料報 2.為arp模組傳送arp請求和接收arp應答 3.為rarp傳送rarp請求和接收rarp應答 網路層 用來處理網...