朱曉博, 馬尚昌,2, 張素娟,2, 楊筆鋒
(1.成都信息工程學院電子工程學院,四川成都610225;2.中國氣象局大氣探測重點開放實驗室,四川成都610225)
隨著傳感器技術的發展,傳感器網絡化與智能化成為智能傳感器發展的一種趨勢,但由于不同廠商生產傳感器的網絡接口協議不同使各類傳感器沒有統一的標準,增加了用戶使用和維護的成本。因此,為了方便傳感器聯網,需要一種通用的傳感器網絡接口標準,使不同廠家生產的傳感器可以實現較好的通用性,這也是智能化傳感器發展的關鍵。IEEE 1451系列標準為傳感器的網絡化和智能化提供了一種具體通用的框架,能夠使不同廠家生產的傳感器之間具有即插即用以及立即聯網的功能。
IEEE 1451是一個智能傳感器接口的標準族,定義了一系列為使智能傳感器連接到MCU、儀表系統以及現場控制網絡的開放、通用并獨立于網絡的標準,提供了一系列基于監測和控制應用的有線或者無線的協議[1]。標準將智能傳感器分成兩個模塊,即智能變送器模塊(STIM)以及網絡適配器模塊(NCAP)[2]。STIM由傳感器和微處理器結合而成。充分利用了MCU的運算和存儲能力,可對傳感器的數據進行處理,包括對測量信號的調理、自校正以及自補償等,MCU是智能變送器的核心。NCAP是將設備連接到網絡上的通信接口裝置,NCAP用于實現對STIM 的控制,使其具有連網的功能,并實現數據存儲、處理、以及TEDS中規定的校準引擎等功能。在IEEE 1451標準族中,IEEE 1451.2標準規定了一個10線的TII接口,用于STIM與NCAP之間的互連,對電子數據表格(TEDS)進行了定義,并給出詳細的數據格式,為傳感器方便的應用到多種網絡提供了方便,使傳感器能夠具有“即插即用”兼容性[7]。文中參照的標準主要為IEEE 1451.2標準。
TEDS的設計是整個IEEE 1451協議族重要的創新以及精華所在,能夠使傳感器同時具有即插即用的兼容性。NCAP通過與STIM之間的數據交互獲取TEDS的內容,并通過協議規范實現智能傳感器的自動識別,同時實現對STIM的配置以及傳感器的即插即用。在IEEE1451.2標準中,TEDS可分為8個可尋址的單元部分,其中前兩個TEDS即Meta-TEDS和Channel TEDS是必選且為只讀,其他是可選的[1]。TEDS的具體定義如表1所示。
數據校準是傳感器數據采集的重要一環,能夠較好地提高傳感器測量數據的精度。IEEE 1451.2標準為傳感器數據的校準提供了一種方式,即在TEDS中存儲校正系數,使用校準軟件結合校正TEDS中的校準參數即可對傳感器數據進行校準。Calibration TEDS中定義的校正引擎就是用特定的數學函數將傳感器的數據(可以是來自一個或多個STIM或者來自其他途徑)融合在一起,獲取多項式系數,并通過相應的數學公式計算出比較精確可信的傳感器數據。校正引擎既可以在NCAP中實現,也可在STIM中實現。校正引擎一般采用多項式作為校準函數,若校準函數多項式次數較高,則不利于實現,因此校正引擎使用分段多項式函數。

表1 IEEE 1451.2中對 TEDS的定義及其內容
系統采用的結構模型是基于IEEE 1451.2的智能傳感器模型[3]。整個系統包括NCAP模塊、數據接口、以及由各種傳感器和相應的STIM模塊。網絡模塊NCAP通過TII接口與STIM模塊連接,STIM負責前端傳感器、ADC和信號調理模塊的控制和管理,完成數據采集、預處理、特征抽取等功能。每個STIM根據不同需要可以掛接一種或多種傳感器,配合TEDS來實現模塊的即插即用。NCAP通過TII接口實現對STIM的管理與控制,同時實現網絡通信、數據處理、數據校正以及存儲等功能[5]。TII模塊是基于IEEE 1451.2標準的變送器獨立接口,該模塊是實現ST IM與NCAP之間通信與即插即用的關鍵。系統結構如圖1所示。

