DDR4原理及硬件设计

2023-05-16

DDR4-DRAM的工作原理

 其引脚按照功能可以分为7类:前3类为电源、地、配置。

 后4类为:控制信号、时钟信号、地址信号、数据信号

 

电源、地、配置信号的功能很简单,在此不赘述。控制信号主要是用来完成DDR4与DDR4 Controller之间的状态切换。

DDR4中最重要的信号就是地址信号和数据信号。

如上DDR4芯片有20根地址线(17根Address、2根BA、1根BG),16根数据线。在搞清楚这些信号线的作用以及地址信号为何还有复用功能之前,我们先抛出1个问题。假如我们用20根地址线,16根数据线,设计一款DDR,我们能设计出的DDR寻址容量有多大?

按照课本中学到的最简单的单线8421编码寻址的方式,我们知道20根地址线(连读写控制信号都不考虑了)的寻址空间为2^20,16根数据线可以1次传输16位数据,我们能很容易计算出,如果按照单线8421编码寻址方式,DDR芯片的最大存储容量为:

Size(max)=(2^20)x16=1048576x16=16777216bit=2097152B=2048KB=2MB。

但是事实上,该DDR最大容量可以做到1GB,比传统的单线编码寻址容量大了整整512倍,它是如何做到的呢?
答案很简单,分时复用

我们把DDR存储空间可以设计成如下样式:
首先将存储空间分成两个大块,分别为BANK GROUP0和BANK GROUP1,再用1根地址线(还剩19根),命名为BG,进行编码
若BG拉高选择BANK GROUP0,拉低选择BANK GROUP1。(当然你也可以划分成4个大块,用2根线进行编码)

 再将1个BANK GROUP区域分成4个BANK小区域,分别命名为BANK0、BANK1、BANK2、BANK3。然后我们挑出2根地址线(还剩余17根)命名为BA0和BA1,为4个小BANK进行地址编码。

此时,我们将DDR内存颗粒划分成了2个BANK GROUP,每个BANK GROUP又分成了4个BANK,共8个BANK区域,分配了3根地址线,分别命名为BG0,BA0,BA1。然后我们还剩余17根信号线,每个BANK又该怎么设计呢?这时候,就要用到分时复用的设计理念了。

剩下的17根线,第一次用来表示行地址,第二次用来表示列地址。

原本传输1次地址,就传输1次数据,寻址范围最多16KB(不要读写信号,(2^17/1024)/8=16KB)。
现在修改为传输2次地址,在传输1次数据,寻址范围最多被扩展为2GB(2^17 * 2 ^17/2 ^30)/8=2GB)。虽然数据传输速度降低了一半,但是存储空间被扩展了很多倍。这就是改善空间。

所以,剩下的17根地址线,留1根用来表示传输地址是否为行地址。

在第1次传输时,行地址选择使能,剩下16根地址线,可以表示行地址范围,可以轻松算出行地址范围为2^16=65536个=64K个
**在第2次传输时,行地址选择禁用,剩下16根地址线,留10根列地址线表示列地址范围,可以轻松表示的列地址范围为2^10=1024个=1K个,**剩下6根用来表示读写状态/刷新状态/行使能、等等复用功能。

这样,我们可以把1个BANK划分成67108864个=64M个地址编号。如下所示:

 在每个地址空间中,我们16根数据线全部用起来,一次存储16位数据

所以1个BANK可以分成65536行,每行1024列,每个存储单元16bit。
每行可以存储1024x16bit=2048B=2KB。每行的存储的容量,称为Page Size。
单个BANK共65536行,所以每个BANK存储容量为65536x2KB=128MB。
单个BANK GROUP共4个BANK,每个BANK GROUP存储容量为512MB。
单个DDR4芯片有2个BANK GROUP,故单个DDR4芯片的存储容量为1024MB=1GB。

