王 鵬
(赤峰學院 計算機科學與信息工程學院,內蒙古 赤峰 024000)
取暖智能節能系統中CAN總線協議轉換的設計與實現
王 鵬
(赤峰學院 計算機科學與信息工程學院,內蒙古 赤峰 024000)
根據熱用戶性質的不同,提供不同的負荷控制策略,采用CAN總線技術,利用每一路通道信號控制一個房間所有暖氣片的開關閥門,實現分時、分溫、分室、按需供熱,滿足不同房間的個性化需求,避免不考慮房間用途而統一供熱造成的浪費.引入更加成熟的以太網技術:CAN總線構建底層終端設備網絡,實現對終端房間的信息采集與熱流量控制;以太網構建信息局域網,實現樓宇之間的信息傳遞;協議網關實現CAN與TCP/IP的協議轉換,CAN與以太網網關進行有機連接.
CAN總線;多協議標準;協議轉換;uIP
CAN(Controller Area Network),全稱“控制器局域網”,是工業現場總線的一種,能有效支持分布式控制或實時控制的串行通信網絡.最初是為解決汽車中控制與測試儀器之間的數據交換而開發的一種串行數據通信協議.通信介質可以是雙絞線、同軸電纜、光纖,通信速率可達1Mbps.CAN協議的物理層,數據鏈路層功能都集成在總線通信接口中,可以實現通信數據的成幀處理,包括數據塊編碼,位填充等工作.隨著應用領域的不斷擴大,產品的性能不斷提高,價格也不斷下降.CAN總線的性能和價格優勢,與建筑物內各個辦公房間分布點多、面廣、占用的空間體積大等相匹配,非常適合于建筑節能控制中應用.
其特點有:
(1)傳輸距離比較遠.主控點與節點的分布距離,在10km內都有效,通過雙絞線把分布在樓內各房間的節點連接起來,當樓房的建筑面積大、樓層高時,滿足布線需求.
(2)價格低廉.CAN總線使用銅芯雙絞線或為了減少外界干擾使用屏蔽銅芯雙絞線作為數據傳輸通道,減少工程應用的成本.
(3)超強的糾錯和檢錯能力.在介質訪問控制子層上,負責報文分幀,仲裁,應答,錯誤檢測和標定.并采用非破壞仲裁技術及短幀傳送數據,能滿足工業控制的實時性和確定性的要求,在網絡負載很重的情況下不會出現網絡癱瘓的情況;在邏輯鏈路控制子層上,滿足報文濾波、過載通知及恢復管理的功能.另外,節點與總線的連接是并聯結構,若其中的某一個節點損壞,不影響其他節點的工作.
使用CAN總線技術,一臺上位主機利用每一路通道信號控制一個房間所有暖氣片閥門的開與關,通過對房間內每組暖氣片的熱水流量的調節實現節能的目的.
但是,CAN總線技術在建筑節能控制中也存在一些問題:
(1)控制節點不夠用
一棟樓的房間個數可能會很多,而一個單位或企業的建筑物又不止一棟,造成CAN總線的單一主控機無法控制所有終端的現象.
(2)限于速度的要求,有效距離不夠遠
雖然CAN總線的有效傳輸距離可以達到10千米,但傳輸速率是隨著傳輸距離而遞減的.為追求快速,則長距離的樓宇之間可能無法連接;為保證傳輸距離,則速度不能滿足要求.
解決以上問題的方法也有多種:
多主控機
采用多個主控主機,分別控制一組CAN總線結構.這種分散管理的方式不能集中控制,節能效果不好,成本較高.
多接口模式
采用多種接口并用,實現多路控制.但穩定性較差,成本高.
多協議標準
采用多種協議組合使用,揚長避短,各發揮優勢.
本項目采用的是多協議標準方式,引入更加成熟的以太網技術:CAN總線構建底層終端設備網絡,實現對終端房間的信息采集與熱流量控制;以太網構建信息局域網,實現樓宇之間的信息傳遞;協議網關實現CAN與TCP/IP的協議轉換,CAN與以太網網關進行有機連接,實現信息傳遞.如下圖所示:

圖1 多協議系統結構
多協議標準的核心問題在協議網關的協議轉換上,要實現嵌入式以太網接口與CAN總線接口的數據轉換功能.網關結構以及功能如下圖:

圖2 協議網關結構及功能
本系統的工作原理是擁有權限的主控端發給現場智能節點的控制指令在以太網內被打包成TCP/IP包,通過以太網傳遞給網關.網關接到數據包后,根據CAN協議對拆包后的數據重新打包,然后把數據傳給現場的目的智能節點.這樣就可以實現以太網主控端對智能終端的控制.而各個智能節點的狀態數據通過CAN總線提交給網關,網關將CAN數據轉化為以太網數據,再通過以太網送達給主控端主機,用于主控端的診斷和決策.
實現這一轉換過程要使用uIP協議.
uIP協議棧去掉了TCP/IP中不常用的功能,簡化通訊流程,保留通信必須使用的協議,重點放在IP/TCP/ICMP/UDP/ARP的網絡層和傳輸層協議上,保證了其代碼的通用性和結構的穩定性.uIP協議棧為嵌入式系統而設計,還具有如下優越功能:
C語言編寫,完全開放,通用性強
代碼占用空間小,易于移植
適合8位,16位的嵌入式微處理器運行
對數據的處理采用輪循機制,不需要操作系統的支持.
uIP提供的是策略,由上往下逐步封裝用戶的數據,如:應用數據-TCP封裝頭部-IP封裝頭部-mac封裝+尾部-發送.在UIP協議里面通過uip_init()來初始化.
主要工作是:
(1)將uip_state結構體全部清零.
(2)初始化用于TCP鏈接的uip_conn結構體,將連接狀態置為close.
(3)設置用于TCP鏈接的端口lastport=4096.
部分代碼如下:

引入以太網技術,采用多協議標準組合,協議網關完成不同協議的轉換,最終實現了價格低廉的CAN總線構成終端設備網絡;技術成熟、性能穩定的以太網技術構建信息局域網,實現樓宇之間的信息傳遞;進而實現了對同屬于一個單位的不同建筑物進行集中管理,協調控制每個房間按需供熱,提高了節能效果.
〔1〕林成浴.TCP/IP協議及其應用[M].人民郵電出版社,2013.7.
〔2〕舒志兵.現場總線運動控制系統[M].電子工業出版社,2007.1.
〔3〕曾珞亞.應用于智能建筑的幾種總線技術淺析[J].低壓電器,2009(1).
TP273
A
1673-260X(2017)11-0018-02
2017-08-16
內蒙古教育廳基金項目資助(NJZC16257)