Menu Close

UART的发送器TX的FPGA实现及实验

在上几节内容中介绍了异步串行口的协议,波特率等内容。本节结合开发板PRA006/010介绍如何将UART –TX的各个部分组合在一起在FPGA实现,并通过Tera term, SSCOM等串口测试工具与计算机通信。

  1. 继续使用上节创建的工程,并建立新文件uart.v, 并设为顶层文件
  2. 利用IP Catalog向导生成输入50Mhz, 输出72MHz的PLL,并在uart.v文件里例化
  3. 将上节设计的波特率生成器在uart.v里例化,并将在UART协议一节中设计的tx.v在uart.v文件里例化。例化后的源文件如下:


 

并将波特率发生器程序bd_rate_en.v与串口发送程序tx.v重新列出,如下:

  • bd_rate_en.v


 

 

  • tx.v


 

  • 硬件设置

在FII-PRA006/010的开发板上采用了FT2232USB转串口芯片,如图1,

图1-1

图1-2

图1中J2是mini USB接口,可以通过USB传输电缆连接到PC或笔记本上,FT2232的右侧提供了两套TTL接口,分别接到FPGA的JTAG接口,和UART口(JTAG_TXD_O,JTAG_RXD_I)上。在本节内容只是讲解JTAG_TXD_O,JTAG_RXD_I如何使用。这两个管脚在FPGA上的映射如表1所示:

表1

UART名称 RXD TXD
原理图名称 JTAG_TXD_O JTAG_RXD_I
FPGA 管脚 144 143
说明 FPGA接收端 FPGA发送端

 

  • 测试程序

测试目的是提供数据,观察UART的TX是否按照协议进行发送数据。为了观测方便,这里提供的测试数据为秒脉冲计数器,将计数值作为UART的输入数据,并完善tx_req,tx_ack等握手协议,见图2。

图2

程序如下:


 

仿真工程:


 

  • 测试步骤
  • 单击菜单Projects–> Revisions… 在弹出的对话框中设置工程的更新版本,将工程的顶层实体设置为test_UART,如图3,

图3

  • 重新编译,管脚锁定,编译下载。
  • 打开SSCOM 串口调试软件(PC或笔记本上使用),工具设置如图4

图4

注意事项:

    • 由于FT2232在PC上映射的串口端口可能会变化,应注意选择正确的端口号,如图3显示2个端口(COM22,COM23),一般第一个已被JTAG使用,因此选择COM23。如果错误选择了COM22并打开,可能会影响JTAG下载,Signal Tap Logic Analyzer的调试等。
    • 图4是英文版的界面,中文版可以按照同样的方式设置。

 

练习:

(1) 编写testbench 程序,仿真tx的协议发送过程。观察波形。

(2)用Signal Tap Logic Analyzer调试UART 的tx过程,观察波形。

 

Quartus 参考代码:

[content_control]

uart.zip

[/content_control]

Posted in FPGA, FPGA 教材教案, Quartus II, Quartus II, Verilog, 教材与教案, 文章