当前位置:首页 > RAM
  • stm32单片机和51单片机,你能分得清吗?

    stm32单片机和51单片机,你能分得清吗?

    什么是stm32单片机和51单片机?你能区分吗?单片微型计算机简称单片机(MCU),简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已。stm32单片机or51单片机哪个更优秀? 什么是51单片机? 应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。 什么是stm32单片机? STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按内核架构分为不同产品:其中STM32F系列有:STM32F103“增强型”系列STM32F101“基本型”系列STM32F105、STM32F107“互联型”系列增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,相当于0.5mA/MHz。 stm32单片机or51单片机哪个更优秀? 51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型号就是ATMEL公司的AT89系列。 STM32单片机则是ST(意法半导体)公司使用arm公司的cortex-M3为核心生产的32bit系列的单片机,他的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本上接近于计算机的CPU了,适用于手机、路由器等等。 总的来说51有51的轻巧 ,STM32有STM32的强大。 首先51是入门最简单, 相对来说好学, 功能少 ,控制比较方便。但是速度 、功能都没有STM32强大 ,STM32是32bit的, 外围接口丰富, 但是入门就有点难度了。 再就是51的速度能快点 ,但是毕竟是8bit的, 51大多是冯诺依曼结构 ,STM32是哈弗结构的, 数据处理起来很快。以上就是stm32单片机和51单片机的区别解析,希望能给大家帮助。

    时间:2020-05-13 关键词: CPU MCU RAM

  • 单片机的一些值得你收藏的技术干货

    单片机的一些值得你收藏的技术干货

    什么是单片机?你真的知道吗?想学单片机的童鞋们,先了解下什么是单片机,以及要学习哪些知识,这样会有助于你们的知识累积,更快学好单片机相关知识。 什么是单片机? 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。 下面看看我们需要学习哪些知识? 学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某 种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等 。 中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。 第四步:与PC机进行RS232通信 单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。 USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊! 第五步:学会A/D转换 MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。 使用A/D转换功能的简单的例子是设计一个电压表。 第六步:学会PCI、I2C接口和液晶显示器接口 这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。 第七步:学会比较、捕捉、PWM功能 这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。 如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。 第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计 学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了。以上就是单片机的常用知识,希望能给大家帮助。

    时间:2020-05-13 关键词: RAM 集成电路芯片 中央处理器cpu

  • 海外版Redmi 10X预装Android 10

    海外版Redmi 10X预装Android 10

    据报道,Redmi 10x已与工业和信息技术部连接,并将在全球范围内首次发布MediaTek G85。 一些国外媒体最近在Google Play上发现了Redmi 10X 4G海外版本的配置列表。 据了解到,从截图来看这款代号为Merlin的Redmi 10X 4G将配备联发科技Helio G70处理器而不是G85芯片,同时这款手机还将配备4GB RAM和FHD+显示屏,预装Android 10上运行。值得注意的是,根据Google Play列表内容显示,这款Redmi 10X 4G将在中国以外的地区推出。 根据先前在电信的天翼产品库中发布的国家银行Redmi 10X 4G版本的配置,它配备了MTK G85处理器,6.53英寸,6 GB的搜索屏幕 内存和128 GB机身内存,以及一个13百万像素的前置摄像头,后置4800万像素+ 800万像素+ 200万像素+ 400万像素的组合。

    时间:2020-05-11 关键词: RAM redmi android10 10x

  • 闪存和SSD硬盘的不同点,你知道吗?

    闪存和SSD硬盘的不同点,你知道吗?

    你知道闪存和SSD硬盘的不同点吗?人们在讨论固态硬盘(SSD)时,很多人甚至有些专家将“闪存”和“SSD 硬盘”的术语互换使用。而这是一种可以理解的选择,因为这两种技术密切相关。但是,这两个术语实际并不完全相同。 两者之间差异的类比可能很容易理解。在存储行业中使用的最简单的类比之一是闪存就像鸡蛋,而 SSD 硬盘就像煎蛋卷一样。煎蛋卷主要是由鸡蛋制作的,而 SSD 硬盘主要由闪存制成的。如果有人问你吃什么早餐,如果你回答“鸡蛋”,即使你实际上吃的是煎蛋卷,而这也是可以理解的。 而鸡蛋除了制作煎蛋卷外,还可以用鸡蛋做很多食品。同样的道理,除了制作 SSD 硬盘之外,人们还可以使用闪存做很多事情。 什么是闪存? 闪存是一种基于硅芯片的存储介质,可以用电写入或擦除。存储介质的其他示例包括机械硬盘、磁带、CD 光盘、DVD 光盘、蓝光光盘,甚至是软盘和穿孔卡。 ·速度:闪存具有一些独特的特性,使其特别适用于存储企业数据。首先,顾名思义,它比机械硬盘(HDD)的存取速度快得多。 ·没有活动部件:与机械硬盘或磁带不同,闪存可用于制造没有移动部件的硬盘驱动器。一般来说,这使得它不太可能中断或失败,特别是在存储设施被移动的情况下(尽管有些专家并不认同闪存这种特性的真实可靠性)。 闪存 vs SSD 硬盘两者有什么差异 ·非易失性:闪存是非易失性的,这意味着即使电源关闭,它也会保留存储的信息。这使它与内存(RAM)区别开来,后者的存取也非常快,但每次系统断电时都会被擦除。 ·易于重写:闪存很容易重写,因此它对于存储频繁更改的数据非常有用(例如,不像 CD 或 DVD 光盘)。 除 SSD 硬盘之外,闪存还可用于生产其他产品。例如,手机、笔记本电脑、数码相机、摄像机、存储卡、USB 记忆棒、计算器、医疗设备甚至一些数字玩具都使用闪存。 同样值得注意的是闪存有几种不同的类型。最常见的两种是 NOR 闪存和 NAND 闪存。NOR 是两者中第一个被开发出来的。其读取速度非常快,但写入速度却不快,因此最常用于代码编写一次并且读取很多数据的地方。NAND 闪存写入速度更快,占用的空间明显少于 NOR 闪存,这也使其成本更低。SSD 硬盘中使用的大多数闪存都是 NAND 闪存。 闪存的最大缺点是,目前的价格还相当昂贵。但是,随着技术的进步,成本会逐渐降低,使闪存在企业环境中更具成本效益。有些组织的数据中心甚至选择完全舍弃机械硬盘而所有都采用 SSD 硬盘。 什么是 SSD 存储? SSD 硬盘是存储设备。目前市场上的大多数 SSD 硬盘都使用闪存作为其存储介质。闪存和 SSD 硬盘之间的关系类似于 CD 光盘和 CD 光盘驱动器之间的关系。CD 光盘是介质,CD 光盘驱动器是存储设备,因此,可以认为闪存是介质,而 SSD 硬盘是存储设备。 然而,SSD 硬盘不一定必须使用闪存作为其存储介质。其名称为“固态驱动器”,因此任何不运动的存储类型都可以算作 SSD 硬盘。事实上,从历史上看,最早的 SSD 硬盘并没有使用闪存介质。未来的 SSD 硬盘也可能使用闪存以外的介质。 大多数 SSD 硬盘使用与 HDD 硬盘相同的外形。这使用户可以更轻松地从基于磁盘的存储迁移到固态存储。企业可以购买已安装 HDD 硬盘的单个驱动器或 SSD 硬盘阵列。混合阵列使用 HDD 硬盘和 SSD 硬盘的组合是另一种流行的选择。 SSD 硬盘和闪存的发展历史 SSD 硬盘的历史比闪存长得多。虽然有些追溯到 20 世纪 50 年代固态硬盘的起源,但是第一批真正的固态硬盘在 20 世纪 70 年代推出。 最初的 SSD 硬盘依赖于一种名为可擦除只读存储器(EAROM)的计算机芯片。EAROM 也出现在一些早期的视频游戏中,但这项技术从未真正广泛应用过。 在 20 世纪 70 年代中后期,一些制造商开始销售基于内存(RAM)的 SSD 硬盘。像闪存一样,RAM 存取速度很快。但与闪存不同,RAM 是易失性的,这意味着当电源关闭时,存储在 RAM 中的所有内容都将被删除。这在停电的情况下会出现一些非常明显的问题,因此很多早期的 SSD 硬盘都有备用电池系统。 存储制造商继续改进和销售基于 RAM 的固态硬盘直到 2000 年代。在此期间,他们还尝试了可用于创建 SSD 硬盘的其他技术。在 20 世纪 80 年代早期,英特尔公司推出了一款名为 Bubble Memory 的产品,它得到了人们的关注,并被整合到一些早期的个人电脑中,包括 Apple II 电脑。但是,当设计人员试图扩大 Bubble Memory 的容量时,遇到了技术问题,因此英特尔公司很快放弃了这种产品和技术。 大约在同一时期,泡沫记忆似乎成为最热门的新东西,一位名叫 Fujio Masuoka 的东芝公司员工提出了闪存的想法。他在 1987 年的存储行业大会上展示了他的发明,并在 20 世纪 80 年代后期,第一批闪存产品进入市场。 基于闪存的固态硬盘在 20 世纪 90 年代初开始上市,但价格很高。SunDisk 公司(后来改名为 SanDisk)在 1991 年以 1000 美元的价格售出了一个 20MB 的基于闪存的 SSD 硬盘。其价格相当于目前的 1900 美元,或每 GB 约 95,000 美元。 对于大多数应用程序而言,过高的价格使闪存无法广泛应用,而且其存取速度也没有内存那么快,两者都是针对存储技术。然而,闪存的非易失性使其足够吸引人,研究人员即使在销售 RAM 固态硬盘时仍继续开发它。 在 2000 年代,SSD 硬盘真正开始得到应用,闪存逐渐变得比 RAM 更受欢迎。然后在 2010 年代,闪存的价格开始下降到企业可以用基于闪存的 SSD 硬盘替换旧的存储技术(例如机械硬盘和磁带)。 SSD 硬盘的未来 如上所述,目前市场上几乎所有的 SSD 硬盘都基于闪存技术,这是人们有时认为“闪存”和“SSD 硬盘”是同一个词的重要原因。但是,它可能并不总是这样。 存储制造商正在继续开发闪存的新替代品。其中一个更有前途的是 3D Xpoint,它由 Intel 公司和 Micron 公司提供技术支持,并以 Optane 和 QuantX 品牌销售。与闪存一样,3D XPoint 是非易失性的,据说它提供的延迟比 NAND 闪存低 1000 倍,并且指数更高。 然而,就像早期的闪存一样,3D XPoint 的价格仍然非常昂贵,目前市场上很少有用户使用它。 其他潜在的闪存替代品包括自旋转移扭矩随机存取存储器(STT-RAM)、电阻式 RAM(ReRAM)和相变存储器(PCM 或 PRAM)。到目前为止,包括 3D XPoint 在内的其他存储产品都没有成为存储市场的主流。只有随着时间的推移,才能知道哪种产品会成为下一个闪存,或者它们是否符合泡沫记忆的方式。 在可预见的未来,大多数 SSD 硬盘将继续基于闪存技术。这可能意味着许多存储行业将继续使用 “闪存”和“SSD”术语进行互换。以上就是闪存和SSD硬盘的不同点,希望能给大家帮助。

    时间:2020-05-11 关键词: 闪存 RAM ssd硬盘

  • 嵌入式系统开发的技巧,你知道多少?

    嵌入式系统开发的技巧,你知道多少?

    你知道嵌入式系统开发的技巧有哪些吗?成为一个正式的嵌入式主板开发工程师,是一个艰辛的过程,需要开发人员维护和管理系统的每个比特和字节。从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。今天给大家介绍 7 个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。 技巧 1——用已知值填充 ROM 软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不确定的,因为默认情况下内存空间都是 0xFF,或者由于内存区通常没有写过,其中的值可能只有上帝才知道。 不过有相当完备的 linker 或 IDE 技巧可以用来帮助识别这样的事件并从中恢复系统。技巧就是使用 FILL 命令对未用 ROM 填充已知的位模式。要填充未使用的内存,有很多不同的可能组合可以使用,但如果是想建立更加可靠的系统,最明显的选择是在这些位置放置 ISR fault handler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发 ISR,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会 技巧 2——检查应用程序的 CRC 对嵌入式工程师来说一个很大的好处是,我们的 IDE 和工具链可以自动产生应用程序或内存空间校验和(Checksum),从而根据这个校验和验证应用程序是否完好。有趣的是,在许多这些案例中,只有在将程序代码加载到设备时,才会用到校验和。 然而,如果 CRC 或校验和保持在内存中,那么验证应用程序在启动时(或甚至对长时间运行的系统定期验证)是否仍然完好是确保意外之事不会发生的极好途径。现在一个编程过的应用程序发生改变的概率是很小的,但考虑每年交付的数十亿个微控制器以及可能恶劣的工作环境,医疗仪器应用程序崩溃的机会并不是零。更有可能的是,系统中的一个缺陷可能导致某一扇区发生闪存写入或闪存擦除,从而破坏应用程序的完整性。 技巧 3——在启动时执行 RAM 检查 为了建立一个更加可靠和扎实的系统,确保系统硬件正常工作非常重要。毕竟硬件会发生故障。(幸运的是软件永远不会发生故障,软件只会做代码要它做的事,不管是正确的还是错误的)。在启动时验证 RAM 的内部或外部没有问题,是确保硬件可以如预期般运作的一个好方法。 有许多不同的方法可用于执行 RAM 检查,但常用的方法是写入一个已知的模式,然后等上一小段时间再回读。结果应该是所读就是所写。真相是,在大多数情况下 RAM 检查是通过的,这也是我们想要的结果。但也有极小的可能性检查不通过,这时就为系统标示出硬件问题提供了极好的机会。 技巧 4——使用堆栈监视器 对许多的嵌入式开发者而言,堆栈似乎是一股相当神秘的力量。当奇怪的事情开始发生,工程师终于被难倒了,他们开始思考,也许堆栈中发生了什么事。结果是盲目地调整堆栈的大小和位置等等。但该错误往往是与堆栈无关的,但怎能如此确定?毕竟,有多少工程师真的实际执行过最坏情况下的堆栈大小分析? 堆栈大小是在编译时就静态分配好的,但堆栈是以动态的方式使用的。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈破坏相邻内存区域的数据。 绝对确保堆栈正常工作的一种方法是实现堆栈监视器,将它作为系统“保健”代码的一部分(有多少工程师会这样做?)。堆栈监视器会在堆栈和“其它”内存区域之间创建一个缓冲区域,并填充已知的位模式。然后监视器会不断的监视图案是否有任何变化。如果该位模式发生了改变,那就意味着堆栈增长得太大了,即将要把系统推向黑暗地狱!此时监视器可以记录事件的发生、系统状态以及任何其它有用的数据,供日后用于问题的诊断。 大多数实时操作系统(RTOS)或实现了内存保护单元(MPU)的微控制器系统中都提供有堆栈监视器。可怕的是,这些功能默认都是关闭状态,或者经常被开发人员有意关闭。在网络上快速搜寻一下可以发现,很多人建议关闭实时操作系统中的堆栈监视器以节省 56 字节的闪存空间等等,这可是得不偿失的做法! 技巧 5——使用 MPU 在过去,是很难在一个小而廉价的微控制器中找到内存保护单元(MPU)的,但这种情况已经开始改变。现在从高端到低端的微控制器都已经有 MPU,而这些 MPU 为嵌入式软件开发人员提供了一个可以大幅提高其固件(firmware)鲁棒性(robustness)的机会。 MPU 已逐渐与操作系统耦合,以便建立内存空间,其中的处理都分开,或任务可执行其代码,而不用担心被 stomped on。倘若真有事情发生,不受控制的处理会被取消,也会执行其他的保护措施。请留意带有这种组件的微控制器,如果有,请多加利用它的这种特性。 技巧 6——建立一个强大的看门狗系统 你经常会发现的一种总是最受喜爱的看门狗(watchdog)实现是,在看门狗被启用之处(这是一个很好的开始),但也是可以用周期性定时器将该看门狗清零之处;定时器的启用是完全与程序中出现的任何情况隔离的。使用看门狗的目的是协助确保如果出现错误,看门狗不会被清零,即当工作暂停,系统会被迫去执行硬件重设定(hardware reset),以便恢复。使用与系统活动独立的定时器可以让看门狗保持清零,即使系统已失效。 对应用任务如何整合到看门狗系统中,嵌入式主板开发人员需要仔细考虑和设计。例如,有种技术可能可以让每个在一定时期内运行的任务标示它们可以成功地完成其任 务。在此事件中,看门狗不被清零,强制被复位。还有一些比较先进的技术,像是使用外部看门狗处理器,它可用来监视主处理器如何表现,反之亦然。对一个可靠的系统而言,建立一个强大的看门狗系统是很重要的。 技巧 7——避免易失存储器分配 不习惯在资源有限环境下工作的工程师,可能会试图使用其编程语言的特性,这种语言让他们可以使用易失存储器分配。毕竟,这是一种常在计算器系统中使用的技术,在计算器系统中,只有在有必要时,内存才会被分配。例如,以 C 开发时,工程师可能倾向于使用 malloc 来分配在堆(heap)上的空间。有一个操 作会执行,一旦完成,可以使用 free 将被分配的内存返回,以便堆的使用。 在资源受限的系统,这可 能是一场灾难!使用易失存储器分配的其中一个问题是,错误或不当的技术可能会导致内存泄漏或内存碎片。更多资料企鹅爱吧物久零要奇伞武奇,如果出现这些问题时,大多数的嵌入式系统并没有 资源或知识来监视堆或妥善地处理它。而当它们发生时,如果应用程序提出对空间的要求,但却没有所请求的空间可以使用,会发生什么事呢? 使用易失存储器分配所产生的问题是很复杂的,要妥善处理这些问题,可以说是一个噩梦!一种替代的方法是,直接以静态的方式,简化内存的分配。更多资料请扫头像例如,只要在 程序中简单地建立一个大小为 256 字节长的缓冲区,而不是经由 malloc 请求这样大小的内存缓冲区。此一分配的内存可在整个应用程序的生命周期期 间保持,且不会有堆或内存碎片问题方面的顾虑。 以上嵌入式开发的教程可以让开发技术的人员获取更好嵌入式系统的办法。所有这些技术都是让设计者可以开发出可靠性更高嵌入式系统的秘诀。以上就是嵌入式系统开发的技巧,希望能给大家帮助。

    时间:2020-05-10 关键词: 嵌入式 RAM mpu

  • 关于单片机通信方式,你知道多少?

    关于单片机通信方式,你知道多少?

    你知道单片机通信方式有哪些吗?越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,但单片机之间的通信一直是困扰这种方法拓展的主要问题。 本文将分析比较几种单片机之间的方式、难点,并提出一种解决方案。 1、几种常用单片机之间的通信方式 ①采用硬件 UART 进行异步串行通信。这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件 UART,有些也只有 1 个 UART,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有应件 UART 且不需与外界进行串行通信或采用双 UART 单片机的场合。 ②采用片内 SPI 接口或 2C 总线模块串行通信形式。SPI/I2C 接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件 SPI/I2C 模块。 ③利用软件模拟 SPI/I2C 模式通信,这种方式很难模拟从机模式,通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。 ④口对口并行通信,利用单片机的口线直接相连,加上 1~2 条握手信号线。这种方式的特点是通信速度快,1 次可以传输 4 位或 8 位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送 1 个字节以后,必须等到另一个单片机的接收响应信号后才能传送下一个数据。一般用于一些硬件口线比较富余的场合。 ⑤利用双口 RAM 作为缓冲器通信。这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线,而且双口 RAM 的价格很高,一般只用于一些对速度有特殊要求的场合。 从上面几种方案来看,各种方法对硬件都有很大的要求与限制,特别是难以在功能简单的单片机上实现,因此寻求一种简单、有效的,能在各种单片机之间通信的方法具有重要的意义。③、④方案中,双方单片机要传递的每一位或每一个字节做出响应,通信数据量较大时会耗费大量的软件资源,这在一些实时性要求高的地方是不允许的。针对这一问题,假设在单片机之间增加 1 个数据缓冲器,大批数据先写入缓冲区,然后再让对方去取,各个单片机对数据缓冲器都是主控模式,这样必然会大大提高通信效率。谈到数据缓冲,我们马上会想到并行 RAM,但是并行 RAM 需要占用大量的口线(数据线+地址线+读写线+片选线+握手线),一般在 16 条以上。这是一个让人望而生畏的数字,而且会大大增加 PCB 面积并给布线带来一定的困难,极少有人采用这种方式。串行接口的 RAM 在市场上很少见,不但难以买到而且价格很高。移位寄存器也可以做数据缓冲器,但目前容量最大的也只 128 位,因为是“先进先出”结构,所以不管传递数据多少,接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的。一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法。 2 、利用铁电存储器作为数据缓冲器的通信方式铁电存储器是美国 Ramtran 公司刚刚推出的一种新型非易失性存储器件,简称 FRAM。与普通 EEPROM、Flash-ROM 相比,它具有不需写入时间、读写次数无限,没有分布结构可以连续写放的优点,因此具有 RAM 与 EEPROM 的双得特性,而且价格相对较低。现在大多数的单片机系统配备串行 EEPROM(如 24CXX、93CXX 等)用来存储参数。如果用 1 片 FRAM 代替原有 EEPROM,使它既能存储参数,又能作串行数据通信的缓冲器。2 个(或多个)单片机与 1 片 FRAM 接成多主 - 从的 I2C 总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。在软件方面,只要解决好 I2C 多主 - 从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信了。 3、 实例(双单片机结构,多功能低功耗系统) (1)硬件 W78LE52 与 EMC78P458 组成一个电池供电、可远程通信的工业流量计。78P458 采用 32.768kHz 晶振,工作电流低,不间断工作,实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52 采 11.0592MHz 晶振,由于它的工作电流较大,采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能,它的 UART 用于远程通信。通信接口部分线路如图 1 所示,2 个单片机共用 1 片 I2C 接口的 FRAM(FM24CL16)组成二主一从的 I2C 总线控制方式,W78LE52 的 P3.5、P3.2 分别与 78P458 的 P51、P50 连接作握手信号线 A 与 B。我们把握手线 A(简称 A 线)定义为总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线 B(简称 B 线)定义为通知线,主要用于通知对方取走数据。 (2)I2C 总线仲裁 由于我们采用的是二主一从的 I2C 总线方式,因此防止 2 个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件 I2C 模块的器件一般是这样的,器件内部有 1 个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令,总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个 SCL 状态变化对总线所有主机的超时定时器进行清零,以防止它溢出,指示总线正处于“忙”状态,直到一个主机对总线控制结束不再产生 SCL 脉冲;超时定时器溢出,总线重新回到“空闲”状态。但是目前大多数单片机没有配备硬件 I2C 模块,而且当 2 个主机的工作频率相差较大时,超时定时器定时值只能设为较大的值,这样也会影响总线的使用效率。下面介绍一种用软件模拟 I2C 总线仲裁的方式(I2C 读写操作程序的软件模拟十分多见,这里不再多述):用 1 条握手线 A,流程图如图 2 所示,当 A 线高电平时,指示总线空闲;当其中一个主机要获取总线控制权时,先查询总线是否空闲,“忙”则退出,空闲则向 A 线发送一个测试序列(如:1000101011001011),在每次发送位“1”后读取的 A 线状态。如果读取状态为“0”,马上退出,说明有其它器件已经抢先获取总线;如果一个序列读取的 A 线状态都正确,则说明已成功获得总线控制权,这时要拉低 A 线以指示总线“忙”,直到读写高 A 线,使总线回到“空闲”状态。不同的主机采用不同的测试序列,或产生随机测试序列,测试序列长度可以选得长一些,这样可以增加仲裁的可靠性。 (3)通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统 RAM 资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构: ①包头——指示数据包的开始,有利于包完整性检测,有时可省略;②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略;③包长度——指示整个数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC 校验等或者是它们的组合;⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。 4)通信流程 首先,要在 FRAM 里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线 B 发送 1 个脉冲通知对方取走数据;接收方读取数据并进行处理后,向 FRAM 内发送方的数据接收区写入回传数据或通信失败标志,再向握手线 B 发送 1 个脉冲回应发送方。表 3 是单片机 1 启动 1 次与单片机 2 之间的通信的例子。 如果需要单片机 2 发送的话,只需交换一下操作过程即可。 4 、总结 通过实践可知,以上方法是可行的。与其它方法相比具有发下优点: ①简单。占用单片机口线少(SCL、SDA、握手线 A、握手线 B)。 ②通用。软件模拟 I2C 主机方式,可以在任何种类的单片机之间通信。 ③高效。由于采用数据缓冲,可以在不同时钟频率、不同速度的单片机之间通信;读写数据时,可以 I2C 总线的最高速度进行,可以实现 1 次传送大量数据;在一个单片机向 FRAM 传送数据时,另一个单片机无须一一作出响应或等待,可以进行其它程序操作,提高软件工作效率。 ④灵活。通信硬件接口对于各个单片机是对等的,通过软件配置,每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫。 ⑤容易扩展。通过增加地址识别线,修改通信协议,即可做到多机通信。 以下是需要注意的地址: ①为了提高通信效率,握手线 B 最好使用中断端口,负脉冲宽度一定要满足速度较低单片机中断信号要求。如果没有中断的话应增加 1 条口线,用改变端口状态的方法通知对方,等待对方查询,而不是负脉冲。 ②向对方发送负脉冲时,应屏蔽自己的中断。 ③由于参数与通信缓冲区同时设在同一片 FRAM 内,要避免对参数部分的误操作。一个较好的解决办法是把参数存放在地址的后半部分(A2=1),在进行通信操作时,把 FRAM 的 WP 引脚拉高(地址在后半部分的单元写保护),这样可以有效地防止测验时对参数区误操作。 ④由于 I2C 总线在一个时间段内只有 1 个主机和 1 个从机,所以当 1 个单片机正在写通信数据时,另一个单片机是不能对 FRAM 进行操作的。如果需要实时、频繁地读取 FRAM 中参数的话,请预先将参数读入 RAM 单元使用或另外增加专门存放参数的芯片。以上就是单片机通信方式的解析,希望能给大家帮助。

    时间:2020-05-10 关键词: uart 单片机 RAM

  • 单片机之间的通信方式,你知道吗?

    单片机之间的通信方式,你知道吗?

    单片机之间的通信方式是什么?①采用硬件 UART 进行异步串行通信。这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件 UART,有些也只有 1 个 UART,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有硬件 UART 且不需与外界进行串行通信或采用双 UART 单片机的场合。 ②采用片内 SPI 接口或 I2C 总线模块串行通信形式。SPI/I2C 接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件 SPI/I2C 模块。 ③利用软件模拟 SPI/I2C 模式通信,这种方式很难模拟从机模式,通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。 ④口对口并行通信,利用单片机的口线直接相连,加上 1~2 条握手信号线。这种方式的特点是通信速度快,1 次可以传输 4 位或 8 位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送 1 个字节以后,必须等到另一个单片机的接收响应信号后才能传送下一个数据。一般用于一些硬件口线比较富裕的场合。 ⑤利用双口 RAM 作为缓冲器通信。这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线,而且双口 RAM 的价格很高,一般只用于一些对速度有特殊要求的场合。 从上面几种方案来看,各种方法对硬件都有很大的要求与限制,特别是难以在功能简单的单片机上实现,因此寻求一种简单、有效的,能在各种单片机之间通信的方法具有重要的意义。③、④方案中,双方单片机要传递的每一位或每一个字节做出响应,通信数据量较大时会耗费大量的软件资源,这在一些实时性要求高的地方是不允许的。 针对这一问题,假设在单片机之间增加 1 个数据缓冲器,大批数据先写入缓冲区,然后再让对方去取,各个单片机对数据缓冲器都是主控模式,这样必然会大大提高通信效率。谈到数据缓冲,我们马上会想到并行 RAM,但是并行 RAM 需要占用大量的口线(数据线+地址线+读写线+片选线+握手线),一般在 16 条以上。这是一个让人望而生畏的数字,而且会大大增加 PCB 面积并给布线带来一定的困难,极少有人采用这种方式。串行接口的 RAM 在市场上很少见,不但难以买到而且价格很高。移位寄存器也可以做数据缓冲器,但目前容量最大的也只 128 位,因为是“先进先出”结构,所以不管传递数据多少,接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的。一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法。 利用铁电存储器作为数据缓冲器的通信方式 铁电存储器是美国 Ramtran 公司推出的一种非易失性存储器件,简称 FRAM。与普通 EEPROM、Flash-ROM 相比,它具有不需写入时间、读写次数无限,没有分布结构可以连续写放的优点,因此具有 RAM 与 EEPROM 的双得特性,而且价格相对较低。 现在大多数的单片机系统配备串行 EEPROM(如 24CXX、93CXX 等)用来存储参数。如果用 1 片 FRAM 代替原有 EEPROM,使它既能存储参数,又能作串行数据通信的缓冲器。2 个(或多个)单片机与 1 片 FRAM 接成多主 - 从的 I2C 总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。在软件方面,只要解决好 I2C 多主 - 从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信了。 实例(双单片机结构,多功能低功耗系统) (1)硬件 W78LE52 与 EMC78P458 组成一个电池供电、可远程通信的工业流量计。78P458 采用 32.768kHz 晶振,工作电流低,不间断工作,实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52 采 11.0592MHz 晶振,由于它的工作电流较大,采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能,它的 UART 用于远程通信。2 个单片机共用 1 片 I2C 接口的 FRAM(FM24CL16)组成二主一从的 I2C 总线控制方式,W78LE52 的 P3.5、P3.2 分别与 78P458 的 P51、P50 连接作握手信号线 A 与 B。我们把握手线 A(简称 A 线)定义为总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线 B(简称 B 线)定义为通知线,主要用于通知对方取走数据。 (2)I2C 总线仲裁 由于我们采用的是二主一从的 I2C 总线方式,因此防止 2 个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件 I2C 模块的器件一般是这样的,器件内部有 1 个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令,总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个 SCL 状态变化对总线所有主机的超时定时器进行清零,以防止它溢出,指示总线正处于“忙”状态,直到一个主机对总线控制结束不再产生 SCL 脉冲;超时定时器溢出,总线重新回到“空闲”状态。但是目前大多数单片机没有配备硬件 I2C 模块,而且当 2 个主机的工作频率相差较大时,超时定时器定时值只能设为较大的值,这样也会影响总线的使用效率。 下面介绍一种用软件模拟 I2C 总线仲裁的方式(I2C 读写操作程序的软件模拟十分多见,这里不再多述):用 1 条握手线 A,当 A 线高电平时,指示总线空闲;当其中一个主机要获取总线控制权时,先查询总线是否空闲,“忙”则退出,空闲则向 A 线发送一个测试序列(如:1000101011001011),在每次发送位“1”后读取的 A 线状态。如果读取状态为“0”,马上退出,说明有其它器件已经抢先获取总线;如果一个序列读取的 A 线状态都正确,则说明已成功获得总线控制权,这时要拉低 A 线以指示总线“忙”,直到读写高 A 线,使总线回到“空闲”状态。不同的主机采用不同的测试序列,或产生随机测试序列,测试序列长度可以选得长一些,这样可以增加仲裁的可靠性。 (3)通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统 RAM 资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构: ①包头——指示数据包的开始,有利于包完整性检测,有时可省略; ②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略; ③包长度——指示整个数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC 校验等或者是它们的组合; (4)通信流程 首先,要在 FRAM 里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线 B 发送 1 个脉冲通知对方取走数据;接收方读取数据并进行处理后,向 FRAM 内发送方的数据接收区写入回传数据或通信失败标志,再向握手线 B 发送 1 个脉冲回应发送方。 如果需要单片机 2 发送的话,只需交换一下操作过程即可。 4 总结 通过实践可知,以上方法是可行的。与其它方法相比具有发下优点: ①简单。占用单片机口线少(SCL、SDA、握手线 A、握手线 B)。 ②通用。软件模拟 I2C 主机方式,可以在任何种类的单片机之间通信。 ③高效。由于采用数据缓冲,可以在不同时钟频率、不同速度的单片机之间通信;读写数据时,可以 I2C 总线的最高速度进行,可以实现 1 次传送大量数据;在一个单片机向 FRAM 传送数据时,另一个单片机无须一一作出响应或等待,可以进行其它程序操作,提高软件工作效率。 ④灵活。通信硬件接口对于各个单片机是对等的,通过软件配置,每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫。 ⑤容易扩展。通过增加地址识别线,修改通信协议,即可做到多机通信。 以下是需要注意的地方: ①为了提高通信效率,握手线 B 最好使用中断端口,负脉冲宽度一定要满足速度较低单片机中断信号要求。如果没有中断的话应增加 1 条口线,用改变端口状态的方法通知对方,等待对方查询,而不是负脉冲。 ②向对方发送负脉冲时,应屏蔽自己的中断。 ③由于参数与通信缓冲区同时设在同一片 FRAM 内,要避免对参数部分的误操作。一个较好的解决办法是把参数存放在地址的后半部分(A2=1),在进行通信操作时,把 FRAM 的 WP 引脚拉高(地址在后半部分的单元写保护),这样可以有效地防止测验时对参数区误操作。 ④由于 I2C 总线在一个时间段内只有 1 个主机和 1 个从机,所以当 1 个单片机正在写通信数据时,另一个单片机是不能对 FRAM 进行操作的。如果需要实时、频繁地读取 FRAM 中参数的话,请预先将参数读入 RAM 单元使用或另外增加专门存放参数的芯片。以上就是单片机之间的通信方式,希望能给大家帮助。

    时间:2020-05-09 关键词: 通信 fram RAM

  • 单片机和单片机是怎样通信的

    单片机和单片机是怎样通信的

    越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,但单片机之间的通信一直是困扰这种方法拓展的主要问题。 本文将分析比较几种单片机之间的方式、难点,并提出一种解决方案。 1、几种常用单片机之间的通信方式 ①采用硬件UART进行异步串行通信。这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件 UART,有些也只有1个UART,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有应件UART且不需与外界进行串行通信或采用双UART单片机的场合。 ②采用片内SPI接口或2C总线模块串行通信形式。SPI/I2C接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件SPI/I2C模块。 ③利用软件模拟SPI/I2C模式通信,这种方式很难模拟从机模式,通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。 ④口对口并行通信,利用单片机的口线直接相连,加上1~2条握手信号线。这种方式的特点是通信速度快,1次可以传输4位或8位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送1个字节以后,必须等到另一个单片机的接收响应信号后才能传送下一个数据。一般用于一些硬件口线比较富余的场合。 ⑤利用双口RAM作为缓冲器通信。这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线,而且双口RAM的价格很高,一般只用于一些对速度有特殊要求的场合。 从上面几种方案来看,各种方法对硬件都有很大的要求与限制,特别是难以在功能简单的单片机上实现,因此寻求一种简单、有效的,能在各种单片机之间通信的方法具有重要的意义。③、④方案中,双方单片机要传递的每一位或每一个字节做出响应,通信数据量较大时会耗费大量的软件资源,这在一些实时性要求高的地方是不允许的。针对这一问题,假设在单片机之间增加1个数据缓冲器,大批数据先写入缓冲区,然后再让对方去取,各个单片机对数据缓冲器都是主控模式,这样必然会大大提高通信效率。谈到数据缓冲,我们马上会想到并行RAM,但是并行RAM需要占用大量的口线(数据线+地址线+读写线+片选线+握手线),一般在16条以上。这是一个让人望而生畏的数字,而且会大大增加PCB面积并给布线带来一定的困难,极少有人采用这种方式。串行接口的RAM在市场上很少见,不但难以买到而且价格很高。移位寄存器也可以做数据缓冲器,但目前容量最大的也只128位,因为是“先进先出”结构,所以不管传递数据多少,接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的。一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法。 2 、利用铁电存储器作为数据缓冲器的通信方式铁电存储器是美国Ramtran公司刚刚推出的一种新型非易失性存储器件,简称FRAM。与普通EEPROM、Flash-ROM相比,它具有不需写入时间、读写次数无限,没有分布结构可以连续写放的优点,因此具有RAM与EEPROM的双得特性,而且价格相对较低。现在大多数的单片机系统配备串行EEPROM(如24CXX、93CXX等)用来存储参数。如果用1片FRAM代替原有EEPROM,使它既能存储参数,又能作串行数据通信的缓冲器。2个(或多个)单片机与1片FRAM接成多主-从的I2C总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。在软件方面,只要解决好I2C多主-从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信了。 3、 实例(双单片机结构,多功能低功耗系统)(1)硬件 W78LE52与EMC78P458组成一个电池供电、可远程通信的工业流量计。78P458采用32.768kHz晶振,工作电流低,不间断工作,实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52采11.0592MHz晶振,由于它的工作电流较大,采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能,它的UART用于远程通信。通信接口部分线路如图1所示,2个单片机共用1片I2C接口的FRAM(FM24CL16)组成二主一从的I2C总线控制方式,W78LE52的P3.5、P3.2分别与78P458的P51、P50连接作握手信号线A与B。我们把握手线A(简称A线)定义为总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线B(简称B线)定义为通知线,主要用于通知对方取走数据。 (2)I2C总线仲裁 由于我们采用的是二主一从的I2C总线方式,因此防止2个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件I2C模块的器件一般是这样的,器件内部有1个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令,总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个SCL状态变化对总线所有主机的超时定时器进行清零,以防止它溢出,指示总线正处于“忙”状态,直到一个主机对总线控制结束不再产生SCL脉冲;超时定时器溢出,总线重新回到“空闲”状态。但是目前大多数单片机没有配备硬件I2C模块,而且当2个主机的工作频率相差较大时,超时定时器定时值只能设为较大的值,这样也会影响总线的使用效率。下面介绍一种用软件模拟I2C总线仲裁的方式(I2C读写操作程序的软件模拟十分多见,这里不再多述):用1条握手线A,流程图如图2所示,当A线高电平时,指示总线空闲;当其中一个主机要获取总线控制权时,先查询总线是否空闲,“忙”则退出,空闲则向A线发送一个测试序列(如:1000101011001011),在每次发送位“1”后读取的A线状态。如果读取状态为“0”,马上退出,说明有其它器件已经抢先获取总线;如果一个序列读取的A线状态都正确,则说明已成功获得总线控制权,这时要拉低A线以指示总线“忙”,直到读写高A线,使总线回到“空闲”状态。不同的主机采用不同的测试序列,或产生随机测试序列,测试序列长度可以选得长一些,这样可以增加仲裁的可靠性。 (3)通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构: ①包头——指示数据包的开始,有利于包完整性检测,有时可省略;②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略;③包长度——指示整个数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合;⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。 (4)通信流程 首先,要在FRAM里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1个脉冲通知对方取走数据;接收方读取数据并进行处理后,向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉冲回应发送方。表3是单片机1启动1次与单片机2之间的通信的例子。 如果需要单片机2发送的话,只需交换一下操作过程即可。 4 、总结 通过实践可知,以上方法是可行的。与其它方法相比具有发下优点: ①简单。占用单片机口线少(SCL、SDA、握手线A、握手线B)。 ②通用。软件模拟I2C主机方式,可以在任何种类的单片机之间通信。 ③高效。由于采用数据缓冲,可以在不同时钟频率、不同速度的单片机之间通信;读写数据时,可以I2C总线的最高速度进行,可以实现1次传送大量数据;在一个单片机向FRAM传送数据时,另一个单片机无须一一作出响应或等待,可以进行其它程序操作,提高软件工作效率。 ④灵活。通信硬件接口对于各个单片机是对等的,通过软件配置,每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫。 ⑤容易扩展。通过增加地址识别线,修改通信协议,即可做到多机通信。 以下是需要注意的地址: ①为了提高通信效率,握手线B最好使用中断端口,负脉冲宽度一定要满足速度较低单片机中断信号要求。如果没有中断的话应增加1条口线,用改变端口状态的方法通知对方,等待对方查询,而不是负脉冲。 ②向对方发送负脉冲时,应屏蔽自己的中断。 ③由于参数与通信缓冲区同时设在同一片FRAM内,要避免对参数部分的误操作。一个较好的解决办法是把参数存放在地址的后半部分(A2=1),在进行通信操作时,把FRAM的WP引脚拉高(地址在后半部分的单元写保护),这样可以有效地防止测验时对参数区误操作。 ④由于I2C总线在一个时间段内只有1个主机和1个从机,所以当1个单片机正在写通信数据时,另一个单片机是不能对FRAM进行操作的。如果需要实时、频繁地读取FRAM中参数的话,请预先将参数读入RAM单元使用或另外增加专门存放参数的芯片。

    时间:2020-05-08 关键词: 通信技术 单片机 RAM

  • 100爱奇艺手机配备1080P级别显示屏最新消息

    100爱奇艺手机配备1080P级别显示屏最新消息

    100+爱奇艺联合发布会2014年4月15日在充满中国古建韵味的北京健壹景园隆重举行,会上100+联合爱奇艺共同推出全球首款视频手机,以业内最为领先的配置,定义了视频手机的全新标准。近期涉及100爱奇艺视频手机配备了5.5英寸1080P级别显示屏内容备受瞩目,很多读者对此也很有兴趣,现在给大家罗列关于100爱奇艺视频手机配备了5.5英寸1080P级别显示屏最新消息。 4月15日,100+联合爱奇艺在京举办新品发布会,正式推出旗下首款整合百度ROMV6和爱奇艺视频资源的定制多媒体“视频手机”100+V6,并提出“加友合伙人计划”的商业模式,将手机硬件销售利润回馈用户。在发布会上100+创始人徐国祥先生演讲时提到,5月5日起,京东及100+将联合发起移动版预约。而且,前10万台赠送1年爱奇艺VIP会员卡,让用户可以在去广告模式下尽享高清大片。相信一款如此高端的手机这样的定价规则会让其供不应求。 不过这款手机究竟怎么样呢?100+爱奇艺视频手机配备了5.5英寸1080P级别显示屏,PPI高达401,显示效果出色,搭载2.0GHz联发科MT6592 Turbo真八核处理器,辅以2GB RAM,运行百度云ROM V6操作系统,电池容量高达3200毫安时。

    时间:2020-04-21 关键词: 2gb RAM 100爱奇艺 1080p级别显示屏

  • 三星QLED显示屏配备笔记本电脑

    三星QLED显示屏配备笔记本电脑

    三星集团是韩国最大的跨国企业集团,三星集团包括众多的国际下属企业,旗下子公司有:三星电子、三星物产、三星人寿保险等,业务涉及电子、金融、机械、化学等众多领域。三星集团成立于1938年,由李秉喆创办。三星集团是家族企业,李氏家族世袭,旗下各个三星产业均为家族产业,并由家族中的其他成员管理,集团领导人已传至 李氏第三代,李健熙为现任集团会长,其子李在镕任三星电子副会长。 近日三星宣布了两款新笔记本电脑-三星Galaxy Book Flex和Galaxy Book Ion。这些是三星首款配备QLED显示屏的笔记本电脑。两者都是高级,超便携式和超强大的笔记本电脑。三星宣布了两款新笔记本电脑-三星Galaxy Book Flex和Galaxy Book Ion。这些是三星首款配备QLED显示屏的笔记本电脑。两种型号均支持最高16GB RAM和最高1TB存储(NVMe)。连接端口包括两个Thunderbolt 3,一个USB-C,UFS / MicroSD Combo和HP / Mic。笔记本电脑配有背光键盘,并内置S笔。 大多数功能与Galaxy Flex相同。处理器之间的显着差异。这两款笔记本电脑(13.3英寸和15.6英寸)均在第十代英特尔酷睿处理器(Comet Lake)上运行。13.3英寸笔记本电脑配备了英特尔UHD图形,而15.6英寸笔记本电脑则配备了具有GDDR5 2 GB图形内存(外部图形模型)的NVIDIA GeForce MX250图形(内部图形模型)。 13.3英寸笔记本电脑的RAM最高可达16GB(DDR4),存储空间可扩展至1TB SSD(NVMe)。15.6英寸笔记本电脑具有高达16GB(DDR4)的RAM + 1个Sodimm,可扩展至1TB SSD(NVMe)。它还有一个额外的1 SSD扩展槽。端口包括一个Thunderbolt 3,两个USB 3.0,HDMI,UFS / MicroSD Combo和HP / Mic。 两者都是高级,超便携式和超强大的笔记本电脑。笔记本电脑提供13.3英寸和15.6英寸显示屏两种尺寸。两种设备均支持像素分辨率为1920 x 1080像素的QLED FHD显示器。它们都在第十代英特尔酷睿处理器(Ice Lake)上运行。13.3英寸笔记本电脑使用Intel Iris Plus图形或Intel UHD图形。另一方面,15.6英寸笔记本电脑具有三种不同的变体,它具有NVIDIA GeForce MX250图形卡和GDDR5 2 GB图形内存(外部图形模型)或Intel Iris Plus图形或Intel UHD图形(内部图形模型)。

    时间:2020-04-21 关键词: galaxy RAM book 三星galaxy flex ion

  • ST采用Linux发行版的STM32MP1 MPU在贸泽开售,为物联网应用开发提速

    ST采用Linux发行版的STM32MP1 MPU在贸泽开售,为物联网应用开发提速

    2019年10月10日–专注于引入新品并提供海量库存的电子元器件分销商贸泽电子(Mouser Electronics)开始备货STMicroelectronics(ST)的STM32MP1系列微处理器。STM32MP1器件采用异构多核Arm® Cortex®架构,具有高集成度和出色的图形处理能力。此款功能强大的微处理器单元(MPU)支持开源OpenSTLinux发行版和STM32Cube工具套件,可快速开发物联网(IoT)、工业、消费电子以及医疗保健应用。ST STM32MP1系列微处理器借助于双核Arm Cortex-A7提升处理速度,并通过Arm Cortex-M4内核执行实时与低功耗任务。设计人员可以将外设分配给Cortex-A7内核以支持ST OpenSTLinux发行版,或者将外设分配给Cortex-M4内核,以使用ST的STM32Cube工具执行实时任务。STM32MP1器件具有256KB系统RAM、64KB MCU保持性RAM和384KB MCU系统RAM,并能支持各种外部闪存和DDR SRAM存储器。此MPU还集成了LCD-TFT触摸控制器,以及可选的MIPI-DSI控制器和3D图形处理器单元,以支持人机界面显示屏。贸泽同时还出售具有板载STM32MP157 MPU的STM32MP157C-DK2 Discovery套件。此多功能套件包括ST-LINK 嵌入式调试工具、按钮和LED,并具有各种连接器,包括千兆以太网连接器、四个USB Type-A主机连接器、一个USB Type-C OTG连接器以及HDMI收发器。STM32MP157C-DK2 Discovery套件具有Wi-Fi和蓝牙®低功耗功能,以及用于HMI设计的LCD触摸屏。

    时间:2019-10-10 关键词: 微处理器 RAM stm32mp1

  • pic单片机超神篇,pic单片机RAM用作寄存器

    pic单片机超神篇,pic单片机RAM用作寄存器

    pic单片机,想必大家都比较熟悉。其中,pic单片机简介、pic单片机优势以及pic单片机不足等内容,皆是入门级知识。本文将向大家介绍pic单片机的高级应用——将pic单片机的数据存储器RAM用作寄存器,本文存在一定难度,望大家用心研读。 PIC16C5X把数据存储器RAM都当作寄存器来使用以使寻址简单明洁,它们功能上可分为操作寄存器、I/O寄存器、通用寄存器和特殊功用寄存器。它们的组织结构如下图所示:这些寄存器用代号F0~F79来表示。F0~F4是操作寄存器,F5-F7是I /O寄存器,其余为通用寄存器。特殊功用寄存器地址对用户不透明。 一、操作寄存器 1、F0间址寄存器 寻址F0实际上意味着间址寻址。实际地址为寄存器选择寄存器F4的内容。 例: MOVLW 10 MOVWF  f4    ;10→f4 MOVLW  55 MOVWF  f0    ;55→f10 2、F1实时时钟/计数寄存器(RTCC) 此寄存器是一个8位计数器。和其他寄存器一样可由程序进行读写操作。它用于对外加在RTCC引脚上的脉冲计数,或对内部时钟计数(起定时器作用)。 上图中可看出RTCC工作状态由OPTION寄存器控制,其中OPTION寄存器的RTS位用来选择RTCC的计数信号源,当RTS为“1”时,信号源为内部时钟,RTS为“0”时,信号源为来自RTCC引脚的外部信号。OPTION寄存器的PSA位控制预分频器(Prescaler)分配对象,当PSA位为“1”,8位可编程预分配给RTCC,即外部或内部信号经过预分频器分频后再输出给RTCC。预分频器的分频比率由OPTION内的PS0~PS2决定。这时涉及写f1(RTCC)寄存器的指令均同时将预分频器清零。但要注意OPTION寄存器内容仍保持不变,即分配对象、分频比率等均不变。OPTION的RTE位用于选择外部计数脉冲触发沿。当RTE为“1”时为下降沿触发,为“0”时为上升沿触发。 RTCC计数器采用递增方式计数,当计数至FFH时,在下一个计数发生后,将自动复零,重新开始计数,以此一直循环下去。RTCC对其输入脉冲信号的响应延迟时间为2个机器周期,不论输入脉冲是内部时钟、外部信号或是预分频器的输出。 RTCC对外部信号的采样周期为2个振荡周期。因此当不用预分频器时,外加在RTCC引脚上的脉冲宽度不得小于2个振荡周期,即1/2指令周期。同理,当使用预分频器时,预分频器的输出脉冲周期不得小于指令周期,因此预分频器最大输入频率可达N.fosc/4,N为预分频器的分频比,但不得大于50MHz。 当RTCC使用内部时钟信号时,如果没有预分频器,则RTCC值随指令节拍增1。 当一个值写入RTCC时,接下来的二个指令节拍RTCC的值不会改变,从第三个指令节拍才开始递增,见下图。 应注意的是尽管PIC对外部加于RTCC信号端上的信号宽度没有很严格的要求,但是如果高电平或低电平的维持时间太短,也有可能使RTCC检测不到这个信号。一般要求信号宽度要大于是10nS。 3、F2程序计数器(PC) 程序计数器PC可寻址最多2K的程序存储器。下表列出了PIC16C5X各种型号的PC长度和堆栈的长度。 单片机一复位(RESET),F2的值全置为“1”。除非执行地址跳转指令,否则当执行一条指令后,F2(PC)值会动加1指向下一条指令。 下面这些指令可能改变PC的值: a、“GOTO”指令。它可以直接写(改变)PC的低9位。对于PIC16C56/57/58,状态寄存器F3的PA1、PAO两位将置入PC的最高二位。所示“GOTO”指令可以跳转到程序存储器的任何地方。 b、“CALL”指令。它可以直接写PC 低8位,同时将PC的第9位清零。对于PIC16C56/57/58,状态寄存器F3的PA1、PAO两位将置入PC的最高二位(第10、11位)。 c、“RETLW”指令。它把栈项(堆栈1)的值写入PC。 d、“MOVWF F2”指令。它把W寄存器的内容置入PC。 e、“ADDWF F2”指令。它把PC值加1后再和W寄存器的值相加,结果写入PC。 在以上b、d和e中,PC的第9位总是被清为零。所以用这三条指令来产生程序跳转时,要把子程序或分支程序放在每页的上部地址(分别为000-0FF、200-2FF、400-4FF、600-6FF)。 4、F3状态寄存器(STATUS) F3包含了ALU的算术状态、RESET状态、程序存储器页面地址等。F3中除PD和TO两位外,其他的位都可由指令来设置或清零。注意,当你执行一条欲改变F3 寄存器的指令后,F3中的情况可能出乎你的意料。 例:CLRF F3 ;清F3为零 你得到的结果是F3=000UU100(U为未变)而不是想像中的全零。UU两位是PD和TO,它们维持不变,而2位由于清零操作被置成“1”。所以如果你要想改变F3的内容,建议你使用BCF、BSF和MOVWF这三条指令,因为它们的执行不影响其他状态位。 例:MOVLW 0;0→W MOVWF F3 ;把F3除PD和TO以外的位全部清零,则你可得到F3=000UU000。 有关各条指令对状态位的影响请看第二章介绍。 在加法运算(ADDWF)时,C是进位位。在减法运算(SUBWF)时,C是借位的反(Borrow)。 例:CLRF F10 ;F10=0 MOVLW 1 ;1→W SUBWF F10 ;F10-W=0-1=FFH→F10 C=0:运算结果为负 例:MOVLW 1 ;1→W MOVWF F10 ;F10=1 CLRW ;W=0 SUBWF F10 ;F10-W=1-0=1→F10 C=1:运算结果为正 PD和TO两位可用来判断RESET的原因。例如判断RESET是由芯片上电引起的,或是由看门狗WDT计时溢出引起的,或是复位端加低电平引起的,或是由WDT唤醒SLEEP引起的。 表1.4列出了影响TO、PD位的事件。表1.5列出了在各种RESET后的TO、PD位状态。 判断RESET从何处引起有时是很必要的。例如在对系统初始化时,经常需判断这次复位是否是上电引起的。如果不是上电复位,则不再进行初始化。 页面选择位PA1、PA0的作用前面已描述过,RESET时清PA0-PA2位为零,所以复位后程序区页面自动选择在0页。 5、F4 寄存器选择寄存器(FSR) a、 PIC16C52/54/55/56 F4的0-4位在间接寻址中用来选择32个数据寄存器。5-7位为只读位,并恒为1。请参考F0寄存器描述。 b、PIC16C57/58 FSR《6:5》位用来选择当前数据寄存器体(Bank)。PIC16C57有80个数据寄存器,如图1.4所示。80个寄存器分为4个体(Bank0~Bank3),每个体的低16个寄存器的物理位置是相同的(参考§1.5.3通用寄存器的描述)。当FSR的第4位为“1”时,则要根据FSR《6:5》位来选择某个寄存器体中的某一个高16的寄存器。 注意:当芯片上电复位时,FSR《6:5》是不定的,所以它可能指向任何一个Bank。而其他复位则保持原来的值不变。   二、I/O 寄存器 PIC16C52/54/56/58有二个I/O口RA、RB(F5、F6),PIC16C55/57有三个I/O口RA、RB、RC(F5、F6、F7)。与其它寄存器一样,它们皆可由指令来读写。它们是可编程双向I/O口,可由程序来编程确定每一根I/O端的输入/输出状态。 RESET后所有的I/O口都置成输入态(等于高阻态),即I/O控制寄存器(TRISA、TRISB、TRISC)都被置成“1”。 1、F5(A口) 4位I/O口寄存器。只能使用其低4位。高4位永远定义为“0”。 2、F6(B口) 8位I/O口寄存器。 3、F7(C口) 对于PIC16C55/PIC16C57,它是一个8位I/O口寄存器。 对于PIC16C54/56/58,它是一个通用寄存器。 §1.5.3 通用寄存器 PIC16C54/56: 07H~1FH PIC16C55: 08H~1FH PIC16C57/58: 08H-0FH:共有通用寄存器(无须体选择即可寻址)。 10H-1FH:Bank0的通用寄存器 20H-2FH:物理上等同于00H-0FH。 30H-3FH:Bank1的通用寄存器 40H-4FH:物理上等同于00H-0FH。 50H-5FH:Bank2的通用寄存器 60H-6FH:物理上等同于00H-0FH。 70H-7FH:Bank3的通用寄存器。   三、特殊功能寄存器 1、工作寄存器(W) W用来存放两操作数指令中的第二个操作数,或用以进行内部数据传送。算术逻辑单元ALU把W和寄存器连接起来,ALU的运算结果通过总据总线可以送到W保存。 2、I/O控制寄存器(TRISA、TRISB、TRISC) TRISA、TRISB、TRISC分别对应I/O口A、B、C。其中TRISA只有4位,和A口对应。执行“TRIS f”指令可把W的值置入I/O控制寄存器,以此来定义各I/O端的输入/输出态。当写入“1”时,将相应的I/O端置成输入态(高阻态),当写入“0”,则将相应的I/O端置成输出态。I/O控制寄存器都是只写寄存器,在RESET后自动置为全“1”,即所有I/O口都为输入态。 3、预设倍数/RTCC选择寄存器(OPTION) OPTION可用于: a、定义预分频器的预分频参数。 b、分配预分频器(Prescaler)给RTCC或WDT。注意预分频器只能分配给RTCC或WDT其中之一使用,不能同时分配。 c、定义RTCC的信号源。 d、定义RTCC信号源的触发沿(上升沿触发或下降沿触发)。 当预分频器分配给RTCC后,所有写RTCC寄存器的指令如CLRF 1、MOVWF 1等都会清除预分频器。同理,分配给WDT时,诸如CLRWDT和SLEEP指令将清除预分频器里已有的值使其归零。 通过执行“OPTION”指令可将W值置入OPTIOW寄存器,RESET后OPTION被置成全“1”。

    时间:2019-08-12 关键词: RAM 寄存器 pic单片机

  • 怎么保证MCU上电后RAM的初始值唯一

    怎么保证MCU上电后RAM的初始值唯一

    由于工作的原因,笔者经常接到工程师询问MCU内部的RAM上电之后的初始值到底是什么,有什么特性和规律。今天笔者就以设计过程中遇到的几个问题与大家做一个交流。首先明确一个问题,我们都知道,根据RAM的特性,MCU每次上电之后RAM里面的值是随机的。也就是说RAM上电后的初始值可以是0xAA,也可以是0x55,也可以是其它任何的值,这个都是正常的。明确了这个基本原理之后,我们来看一下下面这个跟RAM的初始值的使用相关的一个问题。设计出状况最近有工程师在开发的汽车娱乐系统中遇到了一种情况,就是他在使用RH850F1K的过程中,发现每次上电后RAM的值好像都是固定的。按照软件设计的初衷,他想通过判断RAM的值从而知道这次复位是掉电复位还是MCU内部复位——比如“看门狗”复位。如果是掉电复位,则对RAM进行初始化;如果是MCU内部复位,则不对RAM进行初始化,从而可以保持用户之前的一些设置,比如频道、界面信息等。大致的设计思路和流程如下:MCU复位后,软件会判断某个变量的值。如果不是0x55,就认为这是上电复位,所有的RAM需要初始化,并把该变量的值写为0x55;如果是0x55,就认为这是“看门狗”复位,这时候则不改变一些变量的值,比如记录里程相关的数据。相关的C语言代码如下:if (variable != 0x55){初始化所有变量;variable = 0x55;}else{只改变部分变量的值;}在测试的过程中,测试工程师发现了一个问题:对于99%的MCU来讲,上述的逻辑都是没有问题的,但是对于个别MCU却存在固定性的问题。按照设计的初衷,本来我们认为上电后RAM的值是随机的,但是对于某些个别MCU来讲,测试工程师发现上电后RAM的值会固定的是0x55,或者出现0x55的几率非常高。解决方法针对这个现象,笔者也从单个MCU的特性方面做了解释:首先还是回到文章最初提到的问题,根据RAM的特性,上电后RAM是任何值都是正常的,基于这个前提,我们可以说测试工程师遇到的现象是正常的。那么,为什么个别MCU的RAM上电后会偏向于某个特定值呢?半导体器件的设计是非常复杂的,外观很小的一个芯片都是芯片内部数百万计的各种极其小的元器件搭建而成的,而这些的原材料基本都是硅。对于每个特定的芯片而言,其特性数据都是有一些偏好的,也包括上电后RAM的初始值,所以当我们看每个MCU的电气特性数据的时候,这些数据基本都是一个范围值,而不是确定的值。另外,上面软件本身的设计也是有缺陷的,或者说鲁棒性不好。假定上电后RAM的初始值是完全随机的,那么这样总会碰到随机值恰好是0x55的情况。基于这种考虑,我建议软件工程师重新设计了判断的条件。比如判断RAM若干不连续地址的值,并且使用校验的算法,比如比较简单的校验和,这样可靠性就大大提高了。结  语笔者在工作过程中,遇到过多个类似的问题,这个问题也具有一定的普遍性,除了前面提到的汽车娱乐系统,在车身、仪表,甚至工业应用中的电表等都会涉及到,希望这篇文章能够帮助设计工程师少走一些弯路。

    时间:2019-08-01 关键词: 嵌入式 MCU RAM

  • 系统扩展—RAM与ROM同时扩展

    下面这个系统中,8051同时扩展片外程序存储器和数据存储器,两片存储器的片选信号都接地, 即同时有效,也就是说,这两片存储器无需选择。   51同时扩展RAM和ROM 下面来分析这个问题,该系统中虽然有两片存储器,但由于两片存储器的输入,输入允许信号不同,程序存储器没有输入允许,其输出允许由8051的引脚PSEN控制,只有当程序存储器的片选信号和输出允许信号同时有效时,程序存储器的总线才挂接到CPU总线上 。否则,程序存储器的所有总线引脚都为高阻态,即相当于存储器与CPU总线断开。 数据存储器的输入允许端为WR,受控于8051的P3.6, 输出允许信号为RD,受控于8051的P3.7,数据存储器要与8051挂接的条件是片选信号有效且输入,输出允许信号中至少有一个有效,可见,在该系统中,要使两片存储器同时有效的条件是PSEN有效且WR有效或PSEN有效且RD有效。 而这两种情况都不可能出现,因为CPU的PSEN、RD、WR这三个信号在任何时候只可能有一个有效,所以尽管该系统中两片存储器的片选都接地,但它们绝对不会同时工作,也就是说不会引起存储器访问的混乱 。正是由于8051片外数据存储器和程序存储器的输入,输出允许信号分别受控于8051的不同引脚,才导致8051片外程序存储器空间和数据存储器空间独立,各自都为64K。这个系统中,8K外部数据存储器使用8051的64K片外数据存储逻辑地址,每个物理单元有8个逻辑地址,同样,8K外部程序存储器占用8051的64K外部程序存储器逻辑地址,每个物理单元也有8个逻辑地址。

    时间:2019-06-24 关键词: RAM rom 扩展 系统扩展

  • MCS-51单片数据存储器RAM的扩展应用实例

    RAM是用来存放各种数据的,MCS-51系列8位单片机内部有128 B RAM存储器,CPU对内部RAM具有丰富的操作指令。但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。 常用的外部数据存储器有静态RAM(StatIC Random ACCess Memory—SRAM)和动态RAM(Dynamic Random Access Memory—DRAM)两种。前者读/写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼容,有利于印刷板电路设计,使用方便;缺点是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相对较低;缺点是需要增加一个刷新电路,附加另外的成本。 MCS-51单片机扩展片外数据存储器的地址线也是由P0口和P2口提供的,因此最大寻址范围为64 KB(0000H~FFFFH)。 一般情况下,SRAM用于仅需要小于64 KB数据存储器的小系统,DRAM经常用于需要大于64 KB的大系统。 实例:在一单片机应用系统中扩展2 KB静态RAM。 芯片选择 单片机扩展数据存储器常用的静态RAM芯片有6116(2K×8位)、6264(8K×8位)、62256(32K×8位)等。根据题目容量的要求,我们选用SRAM 6116。 6116的管脚与EPROM 2716管脚兼容,管脚如图所示   硬件电路 单片机与6116的硬件连接如图所示。   连线说明 6116与单片机的连线如下: 地址线:A0~A10连接单片机地址总线的A0~A10,即P0.0~P0.7、P2.0、P2.1、P2.2共11根。 数据线:I/O0~I/O7连接单片机的数据线,即P0.0~P0.7。 控制线:CE片选端连接单片机的P2.7,即单片机地址总线的最高位A15;OE读允许线连接单片机的读数据存储器控制线RD;写允许线WE连接单片机的写数据存储器控制线WR。 片外RAM地址范围的确定及使用 按照上图的连线,片选端直接与某一地址线P2.7相连,这种扩展方法称为线选法。显然,只有P2.7=0,才能够选中该片6116,故其地址范围确定如下: 如果与6116无关的管脚取0,那么,6116的地址范围是0000H~07FFH;如果与6116无关的管脚取1,那么,6116的地址范围是7800H~7FFFH。 单片机对RAM的读写除了可以如下指令: MOVX @DPTR,A ;64 KB内写入数据 MOVX A,@DPTR ;64 KB内读取数据 外,还可以使用以下对低256 B的读写指令: MOVX @Ri,A ;低256 B内写入数据 MOVXA,@Ri ;低256 B内读取数据

    时间:2019-06-24 关键词: RAM 数据存储器 mcs-51

  • 常见存储器ROM、RAM和FLASH介绍

    最近因为在找实习工作,做了一些大公司的硬件笔试题,发现很多公司都有对存储器的考察,从来没有系统的整理过存储器的种类,是时候来一波整理了 以下主要讲了:RAM、ROM和FLASH三大类。RAM包括:SRAM、DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM和DDR3 SDRAMROM包括:PROM、EPROM和EEPROMFLASH包括:NOR FLASH和NAND FLASHRAM速度最快,掉电丢失数据,容量小,价格贵RAM英文名random access memory,随机存储器,之所以叫随机存储器是因为:当对RAM进行数据读取或写入的时候,花费的时间和这段信息所在的位置或写入的位置无关。RAM分为两大类:SRAM和DRAM。SRAM是静态(S指的static)RAM,静态指的不需要刷新电路,数据不会丢失,SRAM速度非常快,是目前读写最快的存储设备了。DRAM是动态RAM,动态指的每隔一段时间就要刷新一次数据,才能保存数据,速度也比SRAM慢,不过它还是比任何的ROM都要快。SDRAM是同步(S指的是synchronous)DRAM,同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准DDR、DDR2、DDR3都属于SDRAM,DDR是Double DateRate的意思,三种指的是同一系列的三代,速度更快,容量更大,功耗更小,现在出了DDR4,也是同一系列ROM掉电不丢失数据,容量大,价格便宜ROM英文名Read-Only Memory,只读存储器,里面数据在正常应用的时候只能读,不能写,存储速度不如RAM。PROM:(P指的programmable)可编程ROM,根据用户需求,来写入内容,但是只能写一次,就不能再改变了EPROM:PROM的升级版,可以多次编程更改,只能使用紫外线擦除EEPROM:升级版,可以多次编程更改,使用电擦除FLASH掉电不丢失数据,容量大,价格便宜FLASH:存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据。分为NAND FLASH和NOR FLASH,NOR FLASH读取速度比NAND FLASH快,但是容量不如NAND FLASH,价格上也更高,但是NOR FLASH可以芯片内执行,样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NANDFLASH密度更大,可以作为大数据的存储。 

    时间:2019-06-17 关键词: RAM rom

  • 小米Pocophone F1 Lite跑分曝光:骁龙660+4GB RAM

    Pocophone是小米在印度市场中推出的一个主打超高性价比的子品牌,但暂时仅有Pocophone F1一款产品,而现在小米似乎准备在印度加推一款该机的廉价版本Pocophone F1 Lite。 近日GeekBench跑分数据库出现了一款名为Pocophone F1 Lite的机型跑分,从泄露的信息可以发现该机使用的是骁龙660处理器,并搭配了4GB RAM。     据了解,小米Pocophone F1现在的售价为29000印度卢比(约合人民币2824元),预计Pocophone F1 Lite的价格应该会比F1下降不少。

    时间:2019-03-18 关键词: lite RAM 4gb 小米pocophone f1 骁龙660处理器

  • stm32f4 RAM中运行程序 读保护设置

    主要是为了在RAM中运行程序来解除读保护的。没想到ST-Link Utility 就直接可以。ST-Link Utility:target-->options bytes-->就可以看到读保护。解除读保护,选择 Level 0. 其他都不变(WDG_SW,nRST_STDBY,nRST_STOP都按照默认的勾上)然后点击Apply即可。读保护:1:while(1)2:{3:PD13_Toggle;4:Delay(0x7FFFF);5://按键按下,切换是否读保护6:if(is_key_toggle)7:{8:if(FLASH_OB_GetRDP()!=SET)//9:{10:printf("startRDPrn");11:FLASH_OB_Unlock();12:FLASH_OB_RDPConfig(OB_RDP_Level_1);13:if(FLASH_COMPLETE!=FLASH_OB_Launch())14:printf("RDPfailedrn");15:else16:printf("RDPsucceedrn");17:FLASH_OB_Lock();18:if(SET==FLASH_OB_GetRDP())19:printf("RDPOKrn");20:else21:printf("RDPKOrn");22:}23:else24:{25:printf("startremoveRDPrn");26:FLASH_OB_Unlock();27:FLASH_OB_RDPConfig(OB_RDP_Level_0);28:/*StarttheOptionBytesprogrammingprocess*/29:if(FLASH_OB_Launch()!=FLASH_COMPLETE)30:printf("removeRDPfailedrn");31:else32:printf("removeRDPsucceedrn");33:FLASH_OB_Lock();34:if(RESET==FLASH_OB_GetRDP())35:printf("removeRDPOKrn");36:else37:printf("removeRDPKOrn");38:}39:is_key_toggle=0;40:}41:}MDK下载到flash后,重新上电(很重要),然后按键,就可以RDP。再按一次,就可以Remove RDP.在RAM中运行程序:搜索到一篇《在内嵌RAM中运行程序》,照着做的,有些修改。随便建个RAM.ini1:FUNCvoidSetup(void){2:SP=_RDWORD(0x20000000);//SetupStackPointer3:PC=_RDWORD(0x20000004);//SetupProgramCounter4:_WDWORD(0xE000ED08,0x20000000);//SetupVectorTableOffsetRegister5:}6:7:LOAD%LINCREMENTAL8:Setup();//SetupforRunning9:g,main哈哈,其中 %L 就是你的工程.axf. 很多其他做法都是带个路径/project.axf。而%L要简单很多。LOAD %L INCREMENTALg,main 相当于MDK中的:所以要么RAM.ini中有这两句,要么把这里两个勾 勾上。F4,128kB,就分成 64KB+64KB吧。为了能够RAM调试中响应中断。要加上:VECT_TAB_RAM. 我一开始就是没加,一直不能进中断。还要注意这个地方:网上有些说法错的,比如在RAM中运行就只能在调试模式下,不能点击那个Load按钮下载。一切都正常的情况下,应该是这个结果:地址 0x2000….开头能够设断点。(RAM的这个Target和原来的那个要设置不同的.o文件位置)Good Luck.

    时间:2018-12-14 关键词: RAM stm32f4 运行程序 读保护设置

  • ROM、RAM、Flash的区别

    关键的一些名词: PROM,EPROM,EEPROM,SPD,SRAM,DRAM,RDRAM,SDRAM,DDRSDRAM,NORFlash,NADNFlash,HDD,SSD,SLC,MLC,TLC,eMMC,USF2.0一、 ROM(Read Only Memory)     ROM(Read Only Memory),只读存储器。用来存储和保存数据。ROM数据不能随意更新,但是在任何时候都可以读取。即使是断电,ROM也能够保留数据。 ROM也有很多种:  PROM是可编程一次性(无法修改)的ROM;  EPROM是紫外线可擦除可编程的ROM;  EEPROM是电可擦除可编程的ROM,按字节进行删除和重写, 写入时间很长,写入很慢;现在多用作非易失的数据存储器。特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。二、 RAM(Random Access Memory)  RAM(Random Access Memory), 随机存取存储器。是与CPU直接交换数据的内部存储器,也叫内存。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介, 当电源关闭时RAM不能保留数据。RAM 可以进一步分为静态RAM(SRAM)和动态内存(DRAM)两大类。 静态RAM(Static RAM/SRAM):SRAM速度非常快,不需要刷新电路即能保存数据,是目前读写最快的存储设备了,但是集成度较低,非常昂贵,多用于CPU的一级缓存,二级缓存(L1/L2 Cache)。 动态RAM(Dynamic RAM/DRAM):DRAM保留数据的时间很短(需要内存刷新电路,每隔一段时间,刷新充电一次,否则数据会消失),速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。 DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。 内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态"指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。 具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。三、 FLASH Memory  (1)FLASH闪存  FLASH闪存,它属于内存器件的一种,是一种不挥发性( Non-Volatile )内存,结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。FLASH属于广义上的ROM,和EEPROM的最大区别是FLASH按扇区操作,相对于EEPROM的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上M的ROM一般都是FLASH。而EEPROM则按字节操作。目前Flash主要有两种NOR Flash和NADN Flash。 NOR Flash:NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息。NOR FLASH数据线和地址线分开,可以实现RAM一样的随机寻址功能,可以读取任何一个字节,但是擦除仍要按块来擦。 NADN Flash:没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。NAND FLASH同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(NAND FLASH按块来擦除,按页来读,NOR FLASH没有页)。由于NAND FLASH引脚上复用,因此读取速度比NOR FLASH慢一点,但是擦除和写入速度比NOR FLASH快很多。NAND FLASH内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是NAND FLASH型的。小容量的2~12M的flash多是NOR FLASH型的。 目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。根据不同的生产厂商和不同的应用,闪存卡大概有U盘、SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(记忆棒)、MS卡、TF卡(Micro SD卡)、PCIe闪存卡、XD-Picture Card(XD卡)和微硬盘(MICRODRIVE)这些闪存卡虽然外观、规格不同,但是技术原理都是相同的。 FLASH工作原理:Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),Flash的内部存储是MOSFET,里面有个悬浮门(Floating Gate),是真正存储数据的单元。数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的外部门(external gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth来表示。 对于数据的表示,单个存储单元中内部所存储电荷的电压,和某个特定的阈值电压Vth,相比,如果大于此Vth值,就是表示1,反之,小于Vth,就表示0;对于nand Flash的数据的写入1,就是控制External Gate去充电,使得存储的电荷够多,超过阈值Vth,就表示1了。而对于写入0,就是将其放电,电荷减少到小于Vth,就表示0了。(2)SSD与HDD  HDD:硬盘驱动器(Hard Disk Drive),最基本的电脑存储器,也就是机械硬盘,靠磁场存储信息,故也称为磁盘。在这里不做过多介绍。 SSD:固态硬盘(Solid State Drives),简称固盘。由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。基于DRAM类:采用DRAM作为存储介质,应用范围较窄。它仿效传统硬盘的设计,可被绝大部分操作系统的文件系统工具进行卷设置和管理,并提供工业标准的PCI和FC接口用于连接主机或者服务器。应用方式可分为SSD硬盘和SSD硬盘阵列两种。它是一种高性能的存储器,而且使用寿命很长,美中不足的是需要独立电源来保护数据安全。DRAM固态硬盘属于比较非主流的设备。 基于闪存类:基于闪存的固态硬盘采用FLASH芯片作为存储介质,这也是通常所说的SSD。它的外观可以被制成笔记本硬盘、微硬盘、存储卡、U盘等样式。 固态硬盘SSD内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片,缓存芯片(部分低端硬盘无缓存芯片)和用于存储数据的闪存芯片。 缓存芯片:主控芯片旁边是缓存芯片,固态硬盘和传统硬盘一样需要高速的缓存芯片辅助主控芯片进行数据处理。这里需要注意的是,有一些廉价固态硬盘方案为了节省成本,省去了这块缓存芯片,这样对于使用时的性能会有一定的影响。 闪存芯片:除了主控芯片和缓存芯片以外,PCB板上其余的大部分位置都是NAND Flash闪存芯片了。NAND Flash闪存芯片又分为SLC(单层单元)MLC(多层单元)以及TLC(三层单元)NAND闪存。SLC、MLC、TLC NAND的区别  对于基于NAND存储技术的设备而言,无论是U盘还是SSD,甚至是SD卡,都会涉及到一个问题成本,于是产品设计从SLC转变到MLC,再到TLC,甚至QLC也将在后续问世,那么SLC、MLC、TLC究竟对用户有什么影响呢? SLC--SLC英文全称(Single Level Cell——SLC)即单层式储存 SLC技术特点是在浮置闸极与源极之中的氧化薄膜更薄,在写入数据时通过对浮置闸极的电荷加电压,然后透过源极,即可将所储存的电荷消除,通过这样的方式,便可储存1个信息单元,这种技术能提供快速的程序编程与读取,不过此技术受限于Silicon efficiency的问题,必须要由较先进的流程强化技术(Process enhancements),才能向上提升SLC制程技术。 MLC--MLC英文全称(Multi Level Cell——MLC)即多层式储存  英特尔(Intel)在1997年9月最先开发成功MLC,其作用是将两个单位的信息存入一个Floating Gate(闪存存储单元中存放电荷的部分),然后利用不同电位(Level)的电荷,通过内存储存的电压控制精准读写。MLC通过使用大量的电压等级,每 个单元储存两位数据,数据密度比较大。SLC架构是0和1两个值,而MLC架构可以一次储存4个以上的值,因此,MLC架构可以有比较好的储存密度。 TLC--TLC英文全称(Trinary-Level Cell)即三层式储存 TLC即3bit per cell,每个单元可以存放比MLC多1/2的数据,共八个充电值,所需访问时间更长,因此传输速度更慢。TLC优势价格便宜,每百万字节生产成本是最低的,但是寿命短,只有约1000次擦写寿命。   正如上面的介绍,从SLC到MLC再到TLC,cell对于电压的精确控制更高,这直接导致TLC的寿命下降到只有1000次PE,而对应的SLC和MLC分别为10000和3000,相对来说TLC的耐久度显著下降。 TLC的另外一个劣势就是数据的读写效率,在SLC时代,1个cell一次只需要读取/写入1个bit,到MLC时代每次需要读取/写入2bit,而到TLC时代则上升到3bit,很显然其性能受到电压控制的程序复杂度会变慢,当然由于工艺和主控的不断升级,目前TLC已经可以追平MLC产品。 不过TLC耐久的硬伤短时间内并无法得到有效解决,当然TLC的耐久可以通过存储设备的容量加大而均衡磨损,变相延长了产品的使用寿命。(3)eMMC与USF2.0  在手机兴起的这几年中,手机的闪存规格有了很大的提高,eMMC规格的标准逐渐从eMMC 4.3时代发展到现在的eMMC 5.0存储产品,手机的闪存性能有了十分大的提高。不过,现在一种新的闪传规格已经出现,它就是UFS 2.0闪传标准,有着比eMMC 5.0更快的读取性能。 eMMC闪传规格:eMMC的全称为“embedded Multi Media Card”,是由MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,eMMC利用的是它将主控制器、闪存颗粒整合到了一个小的BGA封装内。 eMMC=NAND Flash+控制器+标准封装接口 现在,eMMC 4.5已经问世,eMMC 4.4的读取速度大约为104MB/s、eMMC 4.5则为200MB/s,性能在当时也是十分优秀的;而在2013年7月29日三星开始量产行业首款eMMC 5.0存储产品,其读取速度为400MB/s,但是因为使用的是8位并行界面,因此性能潜力已经基本到达瓶颈,以最新的eMMC 5.1规范来说,其理论带宽为600MB/s左右,性能的大提升基本是不可能的了。 UFS 2.0:UFS 2.0的闪存规格则采用了新的标准,它使用的是串行界面,很像PATA、SATA的转换。并且它支持全双工运行,可同时读写操作,还支持指令队列。相比之下,eMMC是半双工,读写必须分开执行,指令也是打包的,在速度上就已经是略逊一筹了。而且UFS芯片不仅传输速度快,功耗也要比eMMC 5.0低一半,可以说是旗舰手机闪存的理想搭配。   其实,JEDEC在2013年9月就已经发布了UFS 2.0的新一代闪存存储标准,UFS 2.0闪存读写速度可以高达每秒1400MB,这相当于在两秒钟内读写两个CD光盘的数据,不仅比eMMC有更巨大的优势,而且它甚至能够让电脑上使用的闪存存储介质固态硬盘也相形见绌。 除了在速度性能方面有着巨大优势之外,在功耗方面UFS 2.0也有更好表现。事实上,如果从功耗方面来比较,即使是新一代的UFS 2.0标准也是能够与eMMC持平。不过eMMC和UFS 2.0在操作过程中消耗的功率约为1mW(毫瓦),而待机状态下功耗将低于0.5mW。当UFS 2.0满载时,所消耗的功率实际上比eMMC还要多,但它可以更快地完成操作而更早地切换到待机状态,因此在功耗方面的表现UFS 2.0与eMMC不相上下。 在传输速度方面,UFS 2.0可以说远远超过eMMC的。即使与当前最新的eMMC 5.0标准相比,UFS 2.0的速度也高出3倍。UFS 2.0可以在UFS主机与闪存之间以全双工模式进行交换,读写可以同时执行。另外,UFS 2.0附加的控制通道可以有效地确保数据的安全传输,不必再因为读写操作而做不必要的等待,这是UFS 2.0获得更高速度的关键。据了解,UFS 2.0有两个版本,均有两个传输信道。HS-G2的理论带宽就有5.8Gbps,也就是超过了740MB/s,HS-G3更是翻番到11.6Gbps,接近了1.5GB/s,速度方面UFS 2.0完胜。总结: 虽然eMMC在传输速度和性能方面不及现在最新的UFS 2.0,但在日后相当长的一段时间内,还是会继续占领移动产品闪存芯片的主流。因为eMMC有着更成熟的工艺,能够大规模生产,成本更低更适合大众化的移动产品闪存芯片需求;而UFS 2.0虽然很好,但是生产成本较高,在现在刚开始投入市场的初期,只能够被放在高端产品上使用。但以现在的趋势来看,UFS 2.0将会逐渐成为移动产品市场的主流相信是不成问题,毕竟科技是需要进步的。四、 补充说明  什么是SDRAM?  SDRAM(Synchronous DRAM): 同步动态随机存储器。目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.5ns,而EDO内存最快为15ns。并将RAM与CPU以相同时钟频率控制,使RAM与CPU外频同步,取消等待时间。所以其传输速率比EDO DRAM更快。  什么是DDR SDRAM?  DDR(Double Data Rate)SDRAM。其核心建立在SDRAM的基础上,但在速度上有了提高。SDRAM仅在时钟信号的上升沿读取数据,而DDR在时钟信号的上升沿和下降沿都读取数据,因此,它的速度是标准SDRAM的2倍。   什么是RDRAM?  RDRAM(Rambus DRAM):总线式动态随机存储器,是由RAMBUS公司与INTEL公司合作提出的一项专利技术,它的数据传输率最高可达800MHZ,而它的总线宽度却仅为16bit,远远小于现在的SDRAM的64bit。  什么是SPD?  SPD(Serial Presence Detect): SPD是一颗8针的EEPROM(Electrically Erasable Programmable ROM 电可擦写可编程只读存储器), 容量为256字节,里面主要保存了该内存的相关资料,如容量、芯片厂商、内存模组厂商、工作速度等。SPD的内容一般由内存模组制造商写入。支持SPD的主板在启动时自动检测SPD中的资料,并以此设定内存的工作参数。  现在的单片机,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一些需要掉电不丢失的数据. 另外,一些变量,都是放到RAM里的,一些初始化数据比如液晶要显示的内容界面,都是放到FLASH区里的(也就是以前说的ROM区),EEPROM可用可不用,主要是存一些运行中的数据,掉电后且不丢失。

    时间:2018-11-23 关键词: Flash RAM rom

  • iPad Pro和Apple Pencil 2拆解,惊现6GB RAM

    距离新款 iPad Pro 也有一段时间了,这个在苹果今年最后一场发布会的绝对主角,包括更大的全面屏,更强悍的 A12X 芯片,以及更方正更像笔记本的造型设计,都展示了苹果再次寄望 iPad Pro 成为一部生产力工具。 这款全新的全面屏 iPad Pro ,在内部设计上是否还有新的惊喜?通过iFixit 的拆解或许能找到答案。 首先回顾一下这款iPad的参数: ●11英寸 LED 背光 Oxide TFT Liquid 视网膜显示屏,分辨率 2388 x 1668,264 ppi,支持 ProMotion 技术 ●8 核苹果 A12X 仿生芯片,集成 M12 运动协处理器,7 核 GPU ●1200万 后置摄像头,支持 60fps 4K 视频录制,700 万 前置 TrueDepth 相机,支持 1080p 视频录制 ●自动均衡、4 扬声器 ●面容ID、5个麦克风,环境光传感器,加速度传感器,气压计,3 轴陀螺仪 ●802.11a/b/g/n/ac 双频 MIMO Wi-Fi + 蓝牙 5.0 ●容量选择 64GB、256GB、512GB 或 1TB 从 X 光成像来看,11 英寸的 iPad Pro 采用了一个很明显的对称结构设计,这个对称设计是如此的美妙和工整,再一次体现出了苹果高超的设计水平。     此外,我们在这张 X 光照片中还能发现很多有趣的信息,比如在图片中的黑暗部分是因为材料吸收了大量 X 光,这通常是指示了磁铁的位置,比如在扬声器中和为了吸附配件安置的磁铁。     和 10.5 英寸的前代 iPad Pro 对比,新的 iPad Pro 变得更方了,这体现在四边由带有过渡的弧形变成了平面。新iPad Pro采用圆角 LCD 屏幕,与 10.5 吋的上代产品相比,只有边缘小了 0.2 毫米左右,采用 USB-C 接口,取代 Lightning 接口,同时移除麦克风接口。 通过割开胶水打开 iPad 的经验仍然有用,但是超薄的边框要经历加热和切割要比以往来的更加痛苦,不得不让人屏住呼吸全神贯注去做这件事。     将屏幕拆下来之后,可以看到屏幕周围和中框结合的部分,值得注意的是,苹果特意加厚了给 Apple Pencil 充电的区域。 让 iFixit 略显头疼的是,尽管屏幕的线缆和主板连接的距离是足够安全的,但由于展开方式的问题,他们不得不用一种非常奇怪的角度来摆放屏幕并准备移除它。     现在我们可以看到刚才 X 光照片中的四个黑色区域是什么了,这是 iPad Pro 的四个扬声器,包含四个低音单元和四个高音单元,在我们的同款 11 英寸 iPad Pad 中也提到了这代产品的扬声器效果非常出色,即使是收录的声音也能表现出开阔出色的声场,这让 iPad Pro 足以胜任看剧神器的任务 。         iPad Pro 也用上了 Liquid Retina 显示屏,并且依旧是丝般顺滑的 120Hz 刷新率的屏幕,这种丝滑的感觉和 iPhone 有着巨大的落差,所以别再说什么 120Hz 看不出,真是体验是两个层次。我曾经期待以为今年的新 iPhone 会用上 120Hz 刷新率,但最后只有 120Hz 的触控采样率。     新屏幕上的芯片: • 红色:Parade Technologies DP825定时控制器 • 橙色:德州仪器TPS65158 • 黄色:Intersil 24883A D826AB 接下来要面对是史上最强的移动芯片 A12X。     主板和往常一样,采用了粘合剂固定住,并且扬声器的存在使得主板更加难以拆除,几乎不太能撬动。但 iFixit 最终还是顺利的把 iPad Pro 的主板取下来了。     现在可以一览 iPad Pro 主板的全貌了: • 红色:Apple APL1083 A12X Bionc仿生处理器 • 橙色:东芝 TSB3247M61710TWNA1 闪存 • 黄色:Micron 8MBT9 D9WHG RAM • 绿色:恩智浦 100VB27 NFC 控制 • 蓝色:Apple / USI 339S00551 Wi-Fi /蓝牙模块 • 靛色:2x Broadcom BCM15900B0KWFBG触摸屏控制器 • 紫色:德州仪器CD3215C00电源控制器     A12X比 2017 版本的 2.39 GHz A10X Bionic 处理器大大提升 。新款 iPad Pro 在 GeekBench 4 多核心获得了 18,015 分, 作为对比, 2017 款 iPad Pro 在同样的测试中才获得 9,331 分。可以看出新款 iPad Pro 在性能方面提升是巨大的,同时它比很多笔记本电脑都要强悍,坐稳了其生产力工具之名。 另外从跑分数据看到,新款 iPad Pro 在运存方面也有所改进。其中,1TB 存储型号更拥有 6GB 的 RAM,这也是 iPad 有史以来最多内存的一个型号。不过,其他储存容量的型号均为 4GB RAM。所以,这也意味着如想要获得 6GB RAM 的话,就必须购买 1TB 容量版本,真的是土豪专享。     • 红色:STMicroelectronics STB601A0 PMIC • 橙色:343S00252-A0 1834PHHE • 黄色:343S00257-A0 1834PHGI • 绿色:343S00248-A0 1835NHGY • 蓝色:343S00235 88A49H8 D TI • 靛色:P13DPXT2 05A12LBE 1832GC     接下来是 iPad Pro 的电池部分,也是之前我们看到的 X 光中两条对称排列的矩形物体。这次两块电池之间固定方式回到了之前的六根胶带的形式,以及每条胶带上还有两条,一根断掉之后还有第二次机会把电池取出来。     这款 11 英寸的 iPad Pro 采用 7812mAh 的电池,总能量为 29.45Wh。但是相比之前 10.5 英寸的 iPad Pro 中的 30.8Wh 有所减少。此外相比新的 Surface Pro 45Wh 要少很多。不过从实际测试上看依旧保持了传统 10 小时的续航。             接下来是新玩意,首次出现在 iPad Pro 上的 Face ID。从模组上看,iPad Pro 的 Face ID 和 iPhone X 上的基本相同,包括 IR 点阵投影、自拍相机以及红外镜头,但是略微有一些修改。至于后置摄像头,苹果表示新的摄像头在性能上和旧款相同,但是变得更加轻薄,当然 OIS 光学防抖缺失更像是一种妥协。         跳过那些扬声器下的磁铁,直接来到 Apple Pencil 的充电接口,这里有意个铜制的线圈来为 Apple Pencil 进行无线充电。             另外 USB-C 在 iPad Pro 上也是个新玩意,以往的 Lightning 口都是焊在主板上,而新的 USB-C 接口则已经模块化了可以进行直接更换。实际上模块化设计最近在苹果产品上已经越来越多,比如 iPhone XR 拆解中出现的模块化 SIM 卡槽,这就增加了产品的可维修性。             说完了本体,接下来的 Apple Pencil 也是照例要来一发 X 光的,看起来也是满满当当的零部件。     从笔尖切入,移除之后不得不把外壳切开才能够把里面的部分取出来。和 iPad Pro 类似,也是非常工整简洁,包括无线充电部分和磁铁。苹果的设计艺术在配件中能够以小见大。     这支 Apple Pencil 的集成度之高,在拆开外壳之后也无法将内部部件一一取出。iFixit 将包裹在外部的黑色线缆取下后,继续破坏了里面的焊接层,于是电池才终于露了出来。             • 红色:电池 • 橙色:无线充电线圈 • 黄色:对准磁铁 • 绿色:Broadcom 59358A0 触控板 • 蓝色:custom Apple 343S00250 IC 最后 iFixit 给了 2018 款 11 英寸的 iPad Pro 可维修分数为 3 分(10 分满分,分数越高越容易修复,上一代 10.5 英寸 iPad Pro 的分数为 2 分)。  

    时间:2018-11-19 关键词: ipad pro apple RAM 2 pencil

首页  上一页  1 2 3 4 5 6 7 8 9 下一页 尾页
发布文章

技术子站

更多

项目外包