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