賈文濤 蔡錦達 羅小洪



摘要:工業生產的快速發展對溫度采集提出了更高的要求。本文基于ARM設計了一種的數字式溫度采集系統,設計了高動態范圍、高信噪比、高帶寬和可程控放大的信號調理電路,以ARM為核心,設計相應的軟件模塊。最后對系統進行了測試驗證,結果表明所設計的溫度采集系統精度在+/-0.2 ?C以內。
關鍵詞:ARM;溫度采集;數字式
1 引言
本文基于ARM設計一個高精度的數字式溫度采集系統,來獲取高精度的采集數據,使數據分析更有意義。同時由于測量的數據是來自多種不同類型的傳感器,本文采用多通道的數據采集模塊對這些傳感器輸出的模擬數據量進行采集,使得數據結果更加精確,穩定可靠。
2 數據采集模塊硬件設計
2.1 信號調理電路設計
2.1.1電流轉電壓信號電路設計
本文使用采樣電阻轉換法。將石英傳感器輸出的電流信號流過采樣電阻之后,可得到與電阻值成正比的電壓信號,故采樣電阻的性能將會直接影響到采樣結果的穩定性與精度。本設計要達到高精度采樣的目標,在電路設計中需盡量減少噪聲的引入。噪聲系數是衡量不同材質的電阻噪聲的大小,一般繞線采樣電阻和金屬箔的噪聲系數比碳膜等材質采樣電阻的噪聲系數要相對較小。
2.1.2程控放大電路設計
在測量時有些信號不能完全符合數據采集模塊的采樣范圍,為使測試信號結果能達到指標所要求的精度,需對輸入的模擬信號進行一定范圍的放大或衰減,使得該模擬電壓能滿足模數轉換輸入的電壓范圍[4]。在信號采集時,后級 ADC 具有一定的噪聲誤差,將輸入信號調理到接近滿刻度測量時,才能將該誤差降到最低。
2.2模數轉換電路設計方案
模數轉換電路設計的核心是 ADC(Analog to Digital Converter)電路設計。該部分設計將直接關系到采集模塊的精度能否達到指標要求,實現模數轉換的核心器件為 ADC 芯片,ADC 選型的將直接影響數據采集模塊性能。本課題使用的是Σ-Δ型 ADC,為能更好的理解該采樣技術來設計模數轉換電路。
通過高階調制器對噪聲頻譜進行調整之后,降低信號頻段中的量化噪聲,將大部分的噪聲移到目標頻段之外。若采用更多積分與求和環節,則可提供更高階數的量化噪聲成形。
ADC 的信噪比 SNR(Singnal to Noise Ratio)是輸入模擬信號和噪聲的功率比,計算公式如(1)所示[5]:
(1)
式中,PSignal為信號功率,PNoise為噪聲功率。當兩者經過的電阻相同時,上式等同于:
(2)
式中,USignal是信號電壓,UNoise是噪聲電壓。從理論上看 ADC 的 SNR 是取決于其采樣分辨位數的,理想上的N位 ADC 的理論信噪比計算如下[6]:
(3)
在實際采樣中,模數轉換芯片有量化噪聲以及其他的失真情況的存在,在計算 ADC的實際信噪比的時候,理想的N位將被實際所達到的位數所代替。根據本課題的指標要求,計算出本次 ADC 的理想有效位 15 位,計算的實際信噪比是不能低于 93.26dB。
3 數據采集模塊軟件設計
3.1 模數轉換驅動設計
在ARM中通過判斷數據標頭位來檢測讀到的數據是否有效,若為無效數據則發送數據錯誤應答幀,上位機在接收到應答幀后分情況進行處理。若是有效數據,則將數據存儲到RAM中,等RAM中數據存滿再發送到上位機中。
根據上述程控放大電路設計,可知增益倍數的選擇是在 STC15 芯片上完成的,在電路連接上是將八組差分通道分為四組來進行控制。在設計對采樣通道增益倍數控制程序時,可通過上位機發送初始化命令的形式來完成該部分的設置。命令格式設置如下表[7]:
在程控放大控制命令協議幀中命令字長為 5,第一個命令字來表示對程控放大器的初始化,其后跟著的四個命令字分別為對四組程控放大器的增益倍數。在程序中先對控制項命令進行解析,以判斷控制命令為設置程控放大倍數。然后分別對另外四個命令字進行解析,先判斷放大倍數是否有效,若有效則分別進行放大倍數的設置;若命令字無效,則發送命令錯誤應答幀。
3.2溫濕度傳感器驅動程序設計
本模塊要實現采集外部工作環境的溫度信息,是通過驅動溫濕度芯片HDC1080 實現溫度轉換,并讀取相關數值。該溫度值可用來反映當前工作狀態,也可在下一步工作中用于對整個數據采集模塊進行溫度補償提供溫度值,以實現溫漂校正,提高數據采集模塊的采集性能。HDC1080 傳感器通過兩線制的 I2C 通信接口與控制芯片進行信號傳輸,并通過C8051F350實現對該傳感器的控制與數據讀取。在本課題中HDC1080為從設備,C8051F350 為主設備。I2C 總線通過數據線(SDA)和時鐘線(SCK)兩根線實現雙向傳輸數據,該傳感器的 I2C
通信地址是七位為 1000000。HDC1080 為低功耗的溫濕度傳感器,上電后不能主動進行測量,在設計驅動程序時需發送相關指令來觸發測量[8]。觸發測量后,轉換的數據存放在相應寄存器中,通過主設備發送讀指令來讀取相應寄存器中的轉換值。
系統在上電后,先進行一個自檢過程,確保該部分功能工作正常。通過讀取設備 ID來檢查 I2C 通信是否正常,若通信錯誤,則串口發送特定格式的數據幀表示 I2C 通訊錯誤。若通信正常,則配置 HDC1080 的工作模式。本課題選用的工作模式為按照溫度在前濕度在后的原則依次采集,選擇最高分辨率14 位。在配置結束后,系統進入工作狀態。在通過串口接收到溫度測量命令后,發送相關指令觸發 HDC1080 進入測量溫濕度工作狀態。HDC1080 在 14 位分辨率下溫度轉換時間為 6.5ms,濕度轉換時間為 6.35ms,測量一次所需要的轉換時間為 12.85ms,本設計在觸發測量后延時 15ms 再讀取相關數值。讀取的數據為十六進制的數,需要通過對數據處理轉為溫度值。轉換公式如下:
(4)
其中Thcx為溫度寄存器中讀取到的十六進制的值。
4數據采集模塊調試與驗證
4.1功能模塊調試
4.1.1電源模塊調試
對數據采集模塊進行調試時,先調試電源模塊。電源是模塊能正常工作的首要條件,電源的正常穩定工作在一定程度上決定了整個數據采集模塊性能的穩定性。本文的電源是通過外部接入±9V 電壓值,經過電源轉換模塊之后得到其他所需的電壓值,轉換之后的電壓值測試結果如表2 所示。
在本設計中,C8051F350的供電范圍為 3.0V±0.6V,STM32 的供電范圍為 2.0V~3.6V,參考電壓 ADR4540的供電要求大于 4.396V。對比上表電源電壓測量結果分析,供電電壓誤差在芯片的供電電壓范圍之內,電源電路能正常工作。
(1)溫度采集驅動程序調試
通過邏輯分析儀抓取控制時序,將抓取到的 I2C 時序和給出的標準時序要求進行對比,檢查是否滿足時序要求。通過計算可知,該傳感器在進行溫濕度轉換時間最少為 12.5ms,在觸發測量后,最少要延時 13ms 再進行數據讀取。
4.2溫度采集系統測試
將標準溫度計和本文設計的溫度采集系統放置在溫箱內,通過調節溫箱溫度,進行對比實驗,實驗數據表3:
由表3可知,本文設計的溫度采集系統誤差在+/-0.2℃以內。
5總結
本文基于ARM設計了高精度的溫度數據采集模塊,制定了可實現的總體方案,完成了硬件電路設計,軟件模塊設計,并通過對相關性能的指標進行詳細研究,以及對相關參考電壓值的選取與模數轉換精度之間的關系進行了分析,給出了各部分功能電路的實現方案。最后對采集到的數據與測試指標進行對標分析,測試結果表明本文設計的溫度采集系統誤差在+/-0.2℃以內,可以滿足工業生產的需要。
參考文獻:
[1]李波.基于ARM11的一體化無線數據采集儀設計[J].世界電子元器件,2012 (3):57-59
[2]王旭東.基于PCI總線的數據采集系統的設計與實現[D].哈爾濱工程大學,2009
[3]Su S J,Zhang H L.The Study and Achieving of High-precision Data-acquisition Based onΣ-ΔADC[J].Telkomnika Indonesian Journal of Electrical Engineering,2013,11 (8)
[4]徐飛.基于32位ADC的高精度數據采集系統設計[D].吉林大學,2017
[5]胡銀肖.適用于 sigma_delta ADC的分辨率可配置數字抽取濾波器設計[D].華中科技大學,2015
[6]宋曉波.基ARM的通用高精度數據采集裝置的研究[D].哈爾濱理工大學,2011
[7]鄭偉.基于FPGA 數據采集及控制系統的研究[D].武漢理工大學,2010
[8]李強,梁莉,劉楨,等.具有溫度補償功能的智能壓力傳感器系統[J].儀器儀表學報,2008