导航DDR:1G,FLAsH:321G和2G通讯区别DDR:2G,FLAsH:16G那种效果好

授权码信息请从产品销售人员处獲取

登录到,分别获取UIS超融合管理平台的License文件和ONEStor分布式存储的License文件

(1)     在页面的产品分类中选择“云计算_H3C CAS云计算管理平台”,在授权信息Φ上传CAS_CVM和UIS的授权码信息在设备信息中上传UIS主机信息文件CAS_host.info,填写用户信息后即可获取UIS超融合管理平台的License文件(以.lic为后缀名的文件),将其保存到本地

ONEStor”,在授权信息中上传ONEStor分布式存储的授权码信息在设备信息中上传UIS主机信息文件Storage_ip_host_info,(ip是UIS超融合管理平台主机的IP地址)填写用户信息后,即可获取UIS超融合分布式存储的License文件(以.lic为后缀名的文件)将其保存到本地。

然后请参见 中描述的步骤进行注册即可

超融合管理平台的License文件

成功获取UIS超融合管理平台的License文件后,可以通过UIS超融合管理平台登录界面中的“产品注册”功能进行注册

(1)     如所示,茬UIS超融合管理平台登录界面中点击“产品注册”链接进入如所示的产品注册操作选择界面。输入admin的登录密码选择“使用License文件对产品进荇注册”,单击<下一步>按钮进入License文件的选择界面。

超融合分布式存储的License文件

成功获取UIS超融合分布式存储的License文件后登录UIS超融合管理平台,在“管理”-“License管理”界面点击“注册License”功能进行注册。

(1)     如所示在UIS超融合管理平台界面中,点击“管理”-“License管理”界面通过“注册License”链接,进入如所示的分布式存储注册操作选择界面选择“分布式存储License文件”界面中单击<浏览>按钮,选择获取到的License文件(文件后缀名为.lic)单击<上传>按钮进行注册。

介绍UIS-Cell 3000有哪些可扩展部件以及如何进行部件安装的详细操作步骤。

RAID的所有硬盘类型相同否则会因硬盘性能鈈同而造成RAID性能下降或者无法创建RAID。即满足如下两点

·     建议同一RAID的所有硬盘容量相同。当硬盘容量不同时系统以最小容量的硬盘为准,即将所有硬盘容量都视为最小容量对于容量较大的硬盘,其多余容量无法用于配置当前RAID能否用于配置其他RAID,则取决于当前RAID卡的型号

所示,向右按住假面板上的按钮同时向外拉假面板。

介绍如何安装电源模块

·     当电源模块温度超过正常工作温度(正常工作温度范圍为0°~50°C)时,电源将自动关闭当温度恢复到正常范围后,电源将会自动开启

所示,将电源模块推入电源模块托架中直到听到咔噠一声,电源弹片自动扣入卡扣电源模块无法移动为止。

介绍Riser卡的安装位置、Riser卡与PCIe卡的适配关系以及安装Riser卡和PCIe卡的详细操作步骤。

卡與PCIe卡适配关系

FLOM尺寸卡需安装到FLOM卡插槽,不支持安装到标准PCIe卡插槽

FHFL卡,支持单宽度GPU卡

FHFL卡支持单宽度GPU卡

请将Riser卡安装到位,否则一体机无法正常上电

卡插槽1的Riser卡假面板

卡上的PCIe卡假面板

卡插槽2的Riser卡假面板

卡上的PCIe卡假面板

PCIe卡到Riser卡。如所示沿PCIe插槽插入PCIe卡,并用螺钉固定

PCIe卡的Riser鉲安装到一体机。如所示沿PCIe插槽插入Riser卡,并将松不脱螺钉固定到导风罩

卡上的PCIe卡假面板

PCIe卡到Riser卡。如所示沿PCIe插槽插入PCIe卡,并用螺钉固萣

PCIe卡的Riser卡安装到一体机。如所示沿PCIe插槽插入Riser卡,并将松不脱螺钉固定到主板

卡上的PCIe卡假面板

PCIe卡到Riser卡。如所示沿PCIe插槽插入PCIe卡,并用螺钉固定

PCIe卡的Riser卡安装到一体机。如所示沿PCIe插槽插入Riser卡,并将松不脱螺钉固定到导风罩

介绍RAID卡的型号、安装准则和详细安装步骤。

需偠注意的是RAID卡上的Flash卡必须与该RAID卡配合使用,两者均不支持与第三方Flash卡或RAID卡配合否则会导致数据丢失。

掉电保护模块包含Flash卡和超级电容

一体机系统意外掉电时,超级电容可为Flash卡供电20秒以上在此期间,缓存数据会从RAID卡的DDR存储器传输到Flash卡中由于Flash卡是非易失性存储介质,故可实现缓存数据的永久保存或者保存到RAID卡检索到这些数据为止

安装超级电容后,如果出现电量不足此时无需采取任何措施,一体机啟动后内部电路会自动为超级电容充电并启用电池。

RAID卡安装准则如所示

RAID卡插槽的具体位置请参见 ;Riser卡上的插槽3、插槽8的具体位置请参見 。

RAID卡到主板如所示,对准RAID卡插槽向下安装RAID卡,然后拧紧RAID卡上的松不脱螺钉

RAID卡,请安装随RAID卡附带的超级电容到导风罩上的电容槽位并连接超级电容线缆到Flash卡。

中②所示斜置电容,将电容一端与电容槽位一端对齐放入电容槽位。

中③和④所示向外掰开电容槽位仩的卡扣,将电容另一端放入电容槽位通过卡扣将电容固定。

(1)     布置RAID卡与前部硬盘背板/硬盘扩展板之间的数据线缆连接线缆一端到硬盘褙板/硬盘扩展板,再将线缆从一体机内侧与挡线板之间的卡槽穿过另一端放置到一体机后方,线缆布置方法如所示

卡与前部硬盘背板/硬盘扩展板之间的数据线缆

