可编程逻辑器材(FPGA、CPLD等)广泛用于现代电子规划中,在一个体系中往往会用1片以上的可编程逻辑器材。作为最大的供货商之一,Xilinx公司的器材获得了广泛的运用。依据查找表技能的FPGA在运用时需求外置一个非易失性存储器来存储装备数据。怎么便利灵敏地对一个体系中多片FPGA的装备数据进行晋级是本文评论的问题。
1 体系概述
Xilinx的Platform Flash PROM包含XCFxS和XCFxP系列,它们都是带JTAG接口的PROM,都支撑JTAG ISP Programming,本文首要以XCF-01S为例。DS89C450型单片机是一款超高速的高性能单片机,其明显特点是速度快,一个机器周期只需求一个时钟周期;经过使能,能够激活其内部的1 KB数据存储器,来作为数据缓存;一起它具有64KB的内部程序存储器,支撑ISP、IAP。
本规划首要完结的功用是:
①DS89C450的在运用编程(IAP)。经过运用IAP,单片机用户代码的更新和修正将非常便利。
②使能DS89C450内部1 KB数据存储器,在对Platform Flash PROM编程时,作为数据缓存,这样将无需在片外扩展数据存储器,然后减小了电路板面积,一起进步了拜访速度,节约本钱。
③用DS89C450的P1口的4根线模仿JTAG的时序逻辑,完结与Platform Flash PROM的通讯;余下的4根线用来结构片选逻辑,将整个电路规划在背板上,将串口引出到设备面板来与上位机通讯。
④选用汇编语言开发,使iMPACT下载和单片机下载互不抵触,便利完结插板式机箱结构。
该规划在设备调试、长途保护、功用扩展和修正等方面将具有很高的灵敏性,体系示意图如图1所示。
2 DS89C450 IAP的完结
DS89C450内部集成了64 KB的Flash程序存储器,64 KB Flash分为2部分,低32 KB区(地址规模0000H~7FFFH)和高32 KB区(地址规模8000H~FFFFH)。只要高32 KB区才能够由IAP程序拜访,这个空间将寄存用户代码。DS89C450内部有一个存储器办理单元(MMU),它实际上便是一个状况机,独立于处理器中心而存在,只需向相应的特别功用寄存器中写入指令、地址、数据等,将发动MMU,完结对高32 KB区的擦除、编程、校验以及体系复位。而在低32 KB区存的是IAP程序,IAP程序代码是经过烧录器烧写进去的。
IAP程序将经过串口和上位机通讯,在体系上电后,上位机宣布是否要更新高32 KB区代码的指令,若不更新,则IAP程序当即跳转至8000H处取指令,履行高32 KB区的用户代码;若上位机宣布了更新高32KB区代码的指令,IAP程序将进入作业状况,它将首要擦除高32 KB区,然后预备接纳新的用户代码(即对Platform Flash PROM操作的代码),收到新代码数据之后,将其写入高32 KB区;新代码文件悉数写入之后,由上位机宣布校验指令,IAP程序将高32 KB区按字节读出,并计算出累加和,作为校验和回送上位机。
上述一切操作都是经过读写2个特别功用寄存器来完结的,这2个寄存器是FCNTL(地址:D5H)和FDATA(地址:D6H),图2给出了编程的流程。
3 DS89C450片上1 KB数据存储器的运用
无论是在IAP程序更新高32 KB区的用户代码时,仍是在改写Platform Flash PROM内的装备数据时,在DS89C450和上位机之间都会有很多的数据传递。DS89C450内部集成了1 KB的数据存储器,它将用作数据的缓存,因而不需求再扩展外部数据存储器。一起,选用汇编语言开发,将有用进步资源的利用率。这1 KB数据存储器在默许情况下是不可用的,需求设置相应的特别功用寄存器位来激活。将DME0位(PMR.0)置1激活它,激活之后选用MOVX指令拜访,比较拜访外部扩展的数据存储器速度更快。
4 DS89C450与Xilinx Platform Flash PROM
结合Xilinx的器材,先扼要介绍JTFAG接口的作业原理。
JTAG又称为鸿沟扫描(boundary scan),是契合IEEE STD 1149.1的通讯规范,它含有一个TAP操控器,也便是一个状况机。一切的指令、数据的输入以及数据的输出都是在状况机的操控下完结的,如图3所示。
JTAG接口一般用到了下面4根线:
TMS——形式挑选输入,在TCK的上升沿送入TAP操控器,用于状况的转化;
TDI——输入引脚,指令和数据经过它在TCK的上升沿送入TAP操控器;
TDO——输出引脚,数据在TCK的下降沿由此输出;
TCK——输入时钟,为TAP操控器的输入和输出供给时序操控。
TAP操控器含有1个指令寄存器和若干数据寄存器(数据扫描链),关于Xilinx的可编程逻辑器材,其指令寄存器一般为8位。TAP操控器的作业流程是,经过TMS引脚,使状况机依照图3所示的转化图处于某一状况下,送入特定的指令,TAP操控器对指令进行译码,译码成果将发生相关动作,例如挑选一条数据扫描链预备接纳数据,或捕获功用引脚信号到数据寄存器等。
本规划中,硬件衔接图如图4所示,每个JTAG接口都与一片74AHCT245相连,DS89C450的P1.0、P1.1、P1.2、P1.3别离对应TMS、TD-I、TDO、TCK的功用;而P1.4、P1.5、P1.6、P1.7经过译码器74HC138结构片选逻辑。当P1.7为低电平时,译码器74HC138一切的输出引脚/Y0~/Y7均为高电平,一切74AHCT245的/0E脚均为高,因而,一切的JTAG接口均未选中,这时,它们都能够经过Xilinx Impact软件进行操作。这个状况作为体系上电之后的默许状况。图4作为示意图,只画出了2个JTAG接口,而最多能够衔接8个JTAG接口。
当需求对某个JTAG衔接的Platform Flash PROM编程时,上位机经过串口向DS89C450宣布指令,DS89C450收到正确的指令之后,翻开译码器的G1门,对8个JTAG接口进行扫描,将扫描到的IDCODE上报上位机,空的JTAG接口将扫描到全“1”码;然后,上位机送出需更新代码的板卡地址,DS89C450依据这个地址挑选指定的JTAG接口(即挑选了需求更新代码的PlatformFlash PROM),主动晋级也就开端了。晋级完毕,封闭译码器的G1门,回到默许状况。
一般情况下,详细到某一块板卡,其上的JTAG插针,是将Platform Flash PROM的JTAG和FPGA的JTAG串联起来的菊花链结构。例如,插针的TDI→(TDI,TDO)→(TDI,TDO)→插针的TDO,用括号内的表明XCF01S或FPGA。因而,在图4中的JTAG接口指的是JTAG插针,而非某个详细器材的JTAG口。依据这一点,DS89C450要完结对Platform Flash PROM的操作,需求将菊花链中的FPGA旁路(bypass)。
要对Platform Flash PROM的内容进行更新,上位机需将新文件(bin格局)依照必定长度的字节数分批次送给DS89C450,DS89C450将本次收到的定长数据写入Platform Flash PROM,写完之后,预备接纳下一帧,依此往复,直到将新文件处理完。
关于XCF01S,其扇区巨细为256字节,下面以每次传输256个字节为例,图5给出了操作Platform Flash PROM的指令及编程流程。表1为操作Platform FlashPROM的指令。
结语
本规划的长处是低本钱、高性能、高灵敏性。低本钱体现在硬件上,用到的器材少,节约电路板空间;DS89C450是一款高性能的单片机,速度快,作业安稳;高灵敏性体现在2个更新——一是可经过IAP程序更新DS89C450内部高32 KB区的用户程序,二是可经过DS89CA50内部高32 KB区的用户程序来更新Platform Flash PROM内的数据。一起,多片Platform Flash PROM的更新完结。这样,整个体系的更新保护将非常便利。