位置:51电子网 » 技术资料 » 其它综合

基于嵌入式Linux的BACnet控制器软件设计

发布时间:2007/8/28 0:00:00 访问次数:689

来源:单片机及嵌入式系统应用  作者:许永喜 惠晓实 刘贤德


摘要:描述BACnet协议的体系结构,分析BACnet控制器的功能,论证基于嵌入式Linux开发BACnet控制器的可行性;给出BACnet控制器软件的体系结构及其软件设计。


关键词:BACnet 控制器 楼宇控制设备 嵌入式Linux 体系结构


BACnet协议是一种为楼宇自动控制网络所制定的数据通信协议。该协议已成为美国国家标准(ANSI/ASHRAE 135-1995)和欧盟标准草案,并在2000年成为草案级国际标准。其中定义了23个对象和42个服务,以及5个数据链路的局域网底层网络结构。1999年1月正式发布了附录135a,成为标准的附件J,确定BACnet/IP技术的第6个局域网互联的底层技术。


1 BACnet网络体系结构和控制器功能分析


1.1 BACnet网络体系结构


BACnet建立在包含四个层次的简化分层体系结构上。这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。BACnet标准定义自已的应用层和简单的网络层,对于其数据链路层和物理层,提供了五种选择方案,在附件J-BACnet/IP中加入了对IP的支持。


图1是BACnet/IP网络体系结构层次图。BACnet没有对应于OSI的第四、五、六层,也就是说,BACnet没有传输层、会话层和表示层。BACnet网络层屏蔽了底层采用的网络技术的差异。


1.2 BACnet控制器的功能分析


在一个BACnet控制网络中,一个BACnet控制器通常和多个控制设备直接相连,负责监控这些设备的运行。概括起来说,BACnet控制器应该具有三个方面的功能。①通信功能。BACnet控制器是一个网络控制器,所以它必须能够发送和接收BACnet报文,和其它BACnet设备进行通信。②监视功能。BACnet控制器要监视与它直接相连的控制设备的状态。这样,它就要提供数据结构来描述这种状态。在BACnet协议中,描述这些状态是用BACnet对象。BACnet协议提供了42个标准对象。③控制功能。BACnet控制器要控制与它相边听设备的运行,不仅要使这些设备之间具有互动能力,而且要使这些设备和系统的远程设备能够互动,所以在BACnet控制器中应该有逻辑控制模块来实现这一功能。值得注意的是,不同时间、不同地点,BACnet控制器中的控制逻辑可能是不同的,因而在BACnet控制器中要提供改变控制流程的工具。这种工具最好是图形界面的,以方便用户使用。



图1 BACnet体系结构层次图


2 基于嵌入式Linux开发软件的可行性


①Linux是一个和Unix相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。在开发过程中,可以根据实际需要,通过内核构筑工具对Linux内核功能进行裁减,做成体积很小的嵌入式操作系统,可使其达到500KB或更小的规模。


②在实时性应用方面,通用的Linux在强实时性应用方面存在欠缺。Linux调度程序原来主要是针对台式计算机操作系统。重点考虑的是在应用程序的吞吐量上,即采用了一种“公平共享”的策略保证所有进程得到平均的CPU时间。在楼宇控制设备这种弱实时性应用中,如果采用先进的内核机制、进程调度算法和较小粒度的系统时间(10ms),是可以满足弱实时应用要求的,因此,Linux可用于楼宇自动化系统。


③Linux是源代码开放的操作系统,可以很容易得到内核的接口和源码,我们可以把BACnet的协议实现集成到内核中去。


④Linux是自由软件。在GNU GPL许可证协议下,可以自由使用、修改和发布,所以采用嵌入式Linux可以降低BACnet控制器的成本。


3 BACnet控制器软件的实现


3.1 BACnet控制器软件的体系结构


基于BACnet协议的体系结构和上面对BACnet控制器功能的分析,可以得出BACnet控制器软件包括以下几个模块:BACnet协议栈、BACnet对象和服务、底层驱动模块、应用控制逻辑模块和控制配置模块。


对Linux内核中不必要的模块加以裁减,并把BACnet控制器的一些模块嵌入到Linux内核,最终的开发体系结构如图2所示。


3.2 BACnet协议栈的实现


BACnet协议栈报文的封装流程如图3所示。


BACnet协议的分层体系结构支持多种底层通信协议。BACnet的网络层功能则对不同物理层和链路层的抽象,其原理与TCP/IP的IP层相。在BACnet应用层,定义了标准的对象和服务,以实现不同厂家的BACnet产品的互连。因此,从BACnet体系结构的各层协议内容来看,BACnet的体系结构呈“哑铃状”,最低层包容不同的通信协议,最高层承接多样的“实体”和应用。


在BACnet协议中,BACnet网络层是相对稳定的部分,也是BACnet协议的核心,应放入内核之中。其应用程序接口(API)应以系统调用(sys-call)的方式提供。这种构成方式不仅可以在内核内部高效实现对BACnet网络层的处理,而且对外挂模块还提供简洁和高效的调用方式,使外挂模块代码紧

