基于CAN總線模塊的網(wǎng)絡(luò)測控系統(tǒng)的實現(xiàn)
本文引用地址:http://butianyuan.cn/article/163528.htm
C8051F060器件具有控制局域網(wǎng)(CAN)控制器,用 CAN協(xié)議進(jìn)行串行通信。Silicon Labs CAN控制器符合 Bosch規(guī)范 2.0A(基本 CAN)和 2.0B(全功能 CAN)。CAN控制器包含一個 CAN核、消息 RAM、消息處理狀態(tài)機和控制寄存器。C8051F060內(nèi)部的 CAN只是一個協(xié)議控制器,不提供物理層驅(qū)動器。它的工作位速率可以達(dá) 1M位/秒,實際速率可能受 CAN總線上所選擇傳輸數(shù)據(jù)的物理層的限制。CAN處理器有 32個消息對象,可以被配置為發(fā)送或接受數(shù)據(jù)。輸入數(shù)據(jù)、消息對象及其標(biāo)識掩碼存儲器在 CAN消息 RAM中。所有數(shù)據(jù)發(fā)送和接收過濾的協(xié)議處理全部由 CAN控制器配置 CAN控制器,讀取接收到的數(shù)據(jù)和寫入待發(fā)送的數(shù)據(jù)。CAN控制器的時鐘等于 CIP-51 MCU的時鐘(SYSCLK)。由于考慮到系統(tǒng)在不同場合的適用性,采用了兩路 CAN驅(qū)動器。一路采用 TI公司生產(chǎn)的 SN65HVD230,工作電壓 3.3V,適應(yīng)惡劣工作環(huán)境的 CAN總線收發(fā)器,其最大傳輸能力可達(dá) 1Mbps。具有失地保護(hù)、過壓保護(hù)、過熱保護(hù)等功能。第 8腳的不同設(shè)置可以使芯片工作于高速、斜坡控制和低功耗 3種工作模式。本測控卡中,第 8腳接地使芯片工作于高速模式。并聯(lián)在總線上的 30pF的電容 C24, C25可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。
另一路采用的是 82C250CAN收發(fā)器,芯片 82C250是 CAN控制器與物理總線之間的接口,它最初是為汽車中的高速應(yīng)用(達(dá) 1 Mbps)而設(shè)計的。器件可以提供對總線的差動發(fā)送和接收功能。
82C250采用雙向差分驅(qū)動,有助于抑制汽車等惡劣電氣環(huán)境下的瞬變干擾。利用 82C250還可方便地在 CAN控制器與驅(qū)動器之間建立電氣隔離,以實現(xiàn)總線上各節(jié)點間的電氣隔離。本系統(tǒng)中 82C250的通信電路如圖 4。
3 軟件實現(xiàn)
本節(jié)中將對系統(tǒng)軟件進(jìn)行詳細(xì)闡述。由于被測控的幾個量都是緩慢變化的,對測控系統(tǒng)的實時性要求不高。單片機大部分時間在進(jìn)行參數(shù)測量,每次測量結(jié)束后使用查詢方式將測量結(jié)果保存到數(shù)據(jù)緩沖池中。由于單片機的 RAM容量有限(C8051F060具有 4K的 RAM ),筆者使用了數(shù)據(jù)緩沖池,以保存一定數(shù)量的測量結(jié)果。緩沖池使用先進(jìn)先出策略,在保存時先判斷緩沖池是否填滿,沒滿時緩沖指針加 1,數(shù)據(jù)保存進(jìn)下一個單元,填滿時使指針指向緩沖池的頂部,數(shù)據(jù)保存進(jìn)緩沖池,以前的數(shù)據(jù)丟掉。本系統(tǒng)的設(shè)計重點是 CAN通信,因此,在 CAN通信時采用了中斷方式。整個測控系統(tǒng)部分的軟件流程圖如圖 5。
本文作者創(chuàng)新點:本文詳細(xì)介紹了基于 CAN總線模塊的網(wǎng)絡(luò)測控系統(tǒng)的實現(xiàn)方法。該測控系統(tǒng)是采用 C8051F060作為微控制器,充分利用了該單片機豐富的片上資源,如 CAN控制器、AD轉(zhuǎn)換器、DA轉(zhuǎn)換器等,最后介紹了軟件的編程思想。
評論