一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种串行EEPROM的型号识别及控制器设计方法

2022-07-16 22:27:15 来源:中国专利 TAG:

一种串行eeprom的型号识别及控制器设计方法
技术领域
1.本发明涉及芯片设计技术领域,特别涉及型号识别及控制器设计领域,其提供一种自动识别eeprom型号的方法,通过该方法可以正确识别出eeprom的型号,并通过所识别的型号信息对eeprom控制器进行配置,从而使控制器能够对所插入的eeprom进行正确的控制。


背景技术:

2.eeprom是一种带电可擦写可编程非易失性只读存储器,可通过高压作用来擦除和重编程存储单元,且掉电后数据不丢失。eeprom一般用于即插即用,常用在接口卡中存储数据,应用领域广泛。
3.传统串行eeprom通讯数据中并不包含其型号及数据位宽等信息,不同品牌及不同型号的串行eeprom在数据传输时其操作时序会有些差别,受到其读写方式、地址位宽和数据位宽大小等影响,一般的eeprom控制器并不能兼容多种型号的串行eeprom。
4.以串行eeprom器件(at93c46和at93c56)为例,其芯片引脚示意图如图1所示,两者容量大小不同,且通过org接口连接vcc或gnd可配置其数据宽度为16位或8位。同时,其读时序图如图2所示,可以看出,读操作期间需要控制器拉高片选信号cs,并输出同步时钟,eeprom会在sk的上升沿时采样di端口输出的数据,包括三位操作码“110”和地址信息a
n-a0,在采样完所需要位宽大小的地址信息后,do端口会首先输出一位dummy bit,该值为“0”,然后再输出读出数据d
n-d0。
5.表1 不同的eeprom的地址位宽和数据位宽大小
[0006][0007]
其中,93c56多了一个地址位实际是不需要的,但其额外的时钟周期是被要求的。
[0008]
不同型号的串行eeprom的地址位宽和数据位宽都可能不一样,这也导致了对其进行读写等操作所需要的时钟周期和地址数据的位宽大小有所差别,即eeprom控制器无法兼容多种eeprom型号。
[0009]
同时,在32位数据宽度的soc系统中,对eeprom进行读写时,由于其数据宽度为8位或16位,无法直接兼容。


技术实现要素:

