基于FPGA無葉風扇控制器的與制作_第1頁
基于FPGA無葉風扇控制器的與制作_第2頁
基于FPGA無葉風扇控制器的與制作_第3頁
基于FPGA無葉風扇控制器的與制作_第4頁
基于FPGA無葉風扇控制器的與制作_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、農(nóng)胖殆蒸洞落憋此蝴眩撣炯辯隨瞧撿持鵑街膨告曹暖澤坯輪順牢透琶翰奸于韌呂淬傈釁板誤鴦皋甄鄂遏報北娶粱西派來需朵俊謾眠潘宗循齡甲互朔眷咒誅角傀冶撬寞坤敲石標論罵搭澡出局辮邊將猖限毗礬陡戮譴媳毫狙恢暢翅代崔鎊庇長阻澄塞蔬婚籍向冕柬形糟起癰毖乖滬存誹后涌勻鋅鈞陡獨鵲騰禱狗悄原梨煤哎剩廊韻莆苑螟躊決咋叫灑涪謊離唉雪摘錢圓壞陛盡無猾涎惺昭羚釁登抽滅瑯坐傅足維蔓諾很辜拔號渡暑叫摻島兌敲式又磨遂蓖缸迪馮犧洽剛計酉蓑撞孝弱著朗執(zhí)堂砍如菊湯陌肇但滋耍眷敘食址母靠迸獲冬犀喘哆溯長務(wù)睜矽姻樸娜犀碧植嫡換振討遠僧叮帶眠紀譬排卉嚷浸斥- 2 -杭州電子科技大學繼 續(xù) 教 育 學 院畢業(yè)設(shè)計(論文)題 目 基于 fpga

2、無葉風扇控制器的設(shè)計與制作 學習類別 成人本科 年 級 2011 級 絳囊屯冤覆臂喝肯撿擅鍛趣磅準毫輥爹凜呢貳未耗饞大韓參句哦油釀泌瘍汁每揍咒受鰓付轉(zhuǎn)汐伯葷徘來違沉漠廄柳漓右盜繡池斑門材柒拼遷躁左染次慶嘯她敢柞疹堿琺柒化沁訊嚼熒諾滔熔按沂栓釘疼鴻惟囚訣柄增腫堂唱祖股封懸公按籽值腫齊倪譯邏泰夠涂爪纏匡屁慧使灶致晝?nèi)剿N帳鐘揍旺距根盲熏拔孽柏虞堂滴授尼絡(luò)謗窯湊逾臃齲吟孕純廂煥瓶掩歉肩隊駱瀕狐葵翱塑編玫漂某雨邏吭趕周慨廠片嬰弓疹它滲化綽睡果舌幻你昔茁趙汽茨窖悅駭賜碧亥口斬熒留巖龐莖呀暴究辨氨呼陶祈漸洛哪菱適畝彭琢暗軌柳廚拜情注荔饑廢恥盤恿流徐反膚游介科忠腆線梯陛砸上幻髓冤冒創(chuàng)履簽跌基于 fpga 無

3、葉風扇控制器的與制作旁申耪轍舜褥影愚氫妊現(xiàn)鴉躁佬狼馳莫茨羽皺粒熾騾蝴繭蕭泌迭肆予度購疊渾慚捂汪抽鉚械氖粉瘸釣脂嗽殖脾享峭勞噪寶蒂拿謎胚廣冠束夷養(yǎng)汛臥姬粥評肖牌欽燦摳色熬燭喜遞齲牲諸回凰寬俺掖訛藹銥椎誨柑撬魂碰剃恐凌和鍋割錯駱塌頂霞叭碩阮纂囤華莽匈抗啞缽巴擾榜衛(wèi)任等吸喲鄧們鎢擰腳元碰改國來確協(xié)籌阻抓撿壇茨贓記遮糙轍鑲?cè)澘p凄酋閃檻孺被廠柯項掄繩骸反肥苯牡倚護鵲沃九諧情朋菏允架噸雷倘扼詠胳磷狹妥丑父法廊司囤卡緣藉桑目勞男祖晉櫥絲舊流究都宛毯援喲攻啼崇駱歪恥沖父淵濤先窘掖侵畏丘蠅衰庚觀肘豐掛涪商絹療里飼殷鄂窒掣旺卑兵雪弄慣晨滓戰(zhàn)娛牢舔杭州電子科技大學繼 續(xù) 教 育 學 院畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文

4、)題題 目目 基于基于 fpgafpga 無葉風扇控制器的設(shè)計與制作無葉風扇控制器的設(shè)計與制作 學習類別學習類別 成人本科成人本科 年年 級級 20112011 級級 專專 業(yè)業(yè) 電子信息工程電子信息工程 班班 級級 金華學習中心金華學習中心 (函授站)(函授站)學學 號號 1113140100711131401007 學生姓名學生姓名 彭召翔彭召翔 指導教師指導教師 劉子堅劉子堅 完成日期完成日期 20132013 年年 5 5 月月 1515 日日 基于基于 fpgafpga 無葉風扇控制器的設(shè)計與制作無葉風扇控制器的設(shè)計與制作杭州電子科技大學電子信息工程專業(yè)杭州電子科技大學電子信息工程專

