課程設(shè)計(jì)--智能小車控制信號(hào)的fpga實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  智能小車控制信號(hào)的FPGA實(shí)現(xiàn)</p><p>  課程 名稱 現(xiàn)代電子技術(shù)課程實(shí)踐 </p><p>  指導(dǎo) 教師 </p><p>  班 級(jí) 11電子二班 </p><p>  姓 名

2、 </p><p>  學(xué) 號(hào) </p><p>  日 期 2014/12/23 </p><p><b>  摘要</b></p><p>  基于FPGA(現(xiàn)場(chǎng)可編程門陣列)的智能小車實(shí)現(xiàn)對(duì)一些危險(xiǎn),環(huán)境惡劣,遠(yuǎn)程處理的

3、一些施工場(chǎng)地或者研究的時(shí)候進(jìn)行監(jiān)測(cè)、控制、處理相關(guān)危險(xiǎn)的緊急情況??梢詭椭祟愒跓o(wú)法生存的情況下完成一些檢測(cè)任務(wù)。</p><p>  本論文是研究SOPC(片上可編程系統(tǒng))的基礎(chǔ)上,提出了基于FPGA的智能車能自動(dòng)采集賽道信息進(jìn)行跑動(dòng)的方案。利用FPGA來(lái)實(shí)現(xiàn)各個(gè)模塊所需要的信號(hào)。</p><p>  論文主要包括三個(gè)部分:在對(duì)整個(gè)智能車分析需要哪些信號(hào)的基礎(chǔ)上,設(shè)計(jì)了相應(yīng)的軟件程序。通

4、過QuartersⅡ編寫相應(yīng)的軟件程序,第一部分是產(chǎn)生驅(qū)動(dòng)CCD所需要的信號(hào),這部分有一組PWM(脈沖寬度調(diào)制)波控制信號(hào),A0(模擬電壓輸出)信號(hào),SI(串行輸入)輸入信號(hào),CLK(時(shí)鐘信號(hào));最核心的是CCD(電荷耦合元件)信號(hào)的處理,這部分如果解決就基本解決總的問題了。第二部分是電機(jī)驅(qū)動(dòng)所需要的信號(hào),這部分需要一組PWM波控制信號(hào);第三部分是舵機(jī)信號(hào)所需要的信號(hào),這部分需要一組PWM波控制信號(hào)。</p><p&

5、gt;  關(guān)鍵詞:CCD, FPGA,PWM,Smart car</p><p><b>  ABSTRACT</b></p><p>  Based FPGA (field programmable gate array) of the smart car to achieve some dangerous, harsh environment, some of t

6、he construction site or remote processing time study to monitor, control, dealing with emergency situations related hazards. You can help people complete the task in the case of some tests can not survive.</p><

7、;p>  This thesis is to study the SOPC (system-on-chip programmable), based on the proposed FPGA-based smart car can automatically collect information running track program. Using FPGA to achieve the desired signal for

8、 each module.</p><p>  Dissertation consists of three parts: in which signals the need for the smart car based on the analysis, design the corresponding software program. By QuartersⅡ preparation of the corr

9、esponding software program, the first part is to generate a signal required for driving the CCD, this part has a plurality of PWM (pulse width modulation) wave control signal, A0 (analog voltage output) signal, SI (seria

10、l input) of the input signal, CLK (clock signal); the core of the CCD(Charge-coupled device) sig</p><p>  Keyword: CCD, FPGA,PWM,Smart car</p><p><b>  目錄</b></p><p>  HE

11、FEI UNIVERSITY1</p><p><b>  一、 緒論5</b></p><p>  1.1 課題背景5</p><p>  1.2 本課題研究的目的和意義5</p><p>  1.3 課題系統(tǒng)框圖6</p><p>  二、 課程設(shè)計(jì)任務(wù)及要求6</p>

12、;<p>  2.1 設(shè)計(jì)任務(wù)6</p><p>  2.2 設(shè)計(jì)要求6</p><p>  2.3 功能設(shè)計(jì)7</p><p>  三、 整體設(shè)計(jì)思想7</p><p>  3.1設(shè)計(jì)細(xì)化框圖7</p><p><b>  四、 詳細(xì)設(shè)計(jì)8</b></p>

13、<p>  4.1 TSL1401 CCD工作原理8</p><p>  4.1.1 TSL1401引腳描述8</p><p>  4.1.2 功能描述8</p><p>  4.1.3 積分時(shí)間or曝光時(shí)間8</p><p>  4.2 設(shè)計(jì)思路9</p><p>  4.2.1 舵機(jī)9<

