嵌入式硬件篇---單片機周期


文章目錄

  • 前言


前言

在單片機中,時序控制是其執行指令和協調外設的核心基礎。以下是單片機中常見的各種周期及其詳細說明,以層次結構展開:


  1. 時鐘周期(Clock Cycle)
    定義:
    時鐘周期是單片機的最小時間單位,由外部晶振或內部振蕩器產生的時鐘信號決定。每個時鐘周期對應一個時鐘脈沖的上升沿到下一個上升沿(或下降沿)的時間。例如,12MHz 晶振的時鐘周期為83.33ns。

作用:
所有內部操作(如寄存器讀寫、ALU運算)均以時鐘周期為基準同步進行。

  1. 機器周期(Machine Cycle)
    定義:
    機器周期是單片機完成一個基本操作所需的時間,通常由多個時鐘周期組成。例如,傳統8051單片機的機器周期包含 12個時鐘周期。

對于傳統8051(12時鐘周期/機器周期):1us
現代增強型8051(如STC系列)可能采用 1時鐘周期/機器周期,速度提升12倍。

典型操作:

取指(Fetch):從程序存儲器讀取指令。

譯碼(Decode):解析指令功能。

執行(Execute):執行運算或數據傳輸。

架構差異:

CISC架構(如8051):復雜指令可能需要多個機器周期。

RISC架構(如ARM Cortex-M):單周期指令為主,效率更高。

  1. 指令周期(Instruction Cycle)
    定義:
    執行一條完整指令所需的時間,通常由1個或多個機器周期組成。指令周期因指令復雜度而異。

示例(以8051為例):

單周期指令:MOV A, #data(1機器周期)。

雙周期指令:ADD A, direct(2機器周期)。

四周期指令:MUL AB(4機器周期)。

重要性:

直接影響程序執行速度,需在實時系統中精確計算指令耗時。

例如,使用12MHz晶振的8051執行 NOP(單周期)耗時1μs,而 DIV AB(四周期)耗時4μs。

  1. 狀態周期(State Cycle)
    定義:
    某些架構將機器周期進一步細分為多個狀態周期(如S1、S2),每個狀態周期對應一個時鐘周期。

在傳統8051中,一個機器周期包含 6個狀態周期(S1~S6),每個狀態周期由2個時鐘脈沖組成。

作用:
用于協調內部操作階段,例如:

S1~S2:取指階段。

S3~S4:譯碼階段。

S5~S6:執行階段。

  1. 總線周期(Bus Cycle)
    定義:
    單片機通過總線(地址總線、數據總線、控制總線)與外部存儲器或外設通信的時間單位。

例如,訪問外部RAM時,需多個時鐘周期完成地址鎖存、數據讀寫等操作。

典型場景:

傳統8051訪問外部ROM時,每個總線周期占用2個機器周期(24個時鐘周期)。

  1. 中斷響應周期(Interrupt Latency)
    定義:
    從中斷觸發到執行中斷服務程序(ISR)第一句代碼的時間,通常包含:

完成當前指令(若為多周期指令)。

保存現場(PC、狀態寄存器等)。

跳轉到ISR入口地址。

優化策略:

使用快速中斷(如ARM的NVIC嵌套向量中斷)。

縮短關鍵代碼段的執行時間。

  1. 流水線周期(Pipeline Stage)
    定義:
    現代單片機采用流水線技術,將指令執行分為多個階段(取指、譯碼、執行、寫回),各階段并行處理以提高效率。

經典5級流水線(如ARM9):每個階段占用1個時鐘周期,理想情況下每個時鐘周期完成一條指令。

沖突處理:

數據沖突:通過旁路(Bypassing)或插入空操作(NOP)解決。

分支預測:減少流水線清空導致的性能損失。

關鍵概念對比
周期類型 組成關系 典型時長(以8051為例) 作用場景
時鐘周期 基礎時間單位 83.33ns(12MHz晶振) 所有操作的同步基準
機器周期 12個時鐘周期(傳統8051) 1μs(12MHz晶振) 完成取指、譯碼、執行
指令周期 1~4個機器周期(因指令而異) 1μs(單周期指令) 執行單條指令的總時間
總線周期 多個機器周期 2μs(訪問外部存儲器) 外部設備通信
實際應用中的注意事項
時鐘源選擇:

外部晶振精度高,適合通信協議(如UART、SPI)。

內部RC振蕩器成本低但穩定性差,需校準。

