張希元 蘇蓓蓓 闞永恒
[摘要]本文介紹了具有兩種不同模擬量值輸出的角度傳感器。傳感器芯片檢測(cè)到角度值后,由單片機(jī)轉(zhuǎn)化為數(shù)字量,再經(jīng)過DA轉(zhuǎn)化,輸出模擬量。通過設(shè)置,可實(shí)現(xiàn)0~5V電壓輸出或者4~20mA電流輸出。
[關(guān)鍵詞]角度傳感器;單片機(jī);模擬量
1前言
角度傳感器廣泛應(yīng)用于工程與農(nóng)用機(jī)械、儀器儀表、土木工程、船舶、航空航天、工業(yè)自動(dòng)化、衛(wèi)星天線定位、平臺(tái)運(yùn)轉(zhuǎn)監(jiān)控、地質(zhì)勘探、四輪定位系統(tǒng)等領(lǐng)域。其輸出通常分為數(shù)字量輸出和模擬量輸出,數(shù)字量方式通過232、485、TTL等方式以BCD碼輸出,模擬量輸出電流或者電壓值,根據(jù)行業(yè)標(biāo)準(zhǔn),默認(rèn)電壓方式是-90度對(duì)應(yīng)0V,+90度對(duì)應(yīng)5V,中間狀態(tài)角度與電壓呈線性關(guān)系;默認(rèn)電流方式是-90度對(duì)應(yīng)4mA,90度對(duì)應(yīng)20mA,中間狀態(tài)角度與電流呈線性關(guān)系,如圖1所示。
常見的模擬量輸出角度傳感器是分立式設(shè)計(jì),即分為電壓輸出式和電流輸出式兩種,生產(chǎn)制造和用戶使用都不方便,本項(xiàng)目設(shè)計(jì)一款電壓和電流輸出一體的角度傳感器,可通過軟件設(shè)置為0~5V電壓輸出或者4~20mA電流輸出。
2設(shè)計(jì)思路
本設(shè)計(jì)主要包括傳感器芯片模塊、單片機(jī)控制模塊、通信模塊和模擬量輸出模塊。傳感器芯片模塊用于檢測(cè)角度值,在單片機(jī)的控制下轉(zhuǎn)化為數(shù)字量,再通過模擬量輸出模塊輸出0~5V電壓或者4-20mA電流值。通信模塊主要有三個(gè)作用,一是給單片機(jī)下載程序,二是可同時(shí)輸出數(shù)字量,三是可通過電腦軟件設(shè)置輸出模式,通過電腦軟件向單片機(jī)發(fā)送不同指令后,單片機(jī)選擇工作在電壓輸出模式或電流輸出模式。
3主要硬件電路設(shè)計(jì)
主控芯片選擇STM32F103C8T6單片機(jī),主要是考慮到三個(gè)方面,一是該芯片綜合性能優(yōu)越,二是該芯片的超低功耗特性,三是該芯片價(jià)格優(yōu)惠,在產(chǎn)品量產(chǎn)后,便于控制生產(chǎn)成本。
傳感器芯片采用ADXL345芯片,它可以測(cè)量與重力方向夾角,從而確定物體偏轉(zhuǎn)的角度。不同角度下,傳感器芯片引腳輸出不同的電壓值,單片機(jī)引腳將這些電壓值采集后轉(zhuǎn)化為數(shù)字值,即可得傳感器當(dāng)前的角度情況。
本設(shè)計(jì)的核心部分是模擬量輸出模塊,主要通過AD5412芯片實(shí)現(xiàn),該芯片是低成本、精密、完全集成、12/16-bit數(shù)模轉(zhuǎn)換器(DAC),內(nèi)置可編程電流源和可編程電壓輸出,設(shè)計(jì)用于滿足工業(yè)過程控制應(yīng)用的需要。輸出電流范圍可編程設(shè)置為4-20 mA、0-20 mA或者超量程的0-24mA。電壓輸出由一個(gè)獨(dú)立引腳提供,該引腳可配置成0~5V、0~10 V、±5 V或±10 V輸出;所有范圍均提供10%的超量程。在電流模式和電壓模式下,總輸出誤差典型值均為+0.01%。其性能與本設(shè)計(jì)要求完全匹配,且其性能優(yōu)越,是本設(shè)計(jì)的最佳選擇。其電路如圖2所示(以x軸方向?yàn)槔?/p>
與單片機(jī)相連的一共有6個(gè)引腳,CLESEL引腳為選擇電壓輸出清零值,零電平或中間電平。CLEAR為高電平有效輸入。置位此引腳可將電流輸出設(shè)置為選定范圍的最低值或?qū)㈦妷狠敵鲈O(shè)置為用戶選定值(零電平或中間電平)。LATCH上升沿將輸入移位寄存器數(shù)據(jù)并行載人到DAC寄存器,同時(shí)更新輸出。SCK為串行時(shí)鐘輸入。數(shù)據(jù)在SCLK的上升沿輸入移位寄存器。MOSI為串行數(shù)據(jù)輸入。數(shù)據(jù)在SCLK的上升沿有效。MISO為串行數(shù)據(jù)輸出。用于在菊花鏈模式或回讀模式下從串行寄存器逐個(gè)輸出數(shù)據(jù)。數(shù)據(jù)在SCLK的上升沿時(shí)有效。
電壓輸出引腳為21引腳Vout,輸出電壓值,電流輸出引腳為19引腳Iout,輸出電流值,采用共地模式輸出。
4軟件設(shè)計(jì)
在軟件設(shè)計(jì)中,采用模塊化編程,主要包括了以下部分,如圖3所示。
傳感器芯片上電后,根據(jù)角度變化,會(huì)產(chǎn)生一定范圍的電壓信號(hào),MCU將此電壓信號(hào)采集后,設(shè)計(jì)AD轉(zhuǎn)換程序,轉(zhuǎn)化為數(shù)字信號(hào),該數(shù)字信號(hào)既實(shí)現(xiàn)與計(jì)算機(jī)上位機(jī)之間通信,又是模擬量輸出的源頭。計(jì)算機(jī)上位機(jī)軟件接收到的是MCU處理后的數(shù)字信號(hào),該數(shù)字信號(hào)是BCD碼形式的十六進(jìn)制數(shù),直接提取有效數(shù)據(jù)顯示即可。同時(shí),在配套的上位機(jī)軟件中,可以通過指令設(shè)置,實(shí)現(xiàn)是電流輸出,還是電壓輸出的選擇。
本設(shè)計(jì)中程序設(shè)計(jì)的關(guān)鍵內(nèi)容是模擬量輸出部分的程序,首先,設(shè)計(jì)條件編譯模塊,當(dāng)MCU接收到不同指令時(shí),MCU決定是電流輸出,還是電壓輸出。其次,對(duì)AD5412編程,通過DA轉(zhuǎn)化,實(shí)現(xiàn)將反應(yīng)角度的數(shù)字信號(hào),與模擬量的電壓、電流對(duì)應(yīng)起來。
程序中還設(shè)置了看門狗指令,如果AD、DA轉(zhuǎn)化中出現(xiàn)錯(cuò)誤,程序馬上恢復(fù)到重新運(yùn)行,確保傳感器工作穩(wěn)定。
5結(jié)語
本設(shè)計(jì)實(shí)現(xiàn)了可同時(shí)實(shí)現(xiàn)電壓、電流模擬量輸出的一種傾角傳感器,減少了制作成本,給實(shí)際工作帶來了便利。經(jīng)實(shí)際測(cè)試,本設(shè)計(jì)效果良好,且具有制作成本低、工作穩(wěn)定、壽命長等優(yōu)點(diǎn),公司量產(chǎn)后逐步推向市場(chǎng)。