14、;/p><p>  4.2.2 驅(qū)動(dòng)10</p><p>  4.2.3 CCD12</p><p>  五、時(shí)序仿真波形12</p><p>  5.1 舵機(jī)PWM1仿真圖12</p><p>  5.2 CCD PWM2仿真圖13</p><p>  5.3 電機(jī)驅(qū)動(dòng)PWM3仿真圖1

15、3</p><p>  5.4 電機(jī)驅(qū)動(dòng)PWM4仿真圖14</p><p>  5.5 AD驅(qū)動(dòng)仿真波形14</p><p>  六、 設(shè)計(jì)總結(jié)14</p><p>  七、 參考文獻(xiàn)目錄15</p><p>  八、 附錄(源程序)16</p><p>  8.1 CCD驅(qū)動(dòng)程序1

16、6</p><p>  8.2 電機(jī)驅(qū)動(dòng)程序17</p><p>  8.3 舵機(jī)驅(qū)動(dòng)程序18</p><p>  8.4 AD驅(qū)動(dòng)程序及仿真波形18</p><p><b>  一、 緒論</b></p><p><b>  1.1 課題背景</b></p>

17、;<p>  隨著進(jìn)入現(xiàn)代高科技社會(huì),人們生活中有越來(lái)越多全自動(dòng)化的產(chǎn)品出現(xiàn)供我們使用,這使得我們的生活質(zhì)量不斷地提高,同時(shí)也提高了我們對(duì)生活質(zhì)量的要求。從以往到現(xiàn)在,例如:以前使用的馬車到現(xiàn)在的汽車,以前的人工通信到現(xiàn)在的移動(dòng)電話,以前手洗衣服到現(xiàn)在的洗衣機(jī)等等。都給我們的生活帶來(lái)了方便,而在一些未知的領(lǐng)域更需要探索,為了是我們自己冒風(fēng)險(xiǎn)小,工作更加的舒適,安全,所以需要一些智能的自動(dòng)化的能夠代替人類完成相應(yīng)工作的小機(jī)器

18、人一樣——智能車。</p><p>  智能車是一種智能化行進(jìn)的小車,能夠自動(dòng)采集信息來(lái)前進(jìn),而這種智能車能夠適應(yīng)不同的惡劣環(huán)境,不受空間,輻射,磁場(chǎng),重力,溫度等條件的影響,可以進(jìn)入人類無(wú)法進(jìn)入的條件進(jìn)行探測(cè)任務(wù)。從以前到現(xiàn)在,隨著社會(huì)的不斷發(fā)展,使得全自動(dòng)化的智能的東西越來(lái)越需要,從以前只應(yīng)用到軍工的產(chǎn)品到現(xiàn)在能夠民用,也是由于相關(guān)的技術(shù)越來(lái)越成熟,對(duì)這方面的研究更加深入。</p><p&

19、gt;  隨著現(xiàn)代科技不斷的發(fā)展,智能的東西應(yīng)用越來(lái)越廣泛,使得我們對(duì)于研究智能車應(yīng)用的領(lǐng)域的擴(kuò)展有以下發(fā)展的理由:</p><p>  (1)智能車可以代替人類進(jìn)入太空進(jìn)行探測(cè),例如登錄月球。</p><p> ?。?)智能車可以在一些高溫、有毒氣體、排爆等危險(xiǎn)工作情況中脫離出來(lái),讓其代之工作。</p><p> ?。?)可以完成清潔工作,例如自動(dòng)的吸塵器。<

20、;/p><p>  1.2 本課題研究的目的和意義</p><p>  智能化的東西是現(xiàn)在社會(huì)不可缺的工具,而智能小車在經(jīng)過一些改良的特殊設(shè)計(jì)后可以應(yīng)用到更多廣泛的領(lǐng)域,例如飛機(jī)的自動(dòng)駕駛,吸塵器,惡劣環(huán)境的檢測(cè)等。給我們的工作,日常生活,科學(xué)研究帶來(lái)了更多的方便。同時(shí)在一些民用的,工業(yè)用的智能車都存在一些問題:</p><p><b>  一、系統(tǒng)功能單一&

21、lt;/b></p><p>  比如探測(cè)智能車功能單一,而針對(duì)不同的探測(cè)對(duì)象要分別進(jìn)行不同的專門設(shè)計(jì),屬于單一型,我們可以設(shè)計(jì)一個(gè)通用型的產(chǎn)品出來(lái)。</p><p><b>  二、操作控制復(fù)雜</b></p><p>  由于只智能車的控制器比較復(fù)雜,在不同的控制場(chǎng)合需要專門的操作人員來(lái)操控,這增加了成本以及復(fù)雜性。</p>

