M.2、mSATA、NGFF、miniPCI-e接口引脚定义

2023-10-30

http://bbs.pceva.com.cn/thread-96050-1-1.html

NGFF M.2(以下下简称M2)和SATA Express(以下下简称SATAe)是用以替代当前MiniPCI-Express(以下下简称MIni PCIe)/mSATA和SATA的新一代接口。

M2接口和SATAe接口已经可以在部分新款笔记本电脑和Intel 9系列主板上见到了,因为易与现有的接口相混淆,在这里做一个简单介绍。

一、M2

M2是目前常见于无线网卡、3G网卡和部分小型SSD的Mini PCIe/mSATA的替代升级版,具备小尺寸、低高度、集成度更高的优势。
在这里插入图片描述

M2接口、板卡因尺寸规格(长宽高)和键位(Key)不同,分为多种规格。下面引用链接器制造商TE的一篇PDF,

简单说明。

可以看出,M2是以宽度长度-高度-键位,这4个参数来区分不同规格的。特别是最后一项键位,它特别区分了用途。

在这里插入图片描述

比如举例中的2242-D2-B-M,是一个宽度22mm长度 42mm双面各高1.35mm B+M键位的M2插卡,这块插卡应当是一块SSD,具备PCIe x2及SATA接口(当然任何M2设备只能用其中一种接口,具体使用哪个接口由主控决定)。
在这里插入图片描述

(上图分别是mSATA规格和M2 2280-D2-B-M规格的Intel 530 SSD)
在这里插入图片描述

(上图是2280-D2-M规格的三星XP941 SSD)

在这里插入图片描述

(上图分别是Mini PCIe半高规格和M2 2230-S3-A-E规格的Intel 7260无线网卡)

在这里插入图片描述

(上图是华硕Z97杜蕾斯,可以看到PCH散热器下方靠近SATAe端口旁边有一个M2 M键插槽,可以支持M2 2260和2280两种规格的SSD)
通过上面的例子可以看出M2插卡、插槽的用途可以通过键位来区分。同时,每种规格中也包含多组数据/信号通道,供不同用途使用。跟Mini PCIe/mSATA一样,M2接口的金手指也是两面交错排列的。这里为了说明,给几种常见规格的针脚定义。
在这里插入图片描述

(上图 M2-A,键位在pin8-pin15。具备PCIe x2、NFC、Display Port和USB 2.0通道等)

在这里插入图片描述

(上图 M2-B,键位在pin12-pin19。具备SIM卡、音频、PCIe 2.0、SATA及USB 3.0通道复用通道等)

在这里插入图片描述

(上图 M2-E,键位在pin24-pin31。具备PCIe x2、NFC、SDIO、PCM、USB 2.0通道等)

在这里插入图片描述

(上图 M2-M,键位在pin59-pin66。具备PCIe x4及SATA复用通道)
在这里插入图片描述

(上图 M2-1216 HMC规格,非插卡形式,主要用于通信模块)

在这里插入图片描述

(上图 M2-2226 HMC规格,非插卡形式,依然是通信模块)
在这里插入图片描述

(上图 M2接口金手指及键位布局,可以看到金手指是交错排列的)

从规格中我们可以看到除了A B E M四个键位以外,还有其他键位,但大部分尚未应用。

M2的键位设计的比较有迷惑性,像当年DDR内存一样,容易被强插导致插反。比如A和M键位,注意数一下两面剩余的金手指片数,一个是4/3,一个是5/4。另外就是碰见不熟悉的,不要强插,以免损坏。

从针脚定义图中可以发现A及E的针脚定义有一定的共通性,B及M的有一定共同性,但AE/BM二者之间差异较大。也就是说M2接口是通过不同的键位加以区别的,不能通过物理损坏的方式,强行将其他键位的插卡插入不合规格的插槽中。

跟Mini PCIe/mSATA接口类似,B M键位的M2接口的PCIe通道和SATA通道也是复用的,通过一组检测针脚来判断设备是走PCIe通道还是SATA通道,同一设备只能用其一。

