基于Verilog HDL的UART模块设计与仿真

[09-12 18:32:39]   来源:http://www.88dzw.com  EDA/PLD   阅读:8191

文章摘要:2.2 接收模块接收模块是整个UART的设计的重点,其主要功能是检测数据的起始位,并对接收的数据进行串并转换,并将接收好的数据储存等待微机处理。由于串行数据帧与接收数据时钟是异步的,接收功能实现的关键是接收器与每个接收字符同步。要保证异步通信的双方准确无误地交换信息,必须有效控制采集通信线路上的电平信号的时机。由异步串行通信的特点可知,接收同步是通过低电平起始位实现的。而为了保证采样的正确性,采样在数据位的中间进行,并且接收单元采样数据的频率与发送单元发送数据的频率相同,是波特率时钟周期的16倍,这样可以有效地降低由于时钟不匹配而导致的误采样。接收模块的设计主要由状态机实现其核心功能,采用独热

基于Verilog HDL的UART模块设计与仿真,标签:eda技术,eda技术实用教程,http://www.88dzw.com


  2.2 接收模块

  接收模块是整个UART的设计的重点,其主要功能是检测数据的起始位,并对接收的数据进行串并转换,并将接收好的数据储存等待微机处理。由于串行数据帧与接收数据时钟是异步的,接收功能实现的关键是接收器与每个接收字符同步。要保证异步通信的双方准确无误地交换信息,必须有效控制采集通信线路上的电平信号的时机。由异步串行通信的特点可知,接收同步是通过低电平起始位实现的。而为了保证采样的正确性,采样在数据位的中间进行,并且接收单元采样数据的频率与发送单元发送数据的频率相同,是波特率时钟周期的16倍,这样可以有效地降低由于时钟不匹配而导致的误采样。接收模块的设计主要由状态机实现其核心功能,采用独热编码方式,虽然独热编码多用了两个触发器,但所用组合电路可节省一些,使电路的速度和可靠性有显著提高。控制接收器的起始/停止位检测,接收数据的计数,移位寄存的功能。状态机分为5个状态,分别为:IDEL,CENTER,WAIT,SAMPLE,STOP。状态转换图如图4所示。


  1)IDLE状态 系统被复位后,接收状态机进入IDLE状态,等待起始位到来,输入数据在空闲时保持为1,当输入由“l”跳变为“0”时,状态机跳转到CENTER状态。

  2)CENTER状态 启动起始位检测电路,为排除噪声干扰,状态机等待8个脉冲,如果数据线上仍为低电平,则状态机跳转到WAIT状态,并启动采样电路。如果是噪声干扰,则转入IDLE态。

  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功能。


上一页  [1] [2] 


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD

《基于Verilog HDL的UART模块设计与仿真》相关文章

分类导航
最新更新
热门排行