您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术用于测频测相的TMS320F206接口电路的软硬件实现(二) 正文
用于测频测相的TMS320F206接口电路的软硬件实现(二)

用于测频测相的TMS320F206接口电路的软硬件实现(二)

点击数:7468 次   录入时间:03-04 11:53:18   整理:http://www.55dianzi.com   DSP/FPGA技术

F206与8253硬件接口设计 用F206实现测频测相系统的原理框图如图1所示,此系统框图由两大部分组成。 第一部分为频率和相位的测量电路(图1中的左半部分所示),信号输入到比较器,通过整形电路后,输出方波信号。方波信号再进入到时序逻辑电路,此时就由F206的通用输入输出口IO2(IO2配置为输出口)进行控制,当IO2=0时,时序逻辑电路的输出恒为0;当IO2=1时,时序逻辑电路仅输出一个周波长的高电平脉冲(相位脉冲宽度为电压和电流相位差的宽度)。该部分的具体电路图如图2所示。 第二部分为F206与8253的接口电路(图1中的右半部分所示)。8253的时钟频率采用1.8432MHz,映射到F206的IO空间地址为1H,其计数器工作在方式0状态。F206的晶体振荡频率为20MHz,通过寄存器设置,将F206的口线IO0、IO1、IO2配置为通用输出口。IO0、IO1分别控制8253的地址选择线A0、A1,IO2用于控制频率和相位脉冲的形成。 系统的具体实现过程是这样的:用F206的一根口线IO2选通,使输入的工频电压和工频电流通过前级的比较电路、整形电路和时序逻辑电路后,分别得到频率脉冲和相位脉冲。当IO2=0时,频率脉冲和相位脉冲恒为0,致使8253计数器0和计数器1不计数(8253计数器0和计数器1的初值置为0);当IO2=1时,频率脉冲仅为一个周波的高电平,相位脉冲也仅为电压和电流相位差在一个周波内的高电平,此时,8253开始计数。8253计数器0和计数器1的计数时间分别由脉冲高电平时间确定。计完数后,由F206读入(此时间应比电压周期长,当此程序为主系统程序的一部分时,则在此期间主程序可干其它事情;就本程序而言,则可原地等待0.04S)。由于8253是16位减1计数器,故F206读的值为补码。由于F206的速度很快,CMOS型8253的速度跟不上,故应选用TTL型8253。

