新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP+CPLD的新型智能監測系統設計與開發

        基于DSP+CPLD的新型智能監測系統設計與開發

        作者: 時間:2011-08-19 來源:網絡 收藏

          3 內置T696 3C液晶顯示模塊的軟件實現

          (1)、地址分配及定義

           .data

           LCDC_ADD .equ 820003H;指令通道

          LCDD_ADD .equ 820001H;數據通道

          (2)、狀態字檢測子程序

           LCDR_ST: LDI @LCDC_ADD,R0

           RETS

          由此程序派生出判斷有關標志位的子程序:

          

        1>判斷狀態位STA1和STA0子程序,在寫指令的讀、寫數據之前,這兩個標志位必須同時為“1”。

           LCDST01: CALL LCDR_ST

           LDI R0,R1

           AND 01H,R1

           BZ LCDST01

           AND 02H,R0

           BZ LCDST01

           RETS

           2>判斷狀態位STA3子程序(數據自動寫狀態)

           LCDST3: CALL LCDR_ST

          AND 08H,R0

          BZ LCDST3

          RETS


          (3)、寫指令和寫數據子程序

           LCDPR1 : CALL LCDST01;雙字節參數指令寫入入口

           LDI AR1,R0

           CALL LCDPR13

           LCDPR11: CALL LCDST01 ;單字節參數指令寫入入口

          

        LDI AR2,R0

           CALL LCDPR13

           LCDPR12: CALL LCDST01 ;無參數指令寫入入口

           LDI AR3,R0

           LCDPR14: STI R0,@LCDC_ADD ;寫入指令操作

           RETS

           LCDPR13: STI R0,@LCDD_ADD;寫入數據操作

          RETS

          (4)、讀數據子程序

           LCDPR2: CALL LCDST01 ;判狀態位

           LDI @LCDD_ADD,R0 ;讀數據操作

           RETS

          五、 系統在線編程

          因系統最終要脫仿真器獨立運行,所以要把程序燒寫到掉電非丟失存儲器FLASHROM中。本系統開發所采用的將存儲器安裝到用戶電路板上進行編程的方法將用戶程序代碼裝入 FLASH存儲器的。它包括現在普遍采用的在系統編程(In System Programming,ISP),通過系統的微處理器實現對FLASH存儲器的編程。


          1、 FLASH在線編 程實現

          對FLASH的基本操作主要有讀、字節編程、復位、扇區擦除、片擦除等。Am29F010B閃爍存儲器讀操作與普通的存儲器操作相同,不需要特定的時序,在電路上電或內部編程等操作技術后,自動進入讀數據狀態。而擦除和寫操作相對復雜一些。它不能簡單的直接寫入,.OUT文件不能LOAD到FLASH中,CCS和C Source Debugger中的LOAD命令均不能對FLASH寫入,需要專門的程序寫入一系列Flash Memory的命令寄存器,然后調用嵌入式算法的內部程序來完成相應的命令。Am29F010B編程一般步驟是復位、擦除、字節編程等。

          2、 系統軟件加載程序設計

          系統軟件加載程序的主要作用是在系統上電處理器初始化后,開始執行的一段代碼,將用戶實時運行的程序和數據從外部低速FLASH Memory中加載到內部或外部高速靜態RAM存儲器中,然后跳到程序的進入點開始全速運行。

           DSP芯片引導裝載程序的執行過程將復位中斷向量表中存放引導程序的起始地址,上電復位或手動復位之后,程序指針將指向引導程序。在運行搬移程序之前,要注意關中斷。向量如果MC/MP#=1,而且系統沒有接在仿真器上,那么DSP芯片自動運行固化在0h~0fffh中的

        引導裝載程序。這一程序會自動判斷是INT0~INT2,還是INT3中斷。如果是INT0~INT2中斷,DSP將存放在BOOT1~BOOT3中的一段程序裝載到片內RAM或片外SRAM中;如果是INT3中斷,則DSP將從串口中把程序裝載到片內RAM或SRAM中。如果沒有中斷,DSP根據0H單元中的復位矢量,跳到該矢量所指出的單元為首地址,執行一段引導裝載程序。引導裝載程序關鍵代碼如下:

          LDI 01H,AR0

           LDI *AR0,AR0

           LDI 02H,AR2

           LDI *AR2,AR1

           LDI 87,RC

           RPTB dload

           LDI *AR0++,R0

          Dload: STI R0,*AR1++

           LDI 03H,AR0

           LDI *AR0,AR0

           LDI 04H,AR2

           LDI *AR2,AR1

           LDI 4000H,RC

           RPTB pload

           LDI *AR0++,R0

          Pload: STI R0,*AR1++

           BR 900000H


          六、結束語

          上述討論的方法在軟、硬件上都已得到實現,效果理想。利用了Flash ROM的嵌入式算法,體現了DSP高效性和靈活性。非常適合應用于實時控制系統中,解決了只能依賴于燒錄器的問題,也可經常調整系統的參數,降低了系統成本、縮短了系統的開發周期。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泗阳县| 黄骅市| 高密市| 康马县| 连江县| 察隅县| 于都县| 县级市| 绥棱县| 太湖县| 绥宁县| 南充市| 英吉沙县| 龙游县| 杭州市| 泌阳县| 襄城县| 鹤峰县| 休宁县| 浦东新区| 青川县| 夏邑县| 松阳县| 宁武县| 遂宁市| 壶关县| 凤冈县| 乌拉特后旗| 阿坝县| 阿尔山市| 封开县| 卢龙县| 蕉岭县| 达尔| 德安县| 喜德县| 酒泉市| 兰坪| 清原| 黎城县| 景谷|