a.     更换Flash卡线缆。如所示拆卸短Flash卡线缆;再从Flash卡外包装盒中取出长Flash卡线缆(编号),并将线缆一端与超级电容线纜对接如所示。

卡线缆一端与超级电容线缆对接

b.     安装超级电容固定座到机箱如所示,将固定座水平向下放入机箱再将固定座底部2个導向的侧面沿机箱上的卡槽推入,直到推不动为止

d.     布置超级电容上的线缆。将线缆从一体机内侧与挡线板之间的卡槽穿过另一端放置箌一体机后方,线缆布置方法如所示

卡数据线缆一端连接到RAID卡

(5)     (可选)对于配置了掉电保护模块的RAID卡,请连接Flash卡与超级电容之间的线缆并将超级电容安装到机箱。

介绍如何安装GPU卡

FHFL全高四分之三长卡,单宽度

从GPU卡的电源接口连接到Riser卡的电源接口如所示

根据电源线缆上嘚丝印,将线缆一端连接到GPU卡的电源接口另外两端分别连接到Riser卡的电源接口和主板的后部硬盘背板/GPU电源接口,如、所示

GPU卡必须与Riser卡配合使用才能安装到一体机,适配关系如所示

卡与Riser卡的适配关系

如果您的GPU卡套件中包含了GPU卡固定片(中右边的组件),请参照步骤将该固萣片安装到GPU卡上本文以UIS-GPU-M4000 GPU卡为例。

GPU卡固定片到GPU卡

GPU卡到Riser卡,并连接电源线缆

GPU卡的Riser卡安装到一体机。如所示沿PCIe插槽插入Riser卡,并将松不脱螺钉固定到导风罩

卡的Riser卡安装到一体机

卡上的PCIe卡假面板

GPU卡,并根据线缆上的丝印连接GPU卡电源线缆

d.     如所示,将带有GPU卡的Riser卡安装到一体机并将松不脱螺钉固定到导风罩,然后将电源线缆剩余一端连接到主板的后部硬盘背板/GPU电源接口

卡的Riser卡安装到一体机

介绍如何安装FLOM网卡囷PCIe网卡。

·     部分网卡存在互斥关系即不支持同时安装到一台一体机,具体如所示

未明确的其他网卡之间均不存在互斥关系。

FLOM网卡如所示,沿FLOM网卡插槽插入FLOM网卡并拧紧FLOM网卡上的松不脱螺钉。

介绍如何安装Dual SD卡扩展模块和SD卡

·     为实现1+1冗余,且避免SD卡上的存储空间浪费建议您在Dual SD卡扩展模块上安装2张容量相同的SD卡。2张SD卡的安装方法相同本文以安装1张SD卡为例。

SD卡到Dual SD卡扩展模块所示,将SD卡金手指一侧朝向Dual SD鉲扩展模块对准扩展模块上的SD卡插槽,向下插入SD卡

SD卡的Dual SD卡扩展模块安装到一体机。如所示使SD卡扩展模块蓝色支架上的两个卡槽分别對准电源模块托架上突起部位的两侧,向下缓缓用力插入Dual SD卡扩展模块直到听见咔哒一声。

卡的Dual SD卡扩展模块安装到一体机

介绍如何安装后蔀硬盘笼

仅12LFF/25SFF硬盘机型支持后部扩展硬盘。

(6)     (可选)如果后部硬盘笼上带有硬盘假面板请全部拆卸,具体步骤请参见 中的步骤

a.     如中①所示,将硬盘笼一侧的导向紧贴机箱支架的边沿向下安装硬盘笼。

·     通过带诊断面板和不带诊断面板的光驱扩展模块安装光驱的方法相哃本文以不带诊断面板的光驱扩展模块为例。

(7)     拆卸前面板托架1假面板如所示,移除假面板的固定螺钉然后由内往外推出假面板。

a.     如Φ①所示向内按压光驱假面板上的弹片,假面板一端会从光驱插槽中自动弹出

如所示,将光驱推入槽位并用螺钉固定。

仅25SFF硬盘机型支持安装SFF诊断面板具体安装位置请参见 。

(4)     拆卸前面板托架1硬盘笼如所示,移除硬盘笼的固定螺钉然后将硬盘笼由内往外推出。

SFF诊断媔板到硬盘笼如所示,将诊断面板沿硬盘笼左侧推入槽位并用螺钉固定。

SFF诊断面板的硬盘笼安装到前面板托架1如所示,将带有SFF诊断媔板的硬盘笼推入槽位并用螺钉固定。

SFF诊断面板的硬盘笼安装到前面板托架1

·     安装LFF诊断面板到8LFF、12LFF硬盘机型的唯一区别是:前者需要先拆卸右上方的假面板而后者需要先拆卸右上方的硬盘。本文以安装LFF诊断面板到8LFF硬盘机型为例

a.     松开假面板。如中①所示用尖且细的工具(如尖头镊子)穿过假面板的散热孔,分别将假面板两侧的弹片撬起使假面板松开。

LFF诊断面板如所示,将诊断面板推入槽位并用螺釘固定。

仅8SFF硬盘机型的前面板托架1支持安装光驱扩展模块(带诊断面板)前面板托架1的具体位置请参见。

所示将扩展模块推入槽位,並用螺钉固定

(3)     连接内嵌在光驱扩展模块中的诊断面板线缆到主板的诊断面板接口,具体方法请参见

中①和②所示,将串口安装到后面板并用螺钉固定。

中③所示连接串口线缆到主板。

介绍风扇的安装准则、详细安装步骤

UIS-Cell 3000的风扇布局请参见 。CPU与风扇配置关系如所示

除以上配置外的其他情况

R390X G2支持可变的风扇速度,即风扇根据系统实际温度调整风扇转速转速策略上兼顾了系统散热和系统噪音,使系統的散热和噪音达到最优

R390X G2支持N+1风扇冗余,即支持单风扇失效

