ZigBee空中下載技術研究及其優化設計
Z-Stack運行在一個OSAL操作系統上,OSAL是一種基于任務事件調度機制的操作系統。每個任務包含若干事件,每個事件對應一個事件號。當一個事件需要產生時,可以通過API函數設置相應的事件號,然后提交給操作系統調度觸發。本文設計的鏡像頁請求功能正是基于這種機制。OTA服務器的鏡像頁請求處理流程如圖2所示,OTA服務器為每一個請求更新的節點分配一個事件號,并通過請求節點的短地址索引,設置特定的事件。進入事件后,OTA服務器通過串口向OTA應用控制臺請求鏡像數據塊,并向節點發送鏡像塊數據。通過把事件添加到定時器鏈表,就能夠以響應間隔為時間單位,循環發送鏡像塊數據,直到累計的發送鏡像塊大小等于節點的請求鏡像頁大小,從而完成一次鏡像頁請求的傳輸過程。本文引用地址:http://www.104case.com/article/153699.htm
Z-Stack協議棧有一個MAC定時器為操作系統提供計時。該定時器以每1 ms為單位,更新系統的定時器事件鏈表。定時器事件鏈表如圖3所示,鏈表的每一個結點記錄了任務號(task_id)、事件號(event_flag),計時時間(timeout)和下一個結點地址(*next)。圖中的ZCL_OTA_MT_ READ n定義為每個請求節點對應的事件號,Response Spacing即為節點請求的響應間隔,把兩者添加到鏈表當中。當計時時間減為0后,系統自動設定對應的事件號,從而使OTA服務器循環地向OTA應用控制臺索取鏡像塊數據,并向節點發送鏡像塊響應。
OTA服務器處理鏡像頁請求的部分代碼段如下:
評論