ARM的UART中,什么是FIFO模式,在进行串口通信时不是一定要用到FIFO的吗?对于UTRSTATn很不理解。谢谢

ARM的UART中,什么是FIFO模式,在进行串口通信时不是一定要用到FIFO的吗?对于UTRSTATn很不理解。谢谢,第1张

fifo只是一个缓冲器而已

如果你的cpu没什么别的工作或完全处理的过来uart数据的话,可以用nonfifo模式

如果你的cpu有一些耗时的工作要处理,也许uart数据来了很多才开始处理,这样就需要fifo做缓冲了

UART: Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。因为计算机内部采用并行数据数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。

它是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。

first in first out 是一种先入先出的堆栈,为数据读取添加一个缓存,可以增加cpu的效率,FIFO控制寄存器其中可以对FIFO进行一些设置如中断使能啊,FIFO的读取延时啊,具体看具体的芯片


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11345909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存