新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C8051的大燈儀自動定位系統(tǒng)

基于C8051的大燈儀自動定位系統(tǒng)

作者: 時間:2010-10-21 來源:網(wǎng)絡(luò) 收藏

大燈儀是用來檢測前照燈的專用檢測設(shè)備,它主要由系統(tǒng)和檢測系統(tǒng)兩大部分組成。在接收檢測指令后,可自動進(jìn)入被檢前照燈光照區(qū)跟蹤光軸,然后自動檢測被檢前照燈發(fā)光強(qiáng)度、高度,以及遠(yuǎn)、近光的照射方向。并可對四燈制或兩燈制的前照燈進(jìn)行自動測量。檢測完成后,自動返回初始位置,檢測結(jié)果自動送出。
本系統(tǒng)的設(shè)計(jì)思路為,通過器件將大燈儀在移動過程中處于不同位置時感應(yīng)到的光強(qiáng)信號經(jīng)過放大處理,通過適當(dāng)?shù)目刂扑惴ê蟮玫较鄳?yīng)的控制信號,再將此控制信號輸出到電機(jī),通過電機(jī)將大燈儀定位于恰當(dāng)?shù)臋z測位置,從而完成大燈儀的。該大燈儀硬件結(jié)構(gòu)框圖如圖1所示。

本文引用地址:http://butianyuan.cn/article/257907.htm


圖1 大燈儀硬件結(jié)構(gòu)框圖


圖2 環(huán)境光補(bǔ)償電路


圖3 光電二極管放大電路

硬件設(shè)計(jì)

整個系統(tǒng)硬件部分主要包括立柱感光部分、PSD感光部分、直流無刷電機(jī)驅(qū)動部分、傳感器部分、通訊部分、LED顯示部分和邏輯電路部分,各部分的協(xié)調(diào)工作和數(shù)據(jù)傳輸由主微控制器C8051F020來完成。主微控制器是系統(tǒng)的核心,它一方面負(fù)責(zé)完成大燈儀移動過程中的數(shù)據(jù)采集和處理,另一方面還要將處理結(jié)果傳遞給相應(yīng)的控制電機(jī)以便進(jìn)行相應(yīng)的位置調(diào)整。因此,對處理器的運(yùn)行速度和接口功能都有較高的要求。

立柱感光部分

大燈儀的立柱沿垂直于地面的方向上均勻分布有8個光電二極管。大燈儀啟動進(jìn)入燈照區(qū)后,光電二極管將感應(yīng)到的光照轉(zhuǎn)換為電信號,然后將這8路電信號經(jīng)過放大處理后送入C8051F020自帶的ADC進(jìn)行采樣。C8051F020片內(nèi)集成了兩個多通道ADC子系統(tǒng)。由于此部分對數(shù)據(jù)精度要求不高,故選用8位ADC1系統(tǒng)將8路電信號采用單端輸入方式進(jìn)行轉(zhuǎn)換。

圖2是環(huán)境光電壓補(bǔ)償電路,該電路利用置于環(huán)境光下的一個光電二極管根據(jù)外界環(huán)境光的強(qiáng)弱產(chǎn)生不同的參考電壓Verf,并做為立柱上光電二極管放大電路的反相電壓基準(zhǔn)補(bǔ)償。圖3是一對光電二極管的放大電路圖,實(shí)際放大倍數(shù)根據(jù)所使用的光電二極管性能調(diào)整R3(R7)和R2(R6)的電阻值即可。

PSD感光部分

PSD傳感器用來完成前照燈中心的精確定位。該傳感器是一種基于橫向光電效應(yīng)的光電位置敏感元件,當(dāng)入射光點(diǎn)落在器件感光表面的不同位置時,PSD將對應(yīng)輸出不同的電信號。通過對輸出信號的處理,即可確定入射光點(diǎn)在PSD器件上的位置。入射光點(diǎn)的強(qiáng)度和尺寸大小與PSD的位置輸出信號無關(guān)。同時由于PSD是非分割型元件,對光斑的形狀無嚴(yán)格要求,所以可對光斑的位置進(jìn)行連續(xù)測量,從而獲得連續(xù)的坐標(biāo)信號。

