現(xiàn)代智能建筑監(jiān)控系統(tǒng)廣泛采用了現(xiàn)場總線技術。現(xiàn)場總線的種類目前有40多種,但適合智能建筑且在我國推廣的主要有兩種:CAN(Control Area Network)總線和Lonworks總線。CAN總線技術以其可靠性高,結構簡單,傳輸距離長和成本低而具有巨大的應用潛力。 控制局域網(wǎng)CAN是現(xiàn)場總線技術中最成熟、最有發(fā)展前途的微處理器局域網(wǎng)絡。協(xié)議采用總線型拓撲結構,通過研究CAN2.0B協(xié)議規(guī)范,制定了符合智能建筑監(jiān)控系統(tǒng)的通信協(xié)議,并進行了通信節(jié)點軟件的設計。 1 基于CAN總線的智能建筑網(wǎng)絡拓撲結構 CAN總線的智能建筑監(jiān)控系統(tǒng)拓撲結構,如圖1所示。該系統(tǒng)由3部分組成:上位機、CAN通信節(jié)點和各個現(xiàn)場智能設備組成。通信節(jié)點的數(shù)量可根據(jù)建筑物的規(guī)模增減,CAN總線作為通信網(wǎng)絡將各個節(jié)點連接成一個分布式智能監(jiān)控系統(tǒng)。 (1)上位機:由計算機和監(jiān)控軟件組成,對整個智能建筑監(jiān)控系統(tǒng)的管理和控制,是整個系統(tǒng)的中心。 (2)CAN通信節(jié)點:各通信節(jié)點功能相同,主要完成把現(xiàn)場設備采集到的實時數(shù)據(jù)發(fā)送到CAN總線上,接收CAN總線發(fā)送來的控制信息。CAN通信節(jié)點的硬件由微處理器、CAN控制器SJAl000、CAN收發(fā)器PCA82C250組成。 (3)現(xiàn)場智能設備:由微處理器、和現(xiàn)場功能裝置等組成。完成檢測、報警、控制、顯示等功能。智能建筑監(jiān)控系統(tǒng)現(xiàn)場設備由照明、空調、電梯、安全監(jiān)控、消防監(jiān)控、給排水,配電等組成。 2 CAN總線通信協(xié)議的硬件基礎 CAN總線協(xié)議描述了信息在設備之間的傳遞規(guī)則,它對層的定義與開放系統(tǒng)互連模型OSI一致,CAN被分為應用層、數(shù)據(jù)鏈路層和物理層3層,各層之間互相透明,每一層只與另一設備上相同的那一層通訊,實際的通訊是發(fā)生在每一設備上相鄰的兩層之間,而各個設備只通過物理層的通信介質連接在一起。 CAN總線規(guī)范定義了模型的最下面的兩層:物理層和數(shù)據(jù)鏈路層。CAN總線驅動器和通信介質則實現(xiàn)了物理層的主要功能。CAN總線控制器實現(xiàn)了總線協(xié)議中規(guī)定的數(shù)據(jù)鏈路層的傳輸任務。常用的CAN總線驅動器有PHILIPS公司的PCA82C250,總線控制器是SJAl000,通信介質是雙絞線或同軸電纜。 2.1 總線驅動器PCA82C250的工作原理 PCA82C250是CAN總線控制器與物理導線之間的接口,該驅動器可以提供對總線的差動發(fā)送和接收功能。PCA82C250的驅動部分由1 個PNP的極管和1個NPN的三極管組成。這2個三極管根據(jù)TXD的信號導通或截止。當TXD=0時,2個三極管處于導通狀態(tài)時,總線上顯示為顯性電平。當TXD=1時,2個三極管處于截止狀態(tài),總線上顯示為隱性電平,此時驅動器對總線的影響很小。因此,如果存在其他節(jié)點發(fā)送顯性電平,則總線的電平狀態(tài)就是顯性,只有所有的驅動器都發(fā)送隱性電平,總線的電平狀態(tài)才是隱性。實現(xiàn)了CAN總線物理層的線與功能。PCA82C250功能圖,如圖2所示。 2.2 基于線與功能多節(jié)點仲裁過程 通信節(jié)點訪問總線,對總線上信號進行檢測,只有當總線處于空閑狀態(tài)時,才允許發(fā)送。當總線上有多個節(jié)點同時進行發(fā)送時,必須通過“無損的逐位仲裁”方法來使有最高優(yōu)先權的報文優(yōu)先發(fā)送。在CAN總線上發(fā)送的每一條報文都具有惟一的11位或29位ID。CAN總線的狀態(tài)取決于二進制數(shù)‘O’而不是 ‘1’,所以ID號越小,該報文擁有越高的優(yōu)先權。因此一個為全‘0’標志符的報文具有總線上的最高級優(yōu)先權。多節(jié)點仲裁過程如圖3所示。 2.3 CAN控制器SJAl000的功能介紹 CAN的通信協(xié)議由CAN控制器完成,CAN控制器由實現(xiàn)CAN總線協(xié)議的部分和實現(xiàn)與微處理器接口部分的電路組成。 SJAl000是PHILIPS公司推出的一種高性能的CAN總線控制器,它不僅和PCA82C200的基本CAN模式(BasieCAN)兼容,而且還增強CAN模式 (PeliCAN),這種模式支持CAN2.0B協(xié)議。SJAl000以一塊可編程芯片上的邏輯電路的組合來實現(xiàn)這些功能,提供了與模塊控制器及微控制器的接口,通過對它的編程,CPU可設置它的工作方式,控制它的工作狀態(tài),與CAN驅動器PCA82C250進行數(shù)據(jù)的接收和發(fā)送。 3 CAN的幀結構 CAN協(xié)議規(guī)定了兩種不同的幀格式,不同之處為標識符的長度不同,具有11位標識符的幀稱之為標準幀,具有29位標識符的幀被稱為擴展幀。 3.1 CAN幀類型 報文傳輸由以下4個不同的幀類型所表示和控制 (1)數(shù)據(jù)幀:攜帶數(shù)據(jù)從發(fā)送器至接收器。 (2)遠程幀:由節(jié)點發(fā)送,請求發(fā)送具有相同標識符的數(shù)據(jù)幀。 (3)錯誤幀:由任何節(jié)點發(fā)出,檢測到錯誤就發(fā)出錯誤幀。 (4)過載幀:用于提供先前和后續(xù)數(shù)據(jù)幀或遠程幀之間的附加延時。 3.2 CAN擴展幀的數(shù)據(jù)幀結構 擴展幀的數(shù)據(jù)幀結構,如圖4所示。 擴展幀的數(shù)據(jù)幀的主要結構有: (1)幀起始,標志幀的開始,它由單個“顯性”位構成,在總線空閑時發(fā)送,在總線上產生同步作用。 (2)仲裁域,仲裁域包括29位標識符、SRR位、IDE位、RTR位。29位標識符包括11位基本ID、18位擴展ID。基本ID按ID- 28到ID-18的順序發(fā)送,擴展ID按ID-17到ID-0的順序發(fā)送。基本ID首先發(fā)送,其次是SRR位和IDE位。擴展ID的發(fā)送位于IDE位之后。SRR是“隱性”位。IDE位在標準格式里為“顯性”,在擴展格式里為“隱性”。RTR位在數(shù)據(jù)幀里必為“顯性”,而在遠程幀里必為“隱性”。標識符用于提供關于傳送報文和總線訪問的優(yōu)先權信息,其數(shù)值越小,表示優(yōu)先權越高,發(fā)生沖突時優(yōu)先發(fā)送。 (3)控制域,由6位構成,前2位為保留位,為“顯性”。后4位為數(shù)據(jù)長度碼(DLC),表示數(shù)據(jù)域中數(shù)據(jù)的字節(jié)數(shù),必須在0~8范圍內變化。 (4)數(shù)據(jù)域,由被發(fā)送的數(shù)據(jù)組成,字節(jié)數(shù)為控制域中決定的0~8 bit,第一個字節(jié)的最高位首先被發(fā)送。 (5)CRC域,包括CRC(循環(huán)冗余碼校驗)序列(15位)和CRC界定符(1個“隱性”位),用于幀校驗。 (6)應答域,由應答間隙和應答界定符組成,共2位。 (7)幀結束,由7位隱性位組成,此期間無位填充。 4 通訊協(xié)議的制定 在CAN的協(xié)議規(guī)范,規(guī)定了數(shù)據(jù)鏈路層和物理層,沒有規(guī)定應用層。所以用戶在設計通訊軟件時,必須首先設計合適的CAN總線通訊協(xié)議,才能完成數(shù)據(jù)準確可靠的傳輸。基于研究CAN2.OB規(guī)范的基礎上,采用自定義協(xié)議的方法,制定了智能建筑監(jiān)控系統(tǒng)的通信協(xié)議。通訊協(xié)議的制定主要包括以下3個步驟。 4.1 CAN總線網(wǎng)絡中信息傳輸類型 智能建筑中信息傳輸類型主要有以下幾種: (1)緊急信息,用以傳輸重要信息,優(yōu)先級最高,如報警信息。 (2)廣播信息,向總線上掛接的所有節(jié)點發(fā)送的信息。 (3)命令信息,控制節(jié)點向執(zhí)行節(jié)點發(fā)送的信息。 (4)狀態(tài)信息,執(zhí)行節(jié)點接收到命令執(zhí)行后,向控制節(jié)點反饋的信息。 (5)數(shù)據(jù)信息,負責采集數(shù)據(jù)的節(jié)點發(fā)送的信息,如傳感器采集到的信息。 4.2 根據(jù)標識符的分配方案確定各節(jié)點優(yōu)先級 標識符的分配方案首先滿足節(jié)點以及報文信息對優(yōu)先級的要求,同時利用標識符空問加載有關信息,減少在數(shù)據(jù)域內占用的空間。本系統(tǒng)采用有29位標識符的擴展幀格式,具體分配如下: (1)信息類型標識符(ID.28~ID.23),000001—緊急信息,000010—廣播信息,000011—命令信息,000100—狀態(tài)信息,000101—數(shù)據(jù)信息。 (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)現(xiàn)場裝置地址標識符(ID.07~ID.00)。 4.3 組織各幀報文 明確各節(jié)點發(fā)送的報文,對系統(tǒng)中各類控制信號和數(shù)據(jù)進行分類,填充各報文的數(shù)據(jù)域。 5 通信協(xié)議的軟件實現(xiàn) 通信協(xié)議的軟件設計由3部分組成:CAN控制器的初始化、數(shù)據(jù)的發(fā)送和接收程序,其流程圖如圖5,圖6和圖7所示。 5.1 通信節(jié)點的初始化 初始化程序通過對CAN控制器SJAl000中的寄存器寫入控制字,確定CAN控制器的工作方式,包括模式寄存器的設置、接收濾波方式設置、接收屏蔽寄存器和接收代碼寄存器的設置、波特率參數(shù)和中斷允許寄存器的設置等,完成初始化設置后,SJAl000進行正常的通信。 5.2 數(shù)據(jù)發(fā)送程序 發(fā)送數(shù)據(jù)前,采用查詢方式先查看發(fā)送緩沖器狀態(tài),滿足要求再把要發(fā)送的數(shù)據(jù)按照特定格式組合成一幀報文,送入SJAl000發(fā)送緩沖區(qū),然后啟動SJAl000發(fā)送命令。 5.3 數(shù)據(jù)接收程序 接收數(shù)據(jù)采用中斷方式,主程序中應開放接受中斷,單片機響應接收中斷后讀出CAN控制器中SJAl000的接收緩沖區(qū)數(shù)據(jù)并保存,再清SJAl000的接收緩存器。 6 結束語 通過研究CAN2.0B協(xié)議規(guī)范,對報文格式的分析和標識符的分配,設計出了基于CAN總線的智能建筑監(jiān)控系統(tǒng)的通信協(xié)議。協(xié)議具有實現(xiàn)簡單、通用性強、可靠性高,便于擴展等優(yōu)點,通過驗證,該協(xié)議有效地解決了智能建筑監(jiān)控系統(tǒng)多節(jié)點通信過程中的仲裁問題。 |