新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于dsPIC33F系列單片機的應用程序升級方法

        基于dsPIC33F系列單片機的應用程序升級方法

        作者: 時間:2011-04-12 來源:網絡 收藏

        0 引言
        是美國微芯公司(Microchip)推出的一款高性能,它將數字信號處理器(Digital Signal Processor,DSP)的高速運算能力與的控制特性無縫地集成在一起,為嵌入式系統設計提供了高性價比的單芯片、單指令流的解決方案,在音頻處理、視頻處理及工業控制等方面得到了廣泛應用。但是在實際應用中,由于客戶需求變化或程序BUG修改等原因,經常出現需要使單片機的情況,本文利用單片機運行時的自編程(Run-Time Serf-Programming,RTSP)特性,實現了該單片機功能。

        1 基本原理
        單片機提供了兩種方式用于對其內部程序存儲器進行編程:在線串行編程(In-Circuit Serial Programming,ICSP)和運行時自編程(Run-TimeSelf-Programming,RTSP)。ICSP使用5根線對單片機編程,主要用于產品調試或生產過程中,顯然不適合用于產品運行時的程序。RTSP是通過使用TBLRD(表讀)和TBLWT(表寫)指令來完成的,使用RTSP可以一次將64條指令(192 B)的塊(或“行”)或單個程序存儲字寫入程序存儲器,也可以一次擦除512條指令(1 536 B)的塊(或“頁”),由于該采用程序指令實現了自編程,可應用于產品運行時的程序升級,因此本文采用RTSP實現dsPIC33F單片機的升級功能。程序升級的實質是對程序存儲器內容的更新,所以有必要先了解一下dsPIC33F單片機的程序存儲器內部結構。
        1.1 dsPIC33F單片機的程序存儲器內部結構
        dsPIC33F單片機的程序存儲器結構如圖1所示。一般情況下,“復位地址”的內容為全0,單片機復位后均從程序存儲器地址0的位置上開始執行,即從圖1中的“GOTO指令”位置開始執行。在這里存放了一個跳轉指令,直接指向用戶程序的首址,默認情況下該位置的指令為“GOTO 0x200”,即默認跳轉到首址為0x200的用戶程序(圖1中的“用戶程序存儲空間”)開始執行。dsPIC33F單片機具有2個中斷向量表,即“中斷向量表”和“備用中斷向量表”,地址分別從0x000004~0x0000FF和0x000100~0x0001FF這兩個中斷向量表允許使用不同的中斷服務程序來處理每個中斷源。程序升級功能正是程序存儲器內部結構的以上特性而實現。

        本文引用地址:http://www.104case.com/article/172868.htm


        1.2 程序升級功能的實現流程
        將圖1中的“用戶程序存儲空間”分為引導程序和應用程序2部分,如圖2(a)所示。引導程序用于引導用戶程序是進入升級狀態,還是進入正常運行狀態,若進入升級狀態則接收新的程序數據,并更新程序存儲器的內容;若進入正常運行狀態則程序跳轉到應用程序區。應用程序是為了實現產品功能而編寫的程序,也就是本文所謂“程序升級”的對象。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新乐市| 右玉县| 尤溪县| 民乐县| 赣州市| 合阳县| 南通市| 申扎县| 讷河市| 武城县| 长葛市| 长寿区| 聂荣县| 甘谷县| 洛川县| 阿合奇县| 霞浦县| 许昌市| 营口市| 日土县| 云龙县| 措美县| 霍邱县| 昔阳县| 宁明县| 建昌县| 金塔县| 辰溪县| 家居| 明溪县| 玛沁县| 南昌市| 玛纳斯县| 绍兴市| 尉氏县| 疏勒县| 晋州市| 呼伦贝尔市| 鹤庆县| 西安市| 景泰县|