《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(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)文格式,,通過(guò)對(duì)報(bào)文標(biāo)識(shí)符的分配,設(shè)計(jì)了應(yīng)用于該系統(tǒng)的通信協(xié)議,并給出了軟件設(shè)計(jì)流程,,較好地解決了智能建筑監(jiān)控系統(tǒng)通信過(guò)程中
關(guān)鍵詞: 接口IC 通信
Abstract:
Key words :

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

    現(xiàn)代智能建筑監(jiān)控系統(tǒng)廣泛采用了現(xiàn)場(chǎng)總線技術(shù)?,F(xiàn)場(chǎng)總線的種類目前有40多種,,但適合智能建筑且在我國(guó)推廣的主要有兩種:CAN(Control Area Network)總線和Lonworks總線。CAN總線技術(shù)以其可靠性高,,結(jié)構(gòu)簡(jiǎn)單,,傳輸距離長(zhǎng)和成本低而具有巨大的應(yīng)用潛力,。
    控制局域網(wǎng)CAN是現(xiàn)場(chǎng)總線技術(shù)中最成熟、最有發(fā)展前途的微處理器局域網(wǎng)絡(luò),。協(xié)議采用總線型拓?fù)浣Y(jié)構(gòu),,通過(guò)研究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)場(chǎng)智能設(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)控軟件組成,對(duì)整個(gè)智能建筑監(jiān)控系統(tǒng)的管理和控制,,是整個(gè)系統(tǒng)的中心,。
    (2)CAN通信節(jié)點(diǎn):各通信節(jié)點(diǎn)功能相同,主要完成把現(xiàn)場(chǎng)設(shè)備采集到的實(shí)時(shí)數(shù)據(jù)發(fā)送到CAN總線上,,接收CAN總線發(fā)送來(lái)的控制信息,。CAN通信節(jié)點(diǎn)的硬件由微處理器、CAN控制器SJAl000,、CAN收發(fā)器PCA82C250組成,。
    (3)現(xiàn)場(chǎng)智能設(shè)備:由微處理器、和現(xiàn)場(chǎng)功能裝置等組成,。完成檢測(cè),、報(bào)警、控制,、顯示等功能,。智能建筑監(jiān)控系統(tǒng)現(xiàn)場(chǎng)設(shè)備由照明、空調(diào),、電梯,、安全監(jiān)控、消防監(jiān)控,、給排水,,配電等組成。

