1. 程式人生 > >51微控制器的時鐘及匯流排時序和匯流排擴充套件

51微控制器的時鐘及匯流排時序和匯流排擴充套件

說到51微控制器時鐘首先想到51時怎麼工作的呢?微型控制器要想工作必須要有一個“動力”,對於51微控制器來說,這個“動力”就是時鐘源。一般應用上會外接一個12MHz的晶振作為時鐘源。

 

 

一般第一種接法用的比較多。選擇內部震盪方式時晶振旁邊有兩個小電容。這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十皮發。它會影響到晶振的諧振頻率和輸出幅度。晶振的負載電容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,Cic(積體電路內部電容)+△C(PCB上電容)經驗值為3至5pf。

 

各種邏輯晶片的晶振引腳可以等效為電容三點式振盪器。晶振引腳的內部通常是一個反相器, 或者是奇數個反相器串聯。在晶振輸出引腳 XO 和晶振輸入引腳 XI 之間用一個電阻連線, 對於 CMOS 晶片通常是數 M 到數十M 歐之間。 很多晶片的引腳內部已經包含了這個電阻, 引腳外部就不用接了。這個電阻是為了使反相器在振盪初始時處與線性狀態, 反相器就如同一個有很大增益的放大器, 以便於起振。

 

為什麼要選擇12MHz的晶振作為時鐘源呢?

 

這就要說51微控制器內部的幾個週期了:指令週期、機器週期、時鐘週期、振盪週期。

 

振盪週期是指為微控制器提供定時訊號的振盪源的週期或外部輸入時鐘的週期。

 

時鐘週期又稱作狀態週期或狀態時間S,它是振盪週期的兩倍,分為P1節拍和P2節拍,通常在P1節拍完成算術邏輯操作,在P2節拍完成內部暫存器之間的資料傳送操作。(注意P1 和P2的相位關係 )

 

一個機器週期由6個狀態組成,如果把一條指令的執行過程分作幾個基本操作,則將完成一個基本操作所需的時間稱作機器週期。微控制器的單週期指令執行時間就為一個機器週期。

 

指令週期是執行一條指令所需的全部時間。MCS-51微控制器的指令週期通常由1、2、4個機器週期組成。

 

對於12MHz的晶振,提供了12M的振盪週期,6M的時鐘週期,1M的機器週期。所以此時51微控制器的單指令週期為(1/1M)s=1us.這個1us有什麼好處呢?後面大家會知道微控制器應用中會有各種各樣的時序,很多時候需要用一小段程式延時來達到時序要求,而1us的單指令週期比較方便計算延時時間以及確定每條語句的執行時間。應該明確的是微控制器執行每條語句用的時間是非常確定的,是1us就是1us不會多一點也不會少一點。

 

下面說說51微控制器的匯流排擴充套件

 

 

這種結構就是上一篇說到的三匯流排結構,如圖所示

 

1、資料匯流排

 

51 微控制器的資料匯流排為P0 口,CPU 從P0 口送出和讀回資料。

 

2、地址匯流排

 

51 系列微控制器的地址匯流排為16 位。

 

為了節約晶片引腳,採用P0 口複用方式,除了作為資料匯流排外,在ALE 訊號時序匹配下,通過外接的資料鎖存器,在匯流排訪問前半週期從P0口送出低8位地址,後半週期從P0 口送出8 位資料。

 

高8位地址則通過P2 口送出。

 

3、控制匯流排

 

51 系列微控制器的控制匯流排包括(RD)讀控制訊號P3.7 和(WR)寫控制訊號P3.6 等,二者分別作為匯流排模式下資料讀和資料寫的使能訊號。

 

51 微控制器匯流排時序如圖 所示。

 

 

從圖2 中可以看出,完成一次匯流排( 讀寫) 操作週期為T,P0 口分時複用,在T0 期間,P0 口送出低8 位地址,在ALE 的下降沿完成資料鎖存,送出低8位地址訊號。在T1 期間,P0 口作為資料匯流排使用,送出或讀入資料,資料的讀寫操作在讀、寫控制訊號的低電平期間完成。

 

需要注意的是,在控制訊號( 讀、寫訊號) 有效期間,P2 口送出高8位地址,配合資料鎖存器輸出的低8 位地址,實現16 位地址匯流排,即64kB 範圍的內的定址。

 

由於CPU不可能同時執行讀和寫操作,所以讀、寫訊號不可能同時有效。

 

採用這種匯流排結構按照規定的時序能夠最大程度的利用微控制器的全部地址線。這就是微控制器的編址。編址分為線選法和譯碼法,譯碼法分為全譯碼、部分譯碼。線選法的優點是簡單但是非常浪費地址線;全譯碼法能夠最大程度的利用全部地址線,但是電路很複雜需要一些與非門的配合才行。一般用部分譯碼法價效比最高,尤其是在外接了儲存晶片時部分譯碼法很方便。

 

 

 

 

 

引用地址:http://www.eeworld.com.cn/mcu/2018/ic-news112642153.html