基于DSP+CPLD的新型智能监测系统设计与开发
时间:09-16
来源:互联网
点击:
系统在线编程
因系统最终要脱仿真器独立运行,所以要把程序烧写到掉电非丢失存储器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存储器中,然后跳到程序的进入点开始全速运行。
TMS320C32 DSP芯片引导装载程序的执行过程将复位中断向量表中存放引导程序的起始地址,上电复位或手动复位之后,程序指针将指向引导程序。在运行搬移程序之前,要注意关中断。向量如果MC/MP#=1,而且系统没有接在仿真器上,那么DSP芯片自动运行固化在0h~0fffh中的引导装载程序。这一程序会自动判断是INT0~INT2,还是INT3中断。如果是INT0~INT2中断,DSP将存放在BOOT1~BOOT3中的一段程序装载到片内RAM或片外SRAM中;如果是INT3中断,则DSP将从串口中把程序装载到片内RAM或SRAM中。如果没有中断,DSP根据0H单元中的复位矢量,跳到该矢量所指出的单元为首地址,执行一段引导装载程序。TMS320C32引导装载程序关键代码如下:
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高效性和灵活性。非常适合应用于实时控制系统中,解决了只能依赖于烧录器的问题,也可经常调整系统的参数,降低了系统成本、缩短了系统的开发周期。
因系统最终要脱仿真器独立运行,所以要把程序烧写到掉电非丢失存储器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存储器中,然后跳到程序的进入点开始全速运行。
TMS320C32 DSP芯片引导装载程序的执行过程将复位中断向量表中存放引导程序的起始地址,上电复位或手动复位之后,程序指针将指向引导程序。在运行搬移程序之前,要注意关中断。向量如果MC/MP#=1,而且系统没有接在仿真器上,那么DSP芯片自动运行固化在0h~0fffh中的引导装载程序。这一程序会自动判断是INT0~INT2,还是INT3中断。如果是INT0~INT2中断,DSP将存放在BOOT1~BOOT3中的一段程序装载到片内RAM或片外SRAM中;如果是INT3中断,则DSP将从串口中把程序装载到片内RAM或SRAM中。如果没有中断,DSP根据0H单元中的复位矢量,跳到该矢量所指出的单元为首地址,执行一段引导装载程序。TMS320C32引导装载程序关键代码如下:
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高效性和灵活性。非常适合应用于实时控制系统中,解决了只能依赖于烧录器的问题,也可经常调整系统的参数,降低了系统成本、缩短了系统的开发周期。
DSP CPLD 电动机 单片机 总线 FPGA 电路 仿真 LCD 嵌入式 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- FPGA作为协处理器在实时系统中的应用(04-08)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 我的FPGA学习历程(05-23)
- 基于Spartan-3A DSP的安全视频分析(05-01)