至此,20根地址线和16根数据线全部分配完成,我们用正向设计的思维方式,为大家讲解了DDR4的存储原理以及接口定义和寻址方式。

DDR4硬件详细设计

DDR的硬件设计步骤

作为硬件工程师,我们通常收到需求是:该产品内存配置为DDR4,容量8Gb(1GB=8Gb)。
而我们通常需要把这个“简陋”的需求,转化为具体的电路,该如何去实现呢?
其实,很简单。DDR4的硬件设计过程可以总结为:为某个平台搭配一颗DDR内存颗粒,并保证平台与DDR内存颗粒均能正常工作
所以可以分为2部分,如何为平台选型1颗DDR内存颗粒?如何保证DDR相关电路能正常工作?

DDR内存颗粒选型

目前很多芯片都会把CPU与外围控制电路(例如:FLASH控制电路,DDR控制电路,USB控制电路)集成到1颗芯片中,像高通MDM8909,类似这样的芯片,我们称为“平台芯片”。平台芯片中DDR控制电路,我们称为“DDR Controller”,翻译过来为:DDR控制器。
为DDR控制器搭配它能控制的DDR内存颗粒,你就必须先了解下:DDR控制器需要什么样的内存颗粒?
硬件设计第一步:查阅平台芯片规格书中,关于DDR控制器部分的描述。

It has 16/32 bits DDR3L/4 up to 2400 MT/s, parallel NAND, serial NOR interfaces.

所以我们了解到了:

该平台芯片,支持DDR3L或者DDR4内存颗粒,数据位宽为16位或者32位,最高数据传输速度为2400MT/s,即频率为1200MHz(DDR是双边沿数据传输,1个时钟周期传输2次数据,1s传输了2400M次,即意味着1s时钟变化了1200次,即频率为1200MHz)。

结合产品需求:容量8Gb,那我们基本可以锁定DDR的详细规格了。

在正式选型之前,还要引入1个概念“RANK”。我们知道,DDR即支持多个内存颗粒扩展容量,又支持多个内存颗粒扩展数据位宽。
例如,我们的DDR控制器支持32位数据位宽,那我们可以用8个4位DDR,或者4个8位DDR,或者2个16位DDR,或者1个32位DDR进行数据位扩展。假如我们用8个4位DDR颗粒进行设计,我们的RANK数量就是8,我们戏称为“8-RANK设计”,当然实际生活中,我们肯定不会这么蠢,拿8个4位DDR去扩展32位。

所以,再确定我们的RANK数量后,需求被锁定了。
容量设定为8Gb,类型为DDR4,数据宽度为32位,最高频率为1200MHz。由于目前大部分DDR内存颗粒最高支持16位数据宽度,所以RANK数量为2,即我们说的Dual-RANK设计。
根据这个需求,可以在DDR官网上去寻找合适的“DDR芯片”了。例如在镁光官网产品页,选定DRR4-SDRAM,选定8Gb,DDR4。 

 网页会为你推荐很多型号。像数据位宽是8位的,可以直接跳过。

数据位宽为16位,频率为1200Mhz(2400MT/s)的,仍然有很多。这时候就是考验硬件工程师职业素养的时候了,我们不仅要考虑硬件性能,还要考虑下物料成本,物料采购周期。考虑成本,就尽量不要有“过设计”的地方,所以速率为3200MT/s的器件排除掉。如果我们是消费类商规产品,所以温度范围选择较窄的商业级器件,其次,为了增进你和采购的感情, 

这样下来,我们选型基本就锁定到MT40A512M16JY-083E了,用量为2片(容量16Gb了)。
此时,开始阅览器件规格书,了解电气性能,设计外围电路,让DDR控制器和DDR内存颗粒都欢快的运行起来。

DDR的硬件电路搭建

设计逻辑器件电路,就要有逻辑思维,最简单的逻辑思维,就是分组。
所以,先了解DDR控制器的硬件接口。控制器硬件PIN脚可以分为电源组,配置组,控制组,时钟组,地址组,数据组。