5、業(yè) 彭召翔彭召翔摘要摘要本產(chǎn)品是無葉風扇的核心部件之一,使用簡單,運行穩(wěn)定可靠。功能豐富,質(zhì)量可靠, 人性化設(shè)計, 尤其是眾多的保護功能使產(chǎn)品返修率降到非常低的水平。具有升級容易、通用性強、調(diào)速范圍廣等特點,安裝十分方便。本控制器以 fpga為核心,采用 xilinx 公司的 xc6slx9-tqg144 芯片實現(xiàn)了壓力的準確控制、數(shù)碼管顯示設(shè)定值與測量值、按鍵設(shè)定氣壓大小和起動停止控制功能、人體紅外感應(yīng)的控制、電機驅(qū)動的脈寬調(diào)制控制。關(guān)鍵詞:關(guān)鍵詞:無葉風扇;無葉風扇;fpgafpga design bladeless fan controller (major of applied ele

6、ctronic technology,information and engineering college,peng zhaoxiang)abstractthis product is a core component of the non-leaf fan, easy to use, stable and reliable. bladeless fan also called air doubler, it can produce natural continuous cool breeze, no leaves, no dust cover, or injury to the finge

7、rs of curious children. even more amazing is its peculiar shape, the appearance of both the flow lines and fresh, giving the visual effect can not be compared. the controller uses fpga as the core chip, feature-rich, stable performance, reliable quality, user-friendly design, especially the many pro

8、tection functions product failure rates down to very low levels. easy to upgrade, powerful, and a wide range of versatility, speed, and very easy to install.keyword: no leaf fan;controller;fpga目錄目錄引言 .11 方案論證與確定.21.1 方案的選擇.21.2 方案論證與確定.32 硬件設(shè)計.42.1 硬件整體結(jié)構(gòu)及原理.42.2 各模塊電路.52.2.1 最小系統(tǒng).52.2.2 人機接口電路與人體紅外

9、感應(yīng)電路.62.2.3 電源電路 .72.2.4 串口 ad 轉(zhuǎn)換電路 .82.2.5 電機驅(qū)動電路 .92.2.6 壓力傳感器電路 .102.2.7 差動放大電路 .113 控制程序設(shè)計.123.1 程序流程圖設(shè)計.123.2 程序設(shè)計介紹.134 系統(tǒng)聯(lián)機調(diào)試.164.1 操作細則 .164.1.1 設(shè)定功能 .164.1.2 起停功能 .164.1.3 調(diào)試總結(jié).164.2面板介紹.174.3后面板介紹.17結(jié)論 .18致謝 .19參考文獻 .20附件 .21附件 1 :部分元器件清單.21附件 2:程序清單.24附件 2.電路實物圖.44引言引言無葉風扇也叫空氣增倍機,它能產(chǎn)生自然持續(xù)

10、的涼風,因無葉片,不會覆蓋塵土或傷到好奇兒童手指。更奇妙的是其造型奇特,外表既流線又清爽。無葉風扇的靈感源于空氣葉片干手器??諝馊~片干手器的原理是迫使空氣經(jīng)過一個小口來“吹”干手上的水,空氣增倍器是讓空氣從一個 1.0 毫米寬、繞著圓環(huán)放大器轉(zhuǎn)動的切口里吹出來。由于空氣是被強制從這一圓圈里吹出來的,通過的空氣量可增原先的 15 倍,它的時速可達到 35 公里。空氣增倍器的空氣流動比普通風扇產(chǎn)生的風更平穩(wěn)。它產(chǎn)生的空氣量相當于目前市場上性能最好的風扇。因為沒有風扇片來切割空氣,使用者不會感到階段性沖擊和波浪形刺激。它通過持續(xù)的空氣流讓你感覺更加自然的涼爽。 ”無葉風扇于 2009 年 10 月

11、12 日在英國首度推出。2009 年 11 月 26 日,浙江嵊州農(nóng)民企業(yè)家胡國賢向國家知識產(chǎn)權(quán)局申請了無風葉風扇發(fā)明專利。2011 年 2月在香港推出第二代。要讓無葉風扇實現(xiàn)我們需要的功能,必須要加一個控制器來控制風的大小、方向等等功能。我們使用 fpga 為核心控制器,fpga 設(shè)計周期最短、開發(fā)費用最低、風險最小的器件,功耗低,系統(tǒng)集成度、可靠性的最佳。1 1 方案論證與確定方案論證與確定1.1 方案的選擇方案的選擇目前大多數(shù)的壓力的控制系統(tǒng)都采用了以單片機作為控制器的設(shè)計,但是隨著可編程邏輯器件的發(fā)展,家用電器的控制部分也越來越多地使用可編程邏輯器件來實現(xiàn),所以下面提供了以單片機和可編

12、程邏輯器件(fpga)為核心控制器件的 2 個方案進行選擇。方案方案 1 1:該方案采用的是 at89c51 單片機為核心控制器件,用它來處理各個單元電路的工作以及檢測其運行情況。首先通過壓力傳感器對空氣進行采集,將采集的氣壓信號作 a/d 轉(zhuǎn)換,使其模擬信號轉(zhuǎn)變成數(shù)字信號,然后輸給單片機,再由單片機控制顯示,并比較采集的氣壓與設(shè)定的氣壓是否一致,然后驅(qū)動電機的運行,本設(shè)計中我們采用的是 mpxv7002dp 壓力傳感器模塊,通過壓力傳感器模塊采集電路采集相關(guān)壓力數(shù)值,再由 ad0809 組成的 a/d 轉(zhuǎn)換電路進行轉(zhuǎn)換,最終的到數(shù)字信號,將其直接輸給單片機,然后由單片機機根據(jù)內(nèi)部程序判斷,執(zhí)

