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

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

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

1 基于CAN總線的智能建筑網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
    CAN總線的智能建筑監(jiān)控系統(tǒng)拓?fù)浣Y(jié)構(gòu),如圖1所示。該系統(tǒng)由3部分組成:上位機(jī)、CAN通信節(jié)點(diǎn)和各個(gè)現(xiàn)場智能設(shè)備組成。通信節(jié)點(diǎn)的數(shù)量可根據(jù)建筑物的規(guī)模增減,CAN總線作為通信網(wǎng)絡(luò)將各個(gè)節(jié)點(diǎn)連接成一個(gè)分布式智能監(jiān)控系統(tǒng)。

3a.jpg


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

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

3b.jpg


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

3c.jpg


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

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

3d.jpg


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

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

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

 

3e.jpg

 

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

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。