吳曠(通訊作者),周虎成
(1.周口師范學院機械與電氣工程學院,河南周口,466001;2.周口師范學院物理與電信工程學院,河南周口,466001)
在現代工業現場,較短距離下的信號傳送通常使用集成運放調理后以電壓的形式完成傳送,而為了確保安全,較長距離的傳送要求是廣泛存在的,此時采用電壓信號進行傳送將會面臨以下三個問題:第一,電壓信號極易受到傳輸線噪聲的干擾;第二,傳輸線的分布電阻會產生電壓降,影響信號采集精度;第三,在工業現場難以滿足放大器的工作電壓要求[1]。故此在工業現場,為了解決上述問題和避開相關噪聲的影響,我們用電流來傳輸信號,因為電流對噪聲并不敏感。4~20mA的電流環便是用4mA表示零信號,用20mA表示信號的滿刻度,而低于4mA高于20mA的信號用于各種故障的報警。
基于此需求本文提出了一種高線性度的4~20mA的電流采集電路,通過STM32控制器實現信號調零,故障報警,以及采集信息顯示等功能。
本系統主要以高線性度的電流采集模塊,STM32最小系統,HMI模塊,電源模塊組成。通過電流采集模塊將4~20mA電流信號變換為0~3.3V電壓信號傳送給STM32的片上ADC[2],同時將STM32的片上DAC輸出連接至電流采集模塊進行調零[3],由STM32將采集到的信號通過UART接口傳輸至HMI模塊顯示,電源模塊將交流220V處理為系統所需的直流24V、3.3V及±5V電壓[4]。本系統的框架如圖1所示。

圖1 硬件系統框架
主控系統是首要核心,主控芯片選擇STMicroelectr onics公司生產的STM32F303RET6,該芯片是帶DSP和FPU的主流混合信號ARM Cortex-M4 MCU,最大時鐘頻率72MHz,具有512 KB Flash和80KB SRAM的集成存儲器,片內集成4個12位高速ADC及1個2路DAC[5]。該系列芯片具備完善的片內時鐘源,故其最小系統主要由芯片供電及復位電路部分。在此基礎上將芯片的片上ADC與DAC分別電流采集模塊相連,引出必要的IO資源及通訊接口即完成了主控系統的硬件設計工作。
電流采集模塊是本系統的第二核心,電流信號的采集、調理等工作均由本模塊實現。具體點路上來說,采用國內潤石科技生產的RS8552XTDE8精密運算放大器為主要器件,輔以0.05%精度的高精密電阻搭建多級串聯的差分放大電路實現4~20mA電流小信號到0~3.3V電壓信號的轉換。運放采用±5V供電,其余運算電路結構具體電路見圖2。

圖2 信號采集電路
其中U1主要完成電流信號的接入并進行初級的放大處理,電流的采樣電阻為0.05%精度的220Ω電阻,理論上,電流在4~20mA變化時采樣電阻兩端的電壓在869mV~4.34V之間,此電壓信號接入運放U1的輸入端組成差分放大電路,放大倍數理論值A=R8/R3,大小約為0.68,計算可得初步處理后輸入ADC_1的電壓信號為590mV~2.95V之間,此處最大值略小于ADC_1的最大輸入電壓3.3V,符合設計要求。
電路中U3的主要作用是調零,其電路結構為典型的電壓跟隨器,輸入端接MCU的DAC輸出,經計算DAC輸出電壓大小在590mV左右,輸出端與U1的輸出端組成差分信號輸入U2的輸入端。U2采用同U1一致的電路結構,其放大倍數同樣為0.68倍,調零后輸出端電壓范圍在0~1.6V,此信號作為同相放大器U24的輸入,U4的放大倍數設置為2,可得輸入ADC_2的信號范圍為0~3.2V。
經過以上變換我們成功將4~20mA的電流小信號轉換為0~3.2V的電壓信號,較第一級590mV~2.95V的直接轉換結果擴展了840mV的采樣范圍,充分利用了ADC資源,明顯提高了電流信號采集的分辨率。
同時,ADC1接口處可檢測傳感器傳輸的原始電流采樣信號,對傳感器的工作狀態作出故障診斷,即若ADC1處的采樣電壓低于590mV或高于2.95V時可判斷為傳感器故障,為系統整體的可靠性作出進一步的保障。
電源模塊是整個系統的能量源,主要功能是將交流220V,50Hz的市電轉換為可對外供給傳感器使用的24V直流電,處理給主控芯片供電的3.3V電壓,以及給集成運放供電的±5V雙路電壓。具體處理上,選擇廣州高雅信息科技有限公司生產的AP24N05-Zero模塊輸出24V,AP05N05-Zero輸出5V,該模塊具備輸入電壓范圍寬、高可靠性、低功耗、安全隔離等優點,內置的EMI濾波組件,具備過載保護、短路保護和過熱保護措施,其中Zero系列更具備低紋波噪聲的特點,尤其適用于敏感信號的采集系統中使用。采用AMS1117-3.3將AP05N05-Zero輸出的5V電壓轉換為3.3V供給MCU,AMS1117系列電源芯片是廣泛使用的線性低壓差穩壓器件[6],其穩定的電源輸出是主控芯片穩定工作的前提保障,AMS1117-3.3最大輸出電流高達1A,在本系統中這樣的帶載能力遠超出MCU工作所需,且鑒于該電源芯片的良好品質,系統的ADC及DAC參考電源也將采用此芯片共給,可節省出單獨的參考電源系統,有效的降低系統成本。采用LM2776DBVR輸出-5V電源,LM2776是一款常用的運算放大器電源,該芯片原理是是利用開關電容電荷泵原理實現電壓轉換,可將2.7~5.5V范圍內的正電壓反相,從而獲得對應的等值負電壓。采用三個低成本的電容即可提供最大200mA的輸出電流,相比基于電感的轉換器,解決了成本、尺寸和電磁干擾(EMI)多方面問題。
人機交互模塊采用廣州大彩生產的組態屏,此類產品的特點是使用簡單,內置豐富控件,開發快速。主控MCU與HMI模塊間只需通過UART接口實現顯示數據與觸控信息的交互即可。整體效果上可以用最小的MCU資源和CPU占用實現較為美觀和豐富的人機操作界面,實現較為理想的人機交互狀態。該屏幕支持RS232電平和TTL電平兩種通訊電平級別,在硬件設計中可省去電平轉換芯片,由MCU直連完成信息傳輸,進一步節省成本。具體接口電路如圖3所示。

