一种适用于OTPMemory内实现IAP功能的技术方法与流程

文档序号:12463420阅读:939来源:国知局
一种适用于OTPMemory内实现IAP功能的技术方法与流程
本发明可应用于信息存储领域中,尤其涉及一种适用于OTPMemory内实现IAP的技术方法。
背景技术
:目前,在MCU应用中,以OTPMemory作为程序载体的芯片中,OTP需要额外的外部工具实现程序烧录,烧录需要复杂的高压控制电缆以及并行通讯总线控制系统。在应用中若需要永久保存数据信息,需要在系统方案中外接EEPROM或Flash,通过外部存储器保存数据,系统成本较高,,占用集成电路板的空间大。本发明整合PumpCircuit/IAP控制/OTP写算法,实现OTPIAP功能,使OTP芯片在程序烧录,数据保存非常方便,且降低系统成本。技术实现要素:本发明提出一种适用于OTPMemory内实现IAP功能的技术方法,该方法是这样实现的:在芯片内部内建PumpCircuit、自编程OTP烧录控制寄存器,实现IAP功能;自定义通讯协议,通过串行接口(USB或UART)下发烧录指令,利用芯片内部的IAP功能完成程序烧录;在应用程序中利用IAP功能,烧录需要记录的数据;通过算法与合理的数据结构避开已经记录过的区域,实现多次记录的需求。本发明适用于OTPMemory内实现IAP功能,它包括以下步骤:S1:OTP芯片内部实现自升压,满足烧录高电压需求;OTP烧录时需要提供比正常工作电压高数倍的电压,一般为7.5V左右,本发明在芯片内部内建PumpCircuit,在无外部高压的情况下,芯片内部利用PumpCircuit自实现升压功能,以满足OTP烧录所需的高电压需求;S2:内建关联寄存器,实现IAP功能;符合OTP烧录的并行Timing接口,芯片内部硬件实现通过关联寄存器直接控制OTP烧录Timing,实现IAP功能;OTPIAPCTRL是实现IAP功能的控制核心,实现控制PumpCircuit的开关、控制内部总线实现OTP编程以及提供实现IAP编程的接口功能寄存器;芯片内建ISPmodule,提供UARTORUSBDriver,且通过自定义通讯协议,通过芯片的串行接口(USB或UART)下发烧录指令,利用芯片内部的IAP功能完成程序烧录;S3:建立合理算法和数据结构,实现烧录功能最大化;MCU基于OTP烧录的程序运行,整个OTP空间未烧录的部分可通过应用程序烧录,在应用程序中利用IAP功能,烧录需要记录的数据,以实现在应用中保存在掉电后需要记忆的数据信息;通过算法与合理的数据结构,避开已经记录过的区域,实现多次记录需求,解决OTP每个单元只能写一次无法重复写的问题。本发明具有的优点和积极效果是:整合PumpCircuit/IAP控制/OTP写算法,实现OTPIAP功能,使OTP芯片在程序烧录,数据保存非常方便,且降低系统成本。附图说明图1是OTPMemoryIAP发明实现原理框图。图2是本发明方案与传统OTP方案对比图。图3是本发明系统应用与传统OTP系统应用对比图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合图表及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明实现在OTP芯片内集成升压电路、自编程控制逻辑,实现IAP功能。由于OTP的存储单元只能实现一次数据烧录,所以在实际应用中,采取以下算法实现OTP数据记录次数最大化。当OTPSIZE为64K,IAP实现时数据编程顺序:S1:从最后1Bytes地址(0FFFFH)读数据判断是否为0FFH(OTP未烧录过代码的区域值),地址依次减1,直到发现不为0FF的数据地址为止;表中XX标识地址位置地址,IAP可写数据的地址为该地址+1;地址0023456789ABCDEF0000HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0010HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX……XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX……XXXXXXXXXXXXXXFFFFFFFFFFFFFFFFFFXXXHFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0HFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0HFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0HFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFS2:S1步骤确定IAP可写数据的首地址,并利用IAP功能编程要写入的数据YY,假定数据长度为LBytes;S3:在最后1Bytes插入写中止标识位ZZ(ZZ不等于0FFH);YY为IAP写入的数据,ZZ为中止标识;地址0123456789ABCDEF0000HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0010HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX……XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX……XXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYXXXHYYYYYYYYYYYYYYYYZZFFFFFFFFFFFFFFFFD0HFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0HFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0HFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFS4:如果继续有数据需要写入,跳转到S1步骤,此时ZZ位置为最后数据地址。应用程序读取IAP写入的数据Flow如下:S1:从最后1Bytes地址(0FFFFH)读数据判断是否为0FFH,地址依次减1,直到发现不为0FF的数据地址为止;S2:如果最后一个不等于0FFH的数字等于ZZ,则指示前面的数据位用户IAP写入的数据;S3:根据用户自定义的数据格式读取ZZ地址前面的数据并解析。通过上述Flow可有效的实现以OTP代替EEPROM或FlashMemory,并减少OTP只能一次性写的缺陷对实际应用的影响。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1