一种电表soc系统及其初始化方法

文档序号:6469673阅读:337来源:国知局

专利名称::一种电表soc系统及其初始化方法
技术领域
:本发明涉及一种电表SOC系统,尤其涉及具有两种初始化方法的f1ash接口电路的电表SOC(片上系统)系统。
背景技术
:Flash(闪存)是非易失存储器,在掉电后信息不丟失,存储器单元可以进行擦除和再编程,可由内部的处理器完成对芯片的才喿作;内部flash(闪存)可以支持IAP(在系统应用)编程,非常便于现场或远程软件修改、调试或升级,也可以用于保存数据,在电表应用中,可以把电能计量的数据保存到flash(闪存)中,省去通常外部扩展的E2PR0M(电可擦除只读存储器),系统可靠性增加,总体成本下降。Flash(闪存)能提供极高的单元密度,达到高存储密度,并且写入和擦除速度也很快,因此越来越多的MCU(单片微型计算机)内部集成flash(闪存)。Flash(闪存)应用的困难在于flash(闪存)的管理需要根据系统的需要和工艺的不同,^L计特殊的系统接口。现有技术的采用HHNEC0.25的EF250FLASH工艺的SOC系统的flash的各种操作命令表如下<table>tableseeoriginaldocumentpage4</column></row><table>AHHHXhChip-er555hAAHAA55555H80H555hAAHAAAH5555103S6AHHH5Hh表中,其中Addr为flash(闪存)的地址总线的Addr[ll:l],其他bit位的值可为0或者1;Data为flash(闪存)的数据总线的低8位;BA为byteprogram(字节编程)的地址;WA为wordprogram(字节编程)的地址jBD为byteprogram(字节编程)时的数据;WD为wordprogram(字节编程)的数据;SAx为需要sectorerase(片擦除)的地址;BAx为blockerase(块擦除)的地址。请参阅图1至图3,为现有技术的Flash编程时序图、片擦除时序示意图以及Flash的读时序示意图,如何能够更方#_快捷、更灵活的对flash进行编程,是本发明亟待解决的问题。
发明内容本发明的目的在于克服现有技术的缺陷,而提供一种电表S0C系统及其初始4匕方法,该电表S0C系统中,具有两种初始化方法的flash(闪存)的系统接口,可以方便灵活的对flash进行擦除、读写和校验操作,便于S0C系统中的MCU(单片微型计算机)对flash进行管理和读取程序。实现上述目的的技术方案是本发明之一的一种电表S0C系统,包括片上凝:才几系统MCU和flash存储器,其中,还包括一连接于片上微机系统MCU和flash存储器之间的flash接口电路以及与该flash接口电路相连的串行外设接口SPI,其中所述的flash4妄口电i各实现对flash存储器的擦除、读写和才交验操作,将需要保存的电能信息输入保存到flash存储器中,它作为flash存储器与片上微机系统MCU和串行外设接口SPI之间的接口;所述的串行外设接口SPI实现电表SOC系统的SPI操作模式,当外部输入信号为高电平时,该串行外设接口SPI通过flash接口电路对flash存储器进行操作;所述的片上微机系统MCU实现电表SOC系统的MCU操作模式,当外部输入信号为低电平时,该片上微机系统MCU通过flash接口电路对5flash存储器进行操作。上述的电表SOC系统,其中,所述的flash接口电路包括相连的模块选择模块以及flash控制模块,所述的flash控制模块包括有一寄存器flash—con。上述的电表SOC系统,其中,在所述的SPI操作模式时,flash存储器的读或写或擦除的使能信号通过所述的flash接口电路来自于所述的串行外设接口SPI,Hash存储器的操作由该使能信号和寄存器flash_con共同控制;在所述的MCU操作模式时,flash存储器的读或写或擦除的使能信号通过所述的flash"l姿口电路来自于所述的片上凝j几系统MCU,flash存储器的操作由该使能信号和寄存器flash_con共同控制。本发明之二的一种基于上述电表SOC系统的初始化方法,其中,它包括MCU初始化方法和SPI初始化方法,其中MCU初始化方法在MCU操作模式下进行,系统中集成一个2K的、用于存放启动程序、在线调试程序和在线编程程序的ROM,在该冲莫式下,只需要两#^更件连线,即运行状态输出/调试双向引脚esd和双向数据引脚edat,把flash存储器当作外部数据存储器EXRAM,使用MOVX指令对每个存储单元进行操作,系统上电后,电表SOC系统首先运行启动程序,若此时运行状态输出/调试双向引脚esd拉低,系统进入ISP程序,此时,程序运行2K的ROM中的程序,接收开漏的双向数据引脚edat中的串行数据,接收到的数据用于外部与MCU的通讯,以作为初始化flash存储器的地址和数据;否则,程序进入用户程序;SPI初始化方法在SPI操作模式下进行,此时,只有串行外设接口SPI、flash接口电路和flash存储器工作,电表SOC系统看作是一个带接口的普通的flash芯片,在对flash存储器的操作改变时,需要先对寄存器flash_con进行初始化。当传输的地址为{FFFF}时,表示写寄存器flash—con。上述的电表SOC系统的初始化方法,其中,所述的MCU初始化方法中,接收开漏的双向数据引脚edat中的串行数据时,每次接收8bits数据。上述的电表SOC系统的初始化方法,其中,所述的MCU初始化方法中,flash存储器作为系统的EXRAM,起始地址为OOOOH,通过MOVX指令和寄存器flash_con的设置,可以对flash进行一次一个字节的读出或编程操作,或对flash进行片擦除、页擦除或者块擦除操作,通过MOVX指令来访问片内程序存储空间。上述的电表SOC系统的初始化方法,其中,所述的MCU初始化方法中,对flash存储器的编程步骤为步骤Sl,设置寄存器flash_con,为(MH,即可以通过MOVX指令对flash存储器进行整片擦除;步骤S2,使用MOVX指令,产生一个写操作,flash接口电路由此产生对flash存储器的片擦除命令;步骤S3,设置寄存器flash—con,为01H,即可以用MOVX写程序空间;步骤S4,使用MOVX指令向flash存储器中任何一个位置写入数据字节;步骤S5,使用MOVX指令在要求的字节位置写入数据字节,反复重复直至完成;步骤S6,清除寄存器flash_con中的值,设置flash存储其为只读即默认值。本发明的有益效果是本发明在电表SOC系统中,设置了带有SPI初始化功能的flash(闪存)接口电路,可以方便灵活的对flash进行擦除、读写和校验操作,便于电表SOC系统中的MCU对flash进行管理和读取程序。可以把需要保存的电能等数据输入保存到该flash中,省去了常用的EWROM;可以在电表SOC系统中实现IAP(在系统应用编程),方便软件的开发和应用。图1是现有4支术的Flash编程时序图;图2是现有技术的片擦除时序示意图;图3是现有技术的Flash的读时序示意图4是本发明之一的一种电表SOC系统的系统框图5是本发明之一的电表SOC系统中的模块选择模块的电路图6是本发明之一的电表S0C系统中的flash控制模块的电路图7是本发明之二的SPI对flash编程时数据传输示意图8是本发明之二的SPI读取flash中"f直时的数据传输示意图。具体实施例方式下面将结合附图对本发明作进一步说明。请参阅图4至图6,图中示出了本发明之一的一种电表SOC系统,包括片上微机系统MCU1和flash存储器4,还包括连接于片上微机系统MCU1和flash存j诸器4之间的flash接口电3各3以及与该flash接口电路3相连的串行外设接口SPI2,其中flash接口电路3实现对flash存储器4的擦除、读写和校验操作,将需要保存的电能信息输入保存到flash存储器4中,它作为Hash存储器4与片上微机系统MCU1和串行外设接口SPI2之间的接口;flash接口电路3包括相连的模块选择模块31以及flash控制模块32,flash控制模块32包括有一个寄存器flash-con33。串行外设接口SPI2实现电表SOC系统的SPI操作模式,当外部输入信号SPI—FLASH—EN为高电平时,该串行外设接口SPI2通过flash接口电路3对flash存储器4进行搡作,flash存储器4的读或写或擦除的使能信号来自于串行外设接口SPI2,flash存储器4的操作由该使能信号和寄存器flash_con33共同控制;片上微机系统MCU1实现电表SOC系统的MCU操作模式,当外部输入信号spi—flash—en为低电平时,该片上孩i才几系统MCU1通过flash接口电路3对flash存储器4进行操作,flash存储器4的读或写或擦除的使能信号来自于片上微机系统MCUl,flash存储器4的操作由该使能信号和寄存器flash-con33共同控制。图6为本发明之一的电表SOC系统中的模块选择模块,其中prom—dout为从flash存储器4中读出到spi接口的8位数据,prom一din位从SPI接口中,需要写入到flash存储器4中的数据,prom-cs为spi对flash操作的^f吏能信号,prom一we为spi对flash的写4吏能信号,prom一-rd为spi对flash的读寸吏能4言号,Prom—addr为spi^刀始4bflash的地址。mcu_dout为/人flash存储器4中读出到片上孩支才几系统MCU1的8位数据,mcu—din为从片上樣£机系统MCU1需要写入到flash存储器4中的数据,mcu_addr为片上樣i机系统MCUl对flash的操作地址,mcu_cs为片上微机系统MCU1对flash操作的使能信号,mcu_we为片上微机系统MCU1对flash的写使能信号,mcu—rd为片上微才几系统MCU1对flash的读使能信号。Flash—dout为从flash存储器4读出的相应的8位数据;flash—din为SOC系统需要写入到flash存储器4的数据,当spi_flash_en为高电平时,该总线的l直来自于prom—din,否贝'J,来自于mcu—din;flash—cs为SOC系统对flash存储器4的使能控制信号,当prom_flash_en为高电平时,该总线的寸直来自于prom一cs,否贝'J,来自于mcu—cs;flash—wr为SOC系统对flash存储器4的写使能控制信号,当spi—flash-en为高电平时,该总线的l直来自于prom-we,否贝'j,来自于mcu—we;flash—rd为SOC系统对flash存储器4的读使能控制信号,当spi-flash—en为高电平时,该总线的^i来自于prom—rd,否则,来自于mcu-rd。flash—addr为对flash存卡者空间的才喿作地址,当spi_flash_en为高电平时,该总线的值来自于prom—addr,否则,来自于mcu—addr。请参阅图6,图中示出了本发明之一的电表SOC系统中的flash控制模块32,来自于模式选择模块31的使能控制信号和寄存器flash_con33共同控制着flash接口的工作。当flash—cs和flash—rd有效时(低电平有效),为对flash的读操作,对flashmemory的输出flash—ce和flash—oe有效,在一定时刻后,从flash中读出flash-addr地址所对应的数据从flash—data_out中输出。当flash-ce和flash—wr有效时(低电平有效),根据寄存器flash_con33中的值不同,分别有不同的操作和输出。当flash—con=01H时,为对flash编程才喿作。当flash_con=02^1时,为对flash进行block(块)擦除的才喿作。当flash_con=03H时,为对flash进行sector(页)擦除的操作。当flash—con=04H时,为对flash进行整片擦除的4喿作。图6所示中的状态机根据操作的不同,产生符合要求的读写和总线时序。请参阅图7和图8,本发明之二的一种电表S0C系统的初始化方法,它包括MCU初始化方法和SPI初始化方法,其中MCU初始化方法在MCU操作模式下进行,系统中集成一个2K的、用于存放启动程序、在线调试程序和在线编程程序的ROM,在该模式下,只需要两根硬件连线,即运行状态输出/调试双向引脚esd和双向数据引脚edat,把flash存储器当作外部数据存储器EXRAM,使用MOVX指令对每个存储单元进行操作。系统上电后,电表SOC系统首先运行启动程序,若此时运行状态输出/调试双向引脚esd拉低,系统进入ISP程序,此时,程序运行2K的ROM中的程序,接收开漏的双向数据引脚edat中的串行数据,每次接收8bits数据,接收到的数据用于外部与MCU的通讯,以作为初始化flash存储器的地址和数据;否则,系统进入用户程序。SPI初始化方法在SPI操作模式下进行,此时,只有串行外设接口SPI、flash"l妻口电路和flash存々者器工作,电表SOC系统看作是一个带接口的普通的flash芯片,在对flash存储器的操作改变时,需要先对寄存器flash-con进行初始化。当传输的地址为{FFFF}时,表示写寄存器flash—con。下面将进一步对该两种初始化方法进行说明,MCU初始化方法中,MCU对flash的操作控制,可以方便的实现ISP(在系统编程)和IAP(在应用编程),具体就是CPU—边运行一块memory中的程序,一边对另外的memory进行擦除、读写或校验等操作。flash存储器作为系10统的EXRAM,起始地址为OOOOH,通过MOVX指令和寄存器flash—con的设置,可以对flash进行一次一个字节的读出或编程操作,或对flash进行片擦除、页擦除或者块擦除操作,通过MOVX指令来访问片内程序存储空间。寄存器flash—con控制着flash接口的功能和操作。当flash—con-01H时,可以用movx写程序空间。当flash_con=02H时,可以通过movx对flash进行块擦除。当flash—con=03H时,可以用Movx指令对flash进4亍sector(页)擦除。当flash_con=04H时,可以通过Movx指令对flash进4亍整片4察除。在MCU初始化方法中,对flash存储器的编程步骤为步骤Sl,设置寄存器flash_con,为04H,即可以通过MOVX指令对flash存储器进行整片擦除;步骤S2,使用MOVX指令,产生一个写操作,flash接口电路由此产生对flash存储器的片擦除命令;步骤S3,设置寄存器flash—con,为01H,即可以用MOVX写程序空间;步骤S4,使用MOVX指令向flash存储器中任何一个位置写入数据字节;步骤S5,使用MOVX指令在要求的字节位置写入数据字节,反复重复直至完成;步骤S6,清除寄存器flash_con中的值,设置flash存储其为只读即默认值。釆用该串行通讯口进行数据交换时,速度可以为SOC的系统时钟,比SPI等串行传输的速度要快,从而可以提高flash初始化的效率。SPI初始化方法中,SPI外设除了用作一般的串行通讯外,还同时可以用作对flash的编程的工作。在spi-flash—en引脚为高的情况下,可以通过SPI的使能引脚CSB来使能SOC中的SPI使得其开始工作,SPI作为从机端接收外部的数据,来对flash进行擦除、读写或校验的工作。在该模式下,CPU是停止运行的,只有SPI、flash接口和flash在工作,SOC可以看作是一个带接口的普通的flash芯片。在对flash的操作改变时,需要先对寄存器flash-con进行初始化。当传输的地址为{FFFF}时,表示写寄存器flash-con。对于寄存器flash-con中各取值时对应的^喿作如下<table>tableseeoriginaldocumentpage12</column></row><table>在byteprogramandbyteread模式下,SPI的传输数据依次为地址的高位、地址的地位和数捧,如下图所示。在连续program的才莫式下,spi传输的it据一次为地址的高位(ADDRH)、地址的地位(ADDRL)和需要连续写入到flash的数据,SPI控制逻辑会把数据写入到接收到的起始地址为{ADDRH,ADDRL}的存储空间中。在连续read的模式下,SPI传输的数据依次为地址的高位(ADDRH)、地址的地位(ADDRL)和需要连续从flash中读出的数据传输到主机,SPI控制逻辑会把起始地址为{ADDRH,ADDRL}的存储空间中的数据依次读出并传输出去。本发明中的flash采用华虹NEC的EF250flash工艺,在对flash进行操作时,其数据总线和地址总线上面输入的命令如上表所示。在该模式下工作时,传输和接收的数据均为8bits,使用传输寄存器和接收寄存器的低8位。在不同操作时,SPI的传输内容不同,分别介绍如下。F1ashbyteprogram。SPI连续介绍到地址的高位ADDRH,低位ADDRL和需要写入到flash中的数据DATA后,即可产生一个需要写flash的写使能信号prom-wr(低有效)和prora_cs(低有效),并且把需要写的地址和数据保存在SPI接口中相应的地址和数据寄存器中,作为prom—addr和prom—din输出。Flashread。SPI连续介绍到地址的高位ADDRH,低位ADDRL和需要写入到flash中的数据DATA后,即可产生一个需要写flash的读使能信号prom_rd(低有效)和prom—cs(低有效),并且把需要写的地址和数据保存到SPI接口中相应的地址和数据寄存器中,作为spi—addr和prom—din输出。Flashchiperase。在SPI接收到flash—con的i殳置值为对chiperase的操作后,SPI接口即根据上标中chiperase操作的需要对flash产生相应的使能、地址总线和数据总线值。以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。权利要求1.一种电表SOC系统,包括片上微机系统MCU和flash存储器,其特征在于,还包括一连接于片上微机系统MCU和flash存储器之间的flash接口电路以及与该flash接口电路相连的串行外设接口SPI,其中所述的flash接口电路实现对flash存储器的擦除、读写和校验操作,将需要保存的电能信息输入保存到flash存储器中,它作为flash存储器与片上微机系统MCU和串行外设接口SPI之间的接口;所述的串行外设接口SPI实现电表SOC系统的SPI操作模式,当外部输入信号为高电平时,该串行外设接口SPI通过flash接口电路对flash存储器进行操作;所述的片上微机系统MCU实现电表SOC系统的MCU操作模式,当外部输入信号为低电平时,该片上微机系统MCU通过flash接口电路对flash存储器进行操作。2.根据权利要求1所述的电表SOC系统,其特征在于,所述的flash接口电路包括相连的模块选择模块以及flash控制模块,所述的flash控制模块包括有一寄存器flash—con。3.根据权利要求1或2所述的电表SOC系统,其特征在于,在所述的SPI操作模式时,flash存储器的读或写或擦除的使能信号通过所述的flash接口电路来自于所述的串行外设接口SPI,flash存储器的操作由该使能信号和寄存器flash_con共同控制;在所述的MCU操作模式时,flash存储器的读或写或擦除的使能信号通过所述的flash接口电路来自于所述的片上微机系统MCU,flash存储器的操作由该使能信号和寄存器flash—con共同控制。4.一种基于权利要求1的电表SOC系统的初始化方法,其特征在于,它包括MCU初始化方法和SPI初始化方法,其中MCU初始化方法在MCU操作模式下进行,系统中集成一个2K的、用于存放启动程序、在线调试程序和在线编程程序的ROM,在该模式下,只需要两根硬件连线,即运行状态输出/调试双向引脚esd和双向凄t据引脚edat,4巴flash存储器当作外部数据存储器EXRAM,使用MOVX指令对每个存储单元进行操作,系统上电后,电表S0C系统首先运行启动程序,若此时运行状态输出/调试双向引脚esd拉低,系统进入ISP程序,此时,程序运行2K的ROM中的程序,接收开漏的双向数据引脚edat中的串行数据,接收到的数据用于外部与MCU的通讯,以作为初始化flash存储器的地址和数据;否则,程序进入用户程序;SPI初始化方法在SPI操作模式下进行,此时,只有串行外设接口SPI、flash接口电路和flash存储器工作,电表S0C系统看作是一个带接口的普通的flash芯片,在对flash存储器的操作改变时,需要先对寄存器flash—con进行初始化。当传输的地址为{FFFF}时,表示写寄存器flash-con。5.根据权利要求4所述的电表SOC系统的初始化方法,其特征在于,所述的MCU初始化方法中,接收开漏的双向数据引脚edat中的串行数据时,每次4妻收8bitsIU居。6.根据权利要求4所述的电表SOC系统的初始化方法,其特征在于,所述的MCU初始化方法中,flash存储器作为系统的EXRAM,起始地址为OOOOH,通过MOVX指令和寄存器flash—con的设置,可以对flash进行一次一个字节的读出或编程操作,或对flash进行片擦除、页擦除或者块擦除操作,通过MOVX指令来访问片内程序存储空间。7.根据权利要求6所述的电表SOC系统的初始化方法,其特征在于,所述的MCU初始化方法中,对flash存储器的编程步骤为步骤S1,设置寄存器flash_con,为0化,即可以通过MOVX指令对flash存储器进行整片擦除;步骤S2,使用MOVX指令,产生一个写操作,flash接口电路由此产生对flash存储器的片擦除命令;步骤S3,设置寄存器flash—con,为01H,即可以用MOVX写程序空间;步骤S4,使用MOVX指令向flash存储器中任何一个位置写入数据字节;步骤S5,使用MOVX指令在要求的字节位置写入数据字节,反复重复直至完成;步骤S6,清除寄存器flash_con中的值,设置flash存储其为只读即默认值。全文摘要本发明公开了一种电表SOC系统及其初始化方法,系统包括片上微机系统MCU和flash存储器,还包括连接于片上微机系统MCU和flash存储器之间的flash接口电路以及与该flash接口电路相连的串行外设接口SPI;方法包括MCU初始化方法和SPI初始化方法。本发明的电表SOC系统中,具有两种初始化方法的flash(闪存)的系统接口,可以方便灵活的对flash进行擦除、读写和校验操作,便于SOC系统中的MCU对flash进行管理和读取程序,可以把需要保存的电能等数据输入保存到该flash中,省去了常用的E2PROM;可以在电表SOC系统中实现IAP,方便软件的开发和应用。文档编号G06F3/06GK101561750SQ20081020771公开日2009年10月21日申请日期2008年12月25日优先权日2008年12月25日发明者赵海燕,明韩申请人:上海贝岭股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1