低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt

上传人:牧羊曲112 文档编号:1484437 上传时间:2022-12-01 格式:PPT 页数:107 大小:1,018.50KB
返回 下载 相关 举报
低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt_第1页
第1页 / 共107页
低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt_第2页
第2页 / 共107页
低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt_第3页
第3页 / 共107页
低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt_第4页
第4页 / 共107页
低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt》由会员分享,可在线阅读,更多相关《低频数字相位测量仪的 EDA技术综合应用实例与分析 ppt课件.ppt(107页珍藏版)》请在三一办公上搜索。

1、第15章 低频数字相位测量仪的 设计与分析,15.1 系统设计要求 15.2 系统设计方案 15.3 主要VHDL源程序和汇编语言程序 15.4 系统仿真/硬件验证 15.5 设计技巧分析 15.6 系统扩展思路,15.1 系统设计要求,设计并制作一个低频数字相位测量仪,其设计要求如下: (1) 频率范围:20 Hz20 kHz。 (2) 相位测量仪的输入阻抗100 k。 (3) 允许两路输入正弦信号峰-峰值可分别在15 V范围内变化。 (4) 相位测量绝对误差2。,(5) 具有频率测量及数字显示功能。 (6) 相位差数字显示:相位读数为0359.9,分辨力为0.1。,15.2 系统设计方案,

2、15.2.1 总体设计方案 根据系统的设计要求,本系统可分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。考虑到FPGA/CPLD具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统拟用FPGA/CPLD和单片机相结合,构成整个系统的测控主体。,图15.1 系统原理框图,15.2.2 信号整形电路的设计 最简单的信号整形电路就是一个单门限电压比较器(如图15.2所示),当输入信号每通过一次零时触发器的输出就要产生一次突然的变化。当输入正弦波时,每过一次零,比较器的输出端将产生一次电压跳变,它的正负向幅度均受到供电电源的

3、限制,因此输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。,图15.2 采用单门限触发器的整形电路,为了避免过零点多次触发的现象,我们使用施密特触发器组成的整形电路。施密特触发器在单门限电压比较器的基础上引入了正反馈网络。由于正反馈的作用,它的门限电压随着输出电压Uo的变化而改变,因此提高了抗干扰能力。本系统中我们使用两个施密特触发器对两路信号进行整形,电路图如图15.3所示。,图15.3 采用施密特触发器的整形电路,15.2.3 FPGA数据采集电路的设计 FPGA数据采集电路的功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。FPGA数据采集的硬件电路我们可采

4、用FPGA下载板来实现,该下载板包含FPGA芯片、下载电路和配置存储器,其电路结构可参见对应的FPGA下载板说明书。本电路主要是进行FPGA的硬件描述语言(HDL)程序设计。,根据系统的总体设计方案,FPGA数据采集电路的输入信号有:CLK系统工作用时钟信号输入端;CLKAA,CLKBB两路被测信号输入端;EN单片机发出的传送数据使能信号,在EN的上升沿,FPGA向单片机传送数据;RSEL单片机发出的传送数据类型信号,当RSEL=0时,FPGA向单片机传送被测信号频率数据,当RSEL=1时,FPGA向单片机传送被测信号相位差数据。FPGA数据采集电路的输出信号有:DATA18.0FPGA到单片

5、机的数据输出口,由输出控制信号EN和RSEL控制。,本数字式相位测量仪的要求是测试并显示输入信号频率范围在20 Hz20 kHz,测试并显示信号a、b的相位差,相位差的变化范围为0359.9,相位差的显示分辨力为0.1,要求测量相位的绝对误差2。由此可知:,图15.4 FPGA数据采集电路系统组成框图,15.2.4 单片机数据运算控制电路的设计 单片机数据运算控制电路的功能就是负责读取FPGA/CPLD采集到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差,同时通过功能键切换,显示出待测信号的频率和相位差。,单片机数据运算控制电路的硬件可由单片机、晶振电路、按键及显示

