《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于CAN總線智能建筑監(jiān)控系統的通信協議設計
基于CAN總線智能建筑監(jiān)控系統的通信協議設計
王 忠,孫浩欽,易茂祥
摘要: 摘要:從研究CAN2.OB總線規(guī)范入手,介紹了CAN總線規(guī)范的硬件基礎,分析了CAN總線報文格式,通過對報文標識符的分配,設計了應用于該系統的通信協議,并給出了軟件設計流程,較好地解決了智能建筑監(jiān)控系統通信過程中
關鍵詞: 接口IC 通信
Abstract:
Key words :

摘要:從研究CAN2.OB總線規(guī)范入手,介紹了CAN總線規(guī)范的硬件基礎,分析了CAN總線報文格式,通過對報文標識符的分配,設計了應用于該系統的通信協議,并給出了軟件設計流程,較好地解決了智能建筑監(jiān)控系統通信過程中的仲裁問題。
關鍵詞:智能建筑;CAN總線;通信協議;標識符

    現代智能建筑監(jiān)控系統廣泛采用了現場總線技術?,F場總線的種類目前有40多種,但適合智能建筑且在我國推廣的主要有兩種:CAN(Control Area Network)總線和Lonworks總線。CAN總線技術以其可靠性高,結構簡單,傳輸距離長和成本低而具有巨大的應用潛力。
    控制局域網CAN是現場總線技術中最成熟、最有發(fā)展前途的微處理器局域網絡。協議采用總線型拓撲結構,通過研究CAN2.0B協議規(guī)范,制定了符合智能建筑監(jiān)控系統的通信協議,并進行了通信節(jié)點軟件的設計。

1 基于CAN總線的智能建筑網絡拓撲結構
    CAN總線的智能建筑監(jiān)控系統拓撲結構,如圖1所示。該系統由3部分組成:上位機、CAN通信節(jié)點和各個現場智能設備組成。通信節(jié)點的數量可根據建筑物的規(guī)模增減,CAN總線作為通信網絡將各個節(jié)點連接成一個分布式智能監(jiān)控系統。

3a.jpg


    (1)上位機:由計算機和監(jiān)控軟件組成,對整個智能建筑監(jiān)控系統的管理和控制,是整個系統的中心。
    (2)CAN通信節(jié)點:各通信節(jié)點功能相同,主要完成把現場設備采集到的實時數據發(fā)送到CAN總線上,接收CAN總線發(fā)送來的控制信息。CAN通信節(jié)點的硬件由微處理器、CAN控制器SJAl000、CAN收發(fā)器PCA82C250組成。
    (3)現場智能設備:由微處理器、和現場功能裝置等組成。完成檢測、報警、控制、顯示等功能。智能建筑監(jiān)控系統現場設備由照明、空調、電梯、安全監(jiān)控、消防監(jiān)控、給排水,配電等組成。

2 CAN總線通信協議的硬件基礎
    CAN總線協議描述了信息在設備之間的傳遞規(guī)則,它對層的定義與開放系統互連模型OSI一致,CAN被分為應用層、數據鏈路層和物理層3層,各層之間互相透明,每一層只與另一設備上相同的那一層通訊,實際的通訊是發(fā)生在每一設備上相鄰的兩層之間,而各個設備只通過物理層的通信介質連接在一起。
    CAN總線規(guī)范定義了模型的最下面的兩層:物理層和數據鏈路層。CAN總線驅動器和通信介質則實現了物理層的主要功能。CAN總線控制器實現了總線協議中規(guī)定的數據鏈路層的傳輸任務。常用的CAN總線驅動器有Philips公司的PCA82C250,總線控制器是SJAl000,通信介質是雙絞線或同軸電纜。
2.1 總線驅動器PCA82C250的工作原理
    PCA82C250是CAN總線控制器與物理導線之間的接口,該驅動器可以提供對總線的差動發(fā)送和接收功能。PCA82C250的驅動部分由1個PNP的極管和1個NPN的三極管組成。這2個三極管根據TXD的信號導通或截止。當TXD=0時,2個三極管處于導通狀態(tài)時,總線上顯示為顯性電平。當TXD=1時,2個三極管處于截止狀態(tài),總線上顯示為隱性電平,此時驅動器對總線的影響很小。因此,如果存在其他節(jié)點發(fā)送顯性電平,則總線的電平狀態(tài)就是顯性,只有所有的驅動器都發(fā)送隱性電平,總線的電平狀態(tài)才是隱性。實現了CAN總線物理層的線與功能。PCA82C250功能圖,如圖2所示。

