單片機(jī)系統(tǒng)在線維護(hù)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)軟件的開發(fā)包括兩個方面:即引導(dǎo)程序的開發(fā)和加載程序的開發(fā)。引導(dǎo)程序的開發(fā)是系統(tǒng)的基礎(chǔ),主要的功能是實(shí)現(xiàn)MCU的初始化,存儲器檢查,F(xiàn)LASH可用性檢查,串行通信功能的實(shí)現(xiàn),對FLASH程序的加載以及出錯報(bào)警等,引導(dǎo)程序的工作流程如圖3所示。
圖3 引導(dǎo)程序工作流程圖
引導(dǎo)程序中有四個重要部分,AT89C52初始化、串行中斷服務(wù)程序以及程序加載指令的實(shí)現(xiàn),以及命令代碼的解析等。在系統(tǒng)沒有加載程序之前引導(dǎo)程序處在等待加載的狀態(tài),直到加載完成才可能進(jìn)入正常工作模式,并且在引導(dǎo)程序進(jìn)入正常工作模式時,也還可以通過調(diào)用程序加載模塊(子程序)進(jìn)行程序的更新。
由于SST29EE010是以128字節(jié)的頁方式寫入,所以實(shí)現(xiàn)加載指令時,對SST29EE010的寫操作以128字節(jié)為分組,不足128字節(jié)的分組填充至128字節(jié)再處理。在加載程序時,主機(jī)將加載程序.BIN文件以128字節(jié)為單位分組,并為每個分組加上升級指令代碼和位置參數(shù)后通過串口發(fā)送給MCU,MCU接收數(shù)據(jù)后進(jìn)行判斷,若是加載指令則將接收的數(shù)據(jù)寫入到參數(shù)指定的FLASH區(qū),并返回操作代碼;處理流程如圖4所示。
圖4 程序加載的處理流程圖
評論