保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

CPLD器件的在系统动态配置


PS1ms=delay_time;

CCTL0=CCIE; //开定时

while(PS1ms){};//在中断PS1ms

CCTL0&=~CCIE; //关定时

}

有一点需要指出,ispVM EMBEDDED要求将已转化成HEX格式的VME作为程序的一部分固化在单片机里。很显然,要想更换配置文件,就必须连同单片机程序一同换掉。这对实现动态配置是不利的,也是为什么在本方案中外加E2PROM的原因。这样无须更改程序,只换掉E2PRO中的配置文件即可。因此还需要更改GetByte()函数。
(凹丫丫范文网fanwen.oyaya.net收集整理)
    对24C512的操作应该遵循I2C总线协议,而在MSP430中没有I2C总线硬件,所以本方案中用软件方法模拟。由于I2C串行总线数据交换速度较慢,因而当从E2PROM中读出数据再往CPLD中移入时,形成了配置过程的速度瓶颈。在解决这个问题时,我们充分利用了MSP430149单片机内部2KB RAM,采用E2PROM最快的读取方式——顺序读,将配置数据预先读入到RAM中,GetByte()函数直接从RAM中读取数据。这种方法在一定程度上提高了配置速度。我们改写的GetByte()函数是这样的:

unsigned char GetByte()

{ unsigned char data;

static unsigned short int index=0;

……

if(index==0){ //有新的数据来自E2PROM

fp=wmeArray;//放在unsigned char vmeArray[1024]

}

data=*fp++;

if(index<1024)

index++;

else {

index=0;

if((num+1024)>totalnum是已经读取字节数)

ReadBlock(address,totalnum-num);//totalnum是整个配置文件字节数

}

else{

ReadBlock(address,1024);//从I2PROM的

address=adress+1024;//adress地址开始读1024字节

}

}

return(data);

}

PC机上应用程序用Delphi7.0开发设计,利用专门的串口控件很容易开发出串口通信程序,从而将VME配置文件发送到MSP430。当配置完成以后由MSP430返回“配置成功”。

4 结论

我们设计的基于MSP430的CPLD动态配置方案,充分利用了CPLD可重复配置的特性,为嵌入式系统升级重构提供了一种新的思路,将来一定有很好的应用前景。当然在这个方案中,由于采用外加E2PROM的原因,在配置速度上较慢。虽然本方案针对的是Lattice MACH4000系列CPLD器件,但是稍加改动也可用于Lattice其它ispJTAG器件,如i

《CPLD器件的在系统动态配置(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/163462.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。