前照燈燈光通過大燈儀燈頭的菲涅耳透鏡后投射到燈箱后部的聚光板上,在聚光板的適當(dāng)位置有一細(xì)小孔,光照透過小孔后聚焦為光斑,此光斑照在PSD表面輸出強(qiáng)弱不同的電信號。用運(yùn)算放大器TLC2272將此4路電信號兩級同相放大后送入12位的ADC0進(jìn)行轉(zhuǎn)換。需要注意的是,放大后的電壓值不要超過C8051F020的參考電壓,以免出現(xiàn)電壓飽和的情況。

直流無刷電機(jī)驅(qū)動部分

控制大燈儀左右及上下的移動是通過驅(qū)動兩個直流無刷電機(jī)(垂直和水平各一個)來完成的。系統(tǒng)對反饋信號電壓進(jìn)行周期性采樣,采樣值經(jīng)過數(shù)字信號處理,作為控制器的參數(shù),最后由合適的控制算法得出控制量,并經(jīng)DAC轉(zhuǎn)換為直流無刷電機(jī)的控制電壓來調(diào)節(jié)電機(jī)的轉(zhuǎn)速。

傳感器部分

大燈儀采用了增量式光電編碼器作為電機(jī)旋轉(zhuǎn)方向和速度的反饋元件。它是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。依靠部件旋轉(zhuǎn),用光電編碼器產(chǎn)生電脈沖信號,并送至單片機(jī)進(jìn)行處理。增量式光電編碼器有A、B、Z三相脈沖信號輸出,當(dāng)正轉(zhuǎn)時,A相脈沖超前B相脈沖90°(或1/4周期);反轉(zhuǎn)時,B相脈沖超前A相脈沖90°。本設(shè)計(jì)中利用A相脈沖觸發(fā)外部中斷,然后根據(jù)B相脈沖電平的高低來判斷電機(jī)的旋轉(zhuǎn)方向,同時記錄編碼器的脈沖數(shù)。

通訊部分

C8051F020有兩個增強(qiáng)型UART串口,其中UART0與PC機(jī)的RS-232串口相連,用來接收檢測命令和發(fā)送檢測結(jié)果 ;UART1與大燈儀檢測裝置的通訊串口相連,根據(jù)接收到的PC檢測命令啟動相應(yīng)的檢測項(xiàng)目,然后將結(jié)果返回給主微控制器。

I2C總線LED顯示部分

SAA1064是Philips公司的4位LED驅(qū)動器,為雙極型電路,具有I2C接口,專為驅(qū)動4位帶有小數(shù)點(diǎn)的七段LED顯示器而設(shè)計(jì)。該器件內(nèi)部帶有I2C總線從發(fā)送接收器,可以通過地址引腳ADR的輸入電平編程為4個不同的從器件地址。在本系統(tǒng)中共使用了兩個SAA1064驅(qū)動器。

邏輯電路部分

邏輯電路在單片機(jī)系統(tǒng)的設(shè)計(jì)中不可或缺。一般的邏輯電路都采用了通用邏輯IC(如74系列)來搭建電路,功能越復(fù)雜的系統(tǒng)其相應(yīng)的邏輯電路也越復(fù)雜,所需要的邏輯IC也越多。但是如果用可編程邏輯器件來實(shí)現(xiàn)的話,只要將邏輯表達(dá)式按規(guī)定的語法進(jìn)行描述,經(jīng)過仿真、編譯等過程,最后下載到可編程邏輯器件中,就可以完成所設(shè)計(jì)的邏輯功能,從而使得邏輯設(shè)計(jì)的自由度大大提高。

在本系統(tǒng)中使用了Xilinx公司的CPLD可編程邏輯器件XC9572,該器件內(nèi)含36個宏單元,并具有1600個邏輯門。開發(fā)環(huán)境使用的是Xilinx公司的軟件工具包FOUNDATION ISE7.1i。設(shè)計(jì)過程如下:首先從抽象的角度對電路的功能、接口和總體結(jié)構(gòu)進(jìn)行描述。接下來使用行為級描述來分析電路的功能、性能、標(biāo)準(zhǔn)兼容性等問題。行為級描述使用了VHDL語言來編寫,分別實(shí)現(xiàn)了電機(jī)控制模塊、編碼器計(jì)數(shù)控制模塊和行程限位開關(guān)控制模塊的邏輯電路設(shè)計(jì)。最后通過CPLD譯碼,將命令控制I/O映射到相應(yīng)的獨(dú)立地址。以電機(jī)控制模塊為例,兩個電機(jī)的使能、剎車、轉(zhuǎn)向共6個控制量只需對其映射地址的對應(yīng)位操作即可。

