微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > BACnet/IP智能终端的模型研究与设计

BACnet/IP智能终端的模型研究与设计

时间:08-15 来源:C114 点击:



图2传统与改进后的BACnet/IP终端模型

2.3基于无线的BACnet/IP终端

在改进的BACnet/IP终端模型中,BACnet控制器与底层控制器间仍然是以有线的方式进行通信,有线通信对于BACnet/IP通信环境的搭建以及以后的扩展维护都是一个极大的阻碍。所以本文采用无线通信的方案进行BACnet/IP终端的实现,其模型如图3所示。当BACnet/IP终端收到经由IPv4网络发送而来的BACnet服务原语,会经过其内部的BACnet协议栈确认为对象访问类服务,控制器需要操作无线模块对特定的无线采集DDC节点进行访问,如读取当前温度值、调节照明亮度等。



图3基于无线的BACnet/IP终端

将无线通信的方法应用于BACnet,可以使得BACnet组织更加灵活,更加方便地增加和移除设备。

3 BACnet/IP终端的硬件设计

基于上述模型,终端需要同时提供多个对象的服务、IP网络服务,以及和无线模块之间通信,这对于硬件资源的要求较高,所以终端在硬件微处理器的选择芯片为三星公司的S3C2440A处理器,而在无线模块上选择是CC1101无线芯片。图4是终端控制器的硬件结构图,各部分的功能如下:

①S3C2440A控制核心板,负责嵌入式Linux操作系统及BACnet协议栈的运行。

②USB模块,主要是外接无线网卡,可以通过WLAN将终端接入IP互联网中,接无线网卡的好处是进一步省去了IP网络布线的麻烦。

③UART模块,使终端可以通过RS232接口和PC机进行通信,主要是为了调试。

④无线模块,终端侧的无线节点,和底层无线采集节点进行通信。

⑤LCD触摸屏,用于和用户交互,平时工作时可以将背光关掉以节能。



图4 BACnet/IP终端硬件设计

4 BACnet/IP终端的软件设计

基于前面的BACnet/IP终端模型与硬件平台,软件平台上选择嵌入式Linux作为平台,ARM9和Linux的配置也是当前较为先进和流行的嵌入式平台。软件设计部分主要涉及嵌入式Linux系统的搭建与裁剪、BACnet/IP协议栈的移植,以及BACnet/IP协议栈和无线模块之间的交互。

4.1嵌入式Linux系统构建

在ARM9处理器上移植与构建嵌入式Linux系统目前已经有比较成熟的方案,在移植Linux系统时不要裁剪网络功能,需要将IPV4与IPV6网络功能保证完全,因为BACnet/IP协议正是基于TCP/IP协议栈的UDP层,而保留IPV6协议栈是考虑到BACnet也可以架构与IPV6网络之上,这是需要注意的。

4.2 BACnet/IP协议栈的移植

BACnet/IP协议栈的实现上,本文采用移植BACnet Stack Protocol工程。BACnet Stack Protocol是Steve Karg在2005年于着名的开源网站sourceforge上维护的一个BACnet协议栈开源工程,它完整地实现了BACnet协议标准,并且可以方便地移植应用于多种平台上,如WIN32、Linux、PIC单片机、ARM7处理器等,目前最新的版本是bacnetstack0.8.0.

由于BACnet Stack Protocol工程采用C语言开发,所以可以很方便地移植于嵌入式Linux系统中,具体来说只要在编译的时候选择相应处理器对应的编译器即可。BACnet Stack Protocol之所以具有高度的可移植性,归功于其模块化的编程方法和BACnet协议栈的分层设计。在将BACnet Stack Protocol移植于不同硬件平台时,只需要修改对应数据链路层部分,而网络层和应用层代码无需修改,这和IP协议栈能应用于不同硬件场合的思想也是一致的。

4.3无线模块与BACnet/IP通信

由于无线模块只负责控制着底层的DDC,相应于BACnet协议中的应用服务,也就是说无线模块只需要负责和BACnet协议栈中的应用层进行通信,当应用层协议数据单元(APDU)需要获取DDC的数据时,即调用无线模块进程与之进行通信。整个系统的软件设计如图5所示。



图5 BACnet/IP终端软件设计

系统的软件由以下几部分模块组成:

①Linux内核模块,主要用于IP网络协议栈以及各种底层驱动(如LCD屏幕,无线模块驱动)的实现。

②BACnet协议栈模块,主要用于移植BACnet Protocol Stack开源工程。

③无线模块,用户态的无线模块进程用于和底层的各个无线采集节点进行通信,而通信的上层进程为BACnet协议栈。

④Web模块,提供Web服务,使得用户可以通过IP网络的http服务远程访问和控制终端。

5系统性能测试

为了验证BACnet/IP终端的实际运行情况,采用了VTS软件进行测试,VTS是验证应用在BACnet楼宇系统中的有力工具。在BACnet/IP网络中,远端控制器发送BACnetReadProperty服务原语,其对象设置为AnalogInput,对象的实例号为0(AnalogInput/0在本测试环境下代表的是远程的BACnet/IP温度采集器),图6展示的是本端终端控制器的响应数据,可以看出其PropetyVlaue:Real子类中的值为28.4,也就是说当前的温度为28.4℃,和实际情况相吻合。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top