【正文】
狀態(tài)標(biāo)志,在D觸發(fā)器的輸入端START為低電平時(shí),當(dāng)FIN端輸入一個(gè)脈沖上沿,F(xiàn)IN→CLK1與FSD→CLK2的信號(hào)通道被切斷。圖62控制模塊 脈寬寬度測(cè)量和占空比測(cè)量模塊設(shè)計(jì)在測(cè)量開(kāi)始前先向電路的CLR端送一個(gè)正脈沖以便進(jìn)行電路的工作狀態(tài)初始化。然后將GATE的CNF端置為高電平,表示開(kāi)始脈沖寬度的測(cè)量。在被測(cè)脈沖的上升沿到來(lái)時(shí),PUL端輸出高電平,標(biāo)準(zhǔn)頻率進(jìn)入到CONT2。在被測(cè)頻率下降沿到來(lái)時(shí),CONT2的PUL端輸出低電平,計(jì)數(shù)器被關(guān)斷。最后由單片機(jī)讀出計(jì)數(shù)結(jié)果,并通過(guò)測(cè)量原理中的計(jì)算公式得出脈沖寬度。電路的設(shè)計(jì)保證了只有CONT2被初始化過(guò)后才能工作,否則PUL輸出始終為零。只有在先檢測(cè)到上升沿后PUL輸出為低電平。ENDD輸出高電平以便通知單片PUL才為高電平,然后在檢測(cè)到下降沿時(shí),通知單片機(jī)計(jì)數(shù)己經(jīng)結(jié)束。如果先檢測(cè)到下降沿,PUL并無(wú)變化。在檢測(cè)到上沿并緊接一個(gè)下沿后,不再發(fā)生變化直到下一個(gè)初始化信號(hào)到來(lái)。占空比的測(cè)量方法是通過(guò)測(cè)量脈沖寬度記錄CONT2的計(jì)數(shù)值N1,然后將輸入信號(hào)反相,再測(cè)量其脈沖寬度,測(cè)的CONT2計(jì)數(shù)值N2,則可以計(jì)算出。 (61)圖63脈寬測(cè)量模塊隨著EDA技術(shù)和FPGA集成度的提高,F(xiàn)PGA不但包括了MCU(微控制器或單片機(jī))特點(diǎn),并兼有串、并行工作方式和高速、高可靠性以及寬口徑適用性等諸多方面的特點(diǎn)。單片機(jī)完成的數(shù)據(jù)處理功能也可集成在FPGA芯片中?;贔PGA的電子系統(tǒng)設(shè)計(jì)僅僅是各種邏輯模塊與IP核的邏輯合成和拼裝。測(cè)頻系統(tǒng)的標(biāo)準(zhǔn)信號(hào)頻率的提高,可進(jìn)一步提高測(cè)頻的精度或縮短測(cè)頻時(shí)間[15]。 FPGA整體仿真仿真使用Quartus II軟件,該軟件支持VHDL語(yǔ)言,對(duì)FPGA模塊編譯后,其時(shí)序仿真波形圖64所示,在TF =0, EEND = 1時(shí)在FSTD,F(xiàn)INPUT端口有穩(wěn)定的數(shù)據(jù)輸出,并且可以設(shè)置其周期比是1/2。同時(shí)測(cè)得不同閘門(mén)時(shí)間內(nèi)對(duì)標(biāo)準(zhǔn)時(shí)鐘信號(hào)和被測(cè)信號(hào)的脈沖計(jì)數(shù)值,可以看出一直保持1/2的關(guān)系,符合系統(tǒng)要求的等精度原理公式計(jì)算。在輸入標(biāo)準(zhǔn)頻率信號(hào)時(shí),由此可得被測(cè)信號(hào)的頻率值。 進(jìn)而計(jì)算出所測(cè)轉(zhuǎn)速。由圖64可看出,基本在軟件上實(shí)現(xiàn)了測(cè)試功能,在整個(gè)頻率測(cè)量范圍內(nèi),精度恒定,實(shí)現(xiàn)了等精度測(cè)量。圖64 仿真波形結(jié)論本設(shè)計(jì)利用FPGA設(shè)計(jì)一種等精度轉(zhuǎn)速測(cè)量系統(tǒng),依據(jù)測(cè)量轉(zhuǎn)速是以頻率測(cè)量為基礎(chǔ)。設(shè)計(jì)中采取等精度測(cè)頻原理,運(yùn)用VHDL語(yǔ)言編程,給出實(shí)現(xiàn)程序和仿真波形。系統(tǒng)硬件設(shè)計(jì)簡(jiǎn)潔,有良好的可操作性和較高的性價(jià)比。該系統(tǒng)以FPGA作為主要器件進(jìn)行的設(shè)計(jì),縮小了設(shè)計(jì)的電路板體積而且也一定程度上簡(jiǎn)化了研發(fā)需要的時(shí)間。又由于FPGA高速,高精度特點(diǎn),提高了系統(tǒng)設(shè)計(jì)的實(shí)用性和可靠性,實(shí)現(xiàn)數(shù)字系統(tǒng)軟件化,這是數(shù)字邏輯設(shè)計(jì)的趨勢(shì)。這次畢業(yè)設(shè)計(jì),我除了對(duì)相關(guān)的專業(yè)知識(shí)以及相關(guān)的實(shí)驗(yàn)操作進(jìn)行了回顧,還有許多其他的收獲,比如在繪制論文中所需要的相關(guān)的電路圖的過(guò)程中,我還學(xué)會(huì)了使用VISIO繪圖,這次畢業(yè)設(shè)計(jì)不但讓我對(duì)本專業(yè)的相關(guān)基礎(chǔ)知識(shí)進(jìn)行了很好的復(fù)習(xí),還對(duì)原書(shū)本上的知識(shí)進(jìn)行了拓展和延伸,畢業(yè)設(shè)計(jì)不但鍛煉了我的動(dòng)手能力,也鍛煉了我的處理問(wèn)題的能力,并且學(xué)會(huì)了許多新知識(shí)。我感到由衷的快樂(lè),沒(méi)有付出,哪有回報(bào)!在實(shí)踐中得到鍛煉是年輕人最大的財(cái)富!參考文獻(xiàn)[1]李福進(jìn),陳至坤,[J].工礦自動(dòng)化,2006,2(1):5455.[2]Wekhande S,Sgarwal absolute position vernier shaft encodersuitable for highperformance PMSM servo drives[J].IEEE Transactions on Instrumentation and Measurement,2006,55(1):357~363.[3][M].北京:電子工業(yè)出版社,2005.[4]Cohen Coding Styles and Methodologies[M].Pearson Education Press,2005.[5]李宏偉,[M].北京:電子工業(yè)出版社,2006.[6]宋健,[J].工業(yè)儀表與自動(dòng)化裝置,2005,1(6):60-61.[7],第5期,第18卷[8][J].現(xiàn)代電子技術(shù),2005,30(8):7679.[9]李紅剛,[J].微計(jì)算機(jī)信息,2008,24(112):218219.[10][J].微計(jì)算機(jī)信 息,2007,1(2):249250.[11] [M].北京:電子工業(yè)出版社,2005.[12]Altera FPGA Family Data :15P[13] [M].北京:電子工業(yè)出版社,2005。[14][M] .成都:電子科技大學(xué)出版社,2007.[15][M].北京:人民郵電出版社,2005 .附錄部分程序:(1) 測(cè)頻/測(cè)周期選擇模塊程序LIBRARY IEEE。USE 。ENTITY FIN IS PORT(CHKF,FIN,CHOIS : IN STD_LOGIC。 FOUT : OUT STD_LOGIC)。END FIN。ARCHITECTURE rt1 OF FIN ISBEGIN FOUT=(FIN AND CHOIS)OR(CHKF AND NOT CHOIS)。END rt1。(2)計(jì)數(shù)模塊程序LIBRARY IEEE。USE 。USE 。ENTITY CNTIS PORT(A,B,CLK,CLR: IN STD_LOGIC。 OO: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 Q: OUT STD_LOGIC_VECTOR(31 DOWNTO 0); END CNT。ARCHITECTURE behav OF CNT IS SIGNAL CNT : STD_LOGIC_VECTOR(31 DOWNTO 0)。 SIGNAL SEL: STD_LOGIC_VECTOR(1 DOWNTO 0)。BEGIN PROCESS(CLK,CLR) BEGIN IF CLR = 39。139。 THEN CNT = (OTHERS=39。039。)。 ELSIF CLK39。EVENT AND CLK = 39。139。 THEN CNT=CNT+1。 END IF。END PROCESS。PROCESS (A, B)BEGIN SEL(0)=A。 SEL(1)=B。 IF SEL = 00 THEN OO = CNT(7 DOWNTO 0)。 ELSIF SEL = 01 THEN OO = CNT(15 DOWNTO 8)。 ELSIF SEL = 10 THEN OO = CNT(23 DOWNTO 16)。 ELSIF SEL = 11 THEN OO = CNT(31 DOWNTO 24)。 ELSE OO=00000000。END IF。END PROCESS。Q = CNT。END behav。(3)控制模塊程序LIBRARY IEEE。USE 。ENTITY CONTRL ISPORT(FIN,START,CLR,FSD:IN STD_LOGIC。 CLK1,EEND,CLK2,CLRC:OUT STD_LOGIC)。END CONTRL。ARCHITECTURE MIX OF CONTRL IS SIGNAL 1 : STD_LOGIC。BEGIN PROCESS (FIN,CLR,START) BEGIN IF CLR=39。139。 THEN 1=39。039。 ELSIF FIN39。EVENT AND FIN=39。139。 THEN 1=START。 END IF。END PROCESS 。CLRC=CLR。EEND=1。CLK1=FIN AND 1。CLK2=FSD AND 1。 END MIX。(4)脈寬寬度測(cè)量和占空比測(cè)量模塊設(shè)計(jì)程序LIBRARY IEEE。USE 。USE 。ENTITY CONTRL2 IS PORT(FIN,START,CLR: IN STD_LOGIC。 ENDD,PUL: OUT STD_LOGIC)。END CONTRL2。ARCHITECTURE behav OF CONTRL2 ISSIGNAL : STD_LOGIC_VECTOR(3 DOWNTO 1)。 SIGNAL A0,B0,C0,F2: STD_LOGIC。 SIGNAL S : STD_LOGIC_VECTOR(1 DOWNTO 0)。BEGIN S(0)=(3)。 S(1)=(2)。 PROCESS (START,S) BEGIN IF START = 39。139。 THEN F2=FIN。 ELSE F2=NOT FIN。END IF。 IF S=2 THEN PUL=39。139。 ELSE PUL =39。039。END IF。 IF S=3 THEN ENDD=39。139。 ELSE ENDD=39。039。END IF。END PROCESS。A0=F2 AND (1)。B0=NOT A0。C0=NOT F2。PROCESS (C0,CLR)BEGIN IF CLR = 39。139。 THEN (1)=39。039。 ELSIF C039。EVENT AND C0=39。139。 THEN (1)=39。139。 END IF。END PROCESS。PROCESS (A0,CLR) BEGIN IF CLR = 39。139。 THEN (2)=39。039。 ELSIF A039。EVENT AND A0=39。139。 THEN (2)=39。139。 END IF。END PROCESS。PROCESS (B0,CLR) BEGIN IF CLR = 39。139。 THEN (3)=39。039。 ELSIF B039。EVENT AND B0=39。139。 THEN (3)=39。139。 END IF。END PROCESS。END behav