专利名称:一种存储器接口的制作方法
技术领域:
一种存储器接口技术领域[0001]本实用新型涉及嵌入式集成电路设计领域,特别是一种存储器接口。
技术背景[0002]在嵌入式系统中,存储器的类型决定整个嵌入式系统的操作和性能,因此存储 器的选择显的尤为重要。嵌入式系统的存储器一般分为内部存储器和外部存储器,外部 存储器多数情况下为非易失存储器。非易失存储器,通常有两种类型,一种是并行非易 失存储器,另一种是串行非易失存储器。使用并行非易失存储器,系统中的程序可以直 接在并行非易失存储器中运行,大大节省随机存储器(RAM)空间,但其缺点是芯片引脚 很多,印刷电路板布线复杂,面积大,导致成本高。而选择串行非易失存储器,可以减 少芯片的引脚,而且印刷电路板布线简单,面积小,但串行非易失存储器的读写,需要 软件参与读命令发送等复杂操作,程序不可以直接在串行非易失存储器中执行,故使用 串行非易失存储器的嵌入式系统,需要把串行非易失存储器中的程序搬运到随机存储器 (RAM)中后再运行。这样必然需要耗费更多随机存储器(RAM)空间,使成本上升。发明内容[0003]针对上述技术缺陷,本实用新型旨在提供一种存储器接口,使嵌入式系统中的 程序可以直接在串行非易失存储器中执行,而无需被搬运到随机存储器(RAM)中执行, 以减少芯片引脚,简化印刷电路板布线,减小面积,同时又不增加随机存储器(RAM)空 间。[0004]一种存储器接口,包括串行非易失存储器读模块、串行总线选择器和串行非易 失存储器控制器。[0005]串行非易失存储器读模块通过第一片上系统总线与片上系统总线控制器相连, 并通过第一串行总线与串行总线选择器相连;串行非易失存储器控制器通过第二片上系 统总线与片上系统总线控制器相连,并且通过第二串行总线与串行总线选择器相连;串 行总线选择器通过第三串行总线与串行非易失存储器相连。[0006]当需要对串行非易失存储器进行写操作时,在CPU的控制下,将串行总线选择 器和串行非易失存储器控制器之间的第二串行总线与串行总线选择器和串行非易失存储 器之间的第三串行总线连通。在不进行写操作时,将串行总线选择器和串行非易失存储 器读模块之间的第一串行总线与串行总线选择器和串行非易失存储器之间的第三串行总 线连通。[0007]所述串行非易失存储器控制器,根据串行非易失存储器的时序,将其寄存器内 的命令、地址、数据等,通过第二串行总线和第三串行总线发送给串行非易失存储器。 串行非易失存储器控制器内部的寄存器全部由CPU配置,可以对串行非易失存储器进行 写入、擦除等操作。[0008]所述串行非易失存储器读模块,包括串行非易失存储器读命令产生模块、并串转换模块、串并转换模块以及配置控制模块。[0009]其中,串行非易失存储器读命令产生模块与第一片上系统总线相连;并串转换 模块输入端连接串行非易失存储器读命令产生模块,输出端与第一串行总线相连;串并 转换模块输入端连接第一串行总线,输出端与第一片上系统总线相连;配置控制模块分 别与非易失存储器读命令产生模块、并串转换模块、串并转换模块相连。[0010]串行非易失存储器读命令产生模块根据串行非易失存储器的读取协议,生成并 行命令地址包。[0011]并串转换模块将并行命令地址包,转换成符合第一串行总线时序要求的串行数 命令地址包。[0012]串并转换模块根据第一串行总线的时序,将串行的数据,转换成并行的数据。[0013]配置控制模块功能包括配置读命令和时钟频率等,同时控制地址/命令发送 周期、串并转换周期等。[0014]作为优选,串行非易失存储器读模块还包括高速缓冲存储器,位于串行非易 失存储器读命令产生模块、串并转换模块和第一片上系统总线之间,高速缓冲存储器 (cache)只有读功能,不响应任何写请求,其作用是加快附近地址的数据读取速度。[0015]本实用新型的有益效果是通过上述存储器接口,CPU可以快速对串行非易失 存储器内的程序进行读操作,无需再搬运到随机存储器(RAM)中执行,可以节省大量随 机存储器(RAM)的空间;同时也不失对串行非易失存储器的写功能;此外,串行存储 器引脚较少,在进行电路设计时,可以简化印刷电路板布线,减小面积,降低成本;本 实用新型还采用高速缓冲存储器,可以加快串行存储器读取数据的速度,使整个嵌入式 系统在运行过程中更加流畅。
[0016]图1为存储器接口及外围模块结构示意图[0017]图2为串行非易失存储器读模块结构示意图
具体实施方式
[0018]如图1所示,一种存储器接口,包括串行非易失存储器读模块200、串行总线选 择器300和串行非易失存储器控制器500。[0019]其中,串行非易失存储器读模块200通过第一片上系统总线110与片上系统总线 控制器100相连,并通过第一串行总线210与串行总线选择器300相连;串行非易失存储 器控制器500通过第二片上系统总线120与片上系统总线控制器100相连,并且通过第二 串行总线510与串行总线选择器300相连;串行总线选择器300通过第三串行总线310与 串行非易失存储器400相连。[0020]当需要对串行非易失存储器400进行写操作时,在CPU600的控制下,串行总线 选择器300将第二串行总线510和第三串行总线310导通,将串行非易失存储器400和串 行非易失存储器控制器500相连。在不进行写操作时,串行总线选择器300将第一串行 总线210和第三串行总线310导通,将串行非易失存储器400和串行非易失存储器读模块 210连接。[0021]所述串行非易失存储器控制器500,根据串行非易失存储器400的时序,将其寄 存器内的命令、地址、数据等,通过第二串行总线510和第三串行总线310发送给串行非 易失存储器400。串行非易失存储器控制器400内部的寄存器全部由系统软件配置,可以 对串行非易失存储器进行任意擦除、写入等操作。[0022]如图2所示,串行非易失存储器读模块200,包括高速缓冲存储器201、串行非 易失存储器读命令产生模块202、并串转换模块203、串并转换模块204以及配置控制模 块 205。[0023]其中,高速缓冲存储器201与第一片上系统总线110相连,并依次连接串行非易 失存储器读命令产生模块202、并串转换模块203;串并转换模块204的输出通过高速缓 冲存储器201与第一片上系统总线110相连;配置控制模块205分别与高速缓冲存储器 201、非易失存储器读命令产生模块202、并串转换模块203、串并转换模块204相连。[0024]串行非易失存储器读命令产生模块202根据串行非易失存储器400的读取协议, 生成并行命令地址包。[0025]并串转换模块203将并行命令地址包,转换成符合第一串行总线210时序要求的 串行数命令地址包。[0026]串并转换模块204根据第一串行总线210的时序,将串行的数据,转换成并行的 数据。[0027]配置控制模块205功能包括配置读命令和时钟频率等,同时控制地址/命令发 送周期、串并转换周期等。[0028]在本实施例中,上述串行总线选择器300为SPI总线选择器,串行非易失存储器 400为SPI Flash ;第一片上系统总线110和第二片上系统总线120选用AHB总线;第一 串行总线210、第二串行总线510和第三串行总线310为SPI总线。[0029]以下为基于SPI存储器的一种存储器接口的程序执行方法[0030]1)读操作[0031]a.当系统需要对串行非易失存储器400中0x00200100地址读取一条32位的指令 时,串行总线选择器300在CPU600的控制下,将第一串行总线210和第三串行总线310 导通;[0032]b.片上系统总控制器100经地址译码后,通过第一片上系统总线110将地址和读 请求发送给串行非易失存储器读模块200 ;[0033]C.串行非易失存储器读模块200中的高速缓冲存储器201查询上述地址 0x00200100中的数据是否已存储在高速缓冲存储器201中,若是,则直接通过第一片上 系统总线110将数据传输给片上系统总线控制器100 ;[0034]d.若不是,高速缓冲存储器201向串行非易失存储器读命令产生模块202发送从 地址0x00200100读取数据的请求信号;[0035]e.串行非易失存储器读命令产生模块202接收到读请求信号后,根据串行非易失 存储器400的读取协议,生成并行命令地址包即读取令OxEB和地址0x00200100,发送 给并串转换模块203;[0036]f.并串转换模块203把接收到的并行命令地址包转换为符合第一串行总线210时 序的串行命令地址包,再通过第一串行总线210和第三串行总线310传输到串行非易失存储器400 ;[0037]g.当并串转换模块203输出串行命令地址包达到配置控制模块205设定周期后, 串行非易失存储器400开始输出数据;[0038]h.串行非易失存储器400输出的数据经过第三串行总线310和第一串行总线210 到达串并转换模块204,串并转换模块204将输入的串行数据转换为并行数据,再通过第 一片上系统总线110到达片上系统总线控制器100,同时将该并行数据更新至高速缓冲存 储器201中;[0039]LCPU600通过片上系统总线控制器100,取得0x00200100地址中的32位数据, 结束本次读操作。[0040]2)写操作[0041]a.当系统需要对串行非易失存储器400中0x00200200地址写入一组32位数据 时,串行总线控制选择器300在CPU600的控制下,将第二串行总线510和第三串行总线 310导通;[0042]b.将写命令0x02置入串行非易失存储器控制器500配置寄存器;[0043]c.启动串行非易失存储器控制器500,将已置入寄存器内的写命令通过第二串行 总线510和第三串行总线310传送至串行非易失存储器400 ;[0044]d.将地址0x00200200置入串行非易失存储器控制器500的寄存器中,再次启动 串行非易失存储器控制器500,寄存器内的地址0x00200200被传送至串行非易失存储器 400 ;[0045]e.将需要写入的一组32位数据置入串行非易失存储器控制器500的寄存器中, 再次启动串行非易失存储器控制器500,寄存器内的数据被传送至串行非易失存储器 400。
权利要求1.一种存储器接口,其特征在于包括串行非易失存储器读模块000)、串行总线选 择器(300)和串行非易失存储器控制器(500),串行非易失存储器读模块(200)通过第一 片上系统总线(110)与片上系统总线控制器(100)相连,并通过第一串行总线(210)与串 行总线选择器(300)相连;串行非易失存储器控制器(500)通过第二片上系统总线(120) 与片上系统总线控制器(100)相连,并通过第二串行总线(510)与串行总线选择器(300) 相连;串行总线选择器(300)通过第三串行总线(310)与串行非易失存储器(400)相连。
2.如权利要求1所述的一种存储器接口,其特征在于所述串行非易失存储器读模 块(200)包括串行非易失存储器读命令产生模块002)、并串转换模块003)、串并转换 模块Q04)以及配置控制模块O05);其中,串行非易失存储器读命令产生模块(202)与 第一片上系统总线(110)相连;并串转换模块(20 输入端连接串行非易失存储器读命令 产生模块002),输出端与第一串行总线(210)相连;串并转换模块(204)输入端连接第 一串行总线010),输出端与第一片上系统总线(110)相连;配置控制模块(205)分别与 高速缓冲存储器001)、非易失存储器读命令产生模块002)、并串转换模块003)、串 并转换模块(204)相连。
3.如权利要求2所述的一种存储器接口,其特征在于,所述串行非易失存储器读模 块(200)还包括高速缓冲存储器001),其一端连接串行非易失存储器读命令产生模块 (202)和串并转换模块004),另一端连接第一片上系统总线(110)。
4.如权利要求1所述的一种存储器接口,其特征在于,所述串行总线选择器(300)分 别通过第一串行总线(210)和第二串行总线(510)与串行非易失存储器读模块(200)和串 行非易失存储器控制器(500)相连,当需要对串行非易失存储器(400)进行写操作时, 串行总线选择器(300)在CPU(600)的控制下,将第二串行总线(510)和第三串行总线 (310)导通,在不进行写操作时,串行总线选择器(300)将第一串行总线(210)和第三串 行总线(310)导通。
专利摘要本实用新型公开了一种存储器接口,所述存储器接口包括串行非易失存储器读模块、串行总线选择器和串行非易失存储器控制器。通过上述存储器接口,CPU可以快速对串行非易失存储器内的程序进行读操作,无需再搬运到随机存储器(RAM)中执行,可以节省大量随机存储器(RAM)的空间;同时也不失对串行非易失存储器的写功能。本实用新型还采用高速缓冲存储器,可以加快串行存储器读取数据的速度,使整个嵌入式系统在运行过程中更加流畅。
文档编号G06F13/16GK201812284SQ20102051541
公开日2011年4月27日 申请日期2010年9月1日 优先权日2010年9月1日
发明者梁坚, 江正标, 沈斌, 黄宇钊 申请人:杭州国芯科技股份有限公司