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