软件设计 软件主要考虑的是F206控制8253计数器计数,然后由F206读取8253计数器中的值。设计时需考虑以下二个方面: ① 由于测量工频电压采用一个计数器,故8253工作方式可采用方式0,并选用计数器0和计数器1分别作为相位和频率的计数器。 ② 8253是减1计数器,计数器在每次测量前都需置0,故F206读入的值为补码形式。 当进行频率和相位测量时,软件实现按照如下的过程进行:首先,F206初始化,即F206的IO0、IO1、IO2定义为输出形式,且F206的等待状态发生器控制寄存器置为1。其次,IO2=0,F206写8253的控制字,使得8253的计数器清0。然后,置F206的IO2=1,则8253计数器开始计数。最后,等待0.04S(此时间应比电压周期长,当此程序为主系统程序的一部分时,则在此期间主程序可干其它事情;就本程序而言,则可原地等待0.04S),F206就可以读8253计数器中的值。 图3示出了F206读取8253计数器中值的程序流程图。 F206读取8253计数器值的程序示例如下: 定义地址变量 OUTBM1 .SET 300H 临时变量 PHASEH .SET 301H  存放相位高位字节的 地址 PHASEL .SET 302H  存放相位低位字节的 地址 FPH .SET 303H  存放频率高位字节的地址 FPL .SET 304H  存放频率低位字节的地址 IO8253 .SET 01H 8253口地址 F206的初始化 LDP #6 程序指向第6页 SPLK #0FH,OUTBM1 OUT OUTBM1,ASPCR IO0-IO3均设置为输出状态 SPLK #0249H,OUTBM1 OUT OUTBM1,WSGR 1个等待状态  8253的计数器0和计数器1清0 LOOP: SPLK #011B,OUTBM1  D-Q清0,A1,A0=11,准备写8253控 制字 OUT OUTBM1,IOSR  D-Q清0端 I08253 A1 A0  IO2 IO1 IO0  (0:清0) (选择计数器) SPLK #00010000B,OUTBM1 OUT OUTBM1,IO8253 置计数器0为模式0,只读写低位字 节,2进制计数 SPLK #01010000B,OUTBM1 OUT OUTBM1,IO8253 置计数器1为模式0,只读写低位字 节,2进制计数 SPLK #000B,OUTBM1 OUT OUTBM1,IOSR D-Q清0,A1,A0=00,8253指向计数 器0 OUT OUTBM1,IO8253 计数器0低8位清0(高8位自动 清0) SPLK #001B,OUTBM1 OUT OUTBM1,IOSR  D-Q清0,A1,A0=01,8253指向 计数器1 SPLK #0,OUTBM1 OUT OUTBM1,IO8253 计数器1低8位清0(高8位自动 清0) IO2=1,8253开始测_率和相位 SPLK #101B,OUTBM1 OUT2=1,D-Q触发器脱离清0状态, OUT OUTBM1,IOSR 8253可以测频率,相位  等待0·04s LAR AR0,#96 LAR AR1,#7FDH MAR *,AR0 WAIT: BANZ WAIT1,AR1 B NOWAIT WAIT1: BANZ WAIT1 LAR AR1,#7FDH NOP MAR *,AR0 B WAIT 读取频率和相位的值 NOWAIT: SPLK #011B,OUTBM1 D-Q清0,A1,A0=11,准备写8253 控制字 OUT OUTBM1,IOSR SPLK #00100000B,OUTBM1 OUT OUTBM1,IO8253 置计数器0为模式0,只读写高位字 节,2进制计数 SPLK #01100000B,OUTBM1 OUT OUTBM1,IO8253 置计数器1为模式0,只读写高位 字节,2进制计数 SPLK #001,OUTBM1 OUT OUTBM1,IOSR D-Q清0,A1,A0=01,8253指向 计数器1 IN PHASEH,IO8253 读写相位的高位字节,放在 PHASEH中 SPLK #000B,OUTBM1 OUT OUTBM1,IOSR D-Q清0,A1,A0=00,8253指向 计数器0 IN FPH,IO8253 先读F的高位字节,暂存在FPH中 SPLK #011B,OUTBM1 OUT OUTBM1,IOSR D-Q清0,A1, A0=11,准备写8253 控制字 SPLK #01010000B,OUTBM1 OUT OUTBM1,IO8253 置计数器1为模式0,只读写低 字节,2进制计数 SPLK #00010000B,OUTBM1 OUT OUTBM1,IO8253 置计数器0为模式0,只读写低 字节,2进制计数 SPLK #001B,OUTBM1 OUT OUTBM1,IOSR D-Q清0,A1,A0=01,8253指向 计数器1 IN PHASEL,IO8253 读PHASEL的低位字节,放在 PHASEL中 SPLK #000B,OUTBM1 OUT OUTBM1,IOSR D-Q清0,A1,A0=00,8253指向 计数器0 IN FPL,IO8253 把F的低位字节放在FPL中 B LOOP .END 结语 本文着重讨论F206与8253之间的接口电路,实现了工频输入信号频率和相位的测量,文中还给出了具体电路及相应的源程序。这一设计已应用于三相交流实时高速数据采集系统中工频信号的频率和相位测定,对要完成同样功能的系统的设计,也可参考这一方法实现。■

参考文献 1 MSTMSF206 DIGITAL SIGNAL PFOCESOR (SPRS050 — NOVEMBER 1996) (Texas Instrument) 2 TMS320C2XX User's Guide (1997, Digital Signal Processing Solutions, Texas Instrument
                             
   
                                                                           来源:edw.com.cn




本文关键字:接口  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术

《用于测频测相的TMS320F206接口电路的软硬件实现(二)》相关文章>>>