一种自动校验的编程烧写方法
【技术领域】
[0001] 本发明涉及一种可编程电路的烧写校验方法,具体涉及一种自动校验的编程烧写 方法。
【背景技术】
[0002] 现有的otp (-次性可编程)、flash等可编程的MCU电路,在程序开发时,一般会 有配套的烧写器,用于flash或otp的编程烧写。程序烧录进flash或otp后,为了确保程 序烧录正确,一般还会通过烧写器将烧录的程序回读校验。如附图1所示,为了节省编程烧 写引脚,烧写器采用四线制烧录(电源、地、时钟、双向数据口),烧写器进行数据烧写及数据 回读时,都是通过一根数据线来实现的,其数据烧写和数据回读过程是分时的,如果烧写的 数据需要全部回读出来,回读过程就需要花费比较长的时间。如附图2所示,是现有烧写器 和MCU之间的烧写和校验回读时序图,校验回读过程中,数据是采用串行移位方式,从MCU 的可编程存储器里面读出的数据给烧写器校验,一般烧写了多少个数据,就需要串行读出 多少个数据来校验,已确保写入的数据都得到正确的编程,因此在编程数据回读校验时,编 程容量越大,串行回读校验所花费的时间也就越多。
[0003] 采用上述的方式进行烧写校验,MCU电路内部可编程存储器和MCU电路接口设计 如附图3所示,MCU电路包括编程控制器、可编程存储器、数据寄存器和地址寄存器。该方 式的校验原理是:(1)编程控制器接收烧写器发出的时钟和数据,可以使电路进入编程模 式或读出校验模式;(2)在编程模式下,编程控制器接收烧写器发出的时钟和数据(包括地 址信息和编程数据),地址信息在第三时钟(clk3)的控制下通过地址输入输出端口(aio) 串行移入地址寄存器,决定编程的地址;编程数据在第二时钟(clk2)的控制下通过串行数 据输入输出端口(dio)串行移入数据寄存器;(3)完成数据串并转换后,烧写器打入烧写命 令,编程控制器发出编程指令(prog)和第一时钟(clkl),数据寄存器的内容写入到地址寄 存器指定的存储空间,实现数据的烧录;(4)完成数据烧录后,为了校验烧录的正确性,烧 写器再打入校验命令,编程控制器使电路进入校验模式;(5)在校验模式下,编程控制器接 收烧写器发出的地址信息,先指定要校验存储空间的地址,接着发出读取信号(read)和第 一时钟(clkl),将指定地址空间的内容读出到数据寄存器,再通过第二时钟(clk2),将数 据寄存器的内容串行移出,通过数据端口送给烧写器校验。
[0004] 现有的烧写校验方法存在的缺点是:写入的数据越多,串行读出的时间越长,这个 缺点最终会导致产品的批量编程的生产效率低下。
【发明内容】
[0005] 本发明的目的是克服现有技术的缺陷,提供一种自动校验的编程烧写方法,该方 法在数据烧写的过程中就能够实现对烧写成功的数据进行自动校验,节省校验回读时间。
[0006] 为了解决上述技术问题,本发明所采用的技术方案是:一种自动校验的编程烧写 方法,基于可编程的MCU电路,该电路包括编程控制器、可编程存储器、数据寄存器和地址 寄存器,其特征在于,所述的烧写方法的实现还基于MCU电路中增加了累加校验单元,所述 的累加校验单元分别与可编程存储器、数据寄存器和编程控制器连接,该烧写方法具体包 括如下步骤:(1)所述编程控制器接收配套的烧写器发出的时钟信号和数据信号,数据信 号中包括地址信息和编程数据;(2)所述编程控制器中的地址信息在第三时钟的控制下通 过地址输入输出总线串行移入地址寄存器,存储编程的地址,编程数据在第二时钟的控制 下通过数据输入输出总线串行移入数据存储器;(3)在完成数据串并转换后,烧写器打入 烧写命令,编程控制器发出编程指令和第一时钟,数据寄存器的内容写入到地址寄存器指 定的存储空间,实现数据的烧录,在完成所有数据烧录后,烧写器发出一个校验值,数据寄 存器将烧写器送出的校验值完成串并转换后送入累加校验单元;(4)所述可编程存储器进 行对数据的编程存储,并将存储的数据发送到累加校验单元,所述累加校验单元对编程后 的可编程存储器读取的数据进行累加校验,得到一个累加值;(5)通过所述累加校验单元 比较累加值和烧写器送出的校验值,若校验值和累加值一致,则得到一个正确标志信号,并 将正确标志信号通过编程控制器发送给烧写器;若校验值和累加值不一致,则得到一个错 误标记信号,并将错误标志信号通过编程控制器发送给烧写器,烧写器根据返回的标志信 号来判断写入的数据是否正确,如果接收到正确标志信号,则判断数据烧录正确,如果接收 到错误标志信号,则判断数据烧录失效。
[0007] 优选的:上述步骤(4)中的累加校验单元对可编程存储器中的数据进行读取累加 校验的方式有两种。
[0008] 第一种方式是进行当前地址编程后即读出给累加校验单元进行累加计算累加值; 当字节或字编程时间加上读取时间小于等于数据串行移位时间时,采用的是此种方式,数 据的移位、编程、读取、地址递增采用流水线方式进行,在进行当前数据移位时,编程控制器 进行对上一次移位数据进行编程和读取动作,累加校验单元执行对当前读取数据进行累加 计算,累加计算后当前地址加1,执行下一个数据的串行移位,并将上次移位数据写入到数 据缓存中。
[0009] 第二种方式是在所有地址编程结束后,顺序读取所有地址内容给累加校验单元进 行累加计算累加值;当字节或字编程时间加上读取时间大于数据串行移位时间时,采用的 是这种方式,编程控制器先对电路按地址顺序进行编程,编程结束后再按地址顺序将可编 程存储器的内容读取进行累加,最后得到一个累加值。
[0010] 本发明的有益效果是:在现有的MCU电路中增加了累加校验单元,能够实现自动 校验功能,校验结束后送出少量的校验数据(即正确标志信号或错误标志信号)给烧写器做 校验确认即可,可以节省回读校验时间,能够提高产品批量编程生产效率。
【附图说明】
[0011] 图1,现有技术四线制烧写器与MCU电路的连接示意图; 图2,现有技术烧写器和MCU之间的烧写和校验回读时序图; 图3,现有技术MCU电路内部可编程存储器和MCU电路接口连接图; 图4,本发明MCU电路内部可编程存储器和MCU电路接口连接图; 图5,本发明实现实施例一的时序图; 图6,本发明实现实施例二的时序图。
【具体实施方式】
[0012] 下面结合附图4-6来说明本发明的工作原理以及实现方式。
[0013] 如图4所示,是本发明MCU电路内部可编程存储器和MCU电路接口连接图,该电路 图中,包括可编程存储器、数据寄存器、地址寄存器(包括地址递增)、累加校验单元、编程控 制器。所述的编程控制器通过时钟和数据端口连接配套的烧写器;所述的编程控制器通过 第二时钟(clk2)、串行数据输入输出端口(dio)、数据传输方向(dir)端口分别与数据寄存 器的时钟输入端口、串行数据输入输出端口、数据传输方向输入端口连接,数据寄存器的并 行总线输入/输出端连接可编程存储器的数据总线(Data_bus);所述的编程控制器通过第 三时钟(clk3)、地址输入输出端口(aio)分别连接地址寄存器的时钟输入端、地址输入端 口,地址寄存器的地址总线输出端与可编程存储器的地址总线输入端连接;所述累加校验 单元的输入端连接可编程存储器,其输出端连接编程控制器,所述数据寄存器也与累加校 验单元连接。该电路的工作原理是:所述编程控制器接收配套的烧写器发出时钟信号、地址 信息和