22、;<p><b>  三、系統(tǒng)開發(fā)復(fù)雜</b></p><p>  現(xiàn)今好多同類型的智能車集成度不高,有的設(shè)計(jì)中很多分為器件組成的外圍電路,這使得在應(yīng)用的時(shí)候更加復(fù)雜,同時(shí)造成穩(wěn)定性低。</p><p>  FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程門陣列,通過FPGA解決了以上述問題,它是可編程邏輯器件,它的規(guī)模大

23、,可以代替幾千塊IC芯片,隨著技術(shù)的不斷發(fā)展,采用FPGA來(lái)編程設(shè)計(jì)帶來(lái)了許多便利,可以根據(jù)設(shè)計(jì)要求反復(fù)修改程序,能夠直接寫代碼、調(diào)試和維護(hù),這樣就降低了成本。</p><p>  1.3 課題系統(tǒng)框圖</p><p>  本系統(tǒng)框圖如圖1所示,主要分為三個(gè)大模塊:CCD信號(hào)產(chǎn)生模塊、舵機(jī)信號(hào)產(chǎn)生模和驅(qū)動(dòng)信號(hào)產(chǎn)生模塊。</p><p>  圖1 自頂向下設(shè)計(jì)框圖&l

24、t;/p><p>  二、 課程設(shè)計(jì)任務(wù)及要求</p><p><b>  2.1 設(shè)計(jì)任務(wù)</b></p><p> ?、?用Quartus Ⅱ 寫出設(shè)計(jì)的源程序;</p><p> ?、?用SignalTap Ⅱ嵌入式邏輯分析儀測(cè)試所產(chǎn)生信號(hào)的波形;</p><p> ?、?使用邏輯分析儀或者示波

25、器測(cè)試所產(chǎn)生信號(hào)的波形;</p><p> ?、?心得體會(huì)——本次在實(shí)踐課程中你的感受;你從實(shí)踐課程中獲得了哪些收益;本次實(shí)實(shí)踐課程的成功之處;本次實(shí)踐課程中還有待改進(jìn)的地方;</p><p><b>  2.2 設(shè)計(jì)要求</b></p><p> ?、?熟練地運(yùn)用數(shù)字系統(tǒng)的設(shè)計(jì)方法進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì);</p><p> 

26、 ② 能使用FPGA芯片產(chǎn)生智能小車所需要的各路信號(hào)。</p><p><b>  2.3 功能設(shè)計(jì)</b></p><p>  ① 舵機(jī)的PWM波產(chǎn)生;</p><p>  ② 驅(qū)動(dòng)的PWM波產(chǎn)生,使能端高電平;</p><p>  ③ 線性CCD的PWM波產(chǎn)生,使能端高電平。</p><p>

27、<b>  三、 整體設(shè)計(jì)思想</b></p><p><b>  3.1設(shè)計(jì)細(xì)化框圖</b></p><p> ?、伲憾鏅C(jī)的PWM波產(chǎn)生</p><p>  圖2 舵機(jī)PWM波產(chǎn)生框圖</p><p>  ②:驅(qū)動(dòng)的PWM波產(chǎn)生;</p><p>  圖3 驅(qū)動(dòng)PWM波產(chǎn)生

28、框圖</p><p> ?、郏篊CD的PWM波產(chǎn)生;</p><p>  圖4 CCD信號(hào)產(chǎn)生框圖</p><p><b>  四、 詳細(xì)設(shè)計(jì)</b></p><p>  4.1 TSL1401 CCD工作原理</p><p>  4.1.1 TSL1401引腳描述</p><

29、p>  TSL1401引腳如下表1所示:</p><p>  表1 CCD集成模塊引腳</p><p>  4.1.2 功能描述</p><p>  TSL1401線性CCD傳感器包含128個(gè)線性排列的光電二極管。每個(gè)光電二極管都有各自的積分電路,以下我們將此電路統(tǒng)稱為像素。每個(gè)像素所采集的圖像灰度值與它所感知的光強(qiáng)和積分時(shí)間成正比。以上名詞所對(duì)應(yīng)的物理量綱為

30、:</p><p> ?。?)灰度值:輸出電壓Vout;</p><p> ?。?)光強(qiáng):器件對(duì)給定光波長(zhǎng)在電壓上的反應(yīng)Ve;(Ve=V/(μJ/cm2)*μW/cm2)</p><p> ?。?)積分時(shí)間:即曝光時(shí)間,tint。</p><p>  4.1.3 積分時(shí)間or曝光時(shí)間</p><p> ?、?TSL14

