一种采用I<sup>2</sup>C总线快速下载和更新固件的方法

文档序号:6330968阅读:357来源:国知局
专利名称:一种采用I<sup>2</sup>C总线快速下载和更新固件的方法
技术领域
本发明涉及集成电路中固件更新的方法,尤其涉及一种采用I2C总线快速下载和更新固件的方法。
背景技术
随着集成电路技术的发展,高集成化和固件化的系统集成设计SoC逐渐进入各种设计应用领域。在设计一个复杂的SoC芯片时,芯片软件的测试及调试通常是难点。有时为了不影响整个项目的进展,我们会采取通过软件升级的方法来达到目的。另外,由于应用环境的多样化,我们也经常需要升级SoC芯片内的固件,此时需要通过固件下载来实现。固件下载的方法很多,不同的下载模式适用于不同的应用环境。对于软件规模比较小,或软件改动不大的环境,采用1 快速下载的方式比较适合。基于1 总线的特性,采用何种下载及更新固件的方法,既能保证下载速度又能提高数据传输效率成为本发明要解决的技术问题。

发明内容
本发明目的提供一种采用1 总线快速下载和更新固件的方法,适用于软件规模小或软件改动不大的应用环境中。根据1 总线的特性,减小占用寄存器的空间,简化逻辑, 从而提升下载速度,提高传输效率。一种采用1 总线快速下载和更新固件的方法,包含以下内容(1)在传输固件数据前配置好1 总线程序存储器首地址;(2)分别定义固件模式寄存器、程序地址寄存器和固件数据寄存器;(3)固件连续读/写模式中,当寄存器地址为固件数据寄存器时,寄存器地址不会自动加一,保持对固件数据寄存器地址持续读出/写入;(4)固件连续读/写模式中,每读/写一次固件数据寄存器,程序地址寄存器自动加一;(5)通过I2C总线连续读模式,实现固件数据连续被读出,除首选地址外不需额外配置程序地址寄存器,I2C总线每读走一个字节,程序存储器即读出下一个字节至固件数据寄存器; (6)通过1 总线连续写模式,实现固件连续下载,除首选地址外,不需额外配置程序地址寄存器,I2C总线每写入一个字节,程序存储器即更新一个字节;(7)完成连续读操作和写操作及下载更新过程。在上述步骤O)中,固件模式寄存器定义下载的模式是写入固件或读出固件;程序地址寄存器分为程序高位地址寄存器和程序低位地址寄存器,定义下载或读出程序的首地址;固件数据寄存器定义要写入或读出的程序或固件数据。I2C总线连续读/写读写模式是指符合1 总线标准的连续读/写模式。固件连续读模式是指通过1 总线连续读模式及特定的硬件设计,达到1 总线每读一个字节,即可读出一个字节的固件。固件连续写模式是指通过1 总线连续写的模式,及特定的硬件设计,达到1 总线每写一个字节,即可下载一个字节的固件。本发明支持1 总线单个读或写数据模式,以及连续读或写数据模式。1 总线每写一个字节,硬件立即下载一个字节至程序存储器;相同地,I2C总线每读完一个字节,硬件立即将下一个地址的数据准备好。通过本发明提供的内容,能有效降低占用的寄存器空间,设计逻辑简单,且实现快速读写操作和数据下载,有效提高SoC系统的数据传输效率,满足固件更新的需求。


