·上一文章:基片集成波导多层转换器的设计与仿真
·下一文章:基于汇编语言的BCH解码校验算法
3)WAIT状态 状态机WAIT状态,判断数据接收是否完毕,若未完成采样,则转入SAMPLE状态进行数据位的采样检测,同时启动位计数器,用来控制数据接收的位数。无论停止位是几位,状态机只对停止位作一次采样。接收完毕,转入STOP状态。
4)SAMPLE状态 在此状态对串口输入数据进行采样,每次采样均位于数据位的中心。并每接收完一位数据,状态机转入WAIT状态。
5)STOP状态 接收停止位,完成一个数据帧的接收,并将rec_ready置为1,表明收据接收完毕,待微机读取。其仿真结果如图5所示。
2.3 发送模块
发送模块的设计相对简单,其功能是将要发送的并行数据转换成串行数据,并且在输出的串行数据流中加入起始位和停止位。发送器首先将要发送的8位数据寄存,并在最低位后添加起始位‘0’,在最高位前添加停止位‘l’,组成10位要发送的数据,然后根据 UART 内核模块的计数值将相应的数据送入移位寄存器输入端。UART内核模块输出的计数值是从0依次计到9,即先将要发送数据的最低位送入移位寄存器。仿真结果如图6所示。
2.4 UART各个模块的整合
在各模块功能实现的基础上,把它们有机地整合在一起,使波特率发生器能够按照UART通讯的要求正常工作,接收模块和发送模块能够根据各自的复位信号使整合模块具有发送或接收功能。仿真结果如图7所示。
3 结束语
本文介绍了基于 Verilog HDL 设计的UART模块,采样点选择可靠,其可以准确判断接收数据的起始,接收器与接收数据实现同步,串行数据能被准确接收,并通过在 ModelSim 下的仿真,可下载至可编程逻辑器件中实现UART功能。