M2接口也是只用3.3v为输入电压,如果未来会有向2.5"转接的设备,可能需要DC-DC转换或者要求直接3.3V输入。

点评:

M2接口在设计之时就考虑到了可用于多种用途,多种尺寸规格可以用在不同场合之中(不仅有前面介绍的22mm宽度和HMC模块形式,还有16mm和30mm宽度,在最后的资料中提供),而且未来还有进一步扩展的空间。

但就是因为规格太多,容易使人发生混淆和兼容性的障碍。就比如一台笔记本里面是2242规格的插槽,那么其他2260/2280规格的SSD就肯定无法使用;同样,如果2260规格的插槽在42mm位置没有预制螺丝孔,那么也没法使用2242规格的SSD。

现阶段M2规格的设备尚少,某些厂家走在了前列,或者同时推出M2和Mini PCIe/mSATA规格的设备。在购买时候一定要确定插槽的规格,以及设备的规格。除了尺寸和键位以外,还要注意SSD走的是PCIe通道还是SATA通道。如果同一款SSD既有mSATA规格又有M2规格的(比如Intel 530),那么肯定是走SATA通道的,不要被外形所迷惑。

二、SATAe

SATAe是目前SATA接口的升级版,有点类似于M2,也是PCIe x2及SATA的复用接口。

SATAe并不是全新设计的接口,它是在现有SATA接口上加以改造得来的,借鉴了一部分SAS接口的设计。
在这里插入图片描述

如上图所示:(a)是SATAe设备端插头;(b)是SATAe数据线设备端插口;©是SATAe热插拔背板设备端插口;(d)是SATAe主机端插口;(e)是SATAe数据线主机端插头。

这里我们跟现有的SATA接口和数据线插头找不同就可以了。如果手里有空闲不用的SATA硬盘和数据线/电源线(一体的最好),可以拿来进行对比。如果手里有SAS接口设备更佳。

先说设备端。

目前SATA设备的接口是分两段——数据线7pin和电源线15pin,有一个"7"或者"L"形的舌头或者缺口。在SATAe里面,"7"和"L"拐角处被连接起来,也就是舌头成了一个完整的平面,底下空缺。同时,在连接处的另一面多了7pin金手指。

不太形象?这里借用一下SAS接口用以说明(SAS接口跟SATAe的设备端接口具有很大的相似性)。
在这里插入图片描述

A段和C段是SATA、SATAe、SAS接口共有的部分,B段是SATAe和SAS接口独有的部分。SATAe接口和SAS接口B段的物理外形并不完全相同,结合最上方图(b)的就能发现SAS接口是B端下方整个掏空了,而SATAe接口B端下面依然有个突出。这也就保证SAS和包括SATA一体线缆无法插入SATAe设备中,反之,SATAe线缆可以插入SATA和SAS设备中。
在这里插入图片描述

换个视角。看你手里SATA硬盘的接口、最上方图(a)(b)和上图。SATA接口是"7"和"L"中间是断开的;SATAe接口是"7"和"L"拐角处被连接起来,但底下空缺一块;SAS接口是"7"和"L"拐角处整个连成一体。

再到主机端。

SATAe接口的主机端实际上就是两个SATA接口并排,再加上一个只有4pin的缩小版SATA接口。这是为了保证向下兼容性,毕竟SATAe接口是复用PCIe x2及2组SATA线路,如果不考虑兼容性的话,接口浪费会很严重,而且难以布局。

其实还有一种只有PCIe x2线路的SATAe接口,实在最上方图(d)的SATA接口中多了几个凸起,这样SATA数据线缆就无法插入这个接口,只能用专门的SATAe PCIe x2线缆。

也许有人要问,既然是用PCIe x2替代两组SATA线路,那么为什么还要多4pin接口?除了物理上加以区分以外,其中一个原因就是SATA是存储专用,但PCIe是外围通用,不仅要有数据pin,还要有时钟pin等。