3b.jpg


2.2 基于線與功能多節(jié)點仲裁過程
    通信節(jié)點訪問總線,對總線上信號進行檢測,只有當總線處于空閑狀態(tài)時,才允許發(fā)送。當總線上有多個節(jié)點同時進行發(fā)送時,必須通過“無損的逐位仲裁”方法來使有最高優(yōu)先權的報文優(yōu)先發(fā)送。在CAN總線上發(fā)送的每一條報文都具有惟一的11位或29位ID。CAN總線的狀態(tài)取決于二進制數‘O’而不是‘1’,所以ID號越小,該報文擁有越高的優(yōu)先權。因此一個為全‘0’標志符的報文具有總線上的最高級優(yōu)先
權。多節(jié)點仲裁過程如圖3所示。

3c.jpg


2.3 CAN控制器SJAl000的功能介紹
    CAN的通信協議由CAN控制器完成,CAN控制器由實現CAN總線協議的部分和實現與微處理器接口部分的電路組成。
    SJAl000是Philips公司推出的一種高性能的CAN總線控制器,它不僅和PCA82C200的基本CAN模式(BasieCAN)兼容,而且還增強CAN模式(PeliCAN),這種模式支持CAN2.0B協議。SJAl000以一塊可編程芯片上的邏輯電路的組合來實現這些功能,提供了與模塊控制器及微控制器的接口,通過對它的編程,CPU可設置它的工作方式,控制它的工作狀態(tài),與CAN驅動器PCA82C250進行數據的接收和發(fā)送。

3 CAN的幀結構
    CAN協議規(guī)定了兩種不同的幀格式,不同之處為標識符的長度不同,具有11位標識符的幀稱之為標準幀,具有29位標識符的幀被稱為擴展幀。
3.1 CAN幀類型
    報文傳輸由以下4個不同的幀類型所表示和控制
    (1)數據幀:攜帶數據從發(fā)送器至接收器。
    (2)遠程幀:由節(jié)點發(fā)送,請求發(fā)送具有相同標識符的數據幀。
    (3)錯誤幀:由任何節(jié)點發(fā)出,檢測到錯誤就發(fā)出錯誤幀。
    (4)過載幀:用于提供先前和后續(xù)數據幀或遠程幀之間的附加延時。
3.2 CAN擴展幀的數據幀結構
    擴展幀的數據幀結構,如圖4所示。

3d.jpg


    擴展幀的數據幀的主要結構有:
    (1)幀起始,標志幀的開始,它由單個“顯性”位構成,在總線空閑時發(fā)送,在總線上產生同步作用。
    (2)仲裁域,仲裁域包括29位標識符、SRR位、IDE位、RTR位。29位標識符包括11位基本ID、18位擴展ID?;綢D按ID-28到ID-18的順序發(fā)送,擴展ID按ID-17到ID-0的順序發(fā)送?;綢D首先發(fā)送,其次是SRR位和IDE位。擴展ID的發(fā)送位于IDE位之后。SRR是“隱性”位。IDE位在標準格式里為“顯性”,在擴展格式里為“隱性”。RTR位在數據幀里必為“顯性”,而在遠程幀里必為“隱性”。標識符用于提供關于傳送報文和總線訪問的優(yōu)先權信息,其數值越小,表示優(yōu)先權越高,發(fā)生沖突時優(yōu)先發(fā)送。
    (3)控制域,由6位構成,前2位為保留位,為“顯性”。后4位為數據長度碼(DLC),表示數據域中數據的字節(jié)數,必須在0~8范圍內變化。
    (4)數據域,由被發(fā)送的數據組成,字節(jié)數為控制域中決定的0~8 bit,第一個字節(jié)的最高位首先被發(fā)送。
    (5)CRC域,包括CRC(循環(huán)冗余碼校驗)序列(15位)和CRC界定符(1個“隱性”位),用于幀校驗。
    (6)應答域,由應答間隙和應答界定符組成,共2位。
    (7)幀結束,由7位隱性位組成,此期間無位填充。

