當前位置:首頁 > 計數器
  • TER偏航紐纜計數器原理

    偏航紐纜計數器用于控制工業機械的動作。通過諸如接觸器或可編程控制器用作電機輔助控制裝置。適用于重型負,軸連接于電機上,達到設置轉數后,凸輪使開關運轉,由此開始預定的動作。一部渦輪轉傳裝置和一部螺旋齒輪結合一對或多對直齒輪,用于從輸入軸到輸出軸的運動傳遞。 轉數比的范圍為1:1至1:9400,這取決于輸入軸和輸出軸之間不同的齒輪組合,齒輪組合連接于使開關運轉的凸輪上。傳動軸和齒輪驅動軸均由不銹鋼材料制作,以避免氧化或磨損。齒輪和驅動襯套由自動潤滑的熱塑材料制作,并經過適當篩選,以便將磨損程度降至最低并保持聯軸器在長時間內的準確性。限位開關的壓鑄鋁制底座具有高抵抗性,球形軸承優化了軸轉動,防止摩擦。 由于安裝了凸輪調節螺絲,因此每個凸輪均可進行高準確度地設置。輔助開關均為正向打開型,因此符合安全操作的要求。 凸輪開關裝置可以替代用于連接到電子設備的電位計。可以為限位開關的每次輸出設置不同的轉數比,以便對機械進行多樣化控制,并滿足特定的要求。 各種材料和組件均具有良好的抗磨性,同時設備具有很好的防水防塵性能。 限位開關可以通過法蘭直接連接到電機上,并且可以根據客戶的要求對其標簽和顏色進行個性化設計。 特點: - 世界上最大的偏航角度限位開關及控制器提供者——TER - 被VESTAS、GE、GAMESA、ENERCON、SUZLON等世界一流風機制造商唯一指定的偏航位置控制器; -已被證明的連續20年運行無需更換; -凸輪開關齒輪比可根據客戶需求定制; -高可靠性與不隨時間衰退的高精度是TER偏航控制器的顯著特點; 使用: -變槳位置及限位開關:采用內帶編碼器的小型旋轉限位開關用于風力發電機組變槳系統,一方面可以提供高精度的槳矩角,既可以作為變槳伺服電機的角度輸入信號,也可作為冗余。

    時間:2012-10-22 關鍵詞: 原理 計數器 ter

  • 打樁船自動測量系統中聲音控制計數器的設計

    1 引言    在自動化技術高速發展與微處理器廣泛應用的今天,傳感器技術也越來越被重視。各傳感器產品相繼出現,并應用到各種控制領域及測量系統以代替傳統的人工操作。隨著我國海洋資源不斷開發及水上交通的飛速發展,近幾年來我國沿海各大城市都在大力發展港口的建設,各類傳感設備打破傳統的人工測量方法,在海上施工船舶的測量系統中也發揮著巨大的作用,例如一個船舶打樁自動測量系統中就集成了高精度GPS接收機、傾斜儀、激光測距儀、聲控計數系統等以采集打樁過程中各類數據,并對船舶姿態等進行實時矯正,以控制打樁精度,大大提高了施工質量與工作效率。    本文的聲音控制計數器是該系統的一個組成部分,主要用來記錄打一根樁時氣錘打樁的次數,解決了以往人工記錄費時費力、準確度不高的缺點,并可自動輸送到計算機數據庫軟件進行記錄。2 工作原理與系統結構2.1 工作原理    聲音控制計數系統是通過駐極體電容傳聲器拾取打樁船氣錘敲擊樁柱時所發出的聲音,并經放大濾波等處理消除掉船上發動機轉動聲、工人工作時敲擊聲等雜聲后,經模擬-數字轉換電路轉化成數字信號后送入單片機進行數字處理,根據敲擊的規律及波形分析再次排除各類干擾,進行準確記錄后通過串口輸送給上位機數據庫軟件進行記錄。2.2 系統結構    聲音控制計數系統主要包括拾音頭、前置放大、濾波中放、模擬-數字轉換、微處理器等五個部分,其系統框圖如圖l所示。3 模擬部分設計3.1 前置放大    前置放大處理原理見圖2。模擬電路具有可靠性高、穩定性好的優點,一旦電路參數確定,其性能也就確定下來。由于船上設備諸多,各種設備運轉時的噪聲覆蓋范圍大,有發動機轉動時的轟鳴聲,也有金屬相互撞擊的高頻聲,還有海浪撞擊船體的低頻聲,因此在如此復雜的環境中拾取打樁聲要經過多次處理。由于拾音頭靈敏度較低,為提高接收靈敏度,把傳聲器接成惠登斯橋的一臂,并經隔直電容隔直后送至反相放大器的反向端,而電橋的另一結點接放大器同相端。在實際應用過程中,環境噪聲會有相應的變化,且鋼樁與水泥樁的音質及頻率不一樣,前置放大器可手動調整增益以達到最佳效果。其原理如圖2。3.2 模一數接口    模擬—數字接口處理原理如圖3所示。聲音信號經前置放大后再送入濾波與第二級放大、檢波等處理環節變成比較干凈、幅度可識別的模擬信號。為送入單片機做進一步的糾錯處理及作相應的控制處理,需要對輸出的模擬信號進行數字化轉換。這里分成兩路進行處理,其中一路進行緩沖驅動后送入單片機A/D采樣接口進行波形采樣;另一路送入單穩態觸發器進行去抖處理以防止噪聲引起的脈沖輸出而被誤計數。4 控制部分設計    為了對打樁聲進行計數,并將該數據上傳到上位機數據庫管理軟件記錄下來,本計數器選擇了STl2C2052AD單片機作為系統控制器,這是一款具有A/D轉換接口、外部中斷請求輸入、增強型異步串口的8051型單片機,它具有體積小,價格低廉的優點,同時資源非常適合本系統的應用。    計數控制流程如圖4所示。模擬信號經過模數接口的處理,第一路經過線性緩沖器驅動后送入單片機A/D采樣接口對聲音波形進行采樣以記錄波形的特性。由于打樁聲經過模擬電路的處理后強度要比別的雜聲大,而且其持續時間要相對較長,因此可以根據這一特性對波形進行自適應識別。但是船上作業中會有臨時的金屬撞擊聲打破這種特性,因此單獨的波形識別是不能保證計數的高可靠性的。因此這里設計了兩路輸入,另一路經過單穩態去抖濾波后轉換成數字計數脈沖輸入單片機中斷輸入請求端進行計數中斷請求。由于打樁時打樁聲在時間上具有一定的周期性,打擊間隔有規律,因此在處理器內部啟動定時器對打樁周期進行記錄,從周期上來識別聲音的真假。這兩路輸入單獨處理都存在其局限性,但如果將兩路結合起來,其中一路對波形特性進行識別,另一路對周期進行識別,相輔相成,大大提高了計數的準確率。5 結語    聲音控制、聲音傳感等技術發展到今天已有廣泛的應用,但隨著電子技術的飛速發展,各領域自動化程度的提高,要求也在提高。在實際應用中,可控制性、實現的高精度、高可靠性更成為當今的焦點,為了提高系統集成度,往往需要通用的接口與微機相連。本設計根據實際環境的特性,以模擬電路處理與數字電路處理及微機控制相結合,綜合三者的優點,互補三者的缺點,并根據實際環境、樁的不同,手動調節固定參數,大大地保證了系統的穩定性與準確度。經過實際應用,該計數系統準確度達到98%以上,且非常便于打樁系統的集成,是船舶打樁系統自動化控制與測量系統中的重要組成部分。

    時間:2009-04-14 關鍵詞: 系統 聲音控制 計數器 自動測量

  • 計數器的同步擴展、級聯及波形圖

    計數器的同步擴展計數器級聯及波形圖

    時間:2010-01-13 關鍵詞: 計數器 波形圖 級聯

  • 計數器的電路圖實例

    計數器的同步擴展 計數器級聯及波形圖

    時間:2011-12-04 關鍵詞: 實例 電路圖 計數器

  • 高壓蓋革計數器電源

    高壓蓋革計數器電源

    時間:2011-10-12 關鍵詞: 電源 計數器 高壓 電源穩壓電源

  • 高壓蓋革計數器電源電路

    高壓蓋革計數器電源電路

    時間:2012-02-06 關鍵詞: 電路 電源 計數器 高壓 電源顯示器電源

  • 計數器中LED顯示控制電路圖

    計數器中LED顯示控制電路圖

    如圖所示,圖a中采用十進制七段存儲-譯碼-驅動單元74143,此單元對所有段都有恒流輸出。在電壓為5V時每段電流約為15~22mA。七段譯碼器的 BCD數據可以由腳17~20上取出。腳22用于進位,即當計數值到9后就為低電平,其余為高電平。利用這個信號可以控制上一位計數器。 圖b用于控1位或1又1/2位七段LED顯示電路。SAB3211作4位二進制計數用。根據需要可前接二進制計數器(FZJ151)或十進制計數器(FZJ141)。電源電壓為9~16V。  

    時間:2015-06-10 關鍵詞: 計數器 led顯示 電源顯示器電源

  • 單片機延時方法小結

    實現延時通常有兩種方法:一種是硬件延時,要用到定時器/計數器,這種方法可以提高CPU的工作效率,也能做到精確延時;另一種是軟件延時,這種方法主要采用循環體進行。 1 使用定時器/計數器實現精確延時 單片機系統一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,后兩種的一個機器周期分別為1 μs和2 μs,便于精確延時。本程序中假設使用頻率為12 MHz的晶振。最長的延時時間可達216=65 536 μs。若定時器工作在方式2,則可實現極短時間的精確延時;如使用其他定時方式,則要考慮重裝定時初值的時間(重裝定時器初值占用2個機器周期)。 在實際應用中,定時常采用中斷方式,如進行適當的循環可實現幾秒甚至更長時間的延時。使用定時器/計數器延時從程序的執行效率和穩定性兩方面考慮都 是最佳的方案。但應該注意,C51編寫的中斷服務程序編譯后會自動加上PUSH ACC、PUSH PSW、POP PSW和POP ACC語句,執行時占用了4個機器周期;如程序中還有計數值加1語句,則又會占用1個機器周期。這些語句所消耗的時間在計算定時初值時要考慮進去,從初值 中減去以達到最小誤差的目的。 2 軟件延時與時間計算 在很多情況下,定時器/計數器經常被用作其他用途,這時候就只能用軟件方法延時。下面介紹幾種軟件延時的方法。 2.1 短暫延時 可以在C文件中通過使用帶_NOP_( )語句的函數實現,定義一系列不同的延時函數,如Delay10us( )、Delay25us( )、Delay40us( )等存放在一個自定義的C文件中,需要時在主程序中直接調用。如延時10 μs的延時函數可編寫如下: void Delay10us( ) { _NOP_( ); _NOP_( ); _NOP_( ); _NOP_( ); _NOP_( ); _NOP_( ); } Delay10us( )函數中共用了6個_NOP_( )語句,每個語句執行時間為1 μs。主函數調用Delay10us( )時,先執行一個LCALL指令(2 μs),然后執行6個_NOP_( )語句(6 μs),最后執行了一個RET指令(2 μs),所以執行上述函數時共需要10 μs。  可以把這一函數當作基本延時函數,在其他函數中調用,即嵌套調用[4],以實現較長時間的延時;但需要注意,如在Delay40us( )中直接調用4次Delay10us( )函數,得到的延時時間將是42 μs,而不是40 μs。這是因為執行Delay40us( )時,先執行了一次LCALL指令(2 μs),然后開始執行第一個Delay10us( ),執行完最后一個Delay10us( )時,直接返回到主程序。依此類推,如果是兩層嵌套調用,如在Delay80us( )中兩次調用Delay40us( ),則也要先執行一次LCALL指令(2 μs),然后執行兩次Delay40us( )函數(84 μs),所以,實際延時時間為86 μs。簡言之,只有最內層的函數執行RET指令。該指令直接返回到上級函數或主函數。如在Delay80μs( )中直接調用8次Delay10us( ),此時的延時時間為82 μs。通過修改基本延時函數和適當的組合調用,上述方法可以實現不同時間的延時。 2.2 在C51中嵌套匯編程序段實現延時 在C51中通過預處理指令#pragma asm和#pragma endasm可以嵌套匯編語言語句。用戶編寫的匯編語言緊跟在#pragma asm之后,在#pragma endasm之前結束。 如:#pragma asm … 匯編語言程序段 … #pragma endasm 延時函數可設置入口參數,可將參數定義為unsigned char、int或long型。根據參數與返回值的傳遞規則,這時參數和函數返回值位于R7、R7R6、R7R6R5中。在應用時應注意以下幾點: ◆ #pragma asm、#pragma endasm不允許嵌套使用; ◆ 在程序的開頭應加上預處理指令#pragma asm,在該指令之前只能有注釋或其他預處理指令; ◆ 當使用asm語句時,編譯系統并不輸出目標模塊,而只輸出匯編源文件; ◆ asm只能用小寫字母,如果把asm寫成大寫,編譯系統就把它作為普通變量; ◆ #pragma asm、#pragma endasm和 asm只能在函數內使用。 將匯編語言與C51結合起來,充分發揮各自的優勢,無疑是單片機開發人員的最佳選擇。 2.3 使用示波器確定延時時間 利用示波器來測定延時程序執行時間。方法如下:編寫一個實現延時的函數,在該函數的開始置某個I/O口線如P1.0為高電平,在函數的最后清 P1.0為低電平。在主程序中循環調用該延時函數,通過示波器測量P1.0引腳上的高電平時間即可確定延時函數的執行時間。方法如下: sbit T_point = P1^0; void Dly1ms(void) { unsigned int i,j; while (1) { T_point = 1; for(i=0;i<2;i++){ for(j=0;j<124;j++){;} } T_point = 0; for(i=0;i<1;i++){ for(j=0;j<124;j++){;} } } } void main (void) { Dly1ms(); } 把P1.0接入示波器,運行上面的程序,可以看到P1.0輸出的波形為周期是3 ms的方波。其中,高電平為2 ms,低電平為1 ms,即for循環結構“for(j=0;j<124;j++) {;}”的執行時間為1 ms。通過改變循環次數,可得到不同時間的延時。當然,也可以不用for循環而用別的語句實現延時。這里討論的只是確定延時的方法。 2.4 使用反匯編工具計算延時時間 用Keil C51中的反匯編工具計算延時時間,在反匯編窗口中可用源程序和匯編程序的混合代碼或匯編代碼顯示目標應用程序。為了說明這種方法,還使用“for (i=0;i C:0x000FE4CLRA//1T C:0x0010FEMOVR6,A//1T C:0x0011EEMOVA,R6//1T C:0x0012C3CLRC//1T C:0x00139FSUBBA,DlyT //1T C:0x00145003JNCC:0019//2T C:0x00160E INCR6//1T C:0x001780F8SJMPC:0011//2T 可以看出,0x000F~0x0017一共8條語句,分析語句可以發現并不是每條語句都執行DlyT次。核心循環只有0x0011~0x0017共 6條語句,總共8個機器周期,第1次循環先執行“CLR A”和“MOV R6,A”兩條語句,需要2個機器周期,每循環1次需要8個機器周期,但最后1次循環需要5個機器周期。DlyT次核心循環語句消耗 (2+DlyT×8+5)個機器周期,當系統采用12 MHz時,精度為7 μs。 當采用while (DlyT--)循環體時,DlyT的值存放在R7中。相對應的匯編代碼如下: C:0x000FAE07MOVR6, R7//1T C:0x00111F DECR7//1T C:0x0012EE MOVA,R6//1T C:0x001370FAJNZC:000F//2T 循環語句執行的時間為(DlyT+1)×5個機器周期,即這種循環結構的延時精度為5 μs。 通過實驗發現,如將while (DlyT--)改為while (--DlyT),經過反匯編后得到如下代碼: C:0x0014DFFE DJNZR7,C:0014//2T 可以看出,這時代碼只有1句,共占用2個機器周期,精度達到2 μs,循環體耗時DlyT×2個機器周期;但這時應該注意,DlyT初始值不能為0。 注意:計算時間時還應加上函數調用和函數返回各2個機器周期時間。 第二篇 聲明:作者初學單片機編程,本著刨根問底的探索精神,對延時代碼進行了完全透徹的分析,計算出其中的誤差,根據不同代碼占用機器周期進行調整。至于 調整0.01ms左右的時間誤差對實際應用有何實際意義則不敢妄談。不過您看完這篇文章的綠色部分,即可明確延時程序的設計方法。 舉例程序段落: ;系統頻率:6MHz Delay: MOV R5,#25 ;5ms延時——MOV指令占用1機器周期時間 Delay1: MOV R6,#200 ;200ms延時 Delay2: MOV R7,#166 ;1ms延時常數 Delay3: NOP ;空指令,什么都不做,停留1機器周期時間 DJNZ R7,Delay3 ;R7減1賦值給R7,如果此時R7不等于零,轉到Delay3執行。——2機器周期時間 DJNZ R6,Delay2 DJNZ R5,Delay1 解析如下: 1、首先計算機器周期T=12*1/f=2μs。 2、注意DJNZ R7,Delay3每執行1次需要占用NOP的時間和DJNZ本身的時間共3個機器周期。6μs。那么1ms的時間需要1ms*1000/6μs=166.67,取166。 3、注意DJNZ R6,Delay2是在166次循環后執行1次的(時間為MOV機器周期+本身機器周期,3*2=6μs),直到166*200次后,R6=0,才執行DJNZ R5,Delay1。 4、DJNZ R5,Delay1是在R5不為0的時候循環回去。時間也為6μs。 5、時間總計:166*200*25*6μs+200*25*6μs+25*6μs=5010150μs,合計5.01015ms(編程的人都遇到 過類似的潛逃循環,此程序忽略了執行MOV的時間,只計算了循環所用時間,即166*200*25*6/1000000=4.98ms,近似5ms)。 程序改進: 去掉NOP命令,整數化1ms需要的延時常數。 Delay: MOV R5,#25 ;5ms延時——MOV指令占用1機器周期時間 Delay1: MOV R6,#200 ;200ms延時 Delay2: MOV R7,#250 ;1ms延時常數 Delay3: ;NOP ;空指令,什么都不做,停留1機器周期時間 DJNZ R7,Delay3 ;R7減1賦值給R7,如果此時R7不等于零,轉到Delay3執行。——2機器周期時間 DJNZ R6,Delay2 DJNZ R5,Delay1 此時時間總計:250*200*25*4μs+200*25*6μs+25*6μs=5030150μs。時間占用誤差反而比未改進的時候大,可修 正,將R7-30150/(25*200*4)=248(因為R7=250循環1次占用2個機器周期,4μs,計算等于R7-1.5075,將時間減小到 小于5ms,剩余時間另補,取248)。則:時間總計:248*200*25*4μs+200*25*6μs+25*6μs=4990150μs,需要 補:5000000-4990150=9850μs,9850/2=4925機器周期。補一個MOV R4,#200,4個NOP,還需4920機器周期,將其約分,得到24*205=4920。如何建立函數根據實際代碼調整,如下: Delay: MOV R5,#25 ;5ms延時——MOV指令占用1機器周期時間 Delay1: MOV R6,#200 ;200ms延時 Delay2: MOV R7,#250 ;1ms延時常數 Delay3: ;NOP ;空指令,什么都不做,停留1機器周期時間 DJNZ R7,Delay3 ;R7減1賦值給R7,如果此時R7不等于零,轉到Delay3執行。——2機器周期時間 DJNZ R6,Delay2 DJNZ R5,Delay1 NOP NOP NOP NOP MOV R3,#6 Delayadd: MOV R4,#205 MOV R2,#0H DJNZ R3,Delayadd 解析205*24調整為205*6——這是因為Delay循環為4機器周期代碼,因此將24/4=6。請計算:205*6*4=4920; 4920+5=4925。時間補充正好。此時時間計 算:248*200*25*4μs+200*25*6μs+25*6μs=4990150μs+4925*2μs=5000000μs合計5ms。 理論上1μs都不差(僅為科學探討,具體晶振頻率的誤差多大作者并不明確)。

    時間:2015-09-01 關鍵詞: 定時器 單片機 計數器 延時

  • 單片機定時器與計數器

    一、計數概念的引入 從選票的統計談起:畫“正”。這就是計數,生活中計數的例程處處可見。例:錄音機上的計數器、家里面用的電度表、汽車上的里程表等等,再舉一個工業生產中的例程,線纜行業在電線生產出來之后要計米,也就是測量長度,怎么測法呢?用尺量?不現實,太長不說,要一邊做一邊量呢,怎么辦呢?行業中有很巧妙的辦法,用一個周長是1米的輪子,將電纜繞在上面一周,由線帶輪轉,這樣輪轉一周不就是線長1米嘛,所以只要記下輪轉了多少圈,就能知道走過的線有多長了。 二、計數器的容量 從一個生活中的例程看起:一個水盆在水龍頭下,水龍沒關緊,水一滴滴地滴入盆中。水滴持續落下,盆的容量是有限的,過一段時間之后,水就會逐漸變滿。錄音機上的計數器最多只計到999….那么單片機中的計數器有多大的容量呢?8031單片機中有兩個計數器,分別稱之為T0和T1,這兩個計數器分別是由兩個8位的RAM單元組成的,即每個計數器都是16位的計數器,最大的計數量是65536。 三、定時 8031中的計數器除了能作為計數之用外,還能用作時鐘,時鐘的用途當然很大,如打鈴器,電視機定時關機,空調定時開關等等,那么計數器是如何作為定時器來用的呢? 一個鬧鐘,我將它定時在1個小時后鬧響,換言之,也能說是秒針走了(3600)次,所以時間就轉化為秒針走的次數的,也就是計數的次數了,可見,計數的次數和時間之間的確十分相關。那么它們的關系是什么呢?那就是秒針每一次走動的時間正好是1秒。   <單片機定時器記數器結構> 結論:只要計數脈沖的間隔相等,則計數值就代表了時間的流逝。由此,單片機中的定時器和計數器是一個東西,只不過計數器是記錄的外界發生的事情,而定時器則是由單片機供給一個非常穩定的計數源。那么供給組定時器的是計數源是什么呢?看圖1,原來就是由單片機的晶體震蕩器經過12分頻后獲得的一個脈沖源。晶體震蕩器的頻率當然很準,所以這個計數脈沖的時間間隔也很準。問題:一個12M的晶體震蕩器,它供給給計數器的脈沖時間間隔是多少呢?當然這很不難,就是12M/12等于1M,也就是1個微秒。結論:計數脈沖的間隔與晶體震蕩器有關,12M的晶體震蕩器,計數脈沖的間隔是1微秒。 四、溢出 讓我們再來看水滴的例程,當水持續落下,盆中的水持續變滿,最終有一滴水使得盆中的水滿了。這個時候如果再有一滴水落下,就會發生什么現象?水會漫出來,用個術語來講就是“溢出”。 水溢出是流到地上,而計數器溢出后將使得TF0變為“1”。至于TF0是什么我們稍后再談。一旦TF0由0變成1,就是產生了變化,產生了變化就會引發事件,就象定時的時間一到,鬧鐘就會響一樣。至于會引發什么事件,我們下次課再介紹,現在我們來研究另一個問題:要有多少個計數脈沖才會使TF0由0變為1。 五、任意定時及計數的辦法 剛才已研究過,計數器的容量是16位,也就是最大的計數值到65536,因此計數計到65536就會產生溢出。這個沒有問題,問題是我們現實生活中,經常會有少于65536個計數值的要求,如包裝線上,一打為12瓶,一瓶藥片為100粒,怎么樣來滿足這個要求呢? 提示:如果是一個空的盆要1萬滴水滴進去才會滿,我在開始滴水之前就先放入一勺水,還需要10000滴嘛?對了,我們采用預置數的辦法,我要計100,那我就先放進65436,再來100個脈沖,不就到了65536了嗎。定時也是如此,每個脈沖是1微秒,則計滿65536個脈沖需時65.536毫秒,但現在我只要10毫秒就能了,怎么辦?10個毫秒為10000個微秒,所以,只要在計數器里面放進55536就能了。

    時間:2019-06-03 關鍵詞: 定時器 單片機 計數器

  • 單片機定時器/計數器的方式控制字

    從上一節我們已經得知,單片機中的定時/計數器都能有多種用途,那么我怎樣才能讓它們工作于我所需要的用途呢?這就要通過定時/計數器的方式控制字來設置。 在單片機中有兩個特殊功能寄存器與定時/計數有關,這就是TMOD和TCON。順便說一下,TMOD和TCON是名稱,我們在寫程序時就能直接用這個名稱來指定它們,當然也能直接用它們的地址89H和88H來指定它們(其實用名稱也就是直接用地址,匯編軟件幫你翻譯一下而已)。   從圖1中我們能看出,TMOD被分成兩部份,每部份4位。分別用于控制T1和T0,至于這里面是什么意思,我們下面介紹。   從圖2中我們能看出,TCON也被分成兩部份,高4位用于定時/計數器,低4位則用于中斷(我們暫不管)。而TF1(0)我們上節課已提到了,當計數溢出后TF1(0)就由0變為1。原來TF1(0)在這兒!那么TR0、TR1又是什么呢?看上節課的圖。 計數脈沖要進入計數器還真不不難,有層層關要通過,最起碼,就是TR0(1)要為1,開關才能合上,脈沖才能過來。因此,TR0(1)稱之為運行控制位,可用指令SETB來置位以啟動計數器/定時器運行,用指令CLR來關閉定時/計數器的工作,一切盡在自已的掌握中。   <單片機定時器/計數器結構> 定時/計數器的四種工作方式 工作方式0 定時器/計數器的工作方式0稱之為13位定時/計數方式。它由TL(1/0)的低5位和TH(0/1)的8位組成13位的計數器,此時TL(1/0)的高3位未用。 我們用這個圖來討論幾個問題: M1M0:定時/計數器一共有四種工作方式,就是用M1M0來控制的,2位正好是四種組合。 C/T:前面我們說過,定時/計數器即可作定時用也可用計數用,到底作什么用,由我們根據需要自行決定,也說是決定權在我們&#0;&#0;編程者。如果C/T為0就是用作定時器(開關往上打),如果C/T為1就是用作計數器(開關往下打)。順便提一下:一個定時/計數器同一時刻要么作定時用,要么作計數用,不能同時用的,這是個極普通的常識,幾乎沒有教材會提這一點,但很多開始學習者卻會有此困惑。 GATE:看圖,當我們選擇了定時或計數工作方式后,定時/計數脈沖卻不一定能到達計數器端,中間還有一個開關,顯然這個開關不合上,計數脈沖就沒法過去,那么開關什么時候過去呢?有兩種情況 GATE=0,分析一下邏輯,GATE非后是1,進入或門,或門總是輸出1,和或門的另一個輸入端INT1無關,在這種情況下,開關的打開、合上只取決于TR1,只要TR1是1,開關就合上,計數脈沖得以暢通無阻,而如果TR1等于0則開關打開,計數脈沖無法通過,因此定時/計數是否工作,只取決于TR1。 GATE=1,在此種情況下,計數脈沖通路上的開關不僅要由TR1來控制,而且還要受到INT1管腳的控制,只有TR1為1,且INT1管腳也是高電平,開關才合上,計數脈沖才得以通過。這個特性能用來測量一個信號的高電平的寬度,想想看,怎么測? 為什 么在這種模式下只用13位呢?干嗎不用16位,這是為了和51機的前輩48系列兼容而設的一種工作式,如果你覺得用得不順手,那就干脆用第二種工作方式。 工作方式1 工作方式1是16位的定時/計數方式,將M1M0設為01即可,其它特性與工作方式0相同。 工作方式2 在介紹這種式方式之前先讓我們思考一個問題:上一次課我們提到過任意計數及任意定時的問題,比如我要計1000個數,可是16位的計數器要計到65536才滿,怎么辦呢?我們討論后得出的辦法是用預置數,先在計數器里放上64536,再來1000個脈沖,不就行了嗎?是的,但是計滿了之后我們又該怎么辦呢?要知道,計數總是持續重復的,流水線上計滿后馬上又要開始下一次計數,下一次的計數還是1000嗎?當計滿并溢出后,計數器里面的值變成了0(為什么,能參考前面課程的說明),因此下一次將要計滿65536后才會溢出,這可不符合要求,怎么辦?當然辦法很簡單,就是每次一溢出時執行一段程序(這常常是需要的,要不然要溢出干嗎?)能在這段程序中做把預置數64536送入計數器中的事情。所以采用工作方式0或1都要在溢出后做一個重置預置數的工作,做工作當然就得要時間,一般來說這點時間不算什么,可是有一些場合我們還是要計較的,所以就有了第三種工作方式&#0;&#0;自動再裝入預置數的工作方式。 既然要自動得新裝入預置數,那么預置數就得放在一個地方,要不然裝什么呢?那么預置數放在什么地方呢?它放在T(0/1)的高8位,那么這樣高8位不就不能參與計數了嗎?是的,在工作方式2,只有低8位參與計數,而高8位不參與計數,用作預置數的存放,這樣計數范圍就小多了,當然做任可事總有代價的,關鍵是看值不值,如果我根本不需要計那么多數,那么就能用這種方式。看圖4,每當計數溢出,就會打開T(0/1)的高、低8位之間的開關,計預置數進入低8位。這是由硬件自動完成的,不需要由人工干預。 常常這種式作方式用于波特率發生器(我們將在串行接口中講解),用于這種用途時,定時器就是為了供給一個時間基準。計數溢出后不需要做事情,要做的僅僅只有一件,就是重新裝入預置數,再開始計數,而且中間不要任何延遲,可見這個任務用工作方式2來完成是最妙不過了。 工作方式3 這種式作方式之下,定時/計數器0被拆成2個獨立的定時/計數器來用。其中,TL0能組成8位的定時器或計數器的工作方式,而TH0則只能作為定時器來用。我們知道作定時、計數器來用,需要控制,計滿后溢出需要有溢出標記,T0被分成兩個來用,那就要兩套控制及、溢出標記了,從何而來呢?TL0還是用原來的T0的標記,而TH0則借用T1的標記。如此T1不是無標記、控制可用了嗎?是的。 一般情況處,只有在T1以工作方式2運行(當波特率發生器用)時,才讓T0工作于方式3的。 定時器/計數器的定時/計數范圍 工作方式0:13位定時/計數方式,因此,最多能計到2的13次方,也就是8192次。 工作方式1:16位定時/計數方式,因此,最多能計到2的16次方,也就是65536次。 工作方式2和工作方式3,都是8位的定時/計數方式,因此,最多能計到2的8次方,也說是256次。 預置值計算:用最大計數量減去需要的計數次數即可。 例:流水線上一個包裝是12盒,要求每到12盒就產生一個動作,用單片機的工作方式0來控制,應當預置多大的值呢?對了,就是8192-12=8180。 以上是計數,明白了這個道理,定時也是一樣。這在前面的課程已提到,我們不再重復,請參考前面的例程。

    時間:2019-06-03 關鍵詞: 定時器 單片機 計數器

  • 單片機定時/計數器實驗

    前面我們做了定時器的實驗,現在來看一看計數實驗,在工作中計數常常會有兩種要求:第一、將計數的值顯示出來,第二、計數值到一定程度即中斷報警。第一種如各種計數器、里程表,第二種如前面例中講到的生產線上的計數。先看第一種吧。我們的硬件中是這樣連線的:324組成的振蕩器連到定時/計數器1的外部管腳T1上面,我們就利用這個來做一個計數實驗,要將計數的值顯示出來,當然最好用數碼管了,可我們還沒講到這一部份,為了避免把問題復雜化,我們用P1口的8個LED來顯示計到的數據。 程序如下: ORG 0000H , AJMP START ORG 30H START: MOV SP,#5FH MOV TMOD,#01000000B ;定時/計數器1作計數用,0不用全置0 SETB TR1 ;啟動計數器1開始運行. LOOP: MOV A,TL0 MOV P1,A AJMP LOOP END 在硬件上用線將324的輸出與T1連通(印板上有焊盤)運行這種程序,注意將板按正確的位置放置(LM324放在左手邊,LED排列是按從高位到低們排列)看到什么?隨著324后接的LED的閃爍,單片機的8只LED也在持續變化,注意觀察,是不是按二進制: 00000000 00000001 00000010 00000011 這樣的次序在變呢?這就對了,這就是TL0中的數據。 程序二: ORG 0000H AJMP START ORG 001BH AJMP TIMER1 ;定時器1的中斷處理 ORG 30H START: MOV SP,#5FH MOV TMOD,#01010000B ;定時/計數器1作計數用,模式1,0不用全置0 MOV TH1,#0FFH MOV TL1,#0FAH ;預置值,要求每計到6個脈沖即為一個事件 SETB EA SETB ET1 ;開總中斷和定時器1中斷允許 SETB TR1 ;啟動計數器1開始運行. AJMP $ TIMER1: PUSH ACC PUSH PSW CPL P1.0 ;計數值到,即取反P1.0 MOV TH1,#0FFH MOV TL1,#0FAH ;重置計數初值 POP PSW POP ACC RETI END 上面這個單片機程序完成的工作很簡單,就是在每6個脈沖到來后取反一次P1。0,因此實驗的結果應當是:LM324后接的LED亮、滅6次,則P1。0口所接LED亮或滅一次。這實際就是我們上面講的計數器的第二種應用。 程序三:外部中斷實驗 ORG 0000H AJMP START ORG 0003H ;外部中斷地直入口 AJMP INT0 ORG 30H START: MOV SP,#5FH MOV P1,#0FFH ;燈全滅 MOV P3,#0FFH ;P3口置高電平 SETB EA SETB EX0 AJMP $ INT0: PUSH ACC PUSH PSW CPL P1.0 POP PSW POP ACC RETI END 本程序的功能很簡單,按一次按鈕1(接在12管腳上的)就引發一次中斷0,取反一次P1。0,因此理論上按一下燈亮,按一下燈滅,但在實際做實驗時,可能會發覺有時不“靈”,按了它沒反應,但在大部份時候是對的,這是怎么回事呢?我們在講解鍵盤時再作解釋,這個程序本身是沒有問題的。

    時間:2019-06-03 關鍵詞: 定時器 單片機 計數器

  • 調整單片機時鐘精度的解決方案

    調整單片機時鐘精度的解決方案

    本文針對用單片機制作電子鐘或要求根據時鐘啟控的控制系統時,出現的校準了的電子時鐘的時間竟然變快或是變慢了的情況而提出的一種解決方案。單片機應用中,常常會遇到這種情況,在用單片機制作電子鐘或要求根據時鐘啟控的控制系統時,會突然發現當初校準了的電子時鐘的時間竟然變快或是變慢了。于是,嘗試用各種方法來調整它的走時精度,但是最終的效果還是不盡人意,只好每過一段時間手動調整一次。那么,是否可使時鐘走時更精確些呢?現探討如下:一、誤差原因分析1.單片機電子時鐘的計時脈沖基準,是由外部晶振的頻率經過12分頻后提供的,采用內部的定時,計數器來實現計時功能。所以,外接晶振頻率的精確度直接影響電子鐘計時的準確性。2.單片機電子時鐘利用內部定時,計數器溢出產生中斷(12MHz晶振一般為50ms)再乘以相應的倍率,來實現秒、分、時的轉換。大家都知道,從定時,計數器產生中斷請求到響應中斷,需要3_8個機器周期。定時中斷子程序中的數據人棧和重裝定時,計數器的初值還需要占用數個機器周期。此外。從中斷人口轉到中斷子程序也要占用一定的機器周期。例如:從上述程序可以看出,從中斷人口到定時/計數器初值的低8位裝入需要占用2+2+2=6個機器周期。所以,在編程時一般會把這6個機器周期加入定時/計數器的初值中。但是,從定時,計數器溢出中斷請求到執行中斷需要幾個機器周期(3~8個機器周期)。就很難確定準確值,正是這一原因導致了電子時鐘計時的不準。二、解決方法1、采用高精度晶振方案雖然采用高精度的晶振可以稍微提高電子鐘計時的精確度,但是晶振并不是導致電子鐘計時不準的主要因素,而且高精度的晶振價格較高,所以不必采用此方案。2、動態同步修正方案從程序人手,采用動態同步修正方法給定時,計數器賦初值。動態同步修正方法如下:由于定時,計數器溢出后,又會從O開始自動加數,故在給定時/計數器再次賦值前,先將定時,計數器低位(TLO)中的值和初始值相加,然后送人定時,計數器中,此時定時,計數器中的值即為動態同步修正后的準確值。具體程序如下:采用此種方法后,相信制作的電子時鐘的精度已有提高了。3.自動調整方案采用同步修正方案后,電子時鐘的精度雖然提高了很多,但是由于晶振頻率的偏差和一些其他未知因素的影響(同一塊電路板、同樣的程序換了一片單片機后,走時誤差不一樣,不知是何原因),時間長了仍然會有積累誤差。為此,可采用自動調整方案。實際上是一種容錯技術。其自動調整原理為:實測出誤差Is所需的時間,然后每隔這樣一段時間后就對秒進行加“1”或減“1”調整。例如:電子鐘每過50小時就慢1秒,其自動調整程序如下:以下是一個完整實例:結語使用此方法調整較費時間,但效果非常好。經實驗,一次調整可/以將月誤差控制在Is左右,如按此方法再次測出誤差Is所需的天數并進行二次調整,其精度會更高。

    時間:2018-06-20 關鍵詞: 單片機 計數器 嵌入式處理器 電子時鐘 時鐘精度

  • 基于單片機的智能計步器設計

    基于單片機的智能計步器設計

    1引言當今社會,隨著經濟的發展,人們生活水平的提高,肥胖的人越來越多,也就導致了越來越多的疾病產生,因此,人們越來越關注健康問題,而鍛煉身體是讓自己健康的最有效的方法。因此計步器應運而生,就成了時下流行的趨勢。步行時,通過伸縮肌肉,血液在流動時的抵抗值下降,血壓下降且穩定。經常步行的人很少患高血壓或低血壓病。堅持步行能減少血管內附著的脂肪性物質,使體重減輕,也逐漸減少心臟的負荷。而基于單片機為核心控制的計步器有著精確,可靠,穩定,方便等優點,已被大多數人所接受。通過計步器人們可以知道自己跑了多少步,實時掌握自己的鍛煉情況。2總體設計方案計步器由振蕩電路、復位電路、顯示電路以及按鍵電路幾個部分組成,由電池進行供電。系統結構圖如圖1所示。圖1系統結構圖3硬件的設計3.1振蕩電路AT89C51單片機內設有一個由反向放大器所構成的振蕩電路,振蕩電路是單片機系統正常工作的保證,如果振蕩器不起振,系統將會不能工作。假如振蕩器運行不規律,系統執行程序的時候就會出現時間上的誤差,這在通信中會體現的很明顯,電路將無法通信。它是由一個晶振和兩個瓷片電容組成的。時鐘電路中的兩個電容用作補償,使得晶振更容易起振,頻率更加穩定。如圖2所示。圖2振蕩電路3.2復位電路為確保微機系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V.由于微機電路是時序數字電路,它需要穩定的時鐘信號,因此在電源上電時,只有當VCC超過4.75V低于5.25V以及晶體振蕩器穩定工作時,復位信號才被撤除,微機電路開始正常工作。系統的復位采用了上電復位的形式,上電過程中微控制器復位引腳保證10ms以上的高電平就能可靠的將微控制器復位。如圖3所示。圖3復位電路3.3顯示電路本次設計采用4位LED共陰極數碼管顯示屏做為系統的顯示界面,如圖4所示。常用的LED顯示器為8段或7段(8段比7段多了一個小數點“dp”段)。每一個段對應一個發光二極管。這種顯示器由共陽極和共陰極兩種。如圖4所示。共陰極LED顯示器的發光二極管的陰極連接在一起,通常次共陰極接地。當某個發光二極管的陽極為高電平時,發光二極管點亮,相應的段被現實。為了使LED顯示器顯示不同的符號和數字,就要把不同段的發光二極管點亮,這樣就要為LED顯示器提供代碼,因為這些代碼可使LED相應的段發光,從而顯示不同字型,因此該代碼稱之為段碼(或稱為字型代碼)。7段發光二極管在加上一個小數點,共計8段。因此提供給LED顯示器的段碼正好是1B.圖4顯示器連接電路3.4按鍵電路本次設計是以按鍵的形式來代替人走步所產生的震動,每按鍵一次即表示人走動一步,其電路如圖5所示。圖5按鍵電路3.5 ADXL202傳感器電路ADXL022傳感器模塊電路如圖6所示。圖6 ADXL202傳感器模塊電路4系統軟件計步開始,內部程序準備就位。人走動一步,傳感器檢測到峰值,經四種電路,由顯示器顯示出來,再走一步,由累加器累加1,由此走幾步依次加1,由顯示器顯示。單片機復位系統產生外部中斷,顯示器置零。系統流程圖如圖7所示。圖7系統流程圖5軟件仿真系統中將按鍵電路中按鍵K1與單片機的P4.4進行連接,專用的按鍵電路產生振蕩電路,將電信號通過電路轉換給微控制器,微控制器將表征當前步數的數字量按照10進制等處理后通過直觀LED顯示。當按鍵按下一次的時候,顯示器顯示1,按幾次則顯示多少。計步器仿真效果圖如圖8所示。圖8仿真效果圖6結束語本文主要設計中包含了微控制器、顯示部件、輸入部件和實時時鐘等部分。在整個設計系統中充分掌握各模塊電路的工作原理,對硬件電路、軟件程序進行設計,最后進行仿真。

    時間:2018-06-20 關鍵詞: 傳感器 計數器 嵌入式處理器 at89c51單片機 智能計步器

  • 基于定時器/計數器的實時時鐘的設計

    基于定時器/計數器的實時時鐘的設計

    1.實現實時時鐘的基本思想 時鐘的最小計時單位是秒,如何獲得1s的定時時間呢?使用定時器方式1,最大的定時時間也只能達到131 ms。可將定時器的定時時間定為100 ms,采用中斷方式進行溢出次數的累計,計滿10次,即得到秒計時。而計數10次可用循環程序的方法實現。 時鐘運行時,在片內RAM中規定3個單元作為秒、分、時單元,具體安排如下; 42H:“秒”單元;41H“分”單元;40H:“時”單元 從秒到分,從分到時是通過軟件累加并進行比較來實現的。要求每滿1秒,則“秒”單元42H中的內容加1;“秒”單元滿60,則“分”單元41H中的內容加1;“分”單元滿60,則“時”單元40H中的內容加1;“時”單元滿24,則將42H、41H、40H的內容全部清0。 2.程序設計 (1)主程序的設計。主程序的主要功能是進行定時器T0的初始化,并啟動T0,然后通過反復調用顯示子程序,等待100 ms定時中斷的到來。主程序的流程如右圖所示。 (2)中斷服務程序的設計。中斷服務程序(IT0P)的主要功能是實現秒、分、時的計時處理。 中斷服務程序的流程如左圖所示。   參考程序如下:  

    時間:2018-03-12 關鍵詞: 嵌入式開發 定時器 計數器 實時時鐘

  • 交換位技術改進FPGA-PWM計數器性能

    交換位技術改進FPGA-PWM計數器性能

      簡單改變FPGA計數器規格使作為DAC功能PWM計數器的紋波降低。  當需要一些模擬輸出和系統中有FPGA時,很可能選擇使用如圖1的PWM模塊和簡單低通濾波器。FPGA的輸出是固定頻率、計數器和數字比較器使占空比可變的典型波形(表1)。  假設高信號使能,計數器每個時鐘周期進行計數,PWM輸出的頻率為時鐘頻率的2次冪分頻。通過連接前置比例器,使用使能來降低輸出頻率。由于輸出頻率固定,濾波器容易計算。已知占空比50%時,出現最壞的紋波。最大紋波和上升時間的限制結合決定濾波器類型和RC(電阻/電容)值。  對表1中編碼進行非小改動,能夠改進PWM電路的性能。但在原先系統中,最大紋波電流發生在50%占空比時,最小紋波電流發生在最小占空比時,改進的版本顯示最大紋波等于標準版的最小值。關鍵是產生最高頻率的可能性,還能保持平均的占空比常數。輸出脈沖頻率越高,濾波器性能越好。  從左到右交換所有位來修改由重編二進制比較器組成表1。MSB(最高有效位)變成LSB(最低有效位),LSB變成MSB,等等(表2)。只需重編位,而不需額外寄存器或邏輯單元。  表3顯示了4位PWM發出的脈沖序列。表3中,可以看到50%占空比時(第二列,值為8),頻率最大,為時鐘頻率的2分頻。在第一個紋波出現點(第二列,值為1),傳統PWM系統中有同樣的紋波,也就是說,脈沖序列是相同的。  英文原文:  Swapping bits improves performance of FPGA-PWM counter  A simple change to the specification of an FPGA counter lowers the ripple of a PWM counter functioning as a DAC.  Stefaan Vanheesbeke, Ledegem, Belgium; Edited by Charles H Small and Fran Granville -- EDN, 9/13/2007  When you need some analog outputs and you have an FPGA in your system, you probably choose to use a PWM module and a simple lowpass filter such as those in Figure 1. The output of the FPGA is typically a waveform with a fixed-frequency, variable-duty cycle, which a counter and a digital comparator generate (Listing 1).  Suppose that Enable is high, the counter counts up every clock cycle, and the frequency of the PWM output is the clock frequency divided by 2 count bits. You can use Enable to lower the output frequency by connecting it to a prescaler. Because the output frequency is fixed, the filter is easy to calculate, because you know that the worst-case ripple happens at a duty cycle of 50%. The combination of the desired maximum ripple and settling time determines the filter type and RC (resistance/capacitance) values.  With a small change to the code in Listing 1, you can improve the performance of the PWM circuit. Whereas in the original system, the maximum ripple currents occur at a duty cycle of 50% and the minimum ripple currents occur at the minimum duty cycle, the improved version shows a maximum ripple equal to the minimum of the standard version. The trick is to generate the highest frequency possible but keep the average duty cycle constant. The higher the frequency of the pulses on the output, the better the filter does its job.  The modification to Listing 1 consists of rewiring the binary comparator with all the bits swapped from left to right. The MSB (most significant bit) becomes the LSB (least significant bit), the LSB becomes the MSB, and so on (Listing 2). You do only a rewiring requiring no extra registers or logic.  Listing 3 shows the pulse trains that a 4-bit PWM emits. In Listing 3, you see that at 50% duty cycle (Value=8, second column), the frequency is maximum and equal to the clock frequency divided by two. At the first point at which some ripple shows up (Value=1, second column), there is exactly the same ripple as in the conventional PWM system—that is, the pulse train is the same.  英文原文地址:http:///article/CA6475009.html

    時間:2019-01-17 關鍵詞: 性能 技術 嵌入式開發 計數器 pwm

  • 基于Microblaze軟核FSL總線的門光子計數器設計與實現

    基于Microblaze軟核FSL總線的門光子計數器設計與實現

    摘要:門光子計數器是量子光學實驗中單光子探測常用的數據采集設備,用于收集單光子探測器探測到的單個光子信號。由于不同的場合需要用到不同的計數模式,商用的計數器往往難以滿足具體的需求,或者造成采集效率低下。系統采用的是一種基于MicroBlaze系統FSL總線的可擴展計數器設計架構,該架構能夠靈活的添加不同的計數功能,并通過統一的FSL總線和Microblaze CPU與PC通信。在該架構的基礎上實現了針對量子單自旋調控實驗中常用的計數模式。系統所采用的設計和實現方式可以推廣到其他光子計數需求中,并具有較低的設計和生產成本。關鍵詞:計數器;Microblaze;FSL0 引言 光學領域尤其是量子光學領域的實驗常常需要進行單個相干光子的探測用于實現實驗數據的采集。一般常用的配置是一個單光子探測器加上一個門光子計數器,其前端的單光子探測器用來收集光子信號,每探測到一個光子產生一個TTL脈沖,后端的門光子計數器用來記錄該TTL上升沿數目并且與PC等其他器件通信或者同步。APD的工作方式相對簡單,而門光子計數器則由于具體實驗需求不同而要求不同的工作方式,很難有一種通用的計數模式能夠滿足各種情況的需求。由于成本限制,功能固定的計數器往往因為沒有廣闊的市場而造成價格很高。另一方面,工業和科研界購買的商用計數器往往無法滿足自己的具體需求而導致工作效率低下,甚至無法滿足要求。 所謂門光子計數器就是針對單自旋量子調控實驗研究中對單個光子探測的需求所研制的。單自旋量子調控是對晶體中的缺陷,如量子點和金剛石色心進行控制,其信號讀出一般是通過自旋發生的單個光子進行探測實現的。在此類實驗中常用的技術有三種:門光子計數、定時計數和相關函數測量。文中所述的系統建立了一種可擴展的通信和控制架構能夠添加不同方式的計數功能。1 系統結構設計 整體系統結構示意圖如圖1所示,通過PC機的以太網口實現與計數系統的數據通訊與命令傳輸,PC機將工作模式選擇等命令通過網口向系統發送,而系統將在不同模式下的計數值及計數狀態等數據通過網口發送到PC機,交由PC機對數據進行處理。系統的主芯片采用Xilinx的SPARTAN 3E系列的XC3S500E。系統的光子計數輸入由兩個BNC接口引入,這兩個接口可以由FPGA進行配置,使光子計數器以不同的模式進行工作。系統的固件燒寫在FLASH芯片內,SDRAM提供了大容量存儲空間,用于運行時裝載Microblaze軟核代碼、計數應用代碼以及存儲計數的數據。 系統以FPGA為處理中心,實現各種工作模式,其功能框圖如圖2所示。功能模塊主要包括軟核Microblaze、對外部存儲器的接口MPMC、以及需要設計實現的Counterpulse IP核。在Counterpulse IP核與處理器軟核之間,采用了FSL總線進行連接,實現由Microbalze對Counterpu-lse核的配置,以及由Counterpulse核到Microblaze的數據傳輸。 系統工作時,由Microblaze軟核通過網口接收由PC機發送來的命令,根據命令,通過一路FSL總線對光子計數IP核進行工作模式的選擇和配置。計數IP核對外部計數源進行計數,計數的結果和狀態數據通過另一路FSL總線發送到Microblaze軟核,由Microblaze軟核將該數據在DDRRAM內進行緩沖,并通過網口將這些數據最終發送給PC機,由PC機進行分析處理。 系統有三種工作模式:模式一:使能計數,使能信號有效時(高電平有效),對光子計數輸入的計數脈沖信號進行計數;模式二:定周期計數,根據設定的計數周期,對光子計數輸入的計數脈沖信號進行計數;模式三:啟動和停止信號分開的計時,根據輸入的計數啟動信號和計數停止信號(均為上升沿有效),進行以系統基頻為基準的計時,以實現函數測量。2 系統設計實現2.1 系統硬件框圖 計數系統硬件結構如圖3所示,由FPGA、64MB的DDR存儲器、16MB的FLASH存儲器和10M/100M以太物理層(PHY)等組成。系統工作時,由PC機通過網口發送命令到FPGA,FPGA內部的Microblaze軟核配置計數IP核的工作模式,由FPGA通過兩路BNC接口對外部計數源進行計數,并將數據在DDRRAM內進行緩沖,最終將這些數據通過網口發送到PC機。2.2 主要元器件介紹2.2.1 FPGA芯片及其配置芯片選用 FPGA選用Xilinx公司的Spartan-3E系列XC3S500E,采用先進的90nm制造工藝生產,其器件密度為50萬門。Spartan3系列的FPGA是Xilinx公司專門針對大容量、低成本需求的電子設計而開發的,可支持多種電平的I/O標準;含有豐富的邏輯資源。XC3S500E具有360kbits的塊RAM、73kbits的分布式RAM、10476個邏輯單元、20個18×18的乘法器和4個DCM時鐘管理模塊。 FPGA的配置芯片選用的是Xilinx公司的在系統可編程配置芯片XCF04S,該芯片可為XC3S500E提供易于使用、成本低且可重復編程的配置數據存貯方法,該芯片支持IEEE1149.1標準的JTAG邊界掃描測試和編程。在本系統設計中,XCF04S主要存放用于引導Microblaze軟核及應用程序的引導代碼。2.2.2 存儲芯片 系統使用的RAM是Micron Technology公司的DDRSDRAM(MT46V32M16),是一片容量為512Mbit(32Mx16)的16位總線寬度存儲芯片,用于上電后加載Microblaze軟核代碼和應用程序代碼,以及對計數數據進行緩沖。FLASH芯片是Intel StrataFlash parallel NORFlash,型號為28F256J3,存儲密度為256Mbit,在本系統中用于保存Microblaze軟核代碼和應用程序代碼。3 功能設計實現3.1 基于EDK的FPGA軟核Microblaze的應用設計實現 系統設計工具主要采用Xilinx公司的嵌入式開發套件EDK,它是用于設計嵌入式處理系統的集成解決方案。它包括搭建硬件平臺的XPS和進行軟件配置的SDK。 Microblaze是Xilinx公司推出的32位軟處理器核,支持CoreConnect總線的標準外設集合。MicroBlaze處理器運行在150MHz時鐘下,可提供125 D-MIPS的性能,這種高效的軟核在本系統中可用于實現處理器功能,實現對計數IP核的配置,以及支撐Xilinx的clockgenerator、Et-hernet等IP核。系統對計數器的實現采用Verilog語言將計數功能編寫為IP核,將其通過FSL總線掛在Microblaze軟核上,以實現計數功能。3.2 通訊協議 Microblaze到計數IP核之間的通訊數據定義如下: 計數IP核到Microblaze之間的通訊數據定義如下:3.3 計數IP核的設計實現3.3.1 計數IP核的結構 計數IP核采用verilog硬件語言編寫,其結構如圖6所示,頂層文件counterpulse3對接口進行配置,并根據FSL總線上的命令參數選擇工作模式,pulsecount1、pulsecount2和pulsecount3分別是3種工作模式的代碼實現,fsloprt是與FSL進行接口的代碼。3.3.2 與FSL總線接口 fslopn.v的代碼完成與FSL總線接口功能。FSL總線是單向點對點的通道,它用于完成任意FPGA中兩個模塊的快速通訊。FSL總線是基于FIFO的,基于非共享的無仲裁通信機制,它的深度是可以設置的,最大可以到8k,具備高速的通信性能,其結構如圖7所示。 由于FSL總線是單向的,所以系統中采用了兩條FSL總線,實現Mieroblaze到計數IP核之間的雙向通訊,計數IP核在面對兩條FSL總線時,擔當的分別是MASTER(主)和SLAVE(從)兩種角色。因此,fsloprt.v的代碼應該同時滿足與FSL總線接口的讀和寫時序。讀寫時序如圖8和圖9所示。3.4 計數IP核和FSL總線的在EDK中的連接實現 為了能使用FSL總線,首先應該在XPS圖形界面中對Microblaze進行配置,在Buses中將Number of FSL Links設置為1。再在IP Catalog中將FSL總線加入到工程中兩次。 在計數IP核編寫后并綜合通過后,將該IP核導入到XPS工程中。 在XPS中,分別對Microblaze和計數IP核的MFSL和SFSL進行連接,將Microblaze的MFSL端連接到計數IP核的SFSL端,反之將計數IP核的MFSL端連接到Microblaze的SFSL端。并在system.mhs中進行如下配置: 由于從計數IP到Microblaze方向數據量較大,所以對FSL總線的深度進行了配置,如上述代碼中,PARAMETERC_FSL_DEPTH=128,被配置為128級深度。4 結論 在系統的設計中,光子計數IP核與Mieroblaze軟核之間通過FSL總線進行通訊,并且對FSL總線上的FIFO緩沖進行了深度擴充,大大增強了光計數數據的傳輸可靠性。由于系統將門光子計數的三種模式,以IP核的方式實現,相對于市場上商用的計數器來說,實現方式靈活,易于配置和擴展,這種方式為門光子其他可能潛在的計數需求留下了擴展的基礎,并具有較低的設計和生產成本。

    時間:2018-10-30 關鍵詞: 總線 光子 計數器 microblaze 總線與接口

  • 如何應對常見的在線燒錄異常情況

    摘要:在線燒錄,顧名思義,直接在電路板上對芯片進行燒錄,不依賴于燒錄座,不受燒錄座壽命影響,是一種低成本IC燒錄方式。每個產品的電路板各種各樣,存在很多不確定因素,會給在線燒錄帶來異常情況。筆者把近期遇到的幾種典型的情況,逐個解析,找到問題關鍵點。 1、恪盡職守的外部看門狗也有干壞事的時候 外部硬件看門狗廣泛運用于電子產品中,如果沒有及時清除看門狗的計數,看門狗將產生復位信號復位目標芯片,避免芯片程序跑飛或進入死循環狀態。這有效保證系統能穩定運行,但對芯片燒錄工作來說,這簡直就是噩夢。 燒錄時,編程器無法清除外部看門狗芯片計數器,導致看門狗計數溢出并產生復位信號,并復位目標芯片,會意外中斷當前芯片的燒錄,導致燒錄失敗。要杜絕這類現象,硬件人員在設計電路時,要留有禁能看門狗的接口,通過該接口,先禁能看門狗,再進行燒錄工作,杜絕芯片意外被看門狗復位,導致燒錄工作失敗。   [!--empirenews.page--] 2、正確燒錄程序后,芯片程序沒跑起來 有些電子產品內嵌了電池,特別是現在非常盛行的智能手環、智能手表、智能手機等產品。當編程器燒錄完目標板的代碼后,芯片需要復位才能運行里面的代碼。一般工廠流水線生產中,目標板燒錄完后,接著進入測試環節。非電池供電的板子,測試時會重新上電,芯片自動進行上電復位并運行,代碼可以正常跑起來;帶有電池的設備,由于電池一直供電,不存在上電復位環節,芯片代碼不能運行,導致后續的測試環節失敗。 針對于這種情況,P800-ISP特別增加了復位的動作(包含了軟件復位、復位管腳復位),如下圖所示。在組合操作里面,芯片代碼擦除編程校驗通過后,運行【復位】的動作,讓這些帶有電池的設備可以復位并開始工作,以便后續的產品測試。   [!--empirenews.page--] 圖示:改進燒錄流程 3、線長、速度與穩定性 編程器與目標板的通信質量與通信電纜的長度和通信速率有關,越長的電纜,越高的通信速率,會降低通信質量,影響燒錄穩定性。為了燒錄工作又快又穩定,需要根據具體情況選取適合目標板的線長,并根據線長設置合適的通信速率。   [!--empirenews.page--] 4、電源影響 在線編程器一般都可以對目標板進行供電,但供電能力是有一定限制的。針對功耗特別大的目標板,如下圖所示,如果用編程器供電,編程器將無能為力,這時就需要外部直接供電;還有一種情況就是目標板耗電量小,但放置了很多的電容,編程器開始給目標板供電的瞬間,將產生瞬間超大充電電流,也就是浪涌效應,容易促發編程器過流保護,這時目標板最好用外部直接供電。鑒于這種情況,P800-ISP采用了創新式的供電機制及過流檢測算法,有效地降低了浪涌效應誤引起過流保護的發生概率。   總結 以上的幾點,是在線燒錄工作經常要考慮的,為了使在線燒錄生產工作穩定、快速、有序地進行,需要根據每個板子的具體情況,采取有效的措施,避免異常情況發生,提高燒錄效率。

    時間:2016-03-20 關鍵詞: 電路設計 計數器 編程器 智能芯片

  • CD4518雙BCD加法計數器應用電路舉例

    CD4518雙BCD加法計數器應用電路舉例

    ;; ;lCD4518雙BCD加法計數器集成電路AT45DB161D-SU的特性及引腳排列;;; CD4518是一種同步計數器。它的主要特點是時鐘觸發脈沖既可用上升沿,也可用下降沿。芯片采用8421編碼,在CD4518內部有兩個完全相同的計數器。對于任何一個計數器,有兩個時鐘輸入端CP和EN。若用上升沿觸發,則信號由CP端輸入;若用下降沿觸發,則信號由EN端輸入,并使CP端為低電平。CR端為清零端,當該端加高電平或正脈沖時,計數器輸出端均為“0”。;;;;CD4518采用16腳雙列直插式封裝,其引腳排列如圖5 - 70所示。;;;;;;;;;; ;;; 秒計數電路如圖5 - 71所示,它主要由秒信號發生電路、計數電路、譯碼及顯示電路等部分組成。;;; IC1是一塊石英集成電路5G5544,它與32768Hz晶體構成振蕩器,從IC1的第③腳輸出周期為2s的脈沖信號,經VD3、VD4和VT1組成或非邏輯電路及電平轉換,可得到秒信號脈沖的輸出。IC1的工作電壓為1. 2~2V,故采用VD1、VD2及Ri降壓向IC1提供工作電壓。;;; IC2為雙BCD加法計數器CD4518,內部的兩個計數器經級聯形成二位計數電路,如若需要更多位的計數,則可進行更多級的級聯。;;;;;;;;;; ;;; IC3、IC4為BCD-7段鎖存/譯碼/驅動器CD4 511,用來將IC2的計數結果澤成七段筆劃碼,并驅動數碼管IC5、IC6顯示計數結果。這樣,隨著秒信號脈沖不斷加入IC2a,由數碼管IC5、IC6顯示出計數的秒數。;;; Sl是清零開關,當按動Sl時,IC2a、IC2b的Cr端獲一正脈沖,使電踣清零復位。

    時間:2019-02-12 關鍵詞: 電路設計 電路 計數器 bcd 加法

  • 計數器的分類

    計數器的分類

    ;;; 計數器主要由觸發器和邏輯門電路組成。其中觸XC95288XL-10PQG208C發器可以用JK觸發器電路或D觸發器電路。對計數器電路的分析主要是對邏輯門電路和觸發器電路的分析。;;; 計數器的種類較多,如圖8-84所示。;;;;;;;;;;; ;;; 異步二進制加法計數器;;; 關于二進制加法計數原理主要說明下列3點。;;; (1)當給加法計數器每輸入一個計數脈沖時,觸發器應翻轉一次。;;; (2)每當觸發器輸出端Q從1態變成0態時,其輸出端Q就產生一個負脈沖作為進位信號。;;; (3)如果將進位信號加到高一位觸發器的輸入端時,就能完成多位的二進制加法計數運算。;;; 圖8-85所示是異步二進制加法計數器。這是一個由4個JK觸發器構成的四位異步二進制加法計數器電路。電路中,4個JK觸發器的置0端相連后作為Rd,這是整個加法計數器的置O端。對于某個JK觸發器而言,CP端是計數脈沖輸入端,Q端為觸發器輸出端,本位的Q端與高一位觸發器的計數輸入端CP相連。;;; 狀態表;;; 為電路分析方便,這里先給出這一四位二進制加法計數器的狀態表,如表8-37所示。

    時間:2019-03-15 關鍵詞: 計數器 基礎教程

  • 手持式塵埃粒子計數器的使用注意事項

    手持式塵埃粒子計數器的使用注意事項

    手持式塵埃粒子計數器是用于測量潔凈環境中單位體積內塵埃粒子數和粒徑分布的儀器。手持式塵埃粒子計數器可廣泛應用于為各省市藥檢所、血液中心、防疫站、疾控中心、質量監督所等權威機構、電子行業、制藥車間、半導體、光學或精密機械加工、塑膠、噴漆、醫院、環保、檢驗所等生產企業和科研部門。 手持式塵埃粒子計數器的具體工作原理:來自光源的光線被透鏡組聚焦于測量腔內,當空氣中的每一個粒子快速地通過測量腔時,便把入射光散射一次,形成一個光脈沖信號。這一光信號經過透鏡組2被送到光檢測器,正比地轉換成電脈沖信號,再經過儀器電子線路的放大、甄別,揀出需要的信號,通過計數系統顯示出來。 需要指出的是,雖然儀器稱為"計數器",但是儀器分辨微粒大小的能力更為重要。因為電脈沖的計數很簡單,而判斷粒子的大小非常重要。 手持式塵埃粒子計數器注意事項 1、當入口管被蓋住或被堵塞,不要啟動計數儀 2、手持式塵埃粒子計數器應該在潔凈環境下使用,以防止對激光傳感器的損傷 3、不要測有可能產生反應的混合氣體(如氫氣和氧氣)。這此氣體也可能在手持式塵埃粒子計數器內產生爆炸。測這些氣體需與廠家聯系為取得更多的信息。 4、沒有高壓減壓設備(如高壓擴散器)不要取樣壓縮空氣,所有的顆粒計數儀被設計用于在一個大氣壓下操作。 5、水,溶液或其它液體都不能從入口管進入傳感器。 6、顆粒計數儀主要用來測試凈化車間干凈的環境,當測的地方有松散顆粒的材質,灰塵源,噴霧處時,須最少保持距進口管至少十二英寸遠。以免以上的顆粒及液體污染傳感器及管路。 7、取樣時,僻免取樣從手持式塵埃粒子計數器本身排出來的或被手持式塵埃粒子計數器出來的氣體所污染的氣體。 8、在連接外置打印機或連接外接溫濕度傳感器時,需先關掉手持式塵埃粒子計數器;當執行打印操作時,打印機上須有打印紙,否則會損傷打印頭。 用于測量潔凈環境中單位體積內塵埃粒子數和粒徑分布的儀器工釆網小編推薦——美國AIRY 手持式粒子計數器 - Model P611。   粒子計數器P611用于測量流速在0.1 CFM (2.83 LPM) 粒徑為0.3~ 10μm 的粒子。本手持式粒子計數器僅重1.26 lb (0.57 kg), 設計人性化且設置簡單。可在其3.5”LCD彩屏к同時顯示6個尺寸通道的數據,也可顯示溫度和相對濕度(可選)。P611 能存儲多達 10,000條的采樣記錄,可在本設備或通過USB數據線在電腦上查看數據記錄。 P611符合 ISO 21501-4 ,質保2年。P611品質優良,性能可靠,是專業人員驗證ISO潔凈室(級別5~9)和調查室內空氣質量問題的最佳產品解決方案。

    時間:2018-01-23 關鍵詞: 手持式 計數器 注意事項 設計教程 塵埃粒子

首頁  上一頁  1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
發布文章

技術子站

更多

項目外包

更多

推薦博客

新时时彩
外国黄色片有哪些 股票融资融券是利好吗 杠杆炒股网站ˉ杨方配资 广东十一选五人工免 普通四人麻将 小彩泉番号 手机怎么下载股票行情 幸运农场 燕赵福彩排列七走势图 波多野结衣在线看免费 雪缘园欧冠 美国妇女牲交 时时彩 山东新11选5 独行侠对勇士 配资网