基于CAN總線的數(shù)字式傳感器群管理系統(tǒng)
CAN控制器與物理總線之間的接口由CAN總線收發(fā)器82C250完成,它最初是為汽車高速通信的應(yīng)用而設(shè)計的,該器件提供對總線的差動發(fā)送和接收的功能,它可以增強(qiáng)總線的驅(qū)動能力,同時起到保護(hù)總線的作用。
由于作為下位機(jī)的節(jié)點比較多,單片機(jī)的選擇主要從成本考慮,如果選擇帶CAN和I2C總線(數(shù)字式傳感器需要用I2C總線驅(qū)動)接口功能的高級單片機(jī),則系統(tǒng)成本太高,故選擇AT89C51單片機(jī),它片內(nèi)含有4 K字節(jié)閃電存儲器,數(shù)據(jù)可保存10年,且編程速度快(全4 K字節(jié)編程只要3 s),還可以實現(xiàn)在線編程,也可以借助電話線進(jìn)行遠(yuǎn)距離編程。雖然AT89C51沒有I2C總線接口功能,但在系統(tǒng)中,AT89C51和數(shù)字式傳感器是屬于單主機(jī)結(jié)構(gòu),在單主機(jī)結(jié)構(gòu)中I2C總線數(shù)據(jù)傳送狀態(tài)非常簡單,沒有總線競爭與同步,只有單片機(jī)對I2C總線器件的讀寫操作,這就使通過I/O口用軟件來模擬I2C總線成為了可能。
5 系統(tǒng)軟件設(shè)計
上位機(jī)軟件采用基于Windows2000平臺的VC6.0編寫,具有系統(tǒng)參數(shù)設(shè)置、監(jiān)控狀態(tài)設(shè)置、數(shù)據(jù)發(fā)送和接收、本機(jī)狀態(tài)查詢、節(jié)點狀態(tài)查詢、中斷接收數(shù)據(jù)管理等功能。上位機(jī)首先對CAN總線適配卡及其自身初始化,然后發(fā)送命令通知特定的節(jié)點向CAN總線上發(fā)送數(shù)據(jù),通過CAN總線適配卡轉(zhuǎn)換后,再由上位機(jī)處理。上位機(jī)采用定時輪循方式向各個節(jié)點發(fā)命令,采用中斷方式接收數(shù)據(jù)。
下位機(jī)部分采用匯編語言,主程序流程如圖3所示。程序首先初始化AT89C51和CAN控制器,然 后通過用I/O口軟件模擬I2C總線,初始化各個傳感器,設(shè)置它們的地址代碼(器件標(biāo)識)、報警上下限、傳感器狀態(tài)等參數(shù),接著程序進(jìn)入等待上位機(jī)命令,同時也在監(jiān)聽I2C總線,以中斷的方式響應(yīng)I2C總線上的請求,對特定傳感器進(jìn)行讀寫、啟動轉(zhuǎn)換、設(shè)置報警閾值等操作,接收各個傳感器發(fā)送的數(shù)據(jù)并進(jìn)行處理,解決總線沖突,進(jìn)行總線仲裁。
在下位機(jī)軟件設(shè)計中,用普通I/O線模擬I2C總線數(shù)據(jù)傳送時,必須遵守I2C總線的時序,否則將造成混亂導(dǎo)致系統(tǒng)工作不正常。
6 結(jié)束語
系統(tǒng)采用分層管理的方法實現(xiàn)了對多數(shù)字式傳感器的集中管理,在控制現(xiàn)場底層,由于采用了數(shù)字化傳感器并且掛接在I2C總線上,傳感器數(shù)目變化后,系統(tǒng)軟件只要稍加改動就能適應(yīng),所以添加和更換傳感器非常方便。同時在上層管理中,系統(tǒng)使用CAN總線技術(shù),它以其獨特的設(shè)計思想、優(yōu)良的性能和極高的可靠性提高了系統(tǒng)內(nèi)部的通信速率、實時性,降低了誤碼傳送率。上位機(jī)使用PC,以圖形的方式方便直觀的對各個節(jié)點進(jìn)行監(jiān)控,保證了系統(tǒng)的可靠運(yùn)行。該系統(tǒng)已經(jīng)在汽車行駛發(fā)電恒速驅(qū)動檢測系統(tǒng)中投入運(yùn)行,實際應(yīng)用證明該系統(tǒng)具有控制效果好、可靠性高、控制靈活等優(yōu)點。
[2]劉 輝,姚勝興,宋樹祥.CAN總線在智能建筑溫濕度自控系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2001(11).
[3]陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,1999.
[4]林繼建,吳明光.PC機(jī)和單片機(jī)串行通信程序設(shè)計[J].計算機(jī)應(yīng)用研究,2001(5).
[5]王廣志,吳 穎,黃志光.?dāng)?shù)字式溫度傳感器與分布式溫度測量系統(tǒng)[J].傳感技術(shù)學(xué)報,2001(3).
[6]王朝陽,管保安,劉滌塵,等.基于CAN總線的變電站綜合操作系統(tǒng)[J].現(xiàn)代電子技術(shù),2001(12).
評論