3IAP(在線(xiàn)編程)設計
PSD4235G2有2個(gè)內部寄存器:頁(yè)寄存器(page)和VM寄存器。8位的頁(yè)寄存器可使MCU的尋址空間擴大256倍,他的內容可以由MCU來(lái)讀寫(xiě)。頁(yè)寄存器可直接參與PSD內部存儲器的地址選擇,在作為頁(yè)尋址時(shí)寫(xiě)入要訪(fǎng)問(wèn)的頁(yè)地址,PSD內部地址譯碼邏輯就立刻選中目標存儲器空間。另外,在頁(yè)寄存器實(shí)現分頁(yè)存儲時(shí),應該設置一個(gè)公共存儲器區,即程序在任何頁(yè)面位置執行時(shí)都能訪(fǎng)問(wèn)到的空間(或者說(shuō)是與頁(yè)不相關(guān)的地址空間),用于放置初始化程序、中斷服務(wù)程序、頁(yè)切換程序以及物理設備驅動(dòng)程序等重要子程序。同樣,重要數據也應當在任何頁(yè)都可以訪(fǎng)問(wèn),例如PSD控制寄存器、I/O、用于保存堆棧和全局變量的系統RAM等。VM寄存器用來(lái)分開(kāi)程序空間和數據空間,并把PSD4235G2中主Flash、次Flash和SR AM設置在不同空間。
在進(jìn)行在線(xiàn)編程時(shí),首先將PSD的次Flash存儲器映射到80C196KC的程序存儲區,將PSD的主F lash存儲器映射到80C196KC的數據存儲區,系統從PSD的次Flash啟動(dòng),執行引導/下載程序,如果需要的話(huà)從上位機下載程序到PSD的主Flash存儲器;然后,再通過(guò)PSD中的VM寄存器,將主Flash存儲器存儲空間從數據存儲區跳變到程序存儲區,轉而執行Flash存儲器中的程序,從而實(shí)現對原程序的升級。
系統的運行有2個(gè)基本模式:一個(gè)是引導/下載模式;另一個(gè)是正常運行模式。系統啟動(dòng)時(shí)從引導/下載模式到正常運行模式轉換過(guò)程中系統存儲器的變化步驟為:
(1) 上電時(shí)系統存儲器映射
上電時(shí)系統開(kāi)始執行次Flash中的程序,檢查是否要通過(guò)MCU對主Flash中的程序進(jìn)行升級。此時(shí),PSD中主Flash存儲器存儲空間都處于MCU的數據空間,而次Flash存儲空間則處于MCU的程序空間。
(2) 主Flash存儲空間從數據空間移至程序空間
在完成對Flash中程序升級或不需要升級時(shí),寫(xiě)VM寄存器為06H,將主Flash的存儲空間從MCU的數據空間移到程序空間。
(3) 切換主Flash和次Flash存儲空間
MCU從PSD次Flash中運行程序跳到主Flash中的運行程序。在程序寫(xiě)1到‘swap’位(上電時(shí)‘swap’的值是0)進(jìn)行地址“切換”,程序就進(jìn)入主Flash中運行了。
(4) 次Flash存儲空間移至數據空間
程序已經(jīng)在PSD的主Flash中運行,寫(xiě)0CH到VM寄存器,把次Flash的存儲空間從MCU的程序空間移到數據空間。并且,MCU轉跳到在PSD的主Flash的復位入口地址,用戶(hù)的程序開(kāi)始真正執行。
用戶(hù)程序啟動(dòng)模塊的流程如圖3所示。
4結語(yǔ)
PSD4235G2的獨特結構簡(jiǎn)化了硬件接口電路,為嵌入式MCU系統提供了簡(jiǎn)單靈活的解決方案。其IAP功能使產(chǎn)品可以在應用中編程和測試,并遠程升級程序代碼,縮短了產(chǎn)品開(kāi)發(fā)周期,降低了產(chǎn)品維護和升級成本,搶先占領(lǐng)市場(chǎng)。
參考文獻
[1]孫涵芳.Intel 16位單片機[M].北京:北京航空航天大學(xué)出版社,1999
[2]劉復華.8*C196KX單片機及其應用系統設計[M].北京:清華大學(xué)出版社,2002
[3]孫涵芳.單片機現場(chǎng)可編程外圍芯片PSD的原理及應用[M].北京:北京航空航天大學(xué)出版社,1998
[4]可編程單片及外圍芯片技術(shù)手冊.
評論