FIFO、UART、ALE解释

简介: FIFO存储器 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器。  它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

FIFO存储器 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器。

  它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
  在系统设计中,以增加数据传输率、处理大量数据流、匹配具有不同传输率的系统为目的而广泛使用FIFO存储器,从而提高了系统性能。FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,其中一个存储器的输入口,另一个口是存储器的输出口。对于单片FIFO来说,主要有两种结构:触发导向结构和零导向传输结构。触发导向传输结构的FIFO是由寄存器阵列构成的,零导向传输结构的FIFO是由具有读和写地址指针的双口RAM构成

UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。

  在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。
  UART通信,UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。 在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。
  例如,如果产生一个奇偶错误,UART就置位奇偶标志。 数据方向和通信速度 数据传输可以首先从最低有效位(LSB)开始。然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。
  微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达1.1152Mbps。UART波特率还受发送和接收线对距离(线长度)的影响。
  目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。

ALE为Address lock enable的英文缩写,意思为“地址锁存使能端”。

  MCS-51单片机的ALE为地址锁存信号,每个机器周期输出两个正脉冲。在访问片外存储器时,下降沿用于控制外接的地址锁存器锁存从P0口输出的低8位地址。在没有接外部存储器时,可以将该引脚的输出作为时钟信号使用。
  也可作访问外部存储器用的,比如RAM、ROM。
  MCS-51单片机有外部总线,16位的地址线,8为的数据线,但是地址的低8位跟数据线是重合的,因此访问的时候需要区分开低8位(P0口,高8位是P2口)地址和数据,这就需要用到ALE信号了。
  访问存储器的时候,P2口输出高地址,P0输出低地址。利用外部的锁存器(一般用74LS373)配合ALE脉冲,锁存P0地址,这时候读写信号开始起作用(WR或者RD),P0口读入或者输出数据。在整个过程中,外部存储器的地址总线上的数据始终是稳定的,低8位地址的稳定靠的就是ALE和外部锁存器。
  现在的51一般都很少用外部存储器或者相似的使用外部总线的外设可,因此现在的51单片机大多数都可以软件设置ALE脉冲的使能,由用户决定是否输出ALE脉冲,一来是降低EMI,二来是可以多一个IO口(如果ALE是复用的话)。

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
Linux
【Linux 系统编程】wait函数详解
【Linux 系统编程】wait函数详解
411 0
|
11月前
|
前端开发 Java 数据库连接
你不可不知道的JAVA EE 框架有哪些?
本文介绍了框架的基本概念及其在编程领域的应用,强调了软件框架作为通用、可复用的软件环境的重要性。文章分析了早期Java EE开发中使用JSP+Servlet技术的弊端,包括可维护性差和代码重用性低等问题,并阐述了使用框架的优势,如提高开发效率、增强代码规范性和可维护性及提升软件性能。最后,文中详细描述了几种主流的Java EE框架,包括Spring、Spring MVC、MyBatis、Hibernate和Struts 2,这些框架通过提供强大的功能和支持,显著提升了Java EE应用的开发效率和稳定性。
598 1
|
12月前
|
监控 数据可视化 项目管理
关键链项目管理是什么?它如何优化传统项目管理?
关键链项目管理(CCPM)由艾利·高德拉特提出,通过优化资源分配和减少多任务并行的浪费,显著提高项目执行效率与成功率。本文介绍CCPM的核心理念、与传统项目管理的区别及优势,并推荐几款支持CCPM的项目管理软件,如ProChain、板栗看板等,帮助企业更好地实施这一高效管理方法。
541 0
|
12月前
|
JavaScript API
|
12月前
|
自然语言处理 数据可视化 前端开发
基于知识图谱的宁夏非遗问答系统
基于知识图谱的宁夏非遗问答系统
144 0
|
SQL 数据库 数据安全/隐私保护
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
481 2
|
关系型数据库 MySQL
MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)
MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)
1272 0
MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)
|
Linux KVM 虚拟化
系统虚拟化基本概念与发展历史和趋势展望
系统虚拟化基本概念与发展历史和趋势展望
810 0
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu安装MySQL5.7教程】
现在,你已经在Ubuntu上成功安装了MySQL 5.7。可以使用root用户和之前设置的密码登录MySQL服务器。
155 0
|
存储 分布式计算 架构师
阿里架构师十年开发总结的《分布式系统开发学习笔记》太强了
分布式系统 分布式系统是将多台小型微型机互连组成的一种新型计算机系统。它冲破了传统的集中式单机局面,从分散处理的概念出发来组织计算机系统,具有较高的性能价格比,灵活的系统可扩充性, 良好的实时性、可靠性与容错性等潜在优点,是近几年来计算机科学技术领域中极受重视的新型计算机系统,现已成为迅速发展的一个新方向。