新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于Wishbone总线的UART IP核设计

基于Wishbone总线的UART IP核设计

作者: 时间:2011-03-21 来源:网络 收藏

采用接收状态机控制整个模块的接收过程。接收状态机可分为5个状态,即IDLE、RX_START、RX_DATA、CHECK、RX_STOP,它们之间的状态转移,如图3所示。

本文引用地址:https://www.eepw.com.cn/article/156564.htm

c.jpg


IDLE状态:当产生复位信号或运行至停止状态之后,接收状态机将复位到这种状态。处于IDLE状态时,它等待外部传来的信号从高向低转变,此时视为产生了一个有效的起始位。一旦有效起始位被检测到,有限状态机就会切换到下个状态。
RX_DATA状态:当状态机跳转到此状态时,采样每得到一位数据,就把接收到数据放到准备好的接收移位寄存器中。在中需要一个接收计数器来进行计数。当计数器提示数据接收已完成,则状态机会转入下个状态。
CHECK状态:当处于CHECK状态时,通过对实际接收到的数据进行判断得出实际数据的奇偶性,然后再与发送过来的数据的奇偶校验位进行奇偶校验。
如果符合,那么表示接收数据有效,可以传入处理器;如不符,则不传,直接丢弃数据。
RX_STOP状态:无论停止位长度设定为1位或者是2位,有限状态机总是等待1位样本的采样时间,然后抽样停止位。只要一个逻辑采样停止位被检测到,数据接收模块就不会去检查是否停止位的配置出现错误。此时,有限状态机将返回IDLE状态。
2.3 数据发送模块
发送模块将从处理器接收到的数据,加上起始位,奇偶检验位和停止位组成规定的格式后串行输出。首先,利用缓存器FIFO存放需要发送的数据,这样处理器可以一次往FIFO中写入多个字节的数据。发送数据时依次从FIFO中每次取出1Byte进行串行输出。
设计采用发送状态机来控制整个模块的发送过程。发送状态机由以下5个状态组成:IDLE、TX_START、TX_DATA、CHECK、TX_STOP,它们的转移关系如图4所示。

d.jpg


IDLE状态:在没有接收到将要发送的数据时,发送模块一直处于该状态,此刻一直保持发送模块的数据位为高,当得到主机发出的工作信号时,发生状态跳转,进入下个状态。
TX_START状态:发送模块会先发送一个数据“0”,作为起始位。起始位传送完毕后,转入下个状态。
TX_DATA状态:发送完起始位后,接着发送由主机传来的有效数据。首先把数据存入模块内的移位寄存器中,利用移位寄存器实现并行输入到串行输出的转换。同时计数器开始计数,在发送完8位数据后,计数器清零,FSM随即跳入下个状态。



评论


相关推荐

技术专区

关闭