根據ARM7無線傳輸的熱電偶遠程監控系統策略
引言
??? 目前,很多功能強大的嵌入式處理器都基于ARM內核構建。這樣的配置系統性價比高,可擴展性能強。
??? 工業檢測系統應用中,作為一種主要的測溫元件,熱電偶具有結構簡單、制造容易、使用方便、測溫范圍寬、測溫精度高等特點,可以廣泛應用于工業溫度控制過程中。但是熱電偶輸出電勢極其微弱,而且存在冷端溫度誤差和輸出電勢與被測溫度的非線性問題,易引起較大測量誤差,需要極其復雜的信號處理電路。MAX6675是Maxim公司推出的K型熱電偶串行模數轉換器,該型號芯片能夠獨立完成信號放大、冷端補償、線性化、A/D轉換及SPI串口數字化輸出功能,能夠簡化熱電偶測量智能裝置的軟硬件模塊的設計。
??? 移動檢測終端可以快速投入現場,系統調試周期短。隨著無線3G業務的普及,各種基于無線通信的傳輸成本快速下降,無線、移動、遠程測溫控制系統將更加普及。國內外基于無線通信的相關研究也開始變得很熱門,有相關產品投入市場。本文根據溫度監控領域的發展趨勢,開發一套基于ARM7處理器和GPRS無線傳輸模塊的嵌入式無線熱電偶測溫控制系統。
1 系統的構成和工作原理
??? 溫度遠程無線監控系統以應用為中心,由SPI接口連接MAX6675采集溫度數據,通過串口發送到華為GTM900A無線傳輸模塊。由于GPRS網絡(2.5G移動通信技術)支持TCP/IP協議,這使得無線數據傳輸變得更加輕松,而且相對價格比短消息等要便宜許多。為了能夠遠程設置參數,系統支持通過短信的方式設置相關核心參數。終端設備系統結構框圖如圖1所示。
??? 本系統的終端設備采用模塊化的結構設計思想,將終端設備分為主控模塊和各個功能模塊。主控模塊和各功能模塊之間有統一的或者特定的接口形式,用戶可根據實際情況選用不同的功能模塊。各種類型的數據可以在系統中同時傳輸而不相互干擾,同時也可根據市場變換的需求繼續擴展其他功能模塊。
??? 溫度遠程無線監控系統的幾個主要模塊功能如下:
??? ①傳感器數據處理模塊。根據實際需要,采集熱電偶溫度傳感器數據。當采集到的數據值高于或者低于報警值時,啟動自動報警模塊,提醒巡查人員注意。
??? ②LCD顯示模塊。顯示檢測到的溫度數據及相關的系統核心參數,以便相關工作人員觀測數據。
??? ③自動報警模塊。在系統檢查到有效報警信息后,該模塊馬上使嵌入式設備上的蜂鳴器發出警報聲,與此同時發送報警信息。該信息通過GPRS網絡及時傳回遠端的監控管理中心,以便工作人員及時發現并采取相應的處理措施。
??? ④參數配置模塊。系統的核心參數配置通過I2C總線保存在Atmel AT24C01芯片里,系統啟動時讀取相關參數。參數的設置可以通過多種方式(串口、短信和網絡)實現。
??? ⑤ARM7核心控制模塊。采用低功耗、高性能嵌入式SoC芯片Samsung S3C4480X以及8MB RAM和2 MBFlash ROM。
??? ⑥熱電偶溫度采集處理模塊。通用I/O口用軟件來模擬SPI操作,實現ARM7與MAX6675的通信。
??? ⑦GPRS無線數據傳輸模塊。考慮到系統的實際需求,采用華為GTM900A模塊。該模塊支持AT指令,模塊的控制、數據的傳輸可以通過AT指令發送或者讀取該設備的串口。
??? ⑧遠程監控軟件模塊。遠程監控軟件采集端和控制端。采集端需要連接到Internet上,有固定的IP地址,負責遠程終端數據的接收和發送。控制端由操作人員使用,在界面上顯示各個終端的運行情況、當前的實時溫度數據,操作人員的指令通過控制端下發到采集端,最后通過采集端發送到各個對應的終端。
2 系統的軟件設計流程
??? 系統啟動時,為支持通過串口設置相關參數,按照順序提示用戶輸入相關配置參數。如果用戶超過了一定的時間不操作,系統就進入初始化模塊,啟動GPRS模塊,對短信命令進行處理(初始化自有點到點協議模塊)。主應用程序的流程如圖2所示。
??? 系統運行中,TimerO的中斷處理程序處理自有的點到點協議,包括處理“登陸”、“心跳”和“退出”命令。在系統的發送數據緩沖隊列中讀取數據,將數據打包成“數據”命令,通過串口發送到GPRS模塊。如果GPRS模塊有數據,再在串口中讀出遠程監控中心發送過來自有協議的各種命令,只將“數據”命令解析后存入接收數據緩沖隊列中,其他協議維持命令由相應的子程序進行處理。
??? 主應用程序通過少數幾個系統狀態全局變量、發送數據緩沖隊列和接收數據緩沖隊列與數據通信模塊進行交互,也就是與TimerO的中斷處理程序進行交互。主應用程序不需要了解自有點到點協議的編解碼過程以及數據鏈路的維護工作,使模塊直接的耦合度降低。主應用程序通過SPI總線實時地讀取MAX6675采集到的熱電偶溫度數據,實時檢查GPRS模塊狀態(如果GPRS模塊錯誤超過規定次數,重新啟動GPRS模塊),實時地將報警數據存入發送數據緩沖隊列中并同時啟動報警模塊,實時地處理接收數據緩沖隊列中的數據,實時處理GPRS模塊短信命令數據,實時顯示系統采集的溫度數據和狀態信息,定時地將采集到的數據存入發送數據緩沖隊列中。
3 MAX6675與S3C4480X的接口實現
??? MAX6675芯片內部集成了冷端補償電路。該芯片有簡單的3位串行SPI接口,可將溫度信號轉換成12位的數字量,溫度分辨率達O.25℃。芯片內部含有熱電偶斷線檢測電路。其冷端補償溫度范圍為-20~80℃,應用的環境溫度范圍比較寬,可以測量0~1 023.75℃的被測溫度,基本符合工業溫度測量的實際需要。當MAX6675的CS引腳從高電平變為低電平時,芯片將停止任何信號轉換并在時鐘SCK的作用下通過S0引腳向外輸出已轉化的數據,此數據是經過放大了的A/D轉換后的數字量與冷端補償之和;相反,當芯片的CS引腳從低電平變回高電平時,MAX-6675芯片將進行新的溫度數字化工作。CS引腳從高電平變為低電平時,第1個字節D15出現在引腳SO上。該系列芯片的1個完整的數據讀過程需要16個時鐘周期,數據的讀取通常在SCK的下降沿完成。需要指出的是,此芯片的A/D轉換耗時在O.17~0.22 s之間,比一般的A/D轉換芯片μs級的轉換時間要長許多,相應的溫度轉換模塊需要進行相應的優化設計,不能占用太多CPU資源。
??? MAlX6675采用標準的SPI串行外設總線與ARM7進行對接,因此該芯片只能作為從設備(即串行接口芯片)。SPI(SeriaI Peripheral Int-erface)總線系統是一種同步串行外設接口,是Motorola公司推出的總線標準,它可以使ARM7單片機與各種外圍設備以串行方式進行通信。由于S3C44BOX單片機不具有SPI串行總線接口,在芯片對接時可以使用通用I/O口,用軟件來模擬SPI操作,包括串行時鐘、數據輸入/輸出。
4 GPRS無線數據傳輸模塊
??? 溫度采集處理模塊采集到的數據通過SPI總線傳送到處理器,經過串口AT指令傳輸到GPRS模塊,然后由GPRS模塊通過GPRS網絡和Internet網絡將數據傳送到遠端接在互聯網上的控制中心主機,在控制中心的網絡上可以通過組態軟件建立小型集散控制系統。至于組態軟件的選擇,可以根據需要選用商業組態軟件,或者像筆者碩士畢業論文所做的小型集散控制系統控制軟件。
??? 有關利用AT命令操作GPRS模塊在相關文獻中已有描述,這里以華為GTM900A模塊為例說明相關操作。表1描述了華為GPRS模塊AT指令基本功能指令集,通過對這些指令的運用就可以進行GPRS模塊的初始化、打開鏈路、發送數據、接收數據、關閉鏈路等一些常用的操作。
??? 基于ARM系列的32位單片機RAM資源比較豐富,利用C、C++等高級語言就能夠編寫應用軟件。在這里選用C語言開發GPRS模塊功能程序。利用ARM7S3C4480X芯片上提供的16字節的FIFO串口,向串口傳送AT命令對GPRS模塊進行操作。下面是一段用C語言編寫的打開TCP連接的模塊程序:
??? GPRS模塊是具有登陸GPRS網絡功能的芯片加上相應的協助處理數字電路,在模塊內部裝上開通GPRS功能的移動電話卡,通過串行協議與ARM7處理器進行通信。將數據以數據包的形式,先通過PPP和運營商的Internet接入服務器連接,然后把數據包發送到Internet上,最后到達控制中心主機。數據的發送和接收遵循自有的點到點傳輸協議,保證數據安全、可靠的發送和接收。
??? GPRS無線數據傳輸模塊軟件結構設計總體可分為4個部分:
??? ①參數配置部分。投入安裝前,通過串口將系統與PC機連接起來,在PC機上的超級終端設置遠程監控中心主機IP地址、端口、設備ID以及心跳時間等參數,在系統運行中也可以通過串口、GPRS或者短信命令來設置系統相關參數。
??? ②連接遠程監控中心主機。在這一部分,系統將發起1個TCP或UDP連接到遠程監控中心。本系統選用基于TCP的自有點到點協議處理通信。
??? ③自有協議處理。這個協議包括“登陸”、“數據”、“心跳”、“退出”及應答命令。“登陸”、“心跳”、“退出”命令及應答命令是協議的狀態維持部分,系統與監控中心主機的雙向溝通通過“數據”命令傳遞。基于ARM7處理器的內存配置可以達到8 MB,因此在軟件設計中可以維護好基于TCP的點到點自有協議,使數據的傳輸更安全,確保關鍵數據不丟失。
??? ④數據傳輸。處理器首先判斷接收的數據是溫度數據還是報警信號:如果是報警數據,則立刻停止其他數據的傳輸,將報警數據迅速發送出去;如果是溫度數據,則按照一定的間隔傳回監控中心。系統還通過GPRS模塊讀出從控制中心傳來的各種命令,進行相應的處理。
5 遠程監控軟件模塊
??? 監控端位于監控管理中心,分為數據采集端和控制端兩部分。數據采集端使用高性能PC機或者商業服務器,運行Windows XP/2000/2003Server系統或者Linux系統。在這里采用Delphi7語言編寫基于CLX組件的數據采集系統,基于CLX組件的軟件可以方便地移植到Linux系統中。數據采集系統將采集到數據存儲在Oracle 9i數據庫中,以便日后查詢和制作報表。同時將數據通過TCP協議實時發送到各個控制端。
??? 控制端模塊采用筆者自己用Delphi7語言編寫的組態軟件。通過相關接口,組態軟件與數據采集端進行數據交換。工作人員通過控制端查看系統中多個終端的溫度采集數據和系統狀態,也可以根據實際情況發送相關的命令到數據采集端,最后到達溫度檢測終端執行。控制端監控主界面運行圖如圖3所示。
結語
??? 基于ARM7處理器的嵌入式溫度遠程無線監控系統,通過SPI接口連接MAX6675,不斷地采集現場的監控溫度,并通過自有點到點協議基于GPRS網絡發送數據給遠端的監控管理中心。在溫度數據超過或者低于臨界值時,及時發出報警,并將報警信號傳回監控中心,實現了溫度的無線遠程監控,推進了工業溫度監控的無線化、智能化,極大地減少了現場的硬件布線時間,同時也可作為移動在線檢測終端使用。
評論
查看更多