0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文带你了解什么是SD NAND存储芯片

jim 来源:雷龙发展 作者:雷龙发展 2024-11-13 15:17 次阅读

前言:

随着国内市场对芯片的需求日益增加,国产中高端芯片在不断的占领国内市场甚至在国际市场都有一部分,越来越多的企业开始研究自己的芯片,这个芯片的种类繁多,功能性强大,也有一些芯片占有着很大的市场份额,有着不可取代的地位。

随着芯片的发展存储芯片的趋势也开始不甘落后,有着越来越多的新型的芯片问世,这里就要提起SD NAND芯片了,市面上主流的生产厂家就是雷龙。

SD NAND的简单介绍:

什么是SD NAND?很简单顾名思义就是内部集成了SD卡或TF卡(这里有必要说明SD卡和TF卡除了大小不同,引脚不同之外驱动,功能等内容都是一样的使用SD协议)功能的NAND存储芯片。

当然,他和主流的存储芯片不太一样,它是遵循SD协议的芯片,下图就是SDNAND的引脚图。

wKgZoWc0Un6AI70iAAD1uSEJR5A733.png

下图是SD卡的引脚图。

wKgaoWc0Un6AcDLuAAH5NjzFjMA302.png

仔细观察就不难发现他们的引脚功能相似,SD NAND芯片在引脚上遵循SD卡的协议, SD NAND可以理解为是一种可以直接焊接在PCB上的SD卡。

常见存储芯片的类别:

下面就要讨论关于常见存储芯片的主要用途作,和优缺点,在这里会从芯片的功能和实际使用情况来分析,如果只想了解SDNAND可以直接跳转到“SD NAND存储芯片”的目录中。

在这里会以存储芯片做比较,不和RAM存储器比较,以比较性能和使用环境,使用协议为主。

EEPROM存储芯片:

EEPROM存储芯片在1978年就诞生了,在这之前经过了ROM(只读存储器)EPROM(紫外线可擦除存储器)的演化,虽然现在不能成为主流的存储芯片,但是在存储一些简单的数据上还是可以看到它的身影,在单片机的开发上会对简单的数据进行存储。

这里就以AT24C256存储芯片来举例,下图是该芯片的内部结构图 。

wKgZoWc0Un6AUMVwAAFchOLn0vc996.png

可以看出主要是以IIC进行数据传输的(在主流的EEPROM市场中还有一小部分是以SPI作为数据传输的),引脚排列较少,价格较为便宜,但是他们的传输速度较慢,存储空间不是很大,但仍有很多的地方见到它的身影比如说主板的BIOS芯片,主要是在数据暂存,掉电保存重要数据等用途。要是和其他种类的存储芯片比较传输速度和存储空间很显然EEPROM就有些力不从心了。

NAND类存储芯片:

NAND Flash全名为Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁存电荷,这NAND存储芯片指的是使用这个存储结构的芯片,他们和EEPROM有不同的一点是存储数据量较大内部集成度较高,记住NAND并不是存储芯片的一种,而是芯片内部使用存储单元的结构(统称为NAND类存储芯片)。

NAND类存储芯片经常和FLASH联系在一起,或者可以说NAND是FLASH的一种,在实际应用中很常见,下图是SD卡简单化的内部结构。

wKgaoWc0Un6AbVQ4AAFOanu60jI897.png

SD卡存储单元是使用的FLASH,FLASH存储器一般会采用NAND的存储结构,NAND存储芯片有很多优点读写速度快,存储密度更高,擦写速度更快,使用寿命更长。

一般来说NAND存储芯片的连接通讯接口很多,比如SPI,IIC,多数据并行接口等,这个主要取决于它使用使用什么样的控制器来对它进行存储,另外NAND存储技术在国内已经很成熟了,在市场上使用的较为广泛,更是在硬件和PCB系统设计中成为了主流选择。

EMMC存储芯片:

说到NAND类存储芯片就要提到EMMC芯片了,虽说EMMC只是NAND类存储类的一种,但是EMMC芯片在PCB系统设计中却是一个拥有很强性能的芯片,主要是针对手机平板等微型内嵌存储芯片,从内部结构就可以看出有着更强大的控制器,有很多的EMMC都是采用NAND存储结构。

wKgZoWc0Un-AI3_fAABnAsXf9Q0610.png

当然强大的传输速度需要很强大的处理器进行连接,因此在芯片的接口上就要比普通的存储芯片复杂很多,下面的这一张图是EMMC存储芯片的引脚图。

wKgaoWc0Un-Ac8x9AACO8h8BenE075.png

