`
- 浏览:
6190507 次
-
对UART的FIFO的理解
FIFO的必要性。在进行UART通信时,中断方式比轮询方式要简便且效率高。但是,如果没有收发FIFO,则每传输一个数据(5~8位)都要中断处理一次,效率仍然不高。如果有了收发FIFO,则可以在连续收发若干个数据(可多至14个)后才产生一次中断,然后一起处理。这就大大提高了收发效率。
接收超时问题。如果没有接收超时功能,则在对方已经发送完毕而接收FIFO未填满时并不会触发中断(FIFO满才会触发中断),结果造成最后接收的有效数据得不到处理的问题。有了接收超时功能后,如果接收FIFO未填满而对方发送已经停,则在不超过3个数据的接收时间内就会触发超时中断,因此数据会照常得到处理。
发送时,只要发送FIFO不满,数据只管往里连续放,放完后就直接退出发送子程序。随后,FIFO真正发送完成后会自动产生中断,通知主程序说:我已经完成真正的发送。
接收时,如果对方是连续不间断发送,则填满FIFO后会以中断的方式通知主程序说:现在有一批数据来了,请处理。
如果对方是间断性发送,也不要紧,当间隔时间过长时(2~3个字符传输时间),也会产生中断,这次是超时中断,通知主程序说:对方可能已经发送完毕,但FIFO未满,也请处理。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
UART回环测试,使用2个FIFO,主芯片是FPGA,
在网上看到的很好的一篇关于UART FIFO使用的文章,英文原版,分析的很细致。
verilog编写的 uart通信程序,包括对fifo的控制,程序简单精炼,在开发板得到验证
stm32F103 uart 2fifo接收通道,发送缓存大小自我修改
VHDL 带FIFO的 UART 求大神帮忙修改
基于verilogHDL实现的UART收发,带FIFO缓存。
用VHDL语言实现内置FIFO的UART,并做时序仿真和功能仿真确定正确与否。
51单片机串口fifo收发程序,可以用于接收自定义数据帧处理
参考黑金的串口收发,将串口收发和fifo写在一个.v文件中,操作接口主要变为fifo,rx_fifo_empty!=1时,有收到数据,读出来即可,发送串口只需要往fifo中存入数据。接收时判断起始位为低和停止位为高,防止上电前串口...
easy arm1138 UART-FIFO 收发程序
Verilog编写的串口配合FIFO的代码,对大家学习串口和FIFO有一定帮助
用verilog实现的uart,包含接收和发送模块,还有测试用fifo
基于ARM7-LM3S1138的FIFO方式的UART数据传输代码
A badic controller for the UART. It incorporates a -- transmit and receive FIFO (from Max+Plus II s MegaWizard -- plug-in manager). Note that no checking is done to see -- whether the FIFOs are ...
fpga 串口fifo
UART(通用异步收发器)\LM3S系列UART例程:FIFO中断方式发送数据
带有fifo的功能模块,具有发送模块和接收功能模块
一个lpc做发送,以4字节为单位 一个lpc做接收,设置不同的触点 能够发现FIFO 触点为0的时候也是有用的 和不使用FIFO不同 实验证明以上结论
verilog实现的带FIFO的UART模块,代码风格良好,模块化,具有较高的参考价值。
这是借鉴别人的带有FIFO的Verilog代码分享给大家,共同学习