31、01曝光時(shí)間</p><p>  TSL1401技術(shù)文檔中關(guān)于積分時(shí)間做了大量說(shuō)明,其實(shí)歸根結(jié)底可以由圖4-2表示。圖中第19個(gè)CLK到下一個(gè)SI開始的這段時(shí)間,就是CCD的積分時(shí)間,即曝光時(shí)間。之前的18個(gè)CLK的時(shí)間為積分器的復(fù)位時(shí)間。</p><p> ?、?關(guān)于曝光時(shí)間長(zhǎng)短討論</p><p>  根據(jù)TSL1401技術(shù)文檔的提供的數(shù)據(jù),該器件的最大曝光時(shí)間

32、為100ms,即無(wú)論你實(shí)際曝光多長(zhǎng)時(shí)間,只要超過100ms,其圖像效果和100ms是一樣的。那么如何選擇合適的曝光時(shí)間,就成了需要面對(duì)的問題。</p><p>  即使是相同的物體,在不同的光線環(huán)境下得到的圖像是不一樣的。從理論上講,在光線較暗的環(huán)境中,應(yīng)該增加曝光時(shí)間,以換取亮度合適的圖像;在光線較強(qiáng)的環(huán)境中,應(yīng)該減少曝光時(shí)間,以防止圖像出現(xiàn)飽和現(xiàn)象。</p><p>  其針對(duì)像素輸出

33、值A(chǔ)O的采集方法是一樣的,如圖5所示。使用者需要在SI持續(xù)高電平20ns后產(chǎn)生第1個(gè)CLK信號(hào),并在每個(gè)CLK信號(hào)的下降沿時(shí)采集AO引腳的輸出的電壓值。在采集了128個(gè)像素后,還必須生成第129個(gè)CLK以結(jié)束本次采集。在第129個(gè)CLK之后到下一個(gè)SI信號(hào)之間的時(shí)間就是下次采集的曝光時(shí)間(這里說(shuō)的曝光時(shí)間是忽略了第19到129個(gè)CLK之間的時(shí)間)。</p><p><b>  圖5 操作波形圖</

34、b></p><p><b>  4.2 設(shè)計(jì)思路</b></p><p>  根據(jù)智能小車所需要的模塊,系統(tǒng)設(shè)計(jì)采用自頂向下設(shè)計(jì)方法,由舵機(jī)部分、驅(qū)動(dòng)部分、CCD部分三個(gè)部分組成,先編寫各個(gè)模塊的程序,通過仿真,實(shí)際測(cè)量。如果每個(gè)模塊仿真和相應(yīng)測(cè)量的信號(hào)與理論一樣,那就算成功了。最后就是把每個(gè)模塊的所需要的信號(hào)整合到一起。</p><p&g

35、t;<b>  4.2.1 舵機(jī)</b></p><p>  舵機(jī)是一個(gè)微型的伺服控制系統(tǒng),具體的控制原理可以用下圖6表示: </p><p><b>  圖6 舵機(jī)控制</b></p><p>  工作原理是控制電路接收信號(hào)源的控制脈沖,并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng);齒輪組將電機(jī)的速度成大倍數(shù)縮小,并將電機(jī)的輸出扭矩放大響應(yīng)倍數(shù),然后

36、輸出;電位器和齒輪組的末級(jí)一起轉(zhuǎn)動(dòng),測(cè)量舵機(jī)軸轉(zhuǎn)動(dòng)角度;電路板檢測(cè)并根據(jù)電位器判斷舵機(jī)轉(zhuǎn)動(dòng)角度,然后控制舵機(jī)轉(zhuǎn)動(dòng)到目標(biāo)角度或保持在目標(biāo)角度。</p><p>  模擬舵機(jī)需要一個(gè)外部控制器(遙控器的接收機(jī))產(chǎn)生脈寬調(diào)制信號(hào)來(lái)告訴舵機(jī)轉(zhuǎn)動(dòng)角度,脈沖寬度是舵機(jī)控制器所需的編碼信息。舵機(jī)的控制脈沖周期20ms,脈寬從0.5ms-2.5ms,分別對(duì)應(yīng)-90度到+90度的位置。如下圖7所示: </p><

37、;p><b>  圖7 舵機(jī)打角原理</b></p><p>  由上圖可以看出,可以給適合的PWM波信號(hào)就可以控制轉(zhuǎn)動(dòng)的角度。</p><p><b>  4.2.2 驅(qū)動(dòng)</b></p><p><b>  模塊特性 :</b></p><p>  ◆一路電機(jī)驅(qū)動(dòng)輸出

38、,單板典型最大電流68A,最小在50A; </p><p>  ◆增加總線驅(qū)動(dòng)芯片74LVC245,提高信號(hào)驅(qū)動(dòng)能力,同時(shí)隔離BTN7961和單片機(jī),保護(hù)BTN7961和單片機(jī)芯片,防止BTN7961損壞后將電池電壓直接輸入到單片機(jī),進(jìn)而燒壞單片機(jī)控制引腳; </p><p>  ◆增加MIC5219電源芯片,為總線驅(qū)動(dòng)芯片74LVC245提供電源,實(shí)現(xiàn)驅(qū)動(dòng)芯片和單片機(jī)電平匹配。</

