专利名称:一种基于eib协议的现场设备通信方法
技术领域:
本发明涉及现场总线与控制技术,特别涉及一种基于EIB协议的现场设备通信方法。
背景技术:
目前,EIB总线技术作为一种性能优良的现场总线标准,分别于1999年、2005年、2007年被定为欧洲标准、国际标准和国家标准。EIB总线产品在国内市场上的应用已从导入期进入推广应用阶段,随着智能建筑、综合能源管理、物联网智慧感知等技术的发展,国内EIB总线技术将迎来市场的井喷应用时期。现场设备中基于EIB协议的通信设计与实现方法是EIB总线技术推广应用的关键技术,目前主要有两种解决方案一种是基于单片机的协议栈设计方案,另一种是基于ARM等嵌入式芯片的实现方案。前者成本较低,实现方案较为灵活,适合在广大的现场感知节点中应用;而后者功能较强,成本相对较高,适合在功能强大的中大型控制器中使用。尽管EIB总线技术在国外已相当成熟,但国内对EIB协议的研究开发与推广应用起步较晚,目前尚缺乏具有自主知识产权的EIB协议栈封装产品,导致国内市场上EIB总线产品成本高昂,大范围多领域的使用受到限制。目前存在的问题主要有
I、EIB封装技术主要被西门子等国外大厂家所垄断,国内虽有不少科研院所在从事这方面的工作,但大都处于熟悉了解阶段,进展不大,缺泛技术突破。2、国内企业普遍缺乏有力的技术支撑,EIB总线产品的研发主要是采用西门子等厂家的BCU单元进行OEM开发,实际上只是开发应用模块部份。3、一方面,EIB协议应用的市场潜力巨大,另一方面由于缺泛具有自主知识产权产品的支持,导致EIB总线产品的应用成本居高不下,严重制约了 EIB总线技术在国内的推广应用进程。4、一方面,现场感知节点设备在硬件设计上应尽可能简单,以降低成本;另一方面,在物联网智慧感知的要求下,每一个现场节点感知设备应具有尽可能多的智慧处理能力。如何在资源少、功能强两方面进行平衡,获得很好的经济效益也是EIB协议栈封装产品的重要课题。因此,研究开发具有自主知识产权的EIB协议栈产品,不仅能打破国外厂家在EIB总线技术上的垄断地位,降低EIB总线产品的综合应用成本,而且还能提升国内在智能照明、智慧感知等应用领域产品的档次,具有特别重要的意义。
发明内容
为解决上述问题,本发明的目的在于提供能大大降低EIB总线产品在国内市场的应用门槛,解决其在国内市场应用的技术“瓶颈”的一种基于EIB协议的现场设备通信方法。本发明解决其问题所采用的技术方案是
一种基于EIB协议的现场设备通信方法,根据EIB协议标准创建对应的协议栈对传输的数据进行逐层的封装和解析,即通过物理层、链路层、网络层、传输层、应用层和用户层对数据进行分层的封装和解析,其中协议栈采用全局数据结构实现通信过程中相关参数的传递,在数据结构中协议栈的各功能模块均可直接读/写操作此数据结构中的字段信息,实现管理与赋值。上述各功能模块具体的访问字段信息的内容由各层对象管理实体和服务器所实现的功能所决定。进一步,将数据帧各字段的信息进行分类梳理,定义并映射成数据帧的各结构字段,构成所述的全局数据结构。所述数据帧的字段信息包括控制字段、地址信息、数据、长度信息以及帧类型信息,还包括应用层、传输层等控制信息。设置全局数据结构能有效控制协议栈代码的大小,使其能在普通的8位单片机中即可正常运行,解决跨层、跨功能服务处理时的数据与参数传递问题,并优化源代码,将协议栈的代码空间控制在5K-10K之间,方便在普通单片机中部署。
进一步,协议栈还定义了发送/接收缓冲区,接收数据时从接收缓冲区将数据拷入全局数据结构,协议栈各层通过读取全局数据结构操作,获得EIB接收数据帧的各结构字段信息,从下至上逐层解析并作出对应的应答处理;发送时协议栈各层通过写入全局数据结构操作,将数据帧的各结构字段值逐一存入全局数据结构,从上往下逐层完成EIB协议数据帧的封装,然后拷贝进发送缓存区进入发送操作。全局数据结构定义并映射了数据帧的各结构元素,可直接被协议栈中各子模块进行全面读/写操作,实现管理与赋值。接收时从接收缓冲区将数据拷入全局数据结构,通过读取全局数据结构操作,获得EIB接收数据帧的各结构元素值,解析并作出对应的应答处理;发送时通过写入全局数据结构操作,将数据帧的各结构元素值逐一存入全局数据结构,完成EIB协议数据帧的封装,之后拷贝进发送缓冲区进行发送操作。这样操作的好处是节省了资源,加快了数据处理速度。同时,在项目实现过程中,以宏定义的方式为该全局变量的读写预留操作接口,大大降低操作过程中的出错率。进一步,协议栈定义了外部变量表,用于管理数据帧整体收发情况,完成数据链路层与物理层的参数传递工作。外部变量表用于管理数据帧整体收发情况,如发送/接收缓冲区地址、帧长度、发送/接收启始/结束情况等。进一步,协议栈定义了内部变量表,用于管理物理层接收、发送帧过程中形成和涉及的状态信息。如总线空闲状态、发送接收字符状态、当前位信息、接收字符位数、工作缓冲区地址、奇偶检测位等信息。采用内部变量表和外部变量,可将通信处理方法与具体的介质特征分离,实现现场设备之间数据通信的处理与物理层介质无关。进一步,协议栈设有层管理实体对对各层的服务函数进行管理,实现协议栈代码容量的精细化裁剪。进一步,所述层管理实体包括应用层管理实体、传输层管理实体、网络层管理实体和链路层管理实体。进一步,根据用户层的需要,协议栈以通信模式为原则从上往下逐层服务映射,将必须的服务类型包含进协议栈,横向管理协议服务内容,对协议栈代码容量进行有效伸缩。通信过程中的具体实现和设置方法是各层针对基本通信模式的每个服务类型,分别创建*. Inc和*. Service文件,来申明和实现各个服务的原语函数,初始化服务的接口参数,读取并获得服务的接口参数值;创建层服务管理实体对本层的功能服务进行管理,并实现上层对下层的服务映射与嵌套。若设备需增添新的应用,只需在用户层添加要求的用户进程,根据其通信模式要求在协议栈层管理实体中统一开启并逐层映射该应用通讯所需的服务原语,即可完成协议栈新应用的开发工作。进一步,在用户层和应用层之间建立组对象处理数据表,实现现场设备之间的直接数据通信管理。在用户层与应用层之间,建立组对象处理数据表作为用户组对象管理模块与系统协议栈通信的桥梁。组对象处理数据表包括组地址表(描述设备组地址信息)、关联表(描述组地址与对象的关联关系)及对象表(描述设备对象信息)三部分。对象表的数据由用户和组对象服务器共同维护。 这是一个共享变量模型在单个设备上的具体表现。实际上,该共享变量模型不仅指单个设备,而是指在整个网络的同一个组上,由设备的组对象服务器间通过互操作来保证。根据用户应用需求或设备动作情况,用户层组对象管理模块更改对象表的相应对象状态信息,设置传输状态并标识写请求。应用层的组对象服务器实时查询对象表中各对象的状态信息变化情况,根据对象表的传输状态及写请求标识查找关联表中对应项并绑定组地址表提取与之关联的组地址信息,调用应用层读/写组值服务,向全局数据结构添加应用层控制信息,并逐层往下调用添加形成帧封装发送过程;物理层接收并处理总线数据帧后逐层解析直到应用层,提取接收数据帧的应用层控制信息调用应用层读/写组值服务,根据接收帧的组地址信息,查询关联表绑定与之相关联的对象号,提取对应项进行应答处理或将接收数据信息写入对象表对应项,标记对象更新标志。组对象服务器查询到对象更新标志后调用用户层用户进程功能模块,响应来自总线的动作请求。进一步,在协议栈程序源代码的各层中,根据通信模式、服务功能等设置条件编译,从应用层开始自上而下逐层分服务设置编译条件,当具体产品中选中某通信模式才将其涉及的服务代码编译进源程序,没有应用的服务类型将不会编译进源程序。这样,尽管应用设计时,每款产品的具体功能都会有所不同,但仍可使用统一的协议栈,只需开关编译条件即可既满足功能需求又节省底层芯片存储空间。条件编译的设计方法有利于满足根据产品自身功能特点选择合适硬件的需求,一定程度上节省了硬件成本。EIB协议栈包括物理层、数据链路层、网络层、传输层、应用层和用户层。物理层基于设备硬件部分,主要是实现并保证EIB系统内各物理实体间的正确通信。它负责完成数据帧中每一个具体数据位的接收、发送工作。物理层接收数据帧时,校验每个字节的校验位正确与否,将字节校验位错误的帧予以放弃,最终将接收到的数据形成固定格式的EIB数据帧,存储到接收缓冲区,并通过外部变量表来通知链路层接收完成;发送数据帧时,接收到链路层帧发送任务后,检测总线工作情况,将发送缓冲区的数据帧逐位进行发送,形成每一个字节的校验位并完成发送工作。其中内部变量表用于存储接收、发送执行过程中形成的状态标识,外部变量表则负责与数据链路层之间的通讯工作。数据链路层支持链路层数据服务、链路层本地信息服务、链路层轮询服务以及链路层系统广播服务。实现方法是在链路层服务器中定义并实现支持本层各服务功能的函数体,实时掌握帧收发状态,提取或更新内外部变量表内容,管理发送/接收缓冲区,完成数据帧LPDU (链路层协议数据单元)的提取分析或设置工作。其中数据链路层还用于提供数据帧的差错检测功能并支持对数据链路地址的识另IJ。接收时,它负责从接收缓冲区检测数据帧的校验字符,判断帧的完整性,放弃校验错误或目的地址不属于本节点设备的数据帧,对正确接收的数据帧反馈接收正确回复帧,错误的帧反馈接收错误的回复帧,并将接收缓冲区的数据帧加载到全局数据结构中,告知网络层接收处理完成;发送时,它根据帧的任务需求在全局数据结构中加载相应类型的地址信息,计算并添加数据帧的校验字符,形成完整数据帧后拷入发送缓冲区,通知物理层进行发送。发送完成后,处理接收方发送的回复帧,如果发送失败,完成限定次数内的重发功能。网络层支持网络层系统广播服务、网络层点对点连接服务、网络层组服务。实现方法是在网络层服务器中定义并实现支持本层各服务的函数体,用于完成从全局数据结构中提取或设置NPDU (网络层协议数据单元)识别、分配网络路由。网络层主要实现网络路由的分配和识别工作,判断当前数据帧的通信模式,并据此对数据信息进行分服务处理。接收时,它负责从全局数据结构中提取并识别地址类型、路由信息及设备类别等信息,根据识别结果将不同通信模式的数据帧进行分类处理,通知传输层进行工作。发送时,它根据通信模式的不同在全局数据结构中对应位置上添加相应地址类型标识,加载设备路由及设备类别信息,通知链路层进行工作。传输层支持通信模式主要有以下几种点对多点,无连接/多播通信模式;点对域,无连接/广播;点对点,无连接;点对点,面向连接。实现方法是在传输层服务器中定义并实现支持本层各服务功能的函数体,用于完成从全局数据结构中提取、分析处理或设置TPDU (传输层协议数据单元)的工作。传输层负责分配、识别TPDU (传输层协议数据单元),对属于不同通信模式的数据信息提供不同的传输层原语服务,接收处理帧时,它从全局数据结构中提取数据帧TPDU信息,据此判断帧的通信模式类型,响应该模式的指示原语服务,调用应用层的应用服务进行后续处理;发送封装帧时,根据应用层应用服务对通信模式的不同需求,响应对应的请求、确认原语,并将TPDU的信息封装进全局数据结构当中,通知网络层进一步封装加载数据帧信息。应用层服务主要有读写组值服务/多播,读写属性值服务/点对点无连接,读写 内层服务/点对点有连接,读写物理地址服务/广播,等等。实现方法是在应用层服务器中定义并实现支持本层各服务的函数体,用于完成从全局数据结构中提取、分析处理或设置APDU/应用层协议数据单元,实现各服务的具体功能需求。应用层服务器中读写组值模块实时查询组对象处理数据表中各对象的状态信息变化情况,完成对应的分析处理工作;并根据来自总线的帧信息分析处理情况实时更新组对象处理数据表中对象信息,提醒用户对象完成来自总线的请求动作。应用层完成对全局数据结构中接收数据帧的应用层控制信息的分配和识别,根据实际应用需求定义并实现基于不同通信模式的众多应用层服务,各应用层服务完成对应的通信功能,实现对接收数据帧的分析、处理、响应工作。应用层服务接受来自于传输层指示原语或用户层任务的调用,它识别数据帧的应用层控制信息,读取并分析处理帧的数据区域,或根据需求调用对应的应答服务。应用层应答服务在数据处理工作完成后或接收用户层调用后会执行原语定义相应工作,并形成数据帧发送过程,根据服务要求分配数据帧的应用层控制信息,加载帧数据区、长度等信息,并根据通信模式的类型映射调用传输层服务原语。用户层主要负责实现产品需求定义的各种用户动作或任务,如设备管理、网络管理、组对象通信管理等等。实现方法是在用户层服务器中定义并实现支持本层各功能的函数体。用户层各功能函数体调用应用层对应的服务原语函数,完成数据分析、处理,逐层调用形成数据帧发送过程,最终完成用户任务所需功能。用户层服务器实现的组对象管理模块实时查询组对象处理数据表中对象更新标志调用实现功能模块,响应来自总线的动作请 求;用户进程主动触发动作后,用户层组对象管理模块更改对象处理数据表的相应对象状态信息,提示应用层完成动作信息帧发送过程。本发明的有益效果是本发明采用的一种基于EIB协议的现场设备通信方法,根据EIB协议的标准与功能定义,自主创建一个合理的总体设计架构,采用分层封装的方法,对每层解析功能进行合理封装,并实现可配置管理,解决具体现场设备对EIB协议栈的功能裁剪与增删问题,实现功能的灵活配置要求,大大降低EIB总线产品在国内市场的应用门槛,解决其在国内市场应用的技术“瓶颈”,为国内企业在EIB应用方面提供技术支撑,为市场全面应用EIB总线技术奠定坚实基础。它的应用必将大大降低EIB总线产品的应用成本,提升EIB总线产品在智能照明、智能家居、智慧社区等应用领域智能识别与智慧感知水平,产生很好的经济效益与社会效益。
下面结合附图和实例对本发明作进一步说明。图I是控制网络HBES技术规范定义的协议栈参考模型。图2是本发明EIB协议栈设计的总体框架图。
具体实施例方式参照图I所示,为EIB协议标准《控制网络HBES技术规范住宅和楼宇控制系统》(GB/Z20965-2007)所规定的协议栈参考模型,本发明的EIB协议栈设计符合上述标准,基于OSI参考模型,包括物理层、数据链路层、网络层、传输层、应用层,会话层与表示层采用透明传递,不定义具体功能,针对标准所定义的具体应用,参照图2,在本发明中采用用户层来封装,共设计六层。所有服务类型按组服务、点对点无连接服务、点对点有连接服务、广播(含系统广播)服务四类进行分类管理。处理过程遵循EIB协议的功能定义标准,每层相对独立,EIB协议栈具体通过物理层、链路层、网络层、传输层、应用层和用户层对数据进行分 层的封装和解析,其中协议栈采用全局数据结构实现通信过程中相关参数的传递,
在数据结构中协议栈的各功能模块均可直接读/写操作此数据结构中的字段信息,实现管理与赋值。将数据帧各字段的信息(包括控制字段、地址信息(源地址和目的地址)、数据和其长度信息以及帧类型等)进行分类疏理,定义并映射成数据帧的各结构字段,构成全局数据结构。全局数据结构中还包括应用层、传输层等控制信息,在此数据结构中,协议栈各功能模块均可直接读/写操作此数据结构中的字段信息,实现管理与赋值。具体访问字段信息的内容由各层层对象管理实体和层服务器所实现的功能所决定。协议栈还定义了发送/接收缓冲区,接收数据时从接收缓冲区将数据拷入全局数据结构,协议栈各层通过读取全局数据结构操作,获得EIB接收数据帧的各结构字段信息,从下至上逐层解析并作出对应的应答处理;发送时协议栈各层通过写入全局数据结构操作,将数据帧的各结构字段值逐一存入全局数据结构,从上往下逐层完成EIB协议数据帧的封装,然后拷贝进发送缓存区进入发送操作。全局数据结构定义并映射了数据帧的各结构元素,可直接被协议栈中各子模块进行全面读/写操作,实现管理与赋值。接收时从接收缓冲区将数据拷入全局数据结构,通过读取全局数据结构操作,获得EIB接收数据帧的各结构元素值,解析并作出对应的应答处理;发送时通过写入全局数据结构操作,将数据帧的各结构元素值逐一存入全局数据结构,完成EIB协议数据帧的封装,之后拷贝进发送缓冲区进行发送操作。这样操作的好处是节 省了资源,加快了数据处理速度。同时,在项目实现过程中,以宏定义的方式为该全局变量的读写预留操作接口,大大降低操作过程中的出错率。协议栈定义了外部变量表和内部变量表,外部变量表用于管理数据帧整体收发情况,如发送/接收缓冲区地址、帧长度、发送/接收启始/结束情况等。外部变量表用于完成数据链路层与物理层的参数传递工作。内部变量表用于管理物理层接收、发送帧过程中形成和涉及的状态信息,如总线空闲状态、发送接收字符状态、当前位信息、接收字符位数、工作缓冲区地址、奇偶检测位等信息。通过内部变量表的定义与封装,实现现场设备之间数据通信的处理与物理层介质无关。发送数据帧时,数据帧自用户层逐步形成并传送至链路层拷入发送缓冲区,内外部变量表的相关状态参数被更新,物理层不断侦听总线工作状态,实时更新内部变量表内容,自动有序地将数据帧的字符逐个拆分按位发往总线。接收数据帧时,物理层不断查询当前总线工作状态,实时将接收及状态更新内容存入内部变量表,自动有序地将总线上发来的连续有效位组装成数据帧,更新外部变量表相关状态参数,通知链路层进入下一步工作。至此,完成对一个完整数据帧的接收与发送管理。这样,当采用不同的传输媒介时,由于内外部变量表记录了物理层全部有效工作内容及状态,链路层只需实时读出或写入内外部变量表的参数即可,实现了协议栈解析/封装与传输介质的无关性。协议栈设有层管理实体对对各层的服务函数进行管理,实现协议栈代码容量的精细化裁剪,其中层管理实体包括应用层管理实体、传输层管理实体、网络层管理实体和链路层管理实体。根据用户层应用需求,协议栈以通信模式为原则从上往下逐层服务映射,将必须的服务类型包含进协议栈,横向管理协议栈服务内容,对协议栈代码容量进行有效伸缩。通信过程中的具体实现和设置方法是各层针对基本通信模式的每个服务类型,分别创建*. Inc和*. Service文件,来申明和实现各个服务的原语函数,初始化服务的接口参数,读取并获得服务的接口参数值;创建层服务管理实体对本层的功能服务进行管理,并实现上层对下层的服务映射与嵌套。若设备需增添新的应用,只需在用户层添加要求的用户进程,根据其通信模式要求在协议栈层管理实体中统一开启并逐层映射该应用通讯所需的服务原语,即可完成协议栈新应用的开发工作。在用户层与应用层之间,建立组对象处理数据表作为用户组对象管理模块与系统协议栈通信的桥梁。组对象处理数据表包括组地址表(描述设备组地址信息)、关联表(描述组地址与对象的关联关系)及对象表(描述设备对象信息)三部分。对象表的数据由用户和组对象服务器共同维护。根据用户应用 需求或设备动作情况,用户层组对象管理模块更改对象表的相应对象状态信息,设置传输状态并标识写请求。应用层的组对象服务器实时查询对象表中各对象的状态信息变化情况,根据对象表的传输状态及写请求标识查找关联表中对应项并绑定组地址表提取与之关联的组地址信息,调用应用层读/写组值服务,向全局数据结构添加应用层控制信息,并逐层往下调用添加形成帧封装发送过程;物理层接收并处理总线数据帧后逐层解析直到应用层,提取接收数据帧的应用层控制信息调用应用层读/写组值服务,根据接收帧的组地址信息,查询关联表绑定与之相关联的对象号,提取对应项进行应答处理或将接收数据信息写入对象表对应项,标记对象更新标志。组对象服务器查询到对象更新标志后调用用户层用户进程功能模块,响应来自总线的动作请求。在协议栈程序源代码的各层中,根据通信模式、服务功能等设置条件编译,从应用层开始自上而下逐层分服务设置编译条件,当具体产品中选中某通信模式才将其涉及的服务代码编译进源程序,没有应用的服务类型将不会编译进源程序。这样,尽管应用设计时,每款产品的具体功能都会有所不同,但仍可使用统一的协议栈,只需开关编译条件即可既满足功能需求又节省底层芯片存储空间。条件编译的设计方法有利于满足根据产品自身功能特点选择合适硬件的需求,一定程度上节省了硬件成本。参照图2所示,EIB协议栈包括物理层、数据链路层、网络层、传输层、应用层和用户层,其中各层的具体工作过程如下
物理层基于设备硬件部分,主要是实现并保证EIB系统内各物理实体间的正确通信。它负责完成数据帧中每一个具体数据位的接收、发送工作。物理层接收数据帧时,校验每个字节的校验位正确与否,将字节校验位错误的帧予以放弃,最终将接收到的数据形成固定格式的EIB数据帧,存储到接收缓冲区,并通过外部变量表来通知链路层接收完成;发送数据帧时,接收到链路层帧发送任务后,检测总线工作情况,将发送缓冲区的数据帧逐位进行发送,形成每一个字节的校验位并完成发送工作。其中内部变量表用于存储接收、发送执行过程中形成的状态标识,外部变量表则负责与数据链路层之间的通讯工作。数据链路层支持链路层数据服务、链路层本地信息服务、链路层轮询服务以及链路层系统广播服务。实现方法是在链路层服务器中定义并实现支持本层各服务功能的函数体,实时掌握帧收发状态,提取或更新内外部变量表内容,管理发送/接收缓冲区,完成数据帧LPDU (链路层协议数据单元)的提取分析或设置工作。数据链路层用于提供数据帧的差错检测功能并支持对数据链路地址的识别。接收时,它负责从接收缓冲区检测数据帧的校验字符,判断帧的完整性,放弃校验错误或目的地址不属于本节点设备的数据帧,对正确接收的数据帧反馈接收正确回复帧,错误的帧反馈接收错误的回复帧,并将接收缓冲区的数据帧加载到全局数据结构中,告知网络层接收处理完成;发送时,它根据帧的任务需求在全局数据结构中加载相应类型的地址信息,计算并添加数据帧的校验字符,形成完整数据帧后拷入发送缓冲区,通知物理层进行发送。发送完成后,处理接收方发送的回复帧,如果发送失败,完成限定次数内的重发功能。网络层支持网络层系统广播服务、网络层点对点连接服务、网络层组服务。实现方法是在网络层服务器中定义并实现支持本层各服务的函数体,用于完成从全局数据结构中提取或设置NPDU (网络层协议数据单元)识别、分配网络路由。网络层主要实现网络路由的分配和识别工作,判断当前数据帧的通信模式,并据此对数据信息进行分服务处理。接收时,它负责从全局数据结构中提取并识别地址类型、路由信息及设备类别等信息,根据识别结果将不同通信模式的数据帧进行分类处理,通知传输层进行工作。发送时,它根据通信模式的不同在全局数据结构中对应位置上添加相应地址类型标识,加载设备路由及设备类别信息,通知链路层进行工作。传输层支持通信模式主要有以下几种点对多点,无连接/多播通信模式;点对域,无连接/广播;点对点,无连接;点对点,面向连接。实现方法是在传输层服务器中定义并实现支持本层各服务功能的函数体,用于完成从全局数据结构中提取、分析处理或设置TPDU (传输层协议数据单元)的工作。对属于不同通信模式的数据信息提供不同的传输层原语服务,接收处理帧时,它从全局数据结构中提取数据帧TPDU信息,据此判断帧的通信模式类型,响应该模式的指示原语服务,调用应用层的应用服务进行后续处理;发送封装帧时,根据应用层应用服务对通信模式的不同需求,响应对应的请求、确认原语,并将TPDU的信息封装进全局数据结构当中,通知网络层进一步封装加载数据帧信息。应用层服务主要有读写组值服务/多播,读写属性值服务/点对点无连接,读写内层服务/点对点有连接,读写物理地址服务/广播,等等。实现方法是在应用层服务器中定义并实现支持本层各服务的函数体,用于完成从全局数据结构中提取、分析处理或设置APDU/应用层协议数据单元,实现各服务的具体功能需求。应用层服务器中读写组值模块实时查询组对象处理数据表中各对象的状态信息变化情况,完成对应的分析处理工作;并根据来自总线的帧信息分析处理情况实时更新组对象处理数据表中对象信息,提醒用户对象完成来自总线的请求动作。应用层完成对全局数据结构中接收数据帧的应用层控制信息的分配和识别,根据实际应用需求定义并实现基于不同通信模式的众多应用层服务,各应用层服务完成对应的通信功能,实现对接收数据帧的分析、处理、响应工作。应用层服务接受来自于传输层指示原语或用户层任务的调用,它识别数据帧的应用层控制信息,读取并分析处理帧的数据区域,或根据需求调用对应的应答服务。应用层应答服务在数据处理工作完成后或接收用户层调用后会执行原语定义相应工作,并形成数据帧发送过程,根据服务要求分配数据帧的应用层控制信息,加载帧数据区、长度等信息,并根据通信模式的类型映射调用传输层服务原语。用户层主要负责实现产品需求定义的各种用户动作或任务,如设备管理、网络管理、组对象通信管理等等。实现方法是在用户层服务器中定义并实现支持本层各功能的函数体。用户层各功能函数体调用应用层对应的服务原语函数,完成数据分析、处理,逐层调用形成数据帧发送过程,最终完成用户任务所需功能。用户层服务器实现的组对象管理模块实时查询组对象处理数据表中对象更新标志调用实现功能模块,响应来自总线的动作请求;用户进程主动触发动作后,用户层组对象管理模块更改对象处理数据表的相应对象状态信息,提示应用层完成动作信息帧发送过程。协议栈各层的数据分析处理以数据流为向导,封装时自上至下逐层处理、添加帧字段,解析时自下至上逐层提取、分析处理帧字段,全部过程均借助于全局数据结构来管理和实现,并辅以发送/接收缓冲区、连接表、内部/外部变量表等数据结构进行数据与参数、传递。该设计能有 效控制协议栈代码的大小,使其能在普通的8位单片机(R0M>=8K)中即可正常运行。此外,协议栈应用的调用接口部分也进行了标准化封装。例如在用户层,根据组对象通信管理、设备管理(含物理地址/组地址/关联表等配置管理、属性配置、内存读写管理等)、网络管理等具体应用需求将各类服务封装为功能应用,实际使用时只需直接调用服务接口即可。比如组对象管理服务器等,属于一个高级的应用层接口界面。针对现场感知设备可利用资源少,要求成本低,而智慧感知的能力却要求越来越高的现状,采用单片机技术对EIB协议栈进行自主封装,可有效降低EIB总线产品的应用成本。以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
权利要求
1.一种基于EIB协议的现场设备通信方法,其特征在于根据EIB协议标准创建对应的协议栈对传输的数据进行逐层的封装和解析,即通过物理层、链路层、网络层、传输层、应用层和用户层对数据进行分层的封装和解析,其中协议栈采用全局数据结构实现通信过程中相关参数的传递,在数据结构中协议栈的各功能模块均可直接读/写操作此数据结构中的字段信息,实现管理与赋值。
2.根据权利要求I所述的一种基于EIB协议的现场设备通信方法,其特征在于将数据帧各字段的信息进行分类梳理,定义并映射成数据帧的各结构字段,构成所述的全局数据结构。
3.根据权利要求I或2所述的一种基于EIB协议的现场设备通信方法,其特征在于协议栈还定义了发送/接收缓冲区,接收数据时从接收缓冲区将数据拷入全局数据结构,协议栈各层通过读取全局数据结构操作,获得EIB接收数据帧的各结构字段信息,从下至上逐层解析并作出对应的应答处理;发送时协议栈各层通过写入全局数据结构操作,将数据帧的各结构字段值逐一存入全局数据结构,从上往下逐层完成EIB协议数据帧的封装,然后拷贝进发送缓存区进入发送操作。
4.根据权利要求I所述的一种基于EIB协议的现场设备通信方法,其特征在于协议栈定义了外部变量表,用于管理数据帧整体收发情况,完成数据链路层与物理层的参数传递工作。
5.根据权利要求I所述的一种基于EIB协议的现场设备通信方法,其特征在于协议栈定义了内部变量表,用于管理物理层接收、发送帧过程中形成和涉及的状态信息。
6.根据权利要求I所述的一种基于EIB协议的现场设备通信方法,其特征在于协议栈设有层管理实体对对各层的服务函数进行管理,实现协议栈代码容量的精细化裁剪。
7.根据权利要求6所述的一种基于EIB协议的现场设备通信方法,其特征在于所述层管理实体包括应用层管理实体、传输层管理实体、网络层管理实体和链路层管理实体。
8.根据权利要求7所述的一种基于EIB协议的现场设备通信方法,其特征在于根据用户层的需要,协议栈以通信模式为原则从上往下逐层服务映射,将必须的服务类型包含进协议栈,横向管理协议服务内容,对协议栈代码容量进行有效伸缩。
9.根据权利要求I所述的一种基于EIB协议的现场设备通信方法,其特征在于在用户层和应用层之间建立组对象处理数据表,实现现场设备之间的直接数据通信管理。
10.根据权利要求I所述的一种基于EIB协议的现场设备通信方法,其特征在于在协议栈程序源代码的各层中,根据通信模式、服务功能等设置条件编译,从应用层开始自上而下逐层分服务设置编译条件,当具体产品中选中某通信模式才将其涉及的服务代码编译进源程序,没有应用的服务类型将不会编译进源程序。
全文摘要
本发明公开了一种基于EIB协议的现场设备通信方法,根据EIB协议标准创建对应的协议栈对传输的数据进行逐层的封装和解析,即通过物理层、链路层、网络层、传输层、应用层和用户层对数据进行分层的封装和解析,其中协议栈采用全局数据结构实现通信过程中相关参数的传递;本发明大大降低EIB总线产品在国内市场的应用门槛,解决其在国内市场应用的技术“瓶颈”,为国内企业在EIB应用方面提供技术支撑,为市场全面应用EIB总线技术奠定坚实基础。它的应用必将大大降低EIB总线产品的应用成本,提升EIB总线产品在智能照明、智能家居、智慧社区等应用领域智能识别与智慧感知水平,产生很好的经济效益与社会效益。
文档编号H04L12/40GK102739788SQ20121021160
公开日2012年10月17日 申请日期2012年6月25日 优先权日2012年6月25日
发明者钱静, 陈迪泉 申请人:广州复旦奥特科技股份有限公司