SATAe我没有找到确切的针脚定义,但基本上可以推断出是PCIeTx+/Tx-/Rx+/Rx-与SATA Tx+/Tx-/Rx+/Rx-相复用,PCIe额外要用的针脚可能与其他针脚相复用。这也就导致SATAe线缆虽然能插进SAS设备中,但实际上没法用。

点评:

SATAe是为了解决目前标准2.5"和3.5"外形存储设备带宽而设计的,出发点是好的,但可能很快沦为鸡肋。

为了保证对SATA的向下兼容性,SATAe的接口占地面积过大。相对于M2小巧的接口,SATAe简直巨大,而且带宽只有M2 M键规格的一半(这还不算上M2可以用来自CPU的PCIe 3.0,但SATAe目前只能用PCH提供的PCIe 2.0的差异),在有更大带宽的设备时,新的瓶颈就会出现。所以SATAe很可能只是过度设备,或者只能作为消费级平台上的非固定存储设备。因为:
1 在不追求单一设备高带宽的情况下,有便宜量又足的SATA 6Gbps(半双工)。即使主板原生的不够用,还有低成本的PCIe SATA扩展卡。
2 在追求高可靠性和高可用性的情况下,有双端口SAS,单端口带宽就可达12Gbps(全双工)。可以通过SAS HBA和SAS Expender成规模扩展。
3 在追求高性能的情况下,有PCIe插卡形式的SSD(包括M2)。可以自主选择x2 x4 x8甚至更高的PCIe链路需求,以实现更高带宽。
4 在同时追求高性能和热插拔的情况下,有为下一代NVMe SSD设计的多功能接口 SFF-8639。包含6条数据通道,可用于PCIe 3.0 x4、SATAe x2、SAS 12Gbps、SATA 6Gbps,根据需要以分配。

SFF-8639,目前可见于Intel和三丧最新的2.5" PCIe NVMe SSD和DELL PowerEdge R920服务器上。
在这里插入图片描述

SFF-8639接口在SAS接口(SFF-8482)的两面上都排列了针脚,使其具备6条数据通道(复用):白色SATAe x2;白色及灰色SAS x4;黑色PCIe x4。
未来的SATAe设备接口可能会转向SFF-8639接口,以适应下一代需求。

由于Intel决定不在新的9系列平台上提供对SATAe的原生支持,所以目前计划推出的9系列新主板也只有部分高端型号加入了该接口,但PCH PCIe链路争抢严重,加之与CPU通信的DMI总线只有相当于PCIe 2.0 x4的带宽,所以即使有了新接口,但也难以发挥出优势。况且目前尚无量产的SATAe设备,主板上的接口只能暂时当一般的SATA接口使用,或者转接为标准PCIe 2.0 x2插槽使用。

下一代原生PCIe的SSD主控,比如SF-3700系列,前端同时提供PCIe x2和SATA两种接口,配合SATAe接口也许能发挥最大作用。

三、M2和SATAe带来了什么

显而易见的就是更高的带宽。PCIe 2.0 x2 10Gbps要比SATA 6Gbps快了66%,如果升级成PCIe 3.0 x4更是快了5倍以上。

但这是对目前最常见的SATA来说。在数据中心和其他有RAS要求的环境中广泛应用的SAS具备双端口功能,而且是全双工(SATA是半双工)。在SAS 6Gbps下,利用双端口就可以实现12Gbps的总带宽,已经可以超过目前大部分M2和SATAe设备的带宽。而且SAS已经进化到12Gbps,双端口也就是24Gbps的带宽,仅比PCIe 3.0 x4的32Gbps少了1/4。(其实不应该这么比,SAS的双端口很多时候是作为冗余用的,目的是防止单点故障;而且一个是企业级一个是消费级,设计思路是不同的)

存储接口纷纷拥抱PCIe的一个原因就是PCIe可以通过多通道轻松倍增带宽,x1-x2-x4-x8-x16。而SATA只能通过RAID的方式间接增加带宽,逻辑更复杂了,系统的不稳定因素也更多了。

