摘 要:目前現(xiàn)場總線有以下十幾種,各總線之間規(guī)范不一樣,都有自己的適用范圍,其中CAN (Controller Area Network)總線以其高性能、高可靠性及更獨特的設計越來越受到人們的重視,并已被公認為幾種*有前途的現(xiàn)場總線之一。
關鍵詞:單片機;智能儀表;CAN
1 前言
在計算機數(shù)據(jù)傳輸領域內(nèi),長期以來使用RS-232通信標準,盡管它們被廣泛的使用,但卻是一種低數(shù)據(jù)速率和點對點的數(shù)據(jù)傳輸標準,無能力支持更高層次的計算機之間的功能操作。同時,在復雜或大規(guī)模應用中(如工業(yè)現(xiàn)場控制或生產(chǎn)自動化領域),需要使用大量的傳感器、執(zhí)行器和控制器等,它們通常分布在非常廣的范圍內(nèi),所以,在**層上的確需要設計出一種造價低廉而又能經(jīng)受工業(yè)現(xiàn)場環(huán)境的通信系統(tǒng),現(xiàn)場總線(Field Bus)在這種背景下產(chǎn)生了。
現(xiàn)場總線是連接智能現(xiàn)場設備和自動化系統(tǒng)的數(shù)字式、雙向傳輸、多分支結構的通信網(wǎng)絡。現(xiàn)場總線技術自70年代誕生至今,由于它在減少系統(tǒng)線纜,簡化系統(tǒng)安裝、維護和管理,降低系統(tǒng)的投資和運行成本,增強系統(tǒng)性能等方面的優(yōu)越性,引起人們的廣泛注意,得到大范圍的推。
CAN是一種有效支持分布式控制或實時控制的串行通信網(wǎng)絡,*初是由德國BOSCH公司為汽車監(jiān)測、控制系統(tǒng)而設計的。由于CAN總線本身的特點,其應用范圍目前己不再局限于汽車行業(yè),而向過程工業(yè)、機械工業(yè)、紡織機械、農(nóng)用機械、機器人、數(shù)控機床、醫(yī)療器械、傳感器及智能儀表等領域發(fā)展。
智能儀表是自動化學科的重要組成部分。隨著科學技術的迅速發(fā)展,尤其是微電子、計算機和通信技術日新月異的變化,智能儀表向著數(shù)字化、網(wǎng)絡化和智能化方向發(fā)展,智能儀表一方面可以進行人機對話及與外部儀器設備對話,通過現(xiàn)場總線接連入自動測試系統(tǒng)。另一方面,使用者借助面板上的鍵盤和顯示屏,可用對話方式選擇測量功能、設置參數(shù)。當然,通過總線中的工業(yè)計算機也可獲得測量節(jié)點的數(shù)據(jù)。
2 CAN的接口設計
CAN總線是一種串行數(shù)據(jù)通信協(xié)議,在CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可以完成對通信數(shù)據(jù)成幀處理。
用SJA1000作為流量計的CAN控制器,與CPU(單片機)的I/O口直接相連,再通過PCA82C250組成CAN總線。這種結構很容易實現(xiàn)CAN網(wǎng)絡節(jié)點中的信息收發(fā),從而實現(xiàn)對現(xiàn)場的控制。
SJA1000的AD0~AD7連接到MSP420F149的P0口,INT接到P1.0,/CS接到P1.1,/RD連接到P1.2,/WR連到P1.3,ALE連到P1.4,SJA1000的RX0與TX0分別通過兩個高速光耦CNW137與PCA82C250相連后,連到CAN總線上。
PCA82C250為CAN總線收發(fā)器,是CAN控制器與CAN總線的接口器件,對CAN總線差分方式發(fā)送,其RS引腳用于選擇PCA82C250的工作方式:高速方式、斜率方式。RS接地為高速,RS引腳串接一個電阻后再接地,用于控制上升和下降斜率,從而減小射頻干擾。RS引腳接高電平,PCA82C250處于等待狀態(tài)。此時,發(fā)送器關閉,接收器處于低電流工作,可以對CAN總線上的顯性位做出反應,通知CPU。實驗數(shù)據(jù)表明15~200K為較理想的取值范圍,在這種情況下,可以使用平行線或雙絞線作總線,本文中PCA82C250的斜率電阻為取30K。
CNW137為高速光耦,*高速度為10Mbps,用于保護CAN總控制器SJA1000。CAN總線的終端匹配電阻起相當重要的作用,不合適的電阻會使數(shù)據(jù)通信的抗干擾性及可靠性大大降低,甚至無法通信,范圍為108~132Ω,本文使用的電阻為124Ω。
2.1 SJA1000的功能
CAN通信協(xié)議主要由CAN控制器完成。SJA1000是適用于汽車和一般工業(yè)環(huán)境控制器局域網(wǎng)(CAN)的高集成度獨立控制器,具有完成高性能通信協(xié)議所要求的全部必要特性,具有簡單總線連接的SJA1000可完成物理層和數(shù)據(jù)鏈路層的所有功能,應用層功能可由微控制器完成,SJA1000為其提供了一個多用途的接口。
SJA1000是一個獨立的CAN控制器,它是Philips公司另一個CAN控制器PCA82C200的后繼產(chǎn)品,在軟件和引腳上均與PCA82C200兼容。但它不僅僅是PCA82C200的一個簡單替代產(chǎn)品,它增加了許多新的功能,使得其性能更佳,尤其適用于對系統(tǒng)優(yōu)化、診斷和維護要求比較高的場合。
SJA1000的功能框圖如圖2所示,由以下幾部分構成:接口管理邏輯;發(fā)送緩沖器,能夠存儲1個完整的報文(擴展的或標準的);驗收濾波器;接收FIFO;CAN核心模塊。
2.2 82C250
SJA1000的一端與單片機相連,另一端與CAN總線相連。但是,為了提高單片機對CAN總線的驅動能力,可以把82C250作為CAN控制器和物理總線間的接口,以提供對總線的差動發(fā)送能力和對CAN控制器的差動接收能力。82C250的主要特性如下:
·與ISO/DIS11898標準兼容;
·高速(*高可達1 Mb/s );
·具有抗汽車環(huán)境下的瞬間干擾和保護總線能力;
·降低射頻干擾的斜率控制 ;
·熱保護;
·防護電池與地之間發(fā)生短路 ;
·低電流待機方式;
·某個節(jié)點掉電不會影響總線 ;
·可有110個節(jié)點相連接。
3 CAN通信程序框圖
SJA1000操作期間,在上電之前必須配置控制線路(中斷、復位、片選等)用于建立與CAN控制器之間進行通信的硬件連接。初始化、CAN通信采用中斷方式數(shù)據(jù)發(fā)送和接收子程序.
如果在上電后獨立CAN控制器在引腳17得到1個復位脈沖(低電平),它能夠進入復位模式。在對SJA1000寄存器設置前,CAN控制器通過讀復位模式/請求標志來檢查是否已達到復位模式,因為要配置信息的寄存器僅在復位模式才能寫入,涉及對控制寄存器(CR),驗收碼寄存器(ACR ),驗收屏蔽寄存器(AMR ),總線定時寄存器(BTRO和BTR1)和輸出控制寄存器(OCR)的初始化編程。
時鐘分頻寄存器,可以選擇BasicCAN或PeliCAN工作模式,設置CLKOUT管腳使能用來選擇頻率,設置是否使用旁路CAN輸入比較器和是否使用TX 1輸出被用作專門的接收中斷輸出。
驗收代碼和驗收屏蔽寄存器的設置可以過濾信息,為收到的信息定義驗收代碼為和驗收代碼相關位比較定義驗收屏蔽代碼。
總線定時寄存器,定義總線上的位速率。輸出控制寄存器定義CAN總線輸出管腳TX0和TX1的輸出模式,定義TX0和TX1輸出管腳配置是懸空、下拉、上拉或推挽以及極性。中斷寄存器設置允許識別的中斷源。
4 結論
多個智能儀表與通過CAN接口與PC聯(lián)系成總線網(wǎng),系統(tǒng)運行良好。這種基于現(xiàn)場總線的智能儀表系統(tǒng)抗干擾性強、性能可靠,無論是測量速度、**度、自動化程序還是性價比都是傳統(tǒng)儀表不能比擬的,是今后儀器儀表發(fā)展的方向。