圖1 系統結構模型
與傳統的STIM模塊比較,系統中的STIM模塊能夠獨立作為一個智能設備工作。在不需要聯網和做大數據量存儲時,STIM模塊獨立使用,此時校準引擎在STIM模塊實現,并且STIM可以掛接各種通信模塊實現與終端的通信;在連接NCAP后,STIM將校準引擎以及與終端通信的工作交給NCAP實現。
系統中STIM模塊使用的 MCU為STM32。STM32是意法半導體基于ARM CortexTM-M3的32位嵌入式處理器,主頻可達72MHz、90DMips。具有豐富的片內資源以及強大的處理性能,且價格僅與8位單片機相當,性價比極高。其內部的Flash以及豐富的外設為實現ST IM的基本功能及擴展功能提供了豐富資源。系統選用的STM32F103RBT6具有128K的片內FLASH,20K的SRAM,2個SPI,3個串口,2個12位ADC以及其余豐富的片內外設,其中片內FLASH既能存儲較大體積的程序,又能作為存放 TEDS和通信協議棧的空間,SPI可用來實現TII功能,3個串口使STIM在實現支持多種傳感器信號輸入的同時具備掛接各種通信模塊的能力。STIM模塊的結構如圖2所示。

圖2 STIM模塊結構圖
傳感器輸出信號的差別較大,比如信號種類,信號幅度、噪聲源等各不相同,因此不同的傳感器的接口電路需要進行不同的前端調理。首先確定傳感器的信號類型、信號范圍、測量精度等參數,確定傳感器接口標準。在設計實現上,通過硬件電路設計預留各種類型傳感器信號的輸入接口和6路撥碼輸入用于選擇傳感器;然后通過程控開關將不同種類的信號送入不同的內部通道;利用軟件判別和程控增益放大器將不同幅值的信號放大至合適的范圍;通過程序實現對各種傳感器數據的高精度采集,完成各種傳感器接口信號調理電路的重構。
系統中NCAP采用STM32+μ CosII+LwIP的方式實現。其中主控芯片選用STM32互聯型的STM32F107VCT6,STM32F107具有 CAN2.0B以及USB OTG等接口,并增加以太網10/100 MAC模塊,支持MII和RMII,因此,只需一個外部PHY芯片即可實現一個完整的以太網收發器。LwIP是瑞典計算機科學院的一個開源的輕量級TCP/IP協議棧。具有內存使用少和代碼體積小等優點,非常適合用在小型嵌入式系統中。NCAP模塊的結構如圖3所示。
在NCAP中需要實現一個TCP并發網絡服務器[13],用于遠程PC終端訪問,計算機可通過向NCAP發送控制指令來控制NCAP執行相應的功能,如讀取某傳感器數據,歷史數據下載,更新TEDS等操作。另外,NCAP還嵌入了一個Http Web Server,遠端PC可通過網頁訪問NCAP并發送指令。

圖3 NCAP模塊結構圖
網絡智能化傳感器的STIM模塊和NCAP模塊之間是相互獨立的,需要一個橋梁連接。IEEE 1451.2定義了一個10線制的物理接口TII用于STIM與NCAP之間的連接和通信,用于實現二者之間的數據交互、控制信息和狀態信息的傳遞以及時鐘同步,NCAP還通過TII給STIM模塊的接口提供了一個電源[4]。表2為TII接口的物理線路。

