集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1191|回复: 2

FPGA Uart串口例子

[复制链接]
羽蒙 发表于 2014-11-2 16:32:00 | 显示全部楼层 |阅读模式
一、编程环境
软件:    Quartus 12.0 Web
硬件:    DE2开发板
二、例程功能描述
本例程实现从CPU到PC和PC到PC两种典型的串口通信模式之间的切换及传输,其中切换方式为通过按键切换,具体为:
Key0按下:PC->PC的传输,即FPGA通过接收PC串口发送的数据并将其反馈给PC端。
Key1按下:CPU->PC的传输,即FPGA中发送的测试数据行“Welcome to UseUART\r\n"按大约每两秒一次的形式发送至PC端。
其中uart的传输模块采用了crazy Bingo的传输模块,因为串口仅支持单工通信,故设置两个模式分别进行测试。
二、总体RTL综合后框图及具体描述(因综合后图比较大,清晰的图请放大)
NI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-32359.png" border="0" alt="" />
本例程所包含模块与功能:
1)clk_generator
本例所使用的系统时钟为50MHz通过本分频模块产生发送数据时的时钟115200Hz(clk_bps)以及采用时钟16*115200Hz(clk_smp)。
2)key_scan
通过计数方式消抖并返回key0和key1的值,同时产生一个时钟周期的收到按键信号key_flag。
3)mode_switcher
根据收到按键信号key_flag以及当前key_value切换传输状态,并生成当前状态信号。
4)uart_receiver
    利用状态机进行接收数据的采样,同时采样点设置在7的位置(因为采样频率为发送频率的16倍)获取更加稳定的信号值,产生接收一个字符成功以及接收数据信号等。
5)cpudata
模拟产生发送串口数据的模块,可以每隔两秒钟进行发送,设计时,延时注意提前一个结束字符进行重新开始计数,并且区分清楚什么时候对相关变量进行赋值。
6)mux2
多位数据Mux2选择器,根据Send_Mode选择当前应当送至发送模块的数据。
7)uart_transfer
Uart发送数据模块,用于发送串口数据。
zhiweiqiang33 发表于 2014-11-16 09:54:48 | 显示全部楼层
用于发送串口数据。
 楼主| 羽蒙 发表于 2014-11-17 09:57:54 | 显示全部楼层
FPGA Uart串口例子
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-5 12:31 , Processed in 0.058705 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表