《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 嵌入式智能化傳感器的設計

嵌入式智能化傳感器的設計

2009-03-05
作者:吳仲城 虞承端

  摘 要: 給出了智能化傳感器嵌入式控制器的開發(fā)環(huán)境、典型嵌入式微控制器硬件結構和軟件結構及設計方法,同時對智能化傳感器的信號處理方法作了簡單介紹,最后提供了一些目前廣泛應用的嵌入式微控制器芯片。
  關鍵詞: 嵌入式微單片機 智能傳感器 信號處理


  在智能化儀表應用中,片上型微處理控制器已經得到非常廣泛的應用,這種微型控制器主要是向著單片化、微型化、高性價比的方向發(fā)展,特別是具有片上程序存儲器、數據存儲器和不同的I/O接口的單片微處理器的出現,改變了傳統(tǒng)的智能化儀表的設計方法。傳感器本身的智能化給現代儀表設計提供了更大的空間,一些微控制器本身帶有A/D和D/A轉換器、通訊接口(SPI,CAN等)和保存校正參數的非易失存儲器的功能,這種微控制器應用于傳感器不僅給傳感器功能提供了很多的附加功能,給用戶提供了方便,而且減小了系統(tǒng)的有效空間,與一般系統(tǒng)設計中采用放大器、電阻及A/D轉換器相比,這種微型控制器在性能/價格比上更具有競爭優(yōu)勢(其具備的A/D功能和D/A功能,通訊接口和程序存儲器等可以節(jié)約更多的硬件成本)。
  例如接近覺傳感器在機器人機械手中有十分重要的應用,其線形化是制約其應用的主要的因素,一般紅外接近覺傳感器輸入輸出呈明顯的非線形,且與溫度相關,利用一般的模擬電路設計方法將其轉換為標準輸入信號提供給A/D轉換器,盡管在功能上能夠實現,但是很難在性能上保持一致性;更為重要的是,在一些場合這種處理方法會增加硬件的成本,由于其體積較大而無法滿足實際的使用要求,例如航天機器人使用的機械手上所使用的接近覺傳感器對體積、信號的穩(wěn)定性等都有嚴格的要求。如果使用嵌入式微型控制器可以通過校準獲得的數據表存儲到數據存儲器中,還可以通過數學模型對溫度的影響進行修正,并將測量的結果(距離)直接通過接口傳送給上位機,比較兩種方式,后者從功能上看毫無疑問節(jié)省空間、性能優(yōu)越,而成本則相差無幾,同時有效減少了上位機的處理時間。
  下面根據實際使用中涉及到的一些問題做一些論述。


1 嵌入式微處理單片機硬件結構
  圖1是一典型的微型控制器的結構框圖,與一般微處理器不同的是其將程序存儲器、數據存儲器以及各種輸入輸出接口集成在單個芯片上,而一般的微型處理器需要外接各種存儲器和擴展I/O接口。其基本的構成如下:
  CPU——微型控制器中央處理單元比較簡單,一般采用精簡指令集,不具備浮點運算等高級操作功能,其中通用算術單元ALU可以完成工作寄存器和文件寄存器間的算術和邏輯操作功能,以8位整形數據工作。在一般傳感器的應用中無須復雜的數據處理,這種結構簡單價格低廉的微單片處理器提供了一較好的解決方案。
  數據存儲器——由通用寄存器和特殊功能寄存器共同組成,與一般單片機以K為單位的存儲空間相比,微型控制器的存儲單元較小,只有256個字節(jié)甚至更少,由于其空間小,地址簡單,故常常用來作為微控制器的文件寄存器。有一些微單片機將這些寄存器作為EEPROM或閃存,用來存儲校準數據和一般常數。
  程序存儲器——用來存儲運行程序。一般微型控制器采用特殊的結構保證程序存儲器和數據存儲器分開,與傳統(tǒng)的馮.諾曼結構程序存儲器和數據存儲器在同一空間相比速度更快,使得處理器在獲取命令的同時可以獲取數據。同時這種結構可以使數據存儲器寬度和程序存儲器寬度不一樣,后者可以采用較寬的結構以獲取更高的編碼效率,其空間一般以K為單位記。
  I/O口——用來提供數值輸入輸出通道與外界交換數據,這些口除用于采樣狀態(tài)標志外,還可以通過編程設置為與A/D或D/A交換數據接口,或與其他單片機的通訊接口。
  定時器/計數器——其功能主要根據相應的寄存器設置而定,作為計數器,可以對外界的狀態(tài)變化或頻率計數;用作定時器時,可以用來實現對外界事件計時或控制微處理器周期運行,如在某一段時間內沒有事件發(fā)生時,作為看門狗的定時器可以周期的復位,對于智能型的傳感器這種功能顯然很有用。
  A/D轉換器——一般微單片機中都具備內部的4~8路A/D轉換器,因此單片的微型機可以同時接入多個傳感器并實現信號處理。早期微處理器中的這種A/D轉換器是以8位為主,而現在10位或12位精度的微型單片機較為普遍,給用戶提供了較大的選擇余地。
  通訊方式接口——對于不同的應用場合,目前的微單片控制器可以提供不同的通訊協議方式,例如SPI,I2C,或支持網絡接口的CAN,USB方式。