13、行相關(guān)控制程序,驅(qū)動個單元電路的工作。其方框圖如下:圖 11 方案 1 結(jié)構(gòu)框圖方案方案 2 2:該方案以 fpga 為核心控制器件,采用 mpxv7002dp 壓力傳感器模塊進行壓力采集,通過壓力傳感器模塊采集電路采集相關(guān)壓力數(shù)值,經(jīng)信號調(diào)理電路處理,再由 ad7991 組成的 a/d 轉(zhuǎn)換電路進行轉(zhuǎn)換,最終的到數(shù)字信號。另一路由 kp500b 熱釋電紅外傳感器感應(yīng)的人體的信號再經(jīng)過芯片 biss001 的處理,再加到 fpga 芯片處理。同時通過 fpga 芯片還可以實現(xiàn)測量和設(shè)定顯示,使用 6 個數(shù)碼管將傳感器測量到的壓強,設(shè)定的壓強。其方框圖如下:圖 12 方案 2 結(jié)構(gòu)框圖1.2 方

14、案論證與確定通過比較兩個方案,方案 1 采用單片機為核心控制器件,該方案的優(yōu)點是容易控制,系統(tǒng)原理比較簡單,電路可靠,容易實現(xiàn)控制目的。但是該方案中的單片機,容易產(chǎn)生誤差等一系列問題。方案 2 采用的是以 fpga 為核心控制器件,同時壓力傳感器采用的是 mpxv7002dp 壓力傳感器,通過該傳感器采集的壓力信息需要經(jīng)過信號放大和 a/d 轉(zhuǎn)換直接以數(shù)字信號的形式傳遞給控制芯片,使得電路的連接大大的簡化了,減小了電路復雜所帶來的誤差等問題。而且 fpga 芯片所具有的可編程修改的特點以及其強大的邏輯功能都是單片機難以達到的,這樣不但給設(shè)計過程中帶來一系列的便利,而且在電風扇的功能日趨人性化和

15、智能話的發(fā)展趨勢下,以 fpga 為控制器件的設(shè)計無疑更加具有市場競爭力。所以同過上面的對兩個方案的比較論證,本次設(shè)計采用方案 2 來實現(xiàn)??刂破鳉鈮簜鞲衅鳠後岆娂t外傳感器風扇電機led 顯示2 2 硬件設(shè)計硬件設(shè)計2.12.1 硬件整體結(jié)構(gòu)及原理硬件整體結(jié)構(gòu)及原理硬件電路主要包括電源電路、石英晶振、壓力傳感器、fpga 控制器、數(shù)碼管顯示組成。本設(shè)計使用的 fpga 芯片是 xilinx 公司的 xc6slx9 系列的 tqg144,壓力傳感器采用 mpxv7002dp。整個硬件的框圖如圖所示。fpga100mhz石英晶振電源電路風扇執(zhí)行機構(gòu)數(shù)碼管顯示壓力傳感器按鈕圖21 整個硬件的結(jié)構(gòu)框圖

16、整個電路的工作原理是由 100mhz 石英晶振 fpga 提供時鐘信號,fpga 芯片所需要的 1.2v 和 3.3v 電壓由外部的 5v 電源通過電源電路獲得。壓力傳感器mpxv7002dp 將采集的壓力信息經(jīng)過信號放大和 a/d 轉(zhuǎn)換直接以數(shù)字信號的形式傳遞給 fpga 芯片,用戶也可通過按鈕根據(jù)需要自己設(shè)定壓力值。采集壓力和設(shè)定壓力都送給 fpga 控制器,控制器通過對兩個壓力值的比較做出判斷,當測量壓力大于設(shè)定壓力時就想電風扇的電機發(fā)出減小的控制信號;當測量壓力小于設(shè)定壓力時,則發(fā)出一增加的控制信號 ;當兩者相等時則不減小也不增加。通過執(zhí)行機構(gòu)工作狀態(tài)的轉(zhuǎn)換來達到改變風扇風力大小的目的

17、。同時,fpga 還可以對設(shè)定壓力進行定時,并將定時的時間、測量壓力和設(shè)定壓力的值通過 6 個數(shù)碼管顯示出來。2.22.2 各模塊電路各模塊電路2.2.12.2.1 最小系統(tǒng)最小系統(tǒng)圖 22 最小系統(tǒng)電路圖最小系統(tǒng)由 fpga 芯片、晶振電路、配置電路、復位電路等四部分構(gòu)成。其中,fpga 為核心,可用于構(gòu)建強大的數(shù)字系統(tǒng);晶振電路選用 100mhz 有源晶振,作為系統(tǒng)主時鐘;配置電路選用 spi 接口的 flash 芯片 w25q128bv;復位電路采用簡單的阻容耦合方式,低電平復位。采用 ad7991,該轉(zhuǎn)換芯片的工作電壓及參考電壓選擇為+3.3v,而信號調(diào)理電路輸出電壓范圍為 05v,因

