具有可编程位串行数字信号处理器的数据采集系统.pdf

上传人:00****42 文档编号:659397 上传时间:2018-03-02 格式:PDF 页数:101 大小:3.30MB
返回 下载 相关 举报
摘要
申请专利号:

CN94104978.7

申请日:

1992.02.01

公开号:

CN1096894A

公开日:

1994.12.28

当前法律状态:

终止

有效性:

无权

法律详情:

|||公开|||

IPC分类号:

G06F15/74; G01R19/00

主分类号:

G06F15/74; G01R19/00

申请人:

横河电机株式会社;

发明人:

斯蒂芬·里·加弗里克; 藤野健治

地址:

日本东京都

优先权:

1991.02.11 US 653,935

专利代理机构:

中国国际贸易促进委员会专利商标事务所

代理人:

范本国

PDF下载: PDF下载
内容摘要

用于测量模拟电压的设备,包括:用于提供电源电压的装置;一个σ—δ模-数转换器布置为对模拟电压作出响应,以提供信号强度的第一数字指示;一个脉冲宽度调制器布置为对信号强度的第二数字指示作出响应,以提供脉冲;数字处理电路,用于对信号强度的第一数字指示作出响应,以生成信号强度的第二数字指示;以及用于测量电脉冲的强度的带有达松伐尔传动机构的一个表。

权利要求书

1: 用于测量模拟电压的设备,其特征在于包括: 用于提供电源电压的装置; 由所述提供电源电压的装置供电的一个σ-δ模--数转换器布置为对以电信号形式表示的所述模拟电压作出响应以提供信号强度的第一数字指示,该所述第一数字指示具有与所述电源电压也是成反比的一个信号强度; 由所述提供电源电压的装置供电的一个脉冲宽度调制器布置为对以电信号形式表示的信号强度的第二数字指示作出响应以提供电脉冲,该所述电脉冲具有与信号强度的所述第二数字指示以及与所述电源电压都成正比的大小; 数字处理电路,用于对以电信号形式表示的信号强度的所述第一数字指示作出响应以生成以电信号形式表示的信号强度的所述第二数字指示;以及 用于测量所述电脉冲的强度的带有达松伐尔传动机构的一个表。
2: 权利要求1所述的设备,其特征在于:用于响应所述第一数字指示生成所述第二数字指示的所述数字处理电路包括: 数字处理设备,用于以一个强度生成所述第二数字指示,该强度是所述第一数字指示的强度的均方根。
3: 权利要求1所述的设备,其特征在于:用于响应所述第一数字指示生成所述第二数字指示的所述数字处理电路包括: 一个乘-加数字处理器,连接为接收所述第一数字指示作为一个输入信号,并编程为生成以电信号形式表示的信号强度的第三数字指示,指示一个信号强度,该信号强度是以电信号形式表示的信号强度的所述第一数字指示所指示信号强度的平方; 另一个处理器,连接为接收所述第三数字指示作为一个输入信号,并编程为生成以电信号形式表示的信号强度的所述第二数字指示,指示一个信号强度,该信号强度是以电信号形式表示的信号强度的所述第三数字指示所指示的信号强度的平方根。
4: 权利要求1所述的设备,其特征在于:用于响应所述第一数字指示生成所述第二数字指示的所述数字处理电路包括: 一个位串行乘-加数字处理器,连接为接收所述第一数字指示作为一个输入信号并编程为生成以电信号形式表示的信号强度的第三数字指示,指示一个信号强度,该信号强度是以电信号形式表示的信号强度的所述第一数字指示所指示的信号强度的平方;以及 另一个处理器,连接为接收所述第三数字指示作为一个输入信号并编程为生成以电信号形式表示的信号强度的所述第二数字指示,指示一个信号强度,该信号强度是以电信号形式表示的信号强度的所述第三数字指示所指示的信号强度的平方根。

说明书


