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