39、p><p>  ◆電流采樣電路增加濾波電路,電流信號(hào)經(jīng)過濾波處理后輸入單片機(jī),采集信號(hào)更精確; </p><p>  ◆電機(jī)輸出端增加壓敏電阻,防止電機(jī)瞬間換向產(chǎn)生峰值電壓進(jìn)而損壞其它芯片; </p><p>  ◆板子布線進(jìn)過優(yōu)化,過電流能力強(qiáng);同時(shí)也更有利于散熱; </p><p>  ◆驅(qū)動(dòng)板工作電壓范圍:7V~14V;最大不能超過16V;

40、</p><p>  ◆電機(jī)工作頻率范圍:0~25KHz;推薦驅(qū)動(dòng)頻率范圍:3KHz~8KHz;</p><p>  ◆原裝進(jìn)口英飛凌芯片,該驅(qū)動(dòng)模塊貼片默認(rèn)為BTN7971,兼容BTS7960B(默認(rèn))、 BTN7960B、BTS7970B、BTN7970B、BTN7971B;性能比其它芯片更優(yōu)秀。 </p><p><b>  圖8 驅(qū)動(dòng)模塊</

41、b></p><p><b>  圖9 驅(qū)動(dòng)電路</b></p><p>  信號(hào)對(duì)應(yīng)關(guān)系: Motor_In1對(duì)應(yīng)IN1、Motor_In2對(duì)應(yīng)IN2、Motor_Inh對(duì)應(yīng)INH.其中INH作為芯片的使能信號(hào)使用。INH——使能引腳,IN1——PWM3,IN2——PWM4,3.3V輔助電源。所以在驅(qū)動(dòng)這一塊主要是通過FPGA芯片上輸出兩路PWM波就可以了,外

42、加上一個(gè)使能端口高電平。</p><p><b>  4.2.3 CCD</b></p><p>  主要是CCD這一塊的處理,本次設(shè)計(jì)所用的CCD是TSL1401,CCD在驅(qū)動(dòng)信號(hào)的作用下進(jìn)行曝光,將采集到的模擬電壓輸出,其中在白色賽道的電壓值要明顯大于黑色賽道部分,本次設(shè)計(jì)是將所得的模擬電壓經(jīng)過A/D芯片得到相應(yīng)的數(shù)字量,即0(黑)和1(白),最后通過處理這些信號(hào)

43、控制小車軌跡。這里有曝光量、曝光時(shí)間和曝光周期三個(gè)概念,曝光量由曝光時(shí)間和曝光周期確定,曝光量越大,CCD輸出的電壓值越高,但電壓太高就會(huì)導(dǎo)致CCD輸出出現(xiàn)飽和,即在黑線和白線所得的電壓一樣,這種情況不利于賽道辨別。相反曝光時(shí)間太短,CCD輸出的電壓又很低,幾乎接近于零,所以控制好曝光量對(duì)小車控制很重要。曝光周期就相當(dāng)于CCD什么時(shí)候采集一次賽道信息,并將所得的信息轉(zhuǎn)換為模擬電壓,所以曝光周期不能太大,否則小車的反映速度會(huì)降低,本次設(shè)計(jì)

44、我們?nèi)テ毓庵芷谠?0ms左右,這樣在程序中通過控制曝光時(shí)間就可以很好的控制曝光量,我們這次采用的是動(dòng)態(tài)的曝光時(shí)間,當(dāng)在光線強(qiáng)的時(shí)候是曝光時(shí)間較小,光線較弱的時(shí)候是曝光時(shí)間大,這樣就可以很好的控制曝光量了。</p><p><b>  五、時(shí)序仿真波形</b></p><p>  5.1 舵機(jī)PWM1仿真圖</p><p>  圖10 舵機(jī)PWM

45、波</p><p>  5.2 CCD PWM2仿真圖</p><p>  圖11CCD的PWM波</p><p>  5.3 電機(jī)驅(qū)動(dòng)PWM3仿真圖</p><p>  圖12 電機(jī)驅(qū)動(dòng)的PWM波</p><p>  5.4 電機(jī)驅(qū)動(dòng)PWM4仿真圖</p><p>  PWM4可以直接給低電平

46、接地。</p><p>  5.5 AD驅(qū)動(dòng)仿真波形</p><p>  圖13 AD驅(qū)動(dòng)仿真波形</p><p><b>  六、 設(shè)計(jì)總結(jié)</b></p><p>  本次課程設(shè)計(jì)是用FPGA產(chǎn)生智能小車的各種控制信號(hào),和單片機(jī)相比,F(xiàn)PGA有著更快的時(shí)鐘和運(yùn)算速度,處理數(shù)據(jù)也變得更快,更精確。當(dāng)然FPGA主要是應(yīng)用

