CPU的主頻大家都知道吧,記得上大學(xué)那會裝的第一臺電腦用的是433MH主頻的CPU?,F(xiàn)在主流CPU主頻一般是3GHz,運算速度已經(jīng)提升了很多個數(shù)量級了。單片機集成了CPU、RAM、ROM等,它的內(nèi)部也有一個CPU。
單片機的時鐘周期、狀態(tài)周期、機器周期、指令周期是什么?
不同架構(gòu)單片機的時鐘周期、狀態(tài)周期、機器周期、指令周期是不一樣的,以8051單片機為例:
時鐘周期:時鐘振蕩的周期叫做時鐘周期,如果使用外部晶振作為系統(tǒng)時鐘,晶振產(chǎn)生的一個振蕩脈沖叫做一個時鐘周期。
狀態(tài)周期:一個時鐘周期定義為一個節(jié)拍,兩個節(jié)拍定義為一個狀態(tài)周期(可以用S表示),所以一個狀態(tài)周期等于兩個時鐘周期。
機器周期:機器周期是指令周期的最小單位,它是讀取一條指令的最短時間,一個機器周期等于6個狀態(tài)周期。
指令周期:一條指令包括了一個或者多個機器周期,不同指令所需要的機器周期是不一樣的,單周期指令只需要一個機器周期,多周期指令就需要多個機器周期。
由此可見,不管是單周期指令還是多周期指令,它的執(zhí)行最終還是與時鐘周期相關(guān)的。
最簡單的指令(單周期指令)它需要12個時鐘周期。
單片機時鐘決定了指令程序執(zhí)行時間
我們編寫的單片機程序,最終會由編譯器翻譯為匯編語言,最后編譯為機器代碼下載到單片機的RoM中去,單片機上電時就會讀取并執(zhí)行ROM的程序。以8051單片機為例:
單周期指令需要12個時鐘周期,雙周期指令需要24個時鐘周期。假如我們使用24MHz的晶振作為系統(tǒng)時鐘,那么12個時鐘周期的時間為0.5us(納秒),也就是說執(zhí)行一條單周期指令需要0.50(納秒);如果把晶振改為12MHz,12個時鐘周期的時間為1us(納秒),執(zhí)行一條單周期指令需要1us(納秒);
程序的執(zhí)行就是依靠芯片的時鐘的。
單片機時鐘選擇:內(nèi)部時鐘源,外部時鐘源
一般單片機系統(tǒng)時鐘是可以選擇內(nèi)部時鐘或者是外部時鐘的。根據(jù)不同的應(yīng)用需求去具體選擇。例如一些小項目對精度的要求不是很大,是可以選擇使用內(nèi)部時鐘的,這樣可以降低些成本,省去了外部時鐘電路。但精度,穩(wěn)定度要求較高,就需要選型高可靠質(zhì)量的外部晶振和與晶振匹配的電容,一起組成外部時鐘源。
芯片內(nèi)部時鐘源:一般是內(nèi)部RC時鐘,也就是由內(nèi)部電阻電容組成的震蕩電路。時鐘的精度,穩(wěn)定度都不是太好,容易受到外界溫度濕度的影響。所以每個芯片內(nèi)部時鐘源都是不一樣的,都會有一定差異性。但這個差異性在一定的應(yīng)用中根本感覺不到。感覺不到是由于一般芯片的運行系統(tǒng)時鐘都是幾MHZ-幾十MHZ的頻率。即便出現(xiàn)一定的偏差,但這個偏差和總時鐘幾十MHZ相比,還是相當(dāng)小的。 一般內(nèi)部RC的精度是幾十ppm-幾百ppm。1PPM的意義是1MHZ會偏差個正負1HZ。
芯片外部時鐘源:晶振和匹配電容。外部晶振的精度5ppm-20ppm。根據(jù)性能要求可具體選擇相應(yīng)參數(shù)。
綜上:單片機的時鐘變慢是會影響運行速度的,不僅時鐘有可能變慢,還是有可能變快的。但這個快慢的差異對程序的影響會不會帶來一些錯誤的執(zhí)行,還需要具體分析程序?qū)崿F(xiàn)的功能和邏輯。但一般技術(shù)的實現(xiàn)都已經(jīng)考慮了允許誤差。
-
單片機
+關(guān)注
關(guān)注
6037文章
44561瀏覽量
635661 -
cpu
+關(guān)注
關(guān)注
68文章
10870瀏覽量
211901 -
時鐘
+關(guān)注
關(guān)注
11文章
1734瀏覽量
131518
發(fā)布評論請先 登錄
相關(guān)推薦
評論