智能儀表的CAN接口設計
1 前沿
在計算機數據傳輸領(lǐng)域內,長(cháng)期以來(lái)使用rs-232通信標準,盡管被廣泛的使用,但卻是一種低數據率和點(diǎn)對點(diǎn)的數據傳輸標準,無(wú)能力支持更高層次的計算機之間的功能操作。同時(shí),在復雜或大規模應用中(如工業(yè)現場(chǎng)控制或生產(chǎn)自動(dòng)化領(lǐng)域),需要使用大量的傳感器、執行器和控制器等,它們通常分布在非常廣的范圍內,所以,在最底層的確需要一種造價(jià)低廉而又能適應工業(yè)現場(chǎng)環(huán)境的通信系統,現場(chǎng)總線(xiàn)(field
bus)就是在這種背景下應運而生的。
現場(chǎng)總線(xiàn)是連接智能現場(chǎng)設備和自動(dòng)化系統的數字式、雙向傳輸、多分支結構的通信網(wǎng)絡(luò ),現場(chǎng)總線(xiàn)技術(shù)自上世紀70年代誕生至今,由于它在減少系統線(xiàn)纜,簡(jiǎn)化系統安裝、維護和管理,降低系統的投資和運行成本,增強系統性能等方面的優(yōu)越性,引起人們的廣泛注意,得到大范圍的推廣。
can是一種有效支持分布式控制或實(shí)時(shí)控制的串行通信網(wǎng)絡(luò ),最初是由德國bosch公司為汽車(chē)監控、控制系統設計的。由于can總線(xiàn)本身的特點(diǎn),其應用范圍目前已不再局限于汽車(chē)行業(yè),而向過(guò)程工業(yè)、機械工業(yè)、紡織機械、農用機械、機器人、數控機床、醫療器械、傳感器及智能儀表等領(lǐng)域發(fā)展。
智能儀表是自動(dòng)化學(xué)科的重要組成部分。隨著(zhù)科學(xué)技術(shù)的迅速發(fā)展,尤其是微電子、計算機和通信技術(shù)日新月異的變化,智能儀表逐漸向數字化、網(wǎng)絡(luò )化和智能化方向發(fā)展。智能儀表一方面可以進(jìn)行人機對話(huà)及與外部?jì)x器設備對話(huà),通過(guò)現場(chǎng)總線(xiàn)接入自動(dòng)測試系統;另一方面,使用者借助面板上的鍵盤(pán)和顯示屏,可用對話(huà)方式選擇測量功能,設置參數。當然,通過(guò)總線(xiàn)中的工業(yè)計算機也可獲得測量節點(diǎn)的數據。
2 can的接口設計
can總線(xiàn)是一種串行數據通信協(xié)議,在can總線(xiàn)通信接口中集成了can協(xié)議的物理層和數據鏈路層功能,可以完成對通信數據的成幀處理。can總線(xiàn)接口的具體電路如圖1所示。

筆者用sja1000作為流量計的can控制器,與cpu(單片機)的i/o口直接相連,再通過(guò)pca82c250組成can總線(xiàn)。這種結構很容易實(shí)現can網(wǎng)絡(luò )節點(diǎn)中的信息收發(fā),從而實(shí)現對現場(chǎng)的控制。
sja1000的ad0-ad7連接到msp420f149的p0口,int接到p1.0,cs接到p1.1,rd連接到p1.2,wr連到p1.3,ale連到p1.4,sja1000的rx0與tx0分別通過(guò)2個(gè)cnw137型高速光耦與pca82c250相連后,再連到can總線(xiàn)上。
pca82c250為can總線(xiàn)收發(fā)器,是can控制器與can總線(xiàn)的接口器件,對can總線(xiàn)以差分方式發(fā)送,其rs引腳用于選擇pca82c250的工作方式:高速方式和斜率方式。rs接地為高速,rs引腳串接1只電阻器后再接地,用于控制上升和下降斜率,從而減小射頻干擾。rs引腳接高電平,pca82c250處于等待狀態(tài)。此時(shí)發(fā)送器關(guān)閉,接收器處于低電流工作,可以對can總線(xiàn)上的顯性位做出反應來(lái)通知cpu。實(shí)驗數據表明15kω-200kω為串聯(lián)電阻器較理想的取值范圍,在這種情況下,可以用平行線(xiàn)或雙絞線(xiàn)作為總線(xiàn),本設計中pca82c250的斜率電阻為30kω。
cnw137為高速光耦,最高速度為10mb/s,用于保護sja1000型can總線(xiàn)控制器。can總線(xiàn)的終端匹配電阻器起相當重要的作用,不合適的電阻器會(huì )使數據通信的抗干擾性及可靠性大大降低甚至無(wú)法通信,理想的阻值范圍為108ω-132ω,該設計使用的阻值為124ω。
2.1 sja1000的功能
can通信協(xié)議主要由can控制器完成。sja1000是適用于汽車(chē)和一般工業(yè)環(huán)境控制器局域網(wǎng)(can)的高集成度控制器,具有完成高性能通信協(xié)議所要求的全部特性,具有簡(jiǎn)單總線(xiàn)連接的sja1000可完成物理層和數據鏈路層的所有功能,應用層功能可由微控制器完成,sja1000為其提供了多用途的接口。
sja1000是philips公司pca82c200型can控制器的后續產(chǎn)品,在軟件和引腳上均與pca82c200兼容,并增加了許多新的功能,性能更佳。尤其適用于對系統優(yōu)化、診斷和維護要求比較高的場(chǎng)合。
sja1000的功能框圖如圖2所示,由以下幾部分構成:接口管理邏輯;發(fā)送緩沖器,能夠存儲1個(gè)完整的報文(擴展的或標準的);驗收濾波器;接收f(shuō)ifo;can核心模塊。