47、于運(yùn)算的,本次利用其控制智能車的驅(qū)動(dòng)信號(hào)主要是為了從單片機(jī)到FPGA的一個(gè)過渡。</p><p>  通過我們組的努力,最終按要求產(chǎn)生了電機(jī)驅(qū)動(dòng)信號(hào),舵機(jī)驅(qū)動(dòng)信號(hào),CCD驅(qū)動(dòng)信號(hào),A/D驅(qū)動(dòng)信號(hào),并用Quartus Ⅱ軟件仿真出各個(gè)波形。</p><p>  CCD:CCD驅(qū)動(dòng)程序程序的產(chǎn)生主要是利用時(shí)鐘分頻后,再計(jì)數(shù)判斷產(chǎn)生,主要是SI信號(hào)、CLK信號(hào),設(shè)計(jì)是要求產(chǎn)生128個(gè)CLK信號(hào)是

48、SI信號(hào)翻轉(zhuǎn)一個(gè)時(shí)鐘,其中CLK時(shí)鐘周期為1us,試驗(yàn)仿真所得結(jié)果和理論預(yù)期的一致。</p><p>  AD:AD驅(qū)動(dòng)信號(hào)主要是用來(lái)處理CCD輸出的AO信號(hào),將其輸出的模擬量轉(zhuǎn)化為數(shù)字信號(hào),這樣處理起來(lái)更加簡(jiǎn)單,試驗(yàn)結(jié)果和理論預(yù)期一致。</p><p>  舵機(jī):舵機(jī)驅(qū)動(dòng)信號(hào)主要是用于控制小車行駛方向,周期為兩毫秒,通過控制脈寬來(lái)其打角的方向和度數(shù),本次只產(chǎn)生一個(gè)打零度角的信號(hào),實(shí)際仿真

49、波形和理論計(jì)算一致。</p><p>  電機(jī):電機(jī)主要由兩路PWM信號(hào)控制,其中一路給零,另外一路提供脈寬可調(diào)的PWM,頻率設(shè)置為10Khz,本次設(shè)計(jì)要求脈寬為周期的10%,即為0.005ms,試驗(yàn)仿真波形和理論一致。</p><p>  在這過程中,我學(xué)到了很多知識(shí),了解了FPGA的強(qiáng)大,因?yàn)槲野l(fā)現(xiàn)用FPGA幾乎可以完成單片機(jī)的所有功能,并且我們所懂的還只是鳳毛麟角,很多FPGA的功能

50、我們都還不知道。不僅如此,本次的課程設(shè)計(jì)同時(shí)提高了我們對(duì)智能車控制方面的了解。之前有些不懂的地方從這次新學(xué)習(xí)后又明白了很多,對(duì)各個(gè)信號(hào)的作用有了更多的了解。</p><p>  在設(shè)計(jì)的過程中難免會(huì)遇到了一些問題,尤其是在CCD驅(qū)動(dòng)信號(hào)的產(chǎn)生中起初并沒有什么思路,后來(lái)在隊(duì)友和老師的幫助下得到了解決,我在老師給予我的關(guān)于CCD的論文中得到了很多的啟發(fā),并最終得到我們所需的驅(qū)動(dòng)信號(hào)。雖然本次課程設(shè)計(jì)將要結(jié)束,但是我對(duì)

51、FPGA的學(xué)習(xí)會(huì)一直堅(jiān)持下去,本次課程設(shè)計(jì)的也會(huì)對(duì)我今后的學(xué)習(xí)之路有著很大的幫助。</p><p><b>  七、 參考文獻(xiàn)目錄</b></p><p>  [10] 康光華,《電子技術(shù)基礎(chǔ)》 數(shù)字部分[M].北京.高教出版社.2006.1</p><p>  [11] 潘松,《EDA實(shí)用教程》[M].北京.科學(xué)出版社,2002.10<

52、/p><p>  [12] 潘松,《EDA技術(shù)與VHDL》[M].北京.清華大學(xué)出版社,2005.7</p><p>  [13] 候建軍,郭勇.SOPC技術(shù)基礎(chǔ)教程 [M].北京.清華大學(xué)出版社,2013</p><p>  [14] 周立功,SOPC嵌入式系統(tǒng)基礎(chǔ)教程 [M].北京.北京航空航天大學(xué)出版社,2006</p><p>  [15

53、] 盧杰,賴毅.VHDL與數(shù)字電路設(shè)計(jì).北京:科學(xué)出版社,2001</p><p>  [16] 王金明,楊吉斌.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL.北京:電子工業(yè)出版社,2002 </p><p>  [17] 張明.Verilog HDL實(shí)用教程.成都:電子科技大學(xué)出版社,1999</p><p>  [19] J.Bhasker著,徐振林等譯.Verilog

