李 林
(中國航空工業(yè)集團公司西安航空計算技術(shù)研究所,陜西 西安 710065)
傳感器處于信號檢測與信號處理系統(tǒng)之首,是感知、獲取信息的窗口,獲取的信息要通過它轉(zhuǎn)換為更容易傳輸與處理的電信號。傳統(tǒng)機載機電系統(tǒng)中,傳感器信號種類單一、數(shù)量繁多、處理電路復雜[1]。而MEMS傳感器是采用微機械電子技術(shù)制造的新型傳感器,具有重量輕、功耗低、體積小、精度高、易于集成等優(yōu)點[2]。
智能傳感器技術(shù)是涉及計算機技術(shù)、微機械電子技術(shù)、信號處理技術(shù)、傳感技術(shù)等的綜合密集型技術(shù),能實現(xiàn)傳統(tǒng)傳感器所不能完成的功能。智能傳感器系統(tǒng)所采用的總線標準可分為基于芯片級的I2C總線、USB總線和IEEE1451智能傳感器接口標準。
本文以芯片級的I2C總線為基礎(chǔ),設(shè)計并實現(xiàn)了一種智能傳感器,集成了ARM處理器芯片及MEMS傳感器芯片,實現(xiàn)了大氣壓力、溫度、濕度、加速度等機電系統(tǒng)中常用環(huán)境信息參數(shù)的智能采集[3]。該模塊集成了傳感器采集功能、數(shù)據(jù)處理功能以及接口通信功能,可用于改善機電系統(tǒng)中單一傳感器采集信號品質(zhì)差,傳輸過程易受干擾的問題,同時具有集成度高、體積小、功耗低、智能性強等特點。
I2C總線由飛利浦半導體公司開發(fā),是用于芯片之間連接的總線,該總線使用兩根信號線進行數(shù)據(jù)的傳輸,包括:串行時鐘線(Serial Clock Line)和串行數(shù)據(jù)線(Serial Dataline)。連接到I2C總線上的任何器件都擁有唯一的地址,分7位地址和10位地址兩種[4]。
I2C總線最顯著的特點是規(guī)范的完整性、結(jié)構(gòu)的獨立性和用戶使用時的簡單化。I2C總線有嚴格的規(guī)范,如接口的電氣特性、信號時序、信號傳輸?shù)亩x、總線狀態(tài)設(shè)置、總線管理規(guī)則及總線狀態(tài)處理等。
I2C總線雖沒有并行總線的數(shù)據(jù)吞吐能力,但只需要很少的連線和IC連接管腳,電路結(jié)構(gòu)簡單,程序編寫方便,易于實現(xiàn)用戶系統(tǒng)軟硬件的模塊化、標準化等。其優(yōu)點如下:
1) 2根信號線組成了I2C總線,結(jié)構(gòu)簡單;
2) 協(xié)議規(guī)范簡潔、協(xié)議內(nèi)容容易實現(xiàn);
3) 多個器件可以同時掛在一條I2C總線上,總線上的器件可即熱插拔,便于組網(wǎng)應(yīng)用;
4) 電氣兼容性好。器件之間以開漏I/O相互連接,兼容TTL/LVTTL的邏輯電平只要選取適當?shù)纳侠娮杈湍茌p易實現(xiàn);
5) 通信速率高。標準模式下,I2C總線傳輸速率為100 kb/s;快速模式下為400 kb/s;高速模式下可達3.4 Mb/s。
采用MEMS傳感器技術(shù),實現(xiàn)智能傳感器的小型化、智能化。硬件電路由DC/DC模塊、微控制器最小系統(tǒng)、溫度傳感器電路、濕度傳感器電路,壓力傳感器,加速度傳感器,CAN總線收發(fā)電路,RS422收發(fā)電路構(gòu)成。整體功能框圖見圖1。
圖1 智能傳感器原理框圖
對大氣壓力、溫度、濕度、加速度等物理參數(shù)的采集選用了MEMS傳感器,MEMS是利用集成電路制造技術(shù)和微架構(gòu)技術(shù)把微結(jié)構(gòu)、微傳感器、微執(zhí)行器、控制處理電路甚至接口、通信和電源等制造在一塊或多塊芯片上的微型集成系統(tǒng),具有微型化、集成化、智能化、低成本、高性能等優(yōu)點,大大縮小了傳感器的功耗、重量以及體積。
同時設(shè)計了高度集成的處理器最小電路(ARM Cortex-M3),并且通過I2C總線接口實現(xiàn)了與4個傳感器的數(shù)據(jù)通訊,使得處理器可以對MEMS傳感器采集到的原始的物理參數(shù)信息進行數(shù)據(jù)解算和處理,同時可以對傳感器實現(xiàn)智能控制。模塊均選用表貼低功耗的電子元器件,因此使用1片DC/DC芯片實現(xiàn)對整個智能傳感器的供電,最大限度的減小了體積,降低了功耗,整板使用+5VDC供電,功耗僅為0.5W。
處理器對外還具備工業(yè)控制領(lǐng)域常用的RS422總線接口以及CAN總線接口,可以與上位機進行通訊,同時多個智能傳感器間可通過CAN總線接口進行組網(wǎng),構(gòu)成如圖2所示的拓撲構(gòu)型。
圖2 智能傳感器網(wǎng)絡(luò)組成示意圖
每個智能傳感器采集局部的溫度、濕度和大氣壓力等信息,上位機可對每個節(jié)點的智能傳感器進行參數(shù)設(shè)置,智能傳感器底層依據(jù)設(shè)置的參數(shù)進行采集數(shù)據(jù)預(yù)處理和濾波。
智能傳感器節(jié)點本身不考慮余度設(shè)計,需要時可通過使用多個智能傳感器節(jié)點搭建傳感器網(wǎng)絡(luò)來提高整體的可靠性。智能傳感器節(jié)點將收集來的數(shù)據(jù)經(jīng)過提高精度運算后通過CAN總線上報上位機,多位置傳感信號共同解算信息,在上位機上可進一步對感知目標多個位置的多個狀態(tài)做進一步的數(shù)據(jù)融合及處理,從而可以實現(xiàn)全面、多方位的對感知目標狀態(tài)的精確監(jiān)測。
智能傳感器的硬件電路圖如圖3所示。
圖3 智能傳感器硬件電路圖
智能傳感器的軟件設(shè)計為運行于內(nèi)部ARM處理器的駐留程序設(shè)計。該處理器配置了嵌入式μcos操作系統(tǒng),這是一個小型的實時多任務(wù)操作系統(tǒng),整個代碼量只有20k字節(jié)左右,非常適合于小型的嵌入式系統(tǒng)。程序主要有3個部分:設(shè)備驅(qū)動軟件、濾波算法軟件、通信協(xié)議軟件、功耗管理軟件。
圖4 智能傳感器軟件流程圖
當模塊上電后,首先進行處理器的初始化配置,然后對外設(shè)傳感器以及對外接口進行初始化配置。上述配置完成后,首先啟動CAN總線的通信線程,與上位機進行握手通訊,通訊成功后,智能傳感器可以接收來自上位機的命令,根據(jù)需要對前端各種物理量進行采集,并將采集到的數(shù)據(jù)進行處理和發(fā)送。上位機可通過CAN總線接口向智能傳感器發(fā)配置信息,主要是數(shù)據(jù)的濾波算法的設(shè)置,需要智能傳感器通過總線上報的數(shù)據(jù)的格式和內(nèi)容等。
然后進行I2C總線通信的初始化,處理器通過I2C總線與模塊上的4個傳感器進行數(shù)據(jù)通訊,獲取傳感器采樣的數(shù)據(jù)值,根據(jù)接收到的上位機設(shè)置的濾波算法對原始傳感器數(shù)據(jù)進行濾波,同時根據(jù)上位機的配置信息對傳感器的各項參數(shù)進行設(shè)置。
功耗管理線程是系統(tǒng)實現(xiàn)低功耗的關(guān)鍵,當CAN總線通訊線程將當前數(shù)據(jù)發(fā)送完畢,并且I2C總線通訊線程沒有收到任何命令時,這兩個線程就會處于阻塞狀態(tài),此時處于最低優(yōu)先級的功耗管理線程就會啟動,此時ARM處理器利用I/O口關(guān)閉處于空閑模塊的電源,然后設(shè)置好休眠時間,進入低功耗模式,等待RTC喚醒。RTC喚醒后,再進入下一次的工作循環(huán)。
設(shè)備驅(qū)動主要是處理器與傳感器芯片間通過I2C總線構(gòu)成的智能傳感器模塊的核心處理電路的驅(qū)動控制,ARM處理器通過I2C總線與4個模塊內(nèi)傳感器進行控制命令與數(shù)據(jù)的相互傳輸,數(shù)據(jù)傳輸過程遵照I2C總線協(xié)議,其基本過程為開始,數(shù)據(jù)傳輸,應(yīng)答,結(jié)束。程序流程如圖5所示。
圖5 智能傳感器內(nèi)I2C總線數(shù)據(jù)傳輸流程圖
本設(shè)計實現(xiàn)了一種基于I2C總線的智能傳感器,可以實現(xiàn)對大氣壓力、溫度、濕度、加速度等物理參數(shù)的智能采集,支持通過CAN總線接口實現(xiàn)智能傳感器的組網(wǎng)以及與上位機的互聯(lián)。模塊選用MEMS集成芯片以及高集成度的嵌入式處理器,實現(xiàn)了模塊的智能化、小型化、高集成、低功耗,并且可以長期穩(wěn)定工作。
智能傳感器設(shè)計的第一個特點是低功耗,其硬件大部分采用超低功耗的芯片,軟件流程的設(shè)計使得處理器可以間隙性的進入休眠模式,進一步節(jié)省能量;第二個特點是智能性,靈活的組網(wǎng)方式使其能夠很方便地進行數(shù)據(jù)發(fā)送;第三個特點是模塊化設(shè)計,使得系統(tǒng)的調(diào)試、維護和升級更加方便。這些特點使得智能傳感器可以應(yīng)用于機載機電系統(tǒng)中,實現(xiàn)對環(huán)境參數(shù)的實時智能采集,有效地改善了傳統(tǒng)單一傳感器采集信號品質(zhì)差,傳輸過程易受干擾的問題。