一、引言
目前我國北方許多城市已經或者即將進行熱網改造工程,將傳統(tǒng)的分散供熱改造為集中供熱。
隨著現(xiàn)場總線技術的發(fā)展及其在工業(yè)自動化領域的不斷深入,傳統(tǒng)的DCS將會被新一代的現(xiàn)場總線式集散控制系統(tǒng)(Field Distributed Control System ,FDCS) 所取代。經過對目前比較有影響的幾種現(xiàn)場總線技術進行研究,在分析對比的基礎上,選擇了CAN總線作為熱網監(jiān)控系統(tǒng)設備層通信總線。CAN總線(Controller Area Network) 䘎其他總線相比有如下特點:
(1) CAN為多主方式工作;
(2) 廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼;
(3) 數(shù)據(jù)段長度最多為8個字節(jié), 保證了通信的實時性;
(4) CAN的每幀信息都有CRC校驗及其它檢錯措施,保證了數(shù)據(jù)通信的可靠性。
本文介紹的是針對熱網監(jiān)控系統(tǒng)開發(fā)的現(xiàn)場控制和通信的子系統(tǒng),能安全可靠地實現(xiàn)現(xiàn)場數(shù)據(jù)采集、閉環(huán)控制及數(shù)據(jù)傳輸。鑒于篇幅,本文重點介紹CAN網絡通信部分的設計與實現(xiàn)。
二、熱網監(jiān)控系統(tǒng)結構及其硬件構成
2.1 系統(tǒng)結構
熱網監(jiān)控系統(tǒng)主要由上位機和現(xiàn)場控制器組成,總體結構如圖1所示。
圖1 熱網監(jiān)控系統(tǒng)總體結構
熱網監(jiān)控系統(tǒng)是在一次設備(傳感器、變送器、各種執(zhí)行機構)的基礎上完成對熱網的監(jiān)測與控制,通過調節(jié)供熱管網的供水流量、供水溫度、供水壓力,保證熱網安全、可靠、高效、穩(wěn)定的運行。根據(jù)上述要求,本系統(tǒng)在保證系統(tǒng)可靠工作和降低成本的條件下,考慮到通用性、實時性和可擴展性等方面的因素,采用了主要由上位計算機系統(tǒng)和現(xiàn)場控制器構成的系統(tǒng)結構。
系統(tǒng)工作過程如下:上位機首先初始化CAN網卡,設置網卡工作模式、接收碼、接收掩碼和波特率,然后進入運行狀態(tài),在適當條件下與現(xiàn)場控制器進行通信。現(xiàn)場控制器主要完成現(xiàn)場數(shù)據(jù)的采集與處理、現(xiàn)場設備的控制等功能,并以查詢或中斷方式與主機進行通信。
2.2 硬件系統(tǒng)
CAN網絡的拓撲結構采用總線式結構,其結構簡單、成本低,系統(tǒng)可靠性高。信息的傳輸采用CAN通信協(xié)議,通信介質采用雙絞線。
1.上位機
上位計算機采用工控機,其負責對整個系統(tǒng)進行管理。上位機通過CAN網卡與現(xiàn)場控制器通信,同時通過局域網或者公共電話交換網與整個工廠或者公司的計算機信息網絡進行連接,實現(xiàn)信息共享。上位機具有組態(tài)、數(shù)據(jù)采集、參數(shù)設置、遠程控制、流程顯示、數(shù)據(jù)存儲、趨勢顯示、報表打印、通信等功能。
2.CAN網卡
CAN網卡是負責CAN總線與PC機之間數(shù)據(jù)交換的功能模塊。CAN網卡上存在兩個方向的數(shù)據(jù)交換:CAN網卡與PC機之間的數(shù)據(jù)交換(通過雙端口RAM實現(xiàn))以及CAN網卡與CAN總線之間的數(shù)據(jù)交換(由微處理器通過訪問CAN控制器的接收緩沖區(qū)以及發(fā)送緩沖區(qū)來實現(xiàn))。CAN網卡上的CAN控制器選用的是PHILIPS公司的SJA1000芯片。
3.現(xiàn)場控制器
現(xiàn)場控制器的結構框圖如圖2所示。
圖2 現(xiàn)場控制器的結構框圖
該現(xiàn)場控制器具有14路模擬量輸入端口、2路模擬量輸出端口、4路開關量輸入端口、4路開關量輸出端口以及時鐘接口、數(shù)據(jù)存儲接口、液晶顯示接口、網絡通信接口、報警輸出接口等。本系統(tǒng)采用TI公司的帶有10位A/D轉換器和CAN控制器的DSP芯片TMS320LF
網絡通信接口單元是用來對CAN總線進行讀寫訪問的一部分控制電路。當需要發(fā)送數(shù)據(jù)時,中央處理單元將數(shù)據(jù)交給網絡接口單元電路,由網絡接口單元電路進行數(shù)據(jù)格式轉換、串并轉換和信號形式轉換,將數(shù)據(jù)按照CAN協(xié)議信號形式發(fā)送到CAN總線上。當CAN總線上有數(shù)據(jù)時,它負責從CAN總線上讀取數(shù)據(jù)。首先通過幀過濾功能判斷是否接收此幀,若接收,則通過與發(fā)送相反的過程,將數(shù)據(jù)交給中央處理單元。
網絡通信接口單元主要由TMS320LF
三、CAN通信軟件設計與實現(xiàn)
CAN遵從OSI模型,按照OSI基準模型,CAN結構劃分為兩層:數(shù)據(jù)鏈路層和物理層。然而,在實際應用中,即使只是實現(xiàn)簡單的基于CAN的分布式系統(tǒng),僅有物理層和數(shù)據(jù)鏈路層是遠遠不夠的。比如對于傳輸長度超過8個字節(jié)的數(shù)據(jù)塊、帶有握手協(xié)議的數(shù)據(jù)傳輸過程、標識符分配、通過網絡管理節(jié)點等,這些功能就不能實現(xiàn)。
因此需要在這兩層之外附加一層來支持應用過程,即“應用層”。這一層功能對應OSI基準模型中的上五層,主要完成網絡層和傳輸層的工作,提供接口,使得通信模塊和具體應用模塊分離。針對熱網監(jiān)控系統(tǒng),應用層協(xié)議需要通信雙方具體協(xié)商制定。
3.1 CAN通信應用層協(xié)議
現(xiàn)場控制器軟件設計中與上位機的通信是最關鍵的部分之一。針對熱網監(jiān)控系統(tǒng),經過通信雙方具體協(xié)商制定,使用現(xiàn)場總線CAN網絡技術,制定了CAN應用層協(xié)議。應用層完成的主要工作有:標識符分配、多報文數(shù)據(jù)包的處理、報文發(fā)送與接收等。
1. 標識符分配方案
TMS320LF
其中,DIR表示方向。DIR=0時,表示主站向從站發(fā)送數(shù)據(jù);DIR=1時,表示從站向主站發(fā)送數(shù)據(jù)。TYPE為報文幀類型,當TYPE.2=0時,表示點對點發(fā)送;TYPE.2=l時,表示廣播發(fā)送。當TYPE.1~TYPE.0=0Xb時,表示單幀報文;=11b時,表示非結束多幀報文;=10b時,表示結束多幀報文。另外還有目標地址和源地址各七位,命令符八位。命令符是用來標識上位機對現(xiàn)場控制器的控制命令,或現(xiàn)場控制器對上位機的上傳命令。
2. 報文的處理
本文對CAN通信中的報文處理做了以下規(guī)定:
(1)單報文:
單報文由標識符中的數(shù)據(jù)類型TYPE.1決定,當其為0時表示為單報文,此時待傳送的數(shù)據(jù)不超過8個字節(jié),數(shù)據(jù)段中為實際傳送的數(shù)據(jù)。
(2)多報文的首幀和中間幀:
多報文的首幀和中間幀由TYPE.1~TYPE.0決定,當其為11b時表示為非結束多報文,即為多報文的首幀和中間幀,此時待傳送的數(shù)據(jù)超過8個字節(jié),數(shù)據(jù)段中第1個字節(jié)為索引項,后7個字節(jié)為傳送的數(shù)據(jù)。
(3)多報文的尾幀:
多報文的尾幀由TYPE.1~TYPE.0決定,當其為10b時表示為結束多報文,即為多報文的尾幀,此時規(guī)定該幀中數(shù)據(jù)長度為2個字節(jié),數(shù)據(jù)段中第1個字節(jié)為索引項,第2個字節(jié)為待傳送數(shù)據(jù)的總長度,單位為字節(jié)。
3.2 CAN通信初始化
CAN通信初始化主要是設置CAN的通信參數(shù),包括配置位定時器和初始化郵箱兩部分。需要初始化的寄存器有:位配置寄存器2、位配置寄存器1、標識符寄存器、控制寄存器、局部屏蔽寄存器等。需要注意的是,只有當全局狀態(tài)寄存器中的改變配置使能位為高時,才能配置位定時器;當主控制器中的改變配置請求位為1,即CAN控制器處于復位工作方式時,才能配置標識符寄存器、控制寄存器和數(shù)據(jù)域。在訪問位配置寄存器時,由于其內容決定波特率的數(shù)值,位配置寄存器的初始化字必須依據(jù)系統(tǒng)中各CAN控制器的晶振頻率而設定。配置位定時器和初始化郵箱的的流程圖分別如圖5(a)和(b)所示。
3.3 數(shù)據(jù)發(fā)送
信息從CAN控制器發(fā)送到CAN總線是由CAN控制器自動完成的。發(fā)送程序只需把要發(fā)送的信息幀送到相關的CAN寄存器,啟動發(fā)送命令即可,數(shù)據(jù)發(fā)送采用通用定時器周期中斷,定時發(fā)送采集到的數(shù)據(jù)到上位
圖6 通用定時器周期中斷服務程序
機,實現(xiàn)數(shù)據(jù)的存儲,以便用戶查詢。由于采集到的數(shù)據(jù)超過8個字節(jié),所以需對數(shù)據(jù)包進行分片構造報文,見4.1CAN通信應用層協(xié)議部分。通用定時器周期中斷服務程序
3.4 數(shù)據(jù)接收
信息從CAN總線到CAN接收郵箱是由CAN控制器自動完成的,數(shù)據(jù)接收采用郵箱中斷。在中斷服務程序中讀取接收到的數(shù)據(jù),對接收到的數(shù)據(jù)進行解碼,并置位相應標志位。在主程序循環(huán)中查詢標志位,當檢測到標志位被置位,則進入相應處理程序,同時對標志位清零。程序流程如圖7所示。
圖7(a)主程序 (b)接收郵箱中斷服務程序
四、結束語
應用層協(xié)議是CAN網絡應用的關鍵,因此在該系統(tǒng)中,重點工作是:在現(xiàn)場控制器與上位機之間的通信中,使用現(xiàn)場總線CAN網絡技術,制定了用戶層通信協(xié)議。而且本系統(tǒng)已經完成了在實驗室階段的調試工作,通信部分能夠正常工作。本文介紹的CAN 通信設計具有很強的通用性,其成果可以應用在很多數(shù)據(jù)采集的場合。
參考文獻:
[1]孫翠娟,蔣洪.CAN 總線在遠程數(shù)據(jù)采集系統(tǒng)中的應用[J].計算機與現(xiàn)代化,2003(3): 54-56.
[2]饒運濤,周繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應用技術[M].北京航空航天大學出版社.
[3]劉和平,嚴利平,張學鋒,卓清鋒.TMS320LF240X DSP結構、原理及應用[M].北京航空航天大學出版社.