x
x

FPGA Uart串口例子

发布时间:2012-10-18 09:45    发布者:hanxing0
关键词: FPGA , Uart收发
一、编程环境
软件:    Quartus 12.0 Web
硬件:    DE2开发板
二、例程功能描述
本例程实现从CPUPCPCPC两种典型的串口通信模式之间的切换及传输,其中切换方式为通过按键切换,具体为:
Key0按下:PC->PC的传输,即FPGA通过接收PC串口发送的数据并将其反馈给PC端。
Key1按下:CPU->PC的传输,即FPGA中发送的测试数据行“Welcome to UseUART\r\n"按大约每两秒一次的形式发送至PC端。
其中uart的传输模块采用了crazy Bingo的传输模块,因为串口仅支持单工通信,故设置两个模式分别进行测试。
二、总体RTL综合后框图及具体描述(因综合后图比较大,清晰的图请放大)
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-32359.png
本例程所包含模块与功能:
1)clk_generator
本例所使用的系统时钟为50MHz通过本分频模块产生发送数据时的时钟115200Hzclk_bps)以及采用时钟16*115200Hz(clk_smp)
2)key_scan
通过计数方式消抖并返回key0key1的值,同时产生一个时钟周期的收到按键信号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发送数据模块,用于发送串口数据。
附串口设置:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-14838.png
testuart.zip (1 MB, 售价: 2 积分)

本文地址:https://www.eechina.com/thread-99325-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
csc57 发表于 2012-12-30 18:41:40
好好研究
aquasnake 发表于 2013-9-20 01:05:27
谢谢。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • EtherCAT®和Microchip LAN925x从站控制器介绍培训教程
  • MPLAB®模拟设计器——在线电源解决方案,加速设计
  • 让您的模拟设计灵感,化为触手可及的现实
  • 深度体验Microchip自动辅助驾驶应用方案——2025巡展开启报名!
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表