1.CS創(chuàng)世簡介
創(chuàng)世半導(dǎo)體成立于2016年,在香港,韓國,中國設(shè)有辦公室。創(chuàng)世成立是預(yù)見到5G,人工智能,物聯(lián)網(wǎng)等行業(yè)的崛起。用戶對芯片的需求會(huì)有新一個(gè)世代的要求。
創(chuàng)世半導(dǎo)體利用韓國,臺(tái)灣地區(qū)的芯片設(shè)計(jì)能力和供應(yīng)資源,在中國實(shí)現(xiàn)封裝和測試,并提供本地化的服務(wù)與支持。目前專注于SD NAND存儲(chǔ)產(chǎn)品的研發(fā)和生產(chǎn)。
2016年,創(chuàng)世推出了第一代SD NAND,給客戶提供兼容性強(qiáng),一致性高,焊接穩(wěn)定可靠的產(chǎn)品。大大降低了客戶使用其他存儲(chǔ)產(chǎn)品帶來的不良率,也幫助客戶縮短了調(diào)試小容量存儲(chǔ)芯片驅(qū)動(dòng)的研發(fā)時(shí)間,加快客戶項(xiàng)目的迭代速度。
2018年,為滿足更軌道交通,航空航天,工業(yè)控制,儀器儀表等行業(yè)類客戶需求,創(chuàng)世半導(dǎo)體首家推出了第二代SD NAND產(chǎn)品。能夠?qū)崿F(xiàn)更快的讀寫速度,更寬泛的使用環(huán)境。能夠承受高低溫冷熱沖擊,隨機(jī)掉電等苛刻的操作環(huán)境。同時(shí)能給客戶提供個(gè)性化的固件定制服務(wù)。
2020年,隨著智能穿戴設(shè)備的興起和物聯(lián)網(wǎng)的不斷發(fā)展,用戶對存儲(chǔ)容量的需求也不斷增長。創(chuàng)世半導(dǎo)體推出了4GB SD NAND產(chǎn)品,能夠?qū)崿F(xiàn)同等容量下,最小的尺寸封裝和最少的pin腳。幫助用戶推出更小巧,穩(wěn)定的產(chǎn)品。
創(chuàng)世的產(chǎn)品已經(jīng)廣泛應(yīng)用于醫(yī)療設(shè)備,工業(yè)控制,軌道交通,安防,網(wǎng)絡(luò)設(shè)備,IPC,執(zhí)法記錄儀,可視對講,門禁考勤,平板電腦,汽車電子,電力設(shè)備,工業(yè)儀器設(shè)備,POS機(jī),教育電子等行業(yè)。成功合作客戶包括中國中車,中國航天,中國船舶集團(tuán),清華大學(xué),糖貓,360等企業(yè)。合作CPU平臺(tái)包括:ST, NXP,TI, Microchip, Nordic, ESPRESSIF, MTK,Qualcomm等。
2.SD NAND FLASH簡介
SD NAND FLASH,即安全數(shù)字NAND閃存技術(shù),是一種結(jié)合了NAND閃存的高密度存儲(chǔ)能力和安全性能的存儲(chǔ)解決方案。是一種非易失性存儲(chǔ)器技術(shù),意味著它在斷電后仍能保存數(shù)據(jù)。它通過電荷的存儲(chǔ)與釋放來實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),基本單元結(jié)構(gòu)是一個(gè)浮柵晶體管。將NAND Flash集成到SD卡中,提供了一個(gè)集成的存儲(chǔ)解決方案。它通常具有額外的安全特性,如加密和訪問控制,以保護(hù)存儲(chǔ)的數(shù)據(jù)免受未經(jīng)授權(quán)的訪問或篡改。
SD NAND FLASH的工作原理與NAND Flash相似,涉及一系列的編程(寫入)、擦除和讀取操作。寫入過程:通過施加高電壓,電子被注入浮柵,改變浮柵上的電荷,進(jìn)而影響晶體管的導(dǎo)通狀態(tài),從而表示不同的存儲(chǔ)信息(通常是“0”或“1”)。采用塊擦除的方式。通過施加反向電壓,浮柵上的電子被移除,恢復(fù)晶體管的原始狀態(tài)。擦除通常是對整個(gè)塊進(jìn)行操作,而不是單個(gè)字節(jié)。通過檢測浮柵上的電荷狀態(tài),可以確定存儲(chǔ)單元的導(dǎo)通狀態(tài),從而讀取出存儲(chǔ)的信息。
SD NAND FLASH具有更高的存儲(chǔ)密度,使其適用于需要大容量存儲(chǔ)的應(yīng)用。提供了硬件和軟件層面的安全性保護(hù),包括加密和訪問控制,以確保存儲(chǔ)的數(shù)據(jù)不容易被盜取或篡改。常用于數(shù)碼相機(jī)、手機(jī)、平板電腦等需要可移動(dòng)存儲(chǔ)和數(shù)據(jù)保護(hù)的設(shè)備。
隨著技術(shù)的不斷發(fā)展,SD NAND FLASH在持續(xù)改進(jìn)和創(chuàng)新。它將繼續(xù)提高性能和存儲(chǔ)密度,以滿足高容量、高性能的需求。同時(shí),隨著物聯(lián)網(wǎng)、人工智能等技術(shù)的興起,SD NAND FLASH將在更多領(lǐng)域發(fā)揮重要作用,如安全攝像頭、工業(yè)控制系統(tǒng)等。
SD NAND FLASH是一種結(jié)合了高密度存儲(chǔ)能力和安全性能的存儲(chǔ)解決方案。它具有便攜性、高密度、安全性等優(yōu)勢,并廣泛應(yīng)用于各種需要可移動(dòng)存儲(chǔ)和數(shù)據(jù)保護(hù)的設(shè)備中。隨著技術(shù)的不斷進(jìn)步和應(yīng)用領(lǐng)域的拓展,SD NAND FLASH的市場前景將更加廣闊。
創(chuàng)世SD NAND FLASH二代采用SDIO驅(qū)動(dòng)接口,兼容SPI模式。有多種存儲(chǔ)容量,外圍接口電路簡單,工作電壓為3.3V,適用于各種嵌入式平臺(tái),如STM32系列單片機(jī)。
3.SD NAND FLASH PC端測試
??將創(chuàng)世的SD NAND存儲(chǔ)芯片焊接到官方提供的測試底板,然后使用讀卡器插入電腦端,硬件實(shí)物如圖所示:
??磁盤可用大小為3.6GB。
??通過使用磁盤檢測工具對整個(gè)空間進(jìn)行寫入測試,平均寫入速度可達(dá)17.6MB/S。
??在實(shí)際拷貝文件測試中,可以看到平臺(tái)寫入速度為7MB/S。
4.STM32 SDIO驅(qū)動(dòng)SD NAND示例
SDIO(Secure Digital Input Output),即安全數(shù)字輸入輸出接口,是一種基于SD(Secure Digital)卡技術(shù)的擴(kuò)展接口標(biāo)準(zhǔn)。SDIO最早由SD協(xié)會(huì)(SD Association,SDA)于2001年發(fā)布,作為SD卡標(biāo)準(zhǔn)的一種擴(kuò)展。它允許外部設(shè)備通過標(biāo)準(zhǔn)的SD卡槽連接并通信,不僅支持傳統(tǒng)的存儲(chǔ)功能,還允許設(shè)備通過SD卡接口進(jìn)行輸入輸出操作。
SDIO協(xié)議支持高達(dá)50MHz的數(shù)據(jù)傳輸速率(某些模式下甚至更高,如UHS-I模式可達(dá)到104MB/s或更高),可以實(shí)現(xiàn)快速的數(shù)據(jù)讀寫操作。
多設(shè)備連接:SDIO接口可以同時(shí)連接多個(gè)設(shè)備,通過多個(gè)數(shù)據(jù)線同時(shí)進(jìn)行數(shù)據(jù)傳輸,提高通信效率。支持熱插拔功能,允許用戶在不關(guān)閉系統(tǒng)的情況下插入或移除外設(shè),增強(qiáng)了系統(tǒng)的靈活性和易用性。同時(shí),SDIO設(shè)備通常被劃分為多個(gè)功能單元(Function),每個(gè)功能單元可以看作是一個(gè)獨(dú)立的外設(shè),具有自己的寄存器和配置選項(xiàng)。
SDIO接口繼承了SD卡的緊湊尺寸和低功耗特性,同時(shí)提供了更高的數(shù)據(jù)傳輸速率和更多的功能選項(xiàng)。然而,由于SDIO協(xié)議的不同版本和設(shè)備之間的差異,可能存在兼容性問題。開發(fā)人員需要針對不同的設(shè)備進(jìn)行適配和測試。
4.1 STM32F10x上的SDIO接口
STM32 SDIO總線上的通信是通過傳送命令和數(shù)據(jù)實(shí)現(xiàn)。在多媒體卡/SD/SD I/O總線上的基本操作是命令/響應(yīng)結(jié)構(gòu),這樣的總線操作在命令或總線機(jī)制下實(shí)現(xiàn)信息交換;另外,某些操作還具有數(shù)據(jù)令牌。
在SD/SDIO存儲(chǔ)器卡上傳送的數(shù)據(jù)是以數(shù)據(jù)塊的形式傳輸;在MMC上傳送的數(shù)據(jù)是以數(shù)據(jù)塊或數(shù)據(jù)流的形式傳輸;在CE-ATA設(shè)備上傳送的數(shù)據(jù)也是以數(shù)據(jù)塊的形式傳輸。
4.2 硬件接口
4.3 軟件設(shè)置
??1.芯片選擇
??2.時(shí)鐘配置
??3.SDIO配置
4.4 代碼生成
void MX_SDIO_SD_Init(void) { /* USER CODE BEGIN SDIO_Init 0 */ /* USER CODE END SDIO_Init 0 */ /* USER CODE BEGIN SDIO_Init 1 */ /* USER CODE END SDIO_Init 1 */ hsd.Instance = SDIO; hsd.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING;//在主時(shí)鐘SDIOCLK的上升沿產(chǎn)生SDIO_CK hsd.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE;//盤路時(shí)鐘失能 hsd.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;//始終輸出SDIO_CK hsd.Init.BusWide = SDIO_BUS_WIDE_1B;//總線寬度 hsd.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;//關(guān)閉硬件流控制 //當(dāng)SD/SDIO卡或多媒體卡在識(shí)別模式, SDIO_CK的頻率必須低于400kHz。 hsd.Init.ClockDiv = 6;//時(shí)鐘分頻系數(shù),SDIO_CK=HCLK/(ClockDiv+2) if (HAL_SD_Init(&hsd) != HAL_OK)//SD初始化 { Error_Handler(); } if (HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B) != HAL_OK)//配置總線寬度 { Error_Handler(); } /* USER CODE BEGIN SDIO_Init 2 */ hsd.Init.ClockDiv=0;//重新設(shè)置時(shí)鐘速度 /* USER CODE END SDIO_Init 2 */ }
??2.SD讀寫扇區(qū)函數(shù)
??為了方便后續(xù)FATFS文件系統(tǒng)移植,我們這里封裝兩個(gè)函數(shù)SD卡寫扇區(qū)和讀扇區(qū)。
void SD_WriteDisk(uint8_t *buf,uint32_t sector_add,uint32_t cnt) { HAL_SD_WriteBlocks(&hsd,buf,sector_add,cnt,5000);//SD卡寫塊 while(HAL_SD_GetCardState(&hsd)!=HAL_SD_CARD_TRANSFER);//等待數(shù)據(jù)傳輸完成 } void SD_ReadDisk(uint8_t *buf,uint32_t sector_add,uint32_t cnt) { HAL_SD_ReadBlocks(&hsd,buf,sector_add,cnt,5000);//SD卡讀塊 while(HAL_SD_GetCardState(&hsd)!=HAL_SD_CARD_TRANSFER);//等待數(shù)據(jù)傳輸完成 }
??3.主函數(shù)
??初始化HAL庫、GPIO端口、LCD屏(FSMC驅(qū)動(dòng))、SD卡初始化;獲取卡類型、卡容量,最后調(diào)用SD卡讀寫扇區(qū)函數(shù)實(shí)現(xiàn)數(shù)據(jù)讀寫測試。
uint8_t buf_tx[4096]="SD卡SDIO驅(qū)動(dòng)HAL庫配置測試數(shù)據(jù)STM32F103ZET6 -- Ver1.0"; uint8_t buf_rx[4096]; MX_GPIO_Init(); MX_FSMC_Init(); MX_SDIO_SD_Init(); MX_USART1_UART_Init(); MX_SPI2_Init(); /* USER CODE BEGIN 2 */ char buff[200]; NT35310_Init();//LCD初始化 LCD_Display_Str(LCD_WIDTH/2-strlen("SD卡初始化")/2*8,20,16,(u8 *)"SD卡初始化",BLACK); if(hsd.State!=HAL_SD_STATE_READY) { LCD_Display_Str(20,40,16,(u8 *)"SD Init ERR",RED); } else { LCD_Display_Str(20,40,16,(u8 *)"SD Init OK",RED); LCD_Display_Str(20,60,16,(u8 *)"卡類型:",RED); if(hsd.SdCard.CardType==CARD_SDHC_SDXC)//2.0告訴卡 { LCD_Display_Str(20+8+strlen("卡類型:")*8,60,16,(u8 *)"SDHC",RED); } else if(hsd.SdCard.CardType==CARD_SDSC)//2.0普通卡 { LCD_Display_Str(20+8+strlen("卡類型:")*8,60,16,(u8 *)"SDSC",RED); } snprintf(buff,sizeof(buff),"塊大小: %d byten",hsd.SdCard.BlockSize); LCD_Display_Str(20,80,16,(u8 *)buff,RED); snprintf(buff,sizeof(buff),"卡容量大小: %.2f GBn",(hsd.SdCard.BlockNbr>>11)/1024.0); LCD_Display_Str(20,100,16,(u8 *)buff,RED); } LCD_Display_Str(LCD_WIDTH/2-strlen("SD數(shù)據(jù)讀寫測試")/2*8,130,16,(u8 *)"SD數(shù)據(jù)讀寫測試",BLACK); SD_WriteDisk(buf_tx,100,2); LCD_Display_Str(20,150,16,(u8 *)"SD寫數(shù)據(jù): OK",RED); SD_ReadDisk(buf_rx,100,3); LCD_Display_Str(20,170,16,(u8 *)"SD讀數(shù)據(jù): OK",RED); LCD_Display_Str(20,190,16,(u8 *)"數(shù)據(jù)內(nèi)容:",RED); LCD_Display_Str(20,210,16,(u8 *)buf_rx,BLUE);
4.5 運(yùn)行效果
??將SD NAND FLASH插入到STM32 SD卡座上,使用SDIO方式驅(qū)動(dòng),讀取卡容量信息并進(jìn)行數(shù)據(jù)讀寫測試。
審核編輯 黃宇
-
FlaSh
+關(guān)注
關(guān)注
10文章
1656瀏覽量
150605 -
ST
+關(guān)注
關(guān)注
32文章
1164瀏覽量
129951 -
SD NAND
+關(guān)注
關(guān)注
0文章
86瀏覽量
1406
發(fā)布評論請先 登錄
相關(guān)推薦
NAND Flash與SD NAND的存儲(chǔ)扇區(qū)架構(gòu)差異

評論