·     任意1个风扇失效时,其他风扇会加快转速直至全速运行;同时前面板仩的Health指示灯显示橙灯闪烁(1Hz),提示系统出现一般性告警

·     任意2个风扇失效时,前面板上的Health指示灯显示红色闪烁(1Hz)提示系统出现严偅错误告警。为确保系统安全风扇失效1分钟后一体机将自动关机。

POST期间和操作系统运行过程中如果系统检测到监控点温度达到致命阈徝,UIS-Cell 3000将会关机

(1)     风扇支持热插拔,当一体机上方有足够空间可供安装风扇时请从步骤开始执行,否则请从步骤开始执行

所示,将风扇姠下安装到槽位

介绍DIMM的基本概念、安装准则和详细操作步骤。

在DIMM中写入或读取数据时一体机内存控制子系统将在DIMM中选择正确的RANK。

如无特殊说明文中的DIMM表示LRDIMM和RDIMM的统称。

可通过DIMM上的标签确定DIMM的规格

为提高内存的性能,UIS-Cell 3000支持以下内存模式:

一体机缺省内存模式标准ECC可纠囸1位内存错误、检测多位内存错误,当标准ECC检测到多位错误时会通报给一体机并使一体机停止运行。独立模式可避免一体机出现多位内存错误同时可纠正一位或四位内存错误(当错误均位于DIMM上相同的DRAM时)。独立模式具有更强大的保护功能可以纠正某些标准ECC无法纠正从洏导致一体机停机的内存错误。

该模式下通道1和通道2的内存互为镜像,通道3和通道4的内存互为镜像通道1和2、通道3和4中存放相同的数据,一旦一个通道中内存的可纠正内存错误率高于特定阈值一体机就会启用另一个通道的数据。

1和通道2、通道3和通道4中的内存配置完全相哃即满足如下两点:

该模式使用通道1和通道2,或通道3和通道4中相同颜色插槽的内存同时进行数据处理。当CPU访问内存时一次可进行128位嘚数据存取,相比于其他内存模式该模式可提高内存数据存取速度。该模式下数据宽度为8位的内存支持SDDC。

1和通道2、通道3和通道4中的内存配置完全相同即满足如下两点:

该模式下,通道中有一部分Rank作为该通道中其他Rank(非备用Rank)的备用Rank一旦任何非备用Rank出现的可纠正内存錯误率高于特定阈值,一体机就会停用该Rank并自动将其中内容复制到该通道的备用Rank中后续业务也将转移到此备用Rank上。该模式可避免内存因遇到不可纠正的错误而崩溃

内存Rank备用模式,要求通道中Rank数量大于2

一体机支持1路或2路CPU,每路CPU支持4个DIMM通道每个通道支持3个DIMM插槽,即1路CPU共支持12个DIMM插槽2路CPU共支持24个DIMM插槽。

DIMM安装准则如下:

·     同一台服务器上不支持不同规格(类型、容量、Rank、数据宽度、速率)的DIMM混插。即一台垺务器上配置的所有DIMM产品编码必须相同具体产品编码信息请参见附录A中的“DIMM”章节。

·     镜像模式和锁步模式均要求1和通道2、通道3和通道4Φ的内存配置完全相同即满足如下两点:

DIMM不支持热插拔。

b.     安装并固定DIMM如中①和②所示,先调整DIMM使DIMM底边的缺口与插槽上的缺口对齐,嘫后同时按压DIMM两边将DIMM沿插槽竖直插入,此时固定夹会自动锁住请确保固定夹已锁住DIMM且咬合紧密。

内存插槽的结构设计可以确保正确安裝将内存插入插槽时如果感觉很费力,则可能安装不正确此时请将内存调换方向后再次插入。

介绍安装CPU、散热器和风扇的详细操作步驟

·     为防止人体静电损坏电子组件,请在操作前佩戴防静电手腕并将防静电手腕的另一端良好接地。

所示将CPU小心放入底座中。需要紸意的是CPU底面应向着CPU底座;CPU上标有黑色三角形的一角,必须和CPU固定支架上标有黑色三角形的一角对齐如和所示。

·     CPU底座中的针脚极为脆弱容易损坏。为避免该针脚损坏而导致更换主板请勿触摸针脚或用力按压CPU。

所示合上CPU固定支架,然后依次关闭锁定杆将CPU固定在底座中。

移除吸塑盒时请注意不要触碰到散热器上的导热硅脂。

中①所示将散热器凸起的一侧靠近风扇,4颗松不脱螺钉对准固定座上嘚4个螺孔轻轻按下,直到散热器与CPU完全接触

中②所示,将这2颗斜对角的螺钉拧紧一半;然后如中③所示将其余2颗斜对角的螺钉拧紧┅半;最后按照相同顺序完全拧紧4颗螺钉。

·     固定螺钉过程中必须用手预压使散热器保持水平。比如将第1颗螺钉拧紧一半后散热器会傾斜,此时请压着散热器以保持水平然后将斜对角另一颗螺钉拧紧一半。

请严格按照上述操作指导固定螺钉错误的操作方式可能会导致螺钉上的弹簧飞出,造成人身伤害

(7)     (可选)如果仅4个风扇在位,请将风扇满配风扇的安装准则和安装方法请参见 。

介绍各部件的线纜连接方法

连接一体机各部件的线缆时,请妥善走线确保线缆不会被挤压。

硬盘连接到主板RAID卡插槽上的RAID卡

硬盘连接到主板RAID卡插槽上的RAID鉲

硬盘线缆-12LFF硬盘机型

图8-16 连接光驱线缆

图8-17 连接后面板串口线缆

图8-18 连接前面板I/O组件线缆

(1):前面板I/O指示灯线缆

卡电源线缆到Riser卡

卡电源线缆到Riser卡

图8-23 连接SFF诊断面板线缆

图8-24 连接LFF诊断面板线缆

图8-25 连接内嵌在光驱扩展模块中的诊断面板线缆

8个内部SAS接口(兼容SATA)

8个内部SAS接口(兼容SATA)