功耗與速度權衡:

降低時鐘頻率可減少功耗(如電池供電設備)。

高頻時鐘適合實時性要求高的場景(如電機控制)。

時序計算:

延時函數需精確計算指令周期數。。

流水線優化:

避免頻繁跳轉(如循環展開)。

使用單周期指令替代多周期指令。

總結
單片機的周期體系是其時序控制的核心,從時鐘周期到指令周期層層遞進,直接影響執行效率和實時性。理解這些概念有助于:

優化代碼速度(如選擇單周期指令)。

設計精準延時(如通信協議的波特率匹配)。

降低系統功耗(動態調整時鐘頻率)。

不同架構(如8051、ARM、PIC)的周期設計差異顯著,實際開發中需參考具體芯片的數據手冊。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76698.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76698.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76698.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

游戲引擎學習第221天:(實現多層次過場動畫)

資產: intro_art.hha 已發布 在下載頁面,你會看到一個新的藝術包。你將需要這個藝術包來進行接下來的開發工作。這個藝術包是由一位藝術家精心制作并打包成我們設計的格式,旨在將這些藝術資源直接應用到游戲中。它包含了許多我們會在接下來的直播中使用…

【3GPP核心網】【5G】精講5G系統的策略和計費控制框架

1. 歡迎大家訂閱和關注,精講3GPP通信協議(2G/3G/4G/5G/IMS)知識點,專欄會持續更新中.....敬請期待! 目錄 1. 系統架構 1.1 非漫游架構 1.2 漫游架構 1.3 支持Rx接口 2. 服務化接口及參考點 2.1 PCF 與 AF 間接口 2.2 PCF與SMF間接口 2.3 PCF與AMF間接口 2.4 V-PC…

榕壹云門店管理系統:基于Spring Boot+Mysql+UniApp的智慧解決方案

項目背景:數字化賦能服務行業,破解傳統門店管理痛點 在消費升級與數字化轉型浪潮下,傳統服務行業(如美容、美發、美甲、采耳等)面臨諸多管理挑戰:會員流失率高、預約排班混亂、員工績效統計低效、數據孤島等…

開發效率提升200%——cursor

cursor帶來的編程"革命" 高級語言編程轉為"自然語言編程"借助cursor,直接超越初級后臺開發、超越初級前端開發、超越初級測試、超越初級UI,產研一體linux命令只用學不用記,語言描述就是命令給一個表結構流程提示詞&…

UE4 踩坑記錄

1、Using git status to determine working set for adaptive non-unity build 我刪除了一個沒用的資源,結果就報這個錯,原因就是這條命令導致的, 如果這個項目是git項目, ue編譯時會優先通過 git status檢查哪些文件被修改&#…

藍橋杯 2025 C++組 省 B 題解

可分解的正整數 算法&#xff1a;思維 因為可以有負數 所以除了1以外的任何數都可以構造 當這個數為x構造方法為 -(x-1) -(x-2) -(x-3) ....-1 0 1...x-3 x-2 x-1 x 除了x&#xff0c;x以前的數都會被負數抵消 #include <bits/stdc.h> #define ll long long ll a…

docker創建容器添加啟動--restart選項

一、通過 Docker 命令直接修改已啟動的容器&#xff08;推薦-已驗證&#xff09; 操作步驟&#xff1a; 1.執行更新命令&#xff1a; docker update --restartalways <容器名或ID>此命令會將容器的重啟策略調整為 always&#xff08;無論容器以何種狀態退出&#xff0…

redission鎖釋放失敗處理

redission鎖釋放失敗處理 https://www.jianshu.com/p/055ae798547a 就是可以刪除 鎖的key 這樣鎖就釋放了&#xff0c;但是 還是要結合業務&#xff0c;這種是 非正規的處理方式&#xff0c;還是要在代碼層面進行處理。

【語音識別】vLLM 部署 Whisper 語音識別模型指南

目錄 1. 模型下載 2. 環境安裝 3. 部署腳本 4. 服務測試 語音識別技術在現代人工智能應用中扮演著重要角色&#xff0c;OpenAI開源的Whisper模型以其出色的識別準確率和多語言支持能力成為當前最先進的語音識別解決方案之一。本文將詳細介紹如何使用vLLM&#xff08;一個高…

Windows Server 2019 安裝 Docker 完整指南

