一种嵌入式闪存控制器 【技术领域】
本发明涉及一种嵌入式闪存,具体涉及一种用于控制嵌入式闪存编程和擦除操作的控制器。
背景技术
当前随着集成电路制造技术的发展,芯片的集成度越来越高,一方面,同一个芯片集成的功能越来越多,通过搭配不同的软件,同一个芯片可以作为不同用途,如既可以做U盘,又可以做智能卡,做U盘时程序要符合USB的协议,做智能卡时要符合智能卡的通讯协议,另一方面,产品调试,升级需要更新软件,这就要求嵌入在芯片内部的程序可以依据不同的应用进行相应的更新,现在采用的做法是芯片内部嵌入可编程的嵌入式闪存EmbFlash,通过嵌入式闪存控制器对嵌入式闪存EmbFlash内程序进行擦除和编程达到更新程序的目的,而现有嵌入式闪存控制器存在硬件复杂、可移植性差、软件复杂的不足。
【发明内容】
本发明目的是提供一种硬件简单、可移植性较强、软件操作简单的嵌入式闪存控制器。
为达到上述目的,本发明采用的技术方案是:一种嵌入式闪存控制器,包括:
配置寄存器,该配置寄存器具有第一控制段、第二控制段、控制位和标志位;第一控制段,用于配置嵌入式闪存的操作类型;第二控制段用于配置第二比较器的比较值;控制位,用于使能第一计数器;标志位,用于标识操作是否完成;
时钟控制器,用于将外部时钟转换为闪存控制信号生成电路所需的参考时钟,具有第一计数器、第二计数器、第一比较器、第二比较器;第一计数器,根据控制位设置对外部时钟信号进行八分频的计数;第一比较器,用于配合第一计数器对外部时钟进行初级降频,获得降频后的初级降频时钟;第二计数器,根据第二控制段的比较值配置相应的分频对初级降频时钟进行计数;第二比较器,根据第二控制段的比较值配合第二计数器对初级降频时钟进行次级降频,获得再次降频的参考时钟;
闪存控制信号生成电路,通过状态机使能嵌入式闪存内部相应的控制信号并控制所述控制信号的时序,所述闪存控制信号生成电路包括:
(1)时钟计数器,用于对参考时钟进行计数;
(2)时序比较器,根据时钟计数器的值和控制信号的时序参数对控制信号进行控制;
(3)闪存操作类型判断状态机,响应CPU对配置配置寄存器的第一控制段的操作,从而触发嵌入式闪存内部相应的控制信号,实现对外部操作类型的判断;
(4)闪存控制信号生成状态机,包括:
第一状态,响应第一控制段使能相应的第一控制信号、第二控制信号,并赋予时序比较器第一参考时间,同时时钟计数器开始对参考时钟进行计数;
第二状态,当时钟计数器的数值等于第一参考时间,时钟计数器清零,同时触发第二状态,该状态使能第三控制信号,并赋予时序比较器第二参考时间,同时时钟计数器开始对参考时钟进行计数;
第三状态,当时钟计数器的数值等于第二参考时间,时钟计数器清零,同时触发第三状态,该状态使能第四控制信号,并赋予时序比较器第三参考时间,同时时钟计数器开始对参考时钟进行计数;
第四状态,当时钟计数器的数值等于第三参考时间,时钟计数器清零,同时触发第四状态,该状态无效第四控制信号,并赋予时序比较器第四参考时间,同时时钟计数器开始对参考时钟进行计数;
第五状态,当时钟计数器的数值等于第四参考时间,时钟计数器清零,同时触发第五状态,该状态无效第一控制信号,并赋予时序比较器第五参考时间,同时时钟计数器开始对参考时钟进行计数;
第六状态,当时钟计数器的数值等于第五参考时间,时钟计数器清零,同时触发第六状态,该状态无效第二控制信号、第三控制信号,并赋予时序比较器第六参考时间,同时时钟计数器开始对参考时钟进行计数;
空闲状态,当时钟计数器的数值等于第六参考时间,标志位有效,同时触发空闲状态,此次操作完成。
上述技术方案中的有关内容解释如下:
1、上述方案中,所述第一计数器是3位的计数器。
2、上述方案中,第二计数器是6位的计数器。
本发明工作原理是:根据系统工作频率以及闪存操作所需的时序要求,对配置寄存器进行配置,时钟控制器根据系统工作频率以及配置寄存器的配置值,产生频率较低的参考时钟;然后配置第一控制段,写入操作类型,闪存控制信号生成电路启动,使能嵌入式闪存内部相应的控制信号并控制所述控制信号的时序操作完成,生成中断信号。
由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
1、本发明可以通过对参考时间和控制信号的控制,如可以通过简单的加减状态数和改变比较器的比较值,开发新的控制器,从而达到满足多种型号的嵌入式闪存要求和实现多种功能的目的,具有很强的可移植性。
2、本发明通过简单的配置寄存器启动硬件控制器,硬件控制器自动实现相应的功能,在硬件和软件的实现上都简单。
【附图说明】
附图1为本发明原理框图;
附图2为本发明配置寄存器设置示意图;
附图3为本发明嵌入式闪存内部控制信号操作时序图;
附图4为本发明本闪存控制信号生成电路工作流程示意图;
附图5为本发明应用工作流程图。
以上附图中,10、控制模块;11、CPU;12、中断控制器;13、嵌入式闪存;14、内部总线;101、配置寄存器;102、时钟控制器;103、闪存控制信号生成电路;201、第一控制段;202、第二控制段;203、控制位;204、标志位;501、第一状态;502、第二状态;503、第三状态;504、第四状态;505、第五状态;506、第六状态;507、空闲状态;508、闪存操作类型判断状态机;1001、第一控制信号;1002、第二控制信号;1003、第三控制信号;1004、第四控制信号;T13S、第一参考时间;T34S、第二参考时间;T4h、第三参考时间;T41h、第四参考时间;T13h、第五参考时间;Th、第六参考时间。
【具体实施方式】
下面结合附图及实施例对本发明作进一步描述:
实施例:一种嵌入式闪存控制器
一种嵌入式闪存控制器,如附图1所示,其外部包括:
CPU11,用于执行存储于内部存储器上的固件指令,完成对嵌入式闪存13的控制和管理;
内部总线14,用于传送数据信息、地址信息和控制信息;
中断控制器12,用于提供中断信号给CPU11,使CPU11执行中断程序,中断控制器12与CPU11经内部总线14双向连接;
该闪存控制器内部包括:
配置寄存器101,如附图2所示,该配置寄存器具有第一控制段201、第二控制段202、控制位203和标志位204;第一控制段201,用于配置嵌入式闪存的操作类型,由CMD0、CMD1、CMD2、CMD3、CMD4、CMD5、CMD6六个控制位,六个控制位的不同组合来决定操作类型;第二控制段202用于配置第二比较器(305)的比较值,有六位分别为DIV0、DIV1、DIV2、DIV3;DIV4、DIV5存储比较值;控制位203,为PRDIV8位,用于使能第一计数器301;标志位204,为CCIF,用于标识操作是否完成;
时钟控制器102,用于将外部时钟转换为闪存控制信号生成电路所需的参考时钟ref_clk,具有第一计数器、第二计数器、第一比较器、第二比较器;第一计数器是3位地计数器,根据控制位203设置对外部时钟信号进行八分频的计数;;第一比较器,用于配合第一计数器对外部时钟进行初级降频,获得降频后的初级降频时钟;第二计数器是6位的计数器,根据第二控制段202的比较值配置相应的分频对初级降频时钟进行计数;第二比较器,根据第二控制段的比较值配合第二计数器对初级降频时钟进行次级降频,获得再次降频的参考时钟;
闪存控制信号生成电路,通过状态机使能嵌入式闪存内部相应的控制信号并控制所述控制信号的时序,所述闪存控制信号生成电路包括:
(1)时钟计数器,用于对参考时钟ref_clk进行计数;
(2)时序比较器,根据时钟计数器的值和控制信号的时序参数对控制信号进行控制;
(3)闪存操作类型判断状态机508,响应CPU11对配置配置寄存器的第一控制段的操作,从而触发嵌入式闪存内部相应的控制信号,实现对外部操作类型的判断;
(4)闪存控制信号生成状态机,如附图3、4所示,包括:
第一状态501,响应第一控制段201使能相应的第一控制信号1001、第二控制信号1002,并赋予时序比较器第一参考时间T13S,第一参考时间既作为第一控制信号1001到第三制信号1003的建立时间,又作为第二控制信号1002到第三控制信号1003的建立时间,同时时钟计数器开始对参考时钟进行计数;
第二状态502,当时钟计数器的数值等于第一参考时间T13S,时钟计数器清零,同时触发第二状态502,该状态使能第三控制信号1003,并赋予时序比较器第二参考时间T34S,第二参考时间T34S作为第三控制信号1003到第四控制信号1004的建立时间,同时时钟计数器开始对参考时钟进行计数;
第三状态503,当时钟计数器的数值等于第二参考时间T34S,时钟计数器清零,同时触发第三状态,该状态使能第四控制信号1004,并赋予时序比较器第三参考时间T4h,第三参考时间T4h作为第四控制信号1004的保持时间,同时时钟计数器开始对参考时钟进行计数;
第四状态504,当时钟计数器的数值等于第三参考时间T4h,时钟计数器清零,同时触发第四状态504,该状态无效第四控制信号1004,并赋予时序比较器第四参考时间T41h,第四参考时间T41h作为第一控制信号1001到第四控制信号1004使能被取消时刻的保持时间;同时时钟计数器开始对参考时钟进行计数;
第五状态505,当时钟计数器的数值等于第四参考时间T41h,时钟计数器清零,同时触发第五状态505,该状态无效第一控制信号1001,并赋予时序比较器第五参考时间T13h,第五参考时间T13h作为第三控制信号1003到第一控制信号1001使能被取消时刻的保持时间;同时时钟计数器开始对参考时钟进行计数;
第六状态506,当时钟计数器的数值等于第五参考时间T13h,时钟计数器清零,同时触发第六状态506,该状态无效第二控制信号1002、第三控制信号1003,并赋予时序比较器第六参考时间Th,第六参考时间Th作为两个连续操作所需的间隔时间,同时时钟计数器开始对参考时钟ref_clk进行计数;
空闲状态507,当时钟计数器的数值等于第六参考时间Th,标志位204有效,同时触发空闲状态507,此次操作完成。
闪存控制信号生成电路,还可按以上原理扩展一个状态组2实现其它功能,例如擦除功能等。
本实施例嵌入式闪存控制器10的应用流程如附图5所示,具体过程如下:
a)配置芯片模式引脚,使系统从该芯片内ROM程序启动。ROM程序是不可更改的,ROM程序主要用于UART的配置,用于从UART口接收程序数据,并通过UART口返回接收状态。
b)复位后,ROM程序运行,配置接口寄存器,设置相应的波特率,然后等待接收主机的命令。
c)主机先发握手命令,来确认ROM程序是否准备好,握手成功后,主机按流程,发送程序数据,芯片接收程序数据,并把程序数据写到芯片内SRAM的一块连续地址空间。
d)程序数据完全传输完毕后,ROM内的程序将跳转到SRAM内程序数据,执行闪存操作程序。闪存操作程序把系统程序写入嵌入式闪存13。
e)闪存操作程序通过控制闪存控制器10,把系统程序写入嵌入式闪存13。
f)闪存操作程序根据系统工作频率以及闪存操作所需的时序要求,对闪存控制器10内配置寄存器101进行配置,时钟控制器102根据系统工作频率以及配置寄存器101的配置值,产生频率较低的参考时钟Ref_clk;
g)CPU11经内部总线向闪存控制器10相应的地址写系统应用程序,同时写入操作类型,闪存控制信号生成电路103启动。
h)闪存控制信号生成电路103,通过状态机使能嵌入式闪存13内部相应的控制信号并控制所述控制信号的时序,并将系统应用程序写入嵌入式闪存13内。
j)重复h,直到所有的程序编程结束。
k)下电后,重新配置芯片模式芯片,使系统从嵌入式闪存13启动,执行系统应用程序。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。