FIFO、UART、ALE解释

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是复用的话)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web编程技术分享

简单粗暴,详细得不要不要的 JavaWeb快速入门

40590
来自专栏互联网杂技

再谈前后端分离

前言 前后端分离已经是业界所共识的一种开发/部署模式了。所谓的前后端分离,并不是传统行业中的按部门划分,一部分人纯做前端(HTML/CSS/JavaScript...

40180
来自专栏架构师之路

mysql并行复制降低主从同步延时的思路与启示

一、缘起 mysql主从复制,读写分离是互联网用的非常多的mysql架构,主从复制最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。 为...

40670
来自专栏Laoqi's Linux运维专列

zabbix 告警收敛(Python)研究价值高!

1.2K40
来自专栏Java帮帮-微信公众号-技术文章全总结

基于Redis实现分布式锁-Redisson使用及源码分析【面试+工作】

在分布式场景下,有很多种情况都需要实现最终一致性。在设计远程上下文的领域事件的时候,为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域模型和...

1.5K20
来自专栏烂笔头

Django 1.10中文文档-第一个应用Part5-测试

目录[-] 本教程上接教程Part4。 前面已经建立一个网页投票应用,现在将为它创建一些自动化测试。 自动化测试简介 什么是自动化测试 测试是检查你的代码是...

38160
来自专栏程序人生

深入了解IAM和访问控制

本文为InfoQ中文站特供稿件,首发地址为:http://www.infoq.com/cn/articles/aws-iam-dive-in。 访问控制,换句话...

55970
来自专栏魏艾斯博客www.vpsss.net

更换 sitemap 插件为 Google XML Sitemaps 及相关设置过程

25320
来自专栏哲学驱动设计

“秒杀”心得

    本文记录对某网站A的秒杀活动编写秒杀器的经历和技术重点。 故事回顾     某日早上,朋友给我说最近A网站在开展秒杀活动,有IPad、IPhone,让大...

34080
来自专栏Hadoop实操

如何在CDH中安装和使用StreamSets

StreamSets由Informatica前首席产品官Girish Pancha和Cloudera前开发团队负责人Arvind Prabhakar于2014年...

8.1K110

扫码关注云+社区

领取腾讯云代金券