FPGA与PC通信的UART串口设计
发布时间:2020-12-10 02:12
FPGA在数据采集、高速数字信号处理领域应用中,通常需要与外设通过UART实现串行数据通信.介绍了一种基于FPGA的UART通信模块,由任意频率发生器产生精确的波特率时钟,采用VerilogHDL语言实现了串口数据发送模块和接收模块.仿真测试验证可实现可靠的全双工串口通信.
【文章来源】:兰州工业学院学报. 2020年05期 第56-61页
【文章页数】:6 页
【部分图文】:
任意频率发生器原理
串口数据的接收相对于PC机而言,FPGA板卡扮演从机角色.在固定的波特率下,捕获主机发送的数据,根据UART串口发送时序(见图2),串转并得到发送的8位数据.由图2可知,在一定波特率下,UART数据采集步骤如下:
表1 UART接收状态转移 序号 状态 描述 0 r_idle 初始化等待状态,等待UART数据的起始位到来,调到r_start状态. 1 r_start 判断是否为起始位:是,等待起始位结束,跳入r_sample状态;否,回到r_idle等待状态. 2 r_sample 有低到高,串行接收数据,串并转换. 3 r_stop 判断是否为停止位:是,等待停止位结束,跳入r_idle状态;否,直接回到r_idle等待状态.r_idle状态在初始化状态下,检测数据起始位,来实现状态的转移.关键代码如下:
本文编号:2907896
【文章来源】:兰州工业学院学报. 2020年05期 第56-61页
【文章页数】:6 页
【部分图文】:
任意频率发生器原理
串口数据的接收相对于PC机而言,FPGA板卡扮演从机角色.在固定的波特率下,捕获主机发送的数据,根据UART串口发送时序(见图2),串转并得到发送的8位数据.由图2可知,在一定波特率下,UART数据采集步骤如下:
表1 UART接收状态转移 序号 状态 描述 0 r_idle 初始化等待状态,等待UART数据的起始位到来,调到r_start状态. 1 r_start 判断是否为起始位:是,等待起始位结束,跳入r_sample状态;否,回到r_idle等待状态. 2 r_sample 有低到高,串行接收数据,串并转换. 3 r_stop 判断是否为停止位:是,等待停止位结束,跳入r_idle状态;否,直接回到r_idle等待状态.r_idle状态在初始化状态下,检测数据起始位,来实现状态的转移.关键代码如下:
本文编号:2907896
本文链接:https://www.wllwen.com/kejilunwen/wltx/2907896.html