2 軟件設計
  現代微單片控制器中可以集成大量的硬件,給用戶帶來了很大的方便,在智能化傳感器的應用設計時可以將其僅僅作為一個元件使用,輸入模擬信號輸出數值信號。而在傳感器的智能化中,實際上硬件所占比重微乎其微,軟件才是增加傳感器功能提高其附加值的主要因素。
  在傳感器中使用嵌入式微處理單片機來實時處理數據時,其軟件的結構不同于一般PC機中所采用的方式,前者簡單得多。在傳感器中應用單片機的主要功能是讀入輸入信號,經過簡單的數據處理再輸出結果,這些功能的實現主要采用下面三種結構方式。
  ·順序方式
  ·中斷方式
  ·多重選擇方式
  順序方式——其工作原理如圖2所示,其工作方式比較簡單,主要適合一些重復性的場合。單片機首先讀入傳感器的輸出,經過數據處理后輸出結果,并更新內部變量,執(zhí)行完后返回重新開始上面的過程(見圖2(a))。很顯然這種方式本身是在一定的循環(huán)周期下反復運行,浪費機器的時間,在輸入沒有發(fā)生變化時,這種處理方式降低了傳感器本身的反應速度,可以改成(見圖2(b))結構方式,如輸入沒有發(fā)生變化,返回而輸出不變;當輸入發(fā)生變化時,才進行相應的處理。這樣有效提高了輸出對應于輸入之間反應效率。


  中斷方式——這是各種CPU處理事件普遍采用的方式,在應用嵌入式微處理器到傳感器中同樣可以利用中斷模式來實現過程控制和處理。這種處理方式在多傳感器系統(tǒng)中使用較多,在這里單片機采用上面的方式循環(huán)對部分傳感器采樣的數據處理,執(zhí)行主程序,當某一傳感器的狀態(tài)改變(例如超過某一閾值)時即執(zhí)行相應的任務。例如,在使用溫度實時補償的智能多傳感器系統(tǒng)中,當溫度發(fā)生變化時,輸入與輸出的函數關系發(fā)生改變需要通過查表方式獲取對應補償系數即可通過中斷方式實現。在有上下位機的多處理器系統(tǒng)中,相互之間的通訊同樣可以通過中斷方式實現數據的及時交換。當中斷發(fā)生時,處理器保護好寄存器中數據到堆棧中,優(yōu)先執(zhí)行中斷功能,當中斷程序執(zhí)行完畢時返回斷點恢復現場繼續(xù)原來的程序,當然這種中斷方式的實現取決于處理器的硬件結構。
  中斷方式一般應用于智能傳感器需要通訊和定時執(zhí)行特殊功能的場合,使得軟件結構簡單易行。具體程序流程圖見圖3。

??


  多重選擇方式——在智能多傳感器系統(tǒng)中,當輸入發(fā)生變化時需要執(zhí)行相應的功能,輸入狀態(tài)越多輸出的選擇越多。例如目前使用的模糊洗衣機廣泛采用單片機對各種輸入條件(衣服的多少、臟的程度等)判斷給出相應的控制策略,實際上這種功能完成可以采用智能傳感器直接實現。
  多選擇方式的程序流程圖如圖4所示,輸出的結果由輸入的變化和當前狀態(tài)決定。用數學方式可表示為:
  State_next=F(State_present,Input);
  Output=G(State_present,Input);
  其中函數F(X,Y),G(X,Y)表示狀態(tài)變化邏輯和輸出輸入對應關系,在嵌入式微處理單片機系統(tǒng)中一般采用查表方式獲取相應的數據。
  從程序流程圖可以看出這種方式符合結構化程序的設計,軟件實現較為容易。
  實際上,在一些比較復雜的過程中,上面的三種方式往往結合在一起來應用。在嵌入式智能多傳感器系統(tǒng)中采用這三種方式主要是由嵌入式微處理器本身的特點所決定的。無法實現浮點運算,采用精簡指令集,數據存儲器空間有限等因素對程序的設計要求結構簡單,方便實現。
