當(dāng)前位置:首頁 > 學(xué)習(xí)資源 > 講師博文 > 嵌入式系統(tǒng)中定時器的應(yīng)用實例
嵌入式系統(tǒng)中定時器的應(yīng)用實例
時間:2025-08-14 來源:華清遠見
一、嵌入式
1.1嵌入式是什么
嵌入式: 通常把嵌入式系統(tǒng)定義為一種以應(yīng)用為中心,以計算機為基礎(chǔ),軟硬件可以剪裁,適用于系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機系統(tǒng)。
其實在我們看來嵌入式系統(tǒng)其實就是計算機技術(shù)的一種應(yīng)用表現(xiàn)形式,也可以理解為在電子產(chǎn)品中嵌入一個微型大腦,這個微型大腦可以輔助協(xié)調(diào)其所在的電子設(shè)備完成設(shè)備的自動化、智能化功能,在日常生活中的嵌入式設(shè)備也是多種多樣
1.2嵌入式的產(chǎn)品有哪些
常見的嵌入式產(chǎn)品:
日常家用設(shè)備:冰箱,洗衣機,微波爐,電飯煲
消費電子:手機,智能手表/手環(huán),智能音箱
醫(yī)療產(chǎn)品:心電監(jiān)測儀,血糖儀,智能藥盒
通信產(chǎn)品:路由器,網(wǎng)關(guān)
等等。。。。。
二、定時器
2.1定時器是什么
在嵌入式系統(tǒng)中,定時器是一個至關(guān)重要的硬件外設(shè)(有時也指基于此實現(xiàn)的軟件功能),其核心功能是精確地測量時間間隔、產(chǎn)生周期性事件或延遲執(zhí)行。它就像一個內(nèi)置在微控制器或微處理器內(nèi)部的精密“秒表”或“鬧鐘” 是嵌入式系統(tǒng)實現(xiàn)精確計時、控制、測量和調(diào)度的基石 。
核心硬件組成:
1. 計數(shù)器: 核心部件,是一個可遞增或遞減的寄存器(通常16位或32位)。
2. 時鐘源: 驅(qū)動計數(shù)器工作的時鐘信號(如系統(tǒng)主時鐘、內(nèi)部RC振蕩器、外部晶振)。
3. 預(yù)分頻器: 對時鐘源分頻,降低計數(shù)頻率,擴展定時范圍。
4. 自動重裝載寄存器: 設(shè)定計數(shù)器溢出后的重置值,實現(xiàn)周期性定時。
5. 比較寄存器: 設(shè)定比較值,當(dāng)計數(shù)器值與其匹配時觸發(fā)事件(如中斷、引腳電平變化)。
6. 控制邏輯: 配置工作模式、使能/禁用中斷等。
主要工作模式:
1. 基本定時模式:
1. 計數(shù)器持續(xù)遞增/遞減,溢出時產(chǎn)生中斷/事件。
2. 用途: 系統(tǒng)心跳(RTOS調(diào)度)、精確延時(替代軟件循環(huán))。
2. 輸入捕獲模式:
1. 捕獲外部信號邊沿(上升/下降沿)時刻的計數(shù)器值。
2. 用途: 精確測量脈沖寬度、頻率或周期(如超聲波測距)。
3. 輸出比較模式:
1. 當(dāng)計數(shù)器值匹配比較寄存器時,自動改變引腳電平或觸發(fā)中斷。
2. 用途: 生成精確時間信號、單脈沖輸出。
4. PWM模式:
1. 自動重裝載值設(shè)定PWM周期,比較值設(shè)定占空比。
2. 用途: 控制電機速度、LED亮度、舵機角度(占空比決定輸出強度)。
5. 編碼器接口模式:
1. 自動解碼正交編碼器信號,計算位置和方向。
2. 用途: 電機位置控制、旋轉(zhuǎn)測量。
2.3定時器可以起到什么作用
嵌入式系統(tǒng)中的核心作用:
1. 系統(tǒng)心跳:提供操作系統(tǒng)(如RTOS)任務(wù)調(diào)度的時基。定時器中斷驅(qū)動著整個系統(tǒng)的“心跳”,確保任務(wù)按時執(zhí)行。
2. 精確延時:實現(xiàn)微秒級或毫秒級的精確等待,替代不精確的軟件循環(huán)。
3. 周期性任務(wù)觸發(fā):定時采集傳感器數(shù)據(jù)、刷新顯示、檢查狀態(tài)等。
4. PWM生成:控制電機速度、LED亮度、舵機位置、開關(guān)電源等。
5. 時間測量:
測量事件間隔(如按鍵消抖時間、脈沖寬度)。
測量信號頻率、周期。
為系統(tǒng)提供時間戳。
6. 事件計數(shù):對外部脈沖進行計數(shù)(可以作為定時器的簡單替代)。
7. 看門狗定時器:一種特殊的定時器,用于監(jiān)控系統(tǒng)運行。如果系統(tǒng)正常,軟件需定期“喂狗”(重置計數(shù)器);如果系統(tǒng)崩潰無法喂狗,WDT超時后會強制復(fù)位系統(tǒng),提高可靠性。
8. 實時時鐘:專用的低功耗定時器(RTC),用于日歷和時間保持,即使在主系統(tǒng)掉電時(依靠備用電池)也能持續(xù)運行。
三、定時器的應(yīng)用
3.1定時器的使用場景
1. 需要精準(zhǔn)時序控制 → PWM/輸出比較
(例:無人機電調(diào)控制)
2. 需要測量時間參數(shù) → 輸入捕獲
(例:示波器測量脈沖)
3. 需要周期性操作 → 基本定時模式
(例:數(shù)據(jù)日志記錄)
4. 需要抗系統(tǒng)崩潰 → 看門狗定時器
(例:醫(yī)療設(shè)備監(jiān)護)
5. 需要低功耗運行 → RTC喚醒
(例:智能水表)
3.2場景舉例
1. 電機與運動控制
1. 直流電機調(diào)速,調(diào)節(jié)占空比控制電機轉(zhuǎn)速
2. 步進電機驅(qū)動,生成步進脈沖序列和方向信號
3. 舵機角度控制
4. 編碼器反饋,解碼正交信號計算位置/速度
2. 信號生成與采集
1. PWM信號輸出
1. LED調(diào)光(調(diào)節(jié)亮度)
2. 開關(guān)電源控制(Buck/Boost電路)
3. 音頻DAC驅(qū)動(生成模擬波形)
2. 脈沖信號捕獲
1. 測量超聲波回波時間(測距)
2. 旋轉(zhuǎn)編碼器計數(shù)(計算轉(zhuǎn)速)
3. 紅外遙控信號解碼(NEC協(xié)議)
3. 通信時序控制
1. 生成UART/SPI/I²C的精確波特率
2. 軟件模擬通信協(xié)議(如單總線協(xié)議)
3. 傳感器與測量
1. 周期性數(shù)據(jù)采集
每100ms讀取溫濕度傳感器(DHT11)
定時觸發(fā)ADC采樣(電池電壓監(jiān)控)
2. 高精度時間測量
激光測距(飛行時間測量)
電容觸摸檢測(充放電時間測量)
4. 系統(tǒng)可靠性與監(jiān)控
1. 看門狗定時器 (WDT)
系統(tǒng)崩潰時自動復(fù)位(需在中斷中定期“喂狗”)
2. 工業(yè)設(shè)備防死機設(shè)計
超時檢測
串口通信響應(yīng)超時(例:等待Modbus應(yīng)答超時則重發(fā))
按鍵長按檢測(持續(xù)3秒進入配置模式)
5. 低功耗管理
1. 喚醒定時
睡眠模式下定時喚醒(如每10分鐘采集數(shù)據(jù)后繼續(xù)休眠)
RTC(實時時鐘)鬧鐘喚醒(穿戴設(shè)備定時提醒)
2. 周期省電模式
傳感器間歇工作(如LORA節(jié)點每5分鐘激活一次)
3.3項目示例:
3.3.1智能農(nóng)業(yè)灌溉系統(tǒng)的設(shè)計
項目背景
隨著農(nóng)業(yè)現(xiàn)代化的發(fā)展,為提高水資源利用效率、實現(xiàn)精準(zhǔn)農(nóng)業(yè)設(shè)備控制。傳統(tǒng)灌溉依賴人工判斷,效率低、浪費大。而基于嵌入式的智能農(nóng)業(yè)灌溉系統(tǒng)可以實現(xiàn):
1. 根據(jù)設(shè)定時間自動開啟/關(guān)閉水泵
2. 結(jié)合土壤濕度傳感器實現(xiàn)條件觸發(fā)灌溉
3. 支持遠程控制與定時任務(wù)
4. 提高灌溉效率,節(jié)約用水
定時器在項目的核心作用
在本系統(tǒng)中,定時器用于周期性地觸發(fā)灌溉控制邏輯,其作用如下:
1. 定時采集傳感器數(shù)據(jù):每10秒讀取一次土壤濕度;
2. 定時執(zhí)行灌溉控制:根據(jù)濕度值決定是否開啟水泵;
3. 實現(xiàn)低功耗運行:主程序可進入低功耗模式,由定時器喚醒;
4. 避免輪詢浪費CPU資源:通過中斷機制實現(xiàn)高效調(diào)度。
3.3.2智能寵物喂食器的設(shè)計
項目背景
隨著物聯(lián)網(wǎng)(IoT)技術(shù)的發(fā)展,智能家居設(shè)備逐漸普及。寵物喂食器作為其中一員,能夠幫助主人遠程控制喂食時間與份量,尤其適用于上班族、出差頻繁或經(jīng)常旅行的寵物主人。
核心功能需求
1. 定時投喂:用戶可設(shè)定多個投喂時間點,系統(tǒng)自動投食;
2. 遠程控制:通過Wi-Fi連接手機APP,遠程手動投喂;
3. 食物余量檢測:使用重量傳感器或紅外傳感器檢測食物余量;
4. 低功耗運行:適合長時間待機;
5. 斷網(wǎng)自動運行:本地定時任務(wù)不受網(wǎng)絡(luò)影響。
定時器在項目的核心作用
在本系統(tǒng)中,定時器主要承擔(dān)的任務(wù)如下:
1. 周期性檢測當(dāng)前時間:與設(shè)定的投喂時間進行比對;
2. 觸發(fā)投喂動作:當(dāng)時間匹配時,啟動電機投食;
3. 低功耗喚醒:在待機狀態(tài)下由定時器喚醒系統(tǒng);
4. 防止誤觸發(fā):避免因時間誤差導(dǎo)致重復(fù)投喂;
5. 支持多時間段設(shè)定:如早上8點、中午12點、晚上7點等。

