吳曠(通訊作者),周虎成
(1.周口師范學(xué)院機(jī)械與電氣工程學(xué)院,河南周口,466001;2.周口師范學(xué)院物理與電信工程學(xué)院,河南周口,466001)
在現(xiàn)代工業(yè)現(xiàn)場,較短距離下的信號傳送通常使用集成運(yùn)放調(diào)理后以電壓的形式完成傳送,而為了確保安全,較長距離的傳送要求是廣泛存在的,此時(shí)采用電壓信號進(jìn)行傳送將會面臨以下三個(gè)問題:第一,電壓信號極易受到傳輸線噪聲的干擾;第二,傳輸線的分布電阻會產(chǎn)生電壓降,影響信號采集精度;第三,在工業(yè)現(xiàn)場難以滿足放大器的工作電壓要求[1]。故此在工業(yè)現(xiàn)場,為了解決上述問題和避開相關(guān)噪聲的影響,我們用電流來傳輸信號,因?yàn)殡娏鲗υ肼暡⒉幻舾小?~20mA的電流環(huán)便是用4mA表示零信號,用20mA表示信號的滿刻度,而低于4mA高于20mA的信號用于各種故障的報(bào)警。
基于此需求本文提出了一種高線性度的4~20mA的電流采集電路,通過STM32控制器實(shí)現(xiàn)信號調(diào)零,故障報(bào)警,以及采集信息顯示等功能。
本系統(tǒng)主要以高線性度的電流采集模塊,STM32最小系統(tǒng),HMI模塊,電源模塊組成。通過電流采集模塊將4~20mA電流信號變換為0~3.3V電壓信號傳送給STM32的片上ADC[2],同時(shí)將STM32的片上DAC輸出連接至電流采集模塊進(jìn)行調(diào)零[3],由STM32將采集到的信號通過UART接口傳輸至HMI模塊顯示,電源模塊將交流220V處理為系統(tǒng)所需的直流24V、3.3V及±5V電壓[4]。本系統(tǒng)的框架如圖1所示。
圖1 硬件系統(tǒng)框架
主控系統(tǒng)是首要核心,主控芯片選擇STMicroelectr onics公司生產(chǎn)的STM32F303RET6,該芯片是帶DSP和FPU的主流混合信號ARM Cortex-M4 MCU,最大時(shí)鐘頻率72MHz,具有512 KB Flash和80KB SRAM的集成存儲器,片內(nèi)集成4個(gè)12位高速ADC及1個(gè)2路DAC[5]。該系列芯片具備完善的片內(nèi)時(shí)鐘源,故其最小系統(tǒng)主要由芯片供電及復(fù)位電路部分。在此基礎(chǔ)上將芯片的片上ADC與DAC分別電流采集模塊相連,引出必要的IO資源及通訊接口即完成了主控系統(tǒng)的硬件設(shè)計(jì)工作。
電流采集模塊是本系統(tǒng)的第二核心,電流信號的采集、調(diào)理等工作均由本模塊實(shí)現(xiàn)。具體點(diǎn)路上來說,采用國內(nèi)潤石科技生產(chǎn)的RS8552XTDE8精密運(yùn)算放大器為主要器件,輔以0.05%精度的高精密電阻搭建多級串聯(lián)的差分放大電路實(shí)現(xiàn)4~20mA電流小信號到0~3.3V電壓信號的轉(zhuǎn)換。運(yùn)放采用±5V供電,其余運(yùn)算電路結(jié)構(gòu)具體電路見圖2。
圖2 信號采集電路
其中U1主要完成電流信號的接入并進(jìn)行初級的放大處理,電流的采樣電阻為0.05%精度的220Ω電阻,理論上,電流在4~20mA變化時(shí)采樣電阻兩端的電壓在869mV~4.34V之間,此電壓信號接入運(yùn)放U1的輸入端組成差分放大電路,放大倍數(shù)理論值A(chǔ)=R8/R3,大小約為0.68,計(jì)算可得初步處理后輸入ADC_1的電壓信號為590mV~2.95V之間,此處最大值略小于ADC_1的最大輸入電壓3.3V,符合設(shè)計(jì)要求。
電路中U3的主要作用是調(diào)零,其電路結(jié)構(gòu)為典型的電壓跟隨器,輸入端接MCU的DAC輸出,經(jīng)計(jì)算DAC輸出電壓大小在590mV左右,輸出端與U1的輸出端組成差分信號輸入U(xiǎn)2的輸入端。U2采用同U1一致的電路結(jié)構(gòu),其放大倍數(shù)同樣為0.68倍,調(diào)零后輸出端電壓范圍在0~1.6V,此信號作為同相放大器U24的輸入,U4的放大倍數(shù)設(shè)置為2,可得輸入ADC_2的信號范圍為0~3.2V。
經(jīng)過以上變換我們成功將4~20mA的電流小信號轉(zhuǎn)換為0~3.2V的電壓信號,較第一級590mV~2.95V的直接轉(zhuǎn)換結(jié)果擴(kuò)展了840mV的采樣范圍,充分利用了ADC資源,明顯提高了電流信號采集的分辨率。
同時(shí),ADC1接口處可檢測傳感器傳輸?shù)脑茧娏鞑蓸有盘?,對傳感器的工作狀態(tài)作出故障診斷,即若ADC1處的采樣電壓低于590mV或高于2.95V時(shí)可判斷為傳感器故障,為系統(tǒng)整體的可靠性作出進(jìn)一步的保障。
電源模塊是整個(gè)系統(tǒng)的能量源,主要功能是將交流220V,50Hz的市電轉(zhuǎn)換為可對外供給傳感器使用的24V直流電,處理給主控芯片供電的3.3V電壓,以及給集成運(yùn)放供電的±5V雙路電壓。具體處理上,選擇廣州高雅信息科技有限公司生產(chǎn)的AP24N05-Zero模塊輸出24V,AP05N05-Zero輸出5V,該模塊具備輸入電壓范圍寬、高可靠性、低功耗、安全隔離等優(yōu)點(diǎn),內(nèi)置的EMI濾波組件,具備過載保護(hù)、短路保護(hù)和過熱保護(hù)措施,其中Zero系列更具備低紋波噪聲的特點(diǎn),尤其適用于敏感信號的采集系統(tǒng)中使用。采用AMS1117-3.3將AP05N05-Zero輸出的5V電壓轉(zhuǎn)換為3.3V供給MCU,AMS1117系列電源芯片是廣泛使用的線性低壓差穩(wěn)壓器件[6],其穩(wěn)定的電源輸出是主控芯片穩(wěn)定工作的前提保障,AMS1117-3.3最大輸出電流高達(dá)1A,在本系統(tǒng)中這樣的帶載能力遠(yuǎn)超出MCU工作所需,且鑒于該電源芯片的良好品質(zhì),系統(tǒng)的ADC及DAC參考電源也將采用此芯片共給,可節(jié)省出單獨(dú)的參考電源系統(tǒng),有效的降低系統(tǒng)成本。采用LM2776DBVR輸出-5V電源,LM2776是一款常用的運(yùn)算放大器電源,該芯片原理是是利用開關(guān)電容電荷泵原理實(shí)現(xiàn)電壓轉(zhuǎn)換,可將2.7~5.5V范圍內(nèi)的正電壓反相,從而獲得對應(yīng)的等值負(fù)電壓。采用三個(gè)低成本的電容即可提供最大200mA的輸出電流,相比基于電感的轉(zhuǎn)換器,解決了成本、尺寸和電磁干擾(EMI)多方面問題。
人機(jī)交互模塊采用廣州大彩生產(chǎn)的組態(tài)屏,此類產(chǎn)品的特點(diǎn)是使用簡單,內(nèi)置豐富控件,開發(fā)快速。主控MCU與HMI模塊間只需通過UART接口實(shí)現(xiàn)顯示數(shù)據(jù)與觸控信息的交互即可。整體效果上可以用最小的MCU資源和CPU占用實(shí)現(xiàn)較為美觀和豐富的人機(jī)操作界面,實(shí)現(xiàn)較為理想的人機(jī)交互狀態(tài)。該屏幕支持RS232電平和TTL電平兩種通訊電平級別,在硬件設(shè)計(jì)中可省去電平轉(zhuǎn)換芯片,由MCU直連完成信息傳輸,進(jìn)一步節(jié)省成本。具體接口電路如圖3所示。
圖3 人機(jī)交互接口電路
系統(tǒng)的軟件工作主要有傳感器調(diào)零、ADC數(shù)據(jù)處理和人機(jī)界面數(shù)據(jù)發(fā)送與接收組成。整體上,軟件系統(tǒng)采用基于FreeRTOS的多任務(wù)并行運(yùn)算結(jié)構(gòu),系統(tǒng)運(yùn)行時(shí)主要有兩部分組成,以RTOS的介入為標(biāo)志分為任務(wù)調(diào)度器前過程與任務(wù)調(diào)度過程。任務(wù)調(diào)度前過程主要包含系統(tǒng)硬件資源的初始化,如系統(tǒng)時(shí)鐘設(shè)置、GPIO復(fù)用與設(shè)置、外設(shè)資源如ADC、UART等的初始化過程。該過程僅在系統(tǒng)上電時(shí)運(yùn)行一次,為系統(tǒng)的準(zhǔn)備過程。任務(wù)調(diào)度器介入后主要運(yùn)行以下幾個(gè)任務(wù):(1)傳感器調(diào)零任務(wù);(2)與HMI的數(shù)據(jù)收發(fā)任務(wù);(3)ADC采集回?cái)?shù)據(jù)的處理任務(wù)。任務(wù)間通過信號量進(jìn)行同步工作。軟件框架結(jié)構(gòu)如圖4所示。
圖4 軟件系統(tǒng)框架
調(diào)零子程序主要調(diào)用主控DAC資源,采用逐次升高輸出電壓并比較終端ADC數(shù)值結(jié)果的方法,實(shí)現(xiàn)電流信號為4mA時(shí)終端采集數(shù)值接近0V的狀態(tài),以此來充分利用終端ADC的3.3V量程,實(shí)現(xiàn)較高的信號采集分辨率。該任務(wù)為一次性運(yùn)行任務(wù),創(chuàng)建任務(wù)時(shí)設(shè)定該任務(wù)為較高優(yōu)先級,該任務(wù)將在所有任務(wù)創(chuàng)建成功后最優(yōu)先調(diào)用CPU資源進(jìn)行計(jì)算,完成調(diào)零后該任務(wù)將啟動(dòng)“自殺”指令刪除自身,為后續(xù)的測量與數(shù)據(jù)處理工作讓出CPU,并節(jié)約調(diào)度器任務(wù)切換數(shù)量,減少任務(wù)切換總體時(shí)間,提高系統(tǒng)效率。
ADC采集與數(shù)據(jù)處理任務(wù)是系統(tǒng)搜集數(shù)據(jù)的主要任務(wù)。在每次數(shù)據(jù)采樣周期中ADC將連續(xù)的采樣10次ADC轉(zhuǎn)換結(jié)果,將多次采集結(jié)果的平均值作為當(dāng)前周期的最終結(jié)果報(bào)送數(shù)據(jù)處理子程序,以此來實(shí)現(xiàn)較為準(zhǔn)確的信息搜集。數(shù)據(jù)處理子程序主要進(jìn)行數(shù)據(jù)的數(shù)字濾波,并將ADC采集來的數(shù)字量換算成對應(yīng)的電壓單位數(shù)據(jù),字符化處理后報(bào)送HMI任務(wù),由HMI任務(wù)將數(shù)據(jù)發(fā)送至人機(jī)接口顯示。
HMI界面是人機(jī)交互的主要部分,系統(tǒng)采用組態(tài)屏設(shè)計(jì)了系統(tǒng)的操作按鈕,實(shí)現(xiàn)了信息的輸入部分;采用進(jìn)度樣式實(shí)現(xiàn)實(shí)時(shí)的采樣值顯示,電壓值顯示,電流值顯示及傳感器故障信息報(bào)警等系統(tǒng)主要信息的輸出。其界面效果如圖5所示。
圖5 人機(jī)交互界面
測試環(huán)節(jié)采用實(shí)驗(yàn)室可編程電源輸出880mV~4.4V電壓信號模擬采樣電阻上的電壓值,在交互屏幕上顯示系統(tǒng)采集信息。
系統(tǒng)上電后輸入電壓880mV時(shí),ADC1理論值為598.4mV,調(diào)零后ADC2的采樣值理論上為0mV,具體仿真測試如圖6所示。
圖6 測試環(huán)節(jié)1
調(diào)整輸入電壓為2.2V,模擬電流10mA時(shí)的系統(tǒng)響應(yīng),此時(shí)ADC1理論值應(yīng)為1496mV,系統(tǒng)采樣值值為1500mV;ADC2的理論值應(yīng)為1221 mV,系統(tǒng)采樣值為1230mV,仿真測試如圖7所示。
調(diào)整輸入電壓為4.4V,模擬電流20mA時(shí)的系統(tǒng)響應(yīng),此時(shí)ADC1理論值應(yīng)為2992mV,系統(tǒng)采樣值值為2990mV;ADC2的理論值應(yīng)為3255mV,系統(tǒng)采樣值為3200mV,仿真測試如圖8所示。
圖8 測試環(huán)節(jié)3
調(diào)整輸入電壓為0.2V和5V,分別模擬電流不及4mA與超出20mA時(shí)的系統(tǒng)響應(yīng),此時(shí)顯示采樣電壓均為0,傳感器狀態(tài)顯示為“故障”,仿真測試如圖9所示。
圖9 測試環(huán)節(jié)4
經(jīng)驗(yàn)證,本文中所設(shè)計(jì)的電流小信號采集系統(tǒng)可以穩(wěn)定的、準(zhǔn)確的完成工業(yè)中常用的4~20mA電流信號采集工作,其中信號處理程序經(jīng)簡易修改后可將最終輸出的電壓值變換單位為對應(yīng)不同傳感器的檢測量單位,如長度,溫度,壓力等信息,可廣泛適用于現(xiàn)代工業(yè)生產(chǎn)中。