用单片机配置CPLD器件
ALTERA公司的可编程序逻辑器件APEX20K、FLEX10K和FLEX6000虽应用广泛,但由于其内部采用SRAM存储配置数据,每次系统上电时,必须用配置芯片对其进行配置,只有在配置正确的情况下,系统才能正常工作。配置芯片是一个能产生配置时序的ROM,分为一次编程型和可擦除型两种,一次编程型芯片只能写入一次,不适合开发阶段反复调试和修改,可擦除型芯片价格昂贵且擦写次数有限(100次左右),增加了开发成本。而且,由于ALTERA公司提供的配置芯片容量有限,对于容量很大的可编程逻辑器件,需要一片以上的配置芯片组成菊花链形进行配置,这无疑加大了设计复杂度和开发成本。
目前,在可编程逻辑器件的开发阶段多采用可擦写的配置芯片,例如EPC2LC20,最终产品采用不可擦写的配置芯片,例如EPC1441PC8。至今还没有低成本的可擦写配置芯片出现,而我们采用单片机与外部串行EEROM组成的配置板可实现对一次编程型和可擦除型配置芯片的无缝替代。它可以代替不同型号、不同容量芯片,可实现反复擦写(1000K次)且用户无须增加任何附加电路(实现无缝替代),并支持多电压配置。
PS配置方式分析
配置方式分为主动、被动以及边界扫描配置方式。我们主要讨论被动配置方式,被动配置方式又可分为被动串行(PS)、被动异步串行(PSA)、被动同步并行(PPS)和被动异步并行(PPA)。无论哪种方式均是由配置器件控制配置时序,并在控制信号的作用下向目标器件传送串行/并行数据流。不同的配置方式有不同的配置时序,可针对不同系列的CPLD器件。
对于FLEX10系列芯片,比较常用的是采用PS方式进行配置,PS方式配置时的管脚及控制信号的功能如下:
MSEL1, MSEL0: 选择配置方式。均接地,为PS方式。
CONF_DONE: 此信号需经1K电阻上拉。配置过程中,10K电阻将此信号拉低,成功配置完毕后,芯片释放端口,由上拉电阻将其电平抬高。
nSTATUS: 配置状态的监测信号。此信号需经1K电阻上拉。配置过程中,出现低电平表明配置过程出现错误,需重新配置。
DATA0:串行配置数据流的输入。
DCLK:串行配置的时钟输入,用于锁存外部数据。
NCONFIG:启动配置的信号。
被动串行工作过程:当NCONFIG产生下降沿脉冲时启动配置过程。在DCLK出现上升沿时,芯片将一位数据传入内部,直至所有数据都被移入。在配置过程中,系统需要实时监测,一旦出现错误,NSTATUS被拉低,系统必须能识别这个信号,并重新启动配置过程。配置数据全部正确的移入芯片内部后,CONF_DONE信号跳变为高,此后,DCLK必须再提供10个周期的时钟,确保芯片被正确初始化,进入用户工作模式。时序图如图1。
配置文件的异同
用ALTERA的MAX+PLUS II或Qnaitus开发工具对设计项目进行编译后,会产生几种配置或编译文件,用于不同配置方式的配置系统。而对于不同系列的目标器件,配置数据的大小也不同。每种文件都可以从另外一种文件生成,搞清楚各种文件的异同对于上电配置是非常关键的。
* SRAM目标文件(.Sof):用于PS方式,直接配置目标器件,文件中前81字节为头信息,为ASIIC代码记录用户的使用信息。其它文件都是从SOF文件中生成的,在数据流的格式和用途上有所区别。
*编程目标文件(.pof):用作配置文件装入配置器件(如EPC2、EPC1、EP1441)中。
*二进制文件(.rbf):包含全部配置数据,用于微处理器做配置时的数据流,rbf 文件决定了配置该器件所需数据量的大小。
*文本文件(.Ttf):包含全部配置数据,用于微处理器做配置时的数据流。Ttf文件存放了最原始的配置数据,即数据不含有任何附加的文件格式(头尾标识字节),可以直接复制到单片机程序最后,用伪指令DB做成数据表TAB,配合指令MOV DPTR,#TAB和MOVC A,@A+DPTR 进行查表取数据。
* HEX文件(.hex): Intel 16进制格式下为ASCII文件。包含全部配置数据,用于微处理器做配置时的数据流。第一行为7个字节的头信息,每一行开头4个字节,结尾1个字节,为标识字节,中间部分与*.ttf的数据相同,为有用的配置数据。最后一行是4个字节的尾信息。
用单片机配置的设计思路
和实现
在实际使用中,把配置板插在PS方式下载线的十针插头上,所以配置板的电源由目标板提供,由于不同的系统采用的电压不同,所以要求配置板必须可以适应多电压。所以要求我们选取的单片机和串行EEPROM必须支持多电压工作。
在配置过程中,单片机必须严格控制信号的时序。nCONFIG的启动低脉冲宽度至少为2ms。
DCLK的第一个上升沿在nCONFIG的上升沿后延迟5ms。DCLK的周期至少为60ms。
以同样原理还可以同时配置多个目标器件,原理图如图3。
第一个器件的信号nCEo,在配置完毕后跳变为低,从而激活第二个器件。所有待配置器件的CONF_DONE需连接在一起,使所有器件同时初始化完毕,同时进入用户模式。
设计优化
实验过程中我们用80C51系列的单片机,但它体积大,不适合代替专用芯片用于设计开发的产品中,而且80C51单片机不支持多电压运行。综合考虑后,我们选用MSP430系列的F1121型单片机,它是一种FLASH型超低功耗16位单片机,20个管脚,表贴封装,体积非常小,内部具有数控晶振,看门狗定时器, 不用附加任何外围电路即可工作,有效的节省了配置电路板的面积,且在体积减小的同时资源却比80C51单片机丰富,带有3个捕捉/比较寄存器的16位定时器,2个具有中断功能的8位并行端口,4KB ROM, 256B RAM。F1121单片机支持多电压工作,可以使配置板适应不同的电压。F1121的FLASH型主存储器,通过JTAG控制器可以实现程序代码的下载,实现运行控制和对现场进行观察与修改,方便、直观。
结语
我们最终设计的配置板PCB尺寸为2cm×3cm,根据要配置的CPLD的型号(即容量)来选取容量适中的EEPROM,由于MSP430单片机和EEPROM工作电压范围很宽,配置板可以支持5V和3.3V系统的配置。通过我们对Altera不同型号芯片和不同电压系统的试验,我们开发的配置板完全可以在不改动原有电路的基础上对Altera的配置器件进行无缝替代。目前,已有很多人使用过我们的配置板,对于不同型号的芯片和不同电压的系统都达到了成功配置。■
参考文献:
1. ALTERA Digital Library 2000 Version 6.
2. MSP430系列FLASH型超低功耗16位单片机 北京航天航空大学出版社 胡大可.
图1 PS方式配置时序图
图2 配置单个器件
图3 配置多个器件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)