54、 HDL硬件描述語(yǔ)言.北京:機(jī)械工業(yè)出版社,2000</p><p>  [20] 劉明業(yè),將敬旗,刁嵐松等譯.硬件描述語(yǔ)言Verilog.北京:清華大學(xué)出版社,2001</p><p>  八、 附錄(源程序)</p><p>  8.1 CCD驅(qū)動(dòng)程序</p><p>  module ccd (clk,//50M系統(tǒng)時(shí)鐘</p&g

55、t;<p>  clk_500,//clk驅(qū)動(dòng)信號(hào),周期為2us</p><p>  si);//si驅(qū)動(dòng)信號(hào)</p><p>  input clk;</p><p>  output si,clk_500;</p><p>  parameter count_128=8'd128,</p>&

56、lt;p>  DIV= 100;</p><p>  reg si,clk_500; //500ns </p><p>  reg [14:0] count1=0;</p><p>  reg [24:0] count;</p><p>  always @(posedge clk)//得到clk驅(qū)動(dòng)信號(hào)<

57、;/p><p><b>  begin</b></p><p>  if( count == DIV)</p><p><b>  begin</b></p><p>  count <= 0;</p><p>  clk_500= ~clk_500;</p>

58、<p><b>  end</b></p><p><b>  else</b></p><p>  count <= count + 1'b1;</p><p><b>  end</b></p><p>  always@(posedge clk

59、_500 )//得到si驅(qū)動(dòng)信號(hào)</p><p>  if(count1==count_128)</p><p><b>  begin</b></p><p>  count1<=1;</p><p><b>  si<=1;</b></p><p><b

60、>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p><b>  si<=0;</b></p><p>  count1<=count1+1;//狀態(tài)計(jì)數(shù)</p&g

61、t;<p><b>  end</b></p><p><b>  endmodule</b></p><p>  8.2 電機(jī)驅(qū)動(dòng)程序</p><p>  module duoji(clk,out,m,clk_1M);//clk為50M時(shí)鐘,clk_1000為1M,out為輸出信號(hào),z和m分別為周期和脈寬&

62、lt;/p><p>  input clk;//clk=50M=50 000 000</p><p>  input [7:0] m;//0.5ms-0度 1ms-45度 1.5ms90度 2ms135度 2.5ms180度</p><p>  output out,clk_1M; </p><p>  reg [15:0] count;

63、//PMW脈寬計(jì)數(shù),周期計(jì)數(shù)</p><p><b>  reg out;</b></p><p>  reg clk_1M;//1Mhz</p><p>  reg [24:0] count1;</p><p>  parameter z=8'd100,//周期為0.1ms</p><p

64、>  div=10'd50;</p><p>  always @(posedge clk)//分頻得到子時(shí)鐘</p><p><b>  begin</b></p><p>  if( count1 == div)</p><p><b>  begin</b></p>

65、<p>  count1 <= 0;</p><p>  clk_1M= ~clk_1M;</p><p><b>  end</b></p><p><b>  else</b></p><p>  count1 <= count1 + 1'b1;</p&g

66、t;<p><b>  end</b></p><p>  always @(posedge clk_1M)</p><p><b>  begin</b></p><p>  count=count+1;</p><p>  if(count>z) //打到周期預(yù)設(shè)定的數(shù)

67、值,就清零</p><p><b>  begin</b></p><p><b>  count=0;</b></p><p><b>  end</b></p><p>  if(count<m) </p><p><b&g

68、t;  out=1;</b></p><p>  else out=0; </p><p><b>  end</b></p><p>  endmodule </p><p>  8.3 舵機(jī)驅(qū)動(dòng)程序</p><p>  module duoji(clk,ou

69、t,m,clk_1000);//clk為50M時(shí)鐘,clk_1000為1M,out為輸出信 號(hào),z和m分別為周期和脈寬</p><p>  input clk;//clk=50M=50 000 000</p><p>  input [7:0] m;//0.5ms-0度 1ms-45度 1.5ms90度 2ms135度 2.5ms180度</p><p>  o

70、utput out,clk_1000; </p><p>  reg [15:0] count; //PMW脈寬計(jì)數(shù),周期計(jì)數(shù)</p><p><b>  reg out;</b></p><p>  reg clk_1000;//50khz</p><p>  reg [24:0] count1;</p&

71、gt;<p>  parameter z=8'd20000,//周期為20ms</p><p>  div=10'd50;</p><p>  always @(posedge clk)//分頻得到子時(shí)鐘</p><p><b>  begin</b></p><p>  if( coun

