• 沒有找到結果。

系統平台介紹 .1 整體架構 .1 整體架構

系統架構設計與處理流程

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);