單片機時鐘變慢會影響運行速度嗎?指令程序執行時間會變長嗎?

cool淡然508


系統時鐘決定了CPU執行指令的時候

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。根據性能要求可具體選擇相應參數。

綜上:單片機的時鐘變慢是會影響運行速度的,不僅時鐘有可能變慢,還是有可能變快的。但這個快慢的差異對程序的影響會不會帶來一些錯誤的執行,還需要具體分析程序實現的功能和邏輯。但一般技術的實現都已經考慮了允許誤差。


杯中江月


當然會的,單片機的時鐘頻率就是該單片機指令的處理速度。

最簡單的比方,指令程序相當於一段公路,時鐘代表你在這條路上開車的車速,車速變慢了,時間自然就長了。

不過單片機的時鐘頻率一般不會發生變化,如果真的變慢了,那說明出現了故障,應該及時更換。


分享到:


相關文章: