软件大小:
软件语言:
浏览人数:298人
软件类型:
授权方式:
用户评分:
更新时间:2023-11-07
软件分类:Mac系统
运行环境:
技术领域
本发明属于总线形式的有线控制网络领域,具体涉及智能家居控制网络。通过不需要MAC地址的高效网络自动配置方案,实现有线控制网络的即插即用。
背景技术
总线形式的控制网络通过统一的传输线(如电力线、双绞线等)作为总线,将各种电气设备和子系统连接起来,形成网络系统,并在
总线上采用统一通信协议,实现内部资源的互通,通过网关与外部网络(如ISDN等)互联,实现信息交换。智能家居网络一般采用总线形式的控制网络作为控制子网,实现家用电器与各种传感器的互联互通。
采用即插即用()技术,为加入系统的硬件设备或网络节点自动分配相应的资源,实现自动配置,建立设备之间的通信关联,从而省去用户配置的麻烦。但是,即插即用
技术一般应用于计算机网络,而目前的控制网络基本不支持即插即用,因为大多数控制
工业中使用的网络由专业人员配置和维护,工控网络结构相对稳定,因此对即插即用的需求不大。此外,工控网络节点的资源非常有限,难以实现即插即用。一方面,家庭用户普遍不具备专业知识,繁琐的网络配置过程会给用户带来极大的不便,影响家庭网络产品的推广;另一方面,家庭控制网络节点模块具有更高的智能化程度,其结构更容易改变,因此对即插即用技术的需求更大。
此外,目前所有即插即用技术都依赖于预先写入模块的固定MAC地址。依赖MAC地址的即插即用需要向监管机构申请地址空间或对模块进行预配置,这对控制网络的生产和使用提出了额外的要求,限制了中小企业的发展。同时,由于需要MAC地址的设备越来越多,MAC地址容易被重写,导致MAC地址空间耗尽,容易发生MAC地址冲突,使网络节点无法正常运行。
发明内容
本发明主要针对上述问题,提出一种即插即用的技术,即插即用,以总线的形式用于有线控制网络,无需MAC地址,从而最大程度简化家庭网络的安装、配置和维护。
本发明的特征在于:当该方法在采用载波监听机制的家庭有线控制网络中运行时,按顺序包括以下步骤:
步骤 (1) 初始化
自根据
启动器分类,识别所有常用的智能电子设备,即在所述家庭有线控制网络的控制总线上实现即插即用,然后根据所述每个电子设备的类别设置不同的软件模块,并统一进行功能描述编号,所述软件模块包括用户命令模块, 传感命令模块和执行模块,在所述各模块的非易失性存储介质上,设置两位二进制数来标记其配置状态:总分未配置、已自动配置、三个已手动配置,同时每个模块内置总线接口单元,实现命令或执行器与总线的接口用户命令模块由用户
发起,设置在与用户交互的每个电子设备上,包括开关面板,并根据用户的要求发出命令
传感命令模块由传感器启动,并且
模块设置在包括红外传感器在内的每个家用自动检测装置上,并根据传感器指令发出命令
执行模块由用户命令模块或传感命令模块启动,所述模块
设置在包括封装多路继电器和线性调解电路在内的各执行器上,接收用户命令模块或传感命令模块,并发送命令
按以下格式统一确定所述各类模块的功能描述编号,并将所属编号固化在相应的各类模块上,函数编号共32位,4个字节,每个字节为8位,其中含义:
第一个字节是模块的配置信息,
位于第六位和第七位,表示模块的类型:11代表用户命令模块,10代表传感命令模块,01代表执行模块,第二到第五位代表该类型的模块数量,最多16个,最后两位数字是优先级的标志位, 分为四个优先事项
第二个字节是模块的通信类型字节,当任何一个家用智能电子设备作为总线的通信对象实现即插即用时,一个通信对象值
即用于表示电子设备实际运行状态的电子设备,同时设置通信对象值的组地址:用户命令模块的组地址以111开头,传感命令模块以110开头,执行模块以10开头, 然后u是子组地址,表示电子设备的实际组地址,共有16位,但在第二个字节中,其中上面的四位代表通信对象的类型值,后面的四位代表与该类模块相关的具有相应功能的电子产品的代码
这
第三、第四字节为系统编号,由此类模块的制造商和购买者培育,使家庭有线控制网络中的网关便于识别和下载;
这
网关是一个中心控制节点,运行控制网络总线的监控程序,同时动态维护通过网络总线通信的所有通信对象的组地址表;步骤
(2)依次实现即插即用的步骤:
步骤(2.1)中,所述家用智能电子产品与所述总线挂钩,网关的监控程序自动监控该电子设备的配置标志位置系统有线mac地址冲突,并根据检测结果,分别按照以下步骤进行处理;
步骤 (2.2
),如果尚未配置,则执行步骤(2.3);
步骤(2.3),网关向电子设备发送消息,进入即插即用的配置程序;
步骤 (
2.4),在收到步骤(2.3)中描述的消息后;电子产品向总线发送地址配置的请求报文,其目的地址为广播地址;
步骤(2.5)如果传输成功,网关向电子设备发送消息,等待接收下一个网关地址配置报文;步骤(
2.6),电子产品收到步骤(2.5)所述的消息后,向网关发送包含功能号的配置请求包,并附上地址配置后完成地址;步骤(
2.7)系统有线mac地址冲突,网关在收到步骤(2.6)中的请求报文后,从组地址中选择一个尚未注册的地址,通过回复报文将其分配给电子设备;
步骤 (
2.8)、收到步骤(2.7)中描述的应答报文后,配置一个地址,在后续配置请求报文中包含功能描述编号,根据新地址向网关发送后续配置请求;
步骤 (
2.9)、网关收到步骤(2.8)中描述的后续配置请求报文后,解析功能描述编号,根据电子设备编号提供的信息生成相应的标准配置信息,然后依次通过应答报文广播给总线;
步骤 (
2.10),根据步骤(2.9)中描述的标准配置信息对电子设备进行配置,从而配置相应的功能;
步(
2.11)、根据步骤(2.1)的结果,如果已经自动配置,则电子设备只有在确定网关有配置更新时才下载配置更新信息,然后进行相应的配置;步骤(
2.12),根据步骤(2.1)的结果,如果已经手动配置,则自行执行其他初始化步骤;
当至少两个或两个以上的电子设备同时上电并发送配置请求数据包时,根据总线控制网络本身的冲突检测和避免冲突机制来区分发送配置请求数据包的顺序。
本发明的优点主要在于,利用总线式家庭有线控制网络的冲突检测和防冲突机制,提出了一种不依赖预设MAC地址的家庭有线控制网络即插即用方法,最大程度简化了繁琐的配置过程,实现了资源的自动分配和获取, 提高智能家电竞争力,同时避免MAC地址冲突导致的系统崩溃问题。
附图说明
图 1 显示了功能描述编号的逐位含义。图
2 是系统配置的流程图。
图 3 显示了智能家居有线控制网络的典型结构。
怎么做
本发明主要针对智能家居控制网络中常用的模块,通过对模块的功能进行分类,并用编号进行描述,然后通过上电初始化时的配置检测、配置请求、总线控制网络中的载波监听冲突规避机制,完成不需要MAC地址的模块的即插即用。
本发明首先对常用模块进行分类和标识,如表1所示。模块
类型:启动器、即插即用、需求命令、收发、应用、实体用户命令、模块、用户需要配置的模块,如开关、面板等,与用户交互,传感命令、模块、传感器等,以发出红外传感器等自动检测装置,执行模块、命令模块、模块等,模块需要配置接收多路继电器、线性调节模块、执行器、电源等,无需
配置,不参与供电、继电器模块、EIB网关、中控设备等
表1 控制网络模块类型分类
从表中可以看出,根据功能划分,需要配置的模块主要有前三类模块:用户命令模块、传感命令模块和执行模块。
在这种分类的基础上,可以为模块分配一个功能描述编号,该编号不是模块的唯一标识符,而是为模块的配置提供的必要信息。此外,功能描述编号由应用模块根据自身的模块功能确定,并固化在模块中。该数字总共为 32 位,4 个字节,每个人的含义如图 1 所示。
根据图中的数字序列,第一个字节是模块的配置信息,其第六位和第七位代表模块的类别。第二位到第五位数字表示模块中总共包含多少个相同的功能模块,最多十六个,例如,一个十二位继电器根据图中的公式应具有11的值。最低两位数字是优先级标志。第二个字节为通信类型字节,其中上四位表示通信对象值的类型,下四位表示模块的一个功能块需要关联几个对应的功能块(例如,命令模块对应的功能模块为执行模块)。第 3 个和第 4 个字节是系统编号,根据模块的制造商和购买者设置,用于方便生产者管理产品和驱动程序。
为了实现即插即用,总线上需要有一个中央控制节点,用于存储各种模块配置信息,并可以解析模块编号,一般使用网关来完成此功能。此外,还利用控制网络的冲突检测和冲突规避机制,实现不依赖MAC地址的网络地址分配。具体即插即用方案如下:
1、当一个附着在总线模块上的功能模块上电时,系统初始化器会自动监控智能模块单片机中的一个特定标志,该标志有三种状态,表示模块尚未配置、模块已自动配置、模块已手动配置。
2.如果系统
初始化器检测到模块尚未配置,系统程序将进入即插即用配置程序。
3.系统程序会先向总线发送一个带有地址配置的请求报文,报文的目的地址为广播地址。
4、如果两个或两个以上功能模块同时上电并发送配置请求报文(发生这种情况的概率很小),则需要依靠总线控制网络本身的冲突检测和防冲突机制来区分发送配置请求报文的顺序。
5、通过冲突检测和冲突规避,需要回避的模块会记录状态信息,忽略网关响应的下一个配置回复报文。发送配置应答报文后,重新发送配置请求报文。
6、对于成功发送配置请求报文的节点,系统程序将进入配置等待阶段,等待网关返回的地址配置回复报文。
7. 将
网关将从地址池中选择一个尚未注册使用的地址,并通过回复数据包将其分配给网络节点。
8.收到地址配置包后,成功发送地址配置请求
的网络节点会配置地址并在后续配置请求包中包含功能描述编号,并将后续配置请求发送给网关,网关采用网关分配的新地址。
9. 收到配置请求报文后
,网关首先对功能描述编号进行解释,根据功能模块编号提供的信息生成相应的标准配置信息,然后依次通过配置将应答报文广播给总线。
10.此时,报文的节点将收到配置应答报文,并自行配置相应的功能。
其节点模块程序的流程图如图2所示。
为了在即插即用过程中不依赖MAC地址,本发明采用以下设计方案和思想。
首先,您需要明确MAC地址在网络配置中的作用。MAC地址本身的内容没有任何意义,它只是作为节点标识符,在初始化阶段或通信过程中唯一标识节点的身份,节点身份总是需要的,但问题是,是否有必要在硬件中固化这个节点身份?如果网络在节点加入网络时能够自动为节点分配一个全网唯一的节点ID,就可以摆脱对MAC地址的依赖。事实上,这是可以做到的。
在一般网络中,很难为网络节点分配网络地址
即通过管理设施(如网关)完全无法识别,关键难点在于由于没有区分信息系统有线mac地址冲突,没有标识的网络节点无法判断管理设施分配的网络地址是针对自身还是针对其他节点。但是,对于使用载波监听(CSMA)机制的基于总线的有线网络,可以巧妙地利用载波监听冲突检测机制来实现网络地址的明确分配,如下所示:
1)载波拦截冲突检测机制本身保证了总线网络上只有一个节点有话语权,当多个身份不明的网络节点同时申请一个网络地址时,只有一个网络节点可以成功发送请求;
2)成功发送应用请求的网络节点将进入
等待回复报文,而其他未成功发送应用请求的网络节点将不会进入此状态。
3)当网关发送应答报文时,只有网络节点在”
for Reply state“将接收到应答报文,使得只有一个网络节点(即成功发送应用的节点)收到应答报文并正确设置自己的网络地址;
4) 网关维护一个可用地址池,并且
记录每个地址的分配状态,网关会定期对地址池中的地址进行心跳检测,连续两次没有回复心跳的地址将被回收。当网络节点申请网络地址时,网关会查询地址池,找到未使用的地址,并回复该节点完成地址分配。
经过上述配置过程后,
应用模块可以获取所需的配置信息,从而实现即插即用。从配置过程中可以看出,MAC地址不需要提前配置,从而摆脱了一般即插即用技术对MAC地址的依赖。本发明的优点是大大简化了总线控制网络的配置过程,有效降低了总线控制网络产品的安装、配置和维护成本,在方便用户的同时也有效降低了相关产品的营销阻力。同时,利用总线式有线控制网络固有的载波监听冲突检测机制,实现了不依赖MAC地址的网络地址分配和即插即用,避免了MAC地址的管理、维护、应用和分配带来的额外开销,也避免了潜在的MAC地址冲突导致的网络节点故障和网络功能异常等问题。
本发明的实现是基于智能家庭总线控制网络,并具有通信功能
该控制网络的实现是基于组地址和通信对象,每个功能模块根据其功能包括一些通信对象,通信对象是完成通信功能的主体。每个通信对象
都有一个通信对象值,并与某个组地址相关联,通信对象值为由通信对象控制的实际功能块
的状态表示,而组地址是功能块之间实现通信和控制的关联地址。例如,当交换机节点按下某个按钮时,系统程序改变该按钮的相应通信对象的值,然后通信对象使用其关联的组地址向总线发送相应的消息。与地址组关联的所有收件人都将根据邮件内容更新其地址值。通信对象值的变化将由系统程序反映在与通信对象关联的功能块上。这样就完成了开关按钮的远程控制操作。
以上是最简单的例子,通过类似的方法,还可以实现模块阵列控制、模块实时状态显示、远程查询等一系列更复杂的操作。该控制系统的基本结构如图3所示。
图中的中控节点是网关,是一个基于ARM9的Linux嵌入式系统。网关运行一个控制网络总线的监控程序,该程序接收总线上广播的配置请求报文,通过总线监控器对报文中包含的功能描述编号进行解释,生成相应的标准配置报文,然后以配置应答报文的形式广播给总线。这是中央控制节点提供的配置服务,无需MAC地址即可即插即用。
控制网络中的其他节点通过组地址进行通信,以完成其不同的功能。控制网络中的组地址具有固定的结构,对于常规的组地址,其结构如表2所示
网络组地址结构如表2所示常规组地址
的第一位数字必须为0,最后15位为实际组地址,可分为两部分,第一部分是主组地址,共4位,第二部分是子组地址,共11位,分层结构便于配置管理。通用组地址由在控制网络方面具有一定知识和专业技能的工程师配置。
为了实现即插即用,需要为模块配置一个组地址。即插即用中配置的组地址的第一步是 1,这样就不会影响手动配置的组地址通信。
当网关
获取功能描述编号,网关可以通过查看对应的位来判断该模块是用户命令模块、感知命令模块还是执行模块。对于不同的模块类型,分配不同地址段的组地址,从用户命令模块的111开始,传感命令模块的110开始,执行模块的地址从10开始。同时,网关维护一个活动的组地址表,其中包含总线正在使用的以 1 开头的组地址。网关每 5 分钟通过心跳检测组地址是否仍在使用中(具体时间为 5 分钟加一个随机数,以防止总线上的数据在特定时间突发),并发送探测报文检测心跳。对于连续两个没有检测信号响应的组地址,网关会将其从活动组地址表中删除。
例如,当用户命令模块成功发送配置请求报文时,网关首先检查活动组地址表,如果有以 10 开头的组地址匹配不充分,网关首先将匹配度不够的组地址关联到模块,否则自动从从 111 开头的组地址空间中从小到大找到对应数量的组地址并关联他们与模块。感知命令模块和执行模块也按照相同的分配原理与组地址相关联,但感知命令模块自动分配一个以110开头的组地址,执行模块自动分配一个以10开头的组地址。
对于分配的组地址,网关会将其添加到活动组地址表中,并指示是否有足够的匹配,足够的匹配中缺少多少,以及命令模块和执行模块之间有多少对。经过这样的配置后,命令模块和执行模块可以依次匹配对应的组地址,完成组地址分配功能。