freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于fpga的步進電機控制系統(tǒng)的數(shù)字硬件設計研究—畢業(yè)設計論文(編輯修改稿)

2025-04-03 09:45 本頁面
 

【文章內容簡介】 t = ‘0’ 。 count23 = ( others = ‘0’ ) 。 else if ( CLK = ‘ l 39。 and CLK’ event ) then count23 = count23 + ‘ l 39。 。 if ( count23 = “11111111111111111111111” ) then sclkout = ‘ l 39。 。 else sclkout = ‘ O 39。 。 end if。end if。end if。end process 。 CLKOUT = count23 ( 6 ) 。 程序中,CLKOUT 為所需的的結束信號,給后面的模塊使用65536HZ 的時鐘,Sclkout 為每一個周期(每秒)。(2)總輸出脈沖數(shù)控制模塊在這里,我用一個23bit 的計數(shù)器和一個輸出開關來實現(xiàn)對總輸出脈沖個數(shù)的控制。如下所示:process ( RESET ,WAVE_IN , pulse _ counter , iocontrol , max_plus ) begin if ( RESET = ‘ O ’ ) then iocontrol = ‘ l 39。 。 pulse_counter = ( others = ‘ O ’) 。 else if (WAVE_IN = ‘ O ’ and WAVE_IN’event ) then if ( pulse _ counter = max_plus ) then iocontrol = ‘ O ’ 。 else pulse _ counter = pulse _ counter + ‘ l 39。 。 end if。end if 。end if。end process 。 OUTPUT =WAVE_IN and iocontrol。WAVEIN 是step _wave . vhd 部分的脈沖信號輸出,輸入到step _ control 部分,每輸入一個WAVEIN ,代表著輸出一個控制步進電機的脈沖。由iocontrof 來控制輸出到整個系統(tǒng)的輸出OUTPUT 。當輸出脈沖個數(shù)計數(shù)器pulse _ counter 沒有達到設定的總輸出脈沖個數(shù)max_plus 的時候,iocontrol 為‘ 1 39。 ,WAVE_IN 一直輸出到OUTPUT 。當pulse _ counter 達到max_plus 的時候,iocontrol 為 ‘ O 39。 ,WAVE_IN 被屏蔽掉,系統(tǒng)不輸出脈沖。(3)每秒輸出的脈沖個數(shù)寄存器更新模塊對輸出脈沖個數(shù)寄存器的更新,我利用前端模塊產(chǎn)生的控制信號Sclkout , 在每一周期(秒)的最后一個脈沖輸出后進行更新。當加速度不為零的時候,每秒種要輸出的脈沖個數(shù)=前一秒鐘輸出的脈沖個數(shù)+加速度。由于最大輸出的脈沖數(shù)為65535 ,而且負的脈沖輸出個數(shù)沒有意義,所以,在對脈沖輸出個數(shù)的寄存器更新前,要確保新的輸出脈沖個數(shù)在O —65535 之間。因此,我把加速度分為正和負兩種情況,在和前一秒輸出的脈沖個數(shù)相加前先進行判斷。對于正的加速度,大于65535 的結果被強制為系統(tǒng)所能輸出的最大脈沖數(shù)65535 。而對于負的加速度,小于O 的結果則被強制為系統(tǒng)所能輸出的最小脈沖數(shù)O 。VHDL 的描述如下所示:process ( RESET , sclkout , skeyout , speed , SET ) begin if ( RESET = ‘ O ’ ) then if ( SET = 001 ) then speed = 0000000010000000 。 … …else if ( ( ( skeyoutspeedup ( 15 downto 0 ) ) = speed ) and skeyout = speedup ( 15 downto 0 ) ) then skeyout = skeyout speedup ( 15 downto 0 ) 。 elseskeyout = speed 。 end if。end if。end if。end process 。程序中skeyout 就是輸出脈沖個數(shù)寄存器,由step _ control. vhd 部分,用以實際控制輸出的脈沖個數(shù)。有一點要說明的是,實際應用中,需要設定三個值:速度(speed )、加速度(speedup )和總輸出脈沖個數(shù)( max_puls ) ,具體數(shù)值由外部的單片機,芯片或DSP 來決定,這需要多根I/O 和另外編寫單片機DSP 的程序,而這方面程序的設計不在本研究課題的范圍內,所以在本研究課題中,總輸出脈沖個數(shù)和加速度這兩個參數(shù)我預先設定在VHDL 描述的電路之中,修改參數(shù)后重新編譯VHDL 程序便可實現(xiàn)不同參數(shù)的錄入。而速度則由外部的DIP 開關設定。本系統(tǒng)能設定的速度范圍為O —65535pps ,不過,由于速度差距不大時示波器上不容易看出區(qū)別,所以,外接的DSP開關只為8 位,設定的速度為256 級,這樣可以方便地觀測輸出波形。(4) 中其RESET 為復位信號,CLK 為外部提供的8MHZ 時鐘源,SET 為外部所設定的輸出脈沖信號的速度,WAVE_lN 為step_wave . vhd 部分反饋回來的輸出脈沖信號,KEYOUT 為輸出到step_wave . vhd 部分的信號,對輸出脈沖信號速度寄存器的數(shù)值進行更新。OUTPUT 信號為輸出給步進電機驅動器的脈沖信號,即本課題研究所要求得到的信號。 Step_wave . vhd 部分 部分所需實現(xiàn)的功能,經(jīng)過分析后知道,此部分主要由以下幾個模塊構成:l 、16bit 計數(shù)器;2 、16 種頻率的脈沖產(chǎn)生模塊;3 、脈沖疊加模塊。上面三個模塊的連接關系圖即step_wave .vhd 部分的結構框圖如圖3 .9 所示。 ,我們就可以用VHDL 設計各個模塊,下面將作論述。(1)16bit計數(shù)器模塊在脈沖產(chǎn)生部分step_wave . vhd 中,具體要用哪些模塊才能實現(xiàn)本研究課題的要求呢?首先,由于要求產(chǎn)生的脈沖數(shù)是O —65535 ,根據(jù)前面的方程式可以知道,最終輸出的脈沖其實是由1/2CLK 、l / 4CLK 、l / 8CLK … … l /32768CLK 這16 種脈沖中的某些來合成的。為了實現(xiàn)這16 種頻率的脈沖,需要一個16bit 的計數(shù)器。所以,這部分的第一個模塊就是用來產(chǎn)生一個16bit 的計數(shù)器。VHDL 描述如下所示:process ( CLK , RESET , Countl6 ) begin if ( RESET = ‘0’)then Countl6 = ( others = ‘0’ ) 。 else if ( CLK = ‘ l 39。 and CLK’event ) then Countl6 = Countl6 + ‘ l 39。 。 end if。end if。end process 。 程序中的CLK 就是由step _ control 分頻得到65536 HZ的時鐘。產(chǎn)生的16bit 計數(shù)器的16 種狀態(tài),提供給下一個模塊使用,以便產(chǎn)生16 種頻率的唯一狀態(tài),以保持一個基準時鐘周期的脈沖。(2)16種頻率的脈沖產(chǎn)生模塊Step_wave . vhd 部分第二個模塊是16 種頻率的脈沖產(chǎn)生模塊,從前面的公式和圖3 .3 可知,這16 種脈沖其實是以16bit 計數(shù)器的16 種不會重疊的狀態(tài)為條件而產(chǎn)生的。用VHDL 來實現(xiàn),具體描述見附錄。process ( Countl6 , Outputl6 ) begin if ( RESET = ‘ O ’ ) then Outputl6 = ( others = ‘ O ’ ) 。 else if ( Countl6 ( O ) = ‘ l 39。 ) then Outputl6 ( 15 ) = ‘ l 39。 。 else Outputl6 ( 15 ) = ‘ O ’ 。 end if。if ( Countl6 ( 1 downto 0 ) = 10 ) then Outputl6 ( 14 ) = ‘ l 39。 。 else Outputl6 ( 14 ) = 39。 O , 。 end if?!?…;end if。end process 。 程序中的outputl6 的O—15位,就是這16 種頻率的脈沖,依次成1 / 2 遞減,且不會重疊。其中output ( 15 )也就是最高位,其頻率最高。(3)脈沖疊加模塊第三個也就是Step_wave . vhd 部分最后一個模塊,它是脈沖疊加模塊,用來把這16 種脈沖疊加起來,得到最終所需要的輸出。由前面的公式可知,最后,在指定的輸出脈沖個數(shù)下,對于這16 種頻率的脈沖,應提取出需要的那幾種進行疊加。所以,要在每一種脈沖輸出加上輸出控制,以控制這種脈沖需不需要輸出。這個輸出控制可由16 個兩輸入與門,一端接輸出脈沖,另一端接對應的脈沖個數(shù)寄存器。例如,要每秒鐘輸出8000 個脈沖,則先把8000 化成二進制:1111101000000 ,得出對應位a12 , a11 , a10 , a9 , a8 和a6 為1 ,其余位為O 。所以,與這些為“1 ”的位相連接的與門打開,讓對應頻率的脈沖l / 16CLK 、l / 32CLK 、l / 64CLK 、l / 128CLK 、l / 256CLK 和l / 1O24CLK 輸出到16 輸入的或門上進行疊加。VHDL 的描述如下所示:process ( RESET , KEY , CLK , Outputl6 , swave_out , key_tmp ) begin if ( RESET = ‘0’ ) then swave_out = ‘0’ 。 else for i in 0 to 15 loop key_tmp ( i ) = KEY ( i ) and Outputl6 ( i ) and CLK 。 end loop 。 swave _ out = key_tmp ( O ) or key_tmp ( l ) or key_tmp ( 2 ) or key_tmp ( 3 ) or key_tmp ( 4 ) or key_tmp ( 5 ) or key_tmp ( 6 ) or key_tmp ( 7 ) or key_tmp ( 8 ) or key_tmp ( 9 ) or key_tmp ( 10 ) or key_tmp ( 11 ) or key_tmp ( 12 ) or key_tmp ( 13 ) or key_tmp ( 14 ) or key_tmp ( 15 ) 。 end if。end process 。 程序中的swave_out 就是最后合成的脈沖輸出。 部分完成以后,單獨對此部分進行時序仿真,波形圖如3 .9 所示。(4) 鑒于顯示的篇幅有限,不能把數(shù)秒內完整的波形圖顯示出來,所以,上面顯示的只是一個周期中一段時間內的波形圖。兩幅圖中的CLK 即第二行的信號是65536HZ 的外部輸入時鐘, 部分提供,RESET 即最上面的信號是外部給的復位信號,最底下的信號WAVEOUT 疊加出來用來控制步進電機驅動器脈沖信號, 部分,由其控制是否對步進電機輸出脈沖信號。在兩大部分的VHDL 編寫及時序仿真完成無誤后,再對整個系統(tǒng)進行系統(tǒng)時序仿真。通過測試,結果顯示,實測值和理論值相吻合,證明了本課題設計是成功的。 4 設計調試與問題討論 設計調試本研究課題所用的主要開發(fā)系統(tǒng)是ALTERA公司的Quartus Ⅱ,由于是首次使用,所以,在課題開始的時候,遇到了不少軟件使用上的問題。但是,通過指導教師朱晉老師的仔細指導和自己的不斷摸索,終于,對Quartus Ⅱ的操作有了較全面的了解。設計輸入Analysis amp。 ElaboraionAnalysis amp。 Synthesis適配是否滿足時序、資源要求?配置/編程文件(.sof/.pof)配置/編程器件產(chǎn)生功能網(wǎng)表功能仿真布局、步線后的仿真文件(.vo/.vho,.sdo)時序仿真YN設置約束設置約束 設計調試流程 問題討論在這里,著重討論用VHDL 進行數(shù)字設計過程中所遇到的一些問題。 VHDL 程序編寫在用VHDL 進行電路設計之前,首先得有邏輯電路基礎,再進行編程,VHDL 編程跟用其他軟件語言不同,雖然語法看上去也象是一種編寫軟件的語言,但VHDL 語言和編寫軟件的語言如C 語言是有根本區(qū)別的。VHDL 的根本就是將電路描述出來,通常軟件程序是順序執(zhí)行的,而VHDL 語言的描述大部分都是并發(fā)執(zhí)行的。所以,在編程時,應該時刻記住自己是在描述電路,應對要綜合的電路有個概念才能寫出功能正確且能綜合實現(xiàn)的VHDL 程序。 在VHDL 的設計過程中,洞悉VHDL 程序描述背后的硬件工作行為和硬件結構方式對于硬件測試、硬件仿真、硬件排錯非常重要,才能完成高質量的VHDL 設計。 VHDL 程序的順序問題寫軟件的時候,程序的執(zhí)行一般是根據(jù)語句的先后,這時程序的順序顯得尤為重要,但在寫VHDL 的時候就有點不同,因為VHDL 描述的是一張電路圖,你只要能將各個模塊描述清楚就行,至于各個模塊描述的先后順序,常顯得較為自由。 改進設計或其它方案的思索1 .改進本研究課題的思索 本研究課題的要求中有一項是要能控制總的輸出脈沖的個數(shù),我在實現(xiàn)這個功能時用關閉輸出的方法,在輸出總脈沖數(shù)達到預設的數(shù)目時,兩輸入與門中的一個輸入為
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1