图1采用I2C总线快速下载和更新固件的方法的示意2固件连续读模式示意3固件连续写模式示意图
具体实施例方式以下结合各附图对本发明所提出的一种采用I2C总线快速下载和更新固件的方法进行详细的描述。图1为1 总线快速下载和更新固件的方法数据流向示意图。采用1 总线的特点是芯片的管脚开销小,尤其适合于本身就需要采用1 总线配置内部寄存器的SoC芯片。在整个实施方法中,支持程序存储器首地址可配置。不需要更新或读出全部固件数据时,无须从“O”地址开始更新或读出所有数据,仅更新或读出所需部分数据即可,从而能快捷高效地达到更新或调试固件的需求。在传输固件数据之前,将程序存储器首地址配置好,在固件数据传输的过程中,程序存储器地址会自动加1。即无须每传输一个字节数据附加传输程序存储器地址信息,从而提高了传输效率。为实现固件下载需求,定义了固件模式寄存器,程序地址寄存器和固件数据寄存器,其中程序地址寄存器分为程序高位地址寄存器和程序地位地址寄存器。固件模式寄存器定义了下载的模式是读出固件还是写入固件;程序地址寄存器定义了读出或下载程序的首地址;固件数据寄存器存储了需要读出或写入的程序或固件数据。通常的1 总线连续读/写模式要求寄存器地址自动加一,我们定义的固件连续读/写模式为了快速下载固件,当寄存器地址为固件数据寄存器时,其寄存器地址不自动加一,保持对固件数据寄存器地址的持续写入。在固件连续读的模式中,为了支持固件连续写模式,每读写一次固件数据寄存器, 程序地址寄存器自动加一。通过类似于普通1 总线连续写模式,实现固件连续下载的目的。除了首地址之外,不需要额外再配置程序地址寄存器,1 总线每写入一个字节,程序存储器即更新一个字节,在1 总线频率为400KHZ的情况下,下载的速度可以达到40K字节每秒。图2为固件连续读模式示意图,假设模式寄存器地址为OxaO,高位地址寄存器的地址为Oxal,低位地址寄存器的地址为0xa2,数据寄存器的地址为0xa3,程序存储器首地址为0x00,模式寄存器为1表示读取模式。如图2中所示,固件读分为两步第一步通过1 总线连续写模式配置固件模式寄存器和程序首地址。第二步通过1 总线连续读模式连续不断地读出程序。 图3为固件连续写模式示意图,假设模式寄存器地址为OxaO,高位地址寄存器的地址为Oxal,低位地址寄存器的地址为0xa2,数据寄存器的地址为0xa3,要下载的固件首地址为0x00,模式寄存器为O表示下载模式。
权利要求
1.一种采用1 总线快速下载和更新固件的方法,其特征在于包含以下步骤(1)在传输固件数据前配置好1 总线程序存储器首地址;(2)分别定义固件模式寄存器、程序地址寄存器和固件数据寄存器;(3)固件连续读/写模式中,当寄存器地址为固件数据寄存器时,寄存器地址不会自动加一,保持对固件数据寄存器地址持续读出/写入;(4)固件连续读/写模式中,每读/写一次固件数据寄存器,程序地址寄存器自动加 (5)通过1 总线连续读模式,实现固件数据连续被读出,除首选地址外不需额外配置程序地址寄存器,I2C总线每读走一个字节,程序存储器即读出下一个字节至固件数据寄存器;(6)通过1 总线连续写模式,实现固件连续下载,除首选地址外,不需额外配置程序地址寄存器,I2C总线每写入一个字节,程序存储器即更新一个字节;(7)完成连续读操作和写操作及下载更新过程。
2.如权利要求1所述的一种采用1 总线快速下载和更新固件的方法,其特征在于所述定义固件模式寄存器是下载模式为写入固件或读出固件。
3.如权利要求1所述的一种采用1 总线快速下载和更新固件的方法,其特征在于所述定义程序地址寄存器是读出或下载程序的首地址。
4.如权利要求1所述的一种采用1 总线快速下载和更新固件的方法,其特征在于所述定义固件数据寄存器是要读出/写入的程序或是固件数据。
5.如权利要求1所述的一种采用1 总线快速下载和更新固件的方法,其特征在于支持单个读/写数据模式,以及连续读/写数据模式。
6.如权利要求1所述的一种采用I2C总线快速下载和更新固件的方法,其特征在于 I2C总线每写一个字节,硬件立即下载一个字节至程序存储器;1 总线每读完一个字节,硬件立即将下一个地址的数据准备好。
全文摘要
本发明提供一种集成电路设计中固件更新的实现方法,采用I2C总线实现快速下载和更新固件。通过在传输固件数据前配置好I2C总线程序存储器首地址,在固件数据传输的过程中,程序存储器地址自动加1,无须每传输一个字节数据附加传输程序存储器地址信息。本发明能够降低设计中寄存器的占用空间,简化设计逻辑,且可支持单个和连续数据传输,能有效地提高数据传输效率,满足应用需求。本发明非常适用于软件设计规模比较小,或软件改动不大的应用环境。
文档编号G06F9/445GK102375749SQ20101026414
公开日2012年3月14日 申请日期2010年8月24日 优先权日2010年8月24日
发明者官志勇, 李霜 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1