存储芯片 emmc、Nand flash、Nor flash之间有什么区别
随着存储领域的发展,有很多不同的存储介质,今天ICMAX就带大家来分一分emmc、Nand flash、Nor flash之间的区别。
一、定义及区别
emmc:全称为embeded MultiMedia Card,是一种嵌入式非易失性存储器系统,由Nand flash和Nand flash控制器组成,以BGA方式封装在一款chip上。
Nand flash:一种存储数据介质;若要读取其中的数据,需要外接的主控电路。
Nor flash:也是一种存储介质;它的存储空间一般比较小,但它可以不用初始化,可以在其内部运行程序,一般在其存储一些初始化内存的固件代码。
这里主要重点讲的是emmc 和Nand flash 之间的区别,主要区别如下:
(1) 在组成结构上:emmc存储芯片简化了存储器的设计,将NAND Flash芯片和控制芯片以MCP技术封装在一起,省去零组件耗用电路板的面积,同时也让手机厂商或是计算机厂商在设计新产品时的便利性大大提高。而NAND Flash仅仅只是一块存储设备,若要进行数据传输的话,只能通过主机端的控制器来进行操作,两者的结构图如下:
(2) 在功能上:eMMC则在其内部集成了 Flash Controller,包括了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。相比于直接将NAND Flash接入到Host 端,eMMC屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 NAND Flash 进行特殊的处理。同时,eMMC通过使用Cache、Memory Array 等技术,在读写性能上也比 NAND Flash要好很多。而NAND Flash 是直接接入 Host 端的,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系统来做坏块管理、ECC等的功能。另一方面,emmc的读写速度也比NAND Flash的读写速度快,emmc的读写可高达每秒50MB到100MB以上;
二、emmc的初始化和数据通信
emmc与主机之间通信的结构图:
其中包括Card Interface(CMD,DATA,CLK)、Memory core interface、总线接口控制(Card Interface Controller)、电源控制、寄存器组。
图中寄存器组的功能见下表:
CID: 卡身份识别寄存器 128bit,只读, 厂家号,产品号,串号,生产日期。
RCA: 卡地址寄存器,可写的16bit寄存器,存有Device identification模式由host分配的通信地址,host会在代码里面记录这个地址,MMC则存入RCA寄存器,默认值为0x0001。保留0x0000以用来将all device设置为等待CMD7命令状态。
CSD: 卡专有数据寄存器部分可读写128bit,卡容量,最大传输速率,读写操作的最大电流、电压,读写擦出块的最大长度等。
SCR: 卡配置寄存器, 可写的 64bit 是否用Security特性(LINUX不支持),以及数据位宽(1bit或4bit)。
OCR: 卡操作电压寄存器 32位, 只读,每隔0.1V占1位, 第31位卡上电过程是否完成。
(5)Device Identification Mode和初始化
MMC通过发CMD的方式来实现卡的初始化和数据通信
Device Identification Mode包括3个阶段Idle State、Ready State、Identification State。
Idle State下,eMMC Device会进行内部初始化,Host需要持续发送CMD1命令,查询eMMC Device是否已经完成初始化,同时进行工作电压和寻址模式协商:eMMC Device 在接收到这些信息后,会将OCR的内容(MMC出厂就烧录在里面的卡的操作电压值)通过 Response 返回给 Host,其中包含了 eMMC Device 是否完成初始化的标志位、设备工作电压范围 Voltage Range 和存储访问模式 Memory Access Mode 信息。
如果 eMMC Devcie 和 Host 所支持的工作电压和寻址模式不匹配,那么 eMMC Device 会进入Inactive State。
Ready State,MMC完成初始化后,就会进入该阶段。
在该 State 下,Host 会发送 CMD2命令,获取eMMC Device 的CID。
CID,即 Device identification number,用于标识一个 eMMC Device。它包含了 eMMC Device 的制造商、OEM、设备名称、设备序列号、生产年份等信息,每一个 eMMC Device 的 CID 都是唯一的,不会与其他的 eMMC Device 完全相同。
eMMC Device 接收到CMD2后,会将 127 Bits 的CID的内容通过 Response返回给 Host。
Identification State,发送完 CID 后,eMMC Device就会进入该阶段。
Host 会发送参数包含 16 Bits RCA 的CMD3命令,为eMMC Device 分配 RCA。设定完 RCA 后,eMMC Devcie 就完成了 Devcie Identification,进入 Data Transfer Mode。
注:emmc初始化和数据通信的过程,有点类似USB协议,USB控制器去发送请求给USB设备,以IN包和OUT包的形式去建立与USB设备之间的通信,默认状态下,USB设备也是0地址的,与控制器分配设备地址。(感兴趣的可以看一下USB2.0的协议,主要是第8和9章内容)
三、eMMC工作电压和上电过程
根据工作电压的不同,MMC卡可以分为两类:
High Voltage MultiMediaCard,工作电压为3.3V左右。
Dual Voltage MultiMediaCard,工作电压有两种,1.70V~1.95V和2.7V~3.6V,CPU可以根据需要切换
我所使用的eMMC实测工作电压VCC为2.80V~2.96V,VCCQ为1.70V~1.82V。
其中VCC为MMC Controller/Flash Controller的供电电压,VCCQ为Memory和Controller之间I/O的供电。
上电初始化阶段MMC时钟频率为400KHz,需要等电压调整到它要求的VCC时(host去获取OCR中记录的电压值,上面有说),MMC时钟才会调整到更高的正常工作频率。
N1刷机避坑指南:CoreELEC 920刷入eMMC及配置,外挂随意
本内容来源于@什么值得买APP|作者:
创作立场声明: 大男孩的快乐,就是带你们一起避坑,哈哈哈。
本文一共3467字,46图,需用时10分钟,请多多关照。
前言:
此篇文章开的早,本来是想多弄一些CoreELEC的插件的,但一直没时间整理,又掉入了Homeassistant和Docker系统的坑,原本这篇文章就要沉入草稿箱了,一直以为大男孩的快乐是单篇热度,没想到是总和的。这篇文章也算是赶鸭子结尾,难免有错误,希望对你们有所帮助。
之前这两篇对系统介绍的比较简单,主要针对的是刷机过程,本篇主要讲如何把CoreELEC 9.2.0刷入eMMC,以及配置,至于外挂EmuELEC呢,还是Armbian,都随便你啦。本文只提供9.2.0固件,感谢固件原制作者,忘了谁了(目前CoreELEC已经是9.2.2了,本文提到的是9.2.0,如果网上有N1适用的9.2.2固件,替换即可,不是N1的不能用)。
其他关于N1的内容,请参看我N1刷机避坑指南系列文章,在此不添加,因为相关性不大。
目录
1、什么是CoreELEC
2、CoreELEC 9.2.0 刷入eMMC
2.1 刷入U盘
2.2 开机设置
2.3 刷入到eMMC
3、CoreELEC 9.2.0 设置
4、CoreELEC插件安装
5、总结
1、什么是CoreELEC
CoreELEC是一个轻量化的Linux系统,并且针对Amlogic芯片优化,用于使用Amlogic芯片的盒子上运行Kodi。
Kodi媒体中心是一个屡获殊荣的自由和开源的跨平台媒体播放器和用于HTPC(Home theater PC,家庭影院PC)的数字媒体娱乐中心软件,可以运行在Linux、OSX、Windows、Android系统。很多人会把Kodi装载盒子的安卓系统下,也可以,正常使用问题也不大,就是有时候播放4K视频时,安卓下的Kodi会掉帧。而CoreELEC下的Kodi,会发挥盒子芯片该有的性能。
Kodi媒体中心是一个屡获殊荣的自由和开源的跨平台媒体播放器和用于HTPC(Home theater PC,家庭影院PC)的数字媒体娱乐中心软件,可以运行在Linux、OSX、Windows、Android系统。它是一个优秀的自由和开源的(GPL)媒体中心软件。最初为Xbox而开发,叫XBMC(全称是XBOX Media Center),顾名思义就是XBOX平台的媒体中心。对于XBOX玩家来说如果没有安装XBMC,那么玩XBOX至少失去一半的乐趣。因为全世界开发者的参与,这个软件已经拥有远远超过以往的功能,这已经不能用‘一个简单播放器’来包含所有的一切了。因为这个原因,XBMC.14后更名为Kodi。
至于Kodi能干什么,这里就不过多介绍了,能干的事情多了,哈哈哈。
2、CoreELEC 9.2.0 刷入eMMC
准备工作:U盘刷机工具 (提取码:vdnh)、固件(提取码:qtxi)
2.1 刷入U盘
刷入到eMMC的教程其实比较简单,首先呢,把固件先刷到U盘里,不明白的可以看我之前的文章。
固件9.2.0刷入U盘
可以看到U盘分为了一个可识别盘和一个不可识别盘。
两个盘
然后解压N1刷入coreelecv9.2替换文件,将里面的内容覆盖到盘符为COREELEC的那个盘,替换掉原文件。
这些复制并覆盖到COREELEC盘
2.2 开机设置
然后把U盘插到N1靠近HDMI的那个U口,上电开机,这一过程就是等待,期间可能会黑屏,不用担心。
U盘安装中
完成后进入首页,语言先不要设置。
标志性的红色主题
可以接入手柄或者鼠标进行操作,T1的遥控器在这里没有用,手柄A确定,B返回,鼠标左键确定,右键返回。
可以更改自己的Hostname。
更改为自己的名字
可以通过网线和Wifi连入互联网。
Wifi和网线都可以
SSH和Samba开启并设置复杂性高一点的密码。
打开SSH和Samba
最好设置密码
下一步,下一步,就可以进入主页了。然后要先把自动更新关闭,进入左上角齿轮设置。
齿轮设置
选择最后一个CoreELEC。
CoreELEC
在Updates里的Automatic Updates的auto改为manual。
关闭自动更新。
退出进入到Interface设置。
Interface
先在Skin界面的fonts把字体从Skin default改为Arial based,否则中文会乱码。
改fonts
然后去Regional里把Timezone country改为China。
更改时区
然后更改Language,联网后等待一段时间再更改语言,否则可能里面没有其他语言显示。
坑1:一定要连接wifi后等待一段时间,语言里才会有简体中文选项。
更改语言
改成简体中文
2.3 刷入到eMMC
通过putty工具进入到CoreELEC的IP地址,输入SSH的用户名:root,密码就是刚开始设置的密码。输入指令:
/flash/installtoemmc
然后界面会提示你是否确认此操作,确认请输入yes。
输入yes
然后中间会提示你是否把用户数据拷入eMMC,选择yes,也可以选择no,然后开机设置到时候需要重新设置。
用户数据拷入
过程很快,可能系统已经运行在内存里,所以拷入到eMMC特别快。然后会提示是否重启,选择y。
重启
重启之后,有可能会卡在安卓机器人界面,不要怕,拔掉电源,拔掉U盘,再插上电源就可以了。启动进入到CoreELEC主页后,其他用户设置都在,除了网络,所以网络需要重新设置,如果是网线没关系,Wifi需要进入到齿轮设置—>CoreELEC—>连接,选择自己的Wifi连接即可。
3、CoreELEC 9.2.0 节目源设置
关于如何添加节目源和PVP插件的,本人用的是bilibili里的Kifen的步骤,可以详细参考原作者的。
首先进入到电视,选择进入插件浏览。
进入插件浏览
然后选择PVR IPTV Simple Client确定。
PVR IPTV Simple Client
选择安装,会自动退出到上一个界面进行安装。
安装。
安装需要几分钟,完成右上角会有提示,以及插件前面会变成√。
安装完成
然后确定键进入插件,选择设置。
设置节目源
节目源可以通过位置处确认键切换远程路径和本地路径。远程路径只要填入URL的地址就可以了。
远程路径
本地路径有好多方式,但是不要用USB,因为设置完成是要重启的,插着USB会导致无法重启到主页。
本地路径
本地路径方式
如何把节目源放到CoreELEC里面,我使用的是WinSCP软件,直接拖到主文件夹里的Music里。
另外,可以添加电子节目单,这样子就能看到电视节目预告了。
电子节目单设置
设置后需要重启
重启后进入到电视—>频道,就可以选择想要看的节目啦。
频道
选择电视节目
如果想重新设置节目源,需要进入到齿轮设置—>插件—>我的插件PVR客户端—>PVR IPTV Simple Client—>设置,进行重新设置。
节目源设置完后,如遇到没有声音,则需要设置一下音频输出,齿轮设置—>系统—>音频—>音频输出设备,改为ALSA: AML-AUGESOUND, HDMI。
更改音频输出设备
如果还没有声音,需要到电视节目进行设置,选择右下角的齿轮设置。
齿轮设置
选择音频设置。
音频设置
把音量那一栏调为0,默认可能是个负数。
音量增益调节
音量设置最好有个鼠标接入会比较好调节,本人用的360手柄,着实非常难受,音量大小默认居然是右摇杆。
4、CoreELEC插件安装
本来这部分割掉了,因为其他倒腾其他固件的影响,但是想想还是写一点吧,虽然只装了一个天气插件。
默认天界界面是可以直接进入到插件安装的,但是我这里为了文章先卸载了,所以显示不对。
天气界面
可以直接进入到插件库来进行安装,以下图片可能会略微有顺序错误,因为拍的比较早。
从库安装
所有库
这里选择天气,可以看到有很多插件可以安装的。
天气
选择雅虎天气。
雅虎天气
第一次需要安装,过程和IPTV插件一样的,然后需要进行设置。
这是安装好后的界面
设置主要是设置你的地区,因为天气预报是根据地区来的,可以添加多个地点。
地点设置
输入需要用英文。
输入地点
因为英文导致很多地区名称一样,所以需要在搜索出来的地点中选择你的城市。
选择所在地
设置好后,退回到主界面,就可以看到天气啦,我忘了默认是10天还是一周的天气预报。如果没有显示可以重启一下系统。
天气界面
天气插件的安装和设置非常简单的,当然,可以看到插件库有非常多的插件可以安装,笔者在这里没有时间一一尝试,后期有空的时候再折腾这个CoreELEC吧,目前还在弄Homeassistant。
5、总结
这篇文章,我其实是不满意的,因为还没有设置局域网的硬盘,本人是想让N1做一个轻量化NAS,然后部署个硬盘在上面,作为媒体中心和照片备份,这段时间出文慢了,卡在homeassistant的坑上,HACHINA的M1方案也不可行,所以我就把M1刷机了,另外刷机的还有TC1。
MQTT服务的搭建也花了我一些时间,网上的教程总是模棱两可,目前解决了,docker搭建emqx和非docker搭建mosquitto。我会在下一篇homeassistant的文章里主要讲TC1和M1的刷机(M1的劫持被我放弃了),以及MQTT的搭建,还有Homekit的连入。原本计划的USB摄像头,由于网络的原因没弄好,要先割了,虽然很需要这个功能来看娃。
另外,有一个小篇会写一下,就是如何把N1强制刷回安卓系统(给需要的新手)。
相关问答
emmc 刷机 固件 能刷进入但启动不了系统?1.请先确认下电池是否有电,很可能是电池电量太低导致开不了机,建议用标配的充电器+数据线进行充电20-30分钟后再尝试开机;2.如充电后还是无法开机,建议多...
电视 emmc 引导程序提取方法?电视的EMMC引导程序是一种预安装在电视内部的软件,用于引导电视启动并运行操作系统。通常情况下,电视厂商会将EMMC引导程序与电视操作系统一起打包,并将其...
红米note工厂方式清除 emmc 后,怎么救砖-ZOL问答根据您的描述,建议您到官网下载固件升级包恢复一下手机系统的,各机型固件升级下载地址:http://www.vivo.com.cn/service.html固件升级操作说明:http://bbs.viv...
台电X80h双系统版都在预售了,那么X80h的双系统 固件 及刷机教...尊敬的台电用户,您好:台电X80h双系统固件可到台电科技官网下载。感谢您对台电...1、台电完美双系统,正版Win8.1与Android双系统自由切换;2、采用Intel64位X8...
mv300与mv310的 固件 通用不?通用,一般大部分的固件是海思芯片通用的,所以具体问题具体分析。其次就是还需要注意闪存的型号,有两种,一种NAND闪存,另一种EMMC闪存。通用,一般大部分的固...
智器u7h投影平板能刷系统吗?能国内着名数码品牌智器正式发布旗下U7投影平板的Android4.2系统固件。新固件将多方面的提升U7的平板体验,不仅提升了平板运行的流畅度,还有Android4.2系统新...
台电的双系统平板怎么删除android系统-ZOL问答1、台电完美双系统,正版Win8.1与Android双系统自由切换;2、采用Intel64位X86架构BayTrail处理器,1.83GHz主频,22nm制程;3、采用2G64bitDDR...
刷recovery的时候卡住不动了,怎么处理-ZOL问答zhanglincong009重新刷过,可能你的包问题一、保证你的刷机软件是最新版本,(当然其他版本也不一定不成功),目前我知道的最新版是:FlashToolV3.1328下面有下...
小米盒子怎么刷鸿蒙os?详细教程如下:一、拿到盒子,首先降级Bootloader,刷入第三方固件;二、然后按照说明,制作好Linux启动盘,插入N1正常启动,并配置好用户名密码,网络连接等,...
小米路由器PRO的CPU MT7621在当今路由器中属于什么水平?全球无线通讯及数字多媒体IC设计领导厂商联发科技股份有限公司(MediaTekInc.),2013年11月宣告推出面向802.11ac高端路由器的全新双核网络芯片MT7621A。MT76...