時分多線程技術(shù)在單片機(jī)中的應(yīng)用
在統(tǒng)籌考慮任務(wù)線程段的代碼量、外設(shè)響應(yīng)、系統(tǒng)響應(yīng)性能以及線程切換的數(shù)據(jù)保護(hù)量后,確定以lOms作線程時間片的切換單位。主要考慮以下幾方面因素:
(1)任務(wù)線程段代碼量的大小
根據(jù)各功能模塊大小,依據(jù)相關(guān)性以及時序等邏輯關(guān)系,在考慮各功能模塊內(nèi)聚性、線程切換運算量的基礎(chǔ)上,進(jìn)行模塊分解、合并,組成線程執(zhí)行代碼段,以確保線程執(zhí)行代碼段(包括中斷服務(wù)程序的執(zhí)行時間)能在時間片內(nèi)完成,從而簡化了控制模型,降低了多線程中上下文之間切換的復(fù)雜度。
例如處理鍵盤輸入,為實現(xiàn)鍵盤輸入的消抖動干擾、冗余讀取鍵值以及持續(xù)按鍵與點擊按鍵功能。通過設(shè)置若干標(biāo)識變量,細(xì)分鍵值處理線程的時序作業(yè)步驟,使每個作業(yè)執(zhí)行時間片小于lOms,從而適應(yīng)時鐘片調(diào)度的時間約束條件,降低設(shè)計風(fēng)險。
對按鍵的20~30ms防抖動延時,可通過設(shè)置標(biāo)識量keydelay,在時間片中斷服務(wù)程序中進(jìn)行延時計數(shù),而在主循環(huán)程序中就可進(jìn)行如下處理。
(2)外設(shè)響應(yīng)
在考慮MCU同各種外設(shè)交互的延時因素中,要綜合平衡外設(shè)延時時間、線程切換、時間片周期等因素對系統(tǒng)整體綜合性能的影響,最大限度地提升CPU利用率。
(3)A/D數(shù)據(jù)轉(zhuǎn)換速率
對所讀溫度、功率值的采樣頻率,根據(jù)C8051F005的片上A/D轉(zhuǎn)換速率以及數(shù)字濾波處理的信號冗余讀數(shù)要求,兼顧時間片大小。
3 特別注意事項
?、贂r間片中斷T2應(yīng)設(shè)最高優(yōu)先級,以免其他中斷程序干擾時間片調(diào)度程序的實時性處理。
②中斷服務(wù)程序的調(diào)度算法應(yīng)盡量簡短,提高系統(tǒng)的響應(yīng)能力。
?、圩⒁舛褩2僮鞯囊绯隹刂?。
④分配在時間片中的線程代碼段要有合理的組合與調(diào)度考慮,以均衡負(fù)擔(dān)CPU的時間片,降低設(shè)計風(fēng)險。
⑤在初始化系統(tǒng)狀態(tài)時,確保線程狀態(tài)標(biāo)識的創(chuàng)建,以及時間片中斷T2的使能。
?、奚髦靥幚碇袛喾?wù)程序執(zhí)行時間,避免擠占線程時間片的正常處理,引起控制紊亂、系統(tǒng)崩潰。
結(jié)語
針對日益復(fù)雜、多樣、高實時要求的應(yīng)用項目,本文提供了一種易于設(shè)計、功能便于擴(kuò)充的解決方案。由此也啟示我們,采用正確、靈活的設(shè)計方法,綜合運用現(xiàn)有技術(shù),可有效提高單片機(jī)應(yīng)用系統(tǒng)性能,擴(kuò)大應(yīng)用領(lǐng)域,增強(qiáng)實時控制能力,降低開發(fā)難度。
評論