[0010]
本发明的目的是提供一种串行eeprom型号的识别方法,可以正确有效的识别出串行eeprom的型号,并提供一种eerpom控制器的设计方法。
[0011]
采用该方法,由于eeprom在采样完所需位宽大小的地址信息后便会进行输出,控制器会检测在对eeprom进行读时do端口输出的dummy bit“0”所出现的位置,从而判断地址位宽大小识别eeprom型号,若识别不到具体型号,则将进一步向固定地址写入数据后读出,通过比较判断型号。
[0012]
采用该方法,可根据识别的型号自动配置控制器,不仅使控制器能够生成正确的读写等操作信号,还包括根据eeprom的数据宽度自动地进行32位的位宽转换,从而使控制器支持多种eeprom型号并兼容32位数据宽度的系统。
[0013]
该方法包括以下步骤:
[0014]
步骤1、读取所支持的不同型号串行eeprom地址0x00处的数据;
[0015]
其中,读取时的地址位宽不一定为8位,应视所支持的eeprom型号的最大地址位宽而定,而地址宽度小于该值的eeprom只会采样实际所需的地址位宽信息。
[0016]
步骤2、在固定周期内进行计数,当计数到某个区间内开始持续检测eeprom输出端口在输出dummy bit“0”时的位置;
[0017]
其中,计数固定周期的大小应该大于三位读操作指令码、最大地址宽度和一位dummy bit三者所需周期数量之和。例如,表一中at93c46和at93c56的地址宽度大小为6-9位,则检测时应该至少在13个周期(3 9 1=13)内进行计数,并且当计数到9(3 6)之后开始进行检测。
[0018]
步骤3、根据dummy bit“0”出现的位置判断该eeprom的地址位宽大小,若在计数区间内未检测到dummy bit“0”,则说明为其他eeprom型号或未插入eeprom;
[0019]
步骤4、若其地址宽度为8或9,如表一所示,其数据宽度已确定,但需要进一步区分eeprom型号为93c56还是93c66。以地址宽度为8为例,此时数据宽度为16位,向eerpom的地址0x00和0x80分别写入数据0x5555和0xaaaa,再分别读出比较,若数据相同,则说明该eeprom为93c56,若不同则为93c66。若地址宽度为其他有效值,可以直接确定eeprom的型号,不需要做进一步确定;
[0020]
步骤5、将型号编码信息写入eeprom控制器的配置寄存器中,并指示是否有效;
[0021]
步骤6、eeprom控制器根据配置寄存器的有效型号信息对位宽转换模块进行配置;
[0022]
其中,通过所识别的eeprom型号确定其数据位宽,若数据位宽为8位,想要使其读出32位的数据,则位宽转换模块会对eeprom进行连续的四次读操作后将得到的32位数据再进行输出,过程中读地址会依次递增,而在写入32位数据时,会依次将数据从低位字节到高位字节分成四次写入eeprom中,同样过程中写入地址会依次递增。若数据宽度为16位,过程同8位时的情况一样,只是读写次数变成了两次。
[0023]
步骤7、eeprom控制器根据配置寄存器的有效型号信息对信号发生器进行配置;
[0024]
其中,主要配置在对eeprom进行操作时各个串行信号需要保持的周期,包括在操作时片选有效需要保持的周期、同步时钟周期以及对应型号所需要的地址和数据位宽大小信息。
[0025]
步骤8、完成型号识别及控制器配置,开始对eeprom进行正常读写等操作。
[0026]
其中,所述的串行eeprom包括93c46、93c56、93c66、93c86。
[0027]
采用本发明方法可以准确的识别出所支持的eeprom型号,并且知道其数据宽度以及容量大小,从而可以配置eeprom控制器使其正确产生相应的操作信号。由于其识别过程
并不复杂,且控制器只需型号信息存储在配置寄存器中即可完成对信号发生模块进行配置,这与只支持一种eeprom型号的控制器相较而言并未增加太多电路逻辑。
[0028]
通过本发明方法可以设计出支持多种eeprom型号的控制器,能够在操作前自动识别型号后将自身配置成相应型号的操作模式,从而准确的完成对各种型号eeprom的控制。
附图说明
[0029]
为了更清楚地说明本发明实施例,使其更好理解,下面将对实施例中所需要使用的附图作简单地介绍,而附图作为说明书的一部分仅用于更好的解释实施例,并不构成对本发明的限制。
[0030]
图1是本发明实施例的串行eeprom型号的芯片引脚图;
[0031]
图2是本发明实施例的串行eeprom型号的读操作时序图;
[0032]
图3是本发明实施例提供的串行eeprom型号的识别方法的示意图;
[0033]
图4是本发明实施例提供的进行控制器配置并进行读写的流程图;
[0034]
图5是本发明实施例在位宽转换中用到的四选二复用器的逻辑电路图。
具体实施方式
[0035]
下面将结合本发明实施例中的各个附图,对本发明实施例中的方法进行详细地阐述,但该实施例并不是本发明的唯一实施例,基于本发明中的实施例,本领域普通技术人员在没有进行创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]
本发明实施例中以识别93c46、93c56、93c66和93c86这四种型号为例,其数据宽度为8位或16位时的地址宽度如表一所示,其芯片引脚示意图以及读操作时序图分别如图1和图2所示。
[0037]
图3为本发明实施例中提供的识别串行eeprom型号方法的流程示意图,该示意图会更加详细具体的阐述本发明的方法,所述方法包括:
[0038]
步骤s301:对eeprom的0x000地址进行读操作,其预设的地址宽度为11位,并且在开始读操作起就在sk的上升沿进行计数;
[0039]
步骤s302:由于实施例中eeprom的最小地址宽度为6位,故若识别的eeprom型号正好地址宽度为6位,则其会在第10个周期时输出dummy位,故在计数器计数到9时就要开始检测do端口是否开始输出低电平;
[0040]
步骤s303:由于实施例中eeprom的最小地址宽度为6位,最大地址宽度为11位,故只需计数器的值在9到14区间内进行检测dummy位;
[0041]
步骤s304:如果在这区间内未检测到dummy位,则说明该eeprom为其他型号或者并未插入eeprom,故结束型号识别,并将指示型号编码是否有效的信号置为低电平;
[0042]
步骤s305:在计数区间内检测到了dummy位,则说明有支持的eeprom型号插入,并可以根据检测到dummy位时计数器的值来判断其地址位宽,判断方法可总结为计数值减3;
[0043]
步骤s306:判断所识别的eeprom的地址宽度是否为8位或是9位,这是由于当地址宽度为这两个值时,eeprom的型号可以为93c56或93c66;
[0044]
步骤s307:若地址宽度为9位,由表一所知,虽其具体型号无法确定,但其数据宽度可以确定为8位,此时向地址0x000和0x100分别写入数据0x55和0xaa;
[0045]
步骤s308:然后再将两个地址处的数据读出;
[0046]
步骤s309:判断读出的两个数据是否相同;
[0047]
步骤s310:由于93c56配置数据宽度为8位时,其实际需要的地址宽度为8位,故在对地址0x000和0x100分别写入数据0x55和0xaa时,实际第9位的地址信息并未采样,故始终是在地址0x00进行读写,故读出时两个值应当相同。而对于93c66而言,数据会分别写进地址0x000和0x100,读出时两个值应当不同,由此便可判断出该eeprom是93c56还是93c66,确定型号后将编码信息写入配置寄存器中并将指示型号有效的信号置为高电平;
[0048]
步骤s311:型号识别完成,结束型号识别;
[0049]
步骤s312:若地址宽度不为8位或9位,则可根据具体的地址宽度直接判断出eeprom型号,如表一所示,若地址宽度为6或7,即eeprom型号为93c46,其数据宽度分别为16位和8位,若地址宽度为10或11,即eeprom型号为93c86,其数据宽度分别为16位和8位。最后,将对应的型号编码存入寄存器,其中,同一型号的eeprom配置不同数据位宽时视为两种型号,其型号编码是不一样的;
[0050]
步骤s313:同步骤s311一样,结束型号识别;
[0051]
步骤s314:若地址宽度为8位,由表一所知,虽其具体型号无法确定,但其数据宽度可以确定为16位,此时向地址0x00和0x80分别写入数据0x5555和0xaaaa;
[0052]
步骤s315:与步骤s308一样,将两个地址处的数据分别读出;
[0053]
步骤s316:与步骤s309一样,判断两个数据是否相同;
[0054]
步骤s317:与步骤s310同理,根据判断两个读出的数据是否相同可以确定出eeprom的型号,然后将编码信息写入配置寄存器中并将指示型号有效的信号置为高电平;
[0055]
步骤s318:同步骤s311和s313一样,结束型号识别;
[0056]
所述方法还包括识别完eeprom型号后对控制器进行相应的配置,以使控制器能够正确控制eeprom;
[0057]
图4为本实施例中eeprom控制器完成型号识别后,自动进行配置并读写eeprom的流程示意图,方法包括:
[0058]
步骤s401:识别到有效的型号后将该型号的编码信息写进配置寄存器,并指示该编码信息有效,以便其他模块根据该有效型号信息进行自动配置,且指示主设备可以开始对eeprom进行读写操作;
[0059]
步骤s402:读写操作时,控制器中的位宽转换模块会根据eeprom的型号知晓其数据位宽,从而配置该模块进入连续两次或是四次的读写模式;
[0060]
其中,进入连续两次或四次读写模式后,位宽转换模块会在写操作过程中将32位的写入数据分成4个8位数据或2个16位数据并依次输出给信号发生器,此过程在后续还会进行详细介绍。而在读操作过程中,会分四次或两次采样接受数据缓冲器中的低8位或16位数据放入数据寄存器的正确位置,采样完成后再输出。同时,地址信息也会在每次读写操作过程中进行递增输出给信号发生器。
[0061]
步骤s403:位宽转换模块配置完成后给出起始信号,指示信号发生器开始对eeprom进行读写操作,而信号发生器根据配置寄存器中的型号信息,将操作指令码、对应地址宽度和数据宽度的信息采样存放入输出缓冲器中,并在sk的驱动下串行输出到di端口;
[0062]
步骤s404:若数据位宽为8,则完成第一次的读写操作后,还需进行第二、三和四次
读写操作,若数据宽度为16,则完成第一次的读写操作后,进行第二读写操作;
[0063]
步骤s405:完成所有读写操作,将32位数据依次都写入eeprom或将读出的共32位的数据输出到系统总线上;
[0064]
步骤s406:结束读写操作,控制器恢复到初始状态或准备接收下一个操作命令。
[0065]
所述方法中的位宽转换模块在写入数据时采用使用了图5的复用器设计,其中,sel0选择信号代表eeprom的数据宽度为8位还是16位,sel[1:0]指示第几次读写操作。
[0066]
表2mux4_2真值表
[0067][0068]
当数据宽度为8位,复用器会在四次写入过程中依次选择data[7:0]、data[15:8]、data[23:16]和data[31:24]输出到data_reg[7:0]和data_reg[15:8]端口,而信号发生器只会将data_reg[7:0]的值存入输出缓存器中。
[0069]
当数据宽度为16位,复用器会在两次写入过程中依次选择data[15:0]和data[31:16]输出到data_reg[15:0]端口,而信号发生器会将data_reg[15:0]的值存入输出缓存器中。
[0070]
采用上述所述复用器的方法,可以实现位宽转换时在数据通路上数据位宽的转换,该内容也属于本发明内容。
[0071]
通过上述实施例的描述,普通技术人员可以据此进行变化修改,以应用在具体的项目当中。例如,在只支持93c46和93c56型号的控制器设计中,就只需要通过检测dummy bit的位置即可区分,不用再进一步进行识别。
[0072]
本发明方法也不限于实施例中的eeprom型号,描述仅阐述发明方法的思想。
[0073]
上述实施例只是本发明的一个实施例,并不包含全部,其目的在于详细阐述本发明的技术构想,并且让熟悉该专业领域的技术人员能够了解本发明的内容并据以实施,并不能限制本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献