72、t1 == div)</p><p><b>  begin</b></p><p>  count1 <= 0;</p><p>  clk_1000= ~clk_1000;</p><p><b>  end</b></p><p><b>  else&

73、lt;/b></p><p>  count1 <= count1 + 1'b1;</p><p><b>  end</b></p><p>  always @(posedge clk_1000)</p><p><b>  begin</b></p><

74、;p>  count=count+1;</p><p>  if(count>z) //打到周期預(yù)設(shè)定的數(shù)值,就清零</p><p><b>  begin</b></p><p><b>  count=0;</b></p><p><b>  end</b>

75、;</p><p>  if(count<m) </p><p><b>  out=1;</b></p><p>  else out=0; </p><p><b>  end</b></p><p>  endmodule

76、</p><p>  8.4 AD驅(qū)動(dòng)程序及仿真波形</p><p>  module ADC0809_drive(clk_500kHz,</p><p><b>  rst_n,</b></p><p>  EOC,//約100us后EOC變?yōu)楦唠娖睫D(zhuǎn)換結(jié)束</p><p>  START,//

77、啟動(dòng)信號(hào),上升沿有效(至少100ns)</p><p>  OE,//高電平打開三態(tài)緩沖器輸出轉(zhuǎn)換數(shù)據(jù)</p><p>  ALE,//高電平有效,選擇信道口</p><p>  ADDA,//因?yàn)锳DDB,ADDC都接地了,這里只有ADDA為變量</p><p>  DATA, //轉(zhuǎn)換數(shù)據(jù)</p><p><

78、b>  DATA_R);</b></p><p>  input EOC,clk_500kHz,rst_n;</p><p>  input[7:0] DATA;</p><p>  output reg START,OE,ALE,ADDA;</p><p>  output reg [7:0] DATA_R;</p&

79、gt;<p>  reg[4:0] CS,NS;</p><p><b>  parameter</b></p><p>  IDLE=5'b00001,</p><p>  START_H=5'b00010,</p><p>  START_L=5'b00100,</p>

80、;<p>  CHECK_END=5'b01000,</p><p>  GET_DATA=5'b10000;</p><p>  always @(posedge clk_500kHz)</p><p><b>  case(CS)</b></p><p><b>  IDLE:

81、</b></p><p>  NS=START_H;</p><p>  START_H: </p><p>  NS=START_L;</p><p><b>  START_L:</b></p><p>  NS=CHECK_END;</p><p>

82、;  CHECK_END:</p><p><b>  if(EOC)</b></p><p>  NS=GET_DATA;</p><p><b>  else</b></p><p>  NS=CHECK_END;</p><p><b>  GET_DATA:

83、</b></p><p>  NS=IDLE; </p><p><b>  default:</b></p><p><b>  NS=IDLE;</b></p><p><b>  endcase </b></p><p>  

84、always @(posedge clk_500kHz)</p><p>  if(!rst_n)</p><p><b>  CS<=IDLE;</b></p><p><b>  else </b></p><p><b>  CS<=NS;</b></p

85、><p>  always @(posedge clk_500kHz)</p><p><b>  case(NS)</b></p><p><b>  IDLE:</b></p><p><b>  begin</b></p><p><b> 

86、 OE<=0;</b></p><p><b>  START<=0;</b></p><p><b>  ALE<=0;</b></p><p><b>  ADDA<=1;</b></p><p><b>  end</b

87、></p><p><b>  START_H:</b></p><p><b>  begin</b></p><p><b>  OE<=0;</b></p><p><b>  START<=1;</b></p>&l

88、t;p><b>  ALE<=1;</b></p><p><b>  ADDA<=1;</b></p><p><b>  end</b></p><p><b>  START_L:</b></p><p><b>  be

89、gin</b></p><p><b>  OE<=0;</b></p><p><b>  START<=0;</b></p><p><b>  ALE<=1;</b></p><p><b>  end</b></

90、p><p>  CHECK_END:</p><p><b>  begin</b></p><p><b>  OE<=0;</b></p><p><b>  START<=0;</b></p><p><b>  ALE<=

91、0;</b></p><p><b>  end</b></p><p><b>  GET_DATA:</b></p><p><b>  begin</b></p><p><b>  OE<=1;</b></p>&l

92、t;p>  DATA_R<=DATA;</p><p><b>  START<=0;</b></p><p><b>  ALE<=0;</b></p><p><b>  end</b></p><p><b>  default:<

93、/b></p><p><b>  begin</b></p><p><b>  OE<=0;</b></p><p><b>  START<=0;</b></p><p><b>  ALE<=0;</b></p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論