文獻標識碼: A
文章編號: 0258-7998(2013)07-0047-03
SoPC(System on a Programmable Chip)是一種特殊的嵌入式系統(tǒng)。首先它是片上系統(tǒng),即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設計方式,可裁剪、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能[1]。SoPC技術是將盡可能大而完整的電子系統(tǒng)(包括嵌入式處理器系統(tǒng)、接口系統(tǒng)、硬件協(xié)處理器或加速系統(tǒng)、數(shù)字通信系統(tǒng)、存儲電路以及普通數(shù)字系統(tǒng)等)在單一FPGA中嵌入實現(xiàn)。因此,可以使得整個設計在規(guī)模、可靠性、體積、功耗、功能、上市周期、開發(fā)成本、產(chǎn)品維護及其硬件升級等多方面實現(xiàn)最優(yōu)化[2]。從未來電子系統(tǒng)設計技術走勢上看,SoPC技術更具發(fā)展性和前瞻性,被稱為“半導體產(chǎn)業(yè)的未來”[3-4]。
1 系統(tǒng)總體設計方案
系統(tǒng)設計要求小車由起始端出發(fā)沿黑線行駛,在測到第一條黑線后有明顯的加速,測到第二條黑線后有明顯的減速,測到第三條黑線后開始尋光,測到第四條黑線后停止。在行駛過程中,車首液晶顯示屏實時顯示小車運行的時間和路程。下面給出兩種方案:
(1)方案1:使用8051系列的單片機芯片。8051系列的單片機芯片使用多年,在市面上應用廣泛。各種電路也比較成熟,但其速度相對較慢,指令都是串行執(zhí)行,在增加液晶顯示等模塊后使得CPU對檢測電路的掃描變慢。
(2)方案2:使用E-Play-SoPC開發(fā)套件上的Cyclone系列FPGA芯片EP1C12Q240C8。FPGA運算速度很快,且其進程以并列的形式執(zhí)行,即使增加更多的功能模塊(在FPGA芯片的資源范圍內(nèi))也絲毫不影響對檢測信號的響應速度[5]。
比較兩種方案,為使小車平穩(wěn)運行且功能更加智能化,選擇了方案2。
系統(tǒng)整體框圖如圖1所示,主要由控制核心FPGA、尋軌電路、尋光電路、測障電路、液晶顯示模塊、電機驅(qū)動電路、LED指示燈指示模塊、語音提示模塊和點陣顯示模塊組成[6]。
2 硬件設計
2.1 尋軌電路
尋軌電路采用兩對紅外線傳感器,當傳感器未檢測到黑線時,紅外線接收管相當于短路,比較器負向端的電位在4 V左右;當檢測到黑線時,紅外線接收管相當于開路,比較器負向端的電位在2 V左右。因此,將比較器正向端電位器的比較電位調(diào)到3 V即可實現(xiàn)對黑線的檢測。未檢測到黑線時電路輸出低電平,檢測到黑線時輸出高電平。其實現(xiàn)電路如圖2所示。
2.3 電機驅(qū)動電路
小車采用雙輪驅(qū)動,使用驅(qū)動芯片L293D,其工作電壓為9 V。電機驅(qū)動電路如圖4所示,引腳1和引腳9分別是電機輸出的控制引腳,當引腳1或引腳9為低電平時,無論引腳2、引腳7、引腳10、引腳15的輸入為何值,引腳3、引腳6、引腳11、引腳14的輸出都為低電平;當引腳1或引腳9為高電平時,引腳3、引腳6、引腳11、引腳14輸出的電平與引腳2、引腳7、引腳10、引腳15輸入電平的高低相應。
3 軟件設計
本文設計的小車中,基本運行程序可分為黑線計數(shù)模塊、尋軌模塊、尋光模塊以及計時模塊、路程測量模塊、液晶顯示模塊、LED指示燈指示模塊等輔助功能模塊。其行駛程序流程圖如圖6所示。
(1)尋軌模塊:在黑線數(shù)為0、1、2時執(zhí)行此模塊。當車底左端的傳感器檢測到黑線時,小車的左輪停止轉(zhuǎn)動,右輪按原速轉(zhuǎn)動;若右端的傳感器檢測到黑線,則反之。當黑線數(shù)為0、2時小車為減速狀態(tài),通過對電機驅(qū)動芯片L293D的控制引腳輸出占空比為25%的方波信號實現(xiàn)。當黑線數(shù)為1時,小車運行在加速狀態(tài),此時直接電機驅(qū)動芯片L293D的控制引腳輸出高電平。
(2)尋光模塊:當黑線數(shù)為3時運行本模塊,當光強檢測電路的檢測信號為高電平時認為左端的光照較強,小車左拐,反之右拐。
(3)路程測量模塊:在小車的車輪上有黑、白相間且間距相同的扇形花紋,當車輪轉(zhuǎn)動時車輪內(nèi)側(cè)的光電傳感器產(chǎn)生高低變化的電信號,經(jīng)過比較器比較產(chǎn)生脈沖信號,控制芯片通過對脈沖計數(shù)并與標定的數(shù)值相乘得出小車行駛的路程。
(4)LED指示燈指示模塊,車首兩端分別有3個顏色分別為紅、黃、綠的LED指示燈指示小車的速度,綠燈亮時小車行駛在高速區(qū),黃燈亮時小車行駛在低速區(qū),紅燈亮時小車到達終點停止。車前部兩側(cè)各有一個LED指示燈指示小車拐動方向,左拐時左燈亮,右拐時右燈亮。車尾有4個LED指示燈指示小車已測黑線的數(shù)量,每測一條黑線增加一個LED指示燈亮。
4 抗干擾措施
需要對黑線檢測和障礙物檢測的信號采取抗干擾措施。具體如下:當檢測到黑線或障礙物時,延時一段時間后再次檢測,若還是黑線或障礙物,則確定其為黑線或障礙物,否則認為其為干擾不予理睬[7]。具體實現(xiàn)程序如下:
PROCESS(a,clk)
VARIABLE m1,m2 : INTEGER RANGE 0 TO 8191;
BEGIN
IF clk=′1′ AND clk'EVENT THEN
IF a=″00″ THEN
m2:=0;
IF m1=8190 THEN
m1:=0;
IF a=″00″ THEN
r1<=′1′;
END IF;
ELSE
m1:=m1+1;
END IF;
ELSE
m1:=0;
IF m2=8190 THEN
m2:=0;
r1<=′0′;
ELSE
m2:=m2+1;
END IF;
END IF;
END IF;
END PROCESS;
5 仿真測試
仿真測試時序如圖7所示。其中,A所指示的位置為車底的兩個光電傳感器同時檢測到黑線,經(jīng)過去抖處理后黑線數(shù)目加1;B所指示的區(qū)域為高速區(qū),小車高速行駛在此區(qū)域,當車底一側(cè)的光電傳感器檢測到黑線時,小車相應地調(diào)整軌跡使其沿黑線行駛;C所指示的區(qū)域為減速區(qū),小車在此區(qū)域中行駛的速度較慢,約為高速區(qū)的1/4,此區(qū)域中存在很多彎道,當車底一側(cè)的光電傳感器檢測到黑線時,小車也相應地調(diào)整軌跡沿黑線行駛;D所指示的區(qū)域為尋光區(qū),小車進入此區(qū)域后立刻開始尋光并朝光線較強的方向行駛,小車在此區(qū)域中的速度與低速區(qū)相同;E所指示的位置為終點,當小車檢測到終點線后停止運行。由仿真圖可知,小車在理想情況下可順利地通過高速尋軌區(qū)、低速尋軌區(qū)、尋光區(qū),并在檢測到終點線后停止運行。
FPGA的運算速度非??欤WC了小車的平穩(wěn)運行,且其并行執(zhí)行過程讓點陣式液晶顯示更加方便。FPGA在程序并行控制方面充分顯示了其優(yōu)越性,并且運行準確。今后將會對本設計進行擴展以及更進一步的開發(fā)。
參考文獻
[1] 何偉,秦江云,張玲,等.基于SoPC的多用途無線監(jiān)控報 警系統(tǒng)[J].電子技術應用,2011,37(2):33-35.
[2] 周渝斌.基于FPGA+DSP的智能車全景視覺系統(tǒng)[J].電子技術應用,2011,37(3):38-41.
[3] POUSSIER S,RABAH H,WEBER S.SoPC-based embedded smart strain gage sensor[C].12th International Conference, FPL 2002 Montpellier,F(xiàn)rance,2002:1131-1134.
[4] Cao Liting,Jiang Wei,Zhang Zhaoli.Automatic meter reading system based on wireless mesh networks and SoPC technology[C].Intelligent Networks and Intelligent Systems,ICINIS'09,Second International Conference,2009:142-145.
[5] 雷伏容.VHDL電路設計[M].北京:清華大學出版社,2007.
[6] 徐惠民,安德寧.數(shù)字邏輯設計與VHDL語言描述[M].北京:機械工業(yè)出版社,2010.
[7] 薛小剛,葛毅敏.Xilinx ISE9.x FPGA/CPLD設計指南[M].北京:人民郵電出版社,2007.