电源组和配置组接口如下,供电,接电阻就可以完成,1.2V的供电,尽可能要平稳,此处忽略。ZQ电阻是用来校准ODT阻抗的,我们后面会讲到。

 控制组接口如下。

 

分好组后,就要根据DDR的工作原理来进行外围硬件设计了。

控制信号中,需要注意CS0和CS1,2个片选信号的可以用来进行多RANK内存容量扩展的,说明DDR控制器,最多支持2组RANK
每组RANK分配单独的片选信号。我们此处设计2个16位芯片组成1个RANK,即CS0要同时接在目前选的2个DDR颗粒的CS上,组成菊花链。其余控制信号一般无时序要求,能传递逻辑即可。

地址信号通常要参考时钟信号,来进行寻址,所以地址信号要严格与时钟信号保持长度一致,来保证所有地址位在采样的时候同时到达。因为同一块单板上,每根线上电子的传递速度是一样的,所以信号线长度约长,信号越晚到达,信号线长度越短,信号越早到达,地址采样的时候,是有时间期限的,所以,所有的地址信号必须保证在采样时间范围内,全部到达,因此要求地址线相对时钟线进行长度控制。前面一节我们讲了内存寻址原理,先用BG信号选择BANK GROUP,再用BA信号进行BANK选择,再用A[0:16]进行行选择,再用A[0:16]进行列选择,完成寻址。可以看到,Address信号在进行行选择和列选择时,BG和BA信号都是保持的,所以BG信号和BA信号的等长要求会相对略宽。

DDR控制器有2根BG信号,2根BA信号,17根Address信号。
同一个RANK有2个DDR颗粒,每个DDR颗粒有1根BG信号,2根BA信号,17根Address信号,前面CS0同时连接了2个DDR颗粒的片选,所以寻址时两颗DDR会被同时片选,那么DDR控制器如何区分开寻址其中1颗DDR颗粒呢?硬件又该怎么连接?

其实很简单,根据上节讲的内存寻址原理,我们知道每个DDR颗粒有2个BANK GROUP(1根BG信号),4个BANK(2根BA信号),与CS扩展容量的原理一致,我们把BG0接在DDR颗粒1上,BG0拉高拉低,我们可以寻址CHIP1的8个BANK。BG1接在DDR颗粒2上,BG1拉高拉低,我们可以寻址CHIP1的8个BANK。BA、ADDR进行菊花链连接,同时接在2颗DDR芯片上。

接下来,我们看看数据信号的链接,数据信号是内部分组的,由于DDR数据信号传输的时候双边沿数据传输,而且如果所有信号都参考时钟去做等长,会导致等长控制非常困难,增加DDR的设计难度,所以聪明的人类想出了另外一招,额外增加数据选通信号来作为数据信号的采样时钟,每8位信号,参考一组差分。
所以我们很轻易可以看出DDR控制器有4组DQS差分信号,32根数据信号。我们的RANK中有2个DDR颗粒,每个颗粒有2组DQS差分信号,16根数据信号。
所以

控制器的DQS[0:1]连接DDR CHIP0的DQS[0:1],
控制器的DQ[0:15]连接DDR CHIP0的DQ[0:15]。
控制器的DQS[2:3]连接DDR CHIP1的DQS[0:1],
控制器的DQ[16:31]连接DDR CHIP1的DQ[0:15]。

至此所有信号连接完成。

接下来是阻抗匹配,地址信号都需要外部加49欧姆匹配电阻到电源或者GND,数据信号,则不需要。因为DDR内部集成ODT功能,只需要通过配置,即可完成每组数据线的阻抗匹配。

特性与电气参数

DDR4有哪些特性?

DDR系列有DDR,DDR2、DDR3、DDR4、DDR2L、DDR3L、DDR4L、以及最新出现的DDR5。虽然技术在不断进步,但是每一代之间又有很多相似之处。我们观察下DDR主流系列产品的特色,就不难发现规律。