但系统中的PCIe资源是有限的。Intel LGA1150 CPU只有16条PCIe通道,9系列芯片组可以拿出8条(其中1条必然要被集成网卡拿走),其中有多少资源可以供给M2和SATAe用?高端主板上排满了PCIe x16插槽和各种板载设备,还要留出空间给M2和SATAe,资源争抢非常严重。要知道先前提到的配备PCIe NVMe SSD的DELL PowerEdge R920是四路E7v2的服务器,总共有160条PCIe 3.0通道,因此分8x4条出来给存储用完全无压力。

当然主板厂商可以依靠老办法——PCIe通道切换开关和PLX桥接芯片来最大化PCIe布局。最后的结果可能是密密麻麻的一板子接口,大部分是摆设;或者一堆设备争抢一条窄路,看上去美,但用起来受罪。(合理应用PCIe开关和PLX桥接芯片可以最大化资源利用,但前提是合理;为确保使用体验,用户也应该知道哪些接口共用了一条通道;我不想再说说明书的重要性,但消费级主板厂家的说明书大都是摆设)

至于曾经提及的延迟问题,仅仅是从SATA转向PCIe并不会带来实质的进步。相反,转接过多的话,延迟会不降反增。这跟多卡SLI/CF,用PLX方案的性能要比原生通道拆分的低是一个道理。

也许主板厂商可以大胆地分配一路PCIe 3.0 x4给M2接口与最后一条PCIe x16接口共用,但这目前也是象征意义大于实际意义。直接用CPU的PCIe通道固然可以降低延迟提高性能,但这也限制了显卡的扩展,而且目前尚无PCIe 3.0 x4的M2 SSD。所以就实用来说,对主板厂商还是用户,都是一个两难境地。而这种尴尬局面也许需要更多的CPU PCIe通道(比如LGA2011平台)和未来新设备的发展才能解决。

mSATA接口是标准SATA的迷你版本,由于mSATA SSD占用体积比2.5寸标准更小,因而在不少笔记本中得到采用。同时mSATA接口的SSD可以方便固定在主板上成为一体,也开始受到不少台式机用户的喜爱。

mSATA接口与mini PCI-E接口的外观相同,并且物理引脚相容。但并不能直接互通使用。这给不少人带来了疑惑。有朋友买了mSATA SSD回来却发现安装后无法识别SSD。

在这里插入图片描述

mSATA接口的美光M4 64G,本站曾有测试: http://bbs.pceva.com.cn/thread-51870-1-1.html

mSATA的接口外观上虽然与mini PCI-E完全一样,但是数据信号需要连接到SATA控制器,而非PCI-E控制器上,二者因此不能兼容。大多数主板的此类接口只能使用其中一种功能。

要实现一个接口同时兼容mSATA与mini PCI-E,需要使用PCI-Express/SATA路由芯片来解决。这个芯片本质上就是一个双向多路复用器,以NXP CBTL02042芯片为例:

在这里插入图片描述

mSATA和mini PCI-E接口有着相同的外形和类似的引脚分配。CBTL02042通过第43针脚来识别当前插入到插槽中的是mSATA设备还是mini PCI-E设备:mini PCI-E设备的第43针被定义为no connect未连接,而mSATA的第43针定义是GND地线。

识别设备类型后,路由芯片就能够将接口导通到对应的通道,从而实现了一个接口兼容mSATA与mini PCI-E两种设备的目的。目前来看这是最完美的解决方案。

市面上提供mini PCI-E/mSATA插槽的主板大致分为4类:

只提供mini PCI-E:

多数主板属于此类。mini PCI-E接口主要就是用于安装无线网卡,提供板载Wifi功能。

技嘉GA-H77N WIFI提供了一个mini PCI-E插槽,搭配安装半高规格的无线网卡。

只提供mSATA:

技嘉的GA-B75-D3V,提供了一个mSATA插槽,专门用于mSATA SSD。

同时提供mini PCI-E与mSATA接口:

华擎Z77E-ITX同时具备mSATA(背面)与mini PIC-E(正面)插槽,论坛内的McLaren发过此型主板的开箱文展示:http://bbs.pceva.com.cn/thread-70944-1-1.html

正面的mini PCI-E插槽,用于安装无线网卡(附送)。