从引脚上看Power(供电)就需要两种不同的电压,数据传输DAT[7:0]端口至少需要8个端口,CMD负责控制,CLK引脚来提供时钟信号(最快的EMMC时钟信号可以达到200MHZ),这种存储器如果用性能一般点的单片机来控制会有点吃力,当然它通常是BGA封装,所使用的引脚是很多的。

wKgZoWc0Un-ABQFhAADt-knolH8198.png

EMMC存储芯片无论是在传输速度上,在存储容量上,它的的性能都是很强大的,但同时需要很复杂的连接驱动才能使用,所以经常出现在一些较高端的电子产品上使用比如手机,平板,电脑等。

SD NAND存储芯片:

了解了EEPROM存储芯片和NAND芯片以及EMMC存储芯片他们都有各自的有点,比如说现在需要一款芯片是拥有较大的存储空间和较为简单的存储驱动什么样的芯片适合呢?答案是:SD NAND。

SD NAND有着很好的一点是拥有EEPROM那样的简单的外部布局,使无需通过复杂的连接完成存储功能,还拥有着EMMC的大容量存储空间,下图就是雷龙的CSNP4GCR01-AOW(SD NAND)芯片的内部结构图。

wKgaoWc0Un-AASxeAADzKPuXQUg404.png

通过结构图可以看出内部主要是由SD NAND作为存储,在芯片的输入输出接口部分使用的引脚和SD卡使用的是相同的协议,控制原理基本大差不差,下图是SD卡的内部结构图,引脚相同,控制也相同。

wKgZoWc0UoCALTC8AALc1g5q6xE488.png

SD NAND芯片使用的数据传输协议相对来说较为简单(和EMMC比起),存储空间较大(和EEPROM比起),或者理解为集成了EMMC和EEPROM的优点,但它的传输性能远不如EMMC那么快(这里根据EMMC协议主时钟最高200MHZ和SD协议主时钟最高50MHZ来定)。

因此SD NAND更适合用于一些用于并不是很复杂的设备开发中,比如单片机数据存取,简单的数据保存和一些轻量化的系统,针对一些掌上电脑,手机,平板等高智能化的产品还是觉得EMMC芯片更能符合这一类的环境。

SD卡测试:

下面就来使用XC7Z020芯片对SD卡进行读写TXT文本实验,就是SD卡而不是SD NAND具体原因在SD卡测试下面会说明,具体实验步骤如下。本次使用的是SD卡。

wKgaoWc0UoCAQvh9AAQ_iE74CTs250.png

创建Vivado工程文件,选择对应的芯片型号和内容

wKgZoWc0UoCAMUaYAACRaU59Tw0708.png

本次实验使用的是FPGA内部自带的IP核和对应的硬件串口来实现,所以在IP核的配置中只使用DDR端口和内存端口,IP核其他的多余引脚全部删除。

wKgaoWc0UoCAG9phAAMRB-VNuBc994.png

上图是IP核设定的界面这个对应的SD接口,这个接口是开发板硬件连接决定的,本次实验使用的是SD0,同时还要使能串口外设。

wKgZoWc0UoGAX4_yAAFRxasl570153.png

同时不要忘记设定需要的DDR控制器,以便来使用,下一步就要保存生成数据文件。

wKgaoWc0UoGAIwJ9AAGvfpjAGF0581.png

已经生成好的数据文件要把设定好的导出后,然后就可以进行SDK开发了。

wKgZoWc0UoGAW_e6AAPzARxD-Ko321.png

正在启动的SDK开发平台。

wKgaoWc0UoGAcp_JAAH1D0P2lGE542.png

在SDK开发平台创建开发工程。

wKgZoWc0UoKAI-1rAAGrCdAEXrA867.png

由于本次实验需要添加FATS文件系统,在SDK开发平台上没有默认自带该库函数,因此需要手动添加库文件。

wKgaoWc0UoKALF3SAAEPQnl46do263.png

点击左上角的Modify this BSP's Settings 按钮,添加库函数。

wKgZoWc0UoKAbSEcAAjVth-XL-8097.png

选择上图中的库函数,这个库函数是FAT系统库函数,里面包含很多的库函数完全够本次实验使用。

wKgaoWc0UoOAMbakAAL4z-X88F8557.png

继续把use_lfn这个选项的值改成true,这个选项的作用是使能长文件名,这样就可以针对长文件名进行操作。

wKgZoWc0UoOAd0oWAAASWyZEWIE410.png

在库函数下有一个新加入的库函数这个就是本次实验使用的库。

/***************************** Include Files *********************************/

#include "xparameters.h" /* SDK generated parameters */

#include "xsdps.h" /* SD device driver */

#include "xil_printf.h"

#include "ff.h"

#include "xil_cache.h"

#include "xplatform_info.h"

/************************** Function Prototypes ******************************/

