编者按:
曾经红极一时X10的智能家居时代而今已成为低端智能家居技术的代言词,取而代之的是风驰电掣的各种双向通讯技术,比如:PLCBUS、ZIGBEE等。然而对大多数人而言,PLCBUS技术依然笼罩着一层神秘的面纱,让我们感觉发展急速的PLCBUS技术因为高科技的融入而显得有些陌生。为什么PLCBUS技术发展的如此迅速?PLCBUS技术的硬件、软件构架又是怎样的呢?PLCBUS技术的起源和发展历史究竟是怎样的呢?她的未来又会如何发展呢?
数码PLCBUS的发展历史
从1851年, 第一台根据奔的传输原理制作的二进制逻辑系统模型问世到现在的100多年来, 数字技术慢慢的发展起来。 在1970年, 数字技术为顺应市场的需要迅速的发展起来。
距今35年前也就是在这一时期,远程控制系统也进入了一个新的领域,在纽约附近展示了“X10 智能家居”系统。把X-10模块置入元件,通过“命令”在墙上随意插就可以控制灯的“开”和“关”,非常便捷。
目前大约有10家公司制造“X-10兼容装置”,但他们并不属于X-10有限公司。X-10只是一种电力载波协议。
介于X10系统在现代智能家居领域发展的局限性,比如传输距离、抗干扰能力、双向通讯可行性差等特点。各个国家都在开发新的系统来替代X10系统,其中最具有代表性和戏剧性的当属PLCBUS和INSTEON技术。从代表性来看,这两种技术都是针对X10技术的弱点开发出来的,虽然是针对X10技术开发的,但是应用的技术却都是现代电子技术,发展时间也只有3-4年左右。从技术角度来看,PLCBUS和INSTEON除了成本较高外,几乎每一项指标都是X10技术的杀手。
说到戏剧性,PLCBUS和INSTEON技术的拥有者却都是原来生产X10产品的主流公司,SMARTHOME是美国最大的X10产品的生产与经销商之一,现在他的网站首页给INSTEON技术一个很大的LOGO链接,足以看出他们希望INSTEON技术未来在美国能够分享X10的市场。在欧洲和亚太地区原来X10产品的两大生产和经销商Marmitek和SSSE(上海索博Shanghai Super Smart Electronics)现在也已经在整个欧洲和亚太地区市场开始大力推广PLCBUS技术了。从这两家公司销售人员的介绍来看,PLCBUS技术将会成为未来智能家居技术中灯光电器控制领域的主导技术。
PLCBUS技术详解
PLCBUS技术是近几年来新发展出来的一种电力载波通讯技术。这种技术的英文名称叫做:Pulse Position Modulation (PPM) 脉冲相位调制法。她是利用电力线的正弦波作为同步信号,在四个固定的时序中发送瞬间电脉冲来传递信号的。在稍后的文章里我会给大家解释这种电脉冲的原理,就是因为这个电脉冲,PLCBUS信号可以传递得很远,PLCBUS信号在没有安装任何电器的办公环境下,每层楼大约1000平方米,可以很轻松的传递到30层楼的任何一个角落。在安装了电器的办公环境下,每层楼大约1000平方米,可以很轻松的传递到15层楼的任何一个角落。由于PLCBUS的PPM通讯方式的特殊性,PLCBUS的接收器可以很轻松简单的还原出PLCBUS的编码。
PLCBUS信号总的来说,是通过给一个电容先进行高压充电,然后在一个很精确的时间里将电容的电量释放到电力线上。这种快速的电容放电会在电力线上产生一个瞬间的能量脉冲,因而PLCBUS接收器可以在很远的地方轻松接收PLCBUS信号。
每半个50Hz的正弦波周期里可以传递一个PLCBUS脉冲信号,PLCBUS脉冲信号总是出现在半个正弦波周期里的四个固定位置中的一个位置。每个位置可以搭载两个比特的信息,因此在50Hz的电力线上,一秒钟可以传输200比特的数据。
可以看到,这样的通讯速率是不能够传输类似计算机的宽带数据,但适用于传送动作或者指令性的通讯已经足够了。
PLCBUS信号帧的载波位置正好处于电力线半波的后半个周期,因为后半个周期处于能量下降区域,在这个区域的电力线噪音要比前半个周期小很多(X10处于前半个周期),并且PLCBUS信号通过电力线过零点进行信号的同步,所谓过零点就是零线(N)和火线(L)相对电压为零的时候。
每一个PLCBUS帧都会出现在那四个特定的位置,每个脉冲位置的时间间距是275uS,每个PLCBUS脉冲都要准确地出现在这些位置的开始端,这样接收端才能准确的接收到每一个位置的脉冲信号。每一个脉冲位置可以被接收器准确地翻译成0、1、2、3。
上面说了很多有关帧、脉冲、相位、同步等等物理层的技术,下面将介绍PLCBUS信号的通讯格式和数据传递的方法,通过了解,可以知道在不同的PLCBUS产品之间是如何通讯的。
众所周知,PLCBUS协议每半个周期传递两个比特的信息,每四个PLCBUS脉冲周期我们定义为一个PLCBUS字节。每个PLCBUS字节拥有八个比特的有用信息。这样,两个电力线全周期或者说是40毫秒时间,可以传送一个字节的PLCBUS信息。
从图中可以看到PLCBUS信号的传输信息包的基本结构。PLCBUS信号总是有2-1-1-2这样的字节开始作为START信号,我们称之为“起始字节”。起始字节之后的五个字节我们称之为“Header”标题。标题字节里包含有许多基本信息,比如数据的长度、接收地址信息、发射器的信息、是否需要反馈等等。在标题字节之后是PLCBUS的数据字节,可以包含0-18个数据字节。用这些数据字节可以传递诸如灯光亮度、调光步长、信号质量等等数据。最后一个字节是校验位,用于判断接收到的数据是否正确。
下面将着重介绍标题信息里的“控制基本信息”字节的含义。
“控制基本信息”字节由两个基本字节构成,共16位信息。
1、LINK:LINK位将PLCBUS地址分为两个部分,如果LINK位启动,那么将会带动所有与LINK位同样是启动的发射或者接收器的响应。简单的说就是LINK位将PLCBUS的地址又进行了一次扩展,如果启动LINK位,PLCBUS的地址将由64000变为64000X2=128000 。
2、REPRQ:Repeater Request 这两个比特的数据将用于PLCBUS的中继类产品,当发射器或者接收器有要求需要中继启动的时候,将根据需要对这两位进行配置。PLCBUS的三相耦合器类产品都起用了这两位数据,用以加强PLCBUS信号在三相电环境下的传输性能。
3、LEN:Length 整个PLCBUS数据包的长度,除了起始字节外的所有PLCBUS数据包的字节数的总和就是这几位所表示的内容。它可以表示从6-24个字节的长度。
4、RSV:保留位,为将来预留的。
5、ACKRQ:这三个比特的数据用于告诉接收型的产品需要反馈给发射型什么样的数据。反馈的数据由三种类型:ACK反馈、ID反馈、ACK信息反馈。其中ACK反馈是瞬时反馈,用于报告接收型产品是否正确收到了PLCBUS信号;ID反馈属于群查询指令,用于查询整个地址码范围内的接收器的状态。ACK信息反馈用于接收型将它的信息反馈给发射型的,比如:接收器的名称、密码、串号、出厂信息等等。
6、CNT:用于指示PLCBUS信号总共重复发射的次数。
7、SEQ:用于指示PLCBUS信号正在发射第几次,当然是相同的重复信号。SEQ一般都是与CNT联合使用。通过CNT和SEQ可以侧面判断出信号的有效率。
说了很多专业但只需要了解的知识,下面轻松一下。给大家讲个小花絮,然后再开始新的内容。PLCBUS协议在最初定义的时候主要的客户群是面对网络用户,换句话就是说面对的是发烧友。所以在PLCBUS协议里面会出现网络识别码等等参数。但是在后来的产品功能定义时市场研究人员提出,PLCBUS产品未来的定位是两种不同的人群,一种是技术的传播者,就是我们所说的发烧友,另一种人群就是对技术不感兴趣的感性消费者,就是我们国内市场所说的高端消费者。对于高端消费者应该强调的是外观和功能的有机结合,对于DIY爱好者强调的是功能的无限扩展和乐趣性。这两个市场的产品如何统一呢?这成为摆在市场人员和研发人员面前的是一个难题。因为对于一个新的技术,这两个市场是必不可少的。 [Page]
最终的结果是,将两者统一到一起,并出两份不同的使用指导书。对于DIY爱好者,产品显示出的功能性将更强,对于高端消费者,产品显示出的娱乐性将更强。比如DIY爱好者可以通过电脑接口操作PLCBUS面对用户的所有32条精简指令,而高端消费者将通过遥控器、集中控制器等产品发挥产品强大的娱乐性,比如旋舞功能、场景功能等等。
PLCBUS技术的重要数据
NID (Network ID) 和DID (Destination ID) 统称为接收数据用的地址码,NID在最终用户那里称为“用户码”,DID在用户那里我们把它叫做“房间码+单元码”,NID共有8比特,可以组成256个不同的地址,DID也是8个比特,也可以组成256个不同的地址码。但是NID里有5位地址码另有他用,所以PLCBUS的基本地址码就是250X256=64000个。在实际应用的时候,我们把用户码隐含起来发射,用户是看不到的,为了防止邻居间的相互控制,用户码是用来区分不同家庭的码。每个家庭的用户能看到的是256个DID地址,就是他们能接触到的房间码和单元码。这样做是有道理的,如果让用户去记忆64000个不同的地址,就是爱因斯坦也是有难度的。
SID (Source ID)是用于区分发射型的码,它定义了不同类型的发射型产品所发射的信号。共可以区分250个不同的发射类型。比如MINI和PC控制器的SID是不相同的。这样做主要就是为了让接收器知道信号是从什么样的发射器里发射出来的。
MDID(Message Data ID)这个字节用于定义PLCBUS的具体指令,因为是8位的字节所以可以定义256个不同的指令。PLCBUS分为复杂指令集和精简指令集,对于灯光电器控制,使用的是PLCBUS的32条精简指令集。对于复杂指令集这里就不涉及,大体上包括许多类似于高级编程语言的指令,例如:GOTO、SETUP、COPY、SWAP等等。
■文/严建新
Related posts