3 開發(fā)開具
  目前支持微處理單片機的開發(fā)工具較多,一般廠家都提供相應的技術支持。下面簡單介紹Microchip公司提供的Picstart Plus開發(fā)工具箱,包括相應的硬件、接口、數據手冊和開發(fā)軟件MPLAB IDE,可以實現對PIC系列的微單片機編程、調試、寫入和仿真,其軟件開發(fā)環(huán)境支持在WINDOWS環(huán)境下運行,調試簡單。由于嵌入式微單片機普遍采用精簡指令系統(tǒng),給編程帶來很大的方便,系統(tǒng)仿真功能可以使開發(fā)者單步運行程序,并隨時監(jiān)測寄存器中的中間結果,觀測程序的執(zhí)行過程。
  此開發(fā)系統(tǒng)唯一的缺點在于不能象一般的單片機系統(tǒng)一樣直接實現對系統(tǒng)的仿真,當微處理單片機嵌入到傳感器系統(tǒng)中時其系統(tǒng)的運行過程仿真比較困難。不過這可以通過對仿真系統(tǒng)做一些改進,在PC機和所設計的嵌入系統(tǒng)之間設計一接口,微單片機的安裝位置與仿真機連接在一起以實現對系統(tǒng)的仿真。
4 傳感器的數據處理
  一般單片機系統(tǒng)對傳感器的數據處理方法比較簡單,通過A/D轉換器的輸入實現對傳感器的采樣,由于其本身計算數據處理功能的強大,對傳感器信號處理如線性化、濾波和取閾值等功能比較簡單。采用微單片機時,這些功能的實現需要一些特別的處理方法。
4.1 線性化
  線性化是傳感器中比較常見的問題,通過對微單片機所采樣數據進行一定的數據處理可以消除其非線性因素,一般可以通過兩種途徑來實現。
  查表法——預先通過實驗校準,將傳感器A/D采樣的輸入和實際的值比較,將結果存入存儲器中,對應每一個輸入相應查表得到一個輸出。例如PIC74**包括一8位的A/D轉換器,可以通過256組輸入輸出鏈表直接得到真實的結果,A/D轉換器的輸入相當于鏈表的指針入口地址,此方法是建立在大量的實驗的基礎之上的,比較簡單。例如紅外接近覺傳感器、溫度傳感器可以通過此方法實現線性化。當A/D轉換器精度較高時,如PIC16C773、PIC16C774的A/D轉換器具有12位的精度,需要4096個地址空間存儲對應表。
  內部插補法——當存儲器空間有限時,可以采用插補法實現傳感器的線性化。將采樣所得到的曲線看成一系列的節(jié)點用直線連接在一起,因此只需要將每個節(jié)點的首尾數據存儲下來,大大節(jié)約了存儲空間,具體實現方法如下:
  (1)采樣獲取傳感器的輸入值X;
  (2)確定U所在的節(jié)點位置N;
  (3)讀取相應節(jié)點的節(jié)點輸入輸出值Xn,Xn+1,Yn,Yn+1;
  (4)計算輸出結果Y
  Y=Yn+(X-Xn)Kn
  Kn=(Yn+1-Yn)/(Xn+1-Xn)
  其中每個節(jié)點的斜率比值可以預先存入單片機中,通過查表獲取以提高計算速度。
4.2 濾波方法選擇
  從A/D轉換器獲取的數據毫無疑問存在外界的干擾,需要通過濾波方法除去。在微單片機中比較容易實現的方法是移動窗口濾波法,具體為設置一定的窗口值例如3到8個數據為一組,對其取平均值。當傳感器獲取的數據變化較快時,例如是采樣頻率的1/3到1/5時,窗口取值小一些較為理想(3到5),當傳感器獲取的數據變化較為緩慢時,窗口值取大一些比較容易獲得較好的濾波效果。
  目前應用于嵌入式智能化傳感器中普遍使用的片上微型單片機主要有以下幾種。MORTOROLA公司提供的68HC908GP20,包括33路雙向I/O口,中斷,SCI、SPI串口通訊口,定時看門狗,在線編程等功能;Microchip公司提供的PIC系列單片機,除上面提到的一些功能相近外,PIC16C773,PIC16C774還提供12位精度的A/D口,應用非常方便,PIC系列的片上型單片機目前國內使用較廣泛;Cypress Semiconductor公司提供的COP684BC/COP884BC具有CAN接口功能,其他提供這類單片機的公司有Zilog,Digi-Key,Atmel等。
  總之,將片上型微單片機嵌入傳感器中將大大提高傳感器的智能化、實用化方面的功能,給傳感器智能化的設計提供了新的思路,其提供的標準化接口大大方便傳感器的使用。
參考文獻
1 PIC16C6X/7X/8X單片機應用手冊.P&S武漢力源電子股份有限公司,1996
2 PIC16CXX系旬單片機應用.武漢力源電子股份有限公司,1997

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。