6、接口电路等组成。我们在设计中考虑到,单片机具有较强的运算能力和控制能力的特点,因此使用单片机的P0口,P2口及P1.0、P1.1、P1.2、P1.3接收FPGA送来的对应于正弦信号的周期、相位差的19位数据信号,P1口的P1.7、P1.6接入两个轻触按键,完成功能选择与设置。该电路的工作原理是,单片机通过向FPGA发送数据传送指令,使FPGA按照单片机的要求发送数据,同时通过使用单片机的串口,将待显示的数据信息送给数据显示电路显示。其原理图如图15.5所示。,图15.5 单片机系统原理图,单片机数据运算控制电路的软件设计思路是,单片机不断地从FPGA读取信号的周期和a、b信号相位差所对应的时间

7、差,读取数据后进行有关计算,并通过转换后,送出给显示模块,实现频率和相位差的显示。单片机主程序流程图如图15.6所示。 单片机在获取FPGA的数据时,开始的是一般的读取指令MOV指令,分别从单片机的P0口、P2口、P1口的低3位读入数据,组合为一个19位的二进制数据,通过控制口线P1.3、P1.5控制FPGA释放数据。经过多次测试,采用这种方式获得了比较好的效果。单片机读取FPGA数据的程序流程图如图15.7所示。,图15.6 主程序流程图,图15.7 读FPGA数据程序流程图,单片机从FPGA读取信息后,对信息进行计算,算出信号a的频率,其流程图如图15.8所示。 由于a、b信号是两路频率相

8、同、相位不同的正弦波信号,因此经过整形电路后形成频率相同,时间上不重合的两路信号,这样,FPGA可以计数出两路信号的时间差从而可以计算出a、b信号的相位差,其程序流程图如图15.9所示。,图15.8 计算a的频率程序流程图,图15.9 计算a、b相位差的程序流程图,最后单片机需要将信号送到输出端显示出来,即单片机通过显示子程序将信息送到显示电路显示出来,程序流程图如图15.10所示。,图15.10 显示程序流程图,15.2.5 数据显示电路的设计 整个系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七

9、段数码管和8片1位串入8位并出的74LS164芯片组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出;这种连接方式不仅占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路如图15.11所示。,图15.11 数据显示电路,74LS164是一种8位高速串入/并出的移位寄存器,随着时钟信号的高低变化,串行数据通过一个2输入与门同步的送入,使用独立于时钟的主控复位端让寄存器的输出端变为低电平,并且采用肖特基钳位电路以达到高速运行的目的。并且还具有以下的特点: 典型的35 MHz移位频率; 异步主控复

10、位; 门控串行输入; 同步数据传输; 采用钳位二极管限制高速的终端; 静电放电值大于3500 V。,在本系统中,74LS164的连接方式为:74LS164的输出Q0Q7分别接LED数码管的dp、g、f、e、d、c、b、a,并且Q7连接下一个74LS164的A、B端,时钟CLK连接单片机的TXD端,第一片芯片的AB端连接单片机的RXD端,74LS164芯片的主控复位端接高电平VCC。在这种状态下,数码管的编码如表15.1所示。,表15.1 数码管的编码表,15.3 主要VHDL源程序和汇编语言程序,15.3.1 FPGA的VHDL源程序清单 -SZXWYVHD LIBRARY IEEE; USE

