[摘 要] 隨著城市化進程的加快,城市人口越來越多,城市土地資源越來越緊缺,因此現(xiàn)代住宅小區(qū)樓房逐漸由多層建筑轉(zhuǎn)變?yōu)楦邔咏ㄖ?,二三十層的樓房越來越普遍,因此智能小區(qū)對講系統(tǒng)單元內(nèi)總線需要傳輸距離遠、實時性好。CAN總線可靠性高、通信距離遠、速度快、價格便宜,能滿足現(xiàn)代自動化控制系統(tǒng)的需要,在自動化控制領域得到廣泛應用。
[關(guān)鍵詞] CAN; 協(xié)議; 可視對講
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 09. 053
[中圖分類號] TP273+.5 [文獻標識碼] A [文章編號] 1673 - 0194(2012)09- 0087- 02
1 前 言
CAN(Controller Area Network,控制器局域網(wǎng))是目前國際上應用最廣泛的一種開放式現(xiàn)場總線。CAN總線可靠性高、通信距離遠、速度快、價格便宜,能滿足現(xiàn)代自動化控制系統(tǒng)的需要,在自動化控制領域得到廣泛應用。其主要特點是:
(1) CAN總線采用獨特的非破壞性仲裁技術(shù)。CAN網(wǎng)絡上節(jié)點信息被分成不同的優(yōu)先級,網(wǎng)絡中不同節(jié)點同時進行通信時,這些節(jié)點都會通過CAN總線發(fā)送信息。為避免通信沖突,保證數(shù)據(jù)傳輸?shù)目煽啃?,總線總是選擇優(yōu)先級最高的節(jié)點先傳送數(shù)據(jù),而優(yōu)先級低的節(jié)點則主動退出發(fā)送??梢姡茫粒慰偩€采用的這種獨特仲裁技術(shù)能夠滿足系統(tǒng)實時性要求,不管網(wǎng)絡負載多大,都不會出現(xiàn)網(wǎng)絡癱瘓的情況。
(2) CAN總線為多主總線,網(wǎng)絡中各節(jié)點地位平等,網(wǎng)絡中任意一個節(jié)點可隨時隨地向其他任意一個或多個節(jié)點發(fā)送信息,還能進行全局廣播。CAN總線這種靈活的數(shù)據(jù)收發(fā)方式使用戶在設計系統(tǒng)時有很大的靈活性,具有很高的實時性,能滿足本系統(tǒng)需求。
(3) CAN網(wǎng)絡具有完善的錯誤處理機制。CAN的每幀信息有效字節(jié)數(shù)最多為8個,并且均采用CRC校驗,CAN節(jié)點能夠判斷節(jié)點出現(xiàn)的錯誤是暫時擾動還是永久性故障,標注已損壞的報文,當故障計數(shù)超過255時,該節(jié)點自動脫離總線網(wǎng)絡。這使得該故障影響的范圍只是該節(jié)點,不會影響到網(wǎng)絡上其他節(jié)點的通信。
(4) 通信介質(zhì)可為雙絞線、同軸電纜或光纖,可選擇余地大,且具有較好的抗干擾能力,最大傳輸距離可達10千米。
(5) CAN總線采用幀編碼的形式。CAN模塊的接收和發(fā)送是以幀為單位的,這提高了系統(tǒng)的工作效率。
(6) CAN是到目前為止唯一有國際標準的現(xiàn)場總線。
2 CAN網(wǎng)絡節(jié)點的硬件電路設計
一個CAN協(xié)議定義了數(shù)據(jù)鏈路層和物理層,沒有定義應用層,針對具體問題,用戶可自己定義應用層。在該可視對講系統(tǒng)中,一個CAN節(jié)點硬件主要由主控芯片、CAN控制器、CAN收發(fā)器3個部分組成,這3個部分分別對應CAN通信協(xié)議的物理層、數(shù)據(jù)鏈路層和應用層。
2.1 主控芯片
主控芯片通常為單片機,實現(xiàn)了CAN通信協(xié)議的應用層,主要負責CAN控制器的初始化和收發(fā)控制以及CAN節(jié)點功能的實現(xiàn)。
該系統(tǒng)中的主控芯片選擇了SST公司的SST89E516RD作為處理器。它是通用的8位單片機,是8051系列兼容的控制器。
2.2 CAN控制器
中間層為CAN總線控制器。CAN控制器硬件實現(xiàn)了整個CAN總線協(xié)議控制的信息幀的接收和發(fā)送,包括對數(shù)據(jù)幀進行處理:打包、解包、錯誤界定,以及發(fā)送出現(xiàn)錯誤時的重發(fā)控制。
在該可視對講系統(tǒng)中,CAN的通信協(xié)議主要由CAN控制器完成。CAN控制器主要由CAN的通信協(xié)議和與微處理器連接的電路組成。該系統(tǒng)采用MCP2510,MCP2510是一款控制器局域網(wǎng)絡(CAN)協(xié)議控制器芯片,是由 Microchip公司生產(chǎn)的并帶有SPI接口的一種控制器芯片。MCP2510傳輸數(shù)據(jù)的速度最高達到5MB/s ,它完全符合CAN技術(shù)規(guī)范V2.0A和V2.0B,能夠收發(fā)標準的以及擴展的報文,它還同時具備驗收過濾以及報文管理功能。該器件內(nèi)部含有3個發(fā)送緩沖器、2個接收緩沖器,減少了單片機的負擔。同時還具有靈活的中斷管理能力、幀屏蔽與過濾、幀優(yōu)先級設定等功能,這些特點使得MCU對CAN總線的操作變得非常簡便。MCP2510內(nèi)含6個接收過濾器和2個接收過濾屏蔽器,在實際應用時具有較大的靈活性。
2.3 CAN收發(fā)器
最底層為CAN收發(fā)器,主要實現(xiàn)CAN總線接口電平和CAN控制器接口電平的轉(zhuǎn)換。CAN控制器MCP2510只是CAN協(xié)議控制器,它的CAN總線輸入輸出是TTL電平5V,是不能直接掛載在CAN總線上的,需要通過CAN收發(fā)器將CAN總線電平轉(zhuǎn)為接收的TTL電平,將發(fā)送的TTL電平轉(zhuǎn)為CAN總線電平。設計中選用了MCP2551作為CAN收發(fā)器。
CAN總線一般是鋪設在室外,容易受到雷擊的破壞,設計中增加了兩個TVS管——P6KE68CA做防雷EMI,在MCP2510和MCP2551之間增加了兩個光耦——6N137做總線隔離,有效地保護了CAN控制器和主控單片機。CAN的接口電路如圖1所示。
3 CAN通信系統(tǒng)介紹
智能小區(qū)對講系統(tǒng)對講過程的進行是靠主叫方和被叫方之間不斷交換控制信息完成的??刂菩畔⑹请p方必須遵守的協(xié)議。
通過通信信道和設備互連起來的多個不同地理位置的數(shù)據(jù)通信系統(tǒng),要使其能協(xié)同工作實現(xiàn)信息交換和資源共享,它們之間必須具有共同的語言。交流什么、怎樣交流及何時交流,都必須遵循某種互相都能接受的規(guī)則。這個規(guī)則就是通信協(xié)議。通信協(xié)議在軟件中是以一定數(shù)量的字節(jié)組成的幀數(shù)據(jù),幀中的每個字節(jié)具有不同的意義。
通過上面對于對講過程的分析可知,對講協(xié)議的內(nèi)容包括對講命令主要有“呼叫”、“等待”、“占線”、“開始”和“結(jié)束”。另外為了小區(qū)對講系統(tǒng)設備的辨識,定義了設備的地址,分為樓號、單元號、房間號。因此通信協(xié)議中加入了源地址、目的地址。
另外為了增加系統(tǒng)的容錯性,提高抗干擾能力,在協(xié)議幀的最后加入了CRC16的校驗。CRC即循環(huán)冗余校驗碼(Cyclic Redundancy Check),是數(shù)據(jù)通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。
因此智能小區(qū)對講系統(tǒng)的對講協(xié)議定為5幀9個字節(jié)的數(shù)據(jù)幀。每幀數(shù)據(jù)結(jié)構(gòu)見表1。
通信過程中,發(fā)送方首先構(gòu)建信息幀前7個字節(jié),包括對講命令、目的地址、源地址,然后對信息幀的0~6字節(jié)進行CRC數(shù)學運算,得到16位的CRC16校驗數(shù)值,將CRC16校驗數(shù)值的高字節(jié)存儲在信息幀的第7字節(jié),將CRC16校驗數(shù)值的低字節(jié)存儲在信息幀的第8字節(jié),然后將9個字節(jié)依次在總線上發(fā)出。
接受方每次接收9個字節(jié),接收完一幀信息后對信息幀的0~6字節(jié)進行CRC數(shù)學運算,得到16位的CRC16校驗數(shù)值, 將CRC16校驗數(shù)值的高字節(jié)和信息幀的第7字節(jié)比較,如果相等,則比較CRC16校驗數(shù)值的低字節(jié)和信息幀的第8字節(jié),如果也相等,說明此次接收到的數(shù)據(jù)是有效數(shù)據(jù),反之此次接收的數(shù)據(jù)無效。
一共定義了5個對講命令:“呼叫”、“等待”、“占線”、“開始”和“結(jié)束”。隨著對講功能的完善,系統(tǒng)的增加,對講協(xié)議可以不斷擴充。
4 結(jié)束語
在樓宇可視對講系統(tǒng)中,借用了比較成熟的CAN總線,把不同地理位置的設備連接到一起,實現(xiàn)了門禁系統(tǒng)的功能。在樓宇自動化發(fā)展過程中,可視對講系統(tǒng)的智能化發(fā)展越來越規(guī)范,逐步實現(xiàn)硬件的標準化和模塊化,方便安裝;軟件的兼容性,使系統(tǒng)既要易于使用,還要方便安裝和維護,更要有利于擴展和升級。
主要參考文獻
[1] 張景元,楊慶華. 基于單片機和MCP2510的CAN總線通信模塊的設計[J]. 微計算機信息,2007,23(20).
[2] 鄒繼軍,饒運濤. 基于SJA1000的CAN總線系統(tǒng)智能節(jié)點設計[J].單片機與嵌入式系統(tǒng)應用,2001(12).
[3] 柯資穎. 嵌入式門禁系統(tǒng)軟件的設計與實現(xiàn)[D]. 西安:西安電子科技大學, 2008.