胡念祖 林曉煥 肖新帥
(西安工程大學電子信息學院 西安 710048)
高低溫試驗設備因能提供高低溫環境而用于測試產品性能、發現產品潛在的缺陷[1],其內部用于表征溫度參數的溫度監測系統往往面臨布線復雜、監測環境具有氧化性還原性復雜多變、遠程數據傳輸還需一定的維護成本等問題。傳統的基于485通訊、基于2G通訊的高低溫試驗設備現場監測技術已經暴露出了如下弊端:第一,為了把監測到的數據與上位機進行通訊,需要定制專屬的通訊協議和通訊方式;第二,需要建設專用的通訊線路與其相對應的通訊硬件,接線復雜,移動性差;第三,不能隨時隨地地對監測設備或者儀器進行監測和控制;第四,對于復雜的現場環境不適合布置以太網接插件、集線器等物理傳輸介質[2~5];第五,以2G模塊作為無線通訊模塊傳輸數據還需向運行商支付一定的費用[6]。
針對以上問題和不足,本文充分利用了現階段WIFI覆蓋的廣泛性和普遍性,提出嵌入式Web服務器(Embedded Web Server)這一解決方案,同時采用B/S(瀏覽器/服務器)架構[7]。允許用戶或者工作人員只要通過Web瀏覽器接入網絡就可以實現無線和遠程溫度采集,同時還可以對傳感器進行配置以適應各種復雜的環境。本系統具有如下優點:第一,傳輸協議使用LwIP協議,是精簡版的TCP/IP協議,具有開放性、公開性、靈活性、便捷性[8],節約了定制通訊協議的開發成本;第二,充分利用WIFI信號的覆蓋與普及,免去了布線設計及其占用空間的煩惱;第三,成本低廉,在能滿足正常提供Web服務的基礎上節約硬件的配置、內存空間的占用;第四,用戶只要擁有安裝Web瀏覽器的PC或者手機,就能夠隨時隨地實現與該溫度采集板的雙向數據交互;第五,通過配置在網路由器端口映射和動態域名解析服務[9],在手機上還可使用網絡移動數據進行監測與配置,滿足無線和遠程的雙重功能;第六,運行維護成本低,不需要購買云空間,也不需要定期向運行商支付費用。
本系統設計由三大部分組成:監測終端部分、無線終端部分和用戶終端部分。其中監測終端部分由MCU、傳感器模塊、模數轉換模塊、冷端補償模塊和電源模塊組成。無線終端部分由能提供網關服務無線通訊模塊組成。無線終端不但能與監測終端部分通過串口全雙工雙向通信,還作為Web Server供用戶終端部分使用。無線終端在連接WIFI成功與測量終端部分通訊正常的基礎上,一方面要監聽指定端口響應外部服務器的請求,另一方面還要解析數據完成本地存儲,同時還要調用串口程序接收數據及其它處理程序。用戶終端部分可以為任意一臺安裝有Web瀏覽器的PC或者智能手機。最終用戶不但可以在局域網內訪問溫度采集操作平臺,也可以在廣域網內通過指定IP地址訪問溫度采集操作平臺。系統設計框圖如圖1。

