版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章电子系统设计实践,9.1 等精度频率计设计,在此完成的设计项目可达到的指标为:,(1)频率测试功能:测频范围0.1Hz100MHz。测频精度:测频全域相对误差恒为百万分之一。,(2)脉宽测试功能:测试范围0.1s1s,测试精度0.01s 。,(3)占空比测试功能:测试精度199。,9.1 等精度频率计设计,9.1.1 主系统组成,图9-1 频率计主系统电路组成,9.1 等精度频率计设计,9.1.2 测频原理,图9-2 等精度频率计主控结构,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns,则下式成立:,12-1,不难得到测得的频率为:,12-2,图9-3 频
2、率计测控时序,9.1.3 FPGA/CPLD开发的VHDL设计,占空比 = 12-3,【例9-1】 LIBRARY IEEE; -等精度频率计 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY GWDVPB IS PORT (BCLK : IN STD_LOGIC; -CLOCK1 标准频率时钟信号 TCLK : IN STD_LOGIC; - 待测频率时钟信号 CLR : IN STD_LOGIC; - 清零和初始化信号 CL : IN STD_LOGIC; -预置门控制 SPUL : IN STD_LO
3、GIC; -测频或测脉宽控制 START : OUT STD_LOGIC; EEND : OUT STD_LOGIC; -由低电平变到高电平时指示脉宽计数结束 SEL : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -多路选择控制 DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -位数据读出 END GWDVPB; 接下页,ARCHITECTURE behav OF GWDVPB IS SIGNAL BZQ,TSQ : STD_LOGIC_VECTOR(31 DOWNTO 0);-标准计数器/测频计数器 SIGNAL ENA,PUL :
4、STD_LOGIC; - 计数使能/脉宽计数使能 SIGNAL MA,CLK1,CLK2,CLK3 : STD_LOGIC ; SIGNAL Q1,Q2,Q3,BENA : STD_LOGIC; SIGNAL SS : STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN START 0 ) ; ELSIF BCLKEVENT AND BCLK = 1 THEN IF BENA = 1 THEN BZQ = BZQ + 1; END IF; END IF; END PROCESS; TF : PROCESS(TCLK, CLR, ENA) -待测频率计数器,测频计数器 接下页
5、,BEGIN IF CLR = 1 THEN TSQ 0 ); ELSIF TCLKEVENT AND TCLK = 1 THEN IF ENA = 1 THEN TSQ = TSQ + 1; END IF; END IF; END PROCESS; PROCESS(TCLK,CLR)-计数控制使能,CL为预置门控信号,同时兼作正负脉宽测试控制信号 BEGIN IF CLR = 1 THEN ENA = 0 ; ELSIF TCLKEVENT AND TCLK = 1 THEN ENA = CL ; END IF; END PROCESS; MA = (TCLK AND CL) OR NOT(
6、TCLK OR CL) ; -测脉宽逻辑 CLK1 = NOT MA; CLK2 = MA AND Q1; CLK3 = NOT CLK2; SS = Q2 接下页,DD3: PROCESS(CLK3,CLR) BEGIN IF CLR = 1 THEN Q3 = 0 ; ELSIF CLK3EVENT AND CLK3 = 1 THEN Q3 = 1 ; END IF; END PROCESS; PUL =1 WHEN SS=10 ELSE -当SS=10时,PUL高电平,允许标准计数器计数, 0 ; -禁止计数 EEND =1 WHEN SS=11 ELSE-EEND为低电平时,表示正在计
7、数,由低电平变到高电平 0 ; -时,表示计数结束,可以从标准计数器中读数据了 BENA =ENA WHEN SPUL=1 ELSE-标准计数器时钟使能控制信号,当SPUL为1时,测频率 PUL WHEN SPUL = 0 ELSE -当SPUL为0时,测脉宽和占空比 PUL ; END behav;,例9-1的原理图,带括号的信号为端口信号,等精度测频率专用芯片,9.2 高速A/D采样控制设计,图9-4 TLC5510引脚图,引脚功能如下: clk:时钟信号输入。 Analog In:模拟信号输入。 D1D8:转换数据输出。 Reft、Refb、Refts、Refbs:参考电压基准输入。 O
8、E:输出使能,低电平有效。 DGND、VDDD:数字地、数字电源端。 AGND、VDDA:模拟地、模拟电源端。,9.2 高速A/D采样控制设计,图9-5 TLC5510采样时序图,9.2 高速A/D采样控制设计,图9-6 TLC5510采样控制状态图,Adck:提供A/D采样时钟。 Adoe:TLC5510的输出使能,一直有效。 Data:采样数据输出。 Dclk:用来同步Data的输出,可以作为下一级的Data锁存信号。,图9-7 TLC5510采样控制器模块图,【例9-2】- TLC5510 采样控制。 library IEEE; use IEEE.STD_LOGIC_1164.ALL;
9、entity ad5510 is port( rst : in std_logic; - 复位 clk : in std_logic; - 采样控制 Clock 输入 d : in std_logic_vector(7 downto 0); - 8位A/D数据 ADck : out std_logic; - TLC5510的CLK ADoe : out std_logic; - TLC5510的OE data : out std_logic_vector(7 downto 0); - 8位数据 dclk : out std_logic ); - 数据输出锁存信号 end ad5510; arc
10、hitecture ADCTRL of ad5510 is type adsstates is (sta0,sta1); signal ads_state,next_ads_state : adsstates; signal lock : std_logic; begin ads : PROCESS( ads_state) - A/D 采样控制状态机 BEGIN CASE ads_state IS WHEN sta0 = ADck ADck=0; lock=0; dclk=1; 接下页,next_ads_state ADck 0); ELSIF lockEVENT AND lock=1 THE
11、N data = D ; END IF; END PROCESS ; ADoe = 0; end ADCTRL;,9.2 高速A/D采样控制设计,图9-8 A/D转换仿真波形,【例9-3】 - TLC5510 采样控制。 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity adctrl is port( rst : in std_logic; - 复位 clk : in std_logic; - 采样控制 Clock 输入; d : in std_logic_vector(7 downto 0);- 8位A/D数据 ADck : out std_
12、logic; - TLC5510的CLK ADoe : out std_logic; - TLC5510的OE data : out std_logic_vector(7 downto 0);- 8位数据 dclk : out std_logic); end adctrl; architecture logi of adctrl is signal lock : std_logic; begin lock 0); ELSIF lockEVENT AND lock=1 THEN data = D ; END IF; END PROCESS ; ADoe = 0; end logi;,9.3 VG
13、A图像显示控制器设计,对于普通的VGA显示器,其引出线共含5个信号:,R、G、B: 三基色信号,HS: 行同步信号,VS: 场同步信号,对这5个信号的时序驱动,对于VGA显示器要严格遵循“VGA工业标准”,即64048060Hz模式,否则会损害VGA显示器。,9.3 VGA图像显示控制器设计,图9-9 VGA行扫描、场扫描时序示意图,9.3 VGA图像显示控制器设计,VGA工业标准要求的频率:,时钟频率(Clock frequency) :25.175 MHz (像素输出的频率),行频(Line frequency):31469 Hz,场频(Field frequency ) :59.94 H
14、z (每秒图像刷新频率),9.3 VGA图像显示控制器设计,VGA工业标准显示模式要求:,行同步、场同步都为负极性,即同步头脉冲要求是负脉冲。,9.3 VGA图像显示控制器设计,图9-10 VGA图像控制器框图,9.3 VGA图像显示控制器设计,图9-11 FPGA模块实体,9.3 VGA图像显示控制器设计,颜色编码如下:,9.4 直接数字合成器(DDS)设计,正弦信号发生器,它的输出可以用下式来描述:,12-4,用基准时钟clk进行抽样,令正弦信号的相位:,12-5,在一个clk周期Tclk,相位的变化量为:,12-6,9.4 直接数字合成器(DDS)设计,为了对进行数字量化,把切割成2N份
15、,由此每个clk周期的相位增量用量化值来表述:,且 为整数,与12-6式联立,可得:,12-7,9.4 直接数字合成器(DDS)设计,信号发生器的输出可描述为:,12-8,其中 指前一个clk周期的相位值,同样得出,12-9,9.4 直接数字合成器(DDS)设计,图9-12 基本DDS结构,【例9-4】 - DDSC: DDS主模块 library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; use ieee.std_logic_arith.all; library lpm; - Altera LPM
16、use lpm.lpm_components.all; entity ddsc is - DDS主模块 generic( freq_width : integer := 32; - 输入频率字位宽 phase_width : integer := 12; - 输入相位字位宽 adder_width : integer := 32; - 累加器位宽 romad_width : integer := 10; - 正弦ROM表地址位宽 rom_d_width : integer := 10); - 正弦ROM表数据位宽 port( clk : in std_logic; - DDS合成时钟 freq
17、in : in std_logic_vector (freq_width-1 downto 0); - 频率字输入 phasein : in std_logic_vector(phase_width-1 downto 0); - 相位字输入 ddsout : out std_logic_vector(rom_d_width-1 downto 0); - DDS输出 end entity ddsc; 接下页,architecture behave of ddsc is signal acc : std_logic_vector(adder_width-1 downto 0); signal ph
18、aseadd: std_logic_vector(phase_width-1 downto 0); signal romaddr : std_logic_vector(romad_width-1 downto 0); signal freqw : std_logic_vector(freq_width-1 downto 0); signal phasew : std_logic_vector(phase_width-1 downto 0); begin process (clk) begin if(clkevent and clk = 1) then freqw = freqin; - 频率字
19、输入同步 phasew = phasein; - 相位字输入同步 acc = acc + freqw; - 相位累加器 end if; end process; phaseadd = acc(adder_width-1 downto adder_width-phase_width) + phasew; romaddr = phaseadd(phase_width-1 downto phase_width-romad_width); - sinrom i_rom : lpm_rom - LPM_rom调用 接下页,GENERIC MAP ( LPM_WIDTH = rom_d_width, LP
20、M_WIDTHAD = romad_width, LPM_ADDRESS_CONTROL = UNREGISTERED, LPM_OUTDATA = REGISTERED, LPM_FILE = sin_rom.mif )- 指向rom文件 PORT MAP ( outclock = clk,address = romaddr,q = ddsout ); end architecture behave;,下面是产生SIN ROM数据值的C程序: #include #include math.h main() int i;float s; for(i=0;i1024;i+) s = sin(at
21、an(1)*8*i/1024); printf(%d : %d;n,i,(int)(s+1)*1023/2); ,把上述C程序编译成程序后,在DOS命令行下执行: romgen sin_rom.mif;,图9-13 DDS主模块RTL综合结果,基本DDS结构的常用参量计算,(1) DDS的输出频率fout。,12-10,(2) DDS的频率分辨率 。,12-11,(3) DDS的频率输入字 计算。,注意 要取整,有时会有误差。,【例9-5】 - 简易频率合成器 - DDS(32bit频率字,1024 points 10bit out) - For GW48-CK - Mode: No.1 li
22、brary ieee; use ieee.std_logic_1164.all; entity ddsall is port( sysclk : in std_logic; - 系统时钟 ddsout : out std_logic_vector(9 downto 0);- DDS输出 - GW48 接口 sel : in std_logic; - 输入频率字高低16位选择 selok : in std_logic; - 选择好信号 pfsel : in std_logic; - 输入频率、相位选择 - 频率/相位字输入(与sel、selok配合使用) fpin : in std_logic_
23、vector(15 downto 0); end ddsall; architecture behave of ddsall is component ddsc is - DDS主模块 接下页,generic( freq_width : integer := 32; - 输入频率字位宽 phase_width : integer := 12; - 输入相位字位宽 adder_width : integer := 32; - 累加器位宽 romad_width : integer := 10; - 正弦ROM表地址位宽 rom_d_width : integer := 10 - 正弦ROM表数据
24、位宽 ); port( clk : in std_logic; - DDS合成时钟 freqin : in std_logic_vector (freq_width-1 downto 0);- 频率字输入 phasein :in std_logic_vector(phase_width-1 downto 0);- 相位字输入 ddsout :out std_logic_vector(rom_d_width-1 downto 0);- DDS输出 end component ddsc; signal clkcnt : integer range 4 downto 0; - 分频器 signal
25、clk : std_logic; signal freqind : std_logic_vector(31 downto 0); - 频率字 signal phaseind: std_logic_vector(11 downto 0); - 相位字 begin i_ddsc : ddsc - 例化DDSC port map(clk = clk, ddsout = ddsout, phasein = phaseind, freqin = freqind); clk = sysclk; 接下页,process(sysclk) begin - GW48-CK 模式1;频率字的输入 if(sysclk
26、event and sysclk = 1) then if(selok = 1 and pfsel = 0) then if(sel = 1) then freqind(31 downto 16) = fpin; else freqind(15 downto 0) = fpin; end if; elsif(selok = 1 and pfsel = 1) then phaseind = fpin(11 downto 0); end if; end if; end process; end behave;,9.5 使用IP Core设计FIR滤波器,N阶FIR滤波器系统的传递函数:,12-12
27、,图9-14 直接型FIR滤波器结构,N阶的FIR系统差分方程表示为:,12-13,乘法器,加法器,延迟环节,图9-15 直接型FIR实现结构,图9-16 FIR滤波器设计示意,图9-17 FIR Compiler安装,图9-18 设置User Libraries,图9-19 在MegaWizard管理器中选择IP Core,图9-20 FIR滤波器系数确定,图9-21 FIR系数修正,图9-22 FIR模块Symbol,图9-23 firm模块仿真结果,图9-24 FIR滤波器总体连接图,9.6 通用异步收发器(UART)设计,机,设备,图9-25 UART三线连接通信示意,图9-26和图9-27中涉及的UART概念,在信号线上共有两种状态,可分别用逻辑1和逻辑0来区分。,起始位(Start Bit),数据位(Data Bits),校验位(parity Bit),停止位,位时间,帧,波特率,图9-26 基本UART帧格式,图9-27 基本UART帧时序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民办幼儿园内部审计制度
- 民非组织内部管理制度
- 海关业务内部审计制度
- 海尔内部高管薪酬制度
- 海鲜店内部管理制度
- 煤炭工地内部管理制度范本
- 煤矿办公室内部管理制度
- 武汉纺织大学《平法识图与仿真软件应用》2024-2025学年第二学期期末试卷
- 环卫局内部控制制度
- 监理机构内部管理制度
- 2026年湖南中医药高等专科学校单招职业技能测试必刷测试卷含答案
- 2025年小学法制教育
- 工行人力资源序列题库
- 神奇的记忆力课件
- 部编统编三下语文肥皂泡教案公开课教案教学设计(2025-2026学年)
- 炭晶板背景墙施工方案
- 2024-2025学年四川省自贡市七年级(下)期末数学试卷(含答案)
- 2025年个人自查剖析材料与整改措施
- 2026人教版中考复习英语必背1600单词(30天背诵)
- 2025年高考历史(河南卷)真题评析
- 化工自动化控制仪表操作资格培训
评论
0/150
提交评论