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