搜索 Search
你的位置:首页 > 行业快讯 > 安装门禁

门禁ASN.1及其基本编码规则

2014/9/4 10:14:51点击:

抽象语法AsN.l(AbstsyntaxNotationone)ITu(Intemationa-TeleeommunicationUnion)推荐的一个网络协议描述语言标准,全称为ASN.1ITUTX68O。它主要用来描述,定义网络通讯中的信息形式。该标准的主要内容包括:

(l)定义了许多简单数据类型;

(2)提供了用简单数据类型构成构造数据类型的方法。

简单类型包括NULLBOOLINTEGERREALBITSTRINGOCTETSTRINGENUMER户口,EDOBJECTIDENTIFIER等。它们是构成构造类型以及更复杂的数据类型的基础。其中,BOOL是布尔量,INTEGER相当于整数值的集合,REAL类型相当于实数值的集合,BITSTRING是以比特为单位的二进制字符,OCTETSTRG则是以字节为单位的字符串。ENUMERATED是一个定义变量值的集合,变量的值只在列举出来的范围内。NULL类型一般只出现在CHOICE项中或SEQuENCESET项的OPTIONAL项中,NuLL项本身并没有任何意义,不需要编码。但它仍然算一项,譬如,CHOICE类型中的NULL项仍然要分配索引号。构造类型有sEQueE,CHOxCE,sET,sEQUENCEOF,sETOF;其中SEQUENCE类型是一组不同数据类型的集合,相当于C语一言中的结构体。CHOICE类型是用来选择一组数据类型中的一个,也就是相当于C语言中的联合体。SEQuENcEoFsEToF类型定义了一些同一数据类型元素的集合,相当于C语言中的数组。这两者的差别是:SEQUENCEOF内各项的顺序是重要的,SETOF则表明其内各项的顺序可以任意。ASN.1基本编码规则(BER,BasicEncodingRules)完成抽象语法表示与传送语法间的变换。ASN.1采用TLV方法进行编码。该方法把各种数据表示成介peLengthValue三个字段,每个字段由字节组成,45TLV编码示例。

4.2.4数据通讯交互处理

从微观上看,BACnet网络中设备之间的通信实际上就是调用服务原语对BACnet对象和属性进行编码,然后装入设备的应用层协议数据单元通过网络传输给相应的设备。从宏观上看,数据通信处理任务的功能为向监控管理中心PC发送和接收监控管理中心传来的数据和命令,根据这些命令和数据,执行相应的操作。下位机是门禁控制器,上位机是监控管理中心普通微机。下位机完成现场数据的采集和实时监控,并将采集的数据上传到上位机,上位机接收数据后,进行处理,显示并记录下来,然后把执行命令传到门禁控制器。

4.3监控管理软件设计

4.3.1监控软件功能模块

在开发智能门禁管理管理软件时,所需要的主要功能模块有以下几个:

(l)通信功能模块

BACnet通信功能模块有两个主要进程,一个是接收进程,一个发送进程。接收进程用于监听BACnet网络,接收BACnet协议包,并将协议包传递给编解码模块;发送进程用于将服务处理功能模块传递过来的服务编码发送到BACnet网络上。这两个进程要随着集成管理软件的启动和关闭贯穿整个软件的生命周期。

(2)编解码功能模块

编解码模块在上一节作了详细介绍,它也分为两个部分:解码模块和编码模块。解码模块的功能是将接收进程接收到UDP协议包,根据BACnet协议所要求的格式进行解码,还原为相应的BACnet服务,然后将该服务信息发送到服务处理模块。编码模块根据所要生成的BACnet服务将提供的各种服务参数编码为BACnet服务,发送到通信模块,由发送进程发送到网络上去。编解码模块在程序中是作为后台支撑模块出现的,供服务功能处理模块调用。

(3)服务处理功能模块

这一模块是实现系统监控管理软件的核心模块。它的主要功能是根据要求生成相应的服务进程,用于查询实际工作设备对象的信息。由于BACnet协议有多种服务原语,不同的服务原语有不同的时序要求,相应的就有不同的服务进程。它还有一个功能就是接收服务信息,根据服务信息作出相应的处理。

(4)设备对象处理模块

该模块主要功能就是实现对BACnet设备对象的管理。它根据实际应用生成设备对象的实例信息表,根据服务处理功能模块的处理结果对实例对象状态进行维护,从而实现对BACnet设备状态的查询。同时,也可以根据要求对对象属性进行修改,从而控制BACnet设备。

(5)设备对象数据存储模块

在开发智能门禁监控管理软件时,需要解决的一个问题就是在该软件使用时,如何保存各种设备的信息。有多种技术可以实现该功能,XML文件方式、数据库等等。在本软件中使用数据库技术来储存各种BACnet设备信息。使用数据库来储存设备信息是非常方便的,而且对日常设备信息的109文件也可以存储和查询。本软件使用了Access数据库作为存储平台,下面将会详细讲到。