int FfsSdPolledExample(void);

/************************** Variable Definitions *****************************/

static FIL fil; /* File object */

static FATFS fatfs;

static char FileName[32] = "Test.txt";

static char *SD_File;

char DestinationAddress[20] ;

const char SourceAddress[20]= "hello mizar !";

#define TEST 7

int main(void)

{

int Status;

xil_printf("SD Polled File System Example Test rn");

Status = FfsSdPolledExample();

if (Status != XST_SUCCESS) {

xil_printf("SD Polled File System Example Test failed rn");

return XST_FAILURE;

}

xil_printf("Successfully ran SD Polled File System Example Test rn");

return XST_SUCCESS;

}

int FfsSdPolledExample(void)

{

FRESULT Res;

UINT NumBytesRead;

UINT NumBytesWritten;

u32 BuffCnt;

BYTE work[FF_MAX_SS];

int FileSize = strlen(SourceAddress);

TCHAR *Path = "0:/";

//初始化文件系统

Res = f_mount(&fatfs, Path, 0);

if (Res != FR_OK) {

return XST_FAILURE;

}

//格式化SD卡

Res = f_mkfs(Path, FM_FAT32, 0, work, sizeof work);

if (Res != FR_OK) {

return XST_FAILURE;

}

//打开一个文件,如果文件不存在,则创建一个文件,该文件的权限为可读写

SD_File = (char *)FileName;

Res = f_open(&fil, SD_File, FA_CREATE_ALWAYS | FA_WRITE | FA_READ);

if (Res) {

return XST_FAILURE;

}

//指针指向文件开头

Res = f_lseek(&fil, 0);

if (Res) {

return XST_FAILURE;

}

//向文件中写入数据

Res = f_write(&fil, (const void*)SourceAddress, FileSize,

&NumBytesWritten);

if (Res) {

return XST_FAILURE;

}

//指针指向文件开头

Res = f_lseek(&fil, 0);

if (Res) {

return XST_FAILURE;

}

//从SD卡中的文件读出数据

Res = f_read(&fil, (void*)DestinationAddress, FileSize,

&NumBytesRead);

if (Res) {

return XST_FAILURE;

}

//比较写入的数据与读出的数据是否相同

for(BuffCnt = 0; BuffCnt < FileSize; BuffCnt++){

if(SourceAddress[BuffCnt] != DestinationAddress[BuffCnt]){

return XST_FAILURE;

}

}

//关闭文件

Res = f_close(&fil);

if (Res) {

return XST_FAILURE;

}

return XST_SUCCESS;

}

以上是本次实验使用到的部分代码,里面包含了外设,标准的打印函数和SD卡控制器的功能,在程序中先进行格式化SD卡为FAT32格式。

wKgaoWc0UoOAesWHAAFkKr1T4K4125.png

数据上传到FPGA中创建SD卡内部内容。

wKgZoWc0UoSAEe9NAABiPnwdSHg732.png

提示该信息说明创建完成,这个数据是由串口发送的,下载完成就把SD卡通过读卡器连接在电脑上就可以查看刚才创建的文件了,

wKgaoWc0UoSAYhSMAAAUoK6Q1UA703.png

在SD卡下创建好的文件。

或许在这里会有疑问为什么用FPGA对SD卡进行测试而不是SD NAND进行测试呢?答案很简单就是驱动问题,如果把SD NAND进行和上面SD卡测试相同的实验会发现最后查看Test文件无法完成,因为SD卡在Windows系统上(包括SD卡的读卡器)它的驱动很完善有着很强大的能力,但是把SD NAND芯片单独放到该体统中会显得有一些缺点,但是就并不能否定SD NAND在其他硬件比如单片机中的优点。

像刚才我说的如果在Windows系统中直接拿SD卡和SD NAND来比较性能就有点太欺负人了,因为在驱动层面有着很大的不同,所以说明SD NAND存储芯片要想做U盘就需要很完善的驱动才能进行,因此更适合在嵌入式单片机,FPGA内部程序开发等。

总结:

总的来说SD NAND是内部集成了SD卡协议的芯片,有着和SD卡相同的功能,在实际使用的时候使用的正是SD卡的协议,SD NAND可以焊接在线路板上完成一体化设计,建议使用在并不是需要强大性能的处理器上作为系统存储,因为作为强大系统的存储使用EMMC较好,SD NAND存储芯片多数使用在较为轻量化的系统中。

本次实验使用的是雷龙CSNP32GCR01和CSNP4GCR01芯片进行测试的,建议使用在嵌入式系统开发。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NAND
    +关注

    关注

    16

    文章

    1679

    浏览量

    136087
  • 存储
    +关注

    关注

    13

    文章

    4283

    浏览量

    85739
  • SD NAND
    +关注

    关注

    0

    文章

    83

    浏览量

    1226
