基于FPGA與色敏傳感器的顏色識(shí)別系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 概 述
在當(dāng)今的社會(huì)生活中,顏色識(shí)別得到越來(lái)越廣泛的應(yīng)用。各個(gè)領(lǐng)域的廣泛應(yīng)用需求使顏色識(shí)別技術(shù)有了長(zhǎng)足的發(fā)展,結(jié)合其他技術(shù),可為工業(yè)控制、產(chǎn)品制造等多個(gè)行業(yè)更好地服務(wù)。目前,顏色識(shí)別技術(shù)主要是通過(guò)結(jié)構(gòu)簡(jiǎn)單、使用方便的單片機(jī)來(lái)實(shí)現(xiàn),而本設(shè)計(jì)選用FPGA來(lái)實(shí)現(xiàn),該系統(tǒng)可應(yīng)用于印染、油漆、汽車(chē)等行業(yè),也可以裝在自動(dòng)生產(chǎn)線(xiàn)上對(duì)產(chǎn)品的顏色進(jìn)行監(jiān)測(cè)。這樣選擇的好處有以下幾點(diǎn):
①FPGA芯片是并行運(yùn)算的,每個(gè)振蕩周期都可以執(zhí)行任務(wù),而單片機(jī)(如8051系列)的每條指令都需要12個(gè)振蕩周期。例如,單片機(jī)I/O端口的變化最快也需要24個(gè)振蕩周期,而FPGA只需要2個(gè)振蕩周期,所以同樣的振蕩周期下,F(xiàn)PGA速度更快。
②FPGA有豐富的I/O資源(一般有數(shù)百個(gè)I/O口),容易實(shí)現(xiàn)大規(guī)模系統(tǒng),可以方便地連接外設(shè)(比如多路A/D、D/A等)。而單片機(jī)的I/O口有限,要進(jìn)行仔細(xì)的資源分配、總線(xiàn)隔離。
③FPGA可以進(jìn)行硬件重構(gòu),在功能擴(kuò)展或性能改善方面也非常容易。
本設(shè)計(jì)選用了Altera公司的:NioslI軟核,使用SOPC的軟硬件綜合解決方案。與傳統(tǒng)的設(shè)計(jì)方法完全不同,從硬件和軟件整體設(shè)計(jì)上進(jìn)行了極大的改進(jìn),使硬件電路更加簡(jiǎn)單、有效、易于理解,軟件設(shè)計(jì)更輕松、可移植性更強(qiáng)。
2 設(shè)計(jì)原理
如圖1所示,顏色識(shí)別系統(tǒng)主要由模擬和數(shù)字兩部分組成。模擬部分主要用來(lái)轉(zhuǎn)換光電信號(hào)、放大信號(hào)和濾除噪聲。數(shù)字部分主要用來(lái)對(duì)A/D采樣進(jìn)來(lái)的數(shù)字信號(hào)實(shí)現(xiàn)中值濾波、查對(duì)數(shù)表、求對(duì)數(shù)比,以及顯示等操作。
3 模擬部分
3.1 顏色采集模塊
本設(shè)計(jì)中采用的色敏傳感器是CLS9032。該傳感器有2個(gè)垂直連接的PN結(jié),其厚度可以給色敏傳感器起到一個(gè)光學(xué)濾波器的作用。波長(zhǎng)較短的光在硅的表面就被吸收了,而波長(zhǎng)較長(zhǎng)的光到達(dá)深一些的位置才會(huì)被吸收?;谶@種光譜的敏感性,根據(jù)光的波長(zhǎng)來(lái)選擇信號(hào)(顏色)。使用2個(gè)光電二極管之間的對(duì)數(shù)電流比作為信號(hào)處理的方法。不同顏色的光照射時(shí),該色敏傳感器紅、綠、藍(lán)區(qū)3個(gè)引腳都會(huì)輸出電流信號(hào),但是相應(yīng)顏色的引腳輸出的電流信號(hào)會(huì)比其他引腳輸出的電流信號(hào)強(qiáng)。利用這種原理能夠有效地避免外界環(huán)境造成的輸出電流的起伏,因此這種器件具有較高的可靠性。
在距離色敏傳感器1.5 cm處,分別用紅、綠、藍(lán)3種顏色的光源直接照射,檢測(cè)經(jīng)過(guò)模擬部分處理后的輸出電壓信號(hào)。實(shí)際測(cè)試數(shù)據(jù)如表1所列。
[!--empirenews.page--]
3.2 放大模塊
圖2是模擬部分制成PCB后的實(shí)物圖。選取了有代表性的紅、綠、藍(lán)3種顏色,分別用相應(yīng)顏色的發(fā)光二極管來(lái)代表。使顏色識(shí)別系統(tǒng)有充足的光線(xiàn)照射,便于探測(cè)。
色敏傳感器負(fù)責(zé)把不同顏色的光信號(hào)轉(zhuǎn)換成電流信號(hào),但是電流信號(hào)只是幾十到幾百nA的數(shù)量級(jí),需要放大電路來(lái)放大到所需要的程度。不同顏色產(chǎn)生的微弱電流信號(hào)傳送到對(duì)應(yīng)的線(xiàn)路通道上,通過(guò)以下3級(jí)放大,把nA級(jí)的電流信號(hào)轉(zhuǎn)換成V級(jí)的電壓信號(hào)。具體電路如圖3所示。
①第1級(jí)是在電流放大的模式下工作,運(yùn)放選用高精度、低噪聲的高精密運(yùn)放OP177。經(jīng)過(guò)放大的信號(hào)大致能達(dá)到幾十mV。這個(gè)幅度的電壓還太小,不能輸入到數(shù)字系統(tǒng),因此還要對(duì)電壓信號(hào)進(jìn)行進(jìn)一步的放大。
②第2級(jí)放大為同相的電壓放大,選用高精度的集成運(yùn)放OP07。放大后的電壓幅度大致為幾百mV,且放大的輸出為負(fù)。
③第3級(jí)放大要采用反相的電壓放大,運(yùn)放同樣選用OP07。輸出的信號(hào)幅度為幾伏,能夠滿(mǎn)足輸入數(shù)字系統(tǒng)的要求。
3.3 濾波模塊
經(jīng)過(guò)放大后的直流信號(hào),因?yàn)橛性肼暤母蓴_,還有一些毛刺。經(jīng)過(guò)查閱參考文獻(xiàn)和實(shí)際的實(shí)驗(yàn)測(cè)試,最終采用20 Hz二階有源低通濾波器,可以為后面的級(jí)聯(lián)使用提供干凈的信號(hào)。
4 數(shù)字部分
本次設(shè)計(jì)的核心地方是數(shù)字部分,系統(tǒng)的搭建是基于A(yíng)ltera公司的NiosII處理器。[!--empirenews.page--]
電壓信號(hào)經(jīng)過(guò)濾波處理,被傳送到A/D轉(zhuǎn)換器,經(jīng)過(guò)A/D轉(zhuǎn)換得到數(shù)字信號(hào),為數(shù)字部分對(duì)信號(hào)的識(shí)別處理作準(zhǔn)備。根據(jù)所選用的色敏傳感器的工作原理,用 SOPC系統(tǒng)進(jìn)行控制,對(duì)3路模擬電路信號(hào)進(jìn)行同步的A/D轉(zhuǎn)換以增強(qiáng)系統(tǒng)準(zhǔn)確性。在保證可靠性和精度的前提下,為降低系統(tǒng)成本,滿(mǎn)足對(duì)輸入數(shù)字信號(hào)倍數(shù)的要求,A/D轉(zhuǎn)換器選用8位串行輸出的ADC0809轉(zhuǎn)換器。采用NiosII軟核搭建的FPGA系統(tǒng)處理數(shù)字信號(hào),主要經(jīng)過(guò)以下操作:
①中值濾波,進(jìn)一步去除干擾信號(hào);
②查對(duì)數(shù)表,查數(shù)據(jù)所對(duì)應(yīng)的對(duì)數(shù)值;
③求對(duì)數(shù)比,對(duì)分別采集到的2個(gè)數(shù)據(jù)求對(duì)數(shù)比,為判斷是哪種顏色提供依據(jù);
④顯示顏色識(shí)別結(jié)果,亮不同的燈來(lái)表明所識(shí)別出來(lái)的不同顏色。
4.1 硬件設(shè)計(jì)
在FPGA芯片上搭建一個(gè)NiosII處理器系統(tǒng),包括可配置的NiosII CPU軟核、與CPU相連接的片內(nèi)設(shè)備和存儲(chǔ)器,以及與片外設(shè)備和存儲(chǔ)器相連的接口等。
NiosII處理器是Altera公司的第二代用戶(hù)可配置的通用32位RISC軟核微處理器,是Altera公司特有的基于通用FPGA架構(gòu)的CPU軟核。NiosII系統(tǒng)是在。NiosII處理器基礎(chǔ)上添加片上(FPGA)設(shè)備、存儲(chǔ)器以及片外設(shè)備和存儲(chǔ)器接口所組成的系統(tǒng)。Ni-osII具有明顯的優(yōu)勢(shì):
①NiosII處理器具有靈活的外設(shè)配置和地址映射。由于NiosII處理器和片上設(shè)備及接口具有軟核特性,設(shè)計(jì)者可以為設(shè)計(jì)目標(biāo)量身定做合適的 NiosII處理器系統(tǒng),既可以增加CPU的功能,提高處理器的系統(tǒng)性能,也可以對(duì)不必要的處理器性能和外設(shè)進(jìn)行剪裁,以滿(mǎn)足低成本的小型系統(tǒng)設(shè)計(jì)。另外,訪(fǎng)問(wèn)存儲(chǔ)器和外設(shè)的軟件一般與地址分配無(wú)關(guān)。
②NiosII系統(tǒng)可以自動(dòng)創(chuàng)建,Altera的SOPC Biulder設(shè)計(jì)工具使處理器的配置全自動(dòng)完成,能自動(dòng)產(chǎn)生并編程FPGA的硬件設(shè)計(jì)。系統(tǒng)的創(chuàng)建不需要設(shè)計(jì)者進(jìn)行任何的底層原理圖和硬件描述語(yǔ)言(HDL)設(shè)計(jì)。
③NiosII處理器系統(tǒng)可以定制指令,從而增強(qiáng)系統(tǒng)的性能。
正是基于這些優(yōu)點(diǎn),本設(shè)計(jì)最終選用NiosII處理器系統(tǒng)來(lái)完成顏色信號(hào)的處理和識(shí)別。如圖4所示,NiosII處理器系統(tǒng)的片上系統(tǒng)包括NiosII CPU、片上RAM、定時(shí)器、ADC接口、Avalon總線(xiàn)、Avalon三態(tài)橋、PIO、JTAGUART等部分。另外,在片外擴(kuò)展了Flash(用來(lái)存放程序和相應(yīng)的數(shù)據(jù))和SSRAM(相當(dāng)于內(nèi)存)。
具體器件的選擇如表2所列。
⑤比較計(jì)算值與預(yù)存顏色值,即可實(shí)現(xiàn)對(duì)各種顏色的識(shí)別;比較計(jì)算值與不同時(shí)間值,即可實(shí)現(xiàn)對(duì)顏色變化的識(shí)別。
在使用過(guò)程中,總有某些時(shí)刻系統(tǒng)處于非探測(cè)工作期。但此時(shí)系統(tǒng)還處于工作狀態(tài),SOPC還會(huì)控制A/D轉(zhuǎn)換器進(jìn)行采樣,而SOPC本身也會(huì)對(duì)轉(zhuǎn)換后的數(shù)字信號(hào)進(jìn)行處理,并產(chǎn)生有色差的警報(bào)。為了消除這種誤報(bào)警,需控制放大器的放大倍數(shù)。相差幾十nm的入射光經(jīng)過(guò)放大后,其電信號(hào)的差值很大,經(jīng)A/D轉(zhuǎn)換后的數(shù)值會(huì)溢出或接近溢出。利用這一特性,設(shè)定一個(gè)上限值,如果數(shù)值比這個(gè)上限值大,則系統(tǒng)做出非探測(cè)工作期的判斷,程序重新開(kāi)始執(zhí)行。
結(jié) 語(yǔ)
隨著新技術(shù)、新材料的不斷涌現(xiàn),在現(xiàn)代化工業(yè)生產(chǎn)中,顏色識(shí)別系統(tǒng)的應(yīng)用越來(lái)越多,也越來(lái)越復(fù)雜。以色敏傳感器為探測(cè)器,使用內(nèi)嵌NiosII軟核處理器的FPGA作為運(yùn)算、控制核心的顏色識(shí)別系統(tǒng),具有結(jié)構(gòu)簡(jiǎn)單、可靠性高、使用方便、擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。利用FPGA快速?gòu)?qiáng)大的處理功能,能夠快速、準(zhǔn)確地實(shí)現(xiàn)顏色的識(shí)別。利用現(xiàn)代信息融合技術(shù),采用新型、高靈敏、響應(yīng)快的色敏傳感器,一定能使顏色識(shí)別更加精確、更加可靠。