11、 IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SZXWY IS PORT(CLK:IN STD_LOGIC; CLKAA:IN STD_LOGIC;,CLKBB:IN STD_LOGIC; EN,RSEL:IN STD_LOGIC; CLKAC,CLKBC:OUT STD_LOGIC; -仿真观测输出点,调试好后应去掉,以下同 CLKFC:OUT STD_LOGIC;-仿真观测输出用 DATAAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真观测输出用 DATABC:OUT S

12、TD_LOGIC_VECTOR(18 DOWNTO 0); -仿真观测输出用,CLAC,CLBC:OUT STD_LOGIC;-仿真观测输出用 DAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真观测输出用 CLRAC:OUT STD_LOGIC;-仿真观测输出用 ENAC:OUT STD_LOGIC;-仿真观测输出用 LOADAC:OUT STD_LOGIC;-仿真观测输出用 DATA:OUT STD_LOGIC_VECTOR(18 DOWNTO 0);,END ENTITY SZXWY; ARCHITECTURE ART OF SZXWY IS SIGNAL

13、 CLKF:STD_LOGIC; SIGNAL DATAA:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL DATAB:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL CLB:STD_LOGIC; SIGNAL DA:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL CLRA:STD_LOGIC; SIGNAL ENA:STD_LOGIC; SIGNAL LOADA:STD_LOGIC; BEGIN,-信号分频模块 FPQ:BLOCK IS BEGIN PROCESS(CLK) IS VARIABLE TEMP:

14、INTEGER RANGE 0 TO 4; VARIABLE CL:STD_LOGIC; BEGIN IF RISING_EDGE(CLK) THEN IF TEMP=3 THEN TEMP:=0;CL:=1; ELSE TEMP:=TEMP+1;,CL:=0; END IF; END IF; CLKF=CL; CLKFC=CLKF;-仿真观测输出用 END PROCESS; END BLOCK FPQ; -控制信号产生模块 KZXH:BLOCK IS SIGNAL CLKA,CLKB:STD_LOGIC; SIGNAL CLA:STD_LOGIC; BEGIN,CLKA=NOT CLKAA;

15、 CLKB=NOT CLKBB; CLKAC=CLKA;-仿真观测输出用 CLKBC=CLKB;-仿真观测输出用 PROCESS(CLKA) IS BEGIN IF RISING_EDGE(CLKA) THEN CLA=NOT CLA; END IF; ENA=CLA;,LOADA=NOT CLA; CLAC=CLA;-仿真观测输出用 ENAC=ENA;-仿真观测输出用 LOADAC=LOADA;-仿真观测输出用 END PROCESS; PROCESS(CLKB) IS BEGIN IF RISING_EDGE(CLKB) THEN CLB=NOT CLB; END IF; CLBC=CLB

16、;-仿真观测输出用,END PROCESS; PROCESS(CLKA,CLA) IS BEGIN IF CLKA=0 AND CLA=0 THEN CLRA=1; ELSE CLRA=0; END IF; CLRAC=CLRA;-仿真观测输出用 END PROCESS; END BLOCK KZXH;,-时间检测模块 SJJC:BLOCK IS BEGIN PROCESS(ENA,CLRA,CLKF) IS BEGIN IF CLRA=1 THEN DA=0000000000000000000; ELSIF RISING_EDGE(CLKF) THEN IF ENA=1 THEN DA=DA

17、+1; END IF; END IF;,DAC=DA;-仿真观测输出用 END PROCESS; END BLOCK SJJC; -数据锁存模块 SJSC:BLOCK IS BEGIN PROCESS(CLB) IS -时间差数据进程 BEGIN IF CLBEVENT AND CLB=0 THEN DATAB=DA; END IF;,DATABC=DATAB;-仿真观测输出用 END PROCESS; PROCESS(LOADA) IS -提取周期数据进程 BEGIN IF RISING_EDGE(LOADA) THEN DATAA=DA; END IF; DATAAC=DATAA;-仿真观

18、测输出用 END PROCESS; END BLOCK SJSC; -输出选择模块,SCXZ: BLOCK IS BEGIN PROCESS(EN,RSEL) IS BEGIN IF EN=1 THEN CASE RSEL IS WHEN0=DATADATANULL; END CASE; END IF; END PROCESS; END BLOCK SCXZ;END ARCHITECTURE ART;,15.3.2 单片机的汇编语言源程序清单;SZXWY.ASMDATAH EQU 40H ; 周期的时间DATAL EQU 41HDATA2L EQU 42H ; 时间差DATA2HEQU 43H

19、DATA3 EQU 44HDATA33 EQU 45H,AD0EQU30H ; 除法占用 ; 乘法占用AD1 EQU31HAD2 EQU32HAD3 EQU33HAD4 EQU34HAD5 EQU35HAD6 EQU36HADA EQU4FHADB EQU5FHADC EQU4DHADE EQU5DH,DSEL BIT P1.3FEN BIT P1.5KEY1 BIT P1.7KEY2 BIT P1.6ALA BIT P3.5DISPBIT BIT 2FH.0 ORG 00H LJMP 100H ORG 100HMIAN: MOV 2FH,#01H,MIAN1: NOP LCALL DUSHU

20、JU ; 读FPGA数据 LCALL ZHUNBEIZHOUQI ; 装入频率除法数据 CLR 2FH.3 JNB 2FH.3,DIVDD1 LJMP CHCHU,DIVDD1:LCALL DIVD1 ; 计算频率 MOV 6FH, 4FH MOV 6EH, 4EH MOV 6DH, 4DH MOV 6CH, 4CH MOV 35H,4FH MOV 34H,4EH MOV 33H,4DH MOV 32H,4DH LCALL BCDST ; 二进制转换为BCD码,MOV R0,#30H MOV R1,#3FH MOV R7,#04H MOV 30H,#0 MOV31H,#0 MOV 32H,#0

21、 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0 MOV 36H,#0 LCALL BCD_2BCD MOV 70H,#18,MOV 71H,30H MOV 72H,31H MOV 73H,32H MOV 74H,33H MOV 75H,34H MOV 76H,35HMIANWC: LCALL X3600 ; 装入相位计算数据 LCALL MULNM MOV 4AH,5AH ; 将以X3600为初始地址单元的积送入除法缓冲区,MOV 4BH,5BH MOV 4CH,5CH MOV 4DH,5DH MOV 4EH,5EH MOV 4FH,5FH MOV 5FH,DATAL ;

22、装入被测周期时间 MOV 5EH,DATAH MOV 5DH,DATA3 LCALL DIVD1 ; 得到相位差值 MOV 35H,4FH MOV 34H,4EH,MOV 33H,4DH MOV 32H,#0 LCALL BCDST ; 二进制转换为BCD码 MOV R0,#30H MOV R1,#3FH MOV R7,#04H MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0,MOV 36H,#0 LCALL BCD_2BCD MOV 78H,#16 MOV 79H,30H MOV 7AH,31H MOV 7B

23、H,32H MOV 7CH,33H MOV 7DH,34H MOV 7EH,35HCHCHU: LCALL DISP,KEYCOD: JB P1.7, MIAN11 LCALL DELAY1 JNB P1.7, $ CPL 2FH.0 LCALL DELAY2MIAN11: LCALL DELAY1 LCALL DELAY1 LCALL DELAY1 LJMP MIAN1PROC DUSHUJU,DUSHUJU: CLR DSEL CLR FEN MOV A,P0 MOV DATAL,A MOV A,P2 MOV DATAH,A MOV A,P1 ANL A,#00000111B MOV DA

24、TA3,A SETB DSEL SETB FEN NOP,CLR FEN MOV A,P0 MOV DATA2L,A MOV A,P2 MOV DATA2H,A MOV A,P1 ANL A,#00000111B MOV DATA33,A SETB FEN RET NOP ; PC值出错处理,NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 ENDPROC ZHUNBEIZHOUQI ZHUNBEIZHOUQI: ;2N BYTE / N BYTE = N BYTE ,HERE N=3 IN 31H;(4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(

25、4D,4E,4FH),MOV 5FH,DATAL MOV 5EH,DATAH MOV 5DH,DATA3 MOV 4FH,#80H ; 低位 MOV 4EH,#96H MOV 4DH,#98H MOV 4CH,#00H MOV 4BH,#0H MOV 4AH,#0H RET NOP ; PC值出错处理,NOP ; 空操作NOP ; 空操作LJMPMIAN ; 重新复位起动 ENDPROC MULNMMULNM: NOP ;N BYTES X M BYTES = N+M BYTES HERE N=3;M=3MOV30H,#03H ;(4D,4E,4FH)(5D,5E,5FH)=(5A5FH)MO