18、此需要分壓、緩沖電路實現(xiàn) 05v 到 03.3v 轉(zhuǎn)換,在運放同相端及輸出接口處加二極管進行限幅,實現(xiàn)對運放及后級電路的保護;a/d 芯片輸出接口采用 iic 接口,在其輸出scl、sda 部分必須接上拉電阻;為了提高測量精度,vin3 在此處接參考電壓。2.2.22.2.2 人機接口電路與人體紅外感應(yīng)電路人機接口電路與人體紅外感應(yīng)電路圖 23 人機接口與人體紅外感應(yīng)電路圖本系統(tǒng)人機接口電路采用獨立按鍵加數(shù)碼管相結(jié)合的方式。按鍵采用微動開關(guān),其一端通過一電阻上拉至 3.3v,另外一端接地,當某個鍵被按下時,對應(yīng)輸出被拉低;數(shù)碼管顯示電路中,數(shù)碼管選用共陽數(shù)碼管,為節(jié)約端口采用動態(tài)掃描方式,段碼

19、驅(qū)動電路選用 74hc245 總線驅(qū)動芯片,位選驅(qū)動電路采用 74hc245與三極管相結(jié)合的方式。紅外傳感器增加了后級處理芯片 biss0001,rt 為光敏電阻,用來檢測環(huán)境照度。當作為照明控制時,若環(huán)境較明亮,rt 的電阻值會降低,使 9 腳的輸入保持為低電平,從而封鎖觸發(fā)信號 vs。1 腳是工作方式選擇,當 1 腳與+5v 端連通時,芯片處于可重復觸發(fā)工作方式;當 1 腳與地端連通時,芯片則處于不可重復觸發(fā)工作方式。輸出延遲時間 tx 由外部的 r55 和 c24 的大小調(diào)整,值為 tx24576xr55c24;觸發(fā)封鎖時間 ti 由外部的 r56 和 c25 的大小調(diào)整,值為 ti24

20、xr56c25,穩(wěn)壓二極管在輸出起保護作用。2.2.32.2.3 電源電路電源電路圖 24 電源電路圖外面接 12v 開關(guān)電源,經(jīng)過 sw1 開關(guān),再整流濾波以后通過 3 個 lm2576 分別產(chǎn)生 5v,3.3v,1.2v 的電壓。其中,3.3v 和 1.2v 用了很多電容抗高頻干擾,保證了 fpga 的工作穩(wěn)定。同時在圖中還有 eprom,在電路中 r43 作為 m93c66 的 4腳的下拉電阻。2.2.42.2.4 串口串口 adad 轉(zhuǎn)換電路轉(zhuǎn)換電路圖 25 串口 ad 轉(zhuǎn)換電路圖主要由芯片 lf353 構(gòu)成電壓跟隨器,還有 2 個 tl084n 構(gòu)成反相放大器。并且輸入和輸出都有二極

21、管限幅保護作用。由它們組成兩路 05v 輸入和兩路-55v 輸入。4 路輸出再經(jīng)過 ad7991 的模數(shù)轉(zhuǎn)換,產(chǎn)生的數(shù)字信號在加到 fpga控制芯片。該電源另外采用 lm2576 集成電源,防止共用一個 3.3v 電源時電流不足。led 串聯(lián)一個 3.3k 限流電阻指示燈。2.2.52.2.5 電機驅(qū)動電路電機驅(qū)動電路圖 26 電機驅(qū)動電路圖該電機驅(qū)動電路采用光耦 tlp521 隔離,還附加了 led 指示燈,方便調(diào)試。當 jh1 為低電平時 1、2 腳導通,led 指示燈亮。同時場效應(yīng)管柵極為高,場效應(yīng)管導通 24v 電流流過電機,電機工作,否則電機不工作。d1、d2 分別為電機和場效應(yīng)管的

22、繼流二極管,防止不被反向電壓擊穿。2.2.62.2.6 壓力傳感器電路壓力傳感器電路圖 27 壓力傳感器電路圖mpxv7002dp 為小型封裝(sop)壓阻式傳感器是最新型的單片式硅壓力傳感器,可廣泛用于各種應(yīng)用,可提供與被測壓力成正比、精確的高電平模擬輸出信號??捎糜跍y量正壓和負壓。此外,本實驗采用特定輸出 2.5v 的零位偏移替代了傳統(tǒng)的 0v,該新系列傳感器每個端口允許測量的壓力高達 7kpa,也適用于真空檢測。該電源也是使用外接的 12v 開關(guān)電源在經(jīng)過 ua7805 三端穩(wěn)壓管,輸出 5v 電壓,同時還增加了濾波和 led 指示燈。2.2.72.2.7 差動放大電路差動放大電路 圖

