基于ZigBee模块和C#的上位机研究与实现

2017-09-07 20:13张昱霖
数字技术与应用 2017年5期
关键词:上位机通用性

张昱霖

摘要:上位机作为物联设备软件层核心之一,其地位十分重要。为了方便对物联设备进行管理配置,本文基于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

猜你喜欢
上位机通用性
Improving polyp detection at colonoscopy: Non-technological techniques
基于元模型的通用性列控仿真平台基础环境研究
抛丸机吊具的通用性设计以及抛丸器的布置
提升电网企业制度通用性的应用研究——以“1 + 2 + 3”闭环管理机制构建精益高效的制度管理体系
汉语教材编写的本土化特征——基于《汉语教科书(1954)》与通用性教材、“一本多版”的比较