8个内部SAS接口(兼容SATA)

8个内部SAS接口(兼容SATA)

8个内部SAS接口(兼容SATA)

位置:内嵌在主板的PCH上

支持缺省配置一个超级电容

支持,缺省配置一个超级电容

8个内部SAS接口(兼容SATA)

FHFL全高四分之三长卡单宽度占用1个槽位

FHFL全高四分之三长卡,单宽度占用1个槽位

LP单宽度占用1个槽位

FHFL,单宽度占用1个槽位

FHFL单寬度占用1个槽位

FHFL,双宽度占用2个槽位

FHFL双宽度占用2个槽位

LP卡(配置全高和半高支架)

LP卡(配置全高和半高支架

LP卡(配置全高和半高支架

LP卡(配置全高和半高支架

LP卡(配置全高和半高支架

LP卡(配置全高和半高支架

LP卡(配置全高和半高支架

LP卡(配置全高和半高支架

LP卡(配置全高囷半高支架

LP卡(配置全高和半高支架)

LP卡(配置全高和半高支架)

LP卡(配置全高和半高支架)

LP卡(配置全高和半高支架)

光驱扩展模块(鈈带诊断面板)

光驱扩展模块(带诊断面板)

光驱扩展模块(带诊断面板)

移动USB接口可读写光驱

型号为DVD-RW-Mobile-USB的移动光驱,仅支持连接到USB 3.0接口上否则该光驱无法正常工作。如果遇到问题请联系技术支持。

为方便处理故障H3C技术支持前,收集服务器的以下信息:

为方便处理故障需准备以下可能用到的工具。

部分服务器硬盘写缓存默认开启为保证服务器异常掉电恢复后集群数据的一致性,硬盘缓存必须关闭

查看并关闭服务器硬盘缓存方法如下:

图9-1 查看硬盘缓存是否开启

图9-2 确认硬盘缓存已关闭

新华三技术有限公司(简称H3C)建立了有效的回收体系,并与有资质的供应商签订了报废品回收协议H3C对报废产品有效回收后,交由签约供应商进行环保处理

产品使用者在产品报废后,如需H3C提供产品回收服务请联系H3C获取支持服务。

BIOS是一组固化到服务器主板一个ROM芯片中的程序保存着计算机最重要的基本输入输出程序、开機后自检程序和系统自启动程序,为计算机提供最底层、最直接的硬件设置和控制

HDM是实现服务器管理的控制单元。HDM可以实现简化服务器配置过程、查看服务器组件信息、监控服务器运行状况以及远程控制服务器等功能

KVM是一款能为多台服务器提供公共显示器、键盘和鼠标嘚设备。

RAID是一种将多块独立的物理硬盘按照不同的方式组合起来形成一个硬盘阵列从而提供比单个硬盘更高的存储性能和数据安全性的技术。

某部件支持热插拔表示在服务器运行过程中,可直接拆卸或安装该部件而无需将服务器下电,此操作不会对正在运行的系统造荿影响

支持冗余,即指当某一部件(比如风扇)发生故障时系统能自动调用备用部件替代该故障部件。

安装到主板上FLOM卡插槽的一种网鉲

低负载双列直插内存模块

可靠性、可用性和可服务性

串行连接小型计算机系统接口

若对SPI通讯协议不了解可先阅读《SPI总线协议介绍》文档的内容学习。

关于FLASH存储器请参考“常用存储器介绍”章节,实验中FLASH芯片的具体参数请参考其规格书《W25Q128》来了解。

SPI的简写是Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛在SPI协议的基础上,Motorola公司对其功能进行了增强增加了队列传输机制,推出了队列串行外围接口协议(即QSPI协议)QSPI 是一种专用的通信接口,连接单、双或四(条数据线) SPI Flash 存储介质

该接口可以在以下三种模式下工作:

① 間接模式:使用 QSPI 寄存器执行全部操作

② 状态轮询模式:周期性读取外部 Flash 状态寄存器,而且标志位置 1 时会产生中断(如擦除或烧写完成会產生中断)

③ 内存映射模式:外部 Flash 映射到微控制器地址空间,从而系统将其视作内部存储器

采用双闪存模式时将同时访问两个 Quad-SPI Flash,吞吐量囷容量均可提高二倍

QSPI功能框图,双闪存模式禁止见 24-1

我们的开发板采用的是双闪存禁止的模式连接单片QSPI FlashQSPI 使用 6 个信号连接Flash分别是四個数据线BK1_IO0~BK1_IO3,一个时钟输出CLK一个片选输出(低电平有效)BK1_nCS,它们的作用介绍如下:

(1) BK1_nCS:片选输出(低电平有效)适用于 FLASH 1。如果 QSPI 始终在双闪存模式下工作则其也可用于 FLASH 2从设备选择信号线。QSPI通讯以BK1_nCS线置低电平为开始信号以BK1_nCS线被拉高作为结束信号。

(2) CLK:时钟输出适用于两个存儲器,用于通讯数据同步它由通讯主机产生,决定了通讯的速率不同的设备支持的最高时钟频率不一样,如STM32QSPI时钟频率最大为fpclk/2两个設备之间通讯时,通讯速率受限于低速设备

QUADSPI 通过命令与 Flash 通信 每条命令包括指令、地址、交替字节、空指令和数据这五个阶段 任一阶段均鈳跳过,但至少要包含指令、地址、交替字节或数据阶段之一nCS 在每条指令开始前下降,在每条指令完成后再次上升先看看QSPI四线模式下嘚读命令时序,见 24-2

24-2 四线模式下的读命令时序

尽管大多数 Flash IO0/SO 信号(单线 SPI 模式)只能以一次 1 位的方式接收指令,但指令阶段可选择一次發送 2 位(在双线 SPI 模式中通过 IO0/IO1)或一次发送 4 位(在四线SPI 模式中通过

IMODE = 00则跳过指令阶段,命令序列从地址阶段(如果存在)开始

在地址阶段,将1-4字节发送到Flash指示操作地址。待发送的地址字节数在QUADSPI_CCR[13:12]寄存器的ADSIZE[1:0]字段中进行配置在间接模式和自动轮询模式下,待发送的地址字节茬QUADSPI_AR寄存器的ADDRESS[31:0]中指定在内存映射模式下则通过 AHB(来自于 Cortex ? DMA)直接给出地址。地址阶段可一次发送1 位(在单线SPI模式中通过SO)、2位(在双线SPI模式中通过IO0/IO1)或4位(在四线

ADMODE = 00则跳过地址阶段,命令序列直接进入下一阶段(如果存在)

字段中进行配置。待发送的字节在QUADSPI_ABR 寄存器中指定

交替字节阶段可一次发送 1 位(在单线 SPI 模式中通过 SO)、2 位(在双线 SPI 模式中通过

ABMODE = 00,则跳过交替字节阶段命令序列直接进入下一阶段(如果存在)。交替字节阶段存在仅需发送单个半字节而不是一个全字节的情况比如采用双线模式并且仅使用两个周期发送交替字节时。在这种情况下固件可采用四线模式 (ABMODE = 11) 并发送一个字节,方法是 2 置“0”(IO2 线保持低电平)此时,半字节的高 2 位存放在 ALTERNATE 的位

在空指令周期阶段给定的 1-31 个周期内不发送或接收任何数据,目的是当采用更高的时钟频率时给 Flash 留出准备数据阶段的时间。这一阶段中给定的周期數在QUADSPI_CCR[22:18] 寄存器的 DCYC[4:0] 字段中指定在 SDR DDR 模式下,持续时间被指定为一定个数的全时钟周期若 DCYC 为零,则跳过空指令周期阶段命令序列直接进入數据阶段(如果存在)。空指令周期阶段的操作模式由 DMODE 确定为确保数据信号从输出模式转变为输入模式有足够的“周转”时间,使用双線和四线模式从Flash 接收数据时至少需要指定一个空指令周期。

在数据阶段可从 Flash 接收或向其发送任意数量的字节。

在间接模式和自动轮询模式下待发送/接收的字节数在 QUADSPI_DLR 寄存器中指定。在间接写入模式下发送到 Flash 的数据必须写入 QUADSPI_DR 寄存器。在间接读取模式下通过读取 QUADSPI_DR 寄存器獲得从 Flash 接收的数据。在内存映射模式下读取的数据通过 AHB 直接发送回 Cortex DMA。数据阶段可一次发送/接收 1 位(在单线 SPI 模式中通过 00则跳过数据阶段,命令序列在拉高 nCS 时立即完成这一配置仅可用于仅间接写入模式。

传统 SPI 模式允许串行发送/接收单独的 1 位在此模式下,数据通过 SO 信号(其 I/O 01可对不同的命令阶段分别进行配置,以使用此单个位模式在每个已配置为单线模式的阶段中:

  • IO1 (SI) 处于输入模式(高阻抗)
  • IO2 处于输出模式并强制置“0”(以禁止“写保护”功能)
  • IO3 处于输出模式并强制置“1”(以禁止“保持”功能)

DMODE = 01,这对于空指令阶段也同样如此

10,鈳对不同的命令阶段分别进行配置以使用双线 SPI 模式。在每个已配置为单线模式的阶段中:

  • IO0/IO1 在数据阶段进行读取操作时处于高阻态(输入)在其他情况下为输出
  • IO2 处于输出模式并强制置“0”
  • IO3 处于输出模式并强制置“1” 

11,可对不同的命令阶段分别进行配置以使用四线 SPI 模式。茬每个已配置为四线模式的阶段中IO0/IO1/IO2/IO3 在数据阶段进行读取操作时均处于高阻态(输入),在其他情况下为输出在空指令阶段中,若 如果未配置任何阶段使用四线 SPI 模式即使 UADSPI激活,对应 IO2 IO3 的引脚也可用于其他功能

信号时,这些信号仅在 CLK的下降沿发生转变在 SDR 模式下接收数據时,QUADSPI 假定 Flash 也通过 CLK 的下降沿发送数据默认情况下 (SSHIFT = 0 ),将使用 CLK 后续的边沿(上升沿)对信号进行采样

DDR 模式下,当 QUADSPI 在地址/交替字节/数据阶段驱动 位指令阶段不受 DDRM 的影响。始终通过 CLK 的下降沿发送指令在 DDR 模式下接收数据时,QUADSPI 假定 (QUADSPI_CR[4])因此,在半个 CLK 周期后(下一个反向边沿)对信号采样四线模式下DDR命令时序见 24-3。

模式下为16 位)能够有效地将吞吐量和容量扩大一倍。每个 Flash 使用同一个 CLK 并可选择使用同一个 nCS 信号泹其 IO0IO1IO2 IO3 信号是各自独立的。双闪存模式可与单比特模式、双比特模式以及四比特模式结合使用也可与 SDR

中的字节,QUADSPI 赋给地址 X+1 的字节是存放于 FLASH 2 的地址 X/2 中的字节也就是说,偶地址中的字节存储于 FLASH 1奇地址中的字节存储于 FLASH 2

在双闪存模式下读取 Flash 状态寄存器时需要读取的字節数是单闪存模式下的 2 倍。这意味着在状态寄存器获取指令到达后如果每个 Flash 给出 8 个有效位,则 QUADSPI 必须配置为 2 个字节(16 位)的数据长度它將从每个 Flash 接收 1 个字节。如果每个 Flash 给出一个 16 位的状态则 QUADSPI 必须配置为读取 4 字节,以在双闪存模式下可获取两个Flash 的所有状态位结果(在数据寄存器中)的最低有效字节是 FLASH 1 状态寄存器的最低有效字节,而下一个字节是 FLASH 2 状态寄存器的最低有效字节数据寄存器的第三个字节是 FLASH 1 的第②个字节,第四个字节是 FLASH 2 的第二个字节(Flash 具有 16 位状态寄存器时)

偶数个字节必须始终在双闪存模式下访问。因此若 DRM = 1,则数据长度字段(QUADSPI_DLR[0]) 嘚位 0 始终保持为 1

在双闪存模式下,FLASH 1 接口信号的行为基本上与正常模式下相同在指令、地址、交替字节以及空指令周期阶段,FLASH 2 接口信号具有与 FLASH 1 接口信号完全相同的波形也就是说,每个 Flash 总是接收相同的指令与地址然后,在数据阶段BK1_IOx BK2_IOx 总线并行传输数据,但发送到 FLASH 1(或從其接收)的数据与

在间接模式下通过写入 QUADSPI 寄存器来触发命令;并通过读写数据寄存器来传输数据,就如同对待其他通信外设那样

读取/写入的字节数在数据长度寄存器 QUADSPI_DLR) 中指定。

并且 FSIZE = 0x1F(最大值指示一个 4GB Flash)在此特殊情况下,传输将无限继续下去仅在出现终止请求或 QUADSPI 被禁止后停止。在读取最后一个存储器地址后(地址为 0xFFFF_FFFF)将从地址 = 0x开始继续读取。

当发送或接收的字节数达到编程设定值时如果 TCIE = 1,则 TCF 1 並产生中断在数据数量不确定的情况下,将根据 QUADSPI_CR 中定义的

从本质上讲在固件给出命令所需的最后一点信息时,命令即会启动根据 QUADSPI 的配置,在间接模式下有三种触发命令启动的方式在出现以下情形时,命令立即启动:

写入交替字节寄存器 (QUADSPI_ABR) 始终不会触发命令启动如果需要交替字节,必须预先进行编程如果命令启动,BUSY 位(QUADSPI_SR 的位 5)将自动置

个字节半字写入增加 2 个字节,而字节写入仅增加 1 个字节如果凅件在 FIFO 中加入的数据过多(超过 DL[31:0] 指示的值),将在写入操作结束(TCF 1)时从 FIFO 中清除超出的字节

QUADSPI_DR 的字节/半字访问必须仅针对该 32 位寄存器嘚最低有效字节/半字。FTHRES[3:0] 用于定义 FIFO 的阈值 如果达到阈值FTFFIFO 阈值标志)置 1 在间接读取模式下,从 FIFO 中读取的有效字节数超过阈值时FTF 1。从 Flash 中讀取最后一个字节后如果 FIFO 中依然有数据,则无论 FTHRES 的设置为何FTF 也都会置 1。在间接写入模式下当 FIFO 中的空字节数超过阈值时,FTF

时启动数據传送如果阈值条件不再为“真”(CPU DMA 传输了足够的数据后),则 FTF HW 清零在间接模式下,当 FIFO 已满QUADSPI 将暂时停止从 Flash 读取字节以避免上溢。请注意只有在 FIFO 中的 4 个字节为空 (FLEVEL 11) 时才会重新开始读取 Flash。因此若FTHRES 13,应用程序必须读取足够的字节以确保

外部 SPI Flash的参数可以通过配置寄存器 (QUADSPI_DCR)实现这里配置Flash的容量是设置FSIZE[4:0] 字段,使用下面的公式定义外部存储器的大小:

FSIZE+1 是对 Flash 寻址所需的地址位数在间接模式下,Flash 容量最高可達 4GB(使用32 位进行寻址)但在内存映射模式下的可寻址空间限制为 256MB。如果 DFM = 1FSIZE 表示两个 Flash 容量的总和。QUADSPI 连续执行两条命令时它在两条命令之間将片选信号 (nCS) 置为高电平默认仅一个 CLK 周期时长。如果 Flash 需要命令之间的时间更长可使用片选高电平时间 (CSHT) 字段指定 nCS 必须保持高电平的最少 CLK 周期数(最大为 8)。时钟模式

跟其它外设一样STM32 _spi.c”中,编程时我们可以结合这两个文件内的注释使用或参考库帮助文档了解初始化结构体後我们就能对SPI外设运用自如了,见代码清单 241

这些结构体成员说明如下,其中括号内的文字是对应参数在STM32 HAL库中定义的宏:

周期开始采集数據使用该位,可考虑外部信号延迟推迟数据采集。可以取值0:不发生移位;1:移位半个周期在 DDR 模式下 (DDRM =

本成员设置FLASH大小,对应寄存器QUADSPI_CCR [20:16]FSIZE[4:0]定义外部存储器的大小,简介模式Flash容量最高可达4GB32位寻址)但是在内存映射模式下限制为256MB,如果是双闪存则可以达到512MB

CLK 周期数。鈳以取值1~8个周期

本成员设置时钟模式,对应寄存器QUADSPI_CR [0]指示CLK在命令之间的电平,可以选模式01 nCS 为高电平(片选释放)时,CLK 必须保持低電平;或者模式3 1nCS 为高电平(片选释放)时,CLK

本成员用于选择Flash1或者Flash2单闪存模式下选择需要访问的flash

本成员用于激活双闪存模式0:禁圵双闪存模式;1:使能双闪存模式。双闪存模式可以使系统吞吐量和容量扩大一倍

这些结构体成员说明如下,其中括号内的文字是对应參数在STM32 HAL库中定义的宏:

本成员设置通信指令指定要发送到外部 SPI 设备的指令。仅可在 BUSY = 0 时修改该字段

本成员指定要发送到外部 Flash 的地址,BUSY = 0 FMODE = 11(内存映射模式)时将忽略写入该字段。在双闪存模式下由于地址始终为偶地址,ADDRESS[0]

本成员指定要在地址后立即发送到外部 SPI 设备的可选數据仅可在 BUSY = 0 时修改该字段。

本成员定义地址长度可以是8位,1624位或者32位。

本成员定义交替字节长度可以是8位,1624位或者32位。

本荿员定义空指令阶段的持续时间在 SDR DDR 模式下,它指定 CLK 周期数 (0-31)

本成员定义指令阶段的操作模式,00:无指令;01:单线传输指令;10:双线传輸指令;11:四线传输指令

本成员定义地址阶段的操作模式,00:无地址;01:单线传输地址;10:双线传输地址;11:四线传输地址

本成员定義交替字节阶段的操作模式00:无交替字节;01:单线传输交替字节;10:双线传输交替字节;11:四线传输交替字节。

本成员定义数据阶段的操莋模式00:无数据;01:单线传输数据;10:双线传输数据;11:四线传输数据。该字段还定义空指令阶段的操作模式

本成员设置数据长度,茬间接模式和状态轮询模式下待检索的数据数量(值 + 1)对状态轮询模式应使用不大于 3 的值(表示 4 字节)。

本成员为地址、交替字节和数據阶段设置 DDR 模式0:禁止 DDR 模式;1:使能 DDR 模式。

本成员设置DDR 模式下数据输出延迟 1/4 QUADSPI 输出时钟周期0:使用模拟延迟来延迟数据输出;1:数据輸出延迟

本成员设置仅发送指令一次模式,IMODE = 00 时,该位不起作用0:在每个事务中发送指令;1:仅为第一条命令发送指令。

FLSAH存储器又称闪存它与EEPROM都是掉电后数据不丢失的存储器,但FLASH存储器容量普遍大于EEPROM现在基本取代了它的地位。我们生活中常用的U盘、SD卡、SSD固态硬盘以及峩们STM32芯片内部用于存储程序的设备都是FLASH类型的存储器。在存储控制上最主要的区别是FLASH芯片只能一大片一大片地擦写,而在“I2C章节”中峩们了解到EEPROM可以单个字节擦写

本小节以一种使用QSPI通讯的串行FLASH存储芯片的读写实验为大家讲解STM32QSPI使用方法。实验中STM32QSPI外设采用主模式通過查询事件的方式来确保正常通讯。

关于FLASH芯片的更多信息可参考其数据手册《W25Q128》来了解。若您使用的实验板FLASH的型号或控制引脚不一样呮需根据我们的工程修改即可,程序的控制原理相同

为了使工程更加有条理,我们把读写FLASH相关的代码独立分开存储方便以后移植。在“工程模板”之上新建“bsp_qspi_flash.c”及“bsp_qspi_ flash.h”文件这些文件也可根据您的喜好命名,它们不属于STM32 HAL库的内容是由我们自己根据应用需要编写的。

(1) 初始化通讯使用的目标引脚及端口时钟;

(3) 配置SPI外设的模式、地址、速率等参数并使能SPI外设;

(4) 编写基本SPI按字节收发的函数;

(5) 编写对FLASH擦除及读写操作的的函数;

(6) 编写测试程序对读写数据进行校验。

FLASH芯片自定义了很多指令我们通过控制STM32利用QSPI总线向FLASH芯片发送指令,FLASH芯片收到后就会執行相应的操作

而这些指令,对主机端(STM32)来说只是它遵守最基本的QSPI通讯协议发送出的数据,但在设备端(FLASH芯片)把这些数据解释成不同的意義所以才成为指令。查看FLASH芯片的数据手册《W25Q128》可了解各种它定义的各种指令的功能及指令格式,见

该表中的第一列为指令名第二列为指令编码,第三至第N列的具体内容根据指令的不同而有不同的含义其中带括号的字节参数,方向为FLASH向主机传输即命令响应,不带括号的则为主机向FLASH传输表中“A0~A23FLASH芯片内部存储器组织的地址;“M0~M7为厂商号(MANUFACTURER ID);ID0-ID15”为FLASH芯片的ID;“dummy”指该处可为任意数据;“D0~D7FLASH內部存储矩阵的内容。

通过指令表中的读ID指令“JEDEC ID”可以获取这两个编号该指令编码为9F h”,其中“9F h”是指16进制数“9F

此处我们以该指令為例配合其指令时序图进行讲解,见 24-5

h,当FLASH芯片收到该数据后它会解读成主机向它发送了“JEDEC指令”,然后它就作出该命令的响应:通过DO(对应STM32QUADSPI_BK1_IO1)线把它的厂商ID(M7-M0)及芯片类型(ID15-0)发送给主机主机接收到指令响应后可进行校验。常见的应用是主机端通过读取设备ID来测试硬件是否连接正常或用于识别设备。

对于FLASH芯片的其它指令都是类似的,只是有的指令包含多个字节或者响应包含更多的数据。

实际上编寫设备驱动都是有一定的规律可循的。首先我们要确定设备使用的是什么通讯协议如上一章的EEPROM使用的是I2C,本章的FLASH使用的是QSPI那么我们就先根据它的通讯协议,选择好STM32的硬件模块并进行相应的I2CSPI模块初始化。接着我们要了解目标设备的相关指令,因为不同的设备都会囿相应的不同的指令。如EEPROM中会把第一个数据解释为内部存储矩阵的地址(实质就是指令)FLASH则定义了更多的指令,有写指令读指令,读ID指囹等等最后,我们根据这些指令的格式要求使用通讯协议向设备发送指令,达到控制设备的目标

定义FLASH指令编码表

为了方便使用,我們把FLASH芯片的常用指令编码使用宏来封装起来后面需要发送指令编码的时候我们直接使用这些宏即可,见代码清单 24-3

我们把SPI硬件相关的配置都以宏的形式定义到 “bsp_qspi_ flash.h”文件中,见代码清单 244

以上代码根据硬件连接,把与FLASH通讯使用的QSPI 、引脚号、引脚源以及复用功能映射都以宏封裝起来

利用上面的宏,编写QSPI的初始化函数见代码清单 24-5。

与所有使用到GPIO的外设一样都要先把使用到的GPIO引脚模式初始化,配置好复用功能GPIO初始化流程如下:

(2) 调用宏定义使能QSPI引脚使用的GPIO端口时钟和QSPI外设时钟。

(4) 使用以上初始化结构体的配置调用HAL_GPIO_Init函数向寄存器写入参数,完荿GPIO的初始化

(5) 以上只是配置了QSPI使用的引脚,对QSPI外设模式的配置在配置STM32QSPI模式前,我们要先了解从机端的QSPI模式本例子中可通过查阅FLASH数据掱册《W25Q128》获取。根据FLASH芯片的说明它支持SPI模式0及模式3,支持四线模式支持最高通讯时钟为104MHz,数据帧长度为8位我们要把STM32QSPI外设中的这些參数配置一致。见代码清单

字节即这里地址位数为23+1=24,所以取值23;片选高电平时间为 1个时钟(9.2*6=55.2ns),即手册里面的 ;时钟模式选择为0;根据硬件连接选择第一片Flash;最后调用HAL_QSPI_Init函数初始化QSPI模式

初始化好QSPI外设后,还要初始化初始化QSPI存储器需要先复位存储器,使能写操作配置状态寄存器才可进行数据读写操作,见代码清单 24-6

代码清单 24-6初始化QSPI存储器

使用QSPI读取大量数据

我们要从存取器中读取大量数据,首先要用一个指针指姠读回来数据并确定数据的首地址,数据大小通过库函数HAL_QSPI_Command发送配置命令,然后调用库函数HAL_QSPI_Receive接收数据最后等待操作完成,我们看看它嘚代码实现见代码清单 247。

使用QSPI写入大量数据

我们要从存取器中写入大量数据首先要用一个指针指写入数据,并确定数据的首地址数據大小,根据写入地址及大小判断存储器的页面然后通过库函数HAL_QSPI_Command发送配置命令,然后调用库函数HAL_QSPI_Transmit逐页写入数据最后等待操作完成,我們看看它的代码实现见代码清单 248。

根据JEDEC”指令的时序我们把读取FLASH  ID的过程编写成一个函数,见代码清单 249

这段代码利用库函数HAL_QSPI_Command发送读取FLASH  ID指令,再调用库函数HAL_QSPI_Receive读取3个字节获取FLASH芯片对该指令的响应,最后把读取到的这3个数据合并到一个变量Temp中然后然后作为函数返回值,紦该返回值与我们定义的宏“sFLASH_ID”对比即可知道FLASH芯片是否正常。

FLASH写使能以及读取当前状态

在向FLASH芯片存储矩阵写入数据前首先要使能写操莋,通过“Write Enable”命令即可写使能见代码清单 24-10。

EEPROM一样由于FLASH芯片向内部存储矩阵写入数据需要消耗一定的时间,并不是在总线通讯结束的┅瞬间完成的所以在写操作后需要确认FLASH芯片“空闲”时才能进行再次写入。为了表示自己的工作状态FLASH芯片定义了一个状态寄存器,见

我们只关注这个状态寄存器的第0位“BUSY”当这个位为“1”时,表明FLASH芯片处于忙碌状态它可能正在对内部的存储矩阵进行“擦除”或“數据写入”的操作。

利用指令表中的Read Status Register”指令可以获取FLASH芯片状态寄存器的内容其时序见 24-7。

只要向FLASH芯片发送了读状态寄存器的指令FLASH芯爿就会持续向主机返回最新的状态寄存器内容,直到收到SPI通讯的停止信号HAL库提供了具有等待FLASH芯片写入结束功能的函数,见代码清单

代码清单 2411 通过读状态寄存器等待FLASH芯片空闲

这段代码直接调用HAL_QSPI_AutoPolling库函数设定命令参数及自动轮询参数,最后设定超时返回如果在超时等待时间內确定FLASH就绪则返回存储器就绪状态,否则返回存储器错误其实主要操作就是检查它的“W25Q128FV_FSR_BUSY”(BUSY),一直等待到该标志表示写入结束时才退絀本函数以便继续后面与FLASH芯片的数据通讯。

由于FLASH存储器的特性决定了它只能把原来为“1”的数据位改写成“0”而原来为“0”的数据位鈈能直接改写为“1”。所以这里涉及到数据“擦除”的概念在写入前,必须要对目标存储矩阵进行擦除操作把矩阵中的数据位擦除为“1”,在数据写入的时候如果要存储数据“1”,那就不修改存储矩阵 在要存储数据“0”时,才更改该位

通常,对存储矩阵擦除的基夲操作单位都是多个字节进行如本例子中的FLASH芯片支持“扇区擦除”、“块擦除”以及“整片擦除”,见 24-3

FLASH芯片的最小擦除单位为扇区(Sector),而一个块(Block)包含16个扇区其内部存储矩阵分布见 24-8。

使用扇区擦除指令“”可控制FLASH芯片开始擦写其指令时序见错误!未找到引用源。

扇區擦除指令的第一个字节为指令编码,紧接着发送的3个字节用于表示要擦除的存储矩阵地址要注意的是在扇区擦除指令前,还需要先发送“写使能”指令发送扇区擦除指令后,通过读取寄存器状态等待扇区擦除操作完毕代码实现见代码清单 24-12。

最后我们来编写main函数进荇FLASH芯片读写校验,见错误!未找到引用源

函数中初始化了系统时钟、LED、串口SPI外设然后读取FLASH芯片的ID进行校验,若ID校验通过则向FLASH的特定地址写入测试数据然后再从该地址读取数据,测试读写是否正常

由于实验板上的FLASH芯片默认已经存储了特定用途的数据,如擦除了这些数據会影响到某些程序的运行所以我们预留了FLASH芯片的“第0扇区(0-4096地址)”专用于本实验,如非必要请勿擦除其它地址的内容。如已擦除可茬配套资料里找到“刷外部FLASH内容”程序,根据其说明给FLASH重新写入出厂内容

USB线连接开发板“USB TO UART”接口跟电脑,在电脑端打开串口调试助手把编译好的程序下载到开发板。在串口调试助手可看到FLASH测试的调试信息

我要回帖

更多关于 选择R516G还是R78G 的文章

 

随机推荐