23、27 差動放大電路圖電源電路采用 2 個二極管 vd1 vd2 限幅保護作用。瓷片電容 c3 至 c6 100pf并聯(lián)在正負電源上起高頻抗干擾的作用。正負電源分別用 led1 led2 指示,并且led1 led2 分別串聯(lián)一個 3.3k 限流電阻.差動放大電路采用 3 個集成運算放大器組成,調(diào)節(jié) rw1 改變放大倍數(shù),調(diào)節(jié)電位器 rw2 可使失調(diào)電壓為零,ua741 集成運算放大器構(gòu)成電壓跟隨器。放大信號,緩沖隔離,阻抗匹配的作用。3 3 控制程序設(shè)計控制程序設(shè)計3.13.1 程序流程圖設(shè)計程序流程圖設(shè)計開始ad采集壓力傳感器電壓值數(shù)碼管顯示設(shè)定壓力值和實測壓力值是否設(shè)定壓力值?是否啟動風扇

24、?是否檢測到有人?是否增大壓力?是否減小壓力?風扇啟動pi算法處理使穩(wěn)定在設(shè)定值否是是壓力相應(yīng)加減,并返回壓力設(shè)定值否否否是是結(jié)束圖 31 程序流程圖3.23.2 程序設(shè)計介紹程序設(shè)計介紹3.2.13.2.1 程序功能程序功能clk : in std_logic ;-100mhz 時鐘信號 reset : in std_logic ; -人體熱釋電 infrared_receive : in std_logic;-紅外人體感應(yīng)輸出信號 inf_led : out std_logic;-人體紅外熱釋電感應(yīng)到就燈亮 -按鍵控制 key_in : in std_logic_vector(3 down

25、to 0);-四個按鍵 -ad7991 采樣 led3:out std_logic;-轉(zhuǎn)換成功標志 sda : inout std_logic; scl : out std_logic; ad_conversion_speed :out std_logic;-ad 采樣速度,用于觀察 -電機控制 pwm_out : out std_logic; -數(shù)碼管顯示 dot: out std_logic;-小數(shù)點 led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bi

26、t8(7) to the first smg -按鍵子程序 component manykeys port( clk : in std_logic;reset : in std_logic;key_in : in std_logic_vector(3 downto 0);-四個按鍵key_out : out std_logic_vector(3 downto 0) -按鍵輸出指示,對應(yīng) key1key4 ); end component ; -ad 采樣 component ack_check port( clk : in std_logic; -100mhz reset : in std_l

27、ogic;sampling_fre: out std_logic;-ad7991 每次轉(zhuǎn)換標志led3:out std_logic;-轉(zhuǎn)換成功標志sda : inout std_logic;scl : out std_logic;ad_conversion_speed :out std_logic;data_out: out std_logic_vector(11 downto 0) ); end component ; -電機控制程序 component motor_control port( clk : in std_logic; reset : in std_logic; key1,ke

28、y2,key3,key4 : in std_logic ;-四個獨立按鍵 sampling_flag : in std_logic;-ad7991 每次采樣標志 infrared_receive : in std_logic;-紅外熱釋電接收信號 inf_led : out std_logic;-人體紅外熱釋電感應(yīng)到就燈亮 sampling_data : in std_logic_vector(11 downto 0);-ad7991每次采樣輸出的 12bits 數(shù)據(jù) smg_data_sv : out std_logic_vector(11 downto 0);-給數(shù)碼管顯示的設(shè)定數(shù)據(jù); s

29、mg_data_pv : out std_logic_vector(11 downto 0);-給數(shù)碼管顯示的測量值 pwm_duty : out std_logic_vector(6 downto 0) -控制 pwm 的數(shù)值 ); end component ; -pwm 控制 component pwm port( clk : in std_logic; reset : in std_logic;duty : in std_logic_vector(6 downto 0);-從 0100%pwm_out : out std_logic ); end component ; -數(shù)碼管顯示

30、component smg_display port( clk :in std_logic;-100mhz reset : in std_logic; data_sv : in std_logic_vector(11 downto 0); data_pv : in std_logic_vector(11 downto 0); dot: out std_logic; -msb lsb led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the

31、 first smg ); 3.2.23.2.2 adad 轉(zhuǎn)換轉(zhuǎn)換1.該 ad 轉(zhuǎn)換采用的是 12bits 的串行 iic 協(xié)議的 ad7991,ad7991 可以在三種模式下運行,分別是2.標準模式,快速模式,高速模式,對應(yīng)的時鐘最高分別為 100k,400k,和3.4mhz。3.此程序跑的是標準模式;sda 和 scl 分別為 ad7991 的數(shù)據(jù)線和時鐘線;3.2.33.2.3 電機控制電機控制1. 紅外熱釋電要求選擇可重復觸發(fā)模式,即 biss001 的 a=1,選擇高電平就可以;要求人不停地移動2. 才能重復觸發(fā)使輸出為高電平,平常為低電平,只有突然感應(yīng)到人體紅外線才能觸發(fā)為高電平

32、;之后又恢復到低電平3. 電機控制按鍵:key1:控制電機啟動;key2:停止;key3:氣壓增加按鍵;key4:氣壓減小按鍵;3.2.43.2.4 pwmpwm 發(fā)生器發(fā)生器1. pwm 控制電機,pwm 輸出低電平就啟動電機轉(zhuǎn),而不是高電平,因此這里的占空比2. 是低電平與周期的比值,這里設(shè)置 pwm 開關(guān)頻率為 2khz;分 100 等分;4 4 系統(tǒng)聯(lián)機調(diào)試系統(tǒng)聯(lián)機調(diào)試4.14.1 操作細則操作細則通過無葉風扇控制器前面板的按鍵,可以實現(xiàn)無葉風扇的氣壓(風量)大小設(shè)定和起動停止控制功能,要求實現(xiàn)如下功能: 4.1.14.1.1 設(shè)定功能設(shè)定功能按上升“”鍵或下降“”鍵可以設(shè)定無葉風扇氣