来源:单片机及嵌入式系统应用  作者:许永喜 惠晓实 刘贤德


摘要:描述BACnet协议的体系结构,分析BACnet控制器的功能,论证基于嵌入式Linux开发BACnet控制器的可行性;给出BACnet控制器软件的体系结构及其软件设计。


关键词:BACnet 控制器 楼宇控制设备 嵌入式Linux 体系结构


BACnet协议是一种为楼宇自动控制网络所制定的数据通信协议。该协议已成为美国国家标准(ANSI/ASHRAE 135-1995)和欧盟标准草案,并在2000年成为草案级国际标准。其中定义了23个对象和42个服务,以及5个数据链路的局域网底层网络结构。1999年1月正式发布了附录135a,成为标准的附件J,确定BACnet/IP技术的第6个局域网互联的底层技术。


1 BACnet网络体系结构和控制器功能分析


1.1 BACnet网络体系结构


BACnet建立在包含四个层次的简化分层体系结构上。这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。BACnet标准定义自已的应用层和简单的网络层,对于其数据链路层和物理层,提供了五种选择方案,在附件J-BACnet/IP中加入了对IP的支持。


图1是BACnet/IP网络体系结构层次图。BACnet没有对应于OSI的第四、五、六层,也就是说,BACnet没有传输层、会话层和表示层。BACnet网络层屏蔽了底层采用的网络技术的差异。


1.2 BACnet控制器的功能分析


在一个BACnet控制网络中,一个BACnet控制器通常和多个控制设备直接相连,负责监控这些设备的运行。概括起来说,BACnet控制器应该具有三个方面的功能。①通信功能。BACnet控制器是一个网络控制器,所以它必须能够发送和接收BACnet报文,和其它BACnet设备进行通信。②监视功能。BACnet控制器要监视与它直接相连的控制设备的状态。这样,它就要提供数据结构来描述这种状态。在BACnet协议中,描述这些状态是用BACnet对象。BACnet协议提供了42个标准对象。③控制功能。BACnet控制器要控制与它相边听设备的运行,不仅要使这些设备之间具有互动能力,而且要使这些设备和系统的远程设备能够互动,所以在BACnet控制器中应该有逻辑控制模块来实现这一功能。值得注意的是,不同时间、不同地点,BACnet控制器中的控制逻辑可能是不同的,因而在BACnet控制器中要提供改变控制流程的工具。这种工具最好是图形界面的,以方便用户使用。



图1 BACnet体系结构层次图


2 基于嵌入式Linux开发软件的可行性


①Linux是一个和Unix相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。在开发过程中,可以根据实际需要,通过内核构筑工具对Linux内核功能进行裁减,做成体积很小的嵌入式操作系统,可使其达到500KB或更小的规模。


②在实时性应用方面,通用的Linux在强实时性应用方面存在欠缺。Linux调度程序原来主要是针对台式计算机操作系统。重点考虑的是在应用程序的吞吐量上,即采用了一种“公平共享”的策略保证所有进程得到平均的CPU时间。在楼宇控制设备这种弱实时性应用中,如果采用先进的内核机制、进程调度算法和较小粒度的系统时间(10ms),是可以满足弱实时应用要求的,因此,Linux可用于楼宇自动化系统。


③Linux是源代码开放的操作系统,可以很容易得到内核的接口和源码,我们可以把BACnet的协议实现集成到内核中去。


④Linux是自由软件。在GNU GPL许可证协议下,可以自由使用、修改和发布,所以采用嵌入式Linux可以降低BACnet控制器的成本。


3 BACnet控制器软件的实现


3.1 BACnet控制器软件的体系结构


基于BACnet协议的体系结构和上面对BACnet控制器功能的分析,可以得出BACnet控制器软件包括以下几个模块:BACnet协议栈、BACnet对象和服务、底层驱动模块、应用控制逻辑模块和控制配置模块。


对Linux内核中不必要的模块加以裁减,并把BACnet控制器的一些模块嵌入到Linux内核,最终的开发体系结构如图2所示。


3.2 BACnet协议栈的实现


BACnet协议栈报文的封装流程如图3所示。


BACnet协议的分层体系结构支持多种底层通信协议。BACnet的网络层功能则对不同物理层和链路层的抽象,其原理与TCP/IP的IP层相。在BACnet应用层,定义了标准的对象和服务,以实现不同厂家的BACnet产品的互连。因此,从BACnet体系结构的各层协议内容来看,BACnet的体系结构呈“哑铃状”,最低层包容不同的通信协议,最高层承接多样的“实体”和应用。


在BACnet协议中,BACnet网络层是相对稳定的部分,也是BACnet协议的核心,应放入内核之中。其应用程序接口(API)应以系统调用(sys-call)的方式提供。这种构成方式不仅可以在内核内部高效实现对BACnet网络层的处理,而且对外挂模块还提供简洁和高效的调用方式,使外挂模块代码紧

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!