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