圖1 系統設計總體框圖
為了適應多種復雜的測試環境,滿足不同環境下溫度測量的需求,傳感器模塊采用多種類型的金屬熱電偶。金屬熱電偶傳感器由位于溫度采集板感應室溫環境溫度的冷端和位于高低溫試驗設備感應試驗溫度的熱端組成,其冷熱兩端的電勢差會因冷熱兩端的溫度差的變化而變化。本系統采用K型熱電偶用于氧化性環境中,測量范圍-50℃~130℃;采用J型熱電偶適用于具有氧化性或還原性的腐蝕性環境中,測量范圍0℃~760℃;T型熱電偶用于精度等級較高且測量范圍為-100℃~350℃的環境中。不同類型的金屬熱電偶傳感器可以根據實際的測量環境,通過用戶終端有選擇性的配置于模數轉換器以適用于不同的試驗需求。
用于模數轉化的ADS1148具有高度集成特性,高度集成濾波、放大、模數轉換于一體,有效地減少了組件的數量,同時可以多通路的模數轉換。其輸入前端由RC低通濾波器來消除噪聲,同時外接上拉電阻于VDD,下拉電阻于GND來嵌位輸入電壓的范圍。本設計中使用三片ADS1148,每片外接4個通道,共計12路通道。
考慮到熱電偶冷端所處室內環境溫度的波動性,其絕對零點偏移不可忽略,對冷端必須進行有效的補償才能提高監測的可靠性[10]。對此,本系統采用簡單常用的溫度傳感器DS18B20對室內溫度有一個明確的跟蹤,跟蹤的結果為把室溫溫度與絕對0℃的溫度差轉化成電壓差。在考慮DS18B20跟蹤電壓補償的基礎上再查找熱電偶兩端的電壓差與溫度的對應關系,最終得出溫度值。
監測終端MCU采用TI公司的STM32F103RCT6作為控制芯片,通過串口與無線終端進行串行通訊,監測終端部分設計原理圖如圖2所示。
無線終端部分采用由樂鑫公司生產的WIFI模塊Esp8266作為中央通訊處理芯片。該芯片為超低功耗32位微型MCU,內置LwIP協議棧,支持標準的IEEE802.11 b/g/n協議,使開發者不必關心底層網絡的具體實現,只需要專注于網絡通訊相關函數配置就可以通訊成功,極大程度提升了開發速度。設計原理圖如圖3所示。
本系統的軟件設計主要包括五個部分:監測程序設計、Web服務器配網設計、Web前端設計、Web服務器搭建設計和CGI控制程序設計。因為數據交互是雙方相互作用的結果,所以Web前端設計和Web服務器設計要同時開發同時進行。CGI控制程序的設計包括了定義前端和后端的接口規范,也是Web服務器搭建當中一個重要的環節。
STM32F103RCT6首先要完成初始化操作,如內部Flash的初始化、串口的初始化、IO口的初始化以及DS18B20的初始化等。其次要完成對ADS1148的配置工作。為了提高獲取溫度的實時性,數據多路采集按照并行的方式進行配置,本設計先對3片ADS1148的第一通道進行配置,然后對二三四通道進行配置,待所有ADS1148所有通道配置完成后再進行溫度數據的讀取,溫度數據的讀取也按照通道一二三四的順序。
對ADS1148的配置由SPI通訊來完成,通過CS片選信號線來完成對ADS1148編號的選擇,通過SCLK時鐘信號線在一個時鐘交換一個數據位,通過MISO、MOSI來實現數據全雙工的輸入或輸出。
Esp8266支持透傳模式,能夠把串口數據轉換成符合TCP/UDP通信協議的IP數據包在網絡上傳輸,這就滿足了該中央控制芯片能夠作為TCP Server的一個重要的必要條件。Esp8266同樣也可以理解為一種DTU(數據傳輸單元)。當它在透傳模式下支持三種工作模式:串口轉STA、串口轉AP和串口轉STA+AP[11]。本課題需要建立Web服務器,所以要初始化并且調用STA模式,具體流程圖如圖4所示。
Web前端設計包括用戶登錄驗證設計,定時更新采集數據設計,提交配置指令設計等。提交的配置指令包括“K”、“T”、“J”,分別對應不同測量環境下該溫度采集板所外接的K型、T型、J型熱電偶。
HTML(HyperText Markup Language,超文本標記語言)是一種描述性語言,使用簡單的標記符可以把其要表現的內容交給瀏覽器按順序讀取,不需要編譯就可以直接執行。HTML是Web技術的基礎和重要組成結構,可以很方便地使用戶使用任何一種Web瀏覽器讀取,增強本系統設計的實用性。
From表單通過可以使用戶輸入有效信息的表單域采集有效信息并且傳輸給服務器端所對應的CGI腳本程序。在用戶登錄設計和提交配置指令設計中,From表單的action屬性分別配置為“log.php”、“set.php”來明確數據發向何處。為了實現相關指令配置,表單域使用下拉列表來定義有效的控制符。
JavaScript出現和使用有效地彌補了HTML的不足,滿足了靜態網頁無法實現的功能。HTML和JS腳本的有機結合可以很巧妙地實現實體溫度數據、相關配置指令的動態交互以及無線終端操作界面實體溫度數據的實時更新,達到動態網頁的效果,同時還能減輕服務器端的工作壓力。
為了提高數據傳輸的高效性,減少不必要的客戶端、服務器端通訊壓力,降低中央通訊芯片負載,使用XMLHttpRequest異步調用模式不必在每一次獲取有效溫度數據時都向服務器發送請求,就能夠連續地接收有效實體數據,達到了在不更新整個網頁的情況下只刷新多節點采集溫度數據的效果,同時提升了用戶的感官感覺。
CGI(Common Gateway Interface,通用網關接口)是運行在服務器端獨立的運行程序,由CGI接口標準編寫的應用程序使服務器端具備了與靜態網頁進行數據交互的能力,增加了應答前端請求的豐富性,擴展了服務器的功能。本設計中CGI的工作流程如下:1)瀏覽器提交From表單或者直接發送請求頭,并明確其URL所指的CGI控制程序;2)服務器端接收請求頭并判斷報文格式是否正確,解析出請求方式并且保存,然后執行一個確定的CGI程序;3)CGI程序調用外部應用程序,讀取SPI Flash中的HTML網頁源碼,格式化HTML文檔,然后返回給服務器;4)服務器將返回報文打包成HTTP 報文,然后發送給瀏覽器[12~14]。為了增加數據傳輸的安全性,本設計中將登錄驗證提交From表單和提交配置指令使用POST方法。為了增加傳輸的高效性,用GET方法獲取多結點的溫度數據采集信息。CGI工作流程圖如圖5。

