張昱霖
摘要:上位機作為物聯設備軟件層核心之一,其地位十分重要。為了方便對物聯設備進行管理配置,本文基于ZigBee模塊和C#語言設計了一種能夠通過本地串口和網絡通信兩種方式對ZigBee模塊主控單元進行控制和數據讀取的上位機架構,具備可靠性和通用性的特點。
關鍵詞:ZigBee模塊;C#;上位機;通用性
中圖分類號:TP274 文獻標識碼:A 文章編號:1007-9416(2017)05-0053-01
1 基本原理
(1)上位機與下位機。上位機是用于接收數據、控制數據的軟件系統;下位機是直接控制設備、獲取設備狀況的控制器。上位機可以接收下位機的信號,也可以向下位機發出命令,下位機再根據此命令解釋成相應時序信號直接控制相應設備。下位機會實時讀取設備狀態數據,轉換成數字信號反饋給上位機。(2)ZigBee技術。作為無線通信技術領域中的ZigBee技術,其基于IEEE802.15.4協議。最大的特點是短距離、低功耗、低復雜度、低成本,非常適合嵌入距離較近的物聯設備供其通信使用[1]。(3)串口通信。串口是一種硬件類型的接口,按位發送和接收字節,其參數包括:波特率、數據位、停止位和奇偶校驗,對于兩個進行通信的端口,這些參數必須相匹配[2]。具體的,ZigBee模塊傳感節點發送信號到ZigBee模塊匯聚節點即主控單元,主控單元通過串口將數據傳到計算機中的上位機中,上位機接收信息并處理。(4)網絡通信。要實現上位機與下位機之間的遠程網絡通信,有兩種方式:ZigBee模塊主控單元搭建Wi-Fi局域網方式的短距離通信、使用服務器和ZigBee模塊主控單元間的遠距離通信。
2 上位機與ZigBee模塊的串口通信
一般來說,ZigBee模塊采用RS232串口通信,8位數據位,1位停止位,低有效位先傳送。因此,將ZigBee模塊主控單元與計算機串口相連,通過C#編程設計上位機獲取有效的數據字段,可以方便的獲取ZigBee主控單元的數據,具體如下:
2.1 串口配置
串口的屬性配置包括:端口號、波特率、數據位、停止位、校驗位。將串口的這些屬性值分別存儲進combobox中,根據實際情況進行選擇。
2.2 發送數據
使用Write接口三個參數的含義為:使用的數組、從數組第n位開始發數據、發送數據的長度。核心代碼如下:
if (serialPort.IsOpen){
try{
Byte[] b = new Byte[3] {1,2,3};
char[] ch = new char[3] {'a','b','c'};
serialPort.Write(b,0,1);//使用b[]數組,第0為開始,長度為1
serialPort.Write(ch,0,2);//使ch[]數組,第0為開始,長度為2
MessageBox.Show("發送成功");
}
catch{MessageBox.Show("發送失敗");}
}
2.3 接收數據
從ZigBee模塊主控單元中讀取數據的核心代碼如下:
void Receive(object sender,SerialDataReceivedEventArgs e)
{
if (serialPort.IsOpen){
Byte[] Receive = new Byte[serialPort.BytesToRead];
serialPort.Read(Receive, 0, Receive.Length);
serialPort.DiscardInBuffer();
textBox.Text += Encoding.ASCII.GetString(Receive);
}
}
3 上位機與ZigBee模塊的網絡通信
3.1 短距離傳輸
對上述使用串口向上位機有線傳輸數據的方式改進為無線局域網短距離傳輸,具體方式為:(1)ZigBee模塊主控單元將數據通過硬件串口發送給Wi-Fi模塊的串口,Wi-Fi模塊中需要有完整的套接字API或TCP/IP協議棧。(2)將Wi-Fi模塊與上位機連入同一個局域網保證其IP與上位機處于同一網段。(3)配置上位機與ZigBee模塊主控單元進行通訊。
3.2 遠距離通信
對上述只能在同一局域網向上位機傳輸數據的方式改進為通過以太網、不受距離約束的遠距離通信方式,具體方式為:(1)單純ZigBee模塊無法將數據發往以太網,需要使用ZigBee/TCP網關。(2)ZigBee/TCP網關將數據轉換為TCP或UDP報文發送給指定的遠程服務器的IP和端口。(3)對遠程服務器建立TCP/UDP Server對指定的端口號進行監聽,接收到報文后提取有效數據寫入數據庫,數據庫使用MySQL或SQL Server均可。(4)上位機使用Socket通信讀寫該服務器中數據庫的信息。
4 結語
本文研究了C#上位機對ZigBee模塊主控單元的控制與數據讀取的各種實現方式,包括傳統的串口通信、局域網短距離通信、服務器遠距離通信方式,可靠性與通用性很強,能夠滿足不同條件下的物聯設備與上位機的通信需求,對上位機與ZigBee模塊通信方式具有指導意義。
參考文獻
[1]王中生,曹梅.基于ZigBee的串口監控軟件設計與實現[J].電子設計工程,2011(14):13-14.
[2]章輝,葉建芳,葉建威.基于MSComm控件串口通信的實現[J] .電子測量技術,2011(08):127.endprint