4 通訊協議的制定
    在CAN的協議規(guī)范,規(guī)定了數據鏈路層和物理層,沒有規(guī)定應用層。所以用戶在設計通訊軟件時,必須首先設計合適的CAN總線通訊協議,才能完成數據準確可靠的傳輸?;谘芯緾AN2.OB規(guī)范的基礎上,采用自定義協議的方法,制定了智能建筑監(jiān)控系統的通信協議。通訊協議的制定主要包括以下3個步驟。
4.1 CAN總線網絡中信息傳輸類型
    智能建筑中信息傳輸類型主要有以下幾種:
    (1)緊急信息,用以傳輸重要信息,優(yōu)先級最高,如報警信息。
    (2)廣播信息,向總線上掛接的所有節(jié)點發(fā)送的信息。
    (3)命令信息,控制節(jié)點向執(zhí)行節(jié)點發(fā)送的信息。
    (4)狀態(tài)信息,執(zhí)行節(jié)點接收到命令執(zhí)行后,向控制節(jié)點反饋的信息。
    (5)數據信息,負責采集數據的節(jié)點發(fā)送的信息,如傳感器采集到的信息。
4.2 根據標識符的分配方案確定各節(jié)點優(yōu)先級
    標識符的分配方案首先滿足節(jié)點以及報文信息對優(yōu)先級的要求,同時利用標識符空問加載有關信息,減少在數據域內占用的空間。本系統采用有29位標識符的擴展幀格式,具體分配如下:
    (1)信息類型標識符(ID.28~ID.23),000001—緊急信息,000010—廣播信息,000011—命令信息,000100—狀態(tài)信息,000101—數據信息。
    (2)節(jié)點地址標識符(ID.22~ID.15),0000000l—上位機節(jié)點,00000010—安全監(jiān)控節(jié)點,00000100—消防監(jiān)控節(jié)點,0000010l—配電節(jié)點,00000111—給排水節(jié)點,00001000—電梯節(jié)點,00001001—照明節(jié)點,00001010—空調節(jié)點。
    (3)報文功能標識符(ID.14~ID.08),如果一個節(jié)點發(fā)送多幀報文,在報文信息類型相同的情況下,可以用報文功能標識符來區(qū)分報文的優(yōu)先級。
    (4)現場裝置地址標識符(ID.07~ID.00)。
4.3 組織各幀報文
    明確各節(jié)點發(fā)送的報文,對系統中各類控制信號和數據進行分類,填充各報文的數據域。

5 通信協議的軟件實現
    通信協議的軟件設計由3部分組成:CAN控制器的初始化、數據的發(fā)送和接收程序,其流程圖如圖5,圖6和圖7所示。

 

3e.jpg

 

3f.jpg
5.1 通信節(jié)點的初始化
    初始化程序通過對CAN控制器SJAl000中的寄存器寫入控制字,確定CAN控制器的工作方式,包括模式寄存器的設置、接收濾波方式設置、接收屏蔽寄存器和接收代碼寄存器的設置、波特率參數和中斷允許寄存器的設置等,完成初始化設置后,SJAl000進行正常的通信。
5.2 數據發(fā)送程序
    發(fā)送數據前,采用查詢方式先查看發(fā)送緩沖器狀態(tài),滿足要求再把要發(fā)送的數據按照特定格式組合成一幀報文,送入SJAl000發(fā)送緩沖區(qū),然后啟動SJAl000發(fā)送命令。
5.3 數據接收程序
    接收數據采用中斷方式,主程序中應開放接受中斷,單片機響應接收中斷后讀出CAN控制器中SJAl000的接收緩沖區(qū)數據并保存,再清SJAl000的接收緩存器。

6 結束語
    通過研究CAN2.0B協議規(guī)范,對報文格式的分析和標識符的分配,設計出了基于CAN總線的智能建筑監(jiān)控系統的通信協議。協議具有實現簡單、通用性強、可靠性高,便于擴展等優(yōu)點,通過驗證,該協議有效地解決了智能建筑監(jiān)控系統多節(jié)點通信過程中的仲裁問題。
 

此內容為AET網站原創(chuàng),未經授權禁止轉載。