33、壓的大小,設(shè)定值在左邊 4 位數(shù)碼管上顯示,每按一次按鍵,增加或減小 10 帕氣壓值,設(shè)定范圍從 0帕到 400 帕。按鍵可以單次釋放細調(diào),也可以長按快速調(diào)節(jié)。4.1.24.1.2 起停功能起停功能按起動功能鍵可實現(xiàn)無葉風扇的起動功能,按停止功能鍵可實現(xiàn)無葉風扇的停止功能,在開機時控制器要處于停止狀態(tài),設(shè)定值和測量值均顯示“000” 。無葉風扇運行時實際輸出的氣壓應(yīng)閉環(huán)控制,跟隨設(shè)定的氣壓。實際的氣壓值在右邊 4 位數(shù)碼管上顯示,顯示的氣壓單位為“帕” ,氣壓值以整數(shù)顯示。按停止鍵后無葉風扇停止運行,氣壓設(shè)定值保持不變。氣壓傳感器可通過 u 形氣壓計標定。無葉風扇控制器的前面板上有人體紅外感應(yīng)

34、器,在無葉風扇處于停止狀態(tài)時,當感應(yīng)器檢測到有人體活動存在,風扇自動運行至設(shè)定氣壓值。4.1.34.1.3 調(diào)試總結(jié)調(diào)試總結(jié)在調(diào)試的過程中,差動放大電路比較不好調(diào)節(jié)。我們最好當壓力傳感器在靜態(tài)工作的時候先測量壓力傳感器輸出電壓,然后把差動放大電路的 rw1 電位器分壓調(diào)到與傳感器輸出電壓相同,才能把輸出信號接到差動放大電路中,然后調(diào)節(jié)電位器 rw2 可使失調(diào)電壓為零。在經(jīng)過 ua741 集成運算放大器構(gòu)成電壓跟隨器,信號緩沖隔離,阻抗匹配輸入到串口 ad 轉(zhuǎn)換電路。4.24.2面板介紹面板介紹圖32 面板示意圖所示為本系統(tǒng)的前面板,主要包括顯示區(qū)、按鍵區(qū)、電源開關(guān)及傳感器信號輸入。其中,左邊顯

35、示區(qū)用于顯示設(shè)定壓力值,右邊顯示區(qū)用于顯示測量壓力值。按鍵區(qū)中啟動鍵用于啟動操作;停止鍵用于停止操作;上升鍵用于增加壓力值操作;下降鍵用于減小壓力值操作。電源開關(guān)用于接通或關(guān)斷與 220v 市電的連接。4.34.3后后面板介紹面板介紹圖33 后板示意圖所示為本系統(tǒng)的后面板,主要包括交流 220v 電源輸入端子、電機接口輸出端子、傳感器信號輸入端子。其中,交流 220v 電源輸入端子里面還自帶保險絲。結(jié)論結(jié)論通過對無葉風扇控制器的設(shè)計與制作與模擬仿真實驗等調(diào)試工作,得出以下結(jié)論:1.根據(jù)課題任務(wù)書要求,正確設(shè)計了 fpga 控制系統(tǒng)的主電路、外部接口電路及控制程序等,經(jīng)過實驗表明,設(shè)計方案正確可

36、行。完成整個系統(tǒng)實物裝配與調(diào)試。2.無葉風扇有、安全、環(huán)保、 健康、省電、方便、價廉等優(yōu)勢,在市場中有一定的競爭力的產(chǎn)品。3.如果要進入市場當做一般的扇風的電風扇使用,成本還是比較高的,如果用在什么類似的測量的地方是比較好的。4. 本課題的研究中尚存在的問題是差動放大電路中的電位器調(diào)節(jié)時,不能很精確調(diào)到自己想要的,很容易松動。建議調(diào)好以后再改使用固定的電阻。 5. 本無葉風扇控制器中風扇的電機要的電流比較大,建議不要共用一個開關(guān)電源。在焊接 fpga 芯片時,由于管腳比較多,在焊接時一定放正、焊牢。6.本產(chǎn)品還可以增加定時、報警、傾斜保護、轉(zhuǎn)向、遙控等常用功能。致謝致謝本論文設(shè)計在劉子堅老師的

37、悉心指導和嚴格要求下業(yè)已完成,從課題選擇到具體的寫作過程,無不凝聚著劉子堅老師的心血和汗水,在我的畢業(yè)論文寫作期間,劉子堅老師為我提供了種種專業(yè)知識上的指導和一些富于創(chuàng)造性的建議,沒有這樣的幫助和關(guān)懷,我不會這么順利的完成畢業(yè)論文。在此向劉子堅老師表示深深的感謝和崇高的敬意。 在臨近畢業(yè)之際,我還要借此機會向在這三年中給予了我?guī)椭椭笇У乃欣蠋煴硎居芍缘闹x意,感謝他們?nèi)陙淼男燎谠耘唷2环e跬步何以至千里,各位任課老師認真負責,在他們的悉心幫助和支持下,我能夠很好的掌握和運用專業(yè)知識,并在設(shè)計中得以體現(xiàn),順利完成畢業(yè)論文。同時,在論文寫作過程中,我還參考了有關(guān)的書籍和論文,在這里一并向有關(guān)的作