圖5 CGI工作流程圖
搭建Web服務器首先要進行Web服務器的初始化。Esp8266支持四種工作模式,分別是UDP Client、UDP Server、TCP Server和 TCP Client。我們需要Esp8266提供Web服務供客戶端訪問,同時鑒于TCP使用三次握手保證連接的無差錯性,本設計選擇TCP Server模式。配置Web服務器的地址為在網路由所分配的IP地址,配置端口號為85以免與默認端口號80發生沖突,方便將來對外網的映射。然后啟動TCP Server監聽指定端口號,等待瀏覽器的請求。如果成功接收請求,則判斷請求格式是否正確,解析請求包,然后響應瀏覽器發送返回包。最后請求結束并成功響應后,斷開TCP連接并釋放動態內存,防止內存崩潰。

圖6 Web服務器工作流程圖
本設計中Web服務器的主要工作是解析外部瀏覽器發送過來的請求報文,通過標準接口指定CGI腳本程序處理,并將處理結果打包成Http報文發送給客戶端;不斷解析上傳的串口串行溫度數據包并且采用TCP長連接的方式局部刷新到前端頁面;解析并存儲提交的配置命令到本地,同時下行傳輸該配置指令到監測終端。具體工作流程圖如圖6所示。
在嵌入式服務器中,目前制作的網頁燒入芯片有以下三種方法:第一,直接復制網頁,同時進行某些格式上的轉化,這種方法很麻煩已經被淘汰;第二,把制作的網頁轉化成二進制代碼,以數組的形式保存,這樣不便于維護與擴展[15];第三,直接把制作的網頁下載到指定的分配的SPI Flash中,調用時通過讀取Flash函數獲得已存儲的超文本,本設計使用的就是此方法。把編譯好的服務器端bin文件和前端HTML文件分別下載到芯片指定的用戶數據區(User Data)中,此時要注意下載的扇區地址要與軟件編譯時所要讀取的扇區地址的一致性。

圖7 系統遠程PC終端操作界面
下載完成后給該溫度采集板供電,保證本采集板在已知WIFI網絡覆蓋的范圍內,等待數秒無線終端連接WIFI成功并初始化Web服務器成功。在同一局域網內選擇任意一臺安裝有Web瀏覽器的PC或者移動手機,登陸指定的IP地址和端口號進行驗證??紤]到將來擴展廣域網的安全性,防止非法用戶惡意訪問,則需要輸入正確的用戶信息登陸驗證,如果驗證正確,則會提示錯誤信息。手機終端訪問情況與此相同,在此不做展示。通過配置端口映射,還可以在廣域網不限時間不限地點訪問。
本文在分析復雜現場環境及其與不同類型熱電偶匹配性的基礎上,介紹了高集成特性的模數轉換芯片多節點溫度采集的設計;在介紹支持透傳模式和支持網絡通信協議的WIFI模塊的基礎上建立了可靠的無線連接,免去了布線規劃和通訊協議定制的煩惱;在配置TCP server模式的基礎上搭建了嵌入式Web服務器,設計了CGI程序;在HTML和JS運用的基礎上設計了前端操作平臺,實現了多節點數據信息實時更新和遠程熱電偶配置。經系統搭建和實際現場測試,在無線和遠程的基礎上驗證了復雜環境下的寬測溫范圍、強適應性、強應用性等特點,非常適用于高低溫試驗設備,也可用于治金、化工等場合。