可編程定時器8253
『壹』 7. 可編程定時器/計數器8253的6種工作方式中,既可以軟體啟動又可以硬體啟動的是方式_____
方式2和方式3
『貳』 8253有幾個功能相同的定時器
intel8253是NMOS工藝製成的可編程計數器/定時器,有幾種晶元型號,外形引腳及功能都是兼容的,只是工作的最高計數速率有所差異,例如8253(2.6MHz),8253-5(5MHz)。
8253內部有三個計數器,分別稱為計數器0、計數器1和計數器2,他們的機構完全相同。每個計數器的輸入和輸出都決定於設置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數器通過三個引腳和外部聯系,一個為時鍾輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數器內部有一個8位的控制寄存器,還有一個16位的計數初值寄存器CR、一個計數執行部件CE和一個輸出鎖存器OL。
『叄』 可編程計數器/定時器8253有哪幾種工作方式
可編程計數器與定時器8253有6種工作方式:(1) 方式0為計數結束產生中斷;(2) 方式1為可編程單穩觸發器;(3) 方式2為分頻器;(4) 方式3為方波頻率發生器;(5) 方式4為軟體觸發選通脈沖;(6) 方式5為硬體觸發選通脈沖。
計數結束產生中斷:當CLK端輸入計數脈沖時,計數器能進行減1計數,減為0時,OUT端可輸出高電平。可利用此高電平向CPU發中斷請求,以實現定時中斷處理。
可編程單穩觸發器:當計數器工作時,利用GATE端輸入的上升沿脈沖使OUT端開始變低電平,並開始作減1計數,若減至0,OUT端變高電平,形成一個單穩負脈沖,可利用此負脈沖作為某一電子應用電路的啟動信號。
分頻器:利用計數器的減1計數功能在OUT輸出端產生一個其正、負脈沖寬度分別為(n-1)與1個輸入脈沖時鍾周期的分頻脈沖信號。
方波頻率發生器:利用計數器的減1計數功能在OUT端產生一個對稱或基本對稱的方波信號。可作為方波頻率發生器使用。
軟體觸發選通脈沖是利用寫入計數初值這個軟體操作來觸發計數器工作的。
硬體觸發選通脈沖是利用GATE端輸入信號來觸發的。
『肆』 8253是什麼意思
8253晶元intel8253是NMOS工藝製成的可編程計數器/定時器,有幾種晶元型號,外形引腳及功能都是兼容的,只是工作的最高計數速率有所差異,例如8253(2.6MHz),8253-5(5MHz)
8253內部有三個計數器,分別成為計數器0、計數器1和計數器2,他們的機構完全相同。每個計數器的輸入和輸出都決定於設置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數器通過三個引腳和外部聯系,一個為時鍾輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數器內部有一個8位的控制寄存器,還有一個16位的計數初值寄存器CR、一個計數執行部件CE和一個輸出鎖存器OL。
執行部件實際上是一個16位的減法計數器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設置的。輸出鎖存器的值是通過程序設置的。輸出鎖存器OL用來鎖存計數執行部件CE的內容,從而使CPU可以對此進行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用。
『伍』 8253定時器計數器的計數基於什麼原理
定時和計數是日常生活和生產中最常見和最普遍的問題。
定時器和計數器功能基本上都是使用相同的邏輯實現的,而且這兩個功能都包含輸入的計數信號,本質上都是對脈沖計數。計數器用來計數並指示在任意間隔內輸入信號(事件)的個數,而定時器則對規定間隔內輸入的信號個數進行計數,用來指示經歷的時間。
在單片機中,定時/計數器作定時功能用時,對機器周期計數(由單片機的晶體振盪器經過12分頻後得到),因每次計數的周期是固定的,所以根據它計數的多少就可以很方便的計算出它計數的時間。如圖1所示。
圖1 計數與定時
二、溢出的基本概念
從一個生活中的常式看起:一個水盆在水龍頭下,水龍頭沒關緊,水一滴滴地滴入盆中。盆的容量是有限的,水滴持續落下,盆中的水持續變滿,最終有一滴水使得盆中的水滿了,這就是「溢出」。
如果一個空的盆要1萬滴水滴進去才會滿,開始滴水之前可以先放入一部分水,叫做計數初值。如果現在要計數9000,那麼可以先放入1000滴水,也就是計數初值為1000,再計數9000就可以溢出產生中斷。
單片機中通常採用計數初值的辦法,如果每個脈沖是1微秒,則計滿256個脈沖需時256微秒,如果現在要定時100微妙,只要在計數器裡面先放進156,然後計數100就可以就可以溢出產生中斷了。如圖2所示。
圖2 定時器/計數器的溢出
三、定時/計數的主要方法
實現定時或計數,主要有三種方法。
(1)軟體延時
軟體延時利用微處理器執行一個延時程序段實現。因為微處理器執行每條指令都需要一定時間,通過指令的循環實現軟體延時。軟體定時具有不使用硬體的特點,但卻佔用了大量CPU時間。另外,軟體定時精度不高,在不同系統時鍾頻率下,執行一條指令的時間不同,同一個軟體延時程序的定時時間也會不同。
(2)硬體定時
硬體定時採用數字電路中的分頻器將系統時鍾進行適當分頻產生需要的定時信號,也可以採用單穩電路或簡易定時電路(如常用的555定時器)由外接RC(電阻、電容)電路控制定時時間。這樣的定時電路較簡單,利用不同分頻倍數或改變電阻阻值、電容容值使定時時間在一定范圍內改變。
(3)可編程的硬體定時
可編程定時器/計數器最大特點是可以通過軟體編程來實現定時時間的改變,通過中斷或查詢方法來完成定時功能或計數功能。這種電路不僅定時值和定時范圍可用程序改變,而且具有多種工作方式,可以輸出多種控制信號,具備較強的功能。
『陸』 可編程計數/定時晶元8253有幾個通道各有幾種可供選擇的工作方式
可編程計數/定時晶元8253,有3個獨立的16位計數器。每個計數器可按照二進制或二 ----- 十進制計數。每個計數器的計數數率可高達2MHZ。每個計數器都可以由程序確定按照6種不同的方式工作。
『柒』 定時計數器的8254和8253有什麼區別
8254 是Intel 公司生產的可編程間隔定時器。 是8253 的改進型, 比8253 具有更優良的性能。
8254 具有以下基本功能:
有3 個獨立的16 位計數器。
每個計數器可按二進制或十進制(BCD) 計數。
每個計數器可編程工作於6 種不同工作方式。
8254 每個計數器允許的最高計數頻率為10MHz(8253 為2MHz) 。
8254 有讀回命令(8253 沒有) , 除了可以讀出當前計數單元的內容外, 還可以讀出狀態寄存器的內容。
計數脈沖可以是有規律的時鍾信號, 也可以是隨機信號。
『捌』 8253的輸出端可產生方波,請問8259、8255分別能產生什麼波形
8253是可編程定時器集成IC,可產生不同頻率,不同占空比的方波,稍復雜的應用就是產生脈寬調制波PWM。
8259是可編程中斷控制集成IC,一般用於響應外部中斷,結合定時器也可用於方波測量,不過直接用定時器效果更好。
8255是可編程並行介面,一般用於IO口擴展,結合定時器也可用於方波或PWM的產生,但是,使用不方便。
上述三種IC都屬於集成數字電路。
產生正弦波、三角波等,不能直接採用數字電路。一般採用模擬電路或微處理器加AD產生,也可通過上述電路產生PWM後通過積分器輸出。
『玖』 定時計數器8254和8253的區別
8254 是Intel 公司生產的可編程間隔定時器。 是8253 的改進型, 比8253 具有更優良的性能。
8254 具有以下基本功能:
(1) 有3 個獨立的16 位計數器。
(2) 每個計數器可按二進制或十進制(BCD) 計數。
(3) 每個計數器可編程工作於6 種不同工作方式。
(4) 8254 每個計數器允許的最高計數頻率為10MHz(8253 為2MHz) 。
(5) 8254 有讀回命令(8253 沒有) , 除了可以讀出當前計數單元的內容外, 還可以讀出狀態寄存器的內容。
(6) 計數脈沖可以是有規律的時鍾信號, 也可以是隨機信號。
『拾』 基於FPGA的可編程定時器/計數器8253的設計與實現
基於FPGA的可編程定時器/計數器8253的設計與實現
摘??? 要:本文介紹了可編程定時器/計數器8253的基本功能,以及一種用VHDL語言設計可編程定時器/計數器8253的方法,詳述了其原理和設計思想,並利用Altera公司的FPGA器件ACEX 1K予以實現。
關鍵詞:FPGA;IP;VHDL
引言
在工程上及控制系統中,常常要求有一些實時時鍾,以實現定時或延時控制,如定時中斷,定時檢測,定時掃描等,還要求有計數器能對外部事件計數。要實現定時或延時控制,有三種主要方法:軟體定時、不可編程的硬體定時、可編程的硬體定時器。其中可編程定時器電路的定時值及其范圍可以很容易地由軟體來確定和改變,功能較強,使用靈活。Intel的定時器/計數器為可編程定時器PIT,型號為8253,改進型為8254,就是為完成上述功能而設計出來的一種電路。
隨著ASIC的發展,在實際工程中通用的8253PIT晶元表現出如下的不足:1. 計數頻率不夠,8253計數速率最高2MHz,即使是其改進型8254也往往不能滿足一些需要較高計數頻率的工程。2. 8253PIT沒有復位信號,輸出的初始狀態不受控制。針對8253的這些局限性,在實際工程中往往需要重新設計8253,並把8253的部分功能作為一個獨立的IP模塊嵌入到設計中,以實現完成某種特定功能的ASIC。
8253的基本功能和內部結構
主要功能
* 每片內部包含有3個獨立的16位計數通道;
* 每個計數器都可以按照二進制或二—十進制計數;
* 每個計數器的計數速率可高達2MHz;
* 每個計數通道有6種工作方式,可由程序設置和改變;
* 所有的輸入/輸出電平信號都與TTL兼容。
內部結構
8253的內部結構如圖1所示。
1. 數據匯流排緩沖器。這是8253與CPU數據匯流排連接的8位雙向三態緩沖器,CPU通過數據匯流排緩沖器將控制命令字和計數初值寫入8253晶元,或者從8253計數器中讀取當前計數值。
2. 讀/寫邏輯。這是8253內部操作的控制部分。首先有片選信號CS的控制部分,當CS為高時,數據匯流排緩沖器處在三態,系統的數據匯流排脫開,故不能進行編程,也不能進行讀寫操作。其次,由這部分選擇讀寫操作的埠(3個計數器及控制字寄存器),並控制數據傳送的方向。
3. 控制字寄存器。在8253初始化編程時,由CPU寫入控制字以決定通道的工作方式。此寄存器只能寫入而不能讀出。實際上,8253的3個計數器通道都有各自的控制字寄存器,存放各自的控制字,初始化編程時,這3個控制字分三次共用一個控制埠地址寫入各自的通道.它們是利用最高兩位的狀態不同來區分的。
4. 計數器通道。包括計數器0、計數器1、計數器2。它們的結構完全相同,彼此可以按照不同的方式獨立工作。每個通道包括:一個8位的控制寄存器;一個16位的計數初值寄存器;一個計數執行部件,他是一個16位的減法計數器;一個16位的輸出鎖存器。
每個通道都對輸入脈沖CLK按二進制或二—十進制,從預置值開始減1計數。當預置值減到零時,從OUT輸出端輸出一信號。計數過程中,計數器受到門控信號GATE的控制。
8253的設計
根據8253的內部結構,設計8253主要分為兩大部分:匯流排控制部分和定時/計數部分。
匯流排控制部分設計
這一部分主要完成數據的讀/寫,以及控制字的寫入。用VHDL設計這部分前,應該了解8253的埠選擇(見表1)和控制字(見圖2)。
設計的關鍵在於對8253埠控制字的掌握。寫信號到來時,首先要判斷是控制字還是計數初始值。如果是初始值,其中先寫低位元組,再寫高位元組部分是重點,需要一個信號來判斷寫入的是新數據還是上一數據沒寫完的高位元組部分.其他計數器的讀/寫大同小異。只要對8253的埠控制字了解清楚以及對讀/寫的時序有一定的了解,這一部分的邏輯很容易用VHDL語言描述出來.該進程可對外發出控制信號,表示控制字及數據寫入完畢,可以進行計數器的計數操作了。該控制信號可以作為下面介紹的計數部分的觸發信號。
計數器部分設計
8253有3個獨立的計數器,每個計數器有6種工作模式,完成不同的功能。現以方式4為例介紹VHDL設計,其他的可以在方式4基礎上加以修改。
這種工作方式,當寫入控制字後輸出為高。當寫入計數值後,再過一個時鍾周期,計數執行部件獲得計數初值,並開始減1計數。當計數到0後輸出變低電平,此低電平一直維持一個時鍾周期,然後又自動變為高電平,並一直維持高電平,計數器停止計數。這種方式計數是一次性的,只有輸入新的計數值之後,才能開始新的計數。
下面介紹方式4的設計過程:
CPU寫入控制字後,輸出outs立即復位,方式4中復位後outs為高電平。CPU寫入計數初值的下一個CLK脈沖,計數初值被送到計數執行部件並開始減1計數,又經過N個時鍾周期後才輸出一個負脈沖。當GATE=1時,允許計數,GATE=0時,禁止計數。這樣就實現了方式4基本的軟體觸發功能。
if clk1'event and clk1='0' then ——時鍾脈沖下降沿到來
if gate1='1' then ——門控位為1,允許計數
if ce1>"0000000000000001" then
ce1<=ce1-1;
——減1計數,ce為計數執行部件
elsif ce1="0000000000000001" then
out1<='0'; ——初值減到1時輸出低電平
???? ce1<=ce1-1; ——繼續減1
elsif ce1="0000000000000000" then
out1<='1'; ——初值減到0時輸出高電平
??? end if;
?? elsif gate1='0' then
——門控位為0,禁止計數
??? null;
?? end if;
? end if;
上面的小程序雖不完整但是卻描述出了方式4的軟體觸發基本功能。若在計數過程中改變計數值,新值寫入後的下一個CLK周期時,此計數值被寫入計數執行部件並從新的計數值開始計數.如果寫入的計數值是兩個位元組,那麼寫入第一個位元組時計數不受影響,寫入第二個位元組後的下一個時鍾周期,計數執行部件獲得新值,並從新值開始重新計數,叫做軟體再觸發.軟體再觸發功能只要在上面的程序中加入相應的判斷信號和控制信號即可實現。
完整的8253寫過程流程
實際上完整的8253就是一個擁有多個進程的復雜結構體。讀匯流排過程、寫匯流排過程、每個計數器的6種工作方式都是一個獨立的進程.進程之間是並行的,只要進程的敏感信號發生變化,該進程就被觸發一次,而進程內部是按照時序順序執行的。以寫過程為例,寫匯流排進程本身是靠敏感信號wr和cs來觸發的,無論寫入控制字還是寫入計數初值後,寫匯流排進程都會對外發出信號以表示某個計數器的控制字寫入完畢或者某個計數器的某個工作方式的計數初值已經寫入,可以進行計數了。而這些信號又相應的作為其他進程的敏感信號,進程之間的通信就是依靠這些信號來完成的。這些進程之間都是並發執行的,具體哪個進程被執行取決於控制字。圖3給出了寫過程的流程,讀過程與之類似。
設計結果驗證
本設計開發軟體採用Altera公司的集成開發軟體MAX+PLUS II 10.2完成。並用該公司的ACEX 1K系列FPGA晶元予以驗證。
之所以選用ACEX 1K系列晶元,是因為它是一種低成本高密度的FPGA晶元系列,是首選的中規模器件產品。它具有如下特點:
* ACEX 1K採用查找表(LUT)和EAB(嵌入式陣列塊)相結合的結構,特別適用於實現復雜邏輯功能存儲器功能,例如通信中應用的數字信號處理、多通道數據處理、數據傳遞和微控制等。
* 典型門數為1萬到10萬門,有多達49152位的RAM(每個EAB有4096位RAM)。
* 器件內核採用2.5V電壓,功耗低,能夠提供高達250MHz的雙向I/O功能,完全支持33MHz和66MHz的PCI局部匯流排標准。
* 具有快速連續式、延時可預測的快速通道互連;具有實現快速加法器、計數器、乘法器和比較器等算術功能的專用進位鏈,以及實現高速多扇入邏輯功能的專用級連接。
通過模擬、綜合,並下載到FPGA中進行驗證,本設計可以很好地實現其功能。■
參考文獻
1 曾繁泰,陳美金. VHDL程序設計
2 林明權. VHDL數字控制系統設計範例