基于CAN總線的智能超聲液位變送器
0 引言
現(xiàn)場(chǎng)總線是用于現(xiàn)場(chǎng)儀表與控制系統(tǒng)和控制室之間的一種全分散、全數(shù)字化、智能、雙向、互連、多變量、多點(diǎn)、多站的通信網(wǎng)絡(luò)。CAN(Controller Area Network,控制器局域網(wǎng))是德國(guó)Bosch公司在80年代初為解決現(xiàn)代汽車(chē)中大量的控制與測(cè)試儀器之間的數(shù)據(jù)交換而提出的一種串行數(shù)據(jù)通信協(xié)議。 CAN總線是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,由于采用了許多新技術(shù)以及獨(dú)特的設(shè)計(jì),與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的性能,且可靠性、實(shí)時(shí)性和靈活性強(qiáng)。
近些年來(lái),隨著超聲技術(shù)研究的不斷深入,再加上其具有的高精度、無(wú)損、非接觸等優(yōu)點(diǎn),超聲的應(yīng)用變得越來(lái)越普及。超聲波液位測(cè)量有許多優(yōu)點(diǎn):檢測(cè)元件可以不與被測(cè)介質(zhì)接觸,可測(cè)范圍廣;可測(cè)量低溫介質(zhì)的液位;壽命長(zhǎng);能夠定點(diǎn)和連續(xù)測(cè)液位;安裝維護(hù)方便。超聲波測(cè)量已成功應(yīng)用于江河水位、化學(xué)和制藥工業(yè)、食品加工、罐裝液位等多種領(lǐng)域。
1 測(cè)量方法
超聲波脈沖回波法是液位測(cè)量中應(yīng)用較廣的一種方法,通過(guò)測(cè)量超聲波傳播時(shí)間來(lái)測(cè)量距離。超聲波脈沖回波檢測(cè)法的基本原理是:發(fā)射聲波換能器由脈沖信號(hào)激勵(lì)發(fā)出超聲波,通過(guò)傳聲媒介傳到被測(cè)液面,形成反射波;反射波再通過(guò)傳聲介質(zhì)返回到接收換能器,傳感器把聲信號(hào)轉(zhuǎn)換成電信號(hào),由儀表計(jì)算出超聲波從發(fā)射到接收所傳播的時(shí)間,再根據(jù)超聲波在介質(zhì)中傳播的速度,利用式(1)確定液位高度:
式中:H表示探頭與容器底部的距離;L表示超聲波傳輸距離的50%;v表示超聲波聲速;t表示超聲波傳播時(shí)間;h即所測(cè)液面實(shí)際高度。
系統(tǒng)采用軟件濾波方式判斷超聲波回波信號(hào)的起始點(diǎn),使用AD轉(zhuǎn)換器將回波信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)送到ARM處理器,利用ARM處理器較強(qiáng)的信號(hào)處理能力對(duì)回波信號(hào)進(jìn)行數(shù)字濾波、數(shù)值處理,確定超聲波傳播時(shí)間。
系統(tǒng)選用Philips公司的LPC2119芯片作為控制運(yùn)算處理器。LPC2119是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU,并帶有128 KB嵌入的高速FLASH存儲(chǔ)器,具有高性能、低功耗的特點(diǎn)。LPC2119芯片內(nèi)部集成2個(gè)CAN控制器,符合CAN規(guī)范CAN2.0B、 ISO11898-1,可訪問(wèn)32位寄存器和RAM,單個(gè)總線數(shù)據(jù)波特率可達(dá)1 Mb/s,全局驗(yàn)收過(guò)濾器可識(shí)別幾乎所有總線的11和29位Rx標(biāo)識(shí)符,驗(yàn)收過(guò)濾器為選擇的標(biāo)準(zhǔn)標(biāo)識(shí)符提供了FullCAN-style自動(dòng)接收。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 測(cè)量電路設(shè)計(jì)
測(cè)量電路的核心是超聲波發(fā)射及接收電路,設(shè)計(jì)為收發(fā)一體式,如圖1所示。使用 LPC2119芯片內(nèi)部定時(shí)器0產(chǎn)生40 kHz的激勵(lì)脈沖,輸至NMOS場(chǎng)效應(yīng)管Q1的柵極。當(dāng)控制端PO.22 OUT為低電平時(shí),NMOS場(chǎng)效應(yīng)管Q1截止,PMOS場(chǎng)效應(yīng)管Q2的Ugs接近零電壓,Q2截止而輸出低電平;PO.22 OUT為高電平時(shí),Q1導(dǎo)通,Q2的柵極電壓由電阻分壓而得,使Ugs小于其2 V左右的門(mén)限電壓而使Q2導(dǎo)通,輸出高電平。所以通過(guò)控制端,使發(fā)射電路產(chǎn)生正向高壓脈沖以激勵(lì)超聲波探頭。+50 V高電壓由AD公司生產(chǎn)的開(kāi)關(guān)型DC-DC變換器ADPllll提供。
在接收電路中使用二極管的鉗位作用防止高壓發(fā)射脈沖進(jìn)入接收電路。電路中的兩個(gè)肖特基二極管和限流電阻將輸入電壓限制在O.3 V以內(nèi),但對(duì)較小的回波信號(hào)不起作用,實(shí)現(xiàn)了超聲波發(fā)射、接收電路一體化。電路需要對(duì)微弱的回波信號(hào)進(jìn)行放大,使用OP27運(yùn)算放大器將回波信號(hào)放大 200倍。電容C20濾掉回波信號(hào)中的直流成分。
系統(tǒng)采用數(shù)字濾波、數(shù)值處理的方法找超聲波的回波起點(diǎn),因此需要將放大后的回波信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換。本系統(tǒng)采樣頻率定為1 MHz,模數(shù)轉(zhuǎn)換電路使用德州儀器公司的8位高速A/D轉(zhuǎn)換器ADS930。電路采用交流耦合連接方式。經(jīng)過(guò)A/D轉(zhuǎn)換后的回波信號(hào)送入運(yùn)算控制器進(jìn)行處理。
超聲波在空氣中的傳播速度會(huì)隨溫度的變化而變化,超聲波傳播速度c與環(huán)境溫度T的關(guān)系如式(2):
為了減少測(cè)量誤差,需要進(jìn)行溫度補(bǔ)償。系統(tǒng)采用DALLAS公司的一線式數(shù)字溫度傳感器 DSl8B20芯片進(jìn)行溫度補(bǔ)償。現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。使用DSl8B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O 線必須在轉(zhuǎn)換期間保證供電,系統(tǒng)采用外接電源方式給DSl8B20芯片供電。溫度補(bǔ)償采用查表法,首先建立溫度與聲速的二維關(guān)系表,處理器在讀出 DS18B20測(cè)得的溫度值后進(jìn)行查表,得到當(dāng)時(shí)聲速。由于表格中的溫度點(diǎn)有限并且是離散分布的,采用小區(qū)間插值法以提高精度。軟件編程嚴(yán)格遵循一線總線讀寫(xiě)時(shí)序。
2.2 CAN總線通信接口設(shè)計(jì)
CAN總線通信接口由CAN總線控制器和CAN總線收發(fā)器組成,CAN控制器作為CAN總線的數(shù)據(jù)鏈路層,CAN總線收發(fā)器作為CAN總線的物理層。LPC2119內(nèi)部集成的CAN控制器作為CAN總線控制器,它具有完成CAN通信協(xié)議的全部必要特性。PHILIPS公司的CAN總線收發(fā)器PCA82C250提供CAN總線控制器和物理傳輸線路之間的接口。電路如圖2所示。
系統(tǒng)選用TDl,RDl引腳CAN控制器。CAN總線收發(fā)器PCA82C250的RS引腳接一斜率電阻R35用于選擇PCA82C250的工作模式:高速、斜率控制和待機(jī)。R35短路接地可選擇高速工作方式;若RS引腳接高電平,則電路進(jìn)入低電平待機(jī)方式,發(fā)送器關(guān)閉,接收器轉(zhuǎn)入低電流,有利于降低系統(tǒng)功耗;在斜率控制下,電阻R35的大小可根據(jù)總線的通信速率適當(dāng)調(diào)整,一般在16~140 kΩ之間。
系統(tǒng)使用高速光耦6N137和DC-DC電壓隔離模塊B0505S組成的隔離電路加強(qiáng)了電路的抗干擾能力,確保CAN總線遭受?chē)?yán)重干擾時(shí)能夠正常運(yùn)行。PCA82C250的CANH和CANL引腳各自通過(guò)一個(gè)10 Ω的電阻與CAN總線相連,電阻起限流的作用,保護(hù)PCA82C250免受過(guò)流的沖擊。在CANH和CANL與地之間并聯(lián)2個(gè)30 pF的小電容,可以濾除總線上的高頻干擾并且具有一定的防電磁干擾的能力。在兩根CAN總線接入端之間并入瞬態(tài)電壓抑制二極管(TVS管),當(dāng)CAN總線串入干擾電壓時(shí)可通過(guò)TVS管的短路起到一定的過(guò)壓保護(hù)作用。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括測(cè)量程序和通信程序兩部分。其中,測(cè)量程序的關(guān)鍵是對(duì)超聲波回波信號(hào)的處理;通信程序的關(guān)鍵是CAN總線控制器的初始化,數(shù)據(jù)的發(fā)送和接收。
3.1 回波信號(hào)處理程序的設(shè)計(jì)
系統(tǒng)采用數(shù)字濾波方式對(duì)回波信號(hào)進(jìn)行處理,選用IIR帶通濾波器進(jìn)行數(shù)字濾波,然后進(jìn)行數(shù)值處理,識(shí)別接收波形的起始點(diǎn)。系統(tǒng)設(shè)計(jì)通帶頻率范圍為[35 kHz,45 kHz],通帶波紋最大衰減為O.01 dB,阻帶波紋最小衰減為60 dB,采樣頻率為1 MHz??捎酶咄暗屯ǜ鳛?階的帶通橢圓型濾波器來(lái)實(shí)現(xiàn)。系數(shù)為:b=(O.001 O,-O.007 6,0.024 8,-0.047 4,O.058 4,-O.047 4,O.024 8,-0.007 6,0.001 O),a=(1.000 O,-7.579 2,25.370 1,-48.974 1,59.623 8,-46.877 5,23.244 5,-6.647 O,O.839 5)。此濾波器極點(diǎn)均在單位圓內(nèi),濾波器是穩(wěn)定的。圖3是IIR數(shù)字濾波器的幅度與相位特性曲線圖。[!--empirenews.page--]
3.2 通信程序的設(shè)計(jì)
通信程序的設(shè)計(jì)主要包括三部分:CAN控制器的初始化,CAN總線數(shù)據(jù)發(fā)送,CAN總線數(shù)據(jù)接收。通過(guò)編寫(xiě)LPC2119芯片內(nèi)部CAN控制器寄存器來(lái)實(shí)現(xiàn)軟件通信功能。
CAN總線控制器只需要進(jìn)行少量的配置就可以進(jìn)行通信,其基本初始化流程如圖4所示。其中,硬件使能和配置引腳連接、軟件復(fù)位、設(shè)定通信波特率、配置驗(yàn)收過(guò)濾器、退出復(fù)位模式是必須的初始化部分。
CAN控制器初始化程序如下:
CAN控制器初始化后,可以進(jìn)行數(shù)據(jù)發(fā)送或接收。LPC2119內(nèi)部每個(gè)CAN控制器配有3個(gè)獨(dú)立的發(fā)送緩沖寄存器,在發(fā)送時(shí)根據(jù)情況選擇3個(gè)緩沖之一,把數(shù)據(jù)寫(xiě)入緩沖區(qū),啟動(dòng)發(fā)送。若選擇第一緩沖,程序如下:
CAN控制器根據(jù)CAN2.0B規(guī)范來(lái)對(duì)發(fā)送和接收錯(cuò)誤進(jìn)行計(jì)數(shù)、處理。
4 結(jié)語(yǔ)
基于CAN總線智能超聲液位變送器選用高性能、低功耗的ARM處理器芯片LPC2119;利用LPC2119芯片內(nèi)部的CAN控制器和CAN總線收發(fā)器PC-A82C250構(gòu)建性能優(yōu)異的 CAN總線通信接口,信號(hào)傳輸可靠、實(shí)時(shí)、靈活;由一線式數(shù)字溫度傳感器DSl8B20芯片完成溫度補(bǔ)償功能。先進(jìn)的處理器加強(qiáng)了液位計(jì)的回波處理能力,采用數(shù)字濾波,提高了液位的測(cè)量精度。