信号采集与回放系统

信号采集与回放系统
技术报告
电信082  084775240  周霞
(合作者:电信082 084775228 吴迪)
指导教师:倪海燕
2010-5-27

摘要:设计通过A/D转换D/A转换实现输入信号与输出信号的变化。通过实验箱上的模式3ADC输入正弦波信号,设计按键选择,有3种模式分别是直接回放,单次回放,循环回放和定点回放。
关键字:信号 回放 模式选择
一、 实验要求
1. 实现输入,存储,回放信号
2. 回放模式选择(直接回放,单次波形回放,循环回放,分段存储定点回放等)
二、 总原理图
三、 系统总体方案设计
根据实验要求,TLC5510A 是采样率最高为20MHz8同步相量测量装置位并行高速ADC 汽结构FPGAPIO48输出信号控制ADC1的输出使能信号OE(低电平有效);PIO15为转换时钟信号CLKAD转换结果送至PIO16~PIO23,并且同时显示在数码管1和数码管2上。ADC的模拟信号输入端在实验箱的左侧,允许输入0~5V的信号。
转换关系:DATA=255×Ain/5
数据从采集到转换结束需要两个半时钟周期
四、 软件电路的设计
4.1控制器的设计
VHDL语言编写控制器的程序,要有读写使能和模式选择。用choose[2]的四个状态分别表示直接回放,单次回放,循环回放和定点回放。
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity control is
三方通话port (  clk:in std_logic;                          --时钟                                             
        writ:in std_logic;                          --读写使能
        en:in std_logic;                            --使能
        choose:in std_logic_vector(1 downto 0);    --模式选择
        ch:in std_logic_vector(1 downto 0);        --阶段选择                         
        enout:out std_logic;                        --读写使能输出     
        adr:out std_logic_vector(9 downto 0) );    --地址
end entity control;
architecture behave of control is
signal count1:std_logic_vector(9 downto 0);
signal count11:std_logic_vector(9 downto 0);
signal count2:std_logic_vector(9 downto 0);
自制室内单杠signal count22:std_logic_vector(9 downto 0);
begin
process(writ,en,ch,choose)
begin
if(en='1')then count1<="0000000000";count11<="0000000000";
              count2<="0000000000";count22<="0000000000";
elsif (clk'event and clk='1')then                         
    if(choose="01")then                                      ---- 单次回放
        if(writ='0')then enout<='1';adr<=count1;
          if(count1="1111111111")then count1<="1111111111";
          else  count1<=count1+1; 彩硒鼓
          end if;
        else enout<='0';adr<=count2;                             
          if(count2="1111111111")then count2<="1111111111";
          else  count2<=count2+1;
          end if;
        end if;
     
    elsif(choose="10")then                              ---- 循环回放
        if(writ='0')then enout<='1';adr<=count1;
          if(count1="1111111111")then count1<="1111111111";
          else  count1<=count1+1;
          end if;
        else enout<='0';adr<=count2;               
          if(count2="1111111110")then count2<="0000000000";
          else count2<=count2+1; 
          end if;
      end if;
    elsif(choose="11")  then                            ---- 定点回放
      if(writ='0')then enout<='1';adr<=count1;
          if(count11="0011111111")then count11<="0011111111";
          else  count11<=count11+1;
          end if;
          if  (ch="00")then count1<="0000000000"+count11;
          elsif(ch="01")then count1<="0100000000"+count11;
          elsif(ch="10")then count1<="1000000000"+count11;           
          else              count1<="1100000000"+count11;
          end if;
      else
enout<='0';adr<=count2;                            if(count22="0011111110")then count22<="0000000000";
            else  count22<=count22+1;
            end if;
            if  (ch="00")then count2<="0000000000"+count22;
            elsif(ch="01")then count2<="0100000000"+count22;
            elsif(ch="10")then count2<="1000000000"+count22;           
            else              count2<="1100000000"+count22;

本文发布于:2024-09-23 13:21:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/185924.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:回放   信号   输入   转换   设计   选择   输出   循环
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议