背面的mSATA插槽,用于安装mSATA接口的SSD(非标配):

双向多路复用,同时兼容mSATA/mini PCI-E:

微星Z77IA-E53(本站评测:http://www.pceva.com.cn/article-1353-2.html)

能够同时兼容半高与全高规格的设备:

总结

由于mSATA接口需要复用主板的SATA接口,目前多数主板的mSATA接口为3Gbps规格(SATA2.0)。6Gbps(SATA3.0)速率的mSATA更多的出现在笔记本上。

mSATA SSD的大小约为51mm30mm,为全高mini PCI-E卡的长度。
mini PCI-E无线网卡多数为半高规格,约为27mm
30mm。当然了,也不能排除有Intel 3945这类全高规格的,不过半高规格还是占据了多数。

mSATA与mini PCI-E接口的外观相同,安装位的规格可以作为判断接口类型的一个参考。半高位的基本可以肯定是用来安装无线网卡的mini PCI-E插槽;而要判定插槽为mSATA,除了安装位需要是全高规格以外,最好还是查一下主板厂商的资料进行一下确认。多数支持mSATA的主板会进行明确的标注,而如果没有相关信息,则该插槽很可能是mini PCI-E标准的

mSATA引脚定义
在这里插入图片描述

Mini PCI-E引脚定义
在这里插入图片描述

在这里插入图片描述

本文来源于:《NGFF、M.2、mSATA、miniPCI-e基础知识入门》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

M.2、mSATA、NGFF、miniPCI-e接口引脚定义 的相关文章

  • JMETER接口测试_用户登录(MD5加密)

    JMETER接口测试 用户登录 密码MD5加密 1 给整个线程组 添加全局变量 TestPlan gt 线程组 gt 右键 gt ADD Config Element gt User Defined Variables 全局变量的意思 整个
  • 【电路设计】单节锂电池使用

    前言 最近在研究如何利用单节锂电池给3 3V单片机供电 找到两个比较好的教程 单节锂电池如何转3 3V 升压还是降压 锂电池接了保护板 就可以用五伏电压直接充电了吗 其中上面提到的LDO 这里有一个型号 ME6209 MP2155应用示例
  • 【电路设计】肌电信号采集电路分析

    最近在开发肌电信号的采集 表面肌电信号是非常微弱的生物信号 正常人体表面肌电信号赋值为0 1 5mV 主要能量频段集中在10 150Hz 电路主要是根据原始信号 设计相应的放大电路 滤波电路 详细可以看这个链接
  • 晶振PCB Layout

    晶振PCB Layout 前提摘要 个人说明 限于时间紧迫以及作者水平有限 本文错误 疏漏之处恐不在少数 恳请读者批评指正 意见请留言或者发送邮件至 noahpanzzz gmail com 参考 B站唐老师讲电赛 跟着大厂学画PCB 2
  • 肌电信号采集电路分析

    最近在开发肌电信号的采集 表面肌电信号是非常微弱的生物信号 正常人体表面肌电信号赋值为0 1 5mV 主要能量频段集中在10 150Hz 电路主要是根据原始信号 设计相应的放大电路 滤波电路 下面直接放原理图说明 一级放大电路 一级放大电路
  • Cisco_路由器基础命令

    Cisco 路由器基础命令 1 接口描述 路由器F0 1 或S0 1 接口命名为ABC Router config interface fastEthernet 0 1 进入到接口fastEthernet 0 1 Router config
  • BUCK电路原理及PCB布局与布线注意事项

    1 BUCK架构 Buck架构 当开关闭合的时候 当开关断开的时候 根据伏秒平衡定理可得 Vin Vout DT Vout 1 D T gt Vin Vout D lt 1 在实际DCDC应用中 当Q1闭合的时候 在图1 a中 红线示出了当
  • LED为何通过电流控制?

    前段时间 散热部的同事咨询我关于手机的闪光灯输出电压值 说实话 一时间把我问住了 关于闪光灯 以往我们关注电流值 电压值很少关注 虽说手机的闪光灯驱动IC输出为BOOST电路 但是输出电压到多少 我还真未了解过 因闪光灯本身属于电流控制 所
  • 每日一库之Go 强大而灵活的电子邮件库:email

    发送邮件是一个很常见的需求 用户邮箱验证 邮箱召回等 Go 语言标准库自带 net smtp 库 实现了 smtp 协议 用于发送邮件 然而这个库比较原始 使用不方便 而且官方声明不再增加新功能 于是乎出现了一些强大的第三方邮件库 今天推荐
  • Java中抽象类和接口区别

    简单概括下Java中抽象类和接口直接的区别 可以概括为如下几点 1 一个类可以实现多个接口 但却只能继承最多一个抽象类 2 抽象类可以包含具体的方法 接口的所有方法都是抽象的 3 抽象类可以声明和使用字段 接口则不能 但接口可以创建静态的f
  • JMeter性能测试,完整入门篇

    1 Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 相比Loadrunner而言 JMeter小巧轻便且免费 逐渐成为了主流的性能测试工具 是每个测试人员都必须要掌握的工具之一 本文为JM
  • C#中的接口(interface)

    接口的命名规范 I 名词 接口与抽象类的区别 接口是由抽象类演变而来的 抽象类是未完全实现逻辑的类 其内部可以有抽象成员 也可以有非抽象成员 且子类在覆写抽象成员时 需要修饰符override 而接口是完全未实现逻辑的 其内部只允许存在抽象
  • apifox图片验证码显示

    添加后置脚本 脚本内容如下 var resp response pm response json let img resp response data let template img src img pm visualizer set t
  • 什么是TDD?

    作为手机硬件开发者来说 TDD问题的debug绝对是最有意思的一件事情 即使你有再丰富的手机行业开发经验 在前期的设计中都不一定能完美的排掉这个雷 同时在后期发现问题的debug中 也会走很多弯路 所以TDD问题一直是手机开发者头疼的问题
  • 如何优雅的统计代码耗时

    点击上方 小强的进阶之路 选择 星标 公众号 优质文章 及时送达 预计阅读时间 16分钟 作者 Jitwxs 原文链接 底部链接可直达 https jitwxs cn 5aa91d10 html 一 前言 代码耗时统计在日常开发中算是一个十
  • IDEA的好用小工具Test RESTful web Service

    Test RESTful web Service 一 2021版IDEA界面 二 2019版 我安了个插件叫Old REST Client来还原这个样子 三 代码demo示例 补充 好处 可以减少postman的使用 简单的可以用这个 脚本
  • SAP PO上传异步接口(PO发布Webservice)

    导语 接口是SAP与其他系统进行数据交互的一种方式 在这篇文章中主要讲述通过PO实现的上传接口 即SAP被动接收其他系统发送的数据 注意 对于配置中涉及的基本组件的介绍和创建在前面的博客有说明和介绍 再次不做过多赘述了 一 ESB Ente
  • 对接第三文件下载接口,通过restTemplate或java执行linux的cmd指令完成

    文章目录 对接第三文件下载接口 通过restTemplate或java执行linux的cmd指令完成 1 业务场景 2 通过restTemplate exhcange 方法下载文件 3 通过java调用linux指令进行文件下载 4 Web
  • C#创建一个收费接口Charge,其中有一个方法charge();创建另一个收费接口Play,其中有一个方法play()。声明类Bus来实现接口Charge,对于Bus中的charge()实现为输出“

    创建一个收费接口Charge 其中有一个方法charge 创建另一个收费接口Play 其中有一个方法play 声明类Bus来实现接口Charge 对于Bus中的charge 实现为输出 公共汽车 1元 张 不计公里数 声明类Taxi来实现接
  • 容器与云的碰撞——一次对MinIO的测试

    事先声明 本次测试过程完全处于本地或授权环境 仅供学习与参考 不存在未授权测试过程 本文提到的漏洞 MinIO未授权SSRF漏洞 CVE 2021 21287 已经修复 也请读者勿使用该漏洞进行未授权测试 否则作者不承担任何责任 随着工作和

随机推荐