表2 TII接口物理線路
TII接口以標準SPI串行通信方式為基礎,所以具體實現的時候用STM32的SPI接口配合IO口和外部中斷來實現。NCAP通過TII給ST IM提供電源以及一個通用的地線。STIM具有獨立的電源模塊,但是TII接口的電源只能由NCAP提供,也就是說STIM獨立使用時TII接口不起作用。STIM模塊TII接口程序流程如圖4所示。
NSDET用來檢測STIM是否連接到NCAP或從NCAP移除。在STIM上NSDET與地線即COMMON腳連接到一起。在NCAP上NSDET與POWER腳接在一起,NCAP可以讀取NSDET的狀態。在STIM剛與NCAP的連接時,NSDET上的信號可能會出現抖動,需要一些時間穩定。STIM上電初始化需要一小段時間。當NSDET穩定在低電平狀態而NACK引腳準備好的時候,NCAP可以通過NIOE腳向STIM傳送數據的信號。當數據傳送完成時,NCAP將NIOE拉高,而STIM通過拉高NACK回應NCAP。
系統選用TEDS中的Meta-TEDS、Channel TEDS、Calibration TEDS以及 Industry Extension TEDS部分,其中前2個TEDS每個傳感器都必須具備,Meta-TEDS用于描述STIM的參數和全部通道的共同信息,如數據結構、通道數等信息;Channel-TEDS用于規定每個通道的參數,如單位、量程、校準模型(如果相應通道存在校準TEDS)等信息;Calibration-TEDS是否需要視傳感器而定,用來存放校準參數等信息,如分段數、分段邊界、多項式系數等信息,并可隨時供傳感器對各個通道的原始數據進行校正運算,比如溫濕度傳感器輸出信號受環境影響較大,需要對采集數據進行校準,則相應通道存在Calibration-TEDS;Industry Extension TEDS中存放用戶以及設備維護人員需要的一些擴展信息,如最后維護人員姓名、聯系方式、最后維護日期等參數。TEDS存儲在STM32片內Flash的最后2K字節的區域。
IAP是一種在程序中編程的機制,可以通過串口、CAN總線、以太網、Zigbee等有線或無線的接口對MCU內部的程序進行動態更新,與比較常用的ICP與ISP技術有很大區別。ICP在單片機編程中較為常用,需要機械式地連接下在線,通過仿真器燒寫程序;而ISP技術則是在單片機中內置了一個bootloader程序,開機會先進入bootloader,通過程序的引導對單片機進行燒寫。ICP和ISP都需要連接下載線等機械式操作,若產品的外殼沒有預留相應接口或安裝在狹窄空間,更新則無法進行。但若引進IAP技術,則完全可以解決上述問題,還可以實現遠程編程和無線編程。STM32微控制器具有大容量的片內可編程Flash,同時具有豐富的外設通信接口,因此可以方便地實現IAP技術。

圖4 STIM模塊T II接口程序流程圖

圖5 STM32內部Flash空間規劃

