基于并口的FLASH存储器在线编程方法技术

技术编号:3080781 阅读:301 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种嵌入式系统应用领域的基于并口的FLASH存储器在线编程方法,所述方法基于专用并口管脚定义建立的数据通信协议,通过并口发送数据,利用异步FIFO接收从PC端传来的数据,并在状态机的控制下,经过格式转化写入FLASH存储器,并对数据进行校验。本发明专利技术具有编程速度快且编程速度可调、可以在线任意修改编程内容、不需要CPU参与工作、可自匹配型号选择适用范围广的特点,特别适用于嵌入式系统的开发阶段。

【技术实现步骤摘要】

本专利技术涉及一种嵌入式系统应用领域的在线编程方法,尤其涉及一种适用于 嵌入式系统的基于并口的FLASH存储器在线编程方法
技术介绍
随着大规模集成电路和半导体技术的飞速发展,嵌入式系统的出现和发展引 发了微电子领域的巨大变革,并已经成为IC设计的主流和趋势。其中,MIPS或 者ARM等不同架构的内核作为目前嵌入式系统的主流处理器而被广泛使用。在嵌 入式系统应用中,往往需要一块或者多块存储器来存放一些必要的自举程序、固 定功能模块以及常用的数据表格等。为了实现和完成这一功能,基于容量和实际 应用等需求的考虑,现在较多采用片外FLASH存储器来取代原来的片内ROM存储 器。目前,对FLASH存储器的编程大多采用专用的编程器进行离线编程,但这种 离线编程方法的缺点非常明显即编程麻烦,它不能对FLASH的内容进行任意的 在线修改。因此也开发了一些适用于FLASH存储器的在线编程的方法,常用的 FLASH存储器的在线编程方法,这些方法包括通过CPU协助进行的系统编程 (ISP);利用诸如在板测试ICT仿真器等等其它设备进行FLASH存储器的协助编 程;通过诸如JTAG或者串口等一些标准接口访问FLASH存储器进行配置编程。 通过CPU协助完成系统编程的方法简单适用,但要求系统中必须有成熟的CPU器 件;釆用仿真器的方法则需要额外购买仿真器,增加了开发成本;JTAG方法是 当前应用较为广泛的一种方法,但是要求FLASH存储器件和JTAG加载口之间的 所有器件都支持边界扫描协议。经对现有技术的文献检索发现,中国专利申请号为02124004.3,专利名称 为基于边界扫描技术的FLASH器件在线编程方法,该专利披露了一种基于 JTAG的配置编程方法,其核心思想是构造一个大的非边界扫描逻辑簇,包含了 边界扫描器件和非边界扫描器件,并忽略非边界扫描器件的影响,直接建立FLASH器件和边界扫描端口的连接关系。从而解决了边界扫描器件和FLASH器件之间存 在的非边界扫描簇的问题。但该方法有可能存在着下列问题难以应用于处理器 设计的初级阶段;需要JTAG加载器的支持完成数据格式的转换;需要熟悉和掌 握板上的硬件环境来构造完整的JTAG菊花链;无法调节FLASH存储器的编程速 度。显然,这种技术在实际应用中要求较高,使用较为麻烦。
技术实现思路
本专利技术针对上述技术的不足和缺点,提出了一种基于并口的FLASH存储器在 线编程方法,该方法具有编程速度快且编程速度可调、可以在线任意修改编程内 容、不需要CPU参与工作、可自匹配型号选择适用范围广的特点,特别适用于嵌 入式系统的开发阶段。本专利技术是通过以下技术方案实现的本专利技术所涉及的基于并口的FLASH存储器在线编程方法,基于专用并口管脚 定义建立的数据通信协议,通过并口发送数据,利用异步FIFO接收从PC端传来 的数据,并在状态机的控制下,经过格式转化写入FLASH存储器,并进行数据校 验。本专利技术上述方法包括三步骤,即基于PC通用并口的数据发送和应用于缓冲 接口部分和目标器件的数据接收,以及为保证数据准确性进行的数据校验,其中 所述基于PC通用并口的数据发送步骤包括基于在线编程FLASH专用管脚的定义,建立新的并口收发通信协议; 访问PC并口的通用寄存器,获取并口信号的状态;以及, 响应并口信号状态,自适应速度调整,适时将本地文件所读取到的数据写入 到通用并口的数据寄存器中,并以8位宽的基本格式发送;所述应用于缓冲接口部分和目标器件的数据接收步骤包括响应数据流程的状态机制,自适应调整接受目标板上的时钟,并采用异步FIFO作为高速数据的缓冲,实时接收并口传送来的数据;以及,FLASH存储器的自匹配型号检测,实现数据格式的基本转换,将转换后的数 据写入所需编程的目标器件,即FLASH存储器;所述数据校验步骤包括将FLASH存储器中的数据读回到PC机;以及,将读回的数据与PC本地数据进行比对,纠正错误数据。本专利技术的目的是利用PC并口实现FLASH存储器的在线编程功能,由此需要 确定通用并口管脚的定义。本专利技术可采用等于或大于25针的通用并口作为PC并 口来实现,并确定并口管脚的各自定义,用以满足配置FLASH存储器、检测FLASH 存储器状态以及数据收发编程的功能需要。专用于PC并口在线编程FLASH存储器的并口管脚定义包括数据收发管脚,用于实现PC并口和接收目标器件(即,FLASH存储器)之 间交换数据的链接作用;本专利技术中,并口发送数据主要用在对FLASH编程的过程 中,而接收数据则用于读取FLASH中的数据进行数据校验的过程中;发送数据采 用8bit宽度形式并行方式,而接收数据受限于管脚的数量,采用2bit并行的方 式;状态检测管脚,用于PC端检测目标板的状态;在线编程系统检测当前的操 作是否己经执行完毕,可进入下一操作,对应的检测信号为BUSY;为了实现高 速数据缓冲,避免数据覆盖或者丢失,系统采用了两个异步的FIFO分别用于读 和写FLASH的过程中;异步FIFO是否为满(FULL)或者空(EMPTY),这两个信号是 选择数据发送的时机,保证数据能够正确地被FIFO接收或从FIFO读取的依据;命令控制管脚,用于PC端将操作命令传送给目标板,使之执行相应的操作; 命令控制管脚包括PC端并口收发数据的控制时钟信号管脚ppCLK,整个系统的 复位信号管脚RESET,以及系统操作命令的选择信号管脚CMD。系统运行的时候, 需要选择当前进行的操作,根据操作类型的数量确定控制信号的长度;对FLASH 在线编程的系统至少要包含读取、写入、擦除、校验等四种操作,需要至少2bit 数据进行标识,因此本专利技术定义CMD[l. . O]用来选择操作命令。具体的管脚定义如下表:管脚信号流向管脚定义管脚定义功能说明引脚InputWDATAO-7并口发送数据2-9I叩utppCLK并口处理数据时钟1InputRESET复位信号14InputCMDO操作选择命令16InputCMD1178<table>table see original document page 9</column></row><table>本专利技术基于PC通用并口的发送步骤主要基于在线编程专用并口管脚的定义 建立通信协议,并通过不断调整卯CLK的频率来实现自适应速度调整,从而将数 据正确地发送给接收端。基于预先定义的在线编程专用并口管脚,建立PC并口和目标板之间的数据 通信协议,将数据从本地经过PC并口送到接收端。具体的数据通信协议包含了 数据发送协议和数据接收协议,数据发送协议用于FLASH存储器的数据在线编程 过程中,数据接收协议用于FLASH存储器的内容读取过程中。在线编程系统复位 之后,根据CMD控制信号判断当前处于何种操作状态。数据接收协议中,操作命 令为读,系统通过检测BUSY管脚,来确定当前系统处于等待状态还是可以执行 下一步的操作。当BUSY信号为低时,系统检测相关FIFO的状态是否为空。如果 FIFO为空,则空转等待,直到FIFO变为非空状态,然后读取2bit数据到并口 的数据寄存器当中,相应的数据地址加l,直到读到末地址为止。数据发送协议 中,操作命令为写,系统通过检本文档来自技高网
...

