3358|3

230

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

基于ZX-2型FPGA开发板的串口示波器(一) [复制链接]

本实验,为ZX-2开发板综合实验,该实验利用ZX-2开发板上ADC、独立按键、UART外设,搭建了一个具备丰富功能的数据采集卡ZX-2开发板负责进行数据的采集并将数据通过串口发送到PC机上,PC端,利用强大的串口调试工具——串口猎人,来实现数据的接收分析,并将数据分以波形、码表、柱状图的形式动态显示出来,以让使用者能够直观的看到ADC采集到的信号细节。同时,用户也可以使用串口猎人通过串口给下位机(FPGA发送指令,下位机接收到的指令进行解码,然后依据解码结果来配置FPGA中各个子模块的控制寄存器,以实现通过串口控制FPGA中子模块工作状态的功能。



实验,涉及到的应用模块和知识点如下所示:
串口收发模块的设计和使用
串口收发模块仿真模型的设计;
串口简单数据帧的解码
串口帧转Memory Mapped总线的设计;
Memory Mapped Slave模块的设计;
线性序列机设计思想的应用(ADC驱动)
独立按键消抖的分析与实现;
直接数字频率合成DDS)的设计与实现;
使能时钟系统间模块协调工作的重要性;
串口猎人详细使用
完整系统的仿真验证设计;
头文件在设计中的运用;
Quartus II软件中可定制化存储器ROM使用;

实验不仅注重可综合的代码编写,同时更注重代码的仿真验证。通过仿真,我们能够寻找设计中可能存在的问题并修正最终,在整个系统仿真无误的基础上,下载到开发板上一次性成功。
下图为本设计框架结构图:

系统采用模块化设计,模块划分的过程中,重点考虑了系统的可扩展性,下表为对系统中各模块功能的简单介绍。



        基于串口的虚拟示波器模块功能介绍       

模块

模块功能

Uart_Byte_Rx

串口字节接收模块,负责进行PC机发送指令数据的接收工作

CMD

串口指令解析与控制模块,该模块通过解码PC机发送的指令数据序列,获取控制命令,转换为Memory Mapped Master总线以实现上位机通过串口控制下位机(FPGA各模块寄存器的功能

Sample_Ctrl

ADC采样速率控制模块,该模块通过控制使能ADC采数速率来调整ADC的采样率

UART_Byte_Tx

串口字节发送模块,该模块负责将需要发送的字节数据通过UART协议发送出去发送到上位机)

UART_Tx_Ctrl

串口发送控制模块,根据数据有效标志信号来控制串口发送模块将数据出去

tlc549_Driver

TLC549模数转换ADC)芯片驱动模块,负责驱动TLC549进行模数转换,并将转换结果以字节格式输出。

DDS

DDS信号发生器模块,该模块生成一个固定频率的正弦波,在没有外部信号发生器的情况下,可通过该模块生成正弦波,并输出数据接入到采样部分,以模拟采集正弦波信号并在上位机显示

Mux1

AD采集结果和DDS数据结果多路选择模块,在测试时,用户可以选择需要采样的数据内部信号发生器生成的正弦波数据(供演示用)或者ADC采集到的电压结果(实际测试)

Mux2

AD采集结果和DDS数据结果有效标志信号选择多路器,在ADCDDS都处于工作的状态下,通过该多路器来实现数据有效标志信号的选择

normal_keys_detect

独立按键消抖模块,通过该模块来实现AD数据和DDS数据的切换,在演示和实际测试中进行切换


系统中各端口和信号的功能介绍如下:

基于串口的虚拟示波器端口和信号介绍

端口

位宽

端口功能描述

Clk

1

系统时钟,50M

Rst_n

1

全局复位,低电平复位

Rs232_Rx

1

串口接收引脚

Rs232_Tx

1

串口发送引脚

Key_in

3

按键输入

ADC_Din

1

ADC芯片数据引脚

ADC_Clk

1

ADC接口时钟

ADC_Cs_n

1

ADC芯片片选信号

内部信号

位宽

信号功能描述

Baud_Set

3

波特率选择信号,对应波特率如下:
000: 9600bps
001: 19200bps
010: 38400bps
011: 57600bps
100: 115200bps
101: 230400bps
110: 460800bps
111: 921600bps

Rx_Byte

8

串口接收到的字节数据

Rx_Int

1

串口接收字节成功标志信号,每次接收成功,信号产生一个时钟周期的高脉冲

Byte_En

1

串口字节数据发送使能信号,每一次一个时钟周期的高脉冲使能一次串口字节发送。

Tx_Done

1

串口发送字节数据完成标志,字节的数据发送完成,信号产生一个时钟周期的高脉冲

ADC_En

1

ADC单次转换使能信号,每一次一个时钟周期的高脉冲使能一次AD转换

ADC_Data

8

ADC采样结果

ADC_Flag

1

ADC转换结果有效标志,转换结果有效后,信号产生一个时钟周期的高脉冲

ADC_Busy

1

ADC工作忙标志,高电平表明ADC正处于转换状态,新的转换命令将被忽略,只有当该信号为电平时,外部控制逻辑才可触发新的转换

m_wr

1

主机写数据的请求,1表明有写请求

m_addr

8

主机写数据的地址

m_wrdata

16

主机写数据

DDS_Data

8

DDS生成的波形数据

DDS_Flag

1

DDS采样使能标志,该信号由DDS采样速率控制进程产生

Data_Flag

1

数据有效标志(根据用户按键进行选择DDS_Flag ADC_Flag

Data_Byte

8

串口发送字节数据

Data_Sel

1

数据选择信号(选择串口发送DDS_Data ADC_Data),1选择DDS_Data0选择ADC_Data

Flag_Sel

1

数据有效标志信号选择信号(选择DDS_Flag ADC_Flag1选择DDS_ Flag0选择ADC_ Flag

Key_Flag

1

按键检测成功标志信号,每次按键检测成功信号产生一个时钟周期的高脉冲信号

Key_Value

3

按键检测结果




本实验为综合性实验,代码量较大,因此这里只针对部分代码进行讲解如果文档中没有讲到的内容,大家可以参看代码注释




小梅哥
201548日 于至芯科技



此帖出自FPGA/CPLD论坛

最新回复

有点厉害。。。。  详情 回复 发表于 2015-4-13 15:07
点赞 关注
 

回复
举报

132

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
太牛逼了!
工程分享一下呗
此帖出自FPGA/CPLD论坛
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

板凳
 
有点厉害。。。。
此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复

28

帖子

0

TA的资源

一粒金砂(初级)

4
 
有点厉害。。。。
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表