很明显,电压越来越低了,频率越来越高了,数据总线由单端发展为差分了。我们发现这与总线的发展史有异曲同工之妙。

科技的根源仍旧是人类最普通的智慧,不信?那我们来举个不恰当的李子,栗子,例子。假如河的这边有很多李子,河的对面有很多栗子,如果只用人力,尽可能快的把河对面的栗子和这边的李子来回搬运,你有哪些办法?你会很轻易地提出若干方案,多找人同时搬;找游泳快的兄弟;在河比较窄的地方搬;2个人为一组,A扔李子,B扔栗子….

你想你故在,聪明的前辈们也和你一样,把这种思维运用在了DDR的设计上。最开始找了很多人一起搬,所以DDR最开始是并行走线设计;后来找游泳快的人,所以DDR的频率在不断提高;游泳快但是累啊,得找窄点的地方游,所以DDR工作电平越来越低(电流传输速度是一定的,所以电压越低,耗时越短)。一直来回游泳也不是个事啊,能不能两人成组,你负责搬0,我负责搬1,所以DDR总线逐渐也在由并行向差分演进。

如上就是DDR的技术发展规律,也是很多总线的发展规律。掌握规律,我们再来看特性,DDR4电平1.2V,DQS信号走差分,频率在1600Mbps~3200Mbps.

DDR4有哪些关键信号?

DDR4都有哪些关键信号呢?一张图就可以看明白。有CK,ADDR,DQS,DQ,DQM信号,在电路之外,还能看到使能,复位,ODT,ZQ。

那么这些信号都有什么作用?我们接下来做简要介绍。

  1. CK,Address,DQS,DQ,DM信号都有哪些作用?
    CK是DDR的数据通信时钟信号,当CK和Address信号配合工作时,可以进行CMD(命令)操作和Address(地址)信号传输。由于地址信号和命令信号在DDR操作过程中属于控制信号,相对DDR的数据传输,属于小众场景,所以DDR的地址信号和CMD信号目前仍然走的是单端走线,工作频率比起数据传输也比较低。所以我们不难发现,ADDR信号仍然是单端信号,且大部分匹配电阻仍然外置。

由于数据传输才是DDR的主要业务,所以在DDR进行数据传输时,需要增加额外的措施来保证数据传输,所以DDR4增加了新的角色,DQS,DQ,DM信号。

数据选取脉冲(DQS)是DDR中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由CPU发来的DQS信号,读取时,则由DDR生成DQS向CPU发送。完全可以说,它就是数据的同步信号。甚至可以这么说,CK和DQS配合起来,作为DQ数据线的参考时钟,这也是为什么走线时,DQS和DQ要放到一起考虑的原因。

