羅茂峰
(中國(guó)人民大學(xué)信息學(xué)院上海研修班, 上海 201107)
《電力線載波通信(PLC)全屋互聯(lián)標(biāo)準(zhǔn)規(guī)范》(T/SILA 001—2020)[1]、《電力線載波通信(PLC)工業(yè)照明互聯(lián)規(guī)范》(T/SILA 002—2021)[2]這兩項(xiàng)標(biāo)準(zhǔn)主要定義了與PLC模組串口通信協(xié)議,即基于電力線載波的智能照明控制應(yīng)用層規(guī)范。該標(biāo)準(zhǔn)物理層(PHY)和媒體訪問(wèn)控制層(MAC)采用的是《適用于智能電網(wǎng)應(yīng)用的中頻(低于12 MHz)電力線載波通信技術(shù)標(biāo)準(zhǔn)》(IEEE 1901.1)[3],IEEE 1901.1標(biāo)準(zhǔn)也主要由我國(guó)企業(yè)聯(lián)合發(fā)起制定(IEEE P1901.1 Working Group),并得到了國(guó)際認(rèn)可。因此這兩項(xiàng)團(tuán)體標(biāo)準(zhǔn)算得上是為數(shù)不多的由中國(guó)企業(yè)主導(dǎo)的智能照明連接協(xié)議,具有開(kāi)創(chuàng)性的意義。本文將探討這兩項(xiàng)標(biāo)準(zhǔn)的相關(guān)內(nèi)容。
PLC系統(tǒng)由一個(gè)或多個(gè)子系統(tǒng)組成,子系統(tǒng)間由計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行連接。
每個(gè)子系統(tǒng)由作為CCO 中央節(jié)點(diǎn)的網(wǎng)關(guān)和子設(shè)備組成,網(wǎng)關(guān)和子設(shè)備之間基于 PLC 系統(tǒng)控制協(xié)議通信。一個(gè)子系統(tǒng)至少含一個(gè) CCO 中央節(jié)點(diǎn);任一個(gè)系統(tǒng)設(shè)備都可以主動(dòng)發(fā)送事件上報(bào)信息;一個(gè)子系統(tǒng)最多可獨(dú)立尋址 1023個(gè)設(shè)備,49 150個(gè)可尋址組及65 535個(gè)照明場(chǎng)景,單個(gè)子設(shè)備至少支持 32 個(gè)場(chǎng)景。
PLC子系統(tǒng)結(jié)構(gòu)如圖1所示。
注:圖中“本地控制”及“PLC模組自作主控設(shè)備”兩部分并未出現(xiàn)在團(tuán)體標(biāo)準(zhǔn)原文圖中,但在華為PLC實(shí)際應(yīng)用系統(tǒng)中有廣泛使用,故由筆者加入。
PLC團(tuán)體標(biāo)準(zhǔn)主要描述了采用PLC模組+外接主控方式時(shí),主控單元與PLC通信模塊之間的串口通訊應(yīng)用層協(xié)議。所有的功能都要靠主控與模塊間的通信來(lái)實(shí)現(xiàn)。
串口應(yīng)用幀的基本單元為 8 位字節(jié)。鏈路層傳輸順序?yàn)榈臀辉谇?,按異步方式進(jìn)行,通信速率默認(rèn)為 115200 bps,每字節(jié)傳輸包含 1 個(gè)起始位、8 個(gè)數(shù)據(jù)位、一個(gè)偶校驗(yàn)位和 1 個(gè)停止位。
數(shù)據(jù)幀采用小端序,依次構(gòu)成段為:Head:幀頭,固定為 48H。 Ctrl:控制域。 Cmd:命令碼。 Seq:幀序列號(hào)0~65535循環(huán)。 L:數(shù)據(jù)域 Data 的長(zhǎng)度,不超過(guò) 502 字節(jié)。 Data:數(shù)據(jù)域。 CRC:報(bào)文校驗(yàn)和,范圍從幀頭到Data 段,采用 CRC16-CCITT(0x1021)。
PLC設(shè)備功能由設(shè)備描述文件(設(shè)備profile)所定義。設(shè)備 profile 是設(shè)備和其他子系統(tǒng)之間的交互數(shù)據(jù)定義能力和格式,用于描述設(shè)備所具備的能力和狀態(tài)數(shù)據(jù)。
設(shè)備profile 中定義了該設(shè)備具備的幾種服務(wù)(service)類型,每種服務(wù)類型包含一個(gè)或多個(gè)屬性(characteristic)。服務(wù)與屬性描述了設(shè)備的功能特征集。各種不同的服務(wù)可擁有相同或類似的屬性,不同的設(shè)備也可擁有相同或類似的服務(wù)。服務(wù)用SIID (Service Instance Identification,服務(wù)實(shí)例)號(hào)標(biāo)記,屬性則用CIID(Characteristic Instance Identification,屬性實(shí)例)號(hào)標(biāo)記,各占兩字節(jié),其中 0x0001~0x1964 為通用定義段,0x1965~0xFFFF 為廠商私有自定義段。云端及PLC報(bào)文中通過(guò)SIID、CIID及數(shù)據(jù)來(lái)進(jìn)行交互功能控制,支持在同一個(gè)報(bào)文中對(duì)多個(gè)SIID中的CIID進(jìn)行讀寫(xiě)操作,這是該協(xié)議的一大特色。
以場(chǎng)景面板為例,T/SILA 001—2020中定義的設(shè)備中服務(wù)和屬性格式如表1所示。
表1 服務(wù)和屬性格式
早期的全屋互聯(lián)規(guī)范沒(méi)有定義智能開(kāi)關(guān)模塊及空氣質(zhì)量傳感器兩種設(shè)備,也沒(méi)有定義所有設(shè)備的故障服務(wù)和時(shí)間兩項(xiàng)服務(wù)。工業(yè)照明規(guī)范包含了全屋互聯(lián)規(guī)范的功能并對(duì)這幾處進(jìn)行了擴(kuò)展,T/SILA 002—2021中定義的所有設(shè)備和服務(wù)列表如表2所示。
表2 設(shè)備和服務(wù)列表
PLC團(tuán)體標(biāo)準(zhǔn)主要是聚焦于網(wǎng)關(guān)、設(shè)備采用PLC模組+外接主控方式時(shí),主控單元與PLC通信模塊之間的串口通訊應(yīng)用層協(xié)議。除了說(shuō)明MAC 及PHY 層符合IEEE P1901.1外,并未公開(kāi)PLC通信模組之間的各通信細(xì)節(jié),另外標(biāo)準(zhǔn)也較少提及設(shè)備采用PLC模組自身作為主控單元時(shí)的細(xì)節(jié)。按網(wǎng)絡(luò)分層的觀點(diǎn)來(lái)看,該團(tuán)體標(biāo)準(zhǔn)似乎并非一個(gè)包含網(wǎng)絡(luò)各層的完整的行業(yè)開(kāi)放式物聯(lián)網(wǎng)協(xié)議,而更像是為各設(shè)備廠商接入華為PLC系統(tǒng)而定義的一個(gè)接口。
PLC串口數(shù)據(jù)幀采用一字節(jié)固定值48H的方式,該方式可能引起不能正確接收的問(wèn)題如下:
1)當(dāng)數(shù)據(jù)(data)跟幀頭一樣時(shí),如幀頭是48H的情況下多個(gè)數(shù)據(jù)也正好是48H,接收方可能難以判斷究竟哪個(gè)數(shù)據(jù)是幀起始字節(jié)。
2)當(dāng)數(shù)據(jù)幀里面的部分?jǐn)?shù)據(jù)符合單獨(dú)數(shù)據(jù)幀特征時(shí),即一個(gè)數(shù)據(jù)幀里頭正好嵌套或包含了一個(gè)或數(shù)個(gè)數(shù)據(jù)幀格式的數(shù)據(jù),接收方即使通過(guò)CRC 驗(yàn)證也難以知道究竟該接受哪個(gè)數(shù)據(jù)幀。舉例來(lái)說(shuō),用一個(gè)完整小幀x(包含幀頭、數(shù)據(jù)、CRC等所有信息)作為另一幀的數(shù)據(jù),再加上包含幀頭、CRC等所有信息生成一個(gè)長(zhǎng)點(diǎn)的幀y用來(lái)測(cè)試。這時(shí)接收方可能會(huì)收到兩個(gè)合格的幀,即x,y。當(dāng)數(shù)據(jù)中出現(xiàn)多個(gè)這種嵌套或包含關(guān)系數(shù)據(jù)時(shí),接收方將無(wú)法準(zhǔn)確判斷或判斷所需的開(kāi)銷將變得很大。
通常改進(jìn)方法如下:
1)可以將幀起始頭變?yōu)槎鄠€(gè)字節(jié),并可選用使用概率最小的數(shù)字組合作為起始字節(jié)。這種做法使得數(shù)據(jù)中出現(xiàn)同起始字節(jié)的情況的概率大大降低,但無(wú)法完全消除問(wèn)題。
2)幀頭數(shù)字在數(shù)據(jù)中避免出現(xiàn)。如幀頭是48H的情況下,數(shù)據(jù)體中的每個(gè)單字節(jié)48H可以用雙字節(jié)47H+49H代替,47H用47H+47H代替,接收方收到47H字符時(shí)需考慮后續(xù)字符聯(lián)合譯碼。該法需要保證除起始幀頭外所有其他字節(jié)不出現(xiàn)與幀頭相同字節(jié),在原欲發(fā)送數(shù)據(jù)與幀頭全部相同的情況下,最低可能降低一半的發(fā)送效率。
3)時(shí)隙法。 即在每一幀與下一幀間插入一定時(shí)長(zhǎng)空時(shí)隙(通常大于一字節(jié)傳輸時(shí)長(zhǎng))以作幀間區(qū)分。該法需要保證傳輸一幀數(shù)據(jù)時(shí)各字節(jié)是連續(xù)發(fā)送的,即字節(jié)之間發(fā)送時(shí)間間隔需明顯小于幀間空時(shí)隙。該法簡(jiǎn)單易用,但可能需要用定時(shí)器資源并需時(shí)刻實(shí)時(shí)接收數(shù)據(jù),可能會(huì)給微處理器帶來(lái)較大不便。
每個(gè)物聯(lián)網(wǎng)標(biāo)準(zhǔn)中,準(zhǔn)確尋址(即查找發(fā)現(xiàn)設(shè)備)是使用設(shè)備的前提,尤其是安裝了多種多個(gè)設(shè)備的情況下。團(tuán)體標(biāo)準(zhǔn)采用了隨機(jī)時(shí)間心跳的方法來(lái)查找多設(shè)備,即網(wǎng)關(guān)開(kāi)啟隨機(jī)心跳指令,指令中包含了隨機(jī)時(shí)間的范圍。設(shè)備收到后在該隨機(jī)時(shí)間范圍內(nèi)的隨機(jī)時(shí)間發(fā)出心跳。網(wǎng)關(guān)收到心跳后即可認(rèn)為發(fā)現(xiàn)了該設(shè)備,即實(shí)現(xiàn)了尋址。由于各個(gè)設(shè)備響應(yīng)時(shí)間是隨機(jī)的,在設(shè)備較少、通訊速度較快及隨機(jī)時(shí)間范圍較大、干擾較少的情況下,可以準(zhǔn)確發(fā)現(xiàn)各個(gè)設(shè)備。
但是,當(dāng)大量PLC設(shè)備在較短時(shí)間內(nèi)發(fā)送隨機(jī)心跳時(shí),各心跳包之間有較大概率發(fā)生沖突,另外心跳包也可能會(huì)受到環(huán)境干擾。這些沖突或受干擾的心跳包無(wú)法被PLC網(wǎng)關(guān)所獲取,從而可能導(dǎo)致部分設(shè)備尋址失敗。團(tuán)體標(biāo)準(zhǔn)中并未對(duì)此提出詳細(xì)的解決方案。
以下對(duì)此提出一些簡(jiǎn)單建議:
1)多次重復(fù)獲取心跳響應(yīng)。該法可以讓之前發(fā)出受干擾或沖突影響的設(shè)備重新發(fā)出新的心跳包,從而增加設(shè)備心跳準(zhǔn)確到達(dá)PLC網(wǎng)關(guān)的概率。
2)一種改進(jìn)的方法是:初始讓所有設(shè)備參與心跳響應(yīng),然后進(jìn)行一次獲取心跳響應(yīng),結(jié)束后PLC網(wǎng)關(guān)對(duì)收到準(zhǔn)確心跳的對(duì)應(yīng)設(shè)備進(jìn)行編址等操作,并暫禁它們參與下一輪獲取心跳響應(yīng)。接著進(jìn)行下一次獲取心跳響應(yīng),如此多次獲取心跳響應(yīng)循環(huán)直到未收到任何心跳為止。此法因?yàn)榘l(fā)出心跳的設(shè)備數(shù)量逐次減少,發(fā)生沖突的概率也會(huì)逐次減少。比較適合大量設(shè)備高干擾的環(huán)境。
系統(tǒng)控制面板或傳感器的事件信息發(fā)送到網(wǎng)關(guān)(CCO),由網(wǎng)關(guān)根據(jù)控制邏輯進(jìn)行處理,并由 PLC 網(wǎng)關(guān)(CCO)把處理完的控制信息發(fā)送到受控設(shè)備進(jìn)行控制處理。
采用這種方式的好處是所有控制邏輯都集中在網(wǎng)關(guān),而在網(wǎng)關(guān)端編輯邏輯相對(duì)容易。另外面板或傳感器功能簡(jiǎn)單,有利于子設(shè)備廠商。壞處則是一旦網(wǎng)關(guān)發(fā)生故障,整個(gè)照明子系統(tǒng)將無(wú)法控制。改進(jìn)方法有:
1)增加面板傳感器直接控制設(shè)備的功能。
2)增加網(wǎng)關(guān)一鍵備份恢復(fù)功能,在網(wǎng)關(guān)壞了之后能用另一網(wǎng)關(guān)直接代替,而不需要重新配置網(wǎng)絡(luò)。
3)施工時(shí)需要增加一些物理開(kāi)關(guān)的備用設(shè)計(jì),以免網(wǎng)關(guān)失能后還能像普通非智能燈具那樣開(kāi)關(guān)燈具,燈具主控程序里也需要考慮這種情況下的工作機(jī)制。
以下著重介紹照明標(biāo)準(zhǔn)最相關(guān)的燈光驅(qū)動(dòng)控制器的幾個(gè)服務(wù),并對(duì)比其它幾個(gè)國(guó)際主流數(shù)字照明控制相關(guān)協(xié)議如DALI(Digital Addressable Lighting Interface,數(shù)字可尋址照明接口)[4]、DMX(Digital Multiple X,數(shù)字多路)、BLE MESH(低功耗藍(lán)牙網(wǎng)絡(luò))[5]、ZIGBEE(紫蜂)[6]的異同點(diǎn)。
直接采用0~100整數(shù)表示亮度,0表示關(guān)燈,最小亮度為1% 。
優(yōu)點(diǎn):簡(jiǎn)單直接。缺點(diǎn):調(diào)光分辨率較低;最小亮度較大,且在亮度較小時(shí)每級(jí)相對(duì)亮度變化率較大,如1到2之間亮度變化了100%。實(shí)際慢速調(diào)光漸變過(guò)程中低亮度時(shí),主控mcu可能需要采取將一個(gè)步長(zhǎng)變化分為多個(gè)分步完成,以減小調(diào)光過(guò)程抖動(dòng)給人帶來(lái)的不適感,如亮度1到2分為十小步執(zhí)行:1、1.1、1.2、…、2,每步只變化了0.1個(gè)亮度。PLC與其他照明相關(guān)協(xié)議在調(diào)光級(jí)數(shù)方面的定義差異如表3所示。
表3 PLC與其它協(xié)議在調(diào)光級(jí)數(shù)上的對(duì)比
直接采用開(kāi)爾文整數(shù)值表示,范圍2 700~6 500 K,步長(zhǎng)1。PLC標(biāo)準(zhǔn)只規(guī)定了最常用的色溫范圍,而其他標(biāo)準(zhǔn)規(guī)定的色溫范圍則寬得多,延伸到了紅外及紫外光。PLC與其它照明相關(guān)協(xié)議在色溫范圍方面的定義差異如表4所示。
直接采用RGBWA(紅、綠、藍(lán)、白、琥珀色)五通道值表示,每通道數(shù)值為整數(shù)0~255, 與五通道的DMX 相似。這種表示法比較簡(jiǎn)單。 在顏色上,其他照明協(xié)議除了類似這種RGB表達(dá)法外,還支持了其他的方法,如描述色彩的色相、彩度、明度三要素的孟塞爾表色系,及采用標(biāo)準(zhǔn)色度觀察者光譜三刺激值 CIE x-y 或u-v 色系。
表4 PLC與其他協(xié)議在色溫范圍上的對(duì)比
采用0~5整數(shù)秒來(lái)表示,這是常用的漸變?cè)O(shè)置范圍。但是,團(tuán)體標(biāo)準(zhǔn)并未標(biāo)明這是最暗到最亮之間的漸變時(shí)間,還是當(dāng)前亮度到新目標(biāo)亮度的漸變時(shí)間;前者擁有固定的相鄰亮度級(jí)間變化時(shí)間:(漸變時(shí)間參數(shù)/(最大亮度級(jí)-最小亮度級(jí))),但是總漸變時(shí)間是由目標(biāo)與當(dāng)前亮度級(jí)差決定的:(漸變時(shí)間參數(shù)×|目標(biāo)亮度級(jí)-當(dāng)前亮度級(jí)|/(最大亮度級(jí)-最小亮度級(jí)));而后者則相反,擁有隨亮度級(jí)差變化的相鄰亮度級(jí)間變化時(shí)間,它等于:(漸變時(shí)間參數(shù)/|目標(biāo)亮度級(jí)-當(dāng)前亮度級(jí)|),而總漸變時(shí)間則固定等于漸變時(shí)間參數(shù)。
PLC團(tuán)體標(biāo)準(zhǔn)除了開(kāi)關(guān)漸變這一簡(jiǎn)易數(shù)值外,暫并未有其他調(diào)光參數(shù)內(nèi)容。其他照明協(xié)議則定義了更豐富的參數(shù),如 DALI2[8]定義了當(dāng)前亮度到目標(biāo)亮度之間的漸變總時(shí)長(zhǎng)為0~16 min,排除零外最小漸變時(shí)長(zhǎng)為25 ms[9]。另外DALI還定義了相對(duì)調(diào)光指令,如調(diào)亮(UP)、調(diào)暗(DOWN),并定義了相應(yīng)的漸變速率(FADE RATE)這一可設(shè)置參數(shù),這對(duì)于某些場(chǎng)景中各種燈的亮度不一時(shí)的調(diào)光有很大幫助。
PLC工業(yè)照明系統(tǒng)(團(tuán)體標(biāo)準(zhǔn))為所有設(shè)備提供了兩種故障代碼,即 Ciid=0x0085 標(biāo)準(zhǔn)故障代碼 及Ciid=0x0086 的自定義故障代碼。標(biāo)準(zhǔn)故障代碼只有0正常與1異常兩種數(shù)字。在DALI標(biāo)準(zhǔn)中,定義了燈失敗、開(kāi)路、短路、過(guò)載、掉電等故障狀態(tài),這些狀態(tài)可以被主機(jī)查詢并報(bào)告給用戶,對(duì)故障診斷有一定作用。PLC中如需使用這些功能可以在自定義故障代碼中實(shí)現(xiàn)。
有些有用的照明控制相關(guān)參數(shù)PLC團(tuán)體標(biāo)準(zhǔn)中暫未定義,但其他專業(yè)照明協(xié)議則有明確規(guī)定。如在DALI、ZIGBEE中,還定義了其他一些參數(shù),例如:
最小亮度(MIN LEVEL):可由用戶設(shè)置的最小亮度級(jí)。
物理最小亮度(PHYSICAL MIN LEVEL):照明燈具支持的物理最小亮度級(jí),通常由燈具或驅(qū)動(dòng)廠家設(shè)定。
最大亮度(MAX LEVEL):可由用戶設(shè)置的最大亮度級(jí)。
物理最大亮度(PHYSICAL MAX LEVEL):照明燈具支持的物理最大亮度級(jí),通常由燈具或驅(qū)動(dòng)廠家設(shè)定。
上電最大亮度(POWER ON LEVEL):可由用戶設(shè)定的燈具上電時(shí)默認(rèn)的亮度級(jí),可以是某固定亮度值,或是上次斷電前的亮度。
這些參數(shù)對(duì)照明控制相當(dāng)有用,不過(guò)PLC團(tuán)體標(biāo)準(zhǔn)中缺失這些參數(shù)也并不太妨礙它的整體功能。
速度:PLC:串口協(xié)議115 200bps,物理層峰值速率 0.507Mbit/s(Hi3921EV100);相對(duì)于有線中的KNX 9 600bps(典型), DALI 1 200bps 有很大提高。得益于通信速率的提高,報(bào)文長(zhǎng)度及功能都大大提升,一個(gè)報(bào)文中可實(shí)現(xiàn)多地址,多屬性操作,通信效率提升很大;另外,控制實(shí)時(shí)性也很好。
布線:除了輸入電源需加個(gè)濾波器外,PLC 布線方面優(yōu)點(diǎn)跟無(wú)線一樣,無(wú)需額外通訊線路,使它在后裝改造市場(chǎng)上也比較適合。
信號(hào):PLC通訊信號(hào)不像無(wú)線如藍(lán)牙 ZIGBEE 等一樣受建筑或金屬屏蔽的影響,因此它可以工作在無(wú)線信號(hào)極不友好的環(huán)境。
電力載波干擾:PLC通訊容易受電力線設(shè)備的干擾,這就要求PLC 設(shè)備設(shè)計(jì)時(shí)需要具有良好的EMC性能,輸入端需有電感阻擋后面電容對(duì)PLC載波信號(hào)的吸收及阻擋設(shè)備EMC對(duì)電力線的載波干擾。非PLC設(shè)備與PLC設(shè)備之間最好用濾波器隔開(kāi),以免干擾PLC的通信。子系統(tǒng)之間也要用濾波器隔開(kāi)。
協(xié)議開(kāi)放性及廠商兼容性:DALI KNX 等都是開(kāi)放的協(xié)議,各家符合認(rèn)證的產(chǎn)品互聯(lián)互通性很好,底層芯片有多種選擇不易受限,因此得到了世界上很多用戶和廠商的選擇支持。PLC暫時(shí)在這方面還存在些問(wèn)題,因此選擇這條技術(shù)路線可能會(huì)存在些風(fēng)險(xiǎn),各廠家可能需要多技術(shù)路線作后備以防不測(cè)。
PLC團(tuán)體標(biāo)準(zhǔn)提供了相當(dāng)強(qiáng)大的功能,盡管可能在某些方面尚存在些問(wèn)題。它為智能照明控制提供了新的技術(shù)路線,也是國(guó)產(chǎn)行業(yè)標(biāo)準(zhǔn)崛起的體現(xiàn)。