Atmel Tiny-88 MCU firmware architecture
單晶片的靭體架構
單晶片的靭體架構可以分為兩類,一類是有 RTOS 的靭體駕架構,一類是沒有 RTOS 的靭體架構。對於沒有 RTOS 的靭體架構,就會依照程式開發者的經驗和知識來設計靭體架構,如下圖是設計開發用於車上娛樂機的經驗,分享給靭體開發者參考。
靭體架構流程
在單晶片上電之後,單晶片核心處理後,就由 Internal Flash 載入到記憶體,進入靭體的PowerOnInit ,完成單晶片核心和模組初始化,接著 Main-Service,先執行中斷未完成程序,再執行固定時間需求的程序,程序都執行完成後,開啟中斷功能,若汔車是發動的,執行 Time-To-Idle 來節約單晶片的電源,當然在固定時間或突發事件就會中斷喚醒單晶片,進入 ISR,在 ISR 內部程式,只有設定 pend flag,然後進入 Main-Service 把中斷事件完成。若汔車已經停車了,在經過 N sec 後,執行 Time-To-Shutdown 把單晶片斷電減少對汔車蓄電池的消耗。
- Power-On-Init
電源一開始就清除變數,初始化各個模組,計時器,中斷等.就進入 Main-Service.
- Main-Service
靭體的主要服務程式,首先確認有沒有 pend flag,或有 pend flag 表示有中斷事件未完成,就先完成中斷事件,再把其他事件完成,最後開啟中斷功能,進入單晶片節省電源功能。
- Time-To-Idle
當汔車還在發動時,汔車仍由石油引擎供電或者高壓電池供電,所以單晶片可以不需節省電源或者做部分的節省電源.在這個函式執行單晶片休眠 (Idle) 節省部分電源。
- Time-To-Shutdown
當汔車已經停車之後,汔車仍有 12V 的蓄電池可以供電,但是大部分的主要系統都關電節省電源消耗,只留下一些小功率的單晶片,確認所有系統都正常關閉,裝置也都關閉後,最後再要求單晶片也完全斷電。在單晶片進入這個函式執行完成斷電電路,讓系統不再提供電源給單晶片.
- Interrupt-Service-Routine(ISR)
讀取中斷資料,清除中斷的 Pend Flag,若中斷事件已處理完成,就不設定 Flag,若仍有中斷事件需要在 Main-Service 處理,就需要設定 Flag,然後進入 Main-Service.
留言
張貼留言