本发明涉及可编程数字信号处理器,更具体地说,涉及对位串行格式的数字信号进行运算的数据采集系统中的处理器。

    从所需数字硬件量的观点看,在计算包含乘法与加法过程的固定算法中,已知位串行数字信号处理是高效的。然而,在使用可编程算法,或者在执行一种算法时要求可观的存储器时,如在一台通用计算机或一台微处理机中那样,电子设计师们已不使用位串行数字信号处理而采用位并行处理。

    用于为计算的目的而生成数字数据的数据采集系统可以从多个传感器接收模拟输入信号,这些模拟信号在它们能被一台作为支持计算的基础的计算机使用以前必须进行数字化。因而希望在廉价的单一单片集成电路及某些简单的初始处理电路的范围内对来自各种传感器的模拟输出信号设置对应的模-数转换器。这种数据采集电路可使用金属氧化物半导体(MOS)集成电路技术构成并适用于诸如电力测量与内燃机控制这些应用。

    由于单片集成电路的单位成本随着它们所包含的数字硬件地复杂性的增加而增加,发明者们特别重视包含较经济的硬件的模-数转换器,多路复用器以及数字信号处理器。位串行多路复用器及处理器是数字硬件中尤为经济的;并且一个位串行信号的互连只需两条线,一条用于传送数据位的串行流,而另一条用于传送分析信号。对数据采集系统中的数字信号处理器的速度要求并不很高而位串行计算则可能是足够快的。σ-δ(求和增量)型过量采样模-数转换器,尤其是具有一次σ-δ调制器的那种,是经济的数字硬件。

    R.I.Hartley与S.E.Noujaim在他们的1989年8月22日颁布的名为“低执行时间二的补码位串行乘法器”的4,860,240号美国专利中描述了可用一台称作硅编译器的计算机在一块硅基片上布线的位串行乘法器。R.I.Hartley与P.F.Corbett在他们的1990年3月20日颁布的名为“位分片数字串行乘法器”的4,910,700号美国专利及他们的1990年7月3日颁布的名为“使用部分积的串行及并行加法的串一并行乘法器”的4,939,687号美国专利中也描述了可使用一台称作硅编译器的计算机在一块硅基片上布线的位串行乘法器。R.I.Hartley与P.F.Corbett在他们的1988年10月31日提交的并且已批准的现在名为“可用于除法器中的位串行线性组合装置”的265,210号美国专利申请中描述的可用一台称作硅编译器的计算机在一块硅基片上布线的位串行加法器。S.L.Garverick在1990年1月23日颁布的名为“用于微分输入放大器不需要均衡的输入信号的切换电容耦合网络”的4,896,156号美国专利中用示例的方法描述了使用一次σ-δ调制器的过量采样模-数转换器。P.L.Jacob与S.L.Garverick在1990年8月21日颁布的名为“过量采样的模-数转换器中系统误差的校正”的4,951,052号美国专利中描述了过量采样模-数转换器中系统误差的校正。上述各专利都是转让给通用电气公司并作为参照文献结合在这里的。

    本发明涉及可与多个生成对应传感器输出信号的传感器结合使用的一种单片集成电路,该单片集成电路包括用于将各传感器输出信号转换成位串行数字格式的装置以及包括一个位串行乘-加处理器在内的一些初始处理电路。这一处理器包括一个位串行数字乘法器,用于将一个位串行格式的第一数字处理器输入信号乘以一个第二数字处理器输入信号以生成一个数字积信号;一个数字加法器,用于将一个第三数字处理器输入信号加在该数字乘积信号上以生成一个数字和信号;以及用于提供具有对应于所述的数字和信号的位的一个数字处理器输出信号的装置。一个存储器系统为写入该存储器系统中的程序指令、第一数字处理器输入信号的值、第二数字处理器输入信号的值、第三数字处理器输入信号的值以及数字处理器输出信号的值提供存储。第一数字处理器输入信号可选自转换成位串行数字格式的传感器输出信号或选自存储器。加到位串行乘-加处理器上的第二数字处理器输入信号是至少在选定的时间从存储器系统读入的,加在位串行乘-加处理器上的第三数字处理器输入信号也是一样。一个控制器以预定的次序从存储程序指令的存储器中检索所存储的指令,并为控制至少存储器系统的读与写生成控制信号,并且选择第一数字处理器输入信号。

    本发明的其它方面涉及该集成电路与监视电力线的电压与电流的传感器的组合以及在电力测量中该组合的用法。在模拟传感器数据的模-数转换中σ-δ调制器以后所用的多通道十中抽一滤波是新的。进行CORDIC(协调旋转数字计算)除法及平方根运算的位串行处理器是新的。

    图1为在电力测量系统中使用而连接成的单片集成电路的示意图,该单片集成电路在某些方面体现本发明并在其中具有过量采样的模-数转换器与一个在位串行格式的数字信号上操作的数字信号处理器级联。

    图2为图1电力测量系统的一部分控制电路的示意图,包括用于与可编程只读存储器进行接口的电路。

    图3为存储在可编程只读存储器中的信息的布置图。

    图4为可编程只读存储器的操作的时序图。

    图5为图1电力测量系统的另一部分控制电路,包括与随机存取存储器进行接口的电路。

    图6为随机存取存储器的操作的时序图。

    图7为在过量采样模-数转换器与图1中的数字信号处理器级联之间使用的多通道十中抽一滤波器的示意图。

    图8为位串行乘-加处理器的示意图,它是图1数字信号处理器级联中的初始处理器。

    图9为展示图8位串行乘-加处理器到图1电力测量系统中其它部件的连接的示意图。

    图10为图1电力测量系统中所使用的过零检测器的示意图。

    图11为生成供图8位串行乘-加处理器在执行Sinc2数字低通滤波时使用的滤波系数的三角形系数发生器的示意图。

    图12为相对于时间画出的展示图11三角形系数发生器的相关波形的时序图。

    图13为位串行CORDIC处理器的示意图,它是图1数字信号处理器级联中的最终处理器。

    图14为图13CORDIC处理器中使用的定标器的示意图。

    图15为更具体地展示一般性地示出在图1中的反正切补码只读存储器与CORDIC处理器之间的接口的示意图。

    图16为展示图13位串行CORDIC处理器到图1电力测量系统中其它部件的连接的示意图。

    图17为CORDIC处理器指令格式图。

    图18为每一条图17格式的CORDIC处理器指令中所使用的参数与函数选择编码表,这些指令是图1单片集成电路的CORDIC处理器所使用的。

    图19A为图1单片集成电路的乘-加处理器中执行的处理的方框图,图19A与19B为图1单片集成电路中执行的处理的合成方框图的左手与右手部分,在本说明书中该合成方框图称为图19。

    图20为图1中所示的模拟参考发生器的示意图。

    图21为在一个电力调节系统中使用而连接的另一种单片集成电路的示意图,该单片集成电路在某些方面体现了本发明并在其中具有过量采样模-数转换器及一个位串行乘-加处理器。

    图22为乘-加处理器的指令格式图。

    在整个图及其相关的说明中,后面没有数字的符号△用于表示一个字(32位)延时运算符。当n为整数时符号△n用于表示n位延时运算符。符号S    &    Hn用于表示采样并在位串行字流中保留各位串行字的第n位的操作。符号2m当m为一个-31至零之间的整数时表示一个位串行字,其中在一个位串行字流中的32位位串行字中的接连的位中的第(31+m)位是一个“1”而其余各位均为“0”。

    在图1中,单片集成电路5将用于监视一组三相电力线,它具有交流电流的第一相导线1,在其上插入一个电流感测互感器11的初级绕组;交流电流的第二相导线2,在其上插入电流感测互感器12的初级绕组;以及交流电流的第三相的导线3,在其上插入一个电流感测互感器13的初级绕组。一个电压感测互感器14的初级绕组连接成感测地与第一相导线1之间的电压。一个电压感测互感器15的初级绕组连接成感测地与第二相导线2之间的电压。一个电压感测互感器16的初级绕组连接成感测地与第三相导线3之间的电压。

    集成电路5中的σ-δ调制器21、22与23分别数字化电流感测互感器11、12与13的次级绕组提供的电压以分别生成的电力导线1、2与3中流过的模拟量电流的数字表示。集成电路5中的σ-δ调制器24、25与26分别数字化电压感测互感器14、15与16的次级绕组提供的电压以分别生成出现在电力导线1、2与3上的模拟量电压的数字表示。σ-δ调制器21-26的输出位流流到一个六通道十中抽一滤波器20的对应输入端口上,滤波器20从其输出端口循环地向一个位串行乘-加处理器30(立刻就要对它进行极详细的说明)提供下述量的十中抽一位串行表示:

    (1)电力导线1中流过的模拟量电流,

    (2)电力导线1上的模拟量电压,

    (3)电力导线2中流过的模拟量电流,

    (4)电力导线2上的模拟量电压,

    (5)电力导线3中流过的模拟量电流,以及

    (6)电力导线3上的模拟量电压。

    乘-加处理器30向位串行寄存器组19提供位串行输出信号,而一个CORDIC40则从该寄存器组中取位串行输入信号。

    一个位于集成电路5中的参照直流电压生成器18将一个模拟参照电压AGND作用在这些次级绕组的第二端上,从互感器11-16的次级绕组的第一端向σ-δ调制器21-26提供的电压便是相对于这一参照电压提交的。位于集成电路5中的时钟发生电路100以与一个晶体控制的振荡器(未单独示出)的振荡成一定比率的频率生成时钟信号,该晶体控制振荡器在晶体101的控制下以10兆赫的频率振荡。10兆赫振荡在时钟发生器中被除以4而为σ-δ调制器21-26确定它们的过量采样率生成2.5兆赫的时钟信号。十中抽一滤波器20被定时为以4.9千赫的字率来更新其对乘-加处理器30的应答。位串行寄存器组19被定时为以稍为超过五赫兹字率来更新其对CORDIC处理器40的位串行输入信号。

    一个可编程只读存储器(PROM)9为乘-加处理器30存储程序指令与系数数据,并且为CORDIC处理器40存储程序指令。PROM控制电路29位于集成电路5中并为乘-加处理器30适当地输送程序指令及系数数据,以及为CORDIC处理器40适当地输送程序指令。PROM9是位于集成电路5外部的另一单片集成电路(i-c),由于PROM9最好是电气可擦型的,因此它不能容易地模拟CMOS结合在一个i-c中。发明人使用NEC    μ    PD28C24电气可擦PROM,对于PROM9,它能存储512字节并以2.5兆赫以上的数据率读取。这一PROM具有11条地址线与8条数据线。存储在PROM9的系数为16位2的补码数字其二进制小数点随在最高位后面。集成电路9与5之间的接口为17位宽,因此跨越这一接口的高速驱动需要相当大数量的功率。

    一个受PROM控制电路29(在图1中未具体示出)控制的一个并行进/串行出(PISO)转换器31将以位并行格式存储在PROM9中的系数转换成应用于乘-加处理器30的位串行格式。在正在详细说明的电力测量系统中,这些不变的系数是在处理器30的位串行乘法器部分用作被乘数的;而该位串行乘法器的设计可以不需要并行到串行的转换。然而在该集成电路压模上的这一位串行乘法器的布图是由只容许标准化的位串行设计的一个硅编译器确定的,它只过通功能器件之间的接口接收位串行信号,所以使用了SIPO转换器31,如图1所示。

    (发明人使用一个硅编译器程序来设计程序数据RAM6。σ-δ调制器21-26是以微单元设计的,脉冲宽度调制器63与64也是这样。另一个硅编译器程序(如F.Yassa等人在IEEE会报,卷75-1272-1282页1987年9月中的论文“数字信号处理的硅编译器:方法、实现及应用”中所描述的)被用于设计在i-c5上的电路的其余位串行部分)。

    为了在为乘-加处理器30高速驱动随机存取程序数据存储器6时节省电力,该程序数据存储器6是位于集成电路5中的。乘-加处理器30对存储器6的写入或自存储器6的读出是经由RAM控制电路35进行的。由RAM控制电路35(在图1中未具体示出)控制的串行进/并行出(SIPO)转换器32将来自乘-加处理器30的位串行程序数据转换成存储在存储器6中的位并行格式。由RAM控制电路35(在图1中未具体示出)控制的并行进/串行出(PISO)转换器33与34将存储在存储器6中的位并行程序数据每次两个字地转换成对应的第一与第二数据位串行流以供乘-加处理器30应用。

    精确的电力测量要求乘-加处理器30在电力导线1、2与3上的a-c信号的整数个周期上执行积分运算。为了检测这些a-c信号的整数个周期,乘-加处理器30将它从十中抽一滤波器27与28接收到的信号的数字响应的高通滤波型式提供给过零检测器36。过零检测器36向处理器30返回过零点的指示。

    一个三角形系数生成器37与处理器30通信并在处理器30被编程为执行sinc2低通滤波过程时生成定义一个三角形滤波器核心的系数。

    CORDIC处理器40接收来自乘-加处理器30的位串行输出信号,它们是在位串行寄存器组19中被分样成稍为高于5兆赫的更新率的。CORDIC处理器40使用下述文献中所描述的性质的算法进行反正切计算:J.E.Volder的“CORDIC三角计算技术”IRE电子计算机会报,卷EC-8,第三号,330-334页,1959年9月;J.S.Walther的“初等函数的统一算法”Spring    Joint计算机会议文摘1971,379-385页;并且是以适用于位串行运算的方式。CORDIC处理器40所用的反正切基数系数永久性地存储在位于集成电路5中的一个只读存储器38中。CORDIC处理器40同时使用下述文献中一般性地描述的那种迭代技术但以适用于位串行运算的方式执行非恢复除法与非恢复求平方根:H.W.Gschwind与E.J.McCluskey在它们的书“数字计算机设计导论”278-301页,1975年纽约、海德堡与柏林的Springer-Verlag出版。为了适应位串行运算,通过CORDIC处理器40的延时延长至两个位串行字的长度,包含其一个字少一位的比较时间。相应地,CORDIC处理器40在时间交叉的基础上执行偶与奇计算。CORDIC处理器40能够计算下列基本函数,其中Xin与Yin是对CORDIC处理器40选择的输入变量:

    (a)Yin/Xin

    (b)Yin(1/2)

    (c)tan-1(Yin/Xin),以及

    (d)magnitude(Xin,Yin)=(Xin2+Yin2)(1/2)

    位于集成电路5中的正规化器电路39与CORDIC处理器40合作提供另一个基本函数

    (e)[sign(oa2)]·(cordic-out-L)/M

    的计算。其中L与M为从PROM9中提供的CORDIC程序指令中所包含的常数;而[sign(oa2)]则为存储在一个寄存器中的值oa2的极性。信号cordic-out是CORDIC处理器40的前一个输出,并且另一个基本函数是使用CORDIC处理器40的Yin/Xin函数产生的。符号“·”在整个说明书中都表示乘法。

    通过CORDIC处理器40的处理是在时分多路复用的基础上进行的,并提供了同时计算两个函数的措施。相应地,一个函数digout1的位串行表示在选定的时间间隔中装入一个寄存器60供此后在数字表61上应用;并且另一个函数digout2的位串行表示在选定的时间间隔中装入寄存器62供在一个数字表63上应用。脉冲宽度调制器64响应digout1作为一个信号pdm1向一个达松伐尔(D    Arson-val)表65提供对应宽度的脉冲。同样,脉冲宽度调制器66响应digout2作为信号pdm2向另一个达松伐尔表67提供对应宽度的脉冲。

    图2更详细地示出电力测量i-c5上的PROM控制电路29及部分时钟发生器100,以及从PROM控制电路29到片外的PROM9的连接线。

    时钟发生器100中的十一级主计数器以四倍于σ-δ调制器21-26中的过量采样率计数。该十一组主计数器包括一个生成一个两并行位较低位计数输出的两级计数器102以及计数来自计数器102的溢出位并生成一个九并行位较高位计数输出的另一个九级计数器103。九级计数器103为从上向下型,其中的九个并行位计数输出可以是局部地为2的补码的,并且这种局部的求补是响应计数器102的计数输出的最低位的补码进行的,该补码是经由逻辑反相器104作为信号saw向图1的十中抽一滤波器20提交的,该滤波器20将参照图7在以后作详细描述。进行这一局部的求2的补码使得九并行位较高位计数输出及其补码可以分别用作六通道十中抽一滤波器20的三角形滤波器系数的上升与下降部分,该滤波器20将联系图7更具体地描述。

    由σ-δ调制器21-26在每当它们的输出被更新时以2.5兆赫频率生成的ds-cntl信号作为一个复位信号作为在计数器102上以建立乘-加处理器30与σ-δ调制器21-26之间的同步。

    对计数器102的计数输出的最低位为“1”作出响应,九位宽并行位锁存器105锁存计数器103计数输出的向上计数部分。锁存器105的内容被用于为乘-加处理器30寻址PROM9来访问编程的指令。即,九级计数器103作为程序计数器用于在一种连续的循环的基础上为乘-加处理器30寻址PROM9顺序地读出编程的指令。暂时存储在锁存器105中的四个最低位作为(访问图3中所示的16字节单元中的字节位被直接提交给PROM9。响应从“与”门107接收的一个零控制信号,多路复用器106有选择地将暂时存储在锁存器105中的五个最高位作为地址位传送给PROM9。

    “与”门107只当PROM9输出的第5、第7、第13与第15字节时响应ctr2与ctr4都是高电平才提供一个“1”输出信号。ctr2与ctr4信号是分别从9位锁存器105得到的来自包含计数器102与103的主计数器的第2与第4级的向上计数。响应从“与”门107接收到的一个“1”控制信号,多路复用器106选择地向PROM9传输作为地址位的计数器108的5个并行位计数输出。PROM9被认为具有3位时间间隔的延时。

    “与”门109及1010对计数器103的溢出coutl1及update-wb标志(在图11电路中生成的)以及一个cordic-inc信号进行“与”运算以生成5级计数器108所计数的“1”。cordic-inc信号是包含在每一条CORDIC处理器40的程序的指令中的一个标志位,除了最后一条指令以外每一条指令的该标志位都是“1”,然后是一个“0”在计数器计满时停止其计数。从而,直到CORDIC处理器40的程序的最后一条指令,计数器103每隔包含计数器102与103的主计数器2048次计数将其计数前进一次。逻辑反相器1012对update-wb标志求补,并将补码作为其一个输入信号输送给“与”门1011。“与”门1011的另一个输入信号是计数器103的溢出。如果计数器103不是在update-wb标志为“1”时发生溢出,“与”门1011将输出一个“1”来将计数器108复位为零计数。

    当σ-δ调制器21-26的输出信号正在进行转变时,指示时钟周期的“1”在一个定时延时级1013中被延迟一个位串行时钟延时,并作为复位信号加到2级计数器102上,使计数器102与103中的计数状态从那时起得以同步。

    包含计数器102与103的主计数器的最后向外进位,这发生在到达计数2047后,被一个多路复用器1015响应作为其控制信号的位串行2°为“1”选择到一个定时延时级1014的输入端口。在下一个31位时间间隔中,当其控制信号为“0”时,多路复用器1015在一个锁存操作中选择其输出端口上的信号到单位延时定时延时级1014的输入端口上。定时延时级1014的输出端口上的信号便是图9、11、13与15中所示电路所使用的cordic-start信号。这一信号在提供给乘-加处理器30的每64条MAP指令的周期中的初始第零条指令时为高电平。

    图3画出存储在作为PROM9使用的NEC    μ    PD28C04中的信息的16个8位字节的布置图。图2的电路按图4中所示的时序图的次序接连地从PROM9中提取16字节存储的程序与系数信息。对PROM9的这一读取现在将参照图2更详细地进行描述。

    图2示出一个48位锁存器90,作为其输入信号它接收来自8位锁存器91、92、93、96与97的输出信号。(由于各控制信号的定时是由硅编译器独立求出的,因此该48位锁存器90并不实际出现在当前制造的单片i-c中,但这是帮助人们理解该i-c的操作的一种方便的虚构的假设。)从PROM9中顺序地并循环地读取的16个8位字节中的第零与第8个字节被锁存在8位锁存器91中,以响应位串行2-28;响应位串行2-24,顺序地并循环地从PROM9读取的16个8位字节中的第1与第9字节被锁存在8位锁存器92中;响应位串行2-20,顺序地并循环地从PROM9读取的16个8位字节中的第2与第10字节被锁存在8位锁存器93中;响应位串行2-16,顺序地并循环地从PROM9读取的16个8位字节中的第3与第11字节被锁存在8位锁存器94中。

    响应一条接收到的锁存指令,顺序地并循环地从PROM9读取的16个8位字节中的第5字节被锁存在8位锁存器96中;并且,响应8位时间间隔后的另一条锁存指令,8位锁存器97锁存顺序地并循环地从PROM9读取的16个8位字节中的第7字节。锁存器96与97的锁存指令示出为分别从“与”门961及971的输出端口来的。当位串行2-8及逻辑反相器962的输出信号都为“1”时,“与”门961的输出信号为“1”。当位串行2°与逻辑反相器972的输出信号都为“1”时,“与”门971的输出信号为“1”。当ctr5为“0”时,逻辑反相器962与972的输出信号为“1”。ctr5信号是锁存在锁存器105中的来自包含计数器102与103的计数器的第5(从第零开始数的)级的在向上计数中的输出信号。

    假定在锁存器90中暂时锁存了48位。锁存器90的输出信号中的位0-4作为RAM6(未示出在图2中)的readO地址readO-adr加在RAM6上;锁存器90的输出信号中的位509作为RAM6的read1地址read1-adr加在RAM6上;并且锁存器90的输出信号中的位10-14作为RAM6的write地址write-adr加在RAM6上。位15是WRO标志,它成为高电平以指示RAM6以其read-O输出来写入。位16-18是多路复用器45的控制信号。位22-24是多路复用器47的控制信号。位25-28分别装入标志FA、OA1、OA2与NP。位29是XP标志。位30是EZ标志。位31未使用。从锁存器96锁存到锁存器90中的位32-39是作为指令CCO提供给cordic处理器40的。从锁存器97锁存到锁存器90中的位40-47是作为指令CC1提供给Cordic处理器40的。

    顺序地并循环地从PROM9读取的16个8位字节中的第4、第6、第12与第14字节被并行地装入并行进/串行出寄存器95中,它具有8位暂时存储器容量,用于要提供给乘-加处理器30的coef信号。“或”门951响应位串行2-12提供一个“1”用于命令将顺序地从PROM9中读取的16个8位字节中的第4与第12字节作为多路复用器46(示出在图9中)可利用的coef信号的起始部分装入SIPO寄存器95中。“或”门951响应位串行2-4还提供一个“1”用于命令将顺序地从PROM9读取的16个8位字节中的第6与第14字节作为多路复用器46可利用的coef信号的最后部分装入SIPO寄存器95中。

    响应“与”门981提供的“1”,将顺序地并循环地从PROM9读取的16个8位字节中的第13与第15字节并行地装入一个并行进/串行出寄存器98中,“与”门981是响应ctr5成为“1”同时“或”门982的输出信号也为“1”时提供“1”的。/“或”门982的输出信号响应位串行2°或位串行2-8两者中至少一个为“1”时提供“1”的。来自并行进/串行出寄存器98的串行输出端口的位串行信号被加在一条16位定时延时线983的输入端口上,该延时线983的输出端口连接回PISO寄存器98的串行输入端口上以形成一个循环串行存储器环984。这一循环串行存储器环984在定时延时线983的输出端口上与直接从并行进/串行出寄存器98读取的来自PROM9的当前的第13与第15个8位字节并行地提供暂时存储在循环串行存储器环984中的来自PROM9的第13与第15个8位字节。从并行进/串行出寄存器98中向移位器电路985读出来自PROM9的各接连的第13与第15个8位字节的对,移位电路985将这16位移位到更高的16位上,在这些位的前面加上16个“0”并丢掉后续的16位,借此生成被正规化器39利用的一个L系数。同时将来自PROM9的各接连的第13与第15个8位字节对从延时线983读入一个移位器电路986中,它将这16位移位到更高的16位上,在它们前面加上16个“0”并丢掉后续的16位,借助此生成正规化器39所利用的一个M系数。从而,L是当前的CORDIC指令中的系数的值,而M则是在环984中循环一周后迭代而得的前一条CORDIC指令中的系数的值。(正规化器39如何利用L与M系数的详情将参照图9在本说明书的较后部分中详细描述)。

    图5更详细地示出RAM控制电路35及其与RAM6、串行进/并行出寄存器32以及并进行/串行出寄存器33与34之间的连接。同时示出了乘-加处理器30到寄存器32、33与34的连接。SIPO寄存器32到RAM6的写输入端口的连接示出为响应乘-加处理器30指令中的WRO标志为“0”时经由多路复用器351选择的。当WRO标志为“1”时,多路复用器351选择其read0输出作为RAM6的写输入,read0输出是作为以前读出的两位并暂时存储在8位宽的并行位锁存器352中的。

    如图6中RAM6的时序图所示,在RAM操作的每一个周期中,在计数器102的初始级的4次连接的计数中对应的一次中顺序地执行对RAM6的READO、READ1与WRITE访问。当不访问RAM6时,在READ0、READ1与WRITE访问的前面加上计数器102的4计数周期的另一次计数。计数器103(图2)响应来自计数器102(图2)的初始级的溢出指示提供的COUT3信号在定时延时线353中被延时2位、4位、6位与8位宽度以分别生成到逻辑反相器354、PISO寄存器33与锁存器352的装入指令、SIPO寄存器32与SIPO寄存器34的装入指令、以及在WRITE访问中加在RAM6上的write-enable信号的输入信号。在READ0、READ1与WRITE访问的每一个中,从“与”门354向RAM6提供一个chip-enable信号。当作为一个输入的ctro信号成为“1”同时来自逻辑反相器354的输出信号也是“1”时,两个输入端的“与”门355作出响应也输出“1”。这在ctr3信号成为“0”之后的两位宽度上发生。

    多路复用器356受来自计数器102来的信号ctr2并在定时延时线357上延时两个位时间间隔的信号控制。在来自计数器102的ctr2信号成为“1”以后两位时间间隔以后,多路复用器选择来自锁存器90的5位write-adr信号连同取自计数器103的ctr3与ctr4输出一起加在RAM6上。多路复用器356响应在定时延时线357上延时两位宽度的为“0”的ctr2信号,选择来自多路复用器358的5位宽输出信号连同来自计数器103的ctr3与ctr4输出作为RAM6的7位(读)信号加到RAM6上。多路复用器358响应来自计数器102的为“1”的ctr1信号从锁存器90选择5位read0-adr信号到其输出端口上。多路复用器358响应来自计数路102的为“0”的ctr1信号选择来自锁存器90的5位read1-adr信号到其输出端口上。

    图7更详细地示出6通道十中抽一滤波器20。十中抽一滤波器通道201在时分多路复用的基础上滤波来自σ-δ调制器21的输出样本ds-i1与来自σ-δ调制器24的输出样本ds-v1。十中抽一滤波器通道201包含一个多路复用器2010,后者响应来自两个计数器102(图2)的变化较慢的较高位输出的计数输出ctr1在来自σ-δ调制器21的输出样本ds-i1与来自σ-δ调制器24的输出样本ds-v1之间进行选择。

    选中的信号从多路复用器2010作为各乘数信号的位的位串行流用于乘法器2011,后者从9级计数器103(图2)接收一个位并行被乘数信号saw,该计数器计数来自2级计数器102的溢出。乘法器2011包括多个“与”门,它们接收saw的各位作为它们的对应的第一输入信号并接收多路复用器2010输出信号的各位作为它们的对应的第二输入信号。saw信号是当来自2级计数器102的变化较快的较低位输出生成的计数输出ctr0为“1”时来自9级计数器103的正向向上计数;当来自2级计数器102的变化较快的较低位生成的计数输出ctr0为“0”时,则saw信号是来自9级计数器103的负向向下计数。这方便了交叉累计作为与一组上升的三角形系数对合的(convolved)及与一组下降的三角形系数对合的输入信号样本。

    与下降的滤波器系数对合的ds-i1,与上升滤波器系数对合的ds-i1,与下降的滤波器系数对合的ds-v1以及与上升的滤波器系数对合的ds-v1的并行位积在时分多路复用的基础上从乘法器2011提供给并行位数字加法器2012作为其加数信号。数字加法器2012将其和提供给字锁存器2013、2014、2015与2016的级联。字锁存器2013、2014、2015与2016以计数器102(图2)的时钟率将它们的内容向前定时。在包含数字加法器2012的时分多路复用累计中,多路复用器2017与2018将来自锁存器2016的输出信号选择到加法器2012作为其被加数信号。成为“1”的coutl1溢出指出被用作一条装入指令,用于调节一个并行进/串行出级2019从锁存器2014的内容中装入ds-v1样本与整个三角形滤波器系数的一组对合。成为“1”的coutl1溢出指示也被用作一条发布给另一个并行进/串行出级20110的装入指令,使之从锁存器2016内容中装入ds-i1样本与整个三角形滤波器系数的一组的对合。

    并行进/串行出寄存器2001响应当最大计数到达时来自计数器103(图2)的为“1”的溢出指示通过其并行位输入端口装入一个“0101”并行位信号。PISO寄存器2001的串行位输入端口则供以“0”输入。当coutl1溢出指示返回到“0”以后,SIPO寄存器2001提供一个“1010”位序列随以一串“0”直到coutl1溢出指示下一次变成“1”。这一来自PISO寄存器2001的输出信号控制多路复用器作出的选择。PISO寄存器2001的输出信号在定时锁存器2002中延时一个时钟时间间隔以生成控制多路复用器2018作出选择的信号。

    在coutl1溢出指示为“1”后的第一个时钟周期上,与存储在锁存器2015中的上升滤波器系数对合的ds-il的累计的最后结果被多路复用器2017选择为对加法器2012的被加数输入,以预调节与下降滤波器系数对合的ds-i1的累计。在coutl1溢出指示成为“1”以后的第二个时钟周期上,多路复用器2018选择算术“0”输入到加法器2012的输入端口,以预调节与上升滤波器系数对合的ds-il的累计。在coutl1溢出指示成为“1”后的第三个时钟周期上,与存储在锁存器2015中的上升滤波器系数对合的ds-v1的累计被多路复用器2017选择为到加法器2012的被加数输入端,以预调节下降滤波器系数对合的ds-v1的累计。在coutl1溢出指示成为“1”以后的第四个时钟周期上,多路复用器2018再一次选择算术“0”作为加法器2012的输入,以预调节与上升滤波器系数对合的ds-v1的累计。

    十中抽一滤波器通道202在时分多路复用的基础上滤波来自σ-δ调制器22的输出样本ds-i2及来自σ-δ调制器25的输出样本ds-v2。十中抽一滤波器通道202中的元件2020-2029及20210对应于十中抽一滤波器通道201中的元件2010-2019及20110中的对应元件。十中抽一滤波器通道203在时分多路复用的基础上滤波来自σ-δ调制器23的输出样本ds-i3及来自σ-δ调制器26的输出样本ds-v3。十中抽一滤波器通道202中的元件2030-2039及20310对应于十中抽一滤波器通道201中的对应元件2010-2019及20110。多路复用器2027与2037和多路复用器2017一样受控于来自PISO寄存器2001的输出信号;并且多路复用器2028及2038和多路复用器2018一样受控于定时锁存器2002的输出信号。并行进/串行出级2039、2029与2019连接在一个位串行存储器环204中。并行进/串行出级20310、20210与20110连接在另一个位串行存储环205中,多路复用器209响应从RAM9提供的乘-加处理器30指令中的v-i-select位,选择来自位串行存储器环204与205中之一的16位块用于读入电路207,后者在这些块的每一个的前面加上16个填充的“0”来构成一个32位数据字,提交给位串行加法器208作为其加数输入信号。加法器208接收位串行2°作为其被加数输入,因此它响应作为其加数输入信号接收的单极性32位数据字提供一个2的补码的带符号的32位数据字。

    图8更详细地示出乘-加处理器30。select-R1信号、enable-R1信号与XP信号每一个都称作“逻辑信号”。一个“逻辑信号”是一个通常用于控制目的的信号。它在一个位串行字中保持不变,在本例的电力测量i-C5中是32个时钟周期。常数2-15是一个位串行字,它只有其位16设置为高电平的“1”,其中最低位为位0。

    位串行乘法器301接收位串行coef(ficient)-in作为一个被乘数信号。其位串行乘数信号则是从一个两输入端的多路复用器302的输出端口接收的,后者在其一个输入端口上接收一个位串行data-in信号并在其另一个输入端口上接收在一个向左移位器303被乘以216后的data-in信号,左移位器303是以向较高位移16二进制位并填充“0”来实现的。位串行乘法器301的位串行积经由“与”门304作为加数输入信号有选择地加在位串行加法器305上的。位串行减法器306的位串行差经由“与”门307作为位串行被加数输入信号,有选择地加在位串行加法器305上。“与非”门308输出一个“1”来控制在“与”门304有输出端口上的信号,使之与来自乘法器301的位串行积相同,并控制“与”门307的输出端口上的信号使之与来自减法器的位串行差输出相同,当扩展精度处理中位16出现在逻辑信号XP为高电平的情况例外。逻辑信号XP是一个标志信号,它是乘-加处理器30的某些编程指令中的一部分。除了在某些累计中,当提供给多路复用器308的select-R1信号为“1”而导致它选择“与”门310的输出端口上串行地出现的位到其输出端口上以外,一个两输入端多路复用器309向减法器306提供作为被减数输入信号的位串行acc(umulator)-in信号。

    加法器305的位串行和输出信号R0是一字长定时延时线311的输入信号,该延时线311生成一个位串行信号R1=△R0。定时延时线311的位串行和输出信号R1被提供作为“与”门310的两个输入信号之一,其另一个输入为enable-R1逻辑信号。定时延时线311的位串行和输出信号R1是一字长定时延时线312的输入信号,它生成一个位串行信号R2=△R1。定时延时线312的位串行和输出信号R2是一字长定时延时线311的输入信号,它生成一个位串行信号R3=△R2。

    加法器305的位串行和输出信号被加到“与”门314的一个输入端口,其另一个输入端口则接收XP逻辑信号。“与”门314的输出端口提供到一个采样与保持电路315,后者根据其输入信号的位16的状态输出一个逻辑信号,在输入信号中位0是最低位。“与”门314的输出端口的逻辑信号在被加到位串行减法器306的被减数输入端口以前被延时一个位串行字的时间间隔。

    正常情况下(所有输入逻辑信号都设置为“0”),乘-加处理器30将data-in与coef-in信号相乘以生成一个积,该积被加在acc-in信号上。位串行乘法器301是以16个系数片构成的,所以只有系数的16个最高位被用于乘法运算。位串行乘法器的输出是一个32位的位串行字,它相当于32位data-in字与16位coef-in信号(两者都是2的补码表示的带符号的数)的47位完整的积的32个最高位。该积的15个最低位在位串行乘法器301的内部电路中被丢掉。

    在扩展精度模式中,作为处理器30的当前编程指令的一部分提供的标志信号XP在每两个连接的字操作中的第一个字中设置成高电平的。在两个字中,信号data-in与coef-in必须重复,而信号acc-in与乘法器输出则是一个两字量的最低位(第一字)与最高位(第二字)部分。当XP为高电平时,由多路复用器302选择的对乘法器301的数据输入是被左移位器303事先向左移位16位并填充了“0”的data-in。因此,在一个扩展精度运算的第一个字中,乘法器301的输出相当于丢掉47位完整的积中的16个最高位而不是15个最低位后所得到的数。然而。由于乘法器301对数据字的符号位的不正确解释,只有16个最低位是有效的。概括地说,乘法器301在第一个字中的输出将有一个“0”作为最低位,后面跟着47位完整的积中的15个最低位,后面跟着16个“垃圾”位。

    当乘法器输出被加在acc-in的最低位字上时,由于XP与2-15同时为高电平,“与”门304及307能够响应“与非”门308的为“0”的输出信号来屏蔽加法器305的加数及被加数输入的位16。因此,加法器305的和输出的位16相当于16个最低位的加运算的进位位,即该字的有效部分。这一位被一个采样与保持电路315采样并保持以生成逻辑信号test-out,它在定时锁存器316中被延时以生成一个逻辑信号acc-bak在下一个字中使用。

    在扩展精度运算的第二个字中,XP逻辑信号为“0”。事实上,在单精度运算与扩展精度运算的第二个字之间没有明显的差别。如前所述,来自前一个字的data-in与acc-in输入信号必须重复,并且现在要求输入两个字的acc-in中的较高位字。如果两个字运算的较低位部分产生一个进位,在扩展精度运算的最高位部分中逻辑信号acc-bak将是高电平的。从acc-in中减去逻辑信号acc-bak。由于一个高电平逻辑信号具有2的补码值-1,来自最低位字的进位使得最高位字增加1。逻辑信号“0”的2的补码值为0;因此,当最低位字没有进位时,第二个字不受影响。

    扩展精度运算的最后结果是data-in与coef-in信号的完整的47位积在累加中被保留。累加器的动态长度也是47位,这是因为最低位字的最低位与16个最高位是没有用的。

    图9更详细地示出乘-加处理器30到其它电路的连接。8输入端多路复用器45选择加到乘-加处理器30的data-in信号。位串行data-in信号可从下列信号中选择:

    (000)从RAM6经由PISO寄存器33提供的一个read-0信号,

    (001)从RAM6经由PISO寄存器34提供的一个read-1信号,

    (010)乘-加处理器30输出信号,

    (011)来自减法器51的read-0与read-1信号间的差,

    (100)十中抽-滤波器20的输出信号,

    (101)十中抽-滤波器20的输出信号,

    (110)从位串行寄存器组19中的一个寄存器192中抽取的频率指示f,以及

    (111)来自“与”门50的过零指示。

    另一个8输入端多路复用器46选择加到乘-加处理器30的coef-in信号。位串行coef-in信号可从下述信号中选取:

    (000)从RAM6经由PISO寄存器33提供的read-0信号,

    (001)从RAM6经由PISO寄存器34提供的read-1信号,

    (010)乘-加处理器30的输出信号,

    (011)由减法器51确定的read-0与read-1信号问的差,

    (100)来自三角形系数发生器37的相对高频sinc2滤波器系数βnb,

    (101)来自三角形系数发生器37的相对低频sinc2滤波器系数βwb,

    (110)从PROM9经由PISO寄存器95提供的coef信号,以及

    (111)由减-加法器52确定的乘-加处理器30的输出信号与PROM9经由PISO寄存器95提供的coef信号之间的差。

    4输入端多路复用器47选择加到乘-加处理器30的acc-in信号。位串行acc-in信号可从下列信号中选取:

    (00)从RAM6经由PISO寄存器33提供的read-0信号,

    (01)从RAM6经由PISO寄存器34提供的read-1信号,

    (10)乘-加处理器30的输出信号,以及

    (11)由减法器53确定的乘-加处理器30的输出信号与RAM6经由PISO寄存器33提供的read-0信号之间的差。

    在图16中,在乘-加处理器30与CORDIC处理器40之间的寄存器组19示出为包括成员位串行寄存器191-196。寄存器191-196中每一个都是32位串行存储器,其中所存储的位可以循环地利用,每次一位用于读及每次一位用于写。

    位串行寄存器191用于存储fa,累计的频率低通滤波结果,它是从乘-加处理器30(图9)写入寄存器191的。如在图16中所见,当选择了多路复用器401的(100)输入端时,fa可作为xin输入信号读入CORDIC处理器40;并且当选择了多路复用器402的(100)输入端时,fa可作为yin输入信号读入CORDIC处理器40。

    位串行寄存器192是用于存储f的,正规化的信号频率(8fin/fs),它是在更新中从CORDIC处理器40(图16)写入寄存器192的。位串行寄存器192的内容可作为乘-加处理器30(图9)的data-in信号由多路复用器45(图9)读取与选择。如图16中所见,当选择了多路复用器401的(101)输入端时,f可以作为xin输入信号读入CORDIC处理器40;并且当选择了多路复用器402的(101)输入端时,f可以作为yin输入信号读入CORDIC处理器40。

    位串行寄存器193是用于存储np的,乘-加处理器30进行低通滤波时核心中所用的周期数,它是从乘-加处理器30(如图16所示)写入寄存器193的。寄存器193是响应在处理器30的当前指令中出现的NP标志从处理器30的输出装入np的。如图16所示,当选择了多路复用器401的(111)输入端量,np可作为xin输入信号读入CORDIC处理器40;并且当选择了多路复用器402的(111)输入端时,np可作为yin输入信号读入CORDIC处理器40。

    位串行寄存器194是用于存储ns的,它等于np被f除,是由CORDIC处理器40计算的,并且是在起动或者更新中从CORDIC处理器40写入寄存器194中的(如图16中所见)。(在某些时刻,特别是在图中“ns”呈现这“ns”时)。位串行寄存器194的内容被提供给三角形系数发生器37(图11)。如从图16可见,当选择了多路复用器401的(110)输入端时,在移位带符号延伸电路1910中被乘以26的ns可作为xin输入信号读入CORDIC处理器40;并且当选择了多路复用器402的(110)输入端时,在移位带符号延伸电路1910中被乘以26的ns可作为yin输入信号读入CORDIC处理器40。

    参见图9,位串行寄存器195是用于存储Oa1的,乘-加处理器30接收到的信号的累加低通滤波结果,它是从乘-加处理器30写入寄存器195的,如图16中所见,当选择了多路复用器401的(000)输入端时,Oa1可经作为xin输入信号读入CORDIC处理器40;并且当选择了多路复用器402的(000)输入端时,Oa1可作为yin输入信号读入CORDIC处理器40。

    参见图9,位串行寄存器196是用于存储Oa2的,乘-加处理器30所接收到的信号的累加低通滤波结果,它是从乘-加处理器30写入寄存器196的。如图16中所见,当选择了多路复用器401的(001)输入端时,Oa2可作为xin输入信号读入CORDIC处理器40;并且当选择了多路复用器402的(001)输入端时,Oa2可作为yin输入信号读入CORDIC处理器40。

    返回去只考虑图9,二输入端“与”门48在其一个输入端上接收乘-加处理器30的输出信号,并且当从三输入端“或非”门49提交的其另一个输入信号为“1”时,对从处理器输出的信号作出响应将它写入RAM6。当在用作处理器30与40之间的接口的寄存器组19中的任何一个位串行寄存器191,195与196中没有装入指令时,“或非”门49提供这一个“1”。当在用作处理器30与40之间的接口的寄存器组19中的位串行寄存器191、195与196中任何一个被提供一条装入指令时,“或非”门49对此作出响应提供一个“0”。这使得RAM6中被寻址的单元写入算术0。

    如将结合图11与12更具体地说明的,每当完成了2ns个数目的滤波器系数的一个周期时,三角形系数发生器37发布的正常为“0”状态的update-wb信号脉冲到“1”,并且每当完成8ns个数目的滤波器系数的一个周期时,一个update-nb信号从其正常的“0”状态脉冲到“1”。update-wb与update-nb信号分别在定时延时线54与55中各被延射3个位串行字(96位)的时间间隔,以提供暂时地与乘-加处理器30的R3输出信号对齐的控制信号。对延时的update-nb信号与包含在处理器30的当前指令中的FA标志同时都是“1”作出响应,“与”门56发布一个“1”作为一条装入指令给用于存储由乘-加处理器30计算的值fa的位串行寄存器192。对延时的update-wb信号与包含在处理器30的当前指令中的OA1标志同时都是“1”作出响应,“与”门57发布一个“1”作为一条装入指令给用于存储由乘-加处理器30计算的值Oa1的位串行寄存器195。对延时的update-wb信号与包含在处理器30的当前指令中的OA2标志同时都是“1”作出响应,“与”门58发布一个“1”作为一条装入指令给用于存储由乘-加处理器30计算的值Oa2的位串行寄存器196。

    多路复用器59与定时延时线591以锁存器配置连接,每当三角形系数发生器37发布一个从其正常状态“0”脉冲至“1”的update-wb信号时,在多路复用器59的输出端口上的一个逻辑信号被更新。当发生这一事件时,来自三角形系数发生器37的update-nb信号的当前值被锁存以生成一个update-freq信号,其波形示出在图12中。如图16所示,“与”门197对update-freq信号与cordic-start进行“与”运算,后者在每一个cordic处理器40的指令周期开始时变成“1”。“与”门197的输出信号在“与”门198中与f-sw标志进行“与”运算,后者在指示装入值f的CORDIC处理器40指令为1;并且,当update-freq信号为高电平时,来自“与”门198的“1”命令将CORDIC处理器40计算出的值f装入位串行寄存器192中。“与”门197的输出信号也在“与”门199中与ns-sw标志进行“与”运算,后者在指示装入值ns的CORDIC处理器40指令中为“1”;并且,当update-freq信号为高电平时,来自“与”门198的一个“1”命令将CORDIC处理器40计算出的值ns装入位串行寄器194中。左移位器1910将提供给多路复用器401与402的值乘以26,使得在CORDIC处理器40中两次除以ns不致生成溢出CORDIC处理器的输出信号范围的小数。

    图10更详细地示出过零检测器36的构造。过零检测器36的操作是由从处理器30编程指令译码得到的EZ标志启动的。过零检测器36主要保存一张输入信号Snk的符号位的流动表,信号Snk是选自Vhk与ihk高通滤波结果中的一个的,这将参照附图19A在后面进行描述,过零检测器36还在府号位变化时生成一个指示。过零检测器36的常为“0”的输出信号ZC变成“1”以指示符号已经发生了变化。为了减小响应噪声脉冲或谐波失真所导致的虚假过零指示的可能性,在过零检测器36电路中包括一个定时器360以生成一个启动信号rflag,当它为“1”时允许检测器36只能在上一次指示符号改变以后经过一个规定的时间提供符号改变的指示。

    定时器360主要是一个计数器,它从读自PROM9的一个规定值ZCT向下计数。这一计数器包括一个位串行减法器361,布置为通过多路复用362有选择地反馈其差输出信号,以在一个定时延时线363中延时一个字以生成一个timer信号,该timer信号随后作为对该减法器361的一个被减数输入信号输入。在启动向下计数时,“或”门364响应一个reset信号或者成为“1”的过零检测器36输出信号ZC以生成一个“1”来控制多路复用器362去选择在定时延时线363延时了一个字的规定值ZCT,以生成timer信号的初始字。电路365感测每一个timer信号的位串行字的第22位的逻辑状态,这一位便是其符号位,并生成一个保持相同逻辑状态的一个逻辑信号直到电路365感测到下一个位串行字的第22位的逻辑状态。当感测规定值ZCT的第22位时,它一定是一个“0”由于ZCT得一个正的量。电路365作出响应生成一个逻辑信号“0”。电路365的响应提供给逻辑反相器366的输入端口,而其输出端口则连接到一个二输入端“与”门367的一个输入端上。“与”门367响应其为“1”的来自逻辑反相器366的输入信号同时另一个输入信号(EZ标志)也是“1”时,提供一个“1”作为输出信号,EZ信号为“1”启动过零检测器36的操作。“与”门367的输出信号作为输入信号之一提供给二输入端“与”门368,该“与”门368接收位串行2-15作为其另一个输入信号。“与”门368输出信号作为被减数信号加到减法器361。只要“与”门367提供“1”作为对“与”门368的输入,“与”门总是将位串行2-15提供给减法器作为被减数信号。在定时器360中继续进行向下计数直到timer信号改变其极性,这时电路365提供一个“1”输出信号。反相器366对此“1”作出反应向“与”门367提供一个“0”,后者又对此作出反应向“与”门368提供一个“0”。“与”门368对其“0”输入信号作出响应向减法器361提供一个算术0的减数。从而向下计数停止,而电路365将连续提供1输出信号直到定时器被reset信号或者成为“1”的EC信号复位。

    “与”门369响应同时为“1”的EZ标志与timer符号检测器电路365的输出信号生成rflag信号。rflag信号为“1”启动一个数字微分器3610,它对从定时延时线3611向其提供的位串行信号的符号位中的变化进行检测。定时延时线3611在其输出端口上重复发送信号Shk(信号Vh1,ih1,Vh2,ih2,Vh3与ih3之一)向Shk符号检测电路3612提供输入信号,该信号Snk是经过等一个位串行字长的时间间隔以后从RAM6读到延时线3611的输入端口上的。Shk符号检测电路3612采样延时Shk信号的位31并保持该位一个位串行字的32位时间间隔,假定rflag信号为“1”,多路复用器3613将这一被保持的位选到定时延时线3614的输入端口。只要rflag信号继续为“1”,“异或”门3615对当前保持的与以前保持的符号位进行“异或”运算,以数字地区分Shk符号检测电路3612的保持输出。这一数字区分的结果作为一个输入信号加在二输入端“与”门3616上,它接收rflag信号作为其另一个输入信号并在其输出端口上生成ZC信号,除非在Shk的符号位中发生改变,“异或”门3615的两个输入将都是“1”或者“0”,导致该门的响应为“0”,结果,“与”门3616的响应ZC将是“0”。当Shk的符号位中发生变化时,“异或”门3615的一个输入信号为“0”而另一个为“1”,导致该门的响应为“1”,结果,“与”门3615的响应ZC将为“1”,指示过零的发生。

    如前面所说明的,ZC为“1”复位定时器360,控制多路复用器362向定时延时线363的输入端口提供ZCT。经过在定时延时线363中延时一个字以后,timer信号检测电路365检测ZCT的符号位。响应timer信号检测电路365的输出信号为“1”,“与”门369生成的rflag信号成为“0”。当rflag信号为“0”时,多路复用器3613被控制为将生成过零的符号状态从定时延时线的输出端口重复循环回到其输入端口直到定时器向下计数到零。当rflag信号为“0”时,任何导致Shk符号检测器电路3612改变其输出状态的噪声脉冲不被多路复用器3613接受到这一重复循环中。同时,rflag信号为“0”导致ZC信号为“0”,不论在重复循环的符号位与当前被Shk符号检测器电路3612检测到的符号位之间的任何不同。

    图11更详细地示出三角形系数发生器37的构造。位串行计数器370循环地将存储在位串行寄存器194中的一个值从算术“1”向上计数到ns,并使之可被三角形系数发生器37所利用,如图9所示。在图11中示出ns输入信号是放置在位串行寄存器194中循环的32位中的16个最高位中的。位串行计数器370在整个32位范围内的16个最高位子范围内为处理器30中的位串行信号进行计数,并主要地包括一个连接成用于位串行2-15的累加器的位串行加法器371。计数器371的计数率是由cordic-start脉冲到“1”建立的,在“与”门372是将该“1”与位串行2-15进行“与”运算加法器371提供一个被加数输入信号。加法器371提供一个被加数输入信号。加法器371的和输出信号在定时延时线373中延时一个串行字的时间间隔,并且延时的和信号经由“与”门374有选择地作为一个加数输入信号加到位串行加法器371上。来自定时延时线373的位串行延时和信号与读自位串行寄存器194的位串行值ns进行比较。这一比较是由位串行比较器375进行的,当计数到达ns时它输出一串“1”。“或”门376响应来自比较器375的一个“1”或者作为reset信号提供的一个“1”在其输出端口上生成一个“1”。“或”门376的输出上的“1”在定时延时线377中被延时了两个位串字的时间间隔,在一个二输入端“与”门378中与下一个cordic-start脉冲进行“与”运算。来自“与”门378的正常为“0”的输出信号中的结果的“1”在逻辑反相器379中反相使加在“与”门374上常为“1”的逻辑信号成为“0”,以中断加法器371的累加并向加法器371提供算术0作为加数输入信号。同时,cordic-start脉冲启动“与”门372向加法器371提供2-15并从而将其重置为位串行2-15值,与ns相比它被计算为算术1。

    图11的三角形系数发生器37包括另一个计数器3710,它是包含三个极联的计数器级的位串行计数器。三级中的第一级生成一个state-0输出信号,对应于计数器370到达ns计数,它在“0”与“1”逻辑状态之间变化。三级中的第二级生成一个state-1输出信号,对应于state-0信号从“1”到“0”的变化,它在“0”与“1”逻辑状态之间变化。三级中的第三级生成一个state-2输出信号,对应于state-1信号从“1”到“0”的变化,它在“0”与“1”逻辑状态之间变化。作为位串行计数器370的复位信号的从“与”门378提供的“1”串是作为二输入端“与”门3724的一个输入的,该“与”门接收位串行2-31作为其另一个输入信号。“与”门对此作出响应生成一个只有一个时钟周期长的复位信号,这是硅编译器程序安排为相对于所有相关电路延时负一位时间间隔的,如伪延时元件3725所指示的,当然,伪延时元件3725中的计数器3710的复位脉冲的负延时不能实际存在,但是硅编译器程序通过在与所示的伪时元件3725的电路通路并联的第一条电路通路中介入一个单位延时定时锁存器来伪造这一负延时,这是通过与cordic-start脉冲的前沿同步一个变成“1”的update-wb信号来完成的。相对时间上提前的一个时钟周期长复位脉冲作用在计数器3710上复位其三个计数器级中的第一个,使每一个信号state-0、state-1与state-2都成为零值。计数器370的ctr计数输出以及计数器3710的信号state-0、state-1与state-2的相对定时示出在图12中。

    如图12所示,来自多路复用器3711的βwb信号是一个2ns个样本宽的对称三角形滤波核,如图11所示,在state-O为“0”的计数周期中,state-0信号控制多路复用器3711选择ctr以形成其输出信号βwb的上升部分。state-0为“1”的计数周期中,控制多路复用器3711选择来自位串行减法器3712的差输出以形成其输出信号βwb的下降部分。减法器3712接收ns作为被减数输入信号,接收ctr作为减数输入信号,并生成ns-ctr作为减数输入信号,并生成ns-ctr差输出信号。

    如图12所示,多路复用器3712提供的βnb信号是8ns个样本宽对称三角形滤波核。如图11所示,在state-2为“0”的计数周期中,state-2信号控制多路复用器3713选择其输出信号βnb的上升部分,这是由位串行加法器3714的和输出信号提供的。在state-2为“1”的计数周期中,state-2信号控制多路复用器3713选择其输出信号βnb的下降部分,这是由位串行减法器3715的差输出信号提供的。值ns由移位器3716将其所有的位向较高位移位而乘以2,以生成一个“与”门3720的一个输入信号;来自移位器3716的结果2ns由移位器3717将所有的位向较高位移一位而乘以2,以生成减法器3715的4ns的被减数。位串行加法器3714的输出信号被减法器3715用作其减数输入信号。加法器3714在三角形系数发生器被启动以后的4个连续的state-2为“0”的ctr斜坡中生成长达4ns的一个斜坡,它被多路复用器3713选择作为其输出信号βnb的上升部分。在下四个连续的state-2为“1”的ctr钭坡中,加法器3714再次生成一个长达4ns的斜坡,在减法器3715中从4ns减去该斜坡以生成一个互补的斜坡;多路复用器3713选择这一补的斜坡作为其输出信号β的下降部分。

    在生成作为其和输出信号的长达4ns的每个斜坡中,加法器3714接收计数器输出ctr作为其被加数输入与来自另一个位串行加法器3718的和输出作为其加数输入。加法器3718接收来自“与”门3719及“与”门3720的输出信号作为其加数与被加数输入信号。在加法器3714输出的斜坡开始时,“0”值的state-0与state-1信号作用在“与”门3719与3720上控制它们,而加法器3718提供算术0的加数与被加数输入信号。加法器3718求和这两个算术0生成一个为算术0的和输出信号,提供给加法器3714作为它的加数输入信号。加法器3714的和输出因而等于其ctr被加数输入信号。

    来自计数器370的ctr输出的下一个周期中,作为“与”门3719的一个输入信号的“1”值state-0信号控制它再生作为其另一个输入信号接收的ns信号,供加法器3718作为加数信号使用。作用在“与”门3720上的“0”值state-1信号它向加法器3718提供算术0的被加数输入信号,从而加法器3718的和输出信号相当于ns。加法器3714接收ctr信号作为其加数与被加数,所以其和输出信号为ns+Ctr。

    在计数器370的ctr输出的下一个周期中,作用在“与”门3719上的“0”值state-0信号控制它向加法器3718提供算术0加数输入信号。加在“与”门3720上作为一个输入信号的“1”值state-1信号控制它再生作为其另一个输入信号接收的2ns信号,供加法器3718作为被加数信号使用。加法器3718的和输出信号因此相当于2ctr。加法器3714接收2ns信号作为加数及ctr信号作为被加数,从而其和输出信号为2ns+ctr。

    在计数器370的ctr输出的下一个周期中,作为一个输入信号加到“与”门3719上的“1”值state-0信号控制它在其输出端口上再生作为其另一个输入信号接收的ns信号,供加法器3718作为加数信号使用。作为一个输入信号加到“与”门3720上的“1”值state-1信号控制它再生作为其另一个输入信号接收的2ns信号,供加法器3718作为被加数信号使用。加法器3718的和输出信号因此相当于3ns。加法器3714接收3ns信号作为加数及ctr信号作为被加数,因此其和输出信号为3ns+ctr

    “与”门3721对计数器370的最终计数作出响应在称作update-wb的常为“0”的信号中生成一个“1”脉冲,该最终计数出现在state-0信号为“1”时,这一信号(update-wb)宣布在乘-加处理器30中一个相对的宽带(即,相对的窄核)的低通滤波序列的结束。由于cordic-start每次出现时ctr被增量,update-wb信号为“1”的持续时间等于一个乘-加处理器30程序周期,即64位串行字,的持续时间。“与”门3722在其一个输入端口上接收update-wb。每4次update-wb信号脉冲到“1”,“与”门3723对state-1与state-2信号同时都为“1”作出响应在“与”门3722的另一个输入端口上提供一个“1”。“与”门3722对此作出响应在称作update-nb的常为“0”的信号中生成一个“1”脉冲,它宣告在乘-加处理器30中的一个相对的窄带(即,相对的宽核)低通滤波序列的结束。相对的窄带低通滤波序列是乘-加处理在计算fa时使用的;处理器30使用相对的宽带低通滤波序列来计算其它信号。

    图13更详细地示出CORDIC处理器40。处理器40不但能够以一个迭代CORDIC过程时同计算yin/xin的反正切与magnititude(xin,yin)函数,并且还能够使用CORDIC计算中所用的相同数字硬件的某些部分替代地执行非恢复的除法或平方根计算。CORIC处理器40包括三个位串行累加器,各可选择地具有增量或减量累计能力。三个位串行累加器中的第一个累加xout信号并包含部件404、413-415、429-431、409与410。这些位串行累加器中的第二个累加zout信号并包含部分405、432-435、411与412。这些位串行累加器中的第三个累加yout信号并包含部件403、422、424-426、407与408。

    当分解成互相垂直的两个分量xout与yout的一个矢量遭受一系列连续旋转以减小yout分量使其最接近地逼近矢量的模时,xout信号是处理器40在CORDIC计算中magnitiude(xin,yin)函数的输出信号。用于累加xout信号的位串行累加器不常用于执行求平方根;并且,在执行除法时,这一位串行累加器是作为一个用于xin信号的幅值的串行存储器,而不是增量或减量xout。

    累加zout信号的位串行累加器在CORDIC计算中从累加RAM电路38提供的反正切基数来生成yin/xinr的反正切。这些反正切基数具有二进制值。因此累加要求整个数字字的加法或减法运算。以位串行算术执行非恢复除法与求平方根过程时(其中一个数字字的接连的位是向高位进行的)要求在整个数字字的基础上累加它们的部分商与部分平方根结果,这是与在使用简单的移位寄存器在接连的位的基础上进行的对这些结果的累加相反的,当这些计算是以并行算术或位串行算术而其中一个数字字的接连的位是向低位进行的。在CORDIC计算中用于累加yon/xin的反正切的累加Zout信号的位串行累加器同时也用于累加处理器40以位串行算术执行的非恢复除法与求平方根过程的结果。这使得用于执行CORDIC、除法与求平方根计算的数字硬件更为经济。Zout信号是CORDIC处理器40除了magnitiude(xin,yin)以外的所有函数的输出信号。

    在处理器40执行的所有迭代过程中,累加yout信号的位串行累加器有选择地增量或减量yout信号将其值引导到一个规定的值,对于CORDIC与非恢复除法计算过程此值为算术0。为了避免在yout的值系统地下降的计算中动态范围的损失,yout的位串行累加器是这样的一种累加器,它在每一个接连的计算步骤中向高位方向移一位。yout的定标是通过相对于该算法通常要求的数的所有相关的数的补偿性定标来提供的。在计算yin/xin时,X保持不变而不是每一次迭代以1/2定标。在计算yin的平方根时,近似解的值每次迭代时是以1/2定标而不是以1/4定标的。在执行Cordic旋转时,y是使用不缩小的x来改变,而x则在迭代步骤i中使用以2-2i缩小的Y来改变,而不是在改变另一个前x与y各缩小2-i。后一方法是在传统实现CORDIC算法时使用的。在所有情况中,zout的累加不受y与x的缩小的影响。

    信号div-sw是一个逻辑信号,除了处理器40是在执行非恢复除法过程以外它都为“0”而信号sqrt-sw是一个逻辑信号,除了处理器40是在执行非恢复求平方根以外它都为“0”。信号div-sw与sqrt-sw是作为CORDIC处理器40的指令中的对应的单位(single-bit)字段提供的,并控制用于改变通过处理器40的信号路由的多路复用器,从而有选择地实现三种不同计算中的一种。信号ctr5是一个逻辑信号,只在64周期CORDIC计算的奇数周期中它是高电平的。当ctr5为“0”时,CORDIC程序计数器108(图2)的5位计数输出定义用于CORDIC处理器40的32条CORDIC指令之一在PROM9中的地址。当ctr5为“1”时,计数器108的计数输出在指令PROM9中寻址用于CORDIC处理器的一个CORDIC系数。当ctr5为“0”时访问的每一条CORDIC指令保持到ctr5再度为“1”,反映这样的事实,即处理器40的每一个计算周期需要两个字的时间间隔。

    在cordic-start信号为“1”的时间中,多路复用器403选择其输出信号y为等于来自图16的多路复用器402作为其第一输入信号提供的yin信号;多路复用器404选择其输出信号x为等于来自图16的多路复用器401作为其第一输入信号提供的xin信号;并且多路复用器405选择其输出信号Z为等于作为其第一输入信号提供的算术0。作为一个输入信号加在“与”门406上的ctr5信号为低电平,控制“与”门406的输出信号为低电平。“与”门406的低电平输出控制多路复用器407选择其输出信号等于来自多路复用器403的作为一个输入信号接收的信号y,该输出信号是提供给一个字长定时延时线408的。ctr5信号为低电平控制多路复用器409选择其输出信号等于来自多路复用器404作为一个输入信号接收的信号X,该输出信号是提供给一个字长定时延时线410的。ctr5信号为低电平同时控制多路复用器411选择其输出信号等于来自多路复用器405作为一个输入信号接收的信号Z,该输出信号是提供给一个字长定时延时线412的。在cordic-start信号为高电平的时间之后,在CORDIC处理器40确定位串行yout、xout与zout信号的接连的位时,多路复用器403选择其输出信号等于从定时延时线408的输出端口作为其第二输入信号反馈来的yout信号;多路复用器404选择其输出信号等于从定时延时线410的输出端口作为其第二输入信号反馈的来自CORDIC处理器40的xout信号;并且多路复用器405选择其输出信号等于从定时延时线412的输出端口作为其第二输入信号反馈的zout信号。只存在作为“与”门406的一个输入信号的ctr5信号为高电平时计算才向前进行,所以多路复用器407中断在通过元件408、403与407的循环中的位串行锁存操作;多路复用器409中断在通过元件410、404与409的循环中的位串行锁存操作;并且多路复用器411中断在通过元件412、405与411的循环中的位串行锁存操作。

    计算算法需要一个正值的除数|X|与被除数yin一起使用。当ctr5为“0”时在通过元件410,404与409的循环的位串行锁存操作中,采样与保持电路413采样多路复用器404的输出信号X的符号位并保持它一个字的持续时间。当被保持的符号位为“0”时,它控制多路复用器414选择其X输入信号的复制品作为其输出信号,而当被保持的符号位为“1”时,选择其-X输入信号的复制品。即当在计算中ctr5为“1”时,多路复用器414的输出信号为|X|。多路复用器414的-X输入信号中从位串行减法器415作为算术0与多路复用器404的输出信号X之间的差得到的。

    通常,在CORDIC计算中,具有正交坐标xout与yout的矢量遭受逐步的旋转不断地向零减小yout的模并向整个矢量的模增加xout的模。在接连的旋转步骤中的各旋转角是逐渐地减小的,并且被累加以更精确地确定将yout减小到0的旋转角zout。在CORDIC计算的每一步中,将yout的前一个值与算术0相比以确定其符号,从而确定增加还是减小xout的前一个值的一半将作为一个产生一个比yout的前一个值的模为小的当前的yout值的所希望的结果。提供所希望的结果的矢量和被生成作为更新的yout。作为更新xout生成一个第二矢量和,如果在生成第一矢量和中yout的前一个值是增加了xout的前一个值的一半则将xout的前一个值减少yout的前一个值的一半,而如果在生成第一矢量和中yout的前一值减少了xout的前值的一半,则将xout的前一值增加yout前一值的一半。yout的前一值是加还是减少了xout的前一值的一半的确定同时确定了该旋转步骤减少还是增加了旋转角zout。

    如在处理器40中所执行的,第一矢量和的生成是以将yout的前一值增加或减小两次xout的前一值来完成的。第二矢量和的生成是在计算的第二步中以增加或减小xout的前一值2-2yout,在计算的第二步中2-4yout,在计算的第三步中2-6yout等等来完成的。对CORDIC算法的这些修正反映了这样的事实,在每一接连的计算中,yout的位串行累加器是具有高位将yout移一位这样的类型的,这是为了在计算中当yout系统地减小其值时避免损失动态范围。

    在CORDIC计算中,控制位div-sw为“0”,连续地控制多路复用器416选择接连的“1”作为“与”门406的另一个输入信号。而“与”门406的另一个输入则为ctr5,这就使得“与”门406的输出信号复制其ctr5输入信号。控制位div-sw为“0”值也控制多路复用器417选择|X|作为其输出信号。

    在CORDIC计算中控制位sqrt-sw为“0”以导致多路复用器,418选择算术0作为其输出信号。多路复用器418的输出信号便是yout在迭代计算的各步中接连地被修正以向其靠近的值。多路复用器418选择的算术0输出信号用来与多路复用器403的y输出信号进行比较以确定y的符号来指示y的修正应在什么方向上进行,比较是由数字比较器419进行的,而符号位则存储在锁存器420中一个字的时间间隔。当y大于等于0时,比较器419生成一个“1”输出信号,否则生成一个“0”输出信号。锁存器420的输出信号是“1”还是“0”是指示在生成具有减小的模的yout时,yout的前一个值需要增加还是减小,而在生成一个增加的模的更新的xout时,xout的前一值需要减小还是增加,以及来自RAM38的反正切基数是减小还是增加累计的旋转角zout。

    控制位sqrt-sw为0同时控制多路复用器421将以前由多路复用器417选择的|X|信号作用在位串行加法器422上作为其被加数输入信号。控制位sqrt-sw为“0”值同时控制多路复用器423将以前选择的|X|信号加在位串行减法器424上作为其减数输入信号。加法器422的加数输入信号及减法器424的被减数输入信号都是多路复用器403的y输出信号。

    在后文中,下标(i-1)、i、(i+1)表示处理器40中的计算步骤中的第(i-1)次,i次与(i+1)次接连的迭代。

    多路复用器425在yi为负时选择加法器422的和输出作为yi与|X|的矢量和,而在yi为正时选择减法器424的差输出作为增量或减量。多路复用器425的输出信号由左移定时锁存器426乘以2,并且这一加倍的结果信号作为一个第二输入信号提供给多路复用器407作为迭代值y(i+1)。

    多路复用器403的yi信号在一个定标器427中以一个因数Si=2-21定标,并在定时延时线428中延时一个字持续时间,然后用于生成Xi与2-2iyi的矢量和。定时延时线428的输出信号作为被加数输入信号加在位串行加法器429上,并作为减数输入信号加到位串行减法器430上。加法器429的加数输入信号以及减法器430的被减数输入信号都是多路复用器414的|X|输出信号。多路复用器431对yi为0或正作出响应,选择加法器429的和输出到多路复用器409,作为其第二个输入信号,并对yi为负作出响应,选择减法器430的差输出到多路复用器409,作为其第二个输入信号。响应ctr5信号为高电平,多路复用器409的第二个输入信号在其输出信号中被复制。

    多路复用器405的Z输出信号作为被加数输入信号作用在位串行加法器432上并作为被减数输入信号作用到位串行减法器433上。从只读存储器38中顺序地读出的反正切基数系数被加法器432作为加数输入信号使用。昆外,当sqrt-sw控制位为“0”时(如在CORDIC计算中)多路复用器434将来自ROM38的fandata信号选送到减法器433作为其减数。多路复用器435响应yi大于等于0将加法器432的和输出选送到多路复用器411作为其第二输入信号,并响应yi为负将减法器433的差输出选送到多路复用器411作为其第二输入信号。响应ctr5信号为高电平,多路复用器411在其输出信号中复制其第二输入信号。

    在根据非恢复除法过程计算yin/xin中,处理器40作为分数计算操作,以xin与yin的最高位作为在2的补码算术中的符号位,后面跟随着二进制小数点。在计算yin/xin中,div-sw信号为“1”。这控制多路复用器416连续地选择饱和算术电路440的输出信号作为其输出信号,控制多路复器417在其输出信号中复制|X|/2信号,并控制定标器427的输出信号连续地为“0”假定yin的量比xin为小,饱和算术电路440生成一串“1”使得非恢复除法过程能够向前进行。如下面将结合图15详细说明的,div-sw信号为“1”同时控制反正切基数ROM电路38在第一对CORDIC程序指令时提供位串行2-1,在接连的第二对CORDIC程序指令时位串行2-2,在第三对CORDIC程序指令时位串行2-3等等。

    定标器427的输出信号连续为“0”导致接收产生的算术0作为加数输入信号的加法器429的和输出等于其|X|被加数输入信号,这是多路复用器414提供的。它还导致接收产生的算术0作为减数输入信号的减法器430的差输出等于其|X|被减数输入信号,这是多路复用器414提供的。相应地,正在计算yin/xin时,多路复用器431的输出信号为|X|,与多路复用器417的输出信号相同。当ctr5为“1”时,多路复用器409选择这一值在通过元件410、404与409的循环中循环以后,在整个计算周期中,即直到下一次cordic-start为高电平,多路复用器404的输出信号将始终为|X|。

    多路复用器417对此作出响应将多路复用器404保持的|X|输出信号除以2。该|X|/2信号在非恢复除法过程中作为近似除数在加法器422中加在y在或者在减法器424中从y中减法。多路复用器417选择的x/2信号示出为由位移位器436提供的,如在提供给硅编译器的电路图中所示。实际上,向较低位的移位中由硅编译器在所有并联路径中引入向较高位移一位来提供的。

    在计算yin/xin时,控制位sqrt-sw为“0”导致多路复用器434将tandata=2-i作为减数输入信号选送到减法器433。每次ctr5信号为“1”时,来时多路复用器405的值Z,或者在加法器432中被增大了tandata的2-i值或者在减法器433中被减少了tandata的2-i值,多路复用器435选择此值以提供经由定时延时线412反馈给多路复用器405的Z的更新值,并在下一次ctr5信号为“1”时使用。多路复用器435所作选择(以及多路复用器425与431所作的)是根据在接连的步中的前一步中将被除数y或更新后的被除数与0的比较计算出的y的符号作出的。作为减小修正后的被除数的模的一种尝试。如果y(i-1)(y的前一个值)为0或正,yi(y的当前值)的模被减少|X|/2,而来自多路复用器405的在加法器432中被增加了tandata=2-i的Z值被多路复用器435选择为Z的更新值来提供。如果y(i-1)为负,yi的模(y的当前值)以加上|X|/2来减小,而来自多路复用器405的在减法器433中被减小了tandata=2-i的Z值则被多路复用器435选择来提供Z的更新值。

    控制位sqrt-sw为“0”值同时控制多路复用器418选择算术0作为其输出信号。多路复用器418选择的算术0输出信号与多路复用器403的输出信号y进行比较以确定y的符号位,比较是由数字比较器419进行的而符号位则在锁存器420中存储一个字的时间间隔。控制位sqrt-sw为“0”值控制多路复用器421将多路复用器417以前所选择的|X|/2信号加到加法器422上作为其被加数输入信号。控制位sqrt-sw为“0”值同时控制多路复用器423将该以前选择的|X|/2信号加到减法器424上作为其减数输入信号。加法器422的加数输入信号与减法器424的被减数输入信号都是多路复用器403的y输出信号。如果y的前一个值为负,多路复用器选择加法器422的和输出。如果y的前一个值为正则选择减法器424的差输出。为了在除法过程中保持动态范围,在近似除法计算步骤之间,多路复用器425选择的y-|X|或y+|X|值向较高位移一位而不移位近似除数|X|,而不是遵照代替的过程将近似除数|X|向较低位移一位而不移位多路复用器425选择的值y-|X|或y+|X|。从而,多路复用器425的输出信号被左移位器426乘以2,以增加该输出信号的有效位,而得到的加倍信号作为第二输入信号提供给多路复用器407。

    饱和算术电路440是用于保持商zout的模不大于1。为了保持商zout的模在范围之内,|y|必须小于|X|。当|y|充分小使除法能够满意地进行时,电路440输出一个“1”。每当y超过减法器415的xneg差输出信号时,电路440中的位串行比较器441生成一个“1”输出信号,指示一个负值的y并不在范围内太大。每当y小于X时,电路440中的位串行比较路442生成一个“1”作为其输出信号,指示正值的y并不在其范围内太大。电路440中的“与”门443响应这两种y在范围内的指示生成一串“1”作为对定时延时线444的输入信号提供,并在作为饱和算术电路440的输出信号出现以前延时一个字,如果正的y超出范围,比较器419在y的符号位“0”过去以后连续地输出“1”,而zout的累计将取得其最大的正值,一串“1”跟随着一个“0”符号位。如果负的y超出范围,比较器419在y的符号位“1”过去以后将连续地输出“0”,并且zout的累计将取得其最大负值,一串“0”跟随着符号位“1”。

    计算(yin)(1/2)的非恢复求平方根过程在许多方面与非恢复除法过程相似。然后,当i=1时,yi是被开方数,否则为剩余的被开方数,而不是当i=1为被除数,否则为剩作的被除数。非恢复除法过程中的近似除数变成了近似平方根来除该剩余被开方数以生成一个结果来与该近似试验平方根本身进行比较,以确定要不要减小被开方数或剩余被开方数。由于去除剩余被开平方数的近似平方根是从迄今得到的zout平方根中导出的,没有必要在单独的xout寄存器中记录近似试验平方根本身。在第一计算步中,近似平方根不变地为4分之1或二进制的0.01。

    在计算(yin)(1/2),控制位div-sw为“0”,控制多路复用器416连续地选择接连的“1”作为“与”门406的另一个输入信号,“与”门406的一个输入信号为ctr5,使得“与”门406的输出信号复制其ctr5输入信号。

    在计算(yin)(1/2)中,控制位sqrt-sw为“1”。如下面结合图15要进一步详细说明的,这控制反正切其数ROM电路38在第一对CORDIC程序指令时作为tandata信号提供位串行2-1,在第二接连的CORDIC程序指令对时提供位串行2-2,在第三接连的CORDIC程序指令对时位串行2-3,等等。sqrt-sw信号为“1”同时控制多路复用器421选送算术0到加法器422作为其加数输入信号,从而其和输出信号等于其被加数输入信号y。因此,剩余被开方数只能被减小。控制位sqrt-sw为“1”同时控制多路复用器423选送一个近似平方根到减法器424作为其减数输入信号,该近似平方根为位串行加法器437的和输出信号,该加法器437接收来自多路复用器405的Z输出信号作为其被加数输入信号并接收tandata/2作为其加数输入信号。tandata/2信号是已知由一位移位器438提供给加法器437的,如在提供给硅编译器的电路图中所示,但实际上,向较低位的移位是由硅编译器通过在所存并联路径中引入向较高位的一位位移来提供的。控制位sqrt-sw为“1”同时控制多路复用器434选送算术0给减法器433作为其减数输入信号。从而,当这一情况出现时,平方根的累计永远是增加的。此外,sqrt-sw信号为“1”控制多路复用器418选择近似平方根,被开方数或剩余被开方数yi便是相对于它进行比较以确定y(i+1)是否要被减量的。

    图14更详细地示出定标器427的操作。信号ctr5、ctr6、ctr7、ctr8、ctr9与ctr10依次为计算器103(图2)的计数输出的6个最高位中按从低到高排列的位。“或”门4270在计算yin/xin中对div-sw控制位为“1”作出响应使多路复用器4217选送算术0作为输入信号到定标器电路427的其余部分,使得其输出为算术0。“或”门4270同时对计数器103的ctr10输出在全计数中到达“1”作出响应,选送算术0作为定标器电路427的其余部分的输入信号,使其输出为算术0。

    除非“或”门4270的输出信号为“1”,定标器427对计数器103的ctr6、ctr7、ctr8与ctr9信号的16个接连的计数状态作出响应,将来自定标器427的位串行信号ys右移二倍在该计数中的位数,参照提供给定标器427的位串行信号y。

    图14中示出一个两位右移器4272及一个多路复用器4273用于对ctr6信号为1作出响应有选择地除以一个4的因子,一个4位右移器4274及一个多路复用器4275用于对ctr7信号为“1”作出响应有选择地除以一个因子16,一个8位右移器4276及一个多路复用器4277用于对ctr8信号为“1”作出响应有选择地除以一个因子256,一个16位右移器4278及一个多路复用器4279用于对ctr9信号为“1”作出响应有选择地除以一个因子65536。实际上,向较低位的位移是由硅编译器在所有并联信号路径中引入延时以将这些并联信号路径向较高位移位来提供的;这一在所有并联信号路径中使用左移位器的过程是必要的,因为在位串行格式中不能得到右移位器本身。

    图15更具体地示出反正切基数ROM电路38的细节。实际的ROM380可能做得更小,因为对于较小的正切函数,它几乎是与角的大小成线性比例的。从而,实际的ROM380只存储8个具有以2的负整数次幂下降的正切的最大角的反正切基数,这些反正切基数由于包含计数器103的ctr6、ctr7与ctr8输出的一个地址依次地编址的。所存储的反正切基数只有16位长,但是是以在它们后面跟随16个尾随“0”的方式通过ROM380中一个并行进/串行出输出寄存器读出的,并且定时延时线381延时该ROM380串行输出将16个尾随的“0”移位到出现在前导“0”上。只要在计数器103的前29个计数中(CORDIC计算的8个周期)作为输入信号加在二输入端“或”门382上的计数器103的ctr9与ctr10输出都为“0”,“或”门382的输出信号为“0”,控制多路复用器383从ROM380中选送反正切基数到另一个多路复用器384作为其一个输入信号。多路复用器384对“或”门385的输出信号为“0”作出响应在其自己的输出信号中复制多路复用器383的arctan输出信号。只要“或”门385作为其输入信号接收的sqrt-sw与div-sw信号都为“0”,即在计算yin/xin的反正切时,“或”门385的输出信号一直为“0”。

    在计算yin/xin的反正切中,在定时延时线386中延时了一个字的多路复用器384的tandata输出信号作为一个输入信号加到多路复用器387上。多路复用器387的另一个输入信号是它的一半大,并且是由一位移位器388从定时延时线386的输出信号生成的。当ctr5信号为“1”时ctr5控制信号控制多路复用器387的输出信号复制较大的输入信号,而当ctr5信号为“0”时,控制多路复用器387复制较小的输入信号。计数器103的前29个计数之后(CORDIC计算的8个周期),“或”门382的输出信号为“1”,控制多路复用器383在其自己的输出信号中复制多路复用器387的输出信号。因而,存储在ROM380中的最小反正切基数在每一个接连的偶数CORDIC计算周期中被减半一次,作为多路复用器384的tandata输出出现。

    在计算yin/xin或者yin的平方根时,“或”门385的输入信号之一将是一个“1”,控制多路复用器384在其tandata输出信号中复制多路复用器388的输出信号,而不是多路复用器383的arc-tan输出信号。当cordic-start信号为高电平时,在一条CORDIC指令的初始周期中,多路复用器388选择位串行2-1作为其输出信号,并且对应地tandata信号也是信串行2-1,此后,多路复用器388在其自己的输出信号中复制多路复用器387的输出信号,因此位串行2-1在每一条偶数CORDIC指令时被连续地减半,作为多路复用器384的tandata输出信号出现。

    在图16中,CORDIC处理器40接收多路复用器401选择的一个xin输入信号以及多路复用器402选择的一个yin输入信号。CORDIC处理器40并行地生成一个yout位串行输出信号以及一个zout位串行输出信号,这两个信号提供给二输入端多路复用器400的对应输入端口。多路复用器400选择的yout或zout位串行输出信号作为对应的输入信号反馈给多路复用器401与402,使得CORDIC处理器40能够进行连续的计算。在电力测量应用中,只有当CORDIC处理器40已经计算出ns或f时才将输出数据提供回乘-加处理器30。为了实现将ns与f提供回乘-加处理器30,多路复用器400的输出信号通过适当的连接线向寄存器组19中的寄存器192与194提供对应的输入信号。

    如前面参照图1所指出,通过CORDIC处理器40的处理是在时分多路复用基础上进行的,并提供了同时测量两个函数的能力。对每一个CORDIC指令周期的第一个字时间间隔中的高电平cordic-start及高电平的loadl-sw信号作出响应,“与”门68生成一个“1”输出信号,指示在位串行输出寄存器60中装入函数digout1的位串行指示。以各CORDIC指令周期中的第一个中的高电平cordic-start以及高电平的load2-sw信号作出响应,“与”门69生成一个“1”输出信号,指示在位串行输出寄存器62中装入函数digout1的位串行指示。

    各脉冲宽度调制器64与66访问一个共享的PDM计数器(未具体示出),它是一个包含在时钟发生器100中的位串行计数器,并计数时钟发生器100中的晶体振荡器的10兆赫振荡的模数(即,215),脉冲宽度调制器64包括一个对应的位串行比较器(未具体示出)用于将位串行格式的digout1与PDM计数器提供的位串行计数进行比较,借此生成其输出脉冲串。相似地,脉冲宽度调制器66包括一个对应的位串行比较器(未具体示出)用于将位串行格式的digout2与PDM计数器提供的位串行计数进行比较,借此生成其输出脉冲串。当digout1或digout2信号被确定为对应于PDM计数时,向PDM输出信号供给了两个附加的分辨率位,取决于digout1成digout2信号的第十一,第十二个最高位不是00而是01、10或11有选择地生成一个1/4、1/2、或3/4字宽的“1”值信号。这一“1”值的信号是用于扩展由位串行比较器应答所定义的脉冲宽的。

    图16示出了PDM发生器66,它是连接成用于提供其脉冲作为一个2输入端“异或”门70的一个第一输入信号,除在load1-sw与load2-sw信号都是高是平并且同时cordic-start脉冲也是高电平时,“异或”门70提供对应于来自PDM发生器66的脉冲的pdm2输入信号,在这些状态中,digout1与digout2是一样的,并且PDM发生器64与66的输出脉冲也是一样的。接受“与”门68与69的输出信号的多路复用器71接收两个“1”作为输入信号并对此作出响应提供一个“1”作为其输出信号。多路复用器71的输出信号作用在“异或”门70上作为其第二输入信号。“异或”门70提供的pdm2信号是来自PDM发生器66的脉冲的补码。PDM发生器64与66便是这样布置成为一个中心读数达松伐尔表提供推挽驱动。一个单位宽定时延时器72连接成在“与”门86的输出信号返回到“0”时锁存多路复用器71的输出信号状态。

    多路复用器400选择的yout或zout位串行输出信号是作为一个输入信号加到正规化器39上的。如前面在图1的说明中所指出的,正规化器电路39与CORDIC处理器40合作提供下述基本函数的计算:

    (e)[sign(oa2)]·(yin-L)/M。

    这一函数通过首先以常数L转换表的0点,然后以因子M向下定标被转换的读数。由于在电力测量中,这一函数永远是一串计算的最后一个,用于一串计算中的最后一个的yin信号是等同于该计算的最后第二个的yout多路复用器400的输出信号的。L与M为来自ROM9的CORDIC程序指令中的常数,它是被图2中的元件98及984-986所抽取并提供给正规化器39的。多路复用器390选择或者来自减法器391的差输出信号或者来减法器392的差输出信号,作为其输出信号应用多路复用器402。多路复用器400提供的yout信号在减法器391从L中减去,并且在减法器392中从该yout信号中减去L。M直接加到多路复用器401上作为其一个输入信号,供(CORDIC处理器40的一串看中的最后一个)用作被除数(yout-L)的一个xin除数,该被除数是由多路复用器402从正规化器39选送到处理器40的。

    oa2的极性sign(oa2)的极性是从存储在寄存器196中的oa2位串行的数据中由采样与保持电路394采样并保持oa2的位31确定的。被采样及保持的sign(oa2)是从电路394加到一个2输入端“与”门395上。“与”门395接收一个信号sq-sw作为其另一个输入信号,除了根据sign(oa2)为负而要求改变最终的CORDIC输出的极性以外,信号在所有的CORDIC计算中都为“0”。当信号sq-sw为“0”时,“与”门395的输出信号为“0”,而当信号sq-sw为“1”时,为[sign(oa2)],“异或”门396接收“与”门395的输出信号及一个n-sw信号作为输入信号并将其输出应答到多路复用器390以控制它在减法器391与减法器392的输出信号之间的选择。当希望交换digout1与pdm1输出信号的检测时,或者digout2与pdm2输出信号的检测时n-sw信号为高电平信号。如果n-sw信号是“1”,当“与”门395输出信号为“0”时“异或”门396控制多路复用器402选择来自减法器391的(L-yout)差信号作为其输出信号,而当“与”门395输出信号为“1”时,“异或”门396控制多路复用器402选择来自减法器392的(yout-L)差信号作为其输出信号。如果n-sw信号为“0”,“异或”门396在“与”门395输出信号为“0”时控制多路复用器402选择来自减法器392的(yout-L)差信号,而当“与”门395输出信号为“1”时控制多路复用器402选择来自减法器391的(L-yout)差信号。

    图17示出CORDIC处理器40的指令格式。这些指令有三个主字段;一个9位字段控制CORDIC处理器40中的参数与函数选择,一个7位字段用于装入与控制标志信号,以及一个16位字段用于CORDIC系数或RC-coef值。用于装入及控制标志信号的7位字段包括4个单位装入信号:f-sw、us-sw、对应于load1-sw的load1、以及对应于load2-sw的load2。用于装入及控制标志信号的7位字段还包括三个单位控制信号:图16中正规化器39使用的sq-sw与n-sw,以及对应于cordic-inc信号的inc,该cordic-inc信号是加到图12中的“与”门1010上以控制在CORDIC指令计数器108中计数的增量的。控制CORDIC处理器40中参数与函数选择的9位数字段有一个3位部分控制yin的选择,有另一个3位部分控制xin的选择,并还有一个3位部分控制处理器40所执行的函数。

    图18详细地画出代表的参数与函数编码。RC为图16中的多路复用信400提供的处理器40的前一次计算结果。RC-coef是一个当前CORDIC系数的值,而RC-coef-1是紧接在当前的CORDIC系数前面的CORDIC系数值。

    图19图示电力测量i-c5中的处理器30与40所执行的计算。每32位字执行一条从6通道十中抽-滤波器20顺序地时分多路传输进处理器30的乘-加处理器30的指令。在每执行CORDIC处理器40的指令的顺序的一条的时间中,执行64条乘-加处理器30的指令的一个完整周期。执行一条CORDIC处理器40的指令的时间等于σ-δ调制器21-26的超量采样时间间隔。

    一个初始过程是对十中抽-滤波器20提供的v1、i1,v2、i2、v3与i3的位串行数字表示的线性化以补偿在电流互感器11-16中的非线性。电流互感器11-16及用于它们的定标电阻器与电力测量i-c5一起安装在一块印刷电路板上,并且在制造中整个印刷电路板组件是作为一个单元来进行测试以确定与电流互感器11-16相关的非线性系数的,然后将它们写入包括在该组件中的ROM9中。乘-加处理器30使用这些非线性系数来执行对十中抽-滤波器20提供的v1、i1,v2、i2、v3与i3的位串行的数字表示的对应三次多项式校正,这些对应的校正之后跟随着对应的高通滤波过程以消除σ-δ调制器21-26中的编移误差产生的直流成份。

    现在参见图19A中图示的过程,在各LIN1、LIN3与LIN5步中,乘-加处理器30使用读自PROM9的线性化系数Ak与Bk以及前面计算出的增益系数Γvk对所有Vk样本计算Vk的对应校正值Vck,计算是按照下列等式进行的:

    Vck={[(Ak·Vk)+Bk]Vk′+Γvk}Vkk=1,2,3 (1)

    在各LIN2、LIN4与LIN6步中,乘-加处理器30使用读自PROM9的线性化系数Dk与Ek以及前面计算出的增益系数Γik对所有ik样本计算ik的对应校正值icj,计算是按照下列等式进行的:

    ick={[(Dk·ik)+Ek]ik+Γik}ikK=1,2,3 (2)

    在分别跟随各步骤LIN1、LIN3与LIN5的各步骤HPF1、HPF3与HPF5中,乘-加处理器30使用从PROM9读入的递归系数P对所有样本Vck的对应高通滤波器响应Vhk,计算是按照下列等式进行的,其中Z-1是一个32位位串行字的一个字延时运算符。

    Vhk=Vck-Z-1Vck+P·Z-1VhkK=1,2,3 (3)

    在分别跟随步骤LIN2、LIN4与LIN6的各步骤HPF2、HPF4与HPF6中,乘-加处理器30使用从PROM9读入递归系数Q计对ick的各高通滤波器响应ihk,计算是按照下述等式进行的:

    ihk=ick-z-1ick+Q·2-1ihkK=1,2,3 (4)

    如图19A所示,乘-加处理器30能够通过在乘法运算步骤MULT1中进行自乘来求Vh1高通滤波器响应的平方,然后将积提交给低通滤波步骤LPF1。如图19B所示,从低通滤波步骤LPF1得到的位串行信号是作为一个用于求平方根步骤SQRT1的输入信号提供给CORDIC处理器40的,该求平方根步骤SQRT1生成地个在干线1上的r-m-s电压的位串行指示。

    如图19A所示,乘-加处理器30能够通过在一个乘法运算步骤MULT2中进行自乘来对ih1高通滤波器响应进行平方运算然后将积提交给一个低通滤波步骤LPF2。如图19B所示,从低通滤波步骤LPF2得到的位串行信号是作为用于一个求平方根步骤SQRT2的输入信号提供给CORDIC处理器40的,该求平方根步骤SQRT2生成一个通过干线1的r-m-s电流的位串行指示。

    如图19A所示,乘-加处理器30能够通过在乘-法运算步骤MULT3中进行自乘对Vh2高通滤波响应进行平方运算然后将积提交给低通滤波步骤LPF3。如图19B所示,从低通滤波步骤LPF3得到的位串行信号是作为用于求平方根步骤SQRT3的输入信号提供给CORDIC处理器40的,该求平方根步骤SQRT3生成一个干线2上的r-m-s电压的位串行指示。

    如图19A所示,乘-加处理器30能够通过在乘法运算步骤MULT4中的自乘对ih2高通滤波器响应进行平方运算,然后将积提交给低通滤波步骤LPF4。如图19B所示,从低通滤波步骤LPF4得到的位串行信号是作为用于求平方根步骤SQRT4的输入信号提供给CORDIC处理器40的,该求平方根步骤SQRT4生成一个通过干线2的r-m-s电流的位串行指示。

    如图19A所示,乘-加处理器30能够通过在乘法运算步骤MULT5中自乘对Vh3高通滤波器响应进行平方运算,然后将积提交给低通滤波步骤LPF5。如图19B所示,从低通滤波步骤LPF5得到的位串行信号是作为用于求平方根步骤SQRT5的输入信号提供给CORDIC处理器40的,该求平方根步骤SQRT5生成一个在干线3上的r-m-s电压的位串行指示。

    如图19A所示,乘-加处理器30能够通过在乘法运算步骤MULT6中自乘对ih3高通滤波器响应进行平方运算然后将积提交给低通滤波步骤LPF6。如图19B所示从低通滤波步骤LPF6得到的位串行信号是作为用于求平方根步骤SQRT6的输入信号提供给CORDIC处理器40的,该求平方根步骤SQRT6生成一个通过干线3的r-m-s电流的位串行指示。

    在图19B中所示的一个SELECT步骤中,这些r-m-s电压与电流中的任何一个可以被选择作为i-c5的digout1输出信号出现;并且在另一个下一或同时的SELCT步骤中这些r-m-s电压与电流的任一个可被选择作为i-c5的digout2输出信号出现。乘-加处理器30中用于实现各相位的r-m-s电压与电流的计算所进行的图19A的处理在下述等式中进行描述,其中Vsk为“高通滤波的线性化相位K电压Vhk的平方”并且isk“高通滤波的线性化相位K电流ihk的平方”。

    Vsk=vhk·vhk

    isk=ihk·ihk

    如图19A所示,乘-加处理器30能够在移相滤波器步骤APF1、APF2与APF3中分别移相各高通滤波器响应vh1、vh2与vh390度以按照下述等式生成移相的高通滤波器响应Vp1、Vp2与Vp3。

    如图19A所示,乘-加处理器30能够在对应的内插(相移)滤波器步骤PSF1、PSF2与PSF3中分别相移各高通滤波器响应ih1、ih2与ih3一定的度数来分别补偿与电流互感器14、15与16的次级电压相比电流互感器11、12与13的次级电压中的相位差。内插滤波器步骤PSF1、PSF2与PSF3按照下述等式生成相移高通滤波器响应ip1、ip2与ip3。

    ipk=ihk+δk(Z-1ihk-ihk) K=1,2,3。 (8)

    这些计算使用程序数据RAM6暂时存储其计算结果,通常以vp1、vp2、vp3、ip1、ip2、ip3的序列进行的。

    如图19A所述,乘-加处理器30能够在乘法运算步骤MRLT7中将Vh1乘以ip1以计算第一相位有功功率并暂时存储这一结果,在乘法运算步骤MULT8中将Vh2乘以ip2以计算第二相位有功功率并暂时存储该结果,在乘法运算步骤MRLT9中将Vh3乘以ip3以计算第三相位有功功率,并根据下述等式,在加法步骤ADD1中将暂时存储的第一与第二相位实际功率分量加到第三相位有功功率分量上以生成一个位串行和信号Ps。

    Ps=(vh1·ip1)+(vh2·ip2)+(vh3·ih3) (9);

    乘-加处理器30然后能将该和信号Ps提交给低通滤波步骤LPF7以生成在干线1、2与3中流过的平均有功功率的指示。

    如图19A所示,乘-加处理器30能在乘法运算步骤MULT10中将Vp1乘以ip1以计算第一相位无功功率并暂时存储该结果,在乘法运算步骤MULT11中将Vp2乘以ip2以计算第二相位无功功率并暂时存储该结果,在乘法运算步骤MULT12中将Vp3乘以ip3以计算第三位无功功率,在加法步骤ADD2中将暂时存储的第一与第二相位无功功率分量加到第三相位无功功率分量上根据下式生成一个位串行和信号qs。

    qs=(vp1·ip1)+(Vp2·ip2)+(Vp3·ip3) (10);

    然后,乘-加处理器能将该和信号qs提交给低通滤波步骤LPF8以生成在干线1,2与3中流过的平均无功功率的指示。

    在图19B所示的SELECT步骤中,流经干线1、2与3的有功功率P与无功功率Q的指示可以被选择来作为i-c5的digout1与digout2输出信号出现。

    另外,如图19B所示,有功功率与无功功率的指示可被CORDIC处理器40在ACTAN步骤中用计算功率因数角(H),并在RMS步骤中计算它们的平方和平方根,从而计算干线1,2与3所经受的“外观”r-m-s伏特-安培VA。在图19B所示的另一个备选操作中。CORDIC处理器40在步骤P/VA中可以计算功率因数角(H)的余弦,带或不带无功功率Q的符号如在步骤sgn(Q)中以除去其符号位所确定的,并在步骤1-X是确定其正矢的补。

    某些校正系数是频率有关的。由于印刷电路板组件可用于50、60或400赫兹电压测量,一个基本过程为确定所测量的电力的频率。然而,这一基本过程是在较迟于上述与等式1-10相联系的步骤的乘-加处理器30的指令的串行执行中进行的,并且其结果存储在RAM6中供执行乘-加处理器30的指令的下一个周期使用。这通常是令人满意的,因为电力线的频率变化一般是非常慢的。

    在任何情况中,三次多项式线性化的校正与不校正并不影响频率确定,并且如图19A所示,过零检测器36执行ZCD步骤为高通滤波器响应ih1、ih2、ih3、vh1、vh2与vh3的任何选定的一个Shk生成过零指示。这些过零指示被乘-加处理器30提交给低通滤波步骤LPFO,如下式所描述的。

    fa=z-1fa+βwf·zcd(R,Shk) (11);

    如果Shk的频率小于一个规定的最大值1/2R,其中R为读自PROM9的两次过零之间的规定的最小时间,则过零检测器36的zcd(R,Shk)响应只是Shk的函数。R与Shk分别加到过零检测器36的ZCT与Shk输入端。如果Shk的频率超过1/2R,过零检测器36将生成对应于小于1/2R的信号频率的最高频率分谐波。累计的滤波器响应fa除以4ns,然后将商除以4ns,借此按照下式计算过零指示的频率f。

    f=fa/4ns/4ns(12);

    值f写入寄存器192中供以后乘-加处理器以后使用。

    寄存器192中的值f被更新以后,乘-加处理器30按照下式计算频率有关的增益系数Γvk,这是随在将f从寄存器192读入乘-加处理器30并从PROM9将频率无关的常数C0k与C1k读入乘-加处理器30后进行的。

    Γvk=c0k+f·c1k(13);

    Γv1、Γv2与Γv3的计算结果以后分别结合从电流互感器14、15与16来的样本的线性化,分别用在v1、v2与v3的所有样本上。

    当寄存器192中的值f被更新以后,非线性的频率有关数Γik由乘-加处理器30按照下式计算,这是随在从寄存器192将f读到乘-加处理器30并从PROM9将频率无关的常数F0k与F1k读入乘-加处理器30后进行的。

    Γik=F0k+f·F1k(14);

    Γi1、Γi2与Γi3的计算结果以后分别结合来自电流互感器11、12与13的样本的增益校正分别用在所有的i1、i2、与i3样本上。

    寄存器192中的值f被更新以后,乘-加处理器30按照下式计算步骤有关的内插系数δk,这是随在从寄存器192中将f读入乘-加处理器30并从PROM9中将频率无关的常数Hk与Gk读入乘-加处理器30后进行的。

    δk=Hk+f·Gk(15);

    δ1、δ2与δ3的计算结果以后用于相对于来源于电流互感器14-16的电压样本校正来源于电流互感器11-13的电流样本的相位。

    寄存器192是的值f被更新以后,乘-加处理器30按照下式计算频率有关的移相滤波器系数α,这是随在从寄存器192中将f读入乘-加处理器30后进行的。

    α=J+f·K    (16);

    α的计算结果以后用于由乘-加处理器30实现的移相滤波中相移“正弦”电压90度,J与K被计算为对50赫兹与60赫兹信号提供一个精确的90度相移。

    寄存器192中的值f被更新以后,乘-加处理器30执行一条指令,其中将读自寄存器192的值f与读自PROM9的值T相乘并将所得结果中的二进制小数部分以称为“floor(地板)”的向下舍成整数的运算中丢弃,以确定由下式表示的一个参数np。

    np=floor(T·f) (17);

    值T为update-nd脉冲间容许的最大时间间隔的一半,因此对应于更新的i-5输出信号之间的最大时间的一半,而np则为能够容纳在这一时间间隔中的完整信号周期的最大数目。值np被写入寄存器193中,供CORDIC处理器40使用。随后,CORDIC处理器40计算三角形系数发生器37中的锯齿波发生器的每一个锯齿波中的样本数ns,计算是按照下式进行的。

    ns-floor(nq/f) (18);

    值ns被写入寄存器194中,供乘-加处理器30在已在进行的低通滤波过程需要时使用。

    低通滤波步骤LPF1至LPF8是使用乘-加处理器30的扩展精度方式及三角形系数发生器37所生成的窄带sinc2FIR滤波器系数执行的。因此,每一个滤波操作需要两条指令在第一条指令时,XP标志被设置成“1”,βnb被选择到coef-in,被滤波的信号选择到data-in,相关累加器的最低位字从RAM6选择到acc-in,并将结果写回RAM6以更新累加器的最低位字。在第二条指令时,XP标志被复位成“0”,再次选择βnb到coef-in,并再次将被滤波的信号选择到data-in,从RAM6选择相关累加器的最高位字,并且如前面已描述过那样将结果加在来自第一条指令的进位上并回到RAM6中以更新累加器的最高位字。下面,用函数XP()表示这两条指令序列来说明LPF1到LPF8的计算。

    vak=xp(z-1vak+βwb·vsk) (19);

    iak=xp(Z-1iak+βnb·isk) (20);

    Pa=xp(z-1pa+βnb·ps) (21);

    qa=xp(z-1qa+βnb·qs) (22);

    实际上,图19B中示出的SELECT操作是通过指定在MAP(乘-加处理器)与CORDIC程序中仅仅两个所期望的函数的计算来实现的。形成该两个所期望的输出所不需要计算并不进行,而MAP30被设计为只包含函数中要求最高的组合的够用的存储器与计算速度:有功三相功率P与无功三相功率Q。

    图20更详细地示出模似参考发生器18。电力表i-c5接收分别为0伏与+5伏的Vss与VDD电源电压。电位分压器180包括“二极管”181、182、183与184的串联串,这些“二极管”包含具有相同几何形状与沟道形式的对应的自编置增强型金属氧化物半导体(MOS)场效应晶体管。MOS场效应晶体管构成的运算放大器185作为电压输出器连接,用于从低电源阻抗提供参考电压Vref=vss+(1/4)(vDD-vss)。另一个MOS场效应晶体管构成的运算放大器186作为一个电压输出器连接,用于从低电源阻抗向电流反应互感器11、12与13的次级绕组以及电压反应互感器14、15与16的次级绕组提供电压AGND=Vss+(1/2)(VDD-Vss)。σ-δ调制器21-26在它们各自的反馈连线中所包含的数-模转换器中使用该Vref与AGND信号。σ-δ调制器21-26最好是美国专利4,896,156中描述的微分输入型的,它使用Vref与AGND作为对一种数字输出位状态的推挽模拟反馈信号以及AGND与Vref(次序相反)作为对另一种数字输出位状态的推挽模拟反馈信号。

    在图1中,6通道十中抽一滤波器20提供的数字信号的大小与(VDD-Vss)的增加成反比变化,这是由于σ-δ调制器21-26的作用。脉冲宽度调制器43与44的幅值与(VDD-Vss)成正比变化,如果它们是接收Vss与VDD作为电源电压的,这些效应结合在一起使得相对于在干线1、2与3上出现的电压或电流,来自pdm1与pdm2输出电压的达松伐尔传动机构功率的表读数不受微小的(VDD-VSS)变化的影响,此外,在测量两个电压之比、两个电流之比、功率因数或频率时,digout1与digout2信号具有不受(VDD-Vss)的变化的影响的大小。相应地,即使是在对电力表i-c5的电源电压(VDD-Vss)的调节相对地粗劣的情况下,也能得到电压、电流、电压比、电流比、功率因数与频率的精确读数。在其它情况中,必须,仔细地调节i-c5的(VDD-Vss)电源电压。

    图21的另一种电力测量系统使用一个单片集成电路5′,在其上没有CORDIC处理器。

    图22图示各程序指令的32位构成。在图22的程序指令中有下述字段:

    1)一个字段用于RAM6的read-0地址;

    2)一个字段用于RAM6的read-1地址;

    3)一个字段用于C数字滤波器系数数据;

    4)一个字段用于RAM6的write地址;

    5)一个字段用于数据多路复用器45的控制位;

    6)一个字段用于系数多路复用器46的控制位;

    7)一个字段用于累加器多路复用器47的控制位;以及

    8)一个字段用于标志位,诸如标志位WRO、FA、OA1、OA2、NP、XP与EZ。

    图21的另一种电力测量系统的单片集成电路5′包括外加的σ-δ调制器27与28。σ-δ调制器27包含在第一给σ-δ调制器中并经由一个电流互感器17感测包括在三相导线1、2与3中的一条中性导线4上的电流。σ-δ调制器28包括在第二组σ-δ调制器中并且示出为连接成用于数字化一个温度有关的电压,该电压是由感测在单片集成电路5′中的温度的带源参考电压发生器10所生成的。这一片内部温度依赖于单片集成电路5′与电流互感器11-17共有的周围温度,从而片内温度间接地测定了电流互感器11-17的温度,允许在为电流互感器11-17计算线性化系数时将它们的温度考虑进去。为了提供4字周期上的计算,图1中的6通道十中抽一滤波器20被一个8通道十中抽一滤波器20′所取代,而图1中的乘-加处理器30则被一个在乘-加函数完成后具有4(不是3)个字的延时和乘-加处理器30′所取代。

    RAM控制电路35′,除了控制程序数据RAM经由并行进/串行出寄存器33与34到乘-加处理器30′的读取以外,还控制系数RAM7经由PISO寄存器33与34之一的读取,取决于read0与read1地址的值。RAM控制电路35′还控制程序数据RAM6或者数据缓冲器RAM8的写入,这种写入是经由串行进/并行出寄存器32及一条存储器6,7与8共享的读/写总线进行的。一个不在片上的系统控制器200控制系数RAM7经由这一共享的读/写总线的写入,并且控制数据缓冲器RAM8到另一个处理器300在其控制下经由共享的读/写总线的读取。例如,另一个处理器300可以执行类似于图1电力测量系统的CORDIC处理器40所执行的那些函数,但是以位并行数字信号格式执行它们的。

    熟悉本技术的人通过阅读上述公开可以设计出许多体现本发明的数据采集电路,其中一些可用于超出电力测量的领域中,例如发动机控制;并且这一点在解释下面的权利要求书的范围时必须牢记在心中。

具有可编程位串行数字信号处理器的数据采集系统.pdf_第1页
第1页 / 共101页
具有可编程位串行数字信号处理器的数据采集系统.pdf_第2页
第2页 / 共101页
具有可编程位串行数字信号处理器的数据采集系统.pdf_第3页
第3页 / 共101页
点击查看更多>>
资源描述

《具有可编程位串行数字信号处理器的数据采集系统.pdf》由会员分享,可在线阅读,更多相关《具有可编程位串行数字信号处理器的数据采集系统.pdf(101页珍藏版)》请在专利查询网上搜索。

用于测量模拟电压的设备,包括:用于提供电源电压的装置;一个模-数转换器布置为对模拟电压作出响应,以提供信号强度的第一数字指示;一个脉冲宽度调制器布置为对信号强度的第二数字指示作出响应,以提供脉冲;数字处理电路,用于对信号强度的第一数字指示作出响应,以生成信号强度的第二数字指示;以及用于测量电脉冲的强度的带有达松伐尔传动机构的一个表。 。

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

当前位置:首页 > 物理 > 测量;测试


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1