|
新聞詳情
基于MSP430F449低功耗單片機(jī)的智能金屬浮子流量變送器上海自儀公司介紹的智能金屬浮子流量變送器是以MSP430F449單片機(jī)為核心,實(shí)現(xiàn)瞬時(shí)流量、累積流量的測(cè)量和顯示,輸出構(gòu)成兩線制的4~20mA變送器,用于信號(hào)的遠(yuǎn)傳。 1 測(cè)量原理 金屬浮子流量計(jì)的流量檢測(cè)元件是由一根自下向上擴(kuò)大的垂直錐形管和一個(gè)沿著錐管軸上下移動(dòng)的浮子組所組成。被測(cè)流體從下向上經(jīng)過錐管和浮子形成的環(huán)隙時(shí),浮子上下端產(chǎn)生差壓形成浮子上升的力,當(dāng)浮子所受上升力大于浸在流體中浮子重量時(shí),浮子便上升,環(huán)隙面積隨之增大,環(huán)隙處流體流速立即下降,浮子上下端差壓降低,作用于浮子的上升力亦隨著減少,直到上升力等于浸在流體中浮子重量時(shí),浮子便穩(wěn)定在某一高度。環(huán)隙面積與浮子的上升高度成比例,即浮子的某一高度代表流量的大小。浮子上下移動(dòng)時(shí),以磁耦合的形式將位置傳遞到外部指示器,使指示器的指針跟隨浮子移動(dòng),并借助凸輪板使指針線性地指示流量值的大小。電傳型流量計(jì)是現(xiàn)場(chǎng)用指針指示,同時(shí)通過角位移傳感器及變送電路,把流量信號(hào)轉(zhuǎn)換為4~20mA的信號(hào)。變送電路以MSP430F449為核心,實(shí)現(xiàn)非線性修正功能把流量值準(zhǔn)確地轉(zhuǎn)換成4~20mA的標(biāo)準(zhǔn)信號(hào)。 2 MSP430F449芯片 MSP430F449是美國TI公司16位低功耗單片機(jī),在2.2V電壓,1MHz時(shí)鐘的系統(tǒng)下,活動(dòng)模式功耗為280μA,等待模式功耗僅為1.6μA。具有64KB的尋址范圍,片內(nèi)資源豐富,有精密硬件乘法器、兩個(gè)16位定時(shí)器、一個(gè)8路的具有內(nèi)部參考電平、采樣保持和自動(dòng)掃描特性的12位的A/D模數(shù)轉(zhuǎn)換器、看門狗電路、48條I/O口線(一部分復(fù)用)、兩路串行通信端口(USART)、一個(gè)內(nèi)部振蕩器(DCO)和兩個(gè)外部時(shí)鐘(支持非常高8M時(shí)鐘)。片內(nèi)帶有LCD驅(qū)動(dòng)功能,可直接驅(qū)動(dòng)LCD顯示,驅(qū)動(dòng)段數(shù)可達(dá)160段,液顯有4種工作方式(靜態(tài)、2MUX、3MUX、4MUX)。由于為FLASH型芯片,可以在線對(duì)單片機(jī)進(jìn)行調(diào)試和下載程序,利用JTAG口直接和目標(biāo)板相連,不需要另外的仿真工具,方便實(shí)用。并且可以保存在掉電時(shí)仍需存儲(chǔ)的數(shù)據(jù)信息,減少了E2PROM帶來的額外電流消耗。 3 硬件電路 3.1 通信接口 通過金屬浮子流量計(jì)的流量與磁阻傳感器輸出電壓之間不是線性關(guān)系,需要通過PC機(jī)輸入一組標(biāo)定值給單片機(jī)。因?yàn)榻饘俑∽恿髁坑?jì)通常以水為介質(zhì)標(biāo)定,如實(shí)際流體密度、粘度與之不同,流量值也隨之發(fā)生變化,因此需要進(jìn)行流量修正。采用單片機(jī)的RS-232通信接口與計(jì)算機(jī)通信,把標(biāo)定值傳送到MSP430F449芯片的FLASH中的信息段內(nèi),供實(shí)際流量修正。 3.2 信號(hào)檢測(cè)部件 信號(hào)檢測(cè)采用Honeywell公司的高分辨率、低功耗的磁阻傳感器,測(cè)量從磁鐵發(fā)出的磁場(chǎng)的方向角,分辨率可小于0.07。與測(cè)量磁場(chǎng)強(qiáng)度相比,測(cè)量磁場(chǎng)方向的優(yōu)點(diǎn)包括:對(duì)于磁鐵的溫度系數(shù)不敏感,對(duì)于沖擊和振動(dòng)不敏感,以及可以承受傳感器和磁鐵之間間隙的較大的變化。采用典型的惠斯通電橋,計(jì)算公式為:V = VSSsin(2θ)式中,VS是供電電壓;S是常數(shù),取決于材質(zhì),典型值12mV/V,角度范圍是±45゜。當(dāng)流量發(fā)生變化時(shí),金屬浮子上下移動(dòng),以磁耦合的形式將浮子位置變化信息傳遞到外部指示器,指示器指針跟隨浮子移動(dòng),借助凸輪板使指針線性地指示流量值的大小。信號(hào)檢測(cè)時(shí)通過θ角度的變化,引起傳感器輸出電壓的變化。由于輸出電壓的量值只有毫伏級(jí),因此需外加放大電路,將信號(hào)值變換為MSP430單片機(jī)允許的A/D輸入幅值范圍0~3.6V內(nèi)。 3.3 A/D轉(zhuǎn)換電路 由于MSP430F449芯片集成了12位A/D轉(zhuǎn)換,其中8路是外部的信號(hào)轉(zhuǎn)換,每一路轉(zhuǎn)換都有一個(gè)可控制的轉(zhuǎn)換存儲(chǔ)器,而且參考電平和時(shí)鐘源都是可選擇的,也可外部提供。這給使用上帶來了很大的靈活性。使用時(shí)只需將信號(hào)檢測(cè)部分的輸出電壓(如圖2信號(hào)SIGNAL)直接與A/D轉(zhuǎn)換的輸入端MSP430的P6.0口相連,由于浮子流量計(jì)是測(cè)量精度要求不高的儀表,在本設(shè)計(jì)中采用AVCC(電源電壓)作為正參考電壓,采用AVSS(電源地)作為負(fù)的參考 電壓。輸出數(shù)字量NADC的計(jì)算公式為:NADC = 4095×(VIN - AVSS)/(AVCC + AVSS)由于MSP430F449是采用加載信號(hào)到電容上充電的采樣,因此,必須要給一定的采樣時(shí)間以能達(dá)到一定的精度,否則會(huì)出現(xiàn)時(shí)間的溢出。另外在采樣的結(jié)束和轉(zhuǎn)換的開始需要一個(gè)控制過程,就是將ADC12CTL0寄存器的ENC位和ADC12SC位同時(shí)置“1”,用于表明采樣結(jié)束和轉(zhuǎn)換開始。 3.4 數(shù)值輸出電路 經(jīng)過單片機(jī)處理后的瞬時(shí)流量值需要輸出給外部D/A器件DAC7512。有兩種方法可以用來傳送數(shù)值,可以采用數(shù)字I/O口傳送,直接將數(shù)據(jù)移位送出,也可以利用MSP430F449提供的USART端口,MSP430F449具有兩個(gè)USART端口。在軟件中將其中一個(gè)端口設(shè)置為SPI模式。SPI模式允許7位或8位數(shù)據(jù)流以內(nèi)部或外部確定的速率移入移出MSP430,SPI的優(yōu)點(diǎn)是可以靈活地利用單片機(jī)的現(xiàn)有資源,擴(kuò)充單片機(jī)的對(duì)外功能,但是這種方式同時(shí)也占用MCU的定時(shí)器和I/O口資源。由于DAC7512為12bit串行輸入D/A轉(zhuǎn)換器件,而用SPI模式一次只能發(fā)送8位數(shù)據(jù),因此采用查詢發(fā)送標(biāo)志位(U1IFG)方法發(fā)送數(shù)據(jù)。單片機(jī)與外部D/A器件DAC7512相連時(shí),除了連接數(shù)據(jù)線和時(shí)鐘線外,還必須為其提供同步信號(hào)(SYNC),設(shè)計(jì)中使得P4.4端口輸出同步信號(hào)。在發(fā)送數(shù)據(jù)前將此信號(hào)拉高作為發(fā)送起始信號(hào),發(fā)送數(shù)據(jù)時(shí)將此信號(hào)拉低,要使數(shù)據(jù)準(zhǔn)確發(fā)送給DAC7512,必須在傳送數(shù)據(jù)期間使得此信號(hào)維持低電平,發(fā)送結(jié)束后再將其置高等待下一次的數(shù)據(jù)發(fā)送。調(diào)試時(shí)通過示波器觀察和調(diào)整SYNC同步信號(hào)。 3.5 液晶顯示電路 芯片內(nèi)的LCD驅(qū)動(dòng)器,可以直接驅(qū)動(dòng)160段LCD顯示。對(duì)于液晶驅(qū)動(dòng)端口,在不用于液晶驅(qū)動(dòng)時(shí),可以作為輸入輸出端口來用。設(shè)計(jì)中選用了七位LCD顯示器,采用4MUX驅(qū)動(dòng)方式,將單片機(jī)上的公共端口(COM0-COM3)及驅(qū)動(dòng)段(S0-S15)直接與LCD上的對(duì)應(yīng)腳相連即可,簡(jiǎn)化了液晶顯示器的顯示。液晶顯示電路如圖4所示。設(shè)計(jì)中只要求顯示累積流量,顯示非常大值為999999.9。 3.6 信號(hào)輸出電路 單片機(jī)對(duì)輸入信號(hào)進(jìn)行線性化修正后得到了瞬時(shí)流量的數(shù)字量,為了對(duì)瞬時(shí)流量值實(shí)現(xiàn)4~20mA的遠(yuǎn)傳,需要對(duì)信號(hào)進(jìn)行D/A轉(zhuǎn)換。本設(shè)計(jì)中采用DAC7512實(shí)現(xiàn)D/A轉(zhuǎn)換,DAC7512為12bit串行輸入的D/A轉(zhuǎn)換器,輸出模擬量的大小為0~5V。然后經(jīng)由集成V/I器件,得到4~20mA的電流信號(hào),供遠(yuǎn)程儀表顯示。 4 軟件設(shè)計(jì) 軟件采用結(jié)構(gòu)化程序設(shè)計(jì),主要由主程序、定時(shí)中斷采樣程序、通信中斷程序等幾部分組成。主程序是由初始化程序段、顯示程序段、數(shù)據(jù)處理程序段、數(shù)字量輸出程序段組成。 (1)通信中斷程序?qū)崿F(xiàn)將計(jì)算機(jī)內(nèi)設(shè)定好的標(biāo)定值寫入FLASH中,寫入的標(biāo)定值為浮點(diǎn)數(shù)格式,浮點(diǎn)數(shù)在C語言中是以IEEE格式存儲(chǔ)的,一個(gè)浮點(diǎn)數(shù)占用4個(gè)字節(jié),在上位機(jī)發(fā)送數(shù)據(jù)的VB程序中需將浮點(diǎn)數(shù)轉(zhuǎn)化為字節(jié)格式發(fā)送出去。要將一個(gè)浮點(diǎn)數(shù)存人FLASH,實(shí)際上就是要存這4個(gè)數(shù)。浮點(diǎn)數(shù)在存儲(chǔ)時(shí),是連續(xù)字節(jié)存儲(chǔ)的,只要設(shè)法找到存儲(chǔ)位置,就可以得到這些數(shù)了??梢远x一個(gè)void的指針,將此指針指向需要存儲(chǔ)的浮點(diǎn)數(shù),然后將此指針強(qiáng)制轉(zhuǎn)化為char型。存入FLASH中的數(shù),要將其取出合并恢復(fù)成浮點(diǎn)數(shù),方法也是一樣。非常后將這些接收到的浮點(diǎn)數(shù)賦給自定義的數(shù)組變量BD_VALUE[]。在整個(gè)對(duì)FLASH進(jìn)行操作期間,必須要關(guān)掉看門狗定時(shí)器和所有中斷。 (2)A/D轉(zhuǎn)換程序中采用內(nèi)部定時(shí)器(TimerB)設(shè)置1秒定時(shí)中斷將轉(zhuǎn)換結(jié)果保存在ADC12的內(nèi)部存儲(chǔ)器中。 (3)軟件的核心部分是對(duì)信號(hào)檢測(cè)電路送入單片機(jī)的電壓值進(jìn)行非線性化修正。先由給出的一組體積數(shù)VOL[]得到一組默認(rèn)電壓值MR_VALUE[],計(jì)算方法為:MR_VALUE[i]=VOL[i]/VOLmax×10。首先判斷信號(hào)檢測(cè)電路送來的電壓值V處于標(biāo)定電壓值(BD_VALUE[])的哪一段范圍內(nèi),然后進(jìn)行分段的線性化處理。 5 結(jié)論 金屬浮子流量計(jì)變送器以TI公司的MSP430F449芯片為核心,設(shè)計(jì)簡(jiǎn)單可靠,外圍器件少,功耗特別低。將此變送器應(yīng)用在浮子流量計(jì)中,經(jīng)過試驗(yàn)?zāi)苓_(dá)到以下技術(shù)指標(biāo): (1)量程比:10:1; (2)精確度等級(jí):普通型2.5級(jí),高精度型1.5級(jí); (3)指示器刻度:流量單位或百分比; (4)11段非線性高精度修正; (5)環(huán)境溫度:-25~+55℃; (6)電遠(yuǎn)傳信號(hào)4~20mA輸出; (7)累計(jì)流量顯示。 由此可見,上海自儀公司設(shè)計(jì)的金屬浮子流量計(jì)變送器具有良好的實(shí)際生產(chǎn)和使用價(jià)值,并將在以后的工業(yè)生產(chǎn)中加以推廣使用。 |