FRAM FM18L08在DSP系统中的应用与并行引导装载

2 下载量 50 浏览量 更新于2024-08-30 收藏 130KB PDF 举报
"铁电存储器FM18L08在DSP系统中的应用" 本文主要探讨了铁电存储器FM18L08在数字信号处理器(DSP)系统中的应用,特别是与TMS320VC5402 DSP集成的情况。铁电存储器(FRAM)是由Ramtron公司开发的一种非易失性存储技术,它具有高速读写和低功耗的特性,即使在无电源条件下也能保持数据。相比于传统的EEPROM和FLASH,FRAM在写入速度和擦写耐久性上有显著优势,同时价格相对较低,因此在多个领域如地铁系统、抄表系统和IT工业中得到了广泛应用。 TMS320VC5402是一款由德州仪器(TI)制造的16位定点DSP,以其高运算速度(100 MIPS)和丰富的内部资源而受到青睐,常见于通信、电子和图像处理等领域的解决方案。然而,由于C5402是随机存取存储器(RAM)类型,一旦断电,所有用户数据将丢失。因此,通常需要将程序代码存储在非挥发性存储器中,如FRAM,以便在系统启动时,通过Bootloader程序加载代码至DSP的高速片内存储器或扩展存储器,实现自启动。 文章详细介绍了铁电存储器FM18L08的并行接口特性,以及C5402的并行引导装载模式。FM18L08与C5402的接口设计是实现脱机独立运行系统的关键,该系统能够在没有外部控制的情况下运行。作者提出了一种设计方案,通过这种方案,FRAM不仅能够存储程序代码,还能支持C5402的快速启动,从而有效地解决了C5402的启动和数据持久性问题。 在实际应用中,这种基于FM18L08和C5402的系统被成功应用于语音门锁系统。这表明,利用FRAM的特性可以构建出既可靠又高效的嵌入式系统,尤其在那些对数据保存和系统启动速度有较高要求的场合,如安全设备和自动化系统。 总结来说,文章深入剖析了FRAM在DSP系统中的潜力,尤其是FM18L08与C5402的整合,提供了一种创新的系统设计方法,这对于提升嵌入式系统的性能和可靠性具有重要的实践意义。

#include "config.h" #define FOSC 22118400L //System frequency uint32_t baud=9600; //UART baudrate uint8_t RX_BUF[50]; uint8_t NUM_1=0; /************************************************************************ �� �� ���� ���ڳ�ʼ�� ���������� STC10L08XE ��Ƭ�����ڳ�ʼ������ ���غ����� none ����˵���� none **************************************************************************/ void UartIni(void) { SCON = 0x50; //8-bit variable UART TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode TH1 = TL1 = -(FOSC/12/32/baud); //Set auto-reload vaule TR1 = 1; //Timer1 start run ES = 1; //Enable UART interrupt EA = 1; //Open master interrupt switch } /************************************************************************ ���������� ���ڷ���һ�ֽ����� ��ڲ����� DAT:�����͵����� �� �� ֵ�� none ����˵���� none **************************************************************************/ void UARTSendByte(uint8_t DAT) { ES = 0; TI=0; SBUF = DAT; while(TI==0); TI=0; ES = 1; } /************************************************************************ ���������� ���ڷ����ַ������� ��ڲ����� *DAT���ַ���ָ�� �� �� ֵ�� none ����˵���� API ���ⲿʹ�ã�ֱ�ۣ� **************************************************************************/ void PrintCom(uint8_t *DAT) { while(*DAT) { UARTSendByte(*DAT++); } } void Uart_Isr() interrupt 4 using 1 { if (RI) { RI=0; RX_BUF[NUM_1]=SBUF; NUM_1++; if(NUM_1>=49) NUM_1=0; if(NUM_1>=3) { if(RX_BUF[NUM_1]==0xF8&&RX_BUF[NUM_1-1]==0xF8&&RX_BUF[NUM_1-2]==0xF8) IAP_CONTR=0x60; } } } 什么意思

2023-07-25 上传