博主本人使用的是離線安裝 1. 安裝前準備 系統要求 操作系統&#xff1a;Windows Server 2019&#xff08;或 2016/2022&#xff09;權限&#xff1a;管理員權限的 PowerShell網絡&#xff1a;可訪問互聯網&#xff08;或離線安裝包&#xff09; 啟用容器功能 Install-Win…

C# 混淆代碼工具--ConfuserEx功能與使用指南

目錄 1 前言1.1 可能帶來的問題 2 ConfuserEx2.1 簡介2.2 功能特點2.3 基本使用方法2.4 集成到MSBuild2.5 深入設置2.5.1 保護機制2.5.1.1 ConfuserEx Protection 2.5.2 精細的代碼保護主要特性1. decl-type(string)2.full-name(string)3. is-public()4. match(string)5. match…

c# 新建不重名的唯一文件夾

在源文件夾內創建唯一目標文件夾 string newFolder GetUniqueFolderName(sourceFolder); Directory.CreateDirectory(newFolder); /// <summary>/// 生成唯一文件夾名稱&#xff08;格式&#xff1a;新建文件夾、新建文件夾1、新建文件夾2...&#xff09;…

3D案例丨多個3D工業相機拼接檢測 開啟360°新視界

在高速生產線上&#xff0c;經常需要在極短的時間內對工件進行全方位的外觀檢測&#xff0c;如&#xff1a;線纜直徑和直線度檢測、鋰電池外觀缺陷檢測、鐵軌截面尺寸檢測等。 這需要傳感器完整還原被測物的截面面輪廓形狀&#xff0c;并獲取精準的截面輪廓數據。但單一相機的…

openapi + knife4j的使用

一、依賴作用與關系 1. springdoc-openapi-starter-webmvc-api ? 核心功能&#xff1a; 基于 OpenAPI 3 規范&#xff0c;自動生成 API 文檔元數據&#xff08;JSON 格式&#xff09;&#xff0c;并集成 Spring MVC。 提供Tag Operation、Schema 等注解&#xff0c;支持通過…

解決電腦問題——突然斷網!

電腦如果突然斷網是怎么回事 電腦突然斷網可能由多種原因造成&#xff0c;以下是常見的因素&#xff1a; 網絡連接與權限問題 路由器或調制解調器故障&#xff1a;路由器或調制解調器可能出現硬件故障、軟件故障或設置錯誤。可以嘗試重啟設備&#xff0c;如果問題依舊&#…

區塊鏈從專家到小白

文章目錄 含義應用場景典型特征 含義 以非對稱加密算法為基礎。 每個**區塊&#xff08;Block&#xff09;**包含&#xff1a; ?交易數據?&#xff08;如轉賬記錄、合約內容&#xff09;。 ?時間戳?&#xff08;記錄生成時間&#xff09;。 ?哈希值?&#xff08;當前區…

git 提交標簽

Git 提交標簽 提交消息格式&#xff1a; <type>: <description> &#xff08;示例&#xff1a;git commit -m "feat: add user login API"&#xff09; 標簽適用場景feat新增功能&#xff08;Feature&#xff09;。fix修復 Bug&#xff08;Bug fix&…

微信小程序:動態表格實現,表頭單元格數據完全從data中獲取,寬度自定義,自定義文本框,行勾選,樣式效果,橫向滾動表格(解決背景色不足的問題)等

一、樣式效果 二、代碼 1、wxml <view class"line flex flex-center"><view class"none" wx:if"{{info.length 0}}">暫無料號</view><view wx:else class"table-container"><!-- 動態生成表頭 -->&…

探索 MCP 和 A2A 協議: 本質上新協議都基于 HTTP的

以下是以 CSDN 博客的形式記錄你對 MCP 協議和 A2A 協議數據傳遞的理解&#xff0c;重點探討了它們為何基于 HTTP 協議、HTTP 的優勢&#xff0c;以及數據傳輸的本質。文章面向技術社區&#xff0c;結構清晰&#xff0c;適合分享。 探索 MCP 和 A2A 協議&#xff1a;為何新協議…

[redis進階一]redis的持久化(2)AOF篇章

目錄 一 為什么有了RDB持久化機制還要有AOF呢 板書介紹具體原因: ?編輯二 詳細講解AOF機制 (1)AOF的基本使用 1)板書如下 2)開啟AOF機制: 3) AOF工作流程 (2)AOF是否會影響到redis性能 ?編輯 (3)AOF緩沖區刷新策略 (4)AOF的重寫機制 板書如下: 為什么要有這個重寫機…