2 CAN總線通信協(xié)議的硬件基礎(chǔ)
    CAN總線協(xié)議描述了信息在設(shè)備之間的傳遞規(guī)則,,它對(duì)層的定義與開(kāi)放系統(tǒng)互連模型OSI一致,CAN被分為應(yīng)用層,、數(shù)據(jù)鏈路層和物理層3層,,各層之間互相透明,,每一層只與另一設(shè)備上相同的那一層通訊,實(shí)際的通訊是發(fā)生在每一設(shè)備上相鄰的兩層之間,,而各個(gè)設(shè)備只通過(guò)物理層的通信介質(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)器可以提供對(duì)總線的差動(dòng)發(fā)送和接收功能,。PCA82C250的驅(qū)動(dòng)部分由1個(gè)PNP的極管和1個(gè)NPN的三極管組成,。這2個(gè)三極管根據(jù)TXD的信號(hào)導(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)器對(duì)總線的影響很小,。因此,,如果存在其他節(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)仲裁過(guò)程
    通信節(jié)點(diǎn)訪問(wèn)總線,,對(duì)總線上信號(hào)進(jìn)行檢測(cè),,只有當(dāng)總線處于空閑狀態(tài)時(shí),才允許發(fā)送,。當(dāng)總線上有多個(gè)節(jié)點(diǎn)同時(shí)進(jìn)行發(fā)送時(shí),,必須通過(guò)“無(wú)損的逐位仲裁”方法來(lái)使有最高優(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號(hào)越小,該報(bào)文擁有越高的優(yōu)先權(quán),。因此一個(gè)為全‘0’標(biāo)志符的報(bào)文具有總線上的最高級(jí)優(yōu)先
權(quán),。多節(jié)點(diǎn)仲裁過(guò)程如圖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以一塊可編程芯片上的邏輯電路的組合來(lái)實(shí)現(xiàn)這些功能,提供了與模塊控制器及微控制器的接口,,通過(guò)對(duì)它的編程,,CPU可設(shè)置它的工作方式,控制它的工作狀態(tài),,與CAN驅(qū)動(dòng)器PCA82C250進(jìn)行數(shù)據(jù)的接收和發(fā)送,。

3 CAN的幀結(jié)構(gòu)
    CAN協(xié)議規(guī)定了兩種不同的幀格式,不同之處為標(biāo)識(shí)符的長(zhǎng)度不同,,具有11位標(biāo)識(shí)符的幀稱之為標(biāo)準(zhǔn)幀,,具有29位標(biāo)識(shí)符的幀被稱為擴(kuò)展幀。
3.1 CAN幀類型
    報(bào)文傳輸由以下4個(gè)不同的幀類型所表示和控制
    (1)數(shù)據(jù)幀:攜帶數(shù)據(jù)從發(fā)送器至接收器,。
    (2)遠(yuǎn)程幀:由節(jié)點(diǎn)發(fā)送,,請(qǐng)求發(fā)送具有相同標(biāo)識(shí)符的數(shù)據(jù)幀。
    (3)錯(cuò)誤幀:由任何節(jié)點(diǎn)發(fā)出,,檢測(cè)到錯(cuò)誤就發(fā)出錯(cuò)誤幀,。
    (4)過(guò)載幀:用于提供先前和后續(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)志幀的開(kāi)始,,它由單個(gè)“顯性”位構(gòu)成,,在總線空閑時(shí)發(fā)送,在總線上產(chǎn)生同步作用,。
    (2)仲裁域,,仲裁域包括29位標(biāo)識(shí)符、SRR位,、IDE位,、RTR位。29位標(biāo)識(shí)符包括11位基本ID,、18位擴(kuò)展ID,。基本ID按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)識(shí)符用于提供關(guān)于傳送報(bào)文和總線訪問(wèn)的優(yōu)先權(quán)信息,其數(shù)值越小,,表示優(yōu)先權(quán)越高,,發(fā)生沖突時(shí)優(yōu)先發(fā)送。
    (3)控制域,,由6位構(gòu)成,,前2位為保留位,為“顯性”,。后4位為數(shù)據(jù)長(zhǎng)度碼(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位隱性位組成,,此期間無(wú)位填充,。

4 通訊協(xié)議的制定
    在CAN的協(xié)議規(guī)范,規(guī)定了數(shù)據(jù)鏈路層和物理層,,沒(méi)有規(guī)定應(yīng)用層,。所以用戶在設(shè)計(jì)通訊軟件時(shí),必須首先設(shè)計(jì)合適的CAN總線通訊協(xié)議,才能完成數(shù)據(jù)準(zhǔn)確可靠的傳輸,?;谘芯緾AN2.OB規(guī)范的基礎(chǔ)上,采用自定義協(xié)議的方法,,制定了智能建筑監(jiān)控系統(tǒng)的通信協(xié)議,。通訊協(xié)議的制定主要包括以下3個(gè)步驟。
4.1 CAN總線網(wǎng)絡(luò)中信息傳輸類型
    智能建筑中信息傳輸類型主要有以下幾種:
    (1)緊急信息,,用以傳輸重要信息,,優(yōu)先級(jí)最高,如報(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)識(shí)符的分配方案確定各節(jié)點(diǎn)優(yōu)先級(jí)
    標(biāo)識(shí)符的分配方案首先滿足節(jié)點(diǎn)以及報(bào)文信息對(duì)優(yōu)先級(jí)的要求,同時(shí)利用標(biāo)識(shí)符空問(wèn)加載有關(guān)信息,,減少在數(shù)據(jù)域內(nèi)占用的空間,。本系統(tǒng)采用有29位標(biāo)識(shí)符的擴(kuò)展幀格式,具體分配如下:
    (1)信息類型標(biāo)識(shí)符(ID.28~I(xiàn)D.23),,000001—緊急信息,,000010—廣播信息,000011—命令信息,,000100—狀態(tài)信息,,000101—數(shù)據(jù)信息。
    (2)節(jié)點(diǎn)地址標(biāo)識(shí)符(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)識(shí)符(ID.14~I(xiàn)D.08),如果一個(gè)節(jié)點(diǎn)發(fā)送多幀報(bào)文,,在報(bào)文信息類型相同的情況下,,可以用報(bào)文功能標(biāo)識(shí)符來(lái)區(qū)分報(bào)文的優(yōu)先級(jí)。
    (4)現(xiàn)場(chǎng)裝置地址標(biāo)識(shí)符(ID.07~I(xiàn)D.00),。
4.3 組織各幀報(bào)文
    明確各節(jié)點(diǎn)發(fā)送的報(bào)文,,對(duì)系統(tǒng)中各類控制信號(hào)和數(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)的初始化
    初始化程序通過(guò)對(duì)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)開(kāi)放接受中斷,單片機(jī)響應(yīng)接收中斷后讀出CAN控制器中SJAl000的接收緩沖區(qū)數(shù)據(jù)并保存,,再清SJAl000的接收緩存器,。

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

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