FIFO、UART、ALE解释-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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 黑泽明军
【转载文章务必保留出处和署名,谢谢!】

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章