在数据连续传输过程中,随着时钟的变化,CPU可能会读取到DDR中位置1,位置2,位置3,位置4的数据,假如在这个连续传输过程中,CPU不想要位置2的数据,又不想中断数据传输,那么有什么办法呢?DQM就派上用场了,在传输到位置2时**,DQM使能,就可以屏蔽掉位置2 的数据。**

  1. 什么是ODT?
    芯片终端端接匹配电阻On-Die Termination简称为ODT。ODT是从DDR2后期的产品才开始出现的,并随着产品的升级,ODT呈现更多的数值。当前,ODT主要是用于数据(data,DQ)、数据选通(DQS/DQS#)和数据掩码(Data Mask,DM)三类信号线。ODT的功能就是代替了常规的电路匹配设计,使原本在芯片外部的分立端接电阻集成到芯片内部,其简化电路结构如下图所示。

 

 

ODT电路的引入,是DDR发展的里程碑,ODT有如下优势:

去掉了PCB板上的分立端接电阻元件,降低了硬件设计成本。
由于没有端接电阻,使PCB设计有更多的布线空间,方便EDA布线。
由于ODT通过内部的寄存器进行调节,可以通过软件开启和关闭,减少了调试工作量。
芯片内部端接比板级端接更加有效,这样没有过多的寄生效应。
减少了外部元件的数量,在可靠性上也获得了优化。

ODT的引入,为进一步提高DDRx内存的工作频率做了铺垫。当然,ODT也并不都是优点,因为使用了ODT,匹配电阻的种类和数值已经确定并无法修改;在某种程度上也会带来一定的功耗增加,所以在一些消费类的产品上也并不都是开启ODT功能。

  1. 什么是ZQ校准?
    ZQ是DDR3之后新增的一个引脚,而DDR3正是通过ZQ进行输出电阻(Ron)和 ODT的校准,这个校准过程在DRAM初始化过程中都会完成。ZQ在原理设计上比较简单,ZQ引脚通过一个低公差240Ω(一般公差为1%)的电阻直接连接到地即可。

除了眼图,DDR4还看那些电气参数?

DDR4设计是否设计OK,就需要看DDR4的量测参数是否满足JEDEC规范。那规范中都定义了哪些电气参数呢?每个电气参数又代表了什么意义?接下来我们做简要介绍。

  1. 过冲与下冲。
    信号如果在传输过程中阻抗不连续,就会出现反射,反射表现在示波器波形上,就是信号上冲和下冲,在DDR设计过程中,我们关注的不是信号在某个时间点的过冲幅值,而是过冲在时间维度的积分。关注的是一个过程,而不是一个点。

 对于每个信号,协议规范都会在这4个维度上对信号完整性进行定义规范。

 

  1. 信号的高电平和低电平。
    在高速信号传输中,信号能否达到协议规定的高电平最低门限和低电平最高门限,也直接决定了产品的稳定性。在DDR规范中,单端地址和控制命令、单端数据和数据掩码信号的AC和DC输入电平,差分时钟和数据选通信号的AC和DC输入电平都会被明确定义。仿真和测试过程中,只需要关注特定场景下的实测值有无达到协议规定值即可。

 3. 差分信号交叉点电压。
为了满足信号的建立和保持时间,差分信号单端交叉点必须保证在一定的范围内。

 交叉点以V DD/2作为参考电压,测量的是相对于V DD/2的偏离,偏离得越小越好。

 

4. 时序要求。
有时序关系要求的主要有3组:地址、控制和命令信号与时钟信号之间;数据选通信号与时钟信号之间;数据、数据掩码与数据选通信号之间。所以在PCB设计时,也按信号进行分组设计,地址、控制和命令信号与时钟信号作为一组,数据、数据掩码信号与数据选通信号每一个字节作为一组,相同组的信号在设计时基本会保持长度相差在一定的范围之内,并且设计的方式基本一样(如同组布线在同层、有相同的过孔数等),这样才能保证满足时序的要求。

5. 斜率降额。
总线的规范中有两种测量斜率的方式,分别是常规的测量方式和切线测量方式,以地址、控制和命令信号为例,其定义如下图所示。

 这两种测量方式主要由获得波形的质量决定,如果波形的单调性比较好,则以常规方式测量;如果单调性不好,出现一些回钩或台阶,则用切线方式测量。
图中红色框框代表常规斜率测量方法,绿色箭头代表切线方式测量方法。在DDR中,信号的建立和保持时间并不是唯一不变的,会随着斜率的变化而变化,为了弥补斜率造成的影响,在仿真最终的“建立和保持时间”时,测量的时序参数需要与降额参数相加。降额参数与信号的斜率和时钟/数据选通的斜率有关。

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

DDR4原理及硬件设计 的相关文章

  • 作为ARM Cortex-M家族的继承者 Cortex-M23与M33有哪五大特色?

    http news eeworld com cn xfdz article 2017011259937 html 集微网消息 xff0c ARM处理器在嵌入式设备领域的应用非常广泛 基于ARM Cortex处理器的片上系统 xff08 So
  • emmc5.1, ufs2.0, ufs3.0

    总的来说 xff0c UFS3 0的综合性能 xff0c 特别是持续读写速度有着秒杀UFS2 1前辈的表现 xff0c 只是在随机读写和SQLite性能上 xff0c 却依旧和双通道的UFS2 1持平 xff0c 有些小遗憾 最后 xff0
  • 串行Norflash是如何实现XIP的?

    先说问题 xff1a 要想程序在串行的Norflash中运行 xff0c 到底需要做哪些工作 xff1f Norflash和Nandflash想必大家都知道 恕本人才学疏浅 xff0c 最近突然发现Norflash可以并行连接实现XIP x
  • ARM汇编语言 - 简介 [一]

    origin https zhuanlan zhihu com p 82490125 ARM汇编语言 简介 一 兰新宇 talk is cheap 说明 xff1a 本系列文章将主要以ARMv7和ARMv8架构为例 xff0c 介绍ARM汇
  • ARM汇编语言 - 简介 [二]

    上文介绍了ARM的数据传送指令 xff0c 本文将主要介绍ARM中的移位 序转和位操作等数据处理指令 移位指令 移位包括逻辑移位和算术移位 xff0c 所谓 逻辑 就是将寄存器中存放的内容仅仅视为一串bits xff0c 移位的时候只需要将
  • 智能小车开发的重点之一电机该如何选型

    一 智能小车的分类 二 电机的分类 无刷电机要好于有刷电机 xff0c 优点 xff1a 1 没有损耗 xff0c 有刷电机有寿命 2 静音 xff0c 有刷电机噪音比较大 无刷电机分为带霍尔传感器和不带霍尔传感器两种 xff0c 因为无刷
  • ARM汇编语言 - 简介 [三]

    上文介绍了ARM的数据处理指令 xff0c 本文将主要介绍ARM中的跳转指令 跳转指令 无条件跳转 ARM中的基础跳转指令就一个字母 34 B 34 xff0c 代表Branch xff0c 相比起x86中和它功能基本相同的 34 jmp
  • CAN总线35周年特别篇 -- CAN总线的前世今生

    origin https mp weixin qq com s MloRz 4sio8QGdNItNRBjQ CAN总线35周年之际 xff0c 花了一晚上时间整理翻译了下 xff0c 通过这个帖子大家会对当前市场上各种CAN名词有的全面系
  • 微控制器CPU性能测试基准CoreMark

    origin https www cnblogs com henjay724 p 8729364 html 痞子衡嵌入式 xff1a 微控制器CPU性能测试基准 EEMBC CoreMark 大家好 xff0c 我是痞子衡 xff0c 是正
  • 意外发现,Cortex-M7的性能和诸多关键参数碾压A7和R7

    origin https www amobbs com thread 5676525 1 1 html 之前一直以为ARM A R M M排在最后也最便宜 xff0c 肯定性能最低 xff0c 但最近意外发现并非如此 xff0c M7居然完
  • gcc之-fomit-frame-point

    Kernel里的dump stack oops打印出来的backstrace调用链表是怎样实现的呢 xff1f 大家都知道当发生函数调用的时候 xff0c 函数的参数传递 xff0c 返回值传递都要遵循一定的规则 xff0c 在ARM体系架
  • Lauterbach trace32与 jlink

    一直不太明白trace32为何这么贵 xff0c 这篇文章讲了一些 xff0c 稍微明白一点了 一个小工具背后的故事 昨天我们推送了华为任正非2012年的讲话稿 真正的出路 xff1a 重读任正非2012实验室讲话 任总是在商场上真刀真枪干
  • 嵌入式开发输出调试信息的几种方法(常规法及非常规法)!

    origin https mp weixin qq com s 7LolqWUeJ4tCENh6yVmvXw 嵌入式开发的一个特点是很多时候没有操作系统 xff0c 或者没有文件系统 xff0c 常规的打印log到文件的方法基本不适用 最常
  • 从零开始,耗时两年,19岁小伙自制一块32位Risc-V处理器,可玩「贪吃蛇」

    从零开始 xff0c 耗时两年 xff0c 19岁小伙自制一块32位Risc V处理器 xff0c 可玩 贪吃蛇 脚本之家 今天 关注 脚本之家 xff0c 与百万开发者在一起 本文经机器之心 xff08 微信公众号 xff1a almos
  • 揭秘被Arm编译器所隐藏的浮点运算~

    以下文章来源于Mculover666 xff0c 作者mculover666 引言 笔者接触嵌入式领域软件开发以来 xff0c 几乎用的都是 ARM Cortex M 内核系列的微控制器 感谢C语言编译器的存在 xff0c 让我不用接触汇编
  • main之前初始化流程

    本文分别介绍Keil调用的ARMCC以及ARM NONE EABI GCC两个编译器在main之前的操作 xff1a Keil MDK启动文件 总结一下MDK的启动流程 xff1a 1 系统初始化 xff0c 包括中断向量表的重新映射 2
  • 嵌入式单片机之STM32F103C8T6最小系统板电路设计参考

    STM32F103C8T6最小系统板电路设计 一 电源部分 设计了一个XH插座 xff0c 以便使用3 7V锂电池供电 xff0c 接入电压不允许超过6V 二 指示灯部分 电源指示灯可以通过一个短路帽控制亮灭 xff0c 以达到节电的目的
  • 国产射频前端,攀登新高峰

    2022年 xff0c 国产射频前端开启新篇章 射频前端包括功率放大器 xff08 PA xff09 滤波器 xff08 Filter xff09 开关 xff08 Switch xff09 低噪声放大器 xff08 LNA xff09 天
  • slam相关文章

    1 视觉SLAM漫谈 http www cnblogs com gaoxiang12 p 3695962 html 2 学习SLAM需要哪些预备知识 xff1f https www zhihu com question 35186064 3
  • 工业机器人主要核心

    主要核心为三部分 xff0c 控制器 xff08 就是用来控制机器人动作的那个手持设备 xff0c 可以用来编程 xff0c 一般用vxworks和linux xff0c wince来实现 xff09 伺服电机和减速器用来实现机器人的动作

随机推荐

  • 想搞工业机器人 这五大方面你必须了解

    origin http www robot china com news 201510 09 25754 html 1 工业机器人控制系统硬件结构 控制器是 机器人 系统的核心 xff0c 国外有关公司对我国实行严密封锁 近年来随着微电子技
  • 为什么我选择并且推崇用ROS开发机器人?

    origin http www leiphone com news 201701 zBHXGJcsRTioj4gH html 雷锋网 公众号 xff1a 雷锋网 按 xff1a 本文来自知乎 xff0c 作者贾子枫 xff0c 雷锋网已获授
  • 一飞智控CEO齐俊桐:一篇文章教你看透无人机飞控这十年

    origin http www leiphone com news 201702 YO2bskI7smE1U8TA html 无人机 又一个被国人玩坏了的单词 科幻电影里的无人机 10年前说自己是搞无人机的 xff0c 无不引来疑惑和赞叹的
  • 机器人框架

    ROS Rock Yarp Orocos
  • 列王的纷争-深度传感器已被巨头瓜分?

    origin http mt sohu com 20170325 n484729546 shtml 我们常常说苹果富可敌国 但是你这么说其实是在侮辱苹果 苹果可比美国政府有钱多了 根据最新消息 xff0c 美国政府账上的现金 xff0c 只
  • 不得不看!国内深度摄像头方案大起底

    origin http pieeco baijia baidu com article 517947 引言 xff1a 市场对深度视觉技术需求趋于井喷 xff0c 但可以提供产品和方案的公司寥寥无几 xff0c 本文分析了国内三家各具特点的
  • VR中的9轴传感器(重力加速度/陀螺仪/磁力计)

    origin http blog csdn net dabenxiong666 article details 53836503 前言 传感器的调试过程 xff0c 一般根据原厂提供demo代码 xff0c 调试数据接口 xff0c 将数据
  • STM32中AD采样的三种方法分析

    在进行STM32F中AD采样的学习中 xff0c 我们知道AD采样的方法有多种 xff0c 按照逻辑程序处理有三种方式 xff0c 一种是查询模式 xff0c 一种是中断处理模式 xff0c 一种是DMA模式 三种方法按照处理复杂方法DMA
  • 神经网络:比原来更容易学习了

    origin http geek csdn net news detail 195039 原文 xff1a NEURAL NETWORKS YOU VE GOT IT SO EASY 作者 xff1a Steven Dufresne 翻译
  • NuttX 编译系统

    origin http blog csdn net zhumaill article details 24400441 xff08 嵌入式 实时操作系统 rtos nuttx 7 1 makefile xff09 NuttX 编译系统 转载
  • NuttX 启动流程

    origin http blog csdn net zhumaill article details 23261543 xff08 嵌入式 实时操作系统 rtos nuttx 7 1 stm32 源代码分析 xff09 NuttX 启动流程
  • nuttx操作系统的移植以及下载

    origin http blog csdn net seawolfe article details 70244672 1 在ubuntu根目录下 xff1a root 64 ubuntu apt get update 更新包 2 root
  • 机器人峰会厂商

    origin http www chinarobtop com exhibition exhibition php 埃夫特 清能德创 芜湖瑞思 芜湖哈特 山东帅克机械 宁波慈兴轴承 A6 成都卡诺普 绿的谐波
  • 机器人公司

    1 螺趣科技 2 米兔机器人 3 360
  • 解:高性能MEMS IMU解决方案-ADXRS290

    origin https ezchina analog com message 34890 对于复杂且高动态惯性配置的MEMS IMU应用 xff0c 评估功能时需要考虑许多属性 在设计周期早期评估这些属性优于追逐开放性成果 xff0c 从
  • 关于DIY电池均衡器--被动均衡---蓄电池--电瓶车电池组电压均衡的经历

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 前言 随着电动车长时间的反复使用 xff0c 电池参数难免会发生变化 xff0c 当电池组中各节电池参数不一时 xff0c 便会出现充电时
  • CMakeLists.txt与Makefile 的区别

    我平时一般是在windows使用VS编程 xff0c 但是偶尔在网上查资料的时候也会下载一些别人的代码 xff0c 其中就经常对CMakeLists txt和Makefile文件产生疑惑 xff0c 下面我来分析一下这两个经常使用的地方 C
  • 链接提示 extern "C"

    在 C 43 43 中调用 C 代码时 xff0c 需要给编译器指定 xff23 代码要按照 xff23 语言的编译器编译 xff0c 否则编译器会将 xff23 代码按照默认的C 43 43 编译器来编译 xff23 代码 xff0c 这
  • C/C++实现你的浪漫表白:浪漫流星雨表白程序,

    想要讨女朋友欢心也巩固自己所学的知识 xff0c 各位小伙伴有自己的想法了吗 xff1f 准备好想要怎样实施了吗 xff1f 有什么美好的计划了吗 xff1f 如果没有的话那么别慌 xff0c 我知道 xff0c 在座的各位肯定都是有自己的
  • DDR4原理及硬件设计

    DDR4 DRAM的工作原理 其引脚按照功能可以分为7类 xff1a 前3类为电源 地 配置 后4类为 xff1a 控制信号 时钟信号 地址信号 数据信号 电源 地 配置信号的功能很简单 xff0c 在此不赘述 控制信号主要是用来完成DDR