【技术保护点】
一种基于并口的FLASH存储器在线编程方法,其特征在于,基于专用并口管脚定义建立的数据通信协议,通过并口发送数据,利用异步FIFO接收从PC端传来的数据,并在状态机的控制下,经过格式转化写入FLASH存储器,并进行数据校验。

【技术特征摘要】
1、一种基于并口的FLASH存储器在线编程方法,其特征在于,基于专用并口管脚定义建立的数据通信协议,通过并口发送数据,利用异步FIFO接收从PC端传来的数据,并在状态机的控制下,经过格式转化写入FLASH存储器,并进行数据校验。2、 根据权利要求l所述的基于并口的FLASH存储器在线编程方法,其特征 是,包括三个步骤,即基于PC通用并口的数据发送,应用于缓冲接口部分和目 标器件的数据接收,以及数据校验,其中所述基于PC通用并口的数据发送步骤包括基于在线编程FLASH专用管脚定义,建立新的并口收发通信协议;访问PC并口的通用寄存器,获取并口信号的状态;和,响应并口信号状态,自适应速度调整,适时将本地文件所读取到的数据写入 到通用并口的数据寄存器中,并以8位宽的基本格式发送;所述应用于缓冲接口部分和目标器件的数据接收步骤包括响应数据流程的状态机制,自适应调整接受目标板上的时钟,并采用异步 FIFO作为高速数据的缓冲,实时接收并口传送来的数据;和,FLASH型号的自匹配检测,完成数据格式的基本转换,将转换后的数据写入 所需编程的目标器件,即FLASH存储器;所述数据校验步骤包括将FLASH存储器中的数据读回到PC机;和,将读回的数据与PC本地数据进行比对,纠正错误数据。3、 根据权利要求2所述的基于并口的FLASH存储器在线编程方法,其特征 是,所述基于在线编程FLASH专用管脚定义包括数据收发管脚,用于实现PC并口和接收目标器件之间交换数据的链接作用, 并口发送数据主要用在对FLASH存储器进行在线编程的过程中,而接收数据则用 于读取FLASH中的数据进行数据校验的过程中,发送数据采用8bit宽度形式并 行方式,接收数据采用2bit并行的方式;状态检测管脚,用于PC端检测目标板的状态,在线编程系统检测当前的操作是否已经执行完毕,可进入下一操作,对应的检测信号为BUSY,系统采用两 个异步的FIFO分别用于读和写FLASH的过程中,异步FIFO是否为满或者空,这 两个信号是选择数据发送的时机,保证数据能够正确地被FIFO接收或从FIFO读 取的依据;命令控制管脚,用于PC端将操作命令传送给目标板,使之执行相应的操作; 命令控制管脚包括PC端括并口收发数据的控制时钟信号管脚ppCLK,整个系统 的复位信号管脚RESET,以及系统操作命令的选择信号管脚CMD,系统运行的时 候,需要选择当前进行的操作,根据操作类型的数量确定控制信号的长度,对 FLASH在线编程的系统至少要包含读取、写入、擦除、校验四种操作,需要至少 2bit数据进行标识,定义CMD[l.. O]用来选择操作命令。4、 根据权利要求2所述的基于并口的FLASH存储器在线编程方法,其特征 是,所述基于PC通用并口的数据发送步骤进一步包括基于在线编程专用并口 管脚的定义建立PC并口和目标板之间的数据通信协议,将数据从本地经过PC并 口送到接收端,所述数据通信协议包含数据发送协议和数据接收协议,其中,所 述数据发送协议用于FLASH存储器的在线编程过程,所述数据接收协议用于读取 FLASH存储器内容的过程,在线编程系统复位之后,根据CMD控制信号判断当前处于何种操作状态。5、 根据权利要求4所述的基于并口的FLASH存储器在线编程方法,其特征 是,所述数据接收协议中,操作命令为读,系统通过检测BUSY管脚,来确定当 前系统处于等待状态还是可执行下一步的操作,当BUSY信号为低时,系统检测 相关FIFO的状态是否为空,如果FIFO为空,则空转等待,直到FIFO变为非空 状态,然后读取2bit数据到并口的数据寄存器当中,相应的数据地址加1,直 到读到末地址为止;所述数据发送协议中,操作命令为写,系统通过检测BUSY管脚,来确定当 前系统处于等待状态还是可执行下一步的操作,当BUSY信号为低时,系统检测 相关FIFO的状态是否为满,如果FIFO为满,则空转等待,直到数据从FIFO中 取走、FIFO变为非满状态,然后从并口的数据寄存器中读取8bi...

【专利技术属性】
技术研发人员:胡剑凌龙沪强孙雁飞陈颖琪孙鸣乐
申请(专利权)人:上海交通大学
类型:发明
国别省市:31[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1