軟件設(shè)計(jì)

本系統(tǒng)的軟件設(shè)計(jì)中采用了操作系統(tǒng)。 并選用了最新的KEIL7.50集成開發(fā)環(huán)境來開發(fā)程序。
通過在系統(tǒng)中嵌入,可以把整個程序分成許多任務(wù),每個任務(wù)相對獨(dú)立,即使一個任務(wù)發(fā)生問題,也不會影響其他任務(wù)的運(yùn)行。這樣既提高了系統(tǒng)的可靠性,同時也使調(diào)試程序變得容易。

任務(wù)的創(chuàng)建

根據(jù)大燈儀定位過程中不同階段所要實(shí)現(xiàn)的目標(biāo),軟件設(shè)計(jì)中劃分了主任務(wù)、自動測試任務(wù)、位置控制任務(wù)、立柱找光任務(wù)、PSD找光任務(wù)、PC通訊任務(wù)、檢測通訊任務(wù)、電機(jī)制動任務(wù)和I2C顯示任務(wù)。

每個任務(wù)都有自己的名稱、內(nèi)存空間和優(yōu)先級。優(yōu)先級的設(shè)置根據(jù)不同的系統(tǒng)有不同的設(shè)定,本設(shè)計(jì)中,電機(jī)制動任務(wù)在系統(tǒng)中起保護(hù)設(shè)備的作用,如果發(fā)生控制失效的情況下不能及時制動電機(jī)可能會對大燈儀造成損壞,所以其優(yōu)先級設(shè)為最高; PSD找光任務(wù)和立柱找光任務(wù)運(yùn)行較為頻繁,任務(wù)執(zhí)行的好壞直接關(guān)系到檢測結(jié)果的準(zhǔn)確度,優(yōu)先級分別設(shè)為第二級和第三級;其余的任務(wù)均是常規(guī)運(yùn)行狀態(tài),只是實(shí)現(xiàn)人機(jī)交互、顯示狀態(tài)和參數(shù),對檢測性能沒有直接影響,優(yōu)先級的設(shè)定沒有嚴(yán)格的高低之分,可以隨意設(shè)定。

系統(tǒng)運(yùn)行過程分析

系統(tǒng)運(yùn)行的首要環(huán)節(jié)為初始化, 包括兩部分: 第一部分是系統(tǒng)及硬件部分的初始化,創(chuàng)建主任務(wù);第二部分是創(chuàng)建信號量及建立功能任務(wù),并為之分配優(yōu)先權(quán)。

系統(tǒng)初始化后,首先從主任務(wù)開始運(yùn)行,此時各功能任務(wù)均處于就緒狀態(tài)。上電后檢測人員在PC機(jī)上發(fā)送檢測指令,此時最先響應(yīng)的功能任務(wù)是PC通訊任務(wù)。系統(tǒng)利用中斷接收PC機(jī)下達(dá)的指令,并根據(jù)指令內(nèi)容發(fā)送開始自動檢測的標(biāo)記量。主任務(wù)接收到自動檢測標(biāo)記后喚醒自動檢測任務(wù),同時發(fā)送顯示信號量喚醒I2C顯示任務(wù)。進(jìn)入自動檢測任務(wù)后,系統(tǒng)根據(jù)檢測的進(jìn)程在不同的檢測階段調(diào)用不同的功能任務(wù)。檢測項(xiàng)目完成后,大燈儀自動回到起始位置,等待下一次檢測命令。

結(jié)語

本文中的大燈儀自動定位系統(tǒng)充分利用了C8051F020單片機(jī)優(yōu)越性能,使控制系統(tǒng)達(dá)到了很好的集成,降低了設(shè)計(jì)成本。同時實(shí)踐表明, 在系統(tǒng)復(fù)雜、對實(shí)時性和精度要求比較嚴(yán)格,并且需要并行處理任務(wù)較多的運(yùn)動控制系統(tǒng)中使用?C/OS-II實(shí)時操作系統(tǒng),會加快嵌入式控制系統(tǒng)的開發(fā)速度,降低軟件編寫的復(fù)雜度,提高產(chǎn)品的開發(fā)效率,并使維護(hù)和功能擴(kuò)展都非常方便。經(jīng)在山東某汽車檢測站為期半個月的系統(tǒng)實(shí)際運(yùn)行證明,該系統(tǒng)燈光定位準(zhǔn)確,響應(yīng)速度快,運(yùn)行良好。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