新闻中心

EEPW首页 > EDA/PCB > 设计应用 > FPGA实现UART和MCU一体化设计

FPGA实现UART和MCU一体化设计

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

2.1.1 模块的设计与实现
串行数据格式如图3所示,串行数据包括5~8位数据(可更改设置)、1位起始位、1~2位停止位、1位校验位。该模块主要由发送模块和接收模块两部分构成。在各自模块中分别由接收缓冲器、接收控制电路、发送缓冲区、发送控制电路、数据总线缓冲器、读写控制电路组成,逻辑框图如图4所示。

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

3.JPG

模块的发送模块和接收模块公用复位信号、时钟信号和并行数据线,并且有各自的输入/输出模块和控制电路单元。
(1)发送模块的设计。发送模块将从微控制器送来的8位并行数据转换成图3所示的数据帧格式的串行数据发送出去。该模块分为3种工作模式:空闲模式、载入数据模式、移位模式输出模式。当并行的8位数据从微控制器通过数据线写入发送FIFO(在以下2.1.2节实现)中时,发送模块自动将并行数据装入锁存器THR中,首先发送起始位0,然后根据LCR定义的数据格式将数据移位,并通过状态机和节拍器实现完整的发送序列,并以相应的波特率从TX发送出去。发送模块的状态机FSM如图5所示。
(2)接收模块的设计。接收模块接收串行输入的数据(见图3),然后将其转换为并行数据送给微控制器。与发送模块相同,也分为3种工作模式:空闲模式,检测起始位模式、移位输入模式。首先接收模块在接收时钟的控制下,不断地在RX端口检测输入数据的起始位,当检测到起始位后,接收模块由空闲模式转变为移位输入模式。此时通过RX端口进来的串行数据可能存在着些许抖动,因此需要添加消抖电路进行处理。消抖处理一般有两种办法,一种是在前端添加非门的R8触发器来完成,一种是类似软件的方式控制采集输入端的数据,并将前后采集的数据值进行比较,相同则保持,否则继续采集比较,这里采用的是后者。当接收完数据,更新接收缓冲区状态,以提供微控制器MCU查询,方便读取数据。接收模块的状态机FSME如图6所示。

4.JPG



关键词: FPGA UART MCU

评论


相关推荐

技术专区

关闭