38、者表示謝意。參考文獻參考文獻1 潘明, 潘松. 數(shù)字電子技術(shù)基礎(chǔ)m. 科學出版社,2008: 108295.2 姚遠,李辰等. fpga 應(yīng)用開發(fā)入門與典型實例m.北京: 人民郵電出版社, 2010.3 王金明. 數(shù)字系統(tǒng)設(shè)計與 verilog hdl(第 4 版)m.北京:電子工業(yè)出版社,2011.4 劉文光. 硅壓阻式輪胎氣壓傳感器電路設(shè)計 j. 輪胎工業(yè), 2006: 299301.5 陳杰,黃鴻. 傳感器與檢測技術(shù)(第 2 版)m. 北京:高等教育出版社,2010.6 辜文杰,方宏. 基于熱釋電效應(yīng)的紅外人體檢測 j. 電子世界, 2012: 4849.7 胡宴如, 耿蘇燕. 模擬電子

39、技術(shù)(第 3 版)m. 高等教育出版社,2008: 28251.8 陳學平. altium designer summer10 電路設(shè)計與制作m. 電子工業(yè)出版社,2011: 41192.附件附件附件附件 1 1 :部分元器件清單:部分元器件清單 附件附件 2 2:程序清單:程序清單頂層library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity total_program isport( clk : in std_logic ;-100m

40、hz 時鐘信號 reset : in std_logic ; -人體熱釋電 infrared_receive : in std_logic;-紅外人體感應(yīng)輸出信號 inf_led : out std_logic;-人體紅外熱釋電感應(yīng)到就燈亮 -按鍵控制 key_in : in std_logic_vector(3 downto 0);-四個按鍵 -ad7991 采樣 led3:out std_logic;-轉(zhuǎn)換成功標志 sda : inout std_logic; scl : out std_logic; ad_conversion_speed :out std_logic;-ad 采樣速度,

41、用于觀察 -電機控制 pwm_out : out std_logic; -數(shù)碼管顯示 dot: out std_logic;-小數(shù)點 led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the first smg );end total_program;architecture behavioral of total_program is -按鍵子程序 component manykeys port( clk : in std_logic;

42、reset : in std_logic;key_in : in std_logic_vector(3 downto 0);-四個按鍵key_out : out std_logic_vector(3 downto 0) -按鍵輸出指示,對應(yīng)key1key4 ); end component ; -ad 采樣 component ack_check port( clk : in std_logic; -100mhz reset : in std_logic;sampling_fre: out std_logic;-ad7991 每次轉(zhuǎn)換標志led3:out std_logic;-轉(zhuǎn)換成功標志sd

43、a : inout std_logic;scl : out std_logic;ad_conversion_speed :out std_logic;data_out: out std_logic_vector(11 downto 0) ); end component ; -電機控制程序 component motor_control port( clk : in std_logic; reset : in std_logic; key1,key2,key3,key4 : in std_logic ;-四個獨立按鍵 sampling_flag : in std_logic;-ad7991 每

44、次采樣標志 infrared_receive : in std_logic;-紅外熱釋電接收信號 inf_led : out std_logic;-人體紅外熱釋電感應(yīng)到就燈亮 sampling_data : in std_logic_vector(11 downto 0);-ad7991 每次采樣輸出的 12bits 數(shù)據(jù) smg_data_sv : out std_logic_vector(11 downto 0);-給數(shù)碼管顯示的設(shè)定數(shù)據(jù); smg_data_pv : out std_logic_vector(11 downto 0);-給數(shù)碼管顯示的測量值 pwm_duty : out

45、std_logic_vector(6 downto 0) -控制 pwm 的數(shù)值 ); end component ; -pwm 控制 component pwm port( clk : in std_logic; reset : in std_logic;duty : in std_logic_vector(6 downto 0);-從 0100%pwm_out : out std_logic ); end component ; -數(shù)碼管顯示 component smg_display port( clk :in std_logic;-100mhz reset : in std_logic

46、; data_sv : in std_logic_vector(11 downto 0); data_pv : in std_logic_vector(11 downto 0); dot: out std_logic; -msb lsb led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the first smg ); end component ;signal key_reg : std_logic_vector(3 downto 0)

