系統架構設計與處理流程
3.1 系統平台介紹 .1 整體架構 .1 整體架構
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
第三章
系統架構設計與處理流程
3.1 系統平台介紹
3.1.1 整體架構本論文研究主要是專注在利用程式控制無線感測裝置之行為,故整個系統平 台架構針對程式架構加以定義和描述。因為使用物件導向概念來實現,故整個類 別庫的屬性、方法、事件定義與操作為本論文重點。至於無線感測裝置之操作控 制,利用程式語言本身之邏輯判斷語法與物件的引用即可順利控制實作。而與整 個無線網路溝通雖透過 RS-232,但溝通的機制,在此會利用物件方式封裝起來,
讓開發者更專注於程式開發上,而不是更底層的溝通指令之了解與操作。
圖 3.1 ZigBee 無線感測網路架構
如上圖,整個 ZigBee 無現感測網路中,著重在監控者(Supervisor)對網路 裝置的控制,故提供物件導向之 API(應用程式介面)讓裝置操作更便利更直覺。
而管理者(Administrator)使用之網管軟體亦可基於此 API,開發合適之網路管 理系統。至於由終端裝置節點(End Device)取得之感測值,可用於判斷是否啟動
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
另一終端裝置或是將其傳回之結果儲存後,以供相關應用程式使用。
3.1.2 系統平台架構
基於本 API,當欲對 ZigBee 感測裝置控制時,透過使用者設計之介面(User Interface),提出 Request(需求),因為需利用程式操作裝置,所以程式開發 可引入本研究之類別庫(Class Library),不必了解程式真正與 ZigBee 感測裝 置溝通的指令碼,使得控制裝置時更容易。根據事件被觸發後可傳回控制後之 結果(Response)亦可透過 User Interface 做適當的呈現。
圖 3.2 系統平台架構
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
3.1.3 程式控制架構
目前雖然感測裝置的種類有數十種,但是運作的原理大多很類似,所以在設 計 API 時可將相同的屬性、方法、事件定義在同一裝置類別上,如圖 3.3 中之 ZbDeviceManager Class。但因為各感測裝置可能有其特有的屬性、方法、事件,
所以需對該類型之裝置定義特有之類別,如圖中之 ZBTemperatureDevice Class、ZBLightDevice Class 等等。當然各類的裝置類別(Class)大部份的定義 是繼承(Inherit)ZigBeeDeviceManager Class 的。
有 API 後,就是應用的部份。透過程式來實現感測裝置的操控,使用的方式 如同物件導向語言所提供之方式,設定屬性(Property),使用方法(Method),觸 動事件(Event)來達到所需之效果。而透過程式的控制,所產生之資料可以儲存 在資料庫(Database)或是產生 Xml 當作資料交換使用,或者可直接顯示輸出裝置 上(如:螢幕)。
圖 3.3 程式控制架構
‧
州儀器(TI)所生產的一系列 ZigBee 感測裝置晶片之產品(C2530 晶片),讓整個 研究關注在軟體設計的部份。當然面對這問題,本研究提出的方案是利用一個指 令轉換介面,讓 API 認得 ZigBee Device Command(本研究之 CC2530 類別庫),進而透過 RS-232 與 ZigBee 網路上的裝置溝通。不過在此僅針對該想法做一描
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
且正確快速取得庫存,對於工廠生產排配,將有很大的幫助。圖 3.4 為運作原理。
圖 3.4 重量感測值回報
有些監控情境兩種方式均可使用,但節點式觸動控制得將程式控制碼寫入韌 體;而應用程式觸動控制,可利用本研究提供之類別庫,定義裝置管理物件撰寫 程式控制之。以後者來操作應該較具彈性,感測裝置相互控制的靈活度也會更高。
圖 3.5 節點式觸動控制
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 3.5 與圖 3.6 說明同樣的控制需求,兩種控制的設計方式。在此不闡述兩 種方式的優缺點,純粹說明實作的方式。整個網路由 Coordinator 連結,若為節 點式控制,感測裝置可直接叫醒欲控制的裝置,而被動之裝置的啟動與停止,可 設計在本身裝置上或一樣由控制的裝置來進行驅動。而 AP 式控制,節點裝置的 溝通由應用程式判斷,透過 Coordinator 當中繼點傳達指令讓被控制裝置進行啟 動或停止動作。
圖 3.6 應用程式觸動控制
‧
- 裝置操作控制統一以裝置管理(Device Manager)類別進行之。
- 考量開發者控制裝置的直覺性,將各類感測資料讀取包裝成方法(Method) ,
CommandSender.APP.MT_APP_MSG TEMP = new CommandSender.APP.MT_APP_MSG();
TEMP.AppEndpoint = (byte)ENDPOINT.UARTApp_ENDPOINT;
TEMP.DestAddress =裝置IP;
TEMP.DestEndpoint = (byte)ENDPOINT.UARTApp_ENDPOINT;
TEMP.ClusterID = APPCMD_ClusterID.UART_SENSOR_READ_REQUEST_CMD;
TEMP.SENSOR_DATA.SensorTYPE =0x01;
//SENSOR_TEMPERATURE 0x01 , SENSOR_BATTERY 0x02 TEMP.SENSOR_DATA.Status = 0x03;
//#define ACTION_READ 0x01
//#define ACTION_WRITE 0x02 //#define ACTION_REQUEST 0x03 //#define ACTION_RESPONSE 0x04 //#define ACTION_SENSOR_ENABLE 0x05 //#define ACTION_SENSOR_DISABLE 0x06
byte[] sendBytes = TEMP.Message();
this.DeviceManager.SerialPort.Write(sendBytes, 0, sendBytes.Length);