王 洋
(營口世紀(jì)電子儀器有限公司 研究所,遼寧 營口 115003)
壓力傳感器是工業(yè)現(xiàn)場最為常用的一種傳感器,例如汽車中多路壓力測量,目前,市場上大多數(shù)的壓力傳感器以模擬量輸出為主,幾乎全部采用數(shù)字化處理,用戶需要先將模擬量轉(zhuǎn)換成數(shù)字量。隨著自動化程度越來越高,傳感器往往與控制器越來越遠(yuǎn),特別是模擬信號的傳輸過程中也會引入干擾和損失。
因此,本文將介紹一種基于CAN 總線壓力傳感器的設(shè)計,采用AduC812 為控制核心,進(jìn)行CAN 接口設(shè)計。
基于CAN 總線的高精度數(shù)壓力傳感器的原理框圖如圖1 所示。該壓力傳感系統(tǒng)器主要包括壓力信號A/D 轉(zhuǎn)換部分、主控單元部分、CAN 總線傳輸部分。
主控芯片采用AduC812 單片機,引出的地址數(shù)據(jù)總線與CAN 控制器SJA1000 相連,經(jīng)過光電隔離,將地址/數(shù)據(jù)發(fā)送到CAN 收發(fā)器PCA82C250,通過CAN 收發(fā)器PCA82C250 使數(shù)據(jù)在CAN 總線上傳輸。電源轉(zhuǎn)換電路將電源和地隔離,起保護(hù)和抗干擾的作用。
AduC812 的P0 口作為地址數(shù)據(jù)總線,與SJA1000 相連。通過P0口訪問SJA1000 內(nèi)部寄存器,并進(jìn)行寄存器的讀寫操,經(jīng)過光電隔離,電源轉(zhuǎn)換電路將電源和地隔離,起保護(hù)和抗干擾的作用將地址/數(shù)據(jù)發(fā)送到CAN 收發(fā)器PCA82C250,通過CAN 收發(fā)器PCA82C250 使數(shù)據(jù)在CAN 總線上傳輸,AduC812 和SJA1000 的復(fù)位信號是通過復(fù)位按鈕S3 產(chǎn)生的。
AD 轉(zhuǎn)換電路:
單片機自帶有8 路模擬通道ADC 轉(zhuǎn)換為12 位精度。選擇AD0為模擬通道將A/D 轉(zhuǎn)換數(shù)據(jù)通過CAN 總線上傳到上位機。
軟件設(shè)計的指導(dǎo)思想是系統(tǒng)上電后首先對ADuc812 和SJA1000進(jìn)行初始化,以確定工作主頻、波特率、輸出特性等,然后通過模數(shù)轉(zhuǎn)換采樣值,并把該值通過SJA1000 傳送到CAN 總線上由上位PC 機進(jìn)行顯示控制,而對CAN 總線上來的信息則采用中斷方式,系統(tǒng)每接收到一幀信息,便產(chǎn)生一次中斷以觸發(fā)微處理器進(jìn)入中斷,在中斷服務(wù)程序中讀取該幀信息并傳送到現(xiàn)場。為防止出現(xiàn)死機和干擾,程序中還采用看門狗技術(shù)進(jìn)行定時監(jiān)控。以下CAN 總線的初始化設(shè)計,假設(shè)SJA1000 的首址是0x7f00。
初始化程序
對CAN 控制器進(jìn)行初始化,實際上就是對ACR、AMR、BTR0、BTR1、OCR 這些寄存器進(jìn)行訪問。只有當(dāng)控制寄存器CR 中的復(fù)位請求位為高時,訪問才被允許,否則既寫不進(jìn)去,也讀不出正確的內(nèi)容。對CR 進(jìn)行第一次寫操作,要設(shè)定將要開放的中斷類型,并置位復(fù)位請求,允許初始化開始。
本文設(shè)計的基于CAN 總線壓力傳感器系統(tǒng)具有精度高、可靠性高、智能化、成本低等特點并具有在線標(biāo)定校準(zhǔn)和CAN 通訊功能,可用于不同的工業(yè)場合。
[1]鄔寬明.CAN 總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2000 .