圖6 IAP程序流程圖
既然IAP方式可以把程序寫到某個地址然后再跳轉到該地址執行程序,那么只要存儲空間足夠大,在一片微控制器上可以實現存儲多個程序文件并動態在各個程序文件之間跳轉,可以在Flash空間內專門預留一片地址作為存儲TEDS的空間,其余空間作為程序與數據存儲地址。STM32F103RBT6具有128K字節的Flash,空間規劃如圖5所示。
IAP程序是整個系統的引導程序,系統開機首先運行的是IAP程序,此時若無操作,則8秒后系統自動跳轉到系統主程序的起始地址運行主程序,可以通過輸入選項選擇需要執行的功能。下載用的程序文件需要“.bin”格式。程序流程圖如圖6所示。
首先系統初始化時鐘、終端、USART以及定時器等外設,然后開啟定時器2和定時器3,其中定時器2主要用于給寫Flash定時,定時器3用來給自動運行剩余時間計時。功能選擇有3種類型:更新程序、運行程序和擦除Flash。用串口助手測試程序的界面如圖7所示。
分別采用溫度、濕度、風速、風向、氣壓、雨量傳感器接入ST IM模塊測試系統,其中溫度濕度采用一體式溫濕度傳感器HMP45D,風速風向傳感器采用模擬傳感器信號(風速用頻率信號,風向用0~2.5V電壓信號),氣壓傳感器使用PTB220,雨量傳感器采用模擬傳感器信號(外部中斷計數)。經系統實測,STIM與NCAP模塊能夠實現正常的數據交互與指令收發,NCAP端接收到的數據中經校準后的傳感器測量值與計算值相差達到標準要求,即溫度誤差≤0.2℃,濕度誤差≤3%(相對濕度在80%以下),濕度誤差≤5%(相對濕度在80%以上),風速誤差≤0.5m/s,風向誤差≤5°,氣壓誤差≤0.3hPa,雨量誤差≤0.4mm。系統目前使用的傳感器自識別的方式為撥碼盤切換,需要人手動操作,今后系統需在這個方向有所改進,提高系統的自適應與自識別能力。
智能化傳感器是傳感器發展的重要方向,對標準化的智能傳感器的研究具有很強的現實意義,而IEEE 1451標準對智能化傳感器的設計提供了一個通用的實現方式。根據傳感器應用的現狀、特點及發展趨勢,設計一種符合IEEE1451標準的智能傳感器。該系統集數據采集、數據處理、數據傳輸、在線更新與自維護功能于一體,并且能夠實現系統的遠程升級與管理,實現傳統傳感器的網絡化、智能化,具有很強的應用前景。
[1] 李威,李治,張穎,等.IEEE1451協議中電子數據表格(TEDS)的研究[J].人工智能及識別技術,2008,(5):334-336.
[2] 羅雙勝,吳仲城,申飛.基于IEEE1451.2的機器人傳感器接口STIM的設計[J].自動化與儀表,2008,(3):37-40.
[3] 李文,葉湘濱,楊雪.IEEE1451.2的智能變送器模塊設計[J].單片機與嵌入式系統應用,2009,(2):64-67.
[4] 崔書平,楊志家,呂巖,等.傳感器接口標準中NACK響應協議研究[J].微計算機信息,2008,24(1):126-127,133.
[5] 吳中杰,林君,李治,等.IEEE1451標準智能傳感器中網絡應用處理器的實現[J].傳感器與微系統,2006,25(6):85-88.
[6] 葉曉慧,張森,吳媛媛.基于 IEEE1451接口的智能網絡傳感器設計[J].電子器件,2007,30(5):1870-1873.
[7] ISBN 1-55937-963-4,IEEE Standard for a Smart Transducer Interface for Sensors and Actuators-Transducer to Microprocessor Communication Protocols and Transducer Electronic Data Sheet(TEDS)Formats[S].
[8] Wilfried Elmenreich,Stefan Pitzek.Smart Transducers-Principles,Communications,and Configuration[J].Proceedings of the 7th IEEE International Conference on Intelligent Engineering Systems,2003,(3):510-515.
[9] 陳峰,孫同景,時延妮.基于IEEE 1451和TCP/IP協議智能傳感器的研制[J].工業控制計算機,2006,19(5):39-40.
[10] 朱小剛,范順治.基于IEEE 1451.2網絡化智能傳感器的應用研究[J].現代電子技術,2007,22:20-22.
[11] 來慶宇,巢明,唐禎安.基于IEEE 1451標準的智能變送器接口電路[J].信息與控制,2006,35(2):270-274.
[12] W.Richard Stevens.TCP/IP詳解——卷2:實現[M].北京:機械工業出版社,2004.
[13] 毛期儉,丁杰,余琦.基于TCP/IP的串口數據流傳輸的實現[J].中國數據通信,2003,(11):47-53.
[14] 殷倫,王英民.串口聯網技術在遠程設備控制中的應用[J].電聲技術,2007,31(12):34-37.
[15] 周鵬,黃燦,江楠.串口與網絡結合的通信方案的研究[J].計算機與網絡,2011,(15):68-70.