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