目录
当UART完成了模块分解和输出之后,就可以开始设计逻辑了,设计好了再写代码!!!!
接受模块的流程应该是这样的:先是空闲,然后rx出现低电平表示单bit数据来了,开始串转并,转好之后判断校验位,未通过直接丢掉,通过了就等待下级的ready信号,当ready为高就发出去,
可以看到整个过程包含了三个状态
IDLE:等待rx低电平到来
REC:串并转换过程
ARB:根据校验位裁决收到的数据是否有效,有效就等待ready将收集的数据发出,否则直接抛弃。
转换图如下:
可不可以在等待发送rx_data的时候进行新的串并转换呢?可以,但你无法保证新的串并转换之后rx_data还未发送。所以UART_RX也分两种方式——valid&ready写握手 和 异步FIFO
其实将ARB纳入到REC也是可以的,UART_TX那边不把计算校验位纳入到TRANS里了嘛
1. IDLE:等待串数据到来
刚开始闲着,等待rx那边低电平出现,出现了就说明来数据了,然后转入REC阶段开始接受。
但是这里要注意一个点:rx来