26、V31H,#03H,MULTT:MOVA,AD0 MOVR3,AD1 MOVR2,A ADDA,R3 INCA MOVAD2,A MOVA,#ADB CLRC SUBBA,R3 MOVAD6,A MOVR1,A SUBBA,R2,MOVAD5,A INCR2MULNMZ:MOVR1,#00H DECR1 DJNZ R2,MULNMZMULNMB: MOVR2,AD0 MOV R1,AD6 MOVR0,#ADA CLR00HMULNML:MOVA,ADB,JZMULNMD MOV B,R0 MULAB ADDA,R1 MOV R1,A JNB00H,MULNM1 INCBMULNM1: MOVA

27、,B DECR1 ADDC A,R1 MOVR1,A MOV 00H,C DECR0 DJNZ R2,MULNML,MULNMD:MOVR0,AD5 CLR A MOV R2,AD2MULNMS: XCHA,R0 INCR0 DJNZ R2,MULNMS DJNZ R3,MULNMB RET NOP ; PC值出错处理NOP ; 空操作,NOP ; 空操作LJMPMIAN ; 重新复位起动 END PROC X3600;N BYTES X M BYTES = N+M BYTES HERE N=3;M=3;(4D,4E,4FH)*(5D,5E,5FH)=(5A-5FH) X3600: MOV 4

