并行EEPROM编程器的设计与实现

时间:2022-10-26 05:40:54

并行EEPROM编程器的设计与实现

摘要:通过对并行EEPROM写指令时序的介绍分析以及RS-232接口的应用,并行EEPROM编程器的设计在FPGA中得以实现,该设计具有硬件电路简单可靠,软件设计易于实现,编程操作方便的优点,并具有通用推广型 。

关键词:EEPROM;FPGA;RS-232;VHDL

中图分类号:TP331.2文献标识码:A 文章编号:1009-3044(2010)07-1621-02

The Design and Implementation of Parallel EEPROM Programmer

ZHANG Jie

(School of Optoelectronic Information, UESTC, Chengdu 610054, China)

Abstract: Through the introduction and analysis of program instruction cycle of parallel EEPROM and the application of RS-232 interface, the design of parallel EEPROM programmer is implemented in FPGA, which is simple and credible in hardware circuit, easy to implement in software design, convenient to program, and to be popularized.

Key words: EEPROM; FPGA; RS-232; VHDL

EEPROM(Electrically Erasable Programmable Read Only Memory)作为电可擦除存贮器具有可多次擦写且掉电不掉数据的巨大优势,很多硬件系统都需要EEPROM来存放一些关键的硬件数据或者配置信息。例如事先在EEPROM定的地址存入几百上千数据以供后续处理调用,但是由于需要存入的数据数量太多且会因为其他模块的参数调整进行修改,所以需要烧写和修改EEPROM数据时操作非常繁琐且效率极低。

本文所采用的方法操作方便明了,利用串口调试工具软件控制电脑的RS-232串口发送含有待烧写数据信息的TXT文档便可以一次性完成对EEPROM的编程,效率大大提高。整个方案的系统框图如图1。

1 RS-232接口

RS-232是美国电子工业协会(EIA)代表推荐(Recommend Standard)的一种标识为232接口标准。例如,目前一般PC机的COM口就是RS-232接口。本文也是采用PC机的COM口。

RS-232接口的电平标准是以正负电压来表示逻辑状态,正电压(+3V~+15V)表示信号有效,负电压(-15V~-3V)表示信号无效,此外的电压范围均无意义。本文实现的硬件平台里采用的是Xilinx的FPGA XC3S100E,在RS-232与TTL电平之间需要加上232(MAX3232)电平转换芯片(MAX3232)实现电平和逻辑关系的变换。

通过串口以一定的波特率来发送的数据结构是以8bit为数据长度,在每个字节的数据之间会插入一个停止位,所以在通过MAX3232转换成TTL电平进入FPGA后,需要将这个停止位从数据帧中去掉。另外,FPGA处理串口数据时要保持和RS-232设置的波特率一致,如果要改变波特率,那么在FPGA内部可以根据外部的晶振输入时钟和内部分频处理来实现(本文采用的波特率为38400)。一般选取可以通过整数倍分频来实现RS-232标准波特率的晶振频率,比如18.432MHz或者19.2MHz等。

2 协议处理模块

在FPGA处理与EEPROM时序之前,有一个关键问题就是协议处理的问题。本文采用的协议是一种自定义的帧协议(每个字节均为十六进制)。

在帧结构中的头尾字节'5A'作为帧头和帧尾;而第二和第三字节'55 51'作为控制字来确保接收到的协议不易重复不易掉包。那么第四和第五字节作为即将进行烧写操作所对应EEPROM中的物理地址。下面是整个协议处理流程,如图3所示。

在FPGA内部处理经RS-232发送的协议数据后,协议数据进入FPGA内部的一个数据缓冲区等待处理。当数据缓冲区连续检测到帧头'5A'和控制字'55 51'后,记下帧头标志进入等待帧尾的状态。如果再次出现'5A',就暂且记下作为帧尾到来的标志。之前记下帧头标志时开始对此后收到的数据字节进行计数,当帧尾的标志到达且字节计数器为3时就认定此帧为有效数据帧,将数据帧中的有效地址信息和数据信息提取后输出给时序控制端口,协议处理完毕。

4 写时序控制模块

4.1 EEPROM写时序

本文采用的AT28BV64B为ATMEL 公司的高性能EEPROM,+3.3V供电,具有高可靠性的CMOS工艺,10万个周期耐久度,10年数据保持力,64K(8KBytes×8bits) 存储空间。AT28BV64B的写时序可以选择两种控制模式:1./WE写使能信号控制;2./CE片选信号控制。在进行写操作时,由于两种控制时序只是/WE和/CE先后顺序上的区别,这里只给出/WE控制信号的时序图4(/OE是输出使能信号)。

从图4可以看出,AT28BV64B的写时序非常简单,用FPGA很容易实现,具体实现在下面的写时序控制模块中介绍。

4.2 写时序控制模块的实现

FPGA对时序的控制是非常精准和方便的。本模块中,13位的地址信息以及8位的数据信息都从协议处理模块中解析得到,在每一个烧写时序进行时,都会将地址信息和数据信息包含在时序控制中,EEPROM获得相应的时序命令时就会执行烧写操作,特定的地址中就会存入特定的数据。整个写时序操作模块由VHDL语言完成,再由ISE软件编译环境下生成Symbol,最后在顶层原路图中调用Symbol(见图5)。

PARSE_ADDR和PARSE_DATA分别是协议中解析的13位地址和8位数据,由协议处理模块处理传输到本模块;EEPROM_ADDR和EEPROM_DATA则分别是协议处理模块传输来由本模块转送至EEPROM地址和数据端口的。

4.3 EEPROM的编程操作

硬件平台和软件设计都完成后,就需要准备待编程的TXT文档了。TXT文档的格式很简单,只需按协议帧的格式单独放在一行便于查阅和修改即可,如图6所示。

接下来就是设置计算机串口,波特率为38400,8位数据,停止位1,无起始位和流控制,打开串口后在‘HEX 发送’处打‘√’,最后选择待编程TXT文档的路径就可以开始EEPROM的编程了(见图7)。

这样点击‘发送文件’后,在示波器上可以测量到EEPROM芯片的/WE管脚有连续的拉低脉冲信号,这表明EEPROM按照TXT文档中的信息在进行不断的编程操作。

5 结论

采用FPGA设计技术对计算机串口发送的数据进行解析处理,取出需要的地址信息和数据信息,再配以EEPROM严格的写时序就可以完全模拟EEPROM编程器的功能。另外,通过计算机串口发送TXT文档的形式使得编程方法变得非常简单和方便,且可以进行大量的数据编程工作。本设计还可以配置自己编写的应用程序来方便生成TXT文档和修改文档中的数据,那样会使得本方法更加方便。

本文的设计方法还可以通过修改写时序和协议帧结构来推广至任何一款EEPROM(包括串行EEPROM),成为通用型的EEPROM编程器,可以不必再为是否要为特定的一款EEPROM选配专用编程器而大费周章。

参考文献:

[1] 孙洪军,孙秀云,王连军.串行EEPROM读写器的设计[J].计算机应用研究,1997(1).

[2] 高强,赫荣杰,李树良.串行E2PROM的读写应用[J].微处理机,2004(4):16-17.

上一篇:高端电梯VIP功能模块的设计与实现 下一篇:OFDM系统中降低峰均比的PTS技术研究