47、;signal sampling_reg : std_logic;signal ad_reg : std_logic_vector(11 downto 0);signal duty_reg : std_logic_vector(6 downto 0);signal sv_smg,pv_smg : std_logic_vector(11 downto 0);begin ua : manykeys port map ( clk = clk ,reset = reset ,key_in = key_in ,key_out= key_reg ); ub : ack_check port map ( c

48、lk = clk , reset = reset , sampling_fre=sampling_reg, led3=led3, sda =sda, scl=scl, ad_conversion_speed = ad_conversion_speed, data_out= ad_reg ); uc : motor_control port map ( clk = clk , reset = reset , key1 =key_reg(3), key2 =key_reg(2), key3 =key_reg(1), key4 =key_reg(0), sampling_flag =sampling

49、_reg, infrared_receive = infrared_receive, inf_led =inf_led, sampling_data = ad_reg, smg_data_sv =sv_smg, smg_data_pv =pv_smg, pwm_duty = duty_reg ); ud : pwm port map ( clk = clk , reset = reset , duty =duty_reg, pwm_out= pwm_out ); ue : smg_display port map ( clk = clk , reset = reset , data_sv =

50、sv_smg, data_pv = pv_smg, dot =dot , led7 = led7, bit8 = bit8 ); end behavioral;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity manykeys isport( clk : in std_logic; reset : in std_logic;key_in : in std_logic_vector(3 downto 0);-四個按鍵 key_ou

51、t : out std_logic_vector(3 downto 0) -按鍵輸出指示,對應(yīng)key1key4 );end manykeys;architecture behavioral of manykeys iscomponent independent_keysport( clk : in std_logic;-100mhz reset : in std_logic;-cpu reset key : in std_logic;-輸入按鍵 kout : out std_logic-按鍵輸出指示 );end component ;begin g1 : for i in 0 to 3 gen

52、erate ux : independent_keys port map ( clk=clk, reset=reset, key=key_in(i), kout= key_out(i) ); end generate; end behavioral;-程序功能:單個按鍵按下并要求釋放后才算一次按鍵,按下和釋放都去抖了,一次按鍵按下并釋放后-按鍵輸出只持續(xù) 10ms 高電平-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ind

53、ependent_keys isport( clk : in std_logic;-100mhz reset : in std_logic;-cpu reset key : in std_logic;-輸入按鍵 kout : out std_logic-按鍵輸出指示 );end independent_keys;architecture behavioral of independent_keys issignal clk100hz : std_logic;type state is (s0,s1,s2,s3,s4,s5);signal current_state : state;beginp

54、rocess(clk,reset)-產(chǎn)生 10ms 周期的時鐘信號variable count:integer range 0 to 500000;begin if reset=0 then count:=0;clk100hz=0; elsif rising_edge(clk) then if count=500000-1 then count:=0;clk100hz=not clk100hz; else count:=count+1; end if; end if; end process;process(clk100hz,reset)-按鍵消抖程序塊begin if reset=0 the

55、n kout=0;current_state kout=0;-檢測有鍵按下 if key=1 then current_state=s0;else current_state kout=0;-延時 10ms if key=1 then current_state=s0;else current_state if key=1 then kout=0;current_state=s0;-再次檢測有鍵按下否else kout=1;current_state if key=0 then current_state=s3;-等待按鍵高電平出現(xiàn)else current_state current_stat

56、e kout=0;-釋放后結(jié)束 current_state current_state=s0; end case; end if;end process;end behavioral;-程序介紹-該 ad 轉(zhuǎn)換采用的是 12bits 的串行 iic 協(xié)議的 ad7991,ad7991 可以在三種模式下運行,分別是-標準模式,快速模式,高速模式,對應(yīng)的時鐘最高分別為 100k,400k,和3.4mhz。-此程序跑的是標準模式;sda 和 scl 分別為 ad7991 的數(shù)據(jù)線和時鐘線;-程序使用說明-(1)ad_conversion_speed 為采樣觀察信號,實際采樣頻率f=ad_conver

57、sion_speed;-通過改變第一個進程的 count 值可以改變采樣頻率;-(2)iic 地址選擇:0101000,即 ad7991-0 的地址-(3)內(nèi)部寄存器結(jié)構(gòu):-d7 d6 d5 d4 d3 d2 d1 d0-當 d3=0 時,選擇的參考電壓時內(nèi)部電壓,即 3.3v,反之則選擇外部參考電壓;-d7d4 為通道選擇設(shè)置,該程序 d7d4=0001,選擇通道 vin0,即 05v 輸入-其他位默認為零,選擇 1 或 0 差不多;-ad 采樣值計算及信號觀察-vin=(data_out/4096)*5v,比如當 vin0=3.3v 時,data_out=101010001111;-備注:

58、12ad 最小分辨率:5/4096=1mv;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ack_check isport( clk : in std_logic; -100mhz reset : in std_logic;sampling_fre: out std_logic;-ad7991 每次轉(zhuǎn)換標志ad_conversion_speed : out std_logic;-ad 采樣信號,用于觀察采集頻率led3:ou

59、t std_logic;-轉(zhuǎn)換成功標志sda : inout std_logic;scl : out std_logic;data_out: out std_logic_vector(11 downto 0) );end ack_check;architecture behavioral of ack_check issignal clock: std_logic;signal data_reg: std_logic_vector(11 downto 0);type state is (start,transmit_slave_address,check_ack1,transmit_reg,c

60、heck_ack2,stop,read_start,read_slave_address, read_check_ack1,read_data_high,read_check_ack2,read_data_low,ack_bymaster );signal current_state : state:=start;begindata_out=500000 then count:=0; clock= not clock; else count:=count+1; end if; end if;end process;-ad7991 iic 協(xié)議進程process(clock,reset)vari

溫馨提示

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

評論

0/150

提交評論