28、DH, DATA33 MOV 4EH, DATA2H,MOV 4FH, DATA2L MOV 5DH,#00H MOV 5EH,#0EH MOV 5FH,#10H RET NOP ; PC值出错处理NOP ; 空操作NOP ; 空操作LJMPMIAN ; 重新复位起动 END,PROC BCD_2BCDBCD_2BCD: NOPLOOP0: CLR A MOVA,R1 MOV B,A ;SWAP A ANL A,#0FH MOV R0,A INC R0 MOV A,B SWAP A ANL A,#0FH,MOV R0,A DEC R1 INCR0 DJNZ R7,LOOP0 RET NOP ;

29、 PC值出错处理 NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 END,PROC DISP ; 显示程序模块DISP: PUSH ACC PUSHPSW PUSHDPH PUSH DPL MOV A,76H CJNE A,#0,NOPB MOV 76H,#17 MOV A,75H CJNE A,#0,NOPB MOV 75H,#17,MOV A,74H CJNE A,#0,NOPB MOV 74H,#17 MOV A,73H CJNEA,#0,NOPB MOV 73H,#17 MOV A,72H CJNE A,#0,NOPB MOV72H,#17 MOVA,71H

30、 CJNE A,#0,NOPB MOV 71H,#0,MOV A,70H CJNE A,#0,NOPB MOV 70H,#17NOPB: MOV A,7EH CJNE A,#0,NOPB1 MOV 7EH,#17 MOV A,7DH CJNE A,#0,NOPB1 MOV 7DH,#17,MOV A,7CH CJNE A,#0,NOPB1 MOV 7CH,#17 MOV A,7BH CJNE A,#0,NOPB1 MOV 7BH,#17NOPB1: MOV R1,#70H ; 起始显示地址为 JNB 2FH.0 ,DISXW JMPDISPP,DISXW:MOV R1,#78HDISPP: M

31、OV R2,#7DISP1:MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR JB 2FH.0 ,OKOK MOV B,A MOV A,R1 CJNE A,#7AH,NONO MOV A,B ANL A,#11110111B JMP OKOK,NONO: MOV A,BOKOK: MOV SBUF,ADL1: JNB TI,DL1 CLR TI INC R1 DJNZ R2,DISP1 POP DPL POP DPH POP PSW POP ACC,RET NOP ; PC值出错处理 NOP ; 空操作 NOP ; 空操作LJMPMIAN ; 重新复位起动TAB: DB

32、 88H,0EBH,04CH,049H,2BH ; 自制的显示模块 DB 19H,18H,0CBH,08H,09H DB 0AH,38H,9CH,68H,1CH,1EH ,00FH,0FFH ,2AH END,PROC DELAY1DELAY1: CLR ALA MOV R6,#64HDELAY11:MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY11 SETB ALA RET NOP ; PC值出错处理 NOP ; 空操作,NOP ; 空操作 LJMP MIAN ; 重新复位起动 ENDPROC DELAY2DELAY2: MOV R6,#64HDELAY21:MOV