2.2 82c250
sja1000的一端與單片機相連,另一端與can總線(xiàn)相連。但是,為了提高單片機對can總線(xiàn)的驅動(dòng)能力,可以把82c250作為can控制器和物理總線(xiàn)間的接口,以提供對總線(xiàn)的差動(dòng)發(fā)送能力和對can控制器的差動(dòng)接收能力。82c250的主要特性如下:
與iso/dis11898標準兼容;
高速(最高可達1mb/s);
具有抗汽車(chē)環(huán)境下的瞬間干擾和保護總線(xiàn)的能力;
降低射頻干擾的斜率控制;
熱保護功能;
防止電池與地之間發(fā)生短路;
低電流待機方式;
某個(gè)節點(diǎn)掉電不會(huì )影響總線(xiàn);
可有110個(gè)節點(diǎn)相連接。
3 can通信程序
sja1000操作期間,在上電之前必須配置控制線(xiàn)路(中斷、復位、片選等)建立與can控制器之間通信的硬件連接。初始化、can通信采用中斷方式數據發(fā)送和接收子程序,其流程如圖3、圖4和圖5所示。



如果在上電后獨立can控制器在引腳17得到1個(gè)復位脈沖(低電平),它就能夠進(jìn)入復位模式。在對sja1000寄存器設計前,can控制器通過(guò)讀復位模式/請求標志來(lái)檢查是否已進(jìn)入復位模式,因為要配置信息的寄存器只有在復位模式才能寫(xiě)入,并涉及到對控制寄存器(cr)、驗收碼寄存器(acr)、驗收屏蔽寄存器(amr)、總線(xiàn)定時(shí)寄存器(btro和btr1)和輸出控制寄存器(ocr)的初始化編程。
時(shí)鐘分頻寄存器可以選擇basiccan或pelican工作模式,設置clkout因該使能用來(lái)選擇頻率,設置是否使用旁路can輸入比較器和是否使用tx1輸出用為專(zhuān)門(mén)的接收中斷輸出。
驗收代碼和驗收屏蔽寄存器的設置可以過(guò)濾信息,為收到的信息定義驗收代碼;為與驗收代碼相關(guān)位比較定義驗收屏蔽代碼。
總線(xiàn)定時(shí)寄存器定義總線(xiàn)上的位速率。輸出控制寄存器定義can總線(xiàn)輸出引腳tx0和tx1的輸出模式,定義tx0和tx1輸出引腳配置是懸空、下拉、上拉或推挽以及極性。中斷寄存器設置允許識別的中斷源。
4 結束語(yǔ)
多個(gè)智能儀表通過(guò)can接口與pc連成總線(xiàn)網(wǎng),其系統運行良好。這種基于現場(chǎng)總線(xiàn)的智能儀表系統抗干擾性強,性能可靠,無(wú)論是測量速度、精確度和自動(dòng)化程序還是性?xún)r(jià)比都是傳統儀表不能比擬的,是今后儀器儀表發(fā)展的方向。
評論