版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)字電路課程設(shè)計實驗報告題目:基于加速度傳感器的計步器的設(shè)計實現(xiàn)班級:29001040班學(xué)號:2903003017姓名:許芮銘完成時間:2011年5月23實驗地點:英才實驗學(xué)院實驗室科A304摘要通過一段實踐的學(xué)習(xí),對數(shù)字電路設(shè)計有了最基本的認識,但對于這一門工程性較強的學(xué)科來說,只有實踐與理論相結(jié)合才能更加加深對所學(xué)內(nèi)容的理解。本次實驗通過完成計步器從最初電路板焊接到FPGA編程,再到系統(tǒng)調(diào)試的整個過程,讓我們對整個數(shù)字電路設(shè)計開發(fā)過程有更深入的了解。該報告將從原理闡述,系統(tǒng)設(shè)計,硬件制作和后期調(diào)試等幾個方面對本次實驗過程進行總結(jié),并講述我在這一過程中的收獲與感想。目錄第一章 實驗任務(wù)與原理
2、 -第二章 設(shè)計思路、方法及方案 -第三章 硬件原理圖設(shè)計、裝配與調(diào)試 -第四章 FPGA 模塊程序設(shè)計與仿真 -第五章 系統(tǒng)調(diào)試及硬件檢查 -第六章 結(jié)束語 -附錄 1 -附錄 2 -第一章 實驗任務(wù)與原理1.1 功能需求設(shè)計完成一個電路來檢測目標運動的次數(shù),并在數(shù)碼管上顯示。1.2 任務(wù)指標1、 記錄并顯示99以內(nèi)的運動次數(shù)2、 數(shù)碼管計數(shù)顯示可以重置1.3 原理闡述利用重力感應(yīng)芯片檢測運動,將信號放大之后輸入施密特觸發(fā)器產(chǎn)生方波波形,并利用FPGA將方波波形計數(shù)并在數(shù)碼管上顯示。第二章 設(shè)計思路、方法及方案2.1 系統(tǒng)功能需求分析 本次實驗采用的重力感應(yīng)芯片是ADI公司生產(chǎn)的ADXL33
3、5加速度傳感器,傳感器本身支持三軸重力感應(yīng),驅(qū)動電壓為3V。我們的實驗只需要讀取其中一軸的信號即可。但是感應(yīng)器本身輸出峰值在200mV左右,且為隨著加速度大小連續(xù)改變的模擬信號,而FPGA的信號輸入需要方波脈沖。傳感器輸出不論是峰值電壓還是連續(xù)信號本身都不能滿足要求。于是,我們需要首先對傳感器的輸出信號進行放大,并將其波形轉(zhuǎn)換為方波信號,以便FPGA的進一步處理。2.2方案確定及框圖結(jié)構(gòu)說明根據(jù)前文所說,由于信號在生成方波以前需要進行電壓幅度放大,考慮到放大電路本身存在噪聲,再加上環(huán)境因素的影響,為了有效濾除噪聲對方波信號的影響,我們選擇施密特觸發(fā)器而不是簡單的比較器來產(chǎn)生方波,觸發(fā)器由555
4、電路為主構(gòu)成,驅(qū)動電壓為3.3V左右,最大轉(zhuǎn)換電壓越2V,最低轉(zhuǎn)換電壓為1V,以此為依據(jù),我們可以設(shè)計出放大器的放大倍數(shù)。放大器設(shè)計中,我們使用簡單的LM324集成運放,其價格便宜,設(shè)計指標也能滿足信號放大的需求。使用LM324中的一個運算放大器,使用利用深度反饋原理,即可獲得相應(yīng)的放大倍數(shù)。由于傳感器本身輸出信號帶有一定的直流偏執(zhí),所以在放大之前需要使用隔直電容將直流隔去。在完成電路之后,將產(chǎn)生峰值在2V左右的方波信號,信號輸入到FPGA開發(fā)板上,通過編程實現(xiàn)對方波的計數(shù),并最終顯示在數(shù)碼管上。下面是設(shè)計的框圖。 最終確定的主要元器件和設(shè)備有:1、 ADXL335重力感應(yīng)傳感器2、 LM32
5、4集成運放3、 555電路4、 XC3S250E144型FPGA開發(fā)板第三章 硬件原理圖設(shè)計、裝配與調(diào)試3.1硬件原理硬件原理如下圖所示本電路完成了運動信號的采集,放大,生成方波信號的操作,其中,LM324放大電路僅使用其中一個運算放大器,通過調(diào)節(jié)R1和R2電阻值的比值,將放大器增益設(shè)置在20dB左右。原理圖如下:使用555電路組成施密特觸發(fā)器的原理圖如下:3.2 裝配成果最后焊接完成后的電路板如下圖所示。正面圖:背面圖:3.3 調(diào)試結(jié)果如下圖所示,首先將示波器接頭接在隔直電容前端,可以看到緩慢上下?lián)u動一次傳感器產(chǎn)生的帶有直流分量的輸出信號(模擬信號)。將放大器和施密特觸發(fā)器都調(diào)試完成后,不停
6、搖動電路板,可以在最后的輸出端看到如下的方波信號,可以看到,信號幅度在2.26V,且方波比較規(guī)則,僅有很小的失真。第四章 FPGA模塊程序設(shè)計使用FPGA對施密特觸發(fā)器產(chǎn)生的方波脈沖信號進行計數(shù),并將數(shù)值顯示在7段數(shù)碼管上。在設(shè)計時應(yīng)當(dāng)注意的是,使用上升沿計數(shù)時,脈沖上升沿與系統(tǒng)時鐘不同步,在7段數(shù)碼管顯示時,每個數(shù)碼管都有一個使能信號。同時,整個系統(tǒng)需要設(shè)定復(fù)位信號。最終整個FPGA設(shè)計框圖如下:具體VHDL代碼見附錄1.代碼完成之后,為了將VHDL模塊的端口信號與FPGA的硬件接口關(guān)聯(lián)起來,同時對一些信號進行約束,需要進行管教適配,適配所用代碼見附錄2.第五章 系統(tǒng)調(diào)試及硬件檢查5.1系統(tǒng)
7、調(diào)試過程在實驗過程中,曾經(jīng)遇到了不小的困難,期間也經(jīng)歷過多次調(diào)試。第一次困難在于產(chǎn)生的方波信號存在直流偏置,首先想到的是隔直電容出現(xiàn)短路,但是更換電容以后沒有解決問題,后來我們偶然發(fā)現(xiàn),如果將電容接地放電,可以解決存在直流偏置的問題,最后考慮到這應(yīng)該和電容本身的充電現(xiàn)象有關(guān)。第二次困難在于方波信號電壓不足,導(dǎo)致FPGA難以檢測到信號輸入。該問題通過重新調(diào)節(jié)倆個變阻器的阻值之比得到解決。第三次困難在于VHDL編程過程中,由于對進程和信號概念理解不清楚,在設(shè)計D觸發(fā)器之后的比較器時,使用了錯誤的代碼,導(dǎo)致系統(tǒng)自檢出錯,后來通過請教同學(xué),改變設(shè)計方法,解決了這一問題。在實驗過程中,還因誤觸穩(wěn)壓電源旋
8、鈕燒壞了一個LM324運放,幸運的是并沒有損壞其他電路原件,這也提醒我們在實驗過程中一定要細致,小心。5.2實驗結(jié)果在代碼和硬件都分別完成并分塊調(diào)試完畢以后,將VHDL代碼下載到FPGA開發(fā)板上,并將整個系統(tǒng)連接好,即完成了實驗主要內(nèi)容。搖動電路板,F(xiàn)PGA上的數(shù)碼管能正確顯示計數(shù)到99次,按下reset鍵可以對顯示清零并重新開始計數(shù)。第六章 結(jié)束語通過本次實驗,第一次體會到了數(shù)字電路設(shè)計開發(fā)過程,對高精度的電路焊接,F(xiàn)PGA開發(fā),系統(tǒng)調(diào)試等都有了更加深入的了解并增加了實踐的經(jīng)驗。貼片芯片的焊接是一個對耐心和細致要求極高的工作,我也是通過仔細琢磨,并花了很長時間才掌握了焊接的訣竅。并成功將幾根
9、頭發(fā)絲一樣細的導(dǎo)線焊上去。同時,系統(tǒng)設(shè)計雖然很完善,但是實際電路完全和設(shè)計不同,反復(fù)的調(diào)試也讓我體會到了電路設(shè)計一定要結(jié)合實際這一觀點。正如一個學(xué)姐說的,“只有調(diào)的出來的電路設(shè)計,才是好設(shè)計”。反復(fù)調(diào)試也讓我更加體會到耐心和堅持的重要,試想,如果一次兩次調(diào)試失敗就放棄,是不可能做得出來這個小裝置的。在實驗過程中,我還發(fā)現(xiàn),由于是兩個同學(xué)共同完成一塊板子的制作,所以很多同學(xué)不愿意親自動手完成繁瑣的焊接工作,完全交給另外一個同學(xué)完成(當(dāng)然我們組是真正兩個人合作完成的),這樣的話就失去了這個寶貴的鍛煉動手能力的機會,不得不說是一個遺憾,所以還是希望以后能夠多采購一些元器件,讓每個同學(xué)都能夠充分感受制
10、作的過程,畢竟培養(yǎng)同學(xué)動手能力也是實驗?zāi)康牡囊徊糠帧W詈?,感謝在實驗過程中給予我?guī)椭睦蠋熀屯瑢W(xué)們,沒有你們的幫助和支持,我的實驗將完成的非常困難,是你們讓我感受到了團隊合作的力量。附錄1VHDL程序- Company: - Engineer: - Create Date: 02:54:50 05/12/2011 - Design Name: - Module Name: raysc- Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision:
11、- Revision 0.01 - File Created- Additional Comments: -library IEEE;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-entity raysc isPort ( din : in STD_LOGIC; clk : in STD_LOGIC; reset : in STD_LOGIC; dout : out STD_LOGIC_VECTOR (7 do
12、wnto 0); en_out : out STD_LOGIC_VECTOR (7 downto 0); end raysc;-architecture Behavioral of raysc issignal cnt1,cnt2 : std_logic_vector(3 downto 0);-the outcomes of the countersignal cont1,cont2 : std_logic_vector(7 downto 0);-the encodings of displayersignal a,b : std_logic;signal counter1 : std_log
13、ic_vector(12 downto 0);signal counter2 : std_logic_vector(12 downto 0);signal cnt_flag, en_flag: std_logic;signal zer,one,two,thr,fou,fiv,six,sev,eig,nin,E:std_logic_vector(7 downto 0);-begina <= din;zer <= "11000000"one <= "11111001"two <= "10100100"thr <
14、;= "10110000"fou <= "10011001"fiv <= "10010010"six <= "10000010"sev <= "11111000"eig <= "10000000"nin <= "10010000"E <= "10000110"-process (clk, reset)beginif reset='0' thenb <= '0'
15、;elsif clk'event and clk='1' thenb <= a;end if;end process;-process(clk,reset)beginif reset='0' thencnt1 <= (others => '0');cnt2 <= (others => '0');elsif clk'event and clk='1' thenif a='1' and b='0' thenif cnt1 = "10
16、01" thencnt1 <= (others => '0');cnt2 <= cnt2 + '1'elsecnt1 <= cnt1 + '1'end if;end if;end if;end process;-process(clk,reset)beginif reset='0' thencounter1 <= (others => '0');cnt_flag <= '0'-en_flag <= '0'elsif clk
17、39;event and clk='1' thencounter1 <= (others => '0');elsecounter1 <= counter1 + '1'end if;end if;end process;-process(clk, reset)beginif clk'event and clk='1' thenen_flag <= '0'elseen_flag <= '1'end if;end if;end process;-process(cnt
18、1,cnt2)begin case cnt1 iswhen "0000" => cont1 <= zer;when "0001" => cont1 <= one;when "0010" => cont1 <= two;when "0011" => cont1 <= thr;when "0100" => cont1 <= fou;when "0101" => cont1 <= fiv;when "
19、0110" => cont1 <= six;when "0111" => cont1 <= sev;when "1000" => cont1 <= eig;when "1001" => cont1 <= nin; when others => cont1 <= E;end case;case cnt2 iswhen "0000" => cont2 <= zer;when "0001" => cont2 <
20、;= one;when "0010" => cont2 <= two;when "0011" => cont2 <= thr;when "0100" => cont2 <= fou;when "0101" => cont2 <= fiv;when "0110" => cont2 <= six;when "0111" => cont2 <= sev;when "1000" => c
21、ont2 <= eig;when "1001" => cont2 <= nin; when others => cont2 <= E;end case;end process;-process(en_flag,cont1,cont2) begin if en_flag='0' then dout <= cont1; en_out <= "11111110" else dout <= cont2; en_out <= "11111101"end if;end process;-end Behavioral;附錄2管腳適配NET "clk"TNM_NET=clk;#clockTIMESPEC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)線培訓(xùn)新員工
- 2024兒童用藥安全
- 陜西省西安市新城區(qū)多校2023-2024學(xué)年三年級上學(xué)期月考英語試卷
- 電動車消防安全預(yù)防電動車火災(zāi)培訓(xùn)課件
- 天津市河?xùn)|區(qū)2024-2025學(xué)年七年級上學(xué)期期中數(shù)學(xué)試卷(含答案)
- 山東省濱州市博興縣 2024-2025學(xué)年八年級上學(xué)期11月期中道德與法治試題(含答案)
- 2024-2025學(xué)年山東省日照市日照一中高二(上)第一次質(zhì)檢數(shù)學(xué)試卷(含答案)
- 江蘇省蘇州市2024-2025學(xué)年第一學(xué)期初三化學(xué)期中模擬測試卷(七)(含解析)
- 福建省南平市延平區(qū)多校2024-2025學(xué)年四年級上學(xué)期期中語文試題
- 信息技術(shù)(第2版)(拓展模塊) 教案 項目五 Web和FTP服務(wù)器的配置與管理
- 朝鮮飲食文化起源
- 天健軍衛(wèi)醫(yī)院信息系統(tǒng)住院部分ppt課件
- 廣西壯族自治區(qū)普通高級中學(xué)學(xué)籍管理規(guī)定.doc
- 動態(tài)心電圖分析系統(tǒng)講解
- (完整版)內(nèi)部審計工作流程圖最新(精華版)
- 變形觀測記錄表.doc
- 證券公司客戶交易結(jié)算資金第三方存管業(yè)務(wù)規(guī)則
- 【結(jié)題報告】《初中數(shù)學(xué)課堂合作學(xué)習(xí)的低效成因分析及對策研究》結(jié)題報告
- 《與朱元思書》《與顧章書》閱讀練習(xí)及答案
- 民辦中小學(xué)校教育收費定價成本監(jiān)審表
- 山地項目場地平整設(shè)計方案說明范本
評論
0/150
提交評論