文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)03-0047-03
智能環(huán)境清潔器由于可代替人進(jìn)行環(huán)境清潔工作,,已日漸成為人們研究的焦點(diǎn),。雖然它們實(shí)現(xiàn)了智能,但大多結(jié)構(gòu)復(fù)雜,、集成度高,,不利于開發(fā)者拓展其功能。在研究并總結(jié)市場(chǎng)上相對(duì)成熟產(chǎn)品的基礎(chǔ)上,,本文基于可編程性強(qiáng)的FPGA設(shè)計(jì)并實(shí)現(xiàn)了應(yīng)用于室內(nèi)的智能吸塵平臺(tái),。平臺(tái)具備自我導(dǎo)航、能清潔大部分空間,,同時(shí)外形緊湊,、運(yùn)行穩(wěn)定、噪音小,。更重要的是其結(jié)構(gòu)簡(jiǎn)單,,具有人性化接口,便于操作和功能的進(jìn)一步開發(fā),。
1 平臺(tái)總構(gòu)成
本文提出的平臺(tái)整體框架設(shè)計(jì)如圖1所示,,用裝有四個(gè)輪子的小車作為整個(gè)平臺(tái)的載體。以FPGA控制器作為整個(gè)平臺(tái)的主控器,,通過I/O與光電傳感器jk1,、jk2、jk3,、jk4及碰撞開關(guān)jk5相連,,實(shí)現(xiàn)平臺(tái)障礙的檢測(cè);通過I/O輸出PWM波形,,驅(qū)動(dòng)揚(yáng)聲器和高低電平的變化以驅(qū)動(dòng)LED的亮滅,,組成聲光電路;通過控制電機(jī)驅(qū)動(dòng)器的信號(hào)控制線來驅(qū)動(dòng)步進(jìn)電機(jī)dj1,、dj2和直流吸塵電機(jī)dj3,,實(shí)現(xiàn)平臺(tái)的移動(dòng)和吸塵。
2 硬件主體設(shè)計(jì)
系統(tǒng)主要由FPGA主控芯片,、光電傳感器,、碰撞開關(guān)、由2個(gè)STC89C52單片機(jī)控制的無線遙控發(fā)射模塊,、兩種模式選擇芯片,、聲光電路、驅(qū)動(dòng)電機(jī),、吸塵器電機(jī)和整個(gè)系統(tǒng)的供電電路組成,,如圖2所示。
2.1 FPGA芯片的選擇
根據(jù)平臺(tái)的總體設(shè)計(jì),,可以得出對(duì)芯片的基本要求:(1)需要最少6路PWM波形輸出,。(2)需要一路串行通信接口,。(3)需要較高的12 V轉(zhuǎn)化為3.3 V的實(shí)時(shí)芯片,。(4)較高的處理速度,。(5)I/O接口要多。
綜合考慮這些條件,,采用Altera公司生產(chǎn)的CycloneII系列FPGA中的EP2C35F672C6型號(hào)基本可滿足要求,。它具有出色的運(yùn)算速度,成本低且?guī)в蠨SP模塊,,具有超大的內(nèi)部存儲(chǔ)器,、多通道PWM輸出以及靈活的設(shè)計(jì)和多種語言的綜合運(yùn)用,性價(jià)比較高[1,,2],。
2.2 配置電路設(shè)計(jì)要點(diǎn)[3-6]
(1)電源電路:供電系統(tǒng)采用12 V電源作為輸入電源,利用L7805CV將其降壓為5 V,,再由TPS37HD301將5 V轉(zhuǎn)化為3.3 V和1.2 V,,F(xiàn)PGA的I/O端口供電點(diǎn)壓為3.3 V,內(nèi)核供電電壓為1.2 V,。因?yàn)殡姍C(jī)驅(qū)動(dòng)系統(tǒng)是用控制器的5 V信號(hào),,而FPGA的端口電壓是3.3 V,必須將I/O電壓升壓到5 V,,在這里利用的是74HCT245升壓芯片,。
(2)時(shí)鐘和復(fù)位電路:時(shí)鐘電路中用ZPB-26-16 M作為有源晶振,頻率為16 MHz,,使得串口波特率更加精確,。同時(shí)可支持芯片內(nèi)部的PPL功能及ISP下載功能。復(fù)位電路采取硬件復(fù)位和軟件復(fù)位,。
(3)調(diào)試JTAG和下載電路:因?yàn)镕PGA內(nèi)部可以直接搭建軟核ISP和JTAG,,硬件電路接一個(gè)IDC-10的JTAG接口。
(4)配置存儲(chǔ)電路:選用EPCS16作為FPGA的ROM,,可以由下載電纜或其他設(shè)備進(jìn)行重復(fù)編程,,也可以通過AS接口進(jìn)行在線系統(tǒng)編程。用FPGA芯片內(nèi)部自帶的4 MHz的On-Chip memory作為FPGA的RAM,。
(5)傳感器和碰撞開關(guān):光電傳感器(光電開關(guān))選用滬工集團(tuán)的E3F-DS5C4.P1R型號(hào)的光電開關(guān),,用于檢測(cè)障礙和樓梯,此型號(hào)是圓柱型擴(kuò)散式最遠(yuǎn)距離5 cm,、可調(diào)NPN型常開光電開關(guān),。碰撞開關(guān)主要與前傳感器配合完成對(duì)平臺(tái)前的保護(hù)。當(dāng)平臺(tái)碰到前方障礙時(shí),,觸發(fā)開關(guān),,使平臺(tái)躲開障礙物,。
(6)無線發(fā)送與接收模塊:選用匯睿微通XL02-232AP1型號(hào)無線模塊,XL02-232AP1是UART接口半雙工無線傳輸模塊,,可以工作在433 MHz公用頻段,,滿足無線管制要求。
(7)驅(qū)動(dòng)和吸塵電機(jī):平臺(tái)采用前輪雙驅(qū)動(dòng),,電機(jī)選擇深圳步科公司生產(chǎn)的兩相混合式步進(jìn)電機(jī),,吸塵器電機(jī)采用直流電機(jī)。步進(jìn)電機(jī)的主要電器參數(shù)為:①步距角:1.8°,;②相電流:0.87 A,;③保持扭矩:0.24 nm;④相電阻:3.3 Ω,;⑤相電感:5.0 mH,;⑥重量:0.2 kg。
(8)聲光電路和自動(dòng)清掃時(shí)間輸入顯示電路:聲光電路主要由發(fā)光二極管和蜂鳴器組成,,直接連FPGA,,提醒平臺(tái)工作狀態(tài)。利用4個(gè)按鍵(確定,、初始,、上調(diào)、下調(diào))輸入清掃時(shí)間,,再由三個(gè)數(shù)碼管顯示設(shè)定時(shí)間,。清掃時(shí)間由FPGA內(nèi)部的定時(shí)器計(jì)時(shí),當(dāng)計(jì)時(shí)完成時(shí),,平臺(tái)即停止工作,。
3 程序設(shè)計(jì)要點(diǎn)
將程序分為硬件程序設(shè)計(jì)和軟件程序設(shè)計(jì)兩部分,硬件程序設(shè)計(jì)要對(duì)硬件電路進(jìn)行時(shí)序仿真以確定達(dá)到調(diào)試的效果,。
3.1 硬件程序設(shè)計(jì)與仿真
平臺(tái)主要通過傳感器和碰撞開關(guān)產(chǎn)生輸入信號(hào),,通過FPGA處理信號(hào),最后FPGA把處理后的信號(hào)傳到電機(jī),,由電機(jī)來完成一系列的動(dòng)作,,如表1所示。所以其邏輯設(shè)計(jì)是實(shí)現(xiàn)智能的關(guān)鍵,。
結(jié)束硬件選型后,,利用Quartus II搭建硬件原理圖,編譯后對(duì)jk1,、jk2,、jk3、 jk4進(jìn)行時(shí)序仿真,,分析時(shí)序關(guān)系,,估計(jì)設(shè)計(jì)的性能并檢查和消除競(jìng)爭(zhēng)冒險(xiǎn)[7-9],。仿真結(jié)果如圖3所示。
時(shí)序仿真圖中,,clk為輸入PWM信號(hào),,clr和en兩個(gè)模塊的片選信號(hào)是由FPGA的SoPC通過軟件C語言控制。當(dāng)jk1=0,、jk2&jk3=1時(shí),,output(PWM控制信號(hào))會(huì)出現(xiàn)一段等于0之后產(chǎn)生20個(gè)波形,。需要說明的是:圖3(a)時(shí)序仿真圖中,,output出現(xiàn)一段PWM后出現(xiàn)低電平后接著出現(xiàn)了20個(gè)PWM,說明平臺(tái)在正常前進(jìn)遇到j(luò)k1=0,、jk2&jk3=1時(shí),,會(huì)停車一段時(shí)間接著左拐或者右拐20個(gè)PWM角度。驅(qū)動(dòng)器用的是4細(xì)分,,輸出1個(gè)PWM波形步進(jìn)電機(jī)會(huì)轉(zhuǎn)動(dòng)0.45°,應(yīng)該旋轉(zhuǎn)90°但是波形個(gè)數(shù)為:n=(90/0.45)=200個(gè),,在此用20個(gè)代替200個(gè)說明問題(圖3(b)的波形個(gè)數(shù)都會(huì)以此情況說明)。
由圖3(b)可以看到前段時(shí)間jk4為高電平,,pwmout輸出正常脈沖,,說明此時(shí)平臺(tái)處于正常吸塵狀態(tài)。后段時(shí)間jk4變?yōu)榈碗娖?,pwmout時(shí)延后輸出一小段脈沖,,說明此時(shí)平臺(tái)檢測(cè)到樓梯,停車一段時(shí)間后調(diào)整方向,。
3.2 軟件程序設(shè)計(jì)
硬件設(shè)計(jì)調(diào)試完成后,,還要進(jìn)行軟件系統(tǒng)設(shè)計(jì)。在C語言文件中編寫C程序進(jìn)行SoPC的編程[10],。平臺(tái)工作總體算法流程如圖4所示,。平臺(tái)接通電源,首先初始化進(jìn)入自動(dòng)清掃和手動(dòng)遙控清掃二選一模式,;當(dāng)選擇自動(dòng)清掃模式時(shí),,通過鍵盤輸入平臺(tái)自動(dòng)清掃工作時(shí)間,在清掃過程中通過傳感器判斷是否遇到障礙物或樓梯并進(jìn)行處理,。通過中斷,,時(shí)刻查詢是否到達(dá)設(shè)置時(shí)間,如果沒到,,則程序返回運(yùn)行,;如果設(shè)置時(shí)間到,則程序結(jié)束,,平臺(tái)停止工作,。當(dāng)選擇遙控清掃時(shí),,平臺(tái)運(yùn)動(dòng)受操作者的控制。
通過硬件選型,、搭建調(diào)試和軟件語言的編寫調(diào)試,,成功地制作出了簡(jiǎn)易平臺(tái),實(shí)現(xiàn)了既定的各種功能,。相比市場(chǎng)上的同類產(chǎn)品,,其結(jié)構(gòu)更簡(jiǎn)單、成本更低,、靈活性和擴(kuò)展性更強(qiáng),,為研究者開發(fā)更多功能提供了一個(gè)硬件支持的平臺(tái),具有實(shí)用價(jià)值,。隨著微處理器的不斷進(jìn)步和傳感技術(shù)的發(fā)展,,其性能可不斷改進(jìn),成本也可不斷下降,。但在仿真和實(shí)現(xiàn)過程中發(fā)現(xiàn)其具體的流程算法不夠嚴(yán)謹(jǐn),,日后有必要繼續(xù)對(duì)其進(jìn)行改進(jìn)。
參考文獻(xiàn)
[1] ALTERA Corporation.cyclone device handbook[M].2008,,1(5).
[2] ALTERA Corporation.cyclone device family data sheet [EB/OL].2008.5.http://www.altera.com/literature/hb/cyc/cyc_c5v1_01.pdf.
[3] 王誠,,范麗珍.Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005:7-115-13500-2.
[4] 褚振勇,,翁木云.FPGA設(shè)計(jì)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,,2003.
[5] 趙雅興.FPGA原理設(shè)計(jì)及應(yīng)用[M].天津:天津大學(xué)出版社,1999.
[6] 周立功.SoPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航天航空大學(xué)出版社,,2006.
[7] 鄭亞民,,董曉舟.可編程邏輯器件開發(fā)軟件Quartus II[M]. 北京:國防工業(yè)出版社,2006.
[8] ALTERA Corporation.Quartus II version 5.0 handbook[EB/OL].2005-04/2006-03.http://www.altera.com.cn/support/software/quartus2/design_flow/des-qms-q21.html.
[9] 鄭燕.基于VHDL語言與QuartusII軟件的可編程邏輯器件應(yīng)用與開發(fā)[M].北京:國防工業(yè)出版社,,2002.
[10] 孫愷,,程世恒.NiosII系統(tǒng)開發(fā)設(shè)計(jì)與應(yīng)用實(shí)例[M].北京:北京航天航空大學(xué)出版社,2007.