CN114115742A - 一种新型CPU的eMMC读写方法 - Google Patents
一种新型CPU的eMMC读写方法 Download PDFInfo
- Publication number
- CN114115742A CN114115742A CN202111428336.4A CN202111428336A CN114115742A CN 114115742 A CN114115742 A CN 114115742A CN 202111428336 A CN202111428336 A CN 202111428336A CN 114115742 A CN114115742 A CN 114115742A
- Authority
- CN
- China
- Prior art keywords
- emmc
- data
- read
- reading
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000006870 function Effects 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 11
- 230000003139 buffering effect Effects 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种新型CPU的eMMC读写方法,包括步骤:S1、操作系统应用软件调用eMMC驱动函数接口进行操作;S2、eMMC驱动函数接口将操作转换为对CPU外部存储器(LocBus)接口的读写操作;S3、CPU通过外部存储器接口访问FPGA;S4、FPGA中的eMMC IP单元对eMMC的读写。本发明通过采用eMMC作为大容量非易失性存储器,通过FPGA实现接口的转换,实现CPU中eMMC的读写操作。
Description
技术领域
本发明涉及存储器读写数据技术领域,具体而言,涉及一种新型CPU的eMMC读写方法。
背景技术
特殊装备计算机产品上由于环境条件的限制,对数据存储介质有特殊要求。机械硬盘不能用于振动环境要求较高的场合,因此一般采用FLASH介质的存储器设计板载大容量非易失性存储。
目前国产高性能POWERPC处理器为PPC8640D,但该款仅支持NOR FLASH存储器。这类存储器容量小、价格高,不适用于需要大容量存储的应用场合。
NAND FLASH需要做坏块管理,相对比较复杂,不建议使用。
eMMC采用NAND FLASH加控制器实现,集成了NAND FLASH的接口控制和坏块管理等功能,方便易用,是嵌入式产品的首选存储器。
现有技术中采用eMMC作为大容量非易失性存储器,但CPU无eMMC接口,所以无法实现接口的转换。
发明内容
本发明的主要目的在于提供一种新型CPU的eMMC读写方法,以解决目前采用eMMC作为大容量非易失性存储器,但CPU无eMMC接口,所以无法实现接口转换的问题。
为了实现上述目的,本发明提供了如下技术:
一种新型CPU的eMMC读写方法,包括步骤:
S1、操作系统应用软件调用eMMC驱动函数接口进行操作;
S2、eMMC驱动函数接口将操作转换为对CPU外部存储器(LocBus)接口的读写操作;
S3、CPU通过外部存储器接口访问FPGA;
S4、FPGA中的eMMC IP单元对eMMC的读写。
进一步地,所述CPU采用外部存储器接口FPGA连接,FPGA与eMMC驱动接口连接。
进一步地,所述eMMC驱动函数接口包用于初始化、写入数据和读取数据,所述写入数据包括单块写入数据和多块写入数据,所述读取数据包括单块读取数据和多块读取数据。
进一步地,所述eMMC IP单元包括Cpu模块、Link模块、Phy模块、Txd_fifo模块、Rxd_fifo模块和Muxclk模块;Cpu模块用于作为本地总线接口;Link模块用于cmd线路命令和响应的时序关系和CRC校验,产生cmd和data线路的收发控制信号;Phy模块用于cmd线路tx和rx串并转换,实现data线路tx和rx的串并转换和CRC校验;Txd_fifo模块用于写入eMMC数据时的缓冲;Rxd_fifo模块用于写读取eMMC数据时的缓冲;Muxclk模块用于eMMC时钟的切换。
进一步地,所述eMMC读取寄存器数据时序时,设有1个周期的延迟。
进一步地,eMMC IP单元还包括中断模块,所述中断模块通过控制寄存器控制总中断使能和单独的中断使能,当总中断使能关闭后将不产生中断,仍会产生中断状态,该中断状态需要清除。
进一步地,eMMC驱动函数接口的初始化具体步骤:
S101、芯片在上电或硬件复位后将进入idle状态;
S102、复位;
S103、判断是否复位成功(进入Ready状态),不成功则重新发指令信息;
S104、读CID信息,进入Idendtification状态;
S105、设置相对地址RCA,进入stand-by状态;
S106、读取CSD寄存器,获取数据块长度,容量,最大时钟速率信息;
S107、设置地址,进入Transfer状态;
S108、切换时钟速率,同时要设计IP的时钟切换寄存器,切换到高速时钟;
S109、设置数据位宽;
S110、完成了初始化操作,进行数据读写传输。
进一步地,eMMC驱动函数接口的读取数据具体步骤:
首先读取rxram addr寄存器获取读ram地址指针,该地址是将要读回的数据存储的第一个地址;
发读指令;
检查指令是否生效;
读取rxram addr寄存器获取读ram地址指针,计算已读取的数据个数;
读取ram数据;
监控状态步骤包括:
查询link_rxd_en信号状态,判读是否全部数据读传输完成,CRC出错时将提前清零;
查询link_rxd_crcerror信号状态,判读是否传输出错。一旦传输错误,将会停止传输,需要重新发起命令启动传输(只有最后一包数据错误)。
进一步地,eMMC驱动函数模块的写入数据具体步骤:
首先读取txram Saddr寄存器获取当前写ram地址指针,该地址是将要写入数据缓存的第一个地址;
发写指令;
检查指令是否生效;
写入数据(可以在任意阶段执行),更新txram Eaddr,通知ip启动数据写eMMC(通过Eaddr-Saddr>256判断);
监控状态步骤包括:
查询link_txd_en信号状态,判读是否全部数据传输完成,CRC出错时将提前清零;
查询link_txd_crcerror信号状态,判读是否传输出错。一旦传输错误,将会停止传输,需要重新发起命令启动传输(同时需注意重设发送ram地址)。
读取txram Saddr寄存器获取写ram地址指针,计算已写入的数据个数;
错误处理步骤包括:
当写数据发送错误时,将停止写入(无论是否完成所有块的传输);
读取txram Saddr地址(addr=36),将txram Saddr减去一包数据大小(512Byte)。
与现有技术相比较,本发明能够带来如下技术效果:
本发明通过采用eMMC作为大容量非易失性存储器,通过FPGA实现接口的转换,实现CPU中eMMC的读写操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一种新型CPU的eMMC读写方法的流程图;
图2是本发明FPGA与eMMC连接电路框图;
图3是本发明eMMC IP core原理框图;
图4是本发明读寄存器时序图;
图5是本发明读ram时序图;
图6是本发明写寄存器和ram时序图;
图7是本发明指令操作的流程图;
图8为本发明eMMC驱动函数接口的初始化的时序图;
图9为本发明一种新型CPU的eMMC读写方法读取的流程图;
图10为本发明一种新型CPU的eMMC读写方法写入的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
另外,术语“多个”的含义应为两个以及两个以上。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
实施例1
一种新型CPU的eMMC读写方法,包括步骤:S1、操作系统应用软件调用eMMC驱动函数接口进行操作;S2、eMMC驱动函数接口将操作转换为对CPU外部存储器(LocBus)接口的读写操作;S3、CPU通过外部存储器接口访问FPGA;S4、FPGA中的eMMC IP单元对eMMC的读写。
如图2所示,其中,硬件接口:所述CPU采用外部存储器接口FPGA连接,FPGA与eMMC驱动接口连接。LocBus接口是CPU的外部存储器接口,信号定义如下表1:
表1:LocBus接口信号
eMMC驱动接口是eMMC芯片的控制和数据接口。信号定义如下表2:
表2:eMMC接口信号
序号 | 信号 | 定义 | 备注 |
1 | CLK | 时钟,通常为10~100MHz | |
2 | CMD | 命令信号 | |
3 | DATA[7..0] | 数据信号 |
实施例2
软件接口:软件运行于PPC8640D,本实施例采用天脉1系统。
驱动软件钟将eMMC接口封装为标准函数接口,应用软件通过调用标准函数接口实现eMMC数据的读写。
所述eMMC驱动函数接口包用于初始化、写入数据和读取数据,所述写入数据包括单块写入数据和多块写入数据,所述读取数据包括单块读取数据和多块读取数据。如下表3所示:
表3:函数接口
如图3所示,所述eMMC IP单元包括Cpu模块、Link模块、Phy模块、Txd_fifo模块、Rxd_fifo模块和Muxclk模块;Cpu模块用于作为本地总线接口,包含寄存器和数据ram;Link模块用于cmd线路命令和响应的时序关系和CRC校验,产生cmd和data线路的收发控制信号;Phy模块用于cmd线路tx和rx串并转换,实现data线路tx和rx的串并转换和CRC校验;Txd_fifo模块用于写入eMMC数据时的缓冲,数据16bit到8bit转换,一包数据检测;Rxd_fifo模块用于写读取eMMC数据时的缓冲,数据8bit到16bit转换;Muxclk模块用于eMMC时钟的切换。
接口说明,如下表4所示:
表4:接口信号说明
序号 | 信号 | 方向 | 定义 |
1 | rst | IN | 复位信号,‘1’=复位 |
2 | clk | IN | 时钟信号,20MHz~100MHz |
3 | wr | IN | 写信号,‘1’=写有效 |
4 | rd | IN | 读信号,‘1’=写有小 |
5 | addr[15..0] | IN | 地址信号 |
6 | wr_d[15..0] | IN | 写数据信号 |
7 | rd_d[15..0] | OUT | 读数据信号 |
8 | eMMC_clk | OUT | eMMC接口时钟 |
9 | eMMC_cmd | IO | eMMC接口命令控制信号线 |
10 | eMMC_d[7..0] | IO | eMMC接口数据信号线 |
11 | eMMC_sd | 保留 |
接口时序,读取时序,如图4所示,读寄存器数据时序如下:
在clock周期2时,主机发出读,给出地址;在clock周期3时,主机可锁存数据。
如图6所示,所述eMMC读取寄存器数据时序时,设有1个周期的延迟。
时序如下:
在clock周期2时,主机发出读,给出地址;在clock周期3时,模块锁存地址,输出数据;在clock周期4时,主机可锁存数据。
写入时序,写入数据和ram数据时序如下:
在clock周期2时,主机发出写,给出地址和写数据;在clock周期3时,模块根据地址将数据锁存到对应地址。
eMMC IP单元还包括中断模块,所述中断模块通过控制寄存器控制总中断使能和单独的中断使能,当总中断使能关闭后将不产生中断,仍会产生中断状态,该中断状态需要清除。
中断说明:IP支持中断输出:1、指令响应完成中断;2、指令响应超时中断;3、数据发送完成中断;4、数据接收完成中断。
当主机端收到中断时,通过读取状态寄存器(0x01)获取中断状态,将读取到的数据写入0x1寄存器将清除对应(中断状态为1)的中断位。
中断默认为脉冲中断,脉冲宽度配置,支持电平中断模式,通过0x0寄存器进行设置。
中断可以通过控制寄存器控制总中断使能和单独的中断使能,当总中断使能关闭后将不会产生中断,但依然会产生中断状态(需要清除)。
实施例3
如图7所示,指令操作流程如下:
1、查询模块状态,读0x00寄存器,查询CMD busy状态;2、模块空闲时(CMD busy=‘0’),指令信息写入0x4~0x5指令信息寄存器;3、写0x06指令编号及启动寄存器,启动指令发送;4、读0x00寄存器,查询模块状态(如果支持中断则在收到中断时读取该寄存器);查询CMD busy,检查指令是否执行;查询RSP ready,检查响应是否完成接收(主要);查询RSPCRC error判断是否传输出错;5、读取响应信息寄存器(addr=10~18),获取RSP_INF,根据指令编号(RSP_INF[133..128]或RSP_INF[45..32])查询信息内容。注意:部分指令无响应。
读取或者写入RAM管理器:读ram空间0x800~0xBFF,写ram空间0xC00~0xFFF,各4K;每次读写数据的最小单位为512Byte。
单块应用时,CPU将数据写入RAM;设置Saddr和Eaddr;然后设置指令(读CMD17)启动传输;查询指令执行情况,直至传输完成;重复以上操作,直至所有数据完成传输。该方式操作流程简单,但对ram的利用效率较低,传输效率低。
如图8所示,eMMC驱动函数接口的初始化具体步骤:
S101、芯片在上电或硬件复位后将进入idle状态;S102、复位;S103、判断是否复位成功(进入Ready状态),不成功则重新发指令信息;S104、读CID信息,进入Idendtification状态;S105、设置相对地址RCA,进入stand-by状态;S106、读取CSD寄存器,获取数据块长度,容量,最大时钟速率信息;S107、设置地址,进入Transfer状态;S108、切换时钟速率,同时要设计IP的时钟切换寄存器,切换到高速时钟;S109、设置数据位宽;S110、完成了初始化操作,进行数据读写传输。
数据读分为单块读和多块读,eMMC数据读流程图如图所示。单块读操作开始时,主机通过eMMC控制器的主控制模块首先发送命令CMD16设置块长度,其中默认块长度为512B。然后发送单块读命令CMD17(包含单块读起始地址参数)后,根据数据单块读时序,如果超过NCR个时钟周期未检测到R1响应则认为响应超时超时,需要重新发送命令CMD17,此外响应错误也需要重发命令。读取的单块数据在数据处理模块做CRC检验时,然后把比对结果传送给主控制模块,如果CRC检验一致则单块读完成,不然需要再次发送命令CMD17再次进行单块读,直到读取CRC检验一致。在进行多块读过程时,首先发送CMD16命令进行块长配置,然后发送CMD23命令配置多块读块数,接着发送多块读命令CMD18,如果响应正常则进行单块读,否则重新发送CMD18命令。同单块读一样,如果CRC校验不一致则需要重新开始读过程,否则发送CMD13命令查询BUSY位是否为高,如果为高就一直等待并轮询发送命令CMD13继续查询设备状态,直到检测到BUSY位为低则单块读完成,此时读块数累加,然后重复此过程,直到读取块数和设定块数一致,则多块读完成。
如图9所示,eMMC驱动函数接口的读取数据具体步骤:
首先读取rxram addr寄存器获取读ram地址指针,该地址是将要读回的数据存储的第一个地址;发读指令;检查指令是否生效;读取rxram addr寄存器获取读ram地址指针,计算已读取的数据个数;读取ram数据。
监控状态步骤包括:查询link_rxd_en信号状态,判读是否全部数据读传输完成,CRC出错时将提前清零;查询link_rxd_crcerror信号状态,判读是否传输出错。一旦传输错误,将会停止传输,需要重新发起命令启动传输(只有最后一包数据错误)。
数据写入分为单块写和多块写,eMMC数据写流程图如图所示。单块写操作开始时,主控制模块首先发送CMD16命令设置块长度,然后发送单块写命令CMD24(包含单块写起始地址参数),但只要命令CMD24响应错误或超时就需要再次发送。
写入eMMC的单块数据包含有CRC校验,在eMMC内部也会对数据进行校验并将校验结果反馈给控制器,如果CRC校验不一致则需要重新开始写过程,否则通过发送命令CMD13查询设备状态,如果BUSY位为高则需要轮询发送CMD13查询,直到BUSY位为低则单块写完成。多块写操作开始时,主控制模块首先发送命令CMD16设置块长度,然后通过命令CMD23设置多块写块数。这些基本设置完成之后,主控制模块发送命令CMD25进行多块写,同单块写一样如果响应R1错误或超时,则需要重新开始多块写过程。接着,将单块数据写入eMMC,写入eMMC的数据附带的CRC检验结果会自动和其内部计算的CRC检验结果进行比对,并将校验比对结果通过DAT0(正确状态值为010,错误状态值为101)反馈给控制器,如果接收到的状态值错误则需要重发多块多命令,否则控制器通过发送命令CMD13查询eMMC设备BUSY位是否为高,如果为高则需要继续等待并接着发送CMD13命令查询其状态,直到BUSY位为低则表明单块写完成,然后写块数进行累加,最后重复以上过程,直到设定写块数和块数累加值一样,则多块写完成。
如图10所示,eMMC驱动函数模块的写入数据具体步骤:首先读取txramSaddr寄存器获取当前写ram地址指针,该地址是将要写入数据缓存的第一个地址;发写指令;检查指令是否生效;写入数据(可以在任意阶段执行),更新txramEaddr,通知ip启动数据写eMMC(通过Eaddr-Saddr>256判断)。
监控状态步骤包括:查询link_txd_en信号状态,判读是否全部数据传输完成,CRC出错时将提前清零;查询link_txd_crcerror信号状态,判读是否传输出错。一旦传输错误,将会停止传输,需要重新发起命令启动传输(同时需注意重设发送ram地址)。读取txramSaddr寄存器获取写ram地址指针,计算已写入的数据个数。
错误处理步骤包括:当写数据发送错误时,将停止写入(无论是否完成所有块的传输);读取txramSaddr地址(addr=36),将txramSaddr减去一包数据大小(512Byte)。
与现有技术相比较,本发明能够带来如下技术效果:
本发明通过采用eMMC作为大容量非易失性存储器,通过FPGA实现接口的转换,实现CPU中eMMC的读写操作。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种新型CPU的eMMC读写方法,其特征在于,包括步骤:
S1、操作系统应用软件调用eMMC驱动函数接口进行操作;
S2、eMMC驱动函数接口将操作转换为对CPU外部存储器接口的读写操作;
S3、CPU通过外部存储器接口访问FPGA;
S4、FPGA中的eMMC IP单元对eMMC的读写。
2.如权利要求1所述的一种新型CPU的eMMC读写方法,其特征在于,所述CPU采用外部存储器接口FPGA连接,FPGA与eMMC驱动接口连接。
3.如权利要求1或2所述的一种新型CPU的eMMC读写方法,其特征在于,所述eMMC驱动函数接口用于初始化、写入数据和读取数据,所述写入数据包括单块写入数据和多块写入数据,所述读取数据包括单块读取数据和多块读取数据。
4.如权利要求3所述的一种新型CPU的eMMC读写方法,其特征在于,所述eMMC IP单元包括Cpu模块、Link模块、Phy模块、Txd_fifo模块、Rxd_fifo模块和Muxclk模块;Cpu模块用于作为本地总线接口;Link模块用于cmd线路命令和响应的时序关系和CRC校验,产生cmd和data线路的收发控制信号;Phy模块用于cmd线路tx和rx串并转换,实现data线路tx和rx的串并转换和CRC校验;Txd_fifo模块用于写入eMMC数据时的缓冲;Rxd_fifo模块用于写读取eMMC数据时的缓冲;Muxclk模块用于eMMC时钟的切换。
5.如权利要求4所述的一种新型CPU的eMMC读写方法,其特征在于,所述eMMC读取寄存器数据时序时,设有1个周期的延迟。
6.如权利要求5所述的一种新型CPU的eMMC读写方法,其特征在于,eMMC IP单元还包括中断模块,所述中断模块通过控制寄存器控制总中断使能和单独的中断使能,当总中断使能关闭后将不产生中断,仍会产生中断状态,该中断状态需要清除。
7.如权利要求1或6所述的一种新型CPU的eMMC读写方法,其特征在于,eMMC驱动函数接口的初始化具体步骤:
S101、芯片在上电或硬件复位后将进入idle状态;
S102、复位;
S103、判断是否复位成功,不成功则重新发指令信息;
S104、读CID信息,进入Idendtification状态;
S105、设置相对地址RCA,进入stand-by状态;
S106、读取CSD寄存器,获取数据块长度,容量,最大时钟速率信息;
S107、设置地址,进入Transfer状态;
S108、切换时钟速率,同时要设计IP的时钟切换寄存器,切换到高速时钟;
S109、设置数据位宽;
S110、完成了初始化操作,进行数据读写传输。
8.如权利要求7所述的一种新型CPU的eMMC读写方法,其特征在于,eMMC驱动函数接口的读取数据具体步骤:
首先读取rxram addr寄存器获取读ram地址指针;
发读指令;
检查指令是否生效;
读取rxram addr寄存器获取读ram地址指针,计算已读取的数据个数;
读取ram数据;
监控状态步骤包括:
查询link_rxd_en信号状态,判读是否全部数据读传输完成,CRC出错时将提前清零;
查询link_rxd_crcerror信号状态,判读是否传输出错;一旦传输错误,将会停止传输,重新发起命令启动传输。
9.如权利要求8所述的一种新型CPU的eMMC读写方法,其特征在于,eMMC驱动函数模块的写入数据具体步骤:
首先读取txram Saddr寄存器获取当前写ram地址指针,该地址是将要写入数据缓存的第一个地址;
发写指令;
检查指令是否生效;
写入数据,更新txram Eaddr,通知ip启动数据写eMMC;
监控状态步骤包括:
查询link_txd_en信号状态,判读是否全部数据传输完成,CRC出错时将提前清零;
查询link_txd_crcerror信号状态,判读是否传输出错。一旦传输错误,将会停止传输,需要重新发起命令启动传输,同时重设发送ram地址。
读取txram Saddr寄存器获取写ram地址指针,计算已写入的数据个数;
错误处理步骤包括:
当写数据发送错误时,将停止写入;
读取txram Saddr地址,将txram Saddr减去一包数据大小(512Byte)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111428336.4A CN114115742A (zh) | 2021-11-26 | 2021-11-26 | 一种新型CPU的eMMC读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111428336.4A CN114115742A (zh) | 2021-11-26 | 2021-11-26 | 一种新型CPU的eMMC读写方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115742A true CN114115742A (zh) | 2022-03-01 |
Family
ID=80370661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111428336.4A Pending CN114115742A (zh) | 2021-11-26 | 2021-11-26 | 一种新型CPU的eMMC读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115742A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205670293U (zh) * | 2016-05-25 | 2016-11-02 | 北京润科通用技术有限公司 | 一种数据存储系统 |
CN210136493U (zh) * | 2019-07-29 | 2020-03-10 | 中国电子科技集团公司第二十七研究所 | 一种基于Dsp的非易失性大容量高速数据存储装置 |
CN111208757A (zh) * | 2019-12-27 | 2020-05-29 | 中国航天科工集团八五一一研究所 | 一种基于FPGA的eMMC主控制器 |
-
2021
- 2021-11-26 CN CN202111428336.4A patent/CN114115742A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205670293U (zh) * | 2016-05-25 | 2016-11-02 | 北京润科通用技术有限公司 | 一种数据存储系统 |
CN210136493U (zh) * | 2019-07-29 | 2020-03-10 | 中国电子科技集团公司第二十七研究所 | 一种基于Dsp的非易失性大容量高速数据存储装置 |
CN111208757A (zh) * | 2019-12-27 | 2020-05-29 | 中国航天科工集团八五一一研究所 | 一种基于FPGA的eMMC主控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互系统和方法 | |
US7802034B2 (en) | Method for performing full transfer automation in a USB controller | |
US20080162737A1 (en) | USB Controller with Full Transfer Automation | |
US7243173B2 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
US8386908B2 (en) | Data transmission methods and universal serial bus host controllers utilizing the same | |
CN106951379A (zh) | 一种基于axi协议的高性能ddr控制器及数据传输方法 | |
CN106959935A (zh) | 一种兼容i2c通信与ipmb通信的方法 | |
CN108932207A (zh) | 带有缓存区的sdio-wifi数据传输方法及系统 | |
CN102147778A (zh) | 基于半双工串行总线的数据传输系统及传输控制方法 | |
JP4696199B2 (ja) | 転送ディスクリプタ用メモリを備えるusbホストコントローラ | |
CN210155653U (zh) | 基于zynq芯片实现m-lvds总线数据交互装置 | |
CN116450552A (zh) | 基于i2c总线异步批量读写寄存器的方法及系统 | |
CN201039218Y (zh) | 基于微控制器的通用串口和can总线的接口转换器 | |
CN114115742A (zh) | 一种新型CPU的eMMC读写方法 | |
CN111208757A (zh) | 一种基于FPGA的eMMC主控制器 | |
US20170300435A1 (en) | Direct memory access control device for at least one computing unit having a working memory | |
CN202282789U (zh) | 一种伺服驱动器的soe通信转换卡 | |
CN105573947A (zh) | 一种基于apb总线的sd/mmc卡控制方法 | |
CN216352286U (zh) | 一种i2c总线的检测装置 | |
CN110659236B (zh) | 可自主回复写应答的axi总线传输装置 | |
CN109887259B (zh) | 一种单线传输装置及方法 | |
CN115481078A (zh) | 主从式通讯系统及方法 | |
WO2008082530A1 (en) | Method and apparatus for performing full transfer automation in a usb controller | |
CN202205196U (zh) | 一种串行设备共用通信总线的系统 | |
CN112069096B (zh) | 控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220301 |
|
RJ01 | Rejection of invention patent application after publication |