圖3 人機交互接口電路
系統的軟件工作主要有傳感器調零、ADC數據處理和人機界面數據發送與接收組成。整體上,軟件系統采用基于FreeRTOS的多任務并行運算結構,系統運行時主要有兩部分組成,以RTOS的介入為標志分為任務調度器前過程與任務調度過程。任務調度前過程主要包含系統硬件資源的初始化,如系統時鐘設置、GPIO復用與設置、外設資源如ADC、UART等的初始化過程。該過程僅在系統上電時運行一次,為系統的準備過程。任務調度器介入后主要運行以下幾個任務:(1)傳感器調零任務;(2)與HMI的數據收發任務;(3)ADC采集回數據的處理任務。任務間通過信號量進行同步工作。軟件框架結構如圖4所示。

圖4 軟件系統框架
調零子程序主要調用主控DAC資源,采用逐次升高輸出電壓并比較終端ADC數值結果的方法,實現電流信號為4mA時終端采集數值接近0V的狀態,以此來充分利用終端ADC的3.3V量程,實現較高的信號采集分辨率。該任務為一次性運行任務,創建任務時設定該任務為較高優先級,該任務將在所有任務創建成功后最優先調用CPU資源進行計算,完成調零后該任務將啟動“自殺”指令刪除自身,為后續的測量與數據處理工作讓出CPU,并節約調度器任務切換數量,減少任務切換總體時間,提高系統效率。
ADC采集與數據處理任務是系統搜集數據的主要任務。在每次數據采樣周期中ADC將連續的采樣10次ADC轉換結果,將多次采集結果的平均值作為當前周期的最終結果報送數據處理子程序,以此來實現較為準確的信息搜集。數據處理子程序主要進行數據的數字濾波,并將ADC采集來的數字量換算成對應的電壓單位數據,字符化處理后報送HMI任務,由HMI任務將數據發送至人機接口顯示。
HMI界面是人機交互的主要部分,系統采用組態屏設計了系統的操作按鈕,實現了信息的輸入部分;采用進度樣式實現實時的采樣值顯示,電壓值顯示,電流值顯示及傳感器故障信息報警等系統主要信息的輸出。其界面效果如圖5所示。

圖5 人機交互界面
測試環節采用實驗室可編程電源輸出880mV~4.4V電壓信號模擬采樣電阻上的電壓值,在交互屏幕上顯示系統采集信息。
系統上電后輸入電壓880mV時,ADC1理論值為598.4mV,調零后ADC2的采樣值理論上為0mV,具體仿真測試如圖6所示。

圖6 測試環節1
調整輸入電壓為2.2V,模擬電流10mA時的系統響應,此時ADC1理論值應為1496mV,系統采樣值值為1500mV;ADC2的理論值應為1221 mV,系統采樣值為1230mV,仿真測試如圖7所示。
調整輸入電壓為4.4V,模擬電流20mA時的系統響應,此時ADC1理論值應為2992mV,系統采樣值值為2990mV;ADC2的理論值應為3255mV,系統采樣值為3200mV,仿真測試如圖8所示。

圖8 測試環節3
調整輸入電壓為0.2V和5V,分別模擬電流不及4mA與超出20mA時的系統響應,此時顯示采樣電壓均為0,傳感器狀態顯示為“故障”,仿真測試如圖9所示。

圖9 測試環節4
經驗證,本文中所設計的電流小信號采集系統可以穩定的、準確的完成工業中常用的4~20mA電流信號采集工作,其中信號處理程序經簡易修改后可將最終輸出的電壓值變換單位為對應不同傳感器的檢測量單位,如長度,溫度,壓力等信息,可廣泛適用于現代工業生產中。