收藏 人收藏

    评论

    相关推荐

    什么是SD NAND存储芯片?

    前言   大家好,我们般在STM32项目开发中或者在其他嵌入式开发中,经常会用到存储芯片存储数据。今天我和大家来介绍存储芯片,我这里
    发表于 01-05 17:54

    CS 创世SD NAND FLASH 存储芯片,比TF卡更小巧轻便易用的大容量存储,TF卡替代方案

    /6196382.html   下图是大小比对,可以看到 创世SD NAND的尺寸非常小,而且是种可以表贴的存储芯片。 []()   SD
    发表于 01-24 18:30

    带你了解什么是SD NAND存储芯片

    存储芯片:   了解了EEPROM存储芯片NAND芯片以及EMMC存储芯片他们都有各自的有点,
    发表于 11-13 15:20

    Flash闪存简介及“SD NAND Flash”产品测试#存储芯片 #sd卡  #NAND #TF卡

    存储芯片
    深圳市雷龙发展有限公司
    发布于 :2024年06月26日 18:11:03

    ESP32应用教程—SD NAND如何记录飞控LOG#SDNAND #硬件 #存储芯片

    存储芯片
    深圳市雷龙发展有限公司
    发布于 :2024年10月09日 16:51:51

    存储芯片入门漫谈

    FLASH,举使存储芯片的容量步入超过100MB量级。与NOR和EEPROM相比,目前所有主流的消费类大容量存储器如U盘,固态硬盘,都由NAND FLASH构成。由于
    发表于 08-16 16:30

    CS品牌SD NAND存储芯片 语音模块产品的“最佳拍档”

    存储芯片(又叫贴片式T卡),在更多的语音模块应用领域里面都是可以用到的。为什么这么说呢?SD NAND 它具备以下特性,所以说非常契合语音模块行业应用的很多场景。1、封装小尺寸:6*8mm;契合嵌入式系统
    发表于 04-24 17:27

    CS品牌SDNAND存储芯片在点读机搭配方案

    抽屉式到双开整体定型的个发展过程。  产品的更新迭代,让点读机的功能越来越多,也越复杂。同时对于存储芯片的要求也提升到了个新高度。点读机对于图片、音频、视频的需求逐渐增多。为什么说SD
    发表于 09-12 17:42

    国内唯高速小容量存储芯片_CS品牌SD NAND

    NAND Flash驱动,但是应用又需要更大容量的存储1Gb,2Gb,4Gb,8Gb等。  高速小容量存储芯片,且要自带坏块管理,能适用于各种单片机的SDIO接口,满足更多客户的需求。  这个时候我们
    发表于 09-25 15:46

    CS创世SD NAND存储芯片应用方案

    前言:  很感谢深圳雷龙发展有限公司为博主提供的两片SD NAND存储芯片,在这里博主记录下自己的使用过程以及部分设计。  深入了解该产
    发表于 11-15 18:07

    长江存储128层NAND flash存储芯片 中国存储芯片国际领先

    据媒体报道指国产存储芯片企业长江存储已开发出128层的NAND flash存储芯片,这是当前国际存储芯片企业正在投产的
    的头像 发表于 04-14 08:55 1.4w次阅读

    什么是SD NAND存储芯片? SD NAND与TF卡的区别

    什么是SD NAND?它俗称贴片式T卡,贴片式TF卡,贴片式SD卡,贴片式内存卡,贴片式闪存卡,贴片式卡...等等。虽然SD NAND 和T
    的头像 发表于 01-06 14:35 1718次阅读
    什么是<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>存储芯片</b>? <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>与TF卡的区别

    什么是SD NAND存储芯片?

    前言大家好,我们般在STM32项目开发中或者在其他嵌入式开发中,经常会用到存储芯片存储数据。今天我和大家来介绍存储芯片,我这里采用(雷
    的头像 发表于 01-05 17:53 1254次阅读
    什么是<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>存储芯片</b>?

    SD NAND测试套件:提升存储芯片验证效率

    SD NAND转接板和烧录座是种专为工程师设计的辅助工具,它能够将不同尺寸的SD NAND芯片
    的头像 发表于 08-13 09:44 342次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>测试套件:提升<b class='flag-5'>存储芯片</b>验证效率

    SD NAND在智能眼镜上的怎么应用

    随着智能时代的到来,智能眼镜的产品不断的更新迭代,越来越接近我们大众的生活,翻译、音频、视频、导航等功能也日益完善。同时也越来越考验存储芯片的容量和存储芯片的大小。 SD NAND
    的头像 发表于 09-14 09:55 320次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>在智能眼镜上的怎么应用