(廣州大學(xué) 機械與電氣工程學(xué)院, 廣州 510006)
計算機技術(shù)是現(xiàn)下時代發(fā)展的核心技術(shù)之一,而在計算機技術(shù)的支撐之下,產(chǎn)生了嵌入式系統(tǒng),此系統(tǒng)具備較強的串聯(lián)能力,能夠同時具備控制靈活、智能化和互聯(lián)性等特點,而因為此類特點,此系統(tǒng)能夠應(yīng)用于工業(yè)控制、環(huán)境工程等多項領(lǐng)域,而在領(lǐng)域應(yīng)用當中,實現(xiàn)嵌入式系統(tǒng)的即為嵌入式系統(tǒng)的傳感器,因此為了充分地了解嵌入式系統(tǒng)中傳感器的應(yīng)用,本文對基于嵌入式系統(tǒng)的傳感器應(yīng)用試驗設(shè)計展開了研究分析。
設(shè)計主要基于光電感應(yīng)領(lǐng)域進行設(shè)計。在本文的嵌入式系統(tǒng)設(shè)計當中,運用了多種不同的傳感器,具體分析來看多項傳感的應(yīng)用結(jié)果顯示,本文設(shè)計對于反射型光電傳感器應(yīng)用最為頻繁,因此類傳感器同時具備了兩項功能,即在進行黑白顏色的路徑導(dǎo)航的同時,還能夠兼顧障礙物檢測的應(yīng)用[1,2]。
因反射型光電傳感器的應(yīng)用頻率最高,所以本文對此進行針對性分析。首先對反射型光電傳感器的原理進行分析,其基本原理在于:在傳感器內(nèi)部結(jié)構(gòu)當中,其備有一個紅外發(fā)光管和一個紅外接收管,此時當紅外發(fā)光管發(fā)出的光與待測物體進行接觸之后,就會產(chǎn)生反射光線,而反射光線會在之后被接收管接收,從而對接收管的電阻會產(chǎn)生相應(yīng)的影響,一般情況下這種變化會在電路上以電壓的變化形式來進行表現(xiàn),此時再結(jié)合ADC轉(zhuǎn)換或LM324等電路的處理,即可得到準確的輸出結(jié)果[3,4]。
基于以往相關(guān)研究可以得知,接收管所接收到的紅外信號強度將直覺決定電阻的變化趨向,如圖1所示[5,6]。
在此理論基礎(chǔ)上因為本文的反射型光電傳感器設(shè)計,主要采用了一體化設(shè)計結(jié)構(gòu),通過采用紅外光來進行感應(yīng),因紅外光對于常見光的干擾具有較高的抵抗能力,從而采用本文的設(shè)計,能夠在類似智能導(dǎo)航小車、機器人等制作領(lǐng)域內(nèi),得到良好的應(yīng)用結(jié)果[7,8]。
圖1 嵌入式系統(tǒng)實物圖
在傳統(tǒng)的黑白顏色路徑導(dǎo)航的基礎(chǔ)上,本文所設(shè)計的嵌入式系統(tǒng)的檢測原理為:因為黑色具備較強的吸光功能,所以在紅外發(fā)射管發(fā)出的光照,并與黑色表面進行接觸之后,其產(chǎn)生的反射光較小,進而接收管能夠接收到的紅外光總量也就較少,此時電阻表現(xiàn)方面會顯示出電阻比較大的結(jié)果,最終采用外接電路即可對檢測的狀態(tài)、數(shù)據(jù)等進行讀取[9,10]。同理,當照射在白色表面時,反射的紅外光就比較多,表現(xiàn)為接收管的電阻就比較小[11,12]。
設(shè)計主要參考了以往的研究,進而得知要改變紅外光管的光譜特性,可以通過加裝濾色片來實現(xiàn)。通過加裝濾色片的工藝,首先能夠?qū)崿F(xiàn)紅外光管的光譜特性的改變,并在此前提下方面制造多種顏色傳感器,同時還能夠?qū)Σ煌伾穆窂竭M行識別,反射型光電傳感器應(yīng)用基本的電路原理圖,如圖2所示。
圖2 反射型光電傳感器應(yīng)用電路原理圖
對圖3進行分析:
圖3 反射型光電傳感器模塊電路實物圖
圖中R1為限流電阻,而限流電阻的大小會決定紅外發(fā)光管的發(fā)射功率,其原理在于R1越小,紅外發(fā)射管的功率就越大,而在此基礎(chǔ)上也就說明當系統(tǒng)檢測的距離越遠,就會增大功能消耗。在上述分析之下本文的系統(tǒng)設(shè)計主要根據(jù)系統(tǒng)測試情況來對合適的限流電阻進行選擇;圖中R2為分壓電阻,本文的系統(tǒng)在對R2的選擇、采用紅外接收管主要結(jié)合內(nèi)阻,因為R2和接收管構(gòu)成分壓電路,因此R2的大小和接收管的電壓變化有關(guān)。其阻值的選擇需要在實際的測試環(huán)境中進行調(diào)整。
本設(shè)計主要采用LM339AM來進行配置。LM339AM主要用于實現(xiàn)比較器的功能,LM339AM的同相端主要與一個可變電阻進行相連,以此即可實現(xiàn)對參考電壓的調(diào)節(jié),進而支撐反相端接光電傳感器的輸出。而當同相端電壓超過反相端時,系統(tǒng)的輸出管將會截止,并相于輸出端開路,由外接的上拉電阻R4提供一個高電平。當反相端電壓高于同相端時,輸出管飽和,相當于輸出端接低電位。當2個輸入端電壓差別大于10 mv就能在輸出端得到電平狀態(tài)的變化。按圖2的原理圖設(shè)計印制板圖,和微控制器的接口只需要3根連線:電源(VCC),可接3.3 V或者5 V地(GND),狀態(tài)輸出(OUT)。最終的實物圖如圖3所示。
在本文的設(shè)計當中,將嵌入式控制系統(tǒng)硬件電路定義為傳感器的搭載平臺,所以對于本文的傳感器而言,搭載平臺的最核心的組成,有著很關(guān)鍵的作用。選用合適的嵌入式集成處理器并搭載合適的嵌入式操作系統(tǒng)對整體平臺的搭建,就顯得尤為重要。
基于目前的科技水平,嵌入式集成處理器有著較多的種類,而為了良好的區(qū)分其各自的型號,主要會依照處理器的總線數(shù)據(jù)寬度來進行分類,主要可氛圍32位與64位兩種。而在此前提下,較常使用的處理器架構(gòu)有POWER架構(gòu)、MIPS架構(gòu)、ARM 架構(gòu)。其中ARM架構(gòu)的應(yīng)用范圍最為廣泛,其能夠生產(chǎn)出大量的基于ARM核心的集成產(chǎn)品。并且ARM架構(gòu)其性能方面,相較于其他兩種架構(gòu)具有較多的優(yōu)勢,所以本文主要選擇了ARM架構(gòu)的 AT91SAM9263作為設(shè)計集成處理器。
本文在對反射型光電傳感器的硬件電路設(shè)計完畢之后,即開始對系統(tǒng)軟件進行設(shè)計。本文的系統(tǒng)軟件設(shè)計的思路為:首先確保系統(tǒng)軟件的基本讀取程序便捷性,進而能夠?qū)崿F(xiàn)直接利用微控制器的GPIO的輸入功能,就能夠?qū)σ_的電平變化進行讀取的功能。在上述前提下,本文設(shè)計的嵌入式系統(tǒng)平臺采用了Cortex-m3內(nèi)核的微控制器LPC1768,具體原因在于此控制當中的GPIO微控制器的操作系統(tǒng)非常簡單,有助于本文設(shè)計的便捷性,其基本操作流程如圖4所示。
圖4 GPIO操作流程
基于圖4,在進行具體的路徑識別的設(shè)計時,因為設(shè)計需要對相應(yīng)算法進行考慮,所以在以下設(shè)計流程中,主要以最基本的黑白線循跡為基礎(chǔ),進而采用最簡單的循跡算法來進行設(shè)計。假設(shè)在3個反射型光電傳感器的基礎(chǔ)上,來對路徑進行檢測,檢測的背景為白色背景的KT板,同時在KT板上放置黑色的導(dǎo)航條,以此實現(xiàn)路徑與路徑引導(dǎo)。進而通過傳感器的檢測,其在經(jīng)過黑線時,會呈現(xiàn)出輸出高電平,相反檢測到白色背景時輸出低電平。
基于當前普遍使用的嵌入式操作系統(tǒng)得知,LINUX以及WINCE的應(yīng)用相對廣泛,但出于對適用性的考慮,本文主要采用了LINUX操作系統(tǒng)。LINUX操作系統(tǒng)可以同時對許多硬件設(shè)備、應(yīng)用程序、網(wǎng)絡(luò)協(xié)議提供良好的支持,同時具備較強的擴展性。在于傳統(tǒng)的專有嵌入式操作系統(tǒng)相比之下了解到,在采用LINUX操作系統(tǒng)進行設(shè)計,能夠?qū)崿F(xiàn)對新出現(xiàn)的硬件平臺、設(shè)備也可快速的進行支持。所以在LINUX系統(tǒng)的多重優(yōu)勢之下,本文才采用嵌入式 LINUX作為搭載平臺的操作系統(tǒng)。但既然本文選用了嵌入式LINUX作為操作系統(tǒng),那么在設(shè)計方面,就必需在處理器上為其搭建合適的平臺環(huán)境,以此才能支持嵌入式LINUX系統(tǒng)平臺搭建,具體步驟如下:
1) 建立合適的交叉開發(fā)環(huán)境;
2) 移植合適的系統(tǒng)引導(dǎo)加載程序;
3) 裁剪并編譯 Linux 內(nèi)核;
4) 為 Linux建立根文件系統(tǒng);
一般來說,每一個嵌入式操作系統(tǒng)都會包括3 種編譯器以及 3 個版本的標準頭文件,在此基礎(chǔ)上要對嵌入式系統(tǒng)進行運作,就需要CPU具備高強度的運算能力,以此才能滿足其儲存空間的相應(yīng)需求,但如果環(huán)境不存在合適的工具和主機系統(tǒng)配合,那么要在嵌入式系統(tǒng)上調(diào)試應(yīng)用程序?qū)⒕邆漭^高的難度,此處本文基于適用性的考慮,為解決這項局限性,在設(shè)計思路當中引入交叉開發(fā)設(shè)計[13]14]。交叉開發(fā)即為是在主機系統(tǒng)上編譯和構(gòu)建應(yīng)用程序,然后將編譯好的應(yīng)用程序在嵌入式系統(tǒng)上運行。采用交叉開發(fā)的好處在于,設(shè)計可以利用開發(fā)主機的強大功能來運行編譯器、調(diào)試器、編輯器等工具,在開發(fā)板上只需執(zhí)行專門為它設(shè)計的應(yīng)用程序[15][16]。
嵌入式交叉開發(fā)環(huán)境的建立步驟:在目前的研究上得知,當前關(guān)于搭建交叉開發(fā)環(huán)境的方法種類較多,其所應(yīng)用的體系結(jié)構(gòu)存在差異,并且在不同的操作方式甚至是不同版本的內(nèi)核,都會用到不同的交叉編譯器,本文的設(shè)計主要考慮到適用性,所以進行以下設(shè)計:
首先,設(shè)計并建立了Linux的交叉開發(fā)環(huán)境,主要配備了以下工具:gcc(GNU c 語言編譯器);binutils(GNU下二進制工具);glibc(標準 C 庫)以及 Linux 內(nèi)核頭文件。逐一分析方面:Gcc 是用來生成 arm-linux-gcc 交叉編譯工具;Binutils 是二進制程序處理工具,包括編譯器連接器、匯編器等目標程序處理的工具;glibc 主要是提供用戶程序所使用的一些基本的函數(shù)庫。
建立交叉開發(fā)環(huán)境的步驟:
1) 準備編譯環(huán)境。此階段,首先對binutils、gcc和glibc 等文件代碼包進行下載,為工作目錄的創(chuàng)建提供基礎(chǔ)。在工作目創(chuàng)建完畢之后將其命名為~/armlinux,之后在~/armlinux下邊分別創(chuàng)建source、kernel、build,最終源代碼包放入~/armlinux/source 內(nèi),目錄復(fù)制過來,進而創(chuàng)建如下目錄
~/ armlinux/source
~/ armlinux/buildlogs
~/ armlinux/patches
~/ armlinux/linux-2.6.30
~/ armlinux/***/arm-linux-build
2) 編譯binutils。首先對binutils文件包進行解壓,并在binutils的目錄基礎(chǔ)上,創(chuàng)建 arm-linux-build目錄,arm-linux-build目錄的功能在于配置編譯工作目錄。之后對提前設(shè)置好的configure文件中的相應(yīng)參數(shù)進行編譯,依照編譯的結(jié)果,把新生成的工具添加到環(huán)境變量 PATH中,最終采用export來添加命令,并對PATH=PATH:Linux參數(shù)進行設(shè)置,以此即可啟動腳本目錄。
3) 編譯GCC的輔助編譯器。首先對gcc源碼包進行解壓,同時對t-linux文件進行初步配置,以此來修改configure文件中的指定目標版結(jié)構(gòu)、指定安裝路徑、指定內(nèi)核頭文件所在路徑等相關(guān)參數(shù)。之后即可使用不使用共享庫、不使用線程庫、支持C語言命令等功能。最終對make進行編譯編譯。在上述搭建完畢之后即可執(zhí)行make install 來實施安裝,如此就使得輔助的編譯器搭建完成,可以在編譯glibc的時提供應(yīng)用幫助。
4) 編譯完整的GCC編譯器。首先啟用libc,以此可以對其中的臨時配置文件進行去除,在此前提下,將輔助編譯器進行關(guān)閉,進而正確的配置configure中的路徑、體系架構(gòu)、頭文件路徑等參數(shù)。在上述設(shè)計完成之后分別執(zhí)行make、make install,交叉開發(fā)環(huán)境就搭建完成。
為了驗證傳感器搭載平臺能否正常工作,本文在平臺上搭載了反射型光電傳感器來進行試驗。并將此系統(tǒng)集成后,放置在實驗環(huán)境中進行了模擬實驗。
試驗結(jié)果顯示:本文所設(shè)計的嵌入式控制系統(tǒng),在與單片機控制系統(tǒng)、電源控制板進行組合之后,能夠成功的應(yīng)用于傳感器搭載平臺。對搭載平臺的運行參數(shù)進行分析看到,供電用實驗室穩(wěn)壓電源模擬。在經(jīng)過長時間的試驗后,對結(jié)果進行了分析,發(fā)現(xiàn)傳感器搭載平臺可以順利完成系統(tǒng)所需工作。說明本傳感器搭載平臺設(shè)計成功。
本文設(shè)計主要將相關(guān)參數(shù)和傳感器應(yīng)用的參數(shù)相結(jié)合,采用了基本的循跡算法讓操作者能夠進行編程的練習(xí)。本文的設(shè)計思路方面,首先對硬件電路進行了設(shè)計,設(shè)計當中主要涵蓋了反射型光電傳感器應(yīng)用設(shè)計與分析、反射型光電傳感器加裝濾色片應(yīng)用與分析、嵌入式控制系統(tǒng)集成處理器三個部分,之后對系統(tǒng)軟件進行了設(shè)計,主要涵蓋了嵌入式系統(tǒng)的傳感器系統(tǒng)軟件設(shè)計、嵌入式控制系統(tǒng)軟件平臺搭建、嵌入式交叉開發(fā)環(huán)境的建立三個部分,在軟硬件搭建完畢之后,得到一個完整的嵌入式系統(tǒng)模型,之后為了驗證模型的有效性,進行了實驗結(jié)果分析,說明本文設(shè)計成功。