文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)03-0047-03
智能環(huán)境清潔器由于可代替人進(jìn)行環(huán)境清潔工作,已日漸成為人們研究的焦點(diǎn)。雖然它們實(shí)現(xiàn)了智能,但大多結(jié)構(gòu)復(fù)雜、集成度高,不利于開發(fā)者拓展其功能。在研究并總結(jié)市場上相對成熟產(chǎn)品的基礎(chǔ)上,本文基于可編程性強(qiáng)的FPGA設(shè)計(jì)并實(shí)現(xiàn)了應(yīng)用于室內(nèi)的智能吸塵平臺。平臺具備自我導(dǎo)航、能清潔大部分空間,同時外形緊湊、運(yùn)行穩(wěn)定、噪音小。更重要的是其結(jié)構(gòu)簡單,具有人性化接口,便于操作和功能的進(jìn)一步開發(fā)。
1 平臺總構(gòu)成
本文提出的平臺整體框架設(shè)計(jì)如圖1所示,用裝有四個輪子的小車作為整個平臺的載體。以FPGA控制器作為整個平臺的主控器,通過I/O與光電傳感器jk1、jk2、jk3、jk4及碰撞開關(guān)jk5相連,實(shí)現(xiàn)平臺障礙的檢測;通過I/O輸出PWM波形,驅(qū)動揚(yáng)聲器和高低電平的變化以驅(qū)動LED的亮滅,組成聲光電路;通過控制電機(jī)驅(qū)動器的信號控制線來驅(qū)動步進(jìn)電機(jī)dj1、dj2和直流吸塵電機(jī)dj3,實(shí)現(xiàn)平臺的移動和吸塵。
2 硬件主體設(shè)計(jì)
系統(tǒng)主要由FPGA主控芯片、光電傳感器、碰撞開關(guān)、由2個STC89C52單片機(jī)控制的無線遙控發(fā)射模塊、兩種模式選擇芯片、聲光電路、驅(qū)動電機(jī)、吸塵器電機(jī)和整個系統(tǒng)的供電電路組成,如圖2所示。
2.1 FPGA芯片的選擇
根據(jù)平臺的總體設(shè)計(jì),可以得出對芯片的基本要求:(1)需要最少6路PWM波形輸出。(2)需要一路串行通信接口。(3)需要較高的12 V轉(zhuǎn)化為3.3 V的實(shí)時芯片。(4)較高的處理速度。(5)I/O接口要多。
綜合考慮這些條件,采用Altera公司生產(chǎn)的CycloneII系列FPGA中的EP2C35F672C6型號基本可滿足要求。它具有出色的運(yùn)算速度,成本低且?guī)в蠨SP模塊,具有超大的內(nèi)部存儲器、多通道PWM輸出以及靈活的設(shè)計(jì)和多種語言的綜合運(yùn)用,性價比較高[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ū)動系統(tǒng)是用控制器的5 V信號,而FPGA的端口電壓是3.3 V,必須將I/O電壓升壓到5 V,在這里利用的是74HCT245升壓芯片。
(2)時鐘和復(fù)位電路:時鐘電路中用ZPB-26-16 M作為有源晶振,頻率為16 MHz,使得串口波特率更加精確。同時可支持芯片內(nèi)部的PPL功能及ISP下載功能。復(fù)位電路采取硬件復(fù)位和軟件復(fù)位。
(3)調(diào)試JTAG和下載電路:因?yàn)镕PGA內(nèi)部可以直接搭建軟核ISP和JTAG,硬件電路接一個IDC-10的JTAG接口。
(4)配置存儲電路:選用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型號的光電開關(guān),用于檢測障礙和樓梯,此型號是圓柱型擴(kuò)散式最遠(yuǎn)距離5 cm、可調(diào)NPN型常開光電開關(guān)。碰撞開關(guān)主要與前傳感器配合完成對平臺前的保護(hù)。當(dāng)平臺碰到前方障礙時,觸發(fā)開關(guān),使平臺躲開障礙物。
(6)無線發(fā)送與接收模塊:選用匯睿微通XL02-232AP1型號無線模塊,XL02-232AP1是UART接口半雙工無線傳輸模塊,可以工作在433 MHz公用頻段,滿足無線管制要求。
(7)驅(qū)動和吸塵電機(jī):平臺采用前輪雙驅(qū)動,電機(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)聲光電路和自動清掃時間輸入顯示電路:聲光電路主要由發(fā)光二極管和蜂鳴器組成,直接連FPGA,提醒平臺工作狀態(tài)。利用4個按鍵(確定、初始、上調(diào)、下調(diào))輸入清掃時間,再由三個數(shù)碼管顯示設(shè)定時間。清掃時間由FPGA內(nèi)部的定時器計(jì)時,當(dāng)計(jì)時完成時,平臺即停止工作。
3 程序設(shè)計(jì)要點(diǎn)
將程序分為硬件程序設(shè)計(jì)和軟件程序設(shè)計(jì)兩部分,硬件程序設(shè)計(jì)要對硬件電路進(jìn)行時序仿真以確定達(dá)到調(diào)試的效果。
3.1 硬件程序設(shè)計(jì)與仿真
平臺主要通過傳感器和碰撞開關(guān)產(chǎn)生輸入信號,通過FPGA處理信號,最后FPGA把處理后的信號傳到電機(jī),由電機(jī)來完成一系列的動作,如表1所示。所以其邏輯設(shè)計(jì)是實(shí)現(xiàn)智能的關(guān)鍵。
結(jié)束硬件選型后,利用Quartus II搭建硬件原理圖,編譯后對jk1、jk2、jk3、 jk4進(jìn)行時序仿真,分析時序關(guān)系,估計(jì)設(shè)計(jì)的性能并檢查和消除競爭冒險[7-9]。仿真結(jié)果如圖3所示。
時序仿真圖中,clk為輸入PWM信號,clr和en兩個模塊的片選信號是由FPGA的SoPC通過軟件C語言控制。當(dāng)jk1=0、jk2&jk3=1時,output(PWM控制信號)會出現(xiàn)一段等于0之后產(chǎn)生20個波形。需要說明的是:圖3(a)時序仿真圖中,output出現(xiàn)一段PWM后出現(xiàn)低電平后接著出現(xiàn)了20個PWM,說明平臺在正常前進(jìn)遇到j(luò)k1=0、jk2&jk3=1時,會停車一段時間接著左拐或者右拐20個PWM角度。驅(qū)動器用的是4細(xì)分,輸出1個PWM波形步進(jìn)電機(jī)會轉(zhuǎn)動0.45°,應(yīng)該旋轉(zhuǎn)90°但是波形個數(shù)為:n=(90/0.45)=200個,在此用20個代替200個說明問題(圖3(b)的波形個數(shù)都會以此情況說明)。
由圖3(b)可以看到前段時間jk4為高電平,pwmout輸出正常脈沖,說明此時平臺處于正常吸塵狀態(tài)。后段時間jk4變?yōu)榈碗娖?,pwmout時延后輸出一小段脈沖,說明此時平臺檢測到樓梯,停車一段時間后調(diào)整方向。
3.2 軟件程序設(shè)計(jì)
硬件設(shè)計(jì)調(diào)試完成后,還要進(jìn)行軟件系統(tǒng)設(shè)計(jì)。在C語言文件中編寫C程序進(jìn)行SoPC的編程[10]。平臺工作總體算法流程如圖4所示。平臺接通電源,首先初始化進(jìn)入自動清掃和手動遙控清掃二選一模式;當(dāng)選擇自動清掃模式時,通過鍵盤輸入平臺自動清掃工作時間,在清掃過程中通過傳感器判斷是否遇到障礙物或樓梯并進(jìn)行處理。通過中斷,時刻查詢是否到達(dá)設(shè)置時間,如果沒到,則程序返回運(yùn)行;如果設(shè)置時間到,則程序結(jié)束,平臺停止工作。當(dāng)選擇遙控清掃時,平臺運(yùn)動受操作者的控制。
通過硬件選型、搭建調(diào)試和軟件語言的編寫調(diào)試,成功地制作出了簡易平臺,實(shí)現(xiàn)了既定的各種功能。相比市場上的同類產(chǎn)品,其結(jié)構(gòu)更簡單、成本更低、靈活性和擴(kuò)展性更強(qiáng),為研究者開發(fā)更多功能提供了一個硬件支持的平臺,具有實(shí)用價值。隨著微處理器的不斷進(jìn)步和傳感技術(shù)的發(fā)展,其性能可不斷改進(jìn),成本也可不斷下降。但在仿真和實(shí)現(xiàn)過程中發(fā)現(xiàn)其具體的流程算法不夠嚴(yán)謹(jǐn),日后有必要繼續(xù)對其進(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ì)(高級篇)[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.