33、R7,#250 DJNZ R7,$,DJNZ R6,DELAY21 RET NOP ; PC值出错处理NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 ENDPROC DIVD1,DIVD1:NOP; ; 2N BYTE / N BYTE = N BYTE ,HERE N=3 IN 31H ; (4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH) MOV30H,#06H ; 被除数的字节数为6 AD0=06H MOV31H,#03H ; 除数的字节数,DIVPP: MOVA,AD1 MOV R2,A ; R2=03H RLA RLA

34、 RLA MOV R3,A ; R3=18H=24D CLR 0F0H ; B.0=0 清标志位 CLR C ; C=0,MOVA,#ADA SUBBA,R2 MOVAD3,A ; AD3=4CH MOVR1,#ADBDIVMB2B: MOVA,R1 JNZDIVM2B DECR1 DJNZR2,DIVMB2B SETB0F0H RET,DIVM2B: MOVR2,AD1 MOV R1,#ADB MOV R0,AD3DIVM2L: MOVA,R0 SUBBA,R1 DECR0 DECR1 DJNZ R2,DIVM2L JNCDIVM20DIVM2D:LCALL SHIL1 JCDIVM2S,D

35、IVM2C: MOVR0,AD3 MOV R1,#ADB MOV R2,AD1DIVM2CL: MOVA,R0 SUBBA,R1 DECR0 DECR1 DJNZ R2,DIVM2CL JC DIVM2E,DIVM2S: INCADA MOV R2,AD1 MOV R0,AD3 MOV R1,#ADB LCALL SUBMBBDIVM2E: DJNZR3,DIVM2D RETDIVM20: SETB0F0H RET DB02H,12H,SHIL1: MOVR2,AD0 MOV R0,#ADASHIL1B: CLRCSHILL: MOVA,R0 RLC A MOV R0,A DECR0 DJNZ

36、 R2,SHILL RET,SUBMB: MOVR2,AD0 ; NO SIGN N BYTES MINUSE N BYTES MOVR0,#ADA ; (.4FH)-(.5FH)=(.4FH) MOVR1,#ADBSUBMBB: CLRCSUBMB1: MOVA,R0 SUBBA,R1 MOVR0,A,DECR0 DECR1 DJNZR2,SUBMB1 RET NOP ; PC值出错处理 NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动END,PROC BCDSTBCDST: MOV R7,#32 CLR C MOV 3FH,#00H MOV 3EH,#00H MO

37、V 3DH,#00H MOV 3CH,#00H MOV 3BH,#00H MOV 3AH,#00H,KKK: MOV A,35H RLC A MOV 35H,A MOV A,34H RLCA MOV 34H,A MOV A,33H RLCA MOV 33H,A,MOV A,32H RLCA MOV 32H,A MOV A,3FH ADDC A,3FH DA A MOV 3FH,A MOV A,3EH ADDC A,3EH DA A MOV 3EH,A,MOV A,3DH ADDC A,3DH DA A MOV 3DH,A MOV A,3CH ADDC A,3CH DA A MOV 3CH,A

38、MOV A,3BH ADDC A,3BH DA A MOV 3BH,A,MOV A,3AH ADDC A,3AH DA A MOV 3AH,A DJNZ R7,KKK RET NOP ; PC值出错处理NOP ; 空操作NOP ; 空操作LJMPMIAN ; 重新复位起动 END END,15.4 系统仿真/硬件验证,15.4.1 系统调试的方法 本系统既含有FPGA自编程硬件设计电路,又含有单片机控制电路,整个系统比较复杂,因此我们采用自底向上的调试方法,也就是先进行各个单元电路的软件仿真和硬件调试,在各个单元电路调试好后再进行系统联调,最后进行硬件的编程固化及系统的组装。,15.4.2 系

39、统调试的软/硬件 (1) 系统设计开发软件:MAX+plus 10.0、伟福6000(WAVE 6000 for windows)。 (2) 单片机及FPGA/CPLD调试设备:PIV计算机、伟福E6000L单片机仿真器及POD8X5XP仿真头、GW48-CK EDA实验开发系统及EPF10K20TC144-4FPGA适配板、单片机最小系统、炜煌WH-500B程序编写加密器、GDS-820S数字存储示波器。,15.4.2 系统的有关仿真 图15.12是FPGA数据采集电路VHDL程序设计仿真图。请读者自己对照程序进行仿真分析。,图15.12 FPGA数据采集电路仿真图,15.4.4 系统的硬件

40、验证 1单元电路的调试 FPGA/CPLD数据采集电路的调试:使用MAX+plus 10.0、计算机、GW48-CK EDA实验开发系统等软件和设备,对FPGA/CPLD测控电路进行VHDL程序的调试、有关仿真以及编程下载,硬件测试等。,单片机数据处理控制程序的调试:使用伟福6000(WAVE 6000 for windows)、计算机、伟福E6000L单片机仿真器及POD8X5XP仿真头等软件和设备,对单片机数据处理控制程序进行调试。,2系统的联合调试 在各个单元电路调试好后即可进行系统联调,各联调设备的连接请参考相关内容。 3系统的硬件验证 系统联合调试成功后,可将单片机程序通过编程器固化

41、到单片机中并插入EDA实验开发系统中的单片机插座上,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,输入相关的信号,并进行有关性能指标的测试,直到满足系统的设计要求为止。,15.5 设计技巧分析,(1) 在系统的总体设计方面,考虑到FPGA/CPLD具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统利用FPGA/CPLD和单片机相结合,构成整个系统的测控主体,其中FPGA /CPLD主要负责数据采集,而单片机则负责读取FPGA/CPLD采集到的数据进行有关计算处理,以及键盘和显示的控制。,(2) 由于FPGA对脉冲

42、信号比较敏感,而被测信号是周期相同,相位不同的两路正弦波信号,为了准确的测出两路正弦波信号的相位差及其频率,我们对输入波形在送入FPGA进行处理前先设置了一个具有正反馈功能的、由施密特触发器组成的整形电路进行整形,使正弦波变成方波信号,提高了系统的抗干扰能力。,(3) FPGA数据采集电路测量正弦波信号频率的原理是:在正弦波信号整形后得到方波信号的一个周期内对周期为Tc秒的数据采样信号进行计数,其计数结果乘以1/Tc,就是被测正弦波信号的频率,单位为Hz。,(4) 在本系统的设计中,FPGA在10 MHz数据采集信号作用下对待测信号周期计数,并对两个同频正弦信号的相位差所对应的时间差进行计数,

43、分别得到19位数字量,19位数字量的物理单位是0.1 s。 (5) 单片机数据运算控制电路的软件设计思路是,单片机不断地从FPGA读取信号的周期和a、b信号相位差所对应的时间差,读取数据后进行有关计算,并通过转换后,送出给显示模块实现频率和相位差的显示。,(6) 整个系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此我们数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8位并出的74LS164芯片组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出,这种连接方式不仅占用单片机端口少,而且充分利用了单片机的

44、资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路详见图15.11所示。,15.6 系统扩展思路,(1) 设计并制作系统工作的外围电路:信号发生器(正弦波、三角波、方波)、直流工作电源。,(2) 系统联合调试成功后,可将单片机程序通过编程器进行固化到单片机中,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,将整个系统的外围电路设计制成印刷电路板。 (3) 参考图15.13设计制作一个移相网络: 输入信号频率:100 Hz、1 kHz、10 kHz; 连续相移范围:?45+45; A、B输出的正弦信号峰?峰值可分别在0.35 V范围内变化。,图15.13 移相网络电路图,(4) 设计并制作一个数字式移相信号发生器(图15.14),用以产生相位测量仪所需的输入正弦信号,要求: 频率范围:20 Hz20 kHz,频率步进为20 Hz,输出频率可预置; A、B输出的正弦信号峰?峰值可分别在0.35 V范围内变化; 相位差范围为0359,相位差步进为1,相位差值可预置; 数字显示预置的频率、相位差值。,图15.14 数字式移相信号发生器电路图,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号