数据消息比特同步和本地时间校正方法及结构的制作方法

文档序号:5865438阅读:228来源:国知局
专利名称:数据消息比特同步和本地时间校正方法及结构的制作方法
技术领域
本发明一般涉及扩频接收机和方法,尤其涉及扩频信号的数据消息比特同步,其中扩频信号具有用数据消息比特调制的伪随机码比特的重复序列。
背景技术
基于卫星的定位系统使能接收机,例如全球定位系统(GPS)接收机,广泛用于导航并且具有在移动无线通信装置中提供本地信息的巨大潜力,通信装置可以包括蜂窝电话,其必须符合美国联邦通信委员会E-911定位要求。
一个GPS接收机首要关注的要求是给接收机供电后捕获卫星信号(即通常所说的扩频伪随机噪声(PN)码)和提供位置坐标所需要的时间。执行这些操作所需要的时间通常称为首次定位时间(TTFF),这一般通过接收机的硬件和软件结构来确定。
在电池供电的手持GPS接收机中,包括那些嵌入在蜂窝电话中的接收机中,捕获时间影响总的电池寿命,因为在位置确定期间要连续给接收机供电。产生位置确定所需要的时间在紧急定位应用中也很重要,例如在E-911使能蜂窝电话中的应用。另一个重要考虑,特别是在手持GPS接收机中的另一个重要考虑是在微弱信号环境中捕获信号的时间,例如在信号受到植物、汽车、城市峡谷和建筑的阻挡的情况中捕获信号的时间。
并行搜索单个卫星的码相位空间是已知的。例如,授予Tiemann的美国专利6,009,118中公开了搜索单个卫星的所有相位延迟的2046个并行相关器。在1981年4月的ION宇航会议的会议文件“实时导弹跟踪”(Wells,“Real Time Missile Tracking”,Proceeding of IONAerospace Meeting,April 1981)中,Wells描述了一种闪存并行相关器,该相关器对单个卫星的多达64个不同的相位延迟计算相关参数。在这些和其它已知的并行相关方案中,分配一个相关器块在预定数量的相位延迟上搜索一个卫星。但是在Tiemann和Wells的方案中,相关器块一次只搜索一个卫星。在这些和其它的现有技术系统中,卫星信号搜索都保持顺序处理,其中并行处理只应用于正在搜索的特定卫星的相位延迟。在Tiemann和Wells的方案中,并行搜索或检测多个卫星需要并行加倍的相关器。
在授予Kohli的美国专利5,901,171和授予Krasner的美国专利6,208,291中描述了其它的并行相关器例子。在这些专利中,为了搜索N个卫星,需要把一个并行相关器电路复制N次。
在一些应用中,卫星信号接收机具有可见卫星,这些卫星的大致多普勒频率以及在一些情况中50比特/秒(BPS)的导航消息比特的大致相位延迟和相位/极性的知识。这些知识例如来自本地存储的天文历表,日历,大致位置,和时间,或来自其它的来源,IS-801规范提供了在特定的信号出现时间的卫星可见性、多普勒、相位延迟。由于在任何一次时间通常可看到8-10颗卫星,并行搜索这些信号可以缩短总的捕获时间。
通常所期望的是一种有效的扩频信号搜索器,其以一种最小化门电路/晶体管数量的方式和在一些应用中降低功率消耗的方式大大降低了平均TTFF。
对于本领域普通技术人员来说,通过认真考虑结合下面描述的附图在下面对本发明的详细描述,本发明的各个方面,特点和优点将更加显而易见。


图1是一个示例性扩频接收机的框图。
图2说明了GPS信号搜索空间码相位和多普勒空间及其区域。
图3说明几个示例性搜索模式。
图4是一个示例性接收机的功能框图。
图5是I和Q信号段寄存器的框图。
图6a是一个示例性多普勒发生器框图。
图6b是码相位计算机所支持的一种示例性码相位格式。
图7是一个示例性PN码发生器框图。
图8是图7的PN码发生器的一个详细部分。
图9a是相关器的示例性数学函数表示。
图9b是一个示例性真值表逻辑。
图9c是一个示例性相关器电路。
图10a是具有半码片延迟相关增量的一个示例性示意处理流程图。
图10b是具有一个码片延迟相关增量的另一个示例性示意处理流程图。
图11是一个示例性相干积分模块框图。
图12是一个示例性非相干积分模块框图。
图13是一个示例性峰值检测器和输出寄存器框图。
图14说明偏移码相位。
图15是一个相干积分图。
图16是非相干信号幅度对积分偏移时间的图表。
具体实施例方式
图1是一个示例性扩频接收机的框图,接收机包括一个输入信号积分和和预处理(ISIP)模块10,一个分段和寄存器块20,一个闪存相关器块30,一个PN码发生器块40,一个多普勒发生器块50,一个码相位计算机块60,一个相干积分块70,一个非相干积分块80,一个峰值检测器块90,一个实时时钟块92,一个跟踪处理块94,一个处理器接口块96和一个定时发生器块98。在本发明的优选实施例中,一个单独的硬件相关器块分时并行搜索N个卫星。在另一个实施例中,可以把相关器块加倍以提供更大的并行化。
可以由一个固有数字信号处理器(DSP)或由其它一些处理器(未说明),例如集成到蜂窝手机中的接收机应用中的一个手机呼叫处理器,来操作和控制接收机,。在一个实施例中,接收机经地址映射并行总线作为片上外围设备进行控制。
在一个实施例中,在它的主要搜索信号模式中,接收机以不超过10Hz的速率来中断控制处理器。在跟踪模式中,例如在GPS定位应用中,接收机可编程为以1ms为步长的0到4095之间的速率进行中断,这样,允许处理器软件控制码和频率跟踪环。作为另一选择,接收机可以包括用于控制码和频率跟踪环的专用硬件。
为了执行特定GPS卫星的空中搜索,通常必须搜索所有可能的相位延迟和所有可能的多普勒偏移。图2说明了单个GPS卫星SV1二维总的不确定空间及其更小的不确定区域,该区域例如是由辅助数据,比如卫星日历,天文历表,大致位置,和大致时间来确定的。其中的不确定空间及其区域都包括一个伪随机噪声码相位维(码相位空间)和一个多普勒频率维(多普勒空间)。由于码相位空间可以被描述为1023个可能的PN码片(对于半个码片间隔的搜索测试,N=2046个搜索域(bin))并且多普勒空间可以被描述为在1毫秒的预检测积分(PDI)上多普勒的+/-5,000Hz多普勒不确定(M=10)搜索域,搜索域的总数由N×M=20460个搜索域给出。在本发明的一个实施例中,所有这些域可以用单个的相关器进行搜索,其中每个搜索域按顺序一次搜索一个。术语PDI也被称为积分的相干积分时间,二者可以互换使用。
以每次停留1毫秒来计算,使用单个相关器,对单个卫星需要20.46秒时间搜索所有可能的相位。因为停留时间加长以及频率域数量增加,搜索时间随着PDI的增加而快速增加。更一般地说,在本地时间中和接收机参考振荡器中也有不确定性,因而搜索域的数量实际上可能更大。
在图2中,通过辅助数据,不确定性空间实质上可能变窄到一个更小的不确定区域。参见题为“Fixed Site And Satellite Data-Aided GPSSignal Acquisition Method And System(固定位置和卫星数据辅助GPS信号捕获方法和系统)”的美国专利6,121,923,其也共同转让给本申请。例如,在GPS操作的一种模式中,接收机使用传统的辅助信息,包括日历,天文历表,大概位置数据等。在无线通信应用中,接收机可以使用在空中无线辅助标准规定中所描述的辅助数据,例如SVID、多普勒、码相位估计等。接收机还可以独立操作,无需辅助数据。在图2中,更小不确定性区域的码相位维包括N个搜索空间域,与相邻码相位域隔开一个BIN_LENGTH的量,多普勒频率维包括M个搜索空间域,与相邻域隔开一个deltaDop的量。
接收机可编程以并行搜索一个或多个卫星的码相位和多普勒空间,特别是,接收机可以动态并最佳地配置以在任何数量码相位和多普勒域上搜索任何数量的卫星。
通过一个比实时运行更快的批并行/串行结构,接收机采用伪或虚拟并行化以搜索指定的不确定空间或其更窄的、包括一个或多个相位延迟和一个或多个多普勒频率的区域。通过使用一个128个状态的闪存并行相关器,示例性搜索机具有实时搜索4096个码相位频率卫星搜索域的能力,该相关器被时分复用以覆盖整个不确定空间或其更小区域。在一个实施例中,例如,通过以高于接收扩频信号的速率的速率顺序相关,对于预定数量的相位延迟,在一个相应的预定多普勒搜索范围上,对多个扩频信号的一个或多个虚拟地并行相关,其中该范围上具有至少一个多普勒搜索域。在另一个实施例中,通过以高于接收扩频信号的速率的速率把多个扩频信号和相应的复制信号顺序相关,多个扩频信号在相应的预定数量的相位延迟上被虚拟地并行相关。
在GPS应用中,包括2046个半码片延迟的1毫秒PN码长度,被接收机分成段长度不等的16段。前15段是128个采样长,最后的一段是126个采样长。也可以使用其它的不等段,但是最好每段有足够数量的采样以便能够在采集下一段的时间周期期间检测(permit)期望数量的搜索域。
图3说明扩频信号接收机结构的几个示例性搜索模式。在第一模式中,每次在一个多普勒域或频率上的整个码相位不确定空间(2046个半码片测试域)上同时搜索2颗卫星。在第二种模式中,每次在2个多普勒频率的整个码相位不确定空间上同时搜索1颗卫星。在第三种模式中,每次在4个多普勒频率上的码相位不确定空间的一部分(512个半码片测试域)上同时搜索2颗卫星。在第四种模式中,每次在8个多普勒频率上的码相位不确定空间的一部分(256个半码片测试域)上同时搜索2颗卫星。在第五种模式中,每次在32个多普勒频率的码相位不确定空间的128个半码片(2046个半码片测试域)上同时搜索1颗卫星。还说明了其它的示例性模式。图3的最后模式X更清楚地表示了搜索模式灵活性的程度。可以每次在不同数量的多普勒域上并且每次在不同数量的半码片延迟上同时并行搜索总计11颗卫星,这些数并不是二的乘幂。图3的搜索模式只是示例性而并不是想要限制本发明。示例性接收机可以并行搜索并定位多达十二个的卫星信号,在码空间不确定的多个多普勒域上和在整数个半码片上搜索每颗卫星。在码相位和多普勒空间上对每个卫星的搜索可以独立控制。仅有的限制是总搜索域的数量不能超过搜索机的容量(对于示例性实施例来说是4096)。还有,接收机可以搜索少于4096的域,在这种情况中可以降低相关器时钟。
在GPS操作的一种模式中,给接收的多个扩频信号的每一个指定多普勒搜索范围,对于每个指定的多普勒搜索范围产生一个或多个多普勒搜索信号。当多普勒搜索范围包括多于一个的多普勒信号时,在特定多普勒范围内的多普勒搜索信号的每一个之间有一个多普勒步长增量。在一个实施例中,为多个多普勒搜索范围的至少两个所产生的多普勒搜索信号是不同的,并且所产生的多普勒搜索信号的数量限制到某个预定数量。
接收机还可以操作在跟踪模式中(一旦对于每个可视卫星发现多普勒和码相位),其中为了对连续的位置更新,连续更新伪距离和伪距离速率测量,可以启动码和载波跟踪环。在跟踪模式中,可以把用于大部分相关器组的时钟速率调小到一个更小频率,在示例性实施例中大约是5MHz,因为只有搜索到最小数量的码-多普勒域才能保持跟踪。
考虑到双倍的码相位搜索空间,还可以把搜索空间压缩到1-码片采样。被搜索的每个卫星具有一个软件可选选项,该选项考虑到了1个码或1/2个码片的间隔。在这种限制下,对于示例性实施例,该选项可以考虑同时多达四个卫星的完全码-相位搜索。
在图4中,图1的ISIP块的功能,包括RF处理块300,A/D转换310,以及基于编程到控制处理器中的采样速率参数,以有效采样速率(例如1.023,2.046,4.096或8.184MHz)把采样信号数据从A/D转换器变换和定标到二比特的I和Q数据采样。在一些实施例中,可以采用抽取器和再采样器312把采样变换到期望的采样率。
二比特的I和Q数据采样被定标到符号数值(sign-magnitude)形式(不是二的补码)并且每个都把信号幅度的四个可能状态编码为二比特的四个可能状态。例如,状态“00”代表信号幅度“+1”,状态“01”代表信号幅度“+3”,状态“10”代表信号幅度“-1”,状态“11”代表信号幅度“-3”。状态到信号幅度的任何其它排序都是可能的,这将偏离精确的符号数值格式,只要闪存相关器支持该格式并且使用映射信号幅度以形成相关结果就可以。
在图4中,采样的I和Q信号部分被分频器块314分段成信号段。然后把信号段存储到相应的I和Q寄存器316(其中只有一个用参考标号标识出来)。在示例性实施例中,分频器块(Div 128/126)314不相等地把1ms长的2046个半码片PN码比特分段成128个采样长的十五个信号段和一个126个采样长的信号段,然后重复。最好,一个信号段的最后一个信号采样与相邻信号段的第一个信号采样隔开一个采样。以大约16KHz的速率,或每个PN码重复周期的16倍的速率把每个完成段时钟锁定到R1寄存器316。分频器块Div128/126还输出一个段长度信号,例如1或0,给随后的处理元件以指示是处理R1寄存器的128个采样还是126个采样。
图5是图4的I和Q的R1寄存器316的更详细的说明,该寄存器存储二比特的I和Q信号段。特别是,寄存器块包括I和Q串行到并行寄存器510和520,和一个GPSOneKHz时钟发生器530。在示例性实施例中,以大约16KHz的速率顺序地把不相等段时钟锁定到I和Q寄存器510和520。产生信号(NewR1)以指示NewR1数据已经完成,产生信号(Seg_Num)以指示NewR1的段号、GPSOneKHz时钟、I和Q的分段采样。其它的实施例可以包括并行的I和Q寄存器组。
在示例性结构中,产生I和Q信号段的时钟信号和加载R1寄存器的时钟是接收机中仅有的时钟,其要求接收机质量可靠,即低相位噪声时钟有不大于3*10-9的Allen方差。时钟电路对其余接收机部分定时,其可以是在某个最小时钟速率上操作的任何时钟,其中示例性4096搜索域结构不小于65MHz(64*1.023)。这样该结构与基带结构兼容,在基带结构中,DSP或其它处理器以70到105MHz之间的某个速率运行。
在图4中,多普勒NCO318的输出被采样并且以类似于输入信号分段顺序的方式被并行输入到两个R2寄存器322(只表示了一个)。R2寄存器中的采样数取决于Div128/126分频器块314的段长输出,是128个采样或是126个采样。R2寄存器通过复用器328连接到复用器块326。这种复用器配置允许并行的R2多普勒擦除波形对于多个时钟保持恒定并且被送入闪存相关器,而另一个R2多普勒擦除波形由NCO准备。在示例性实施例中,多普勒发生器可具有有限数量的时钟周期,可用于产生载入到R2寄存器中的128或126个多普勒采样。该多普勒信号发生器设计适合与示例性结构一起使用,其中示例性结构包括并行使用四个传统NCO,或一个SIN/COS状态转换计算机。
为了加载R2寄存器用于下一个相关,示例性实施例有32个时钟周期限制。图6a中,四个NCO602、604、606和608为寄存器610产生多普勒模式。如果不对32个时钟周期限制,那么一个产生COS和SIN输出(每个一比特)的单独24比特NCO就足够产生128个I和Q采样了。NCO的1比特SIN输出是积分器的MSB(一个24比特NCO的比特23),而COS输出是积分器的MSB和下一个更低比特的EXOR(比特23和22)。当产生128个采样时,NCO的两个输出比特被传送到相应的128个状态串行到并行移位寄存器603、305、607和609,然后R2寄存器同时获得128个状态。
在具有32个时钟限制的示例性实施例中,并行化可以减少每阶段的时钟数量。图6a中的四个NCO每个都有在时钟零进行加载开始相位和频率的能力。第一NCO为采样1到31产生多普勒模式,而第二NCO为采样号32到63产生模式,第三NCO为采样64到95产生模式,第四NCO为采样96到128产生模式。由于NCO被同时计时,只占用32个时钟就可以产生所有128个采样。第二到第四个NCO的开始相位按如下计算第二NCO开始相位=第一NCO开始相位+32*Fw;第三NCO开始相位=第一NCO开始相位+64*Fw;第四NCO开始相位=第一NCO开始相位+96*Fw。在第三十二个系统时钟之后存储在第四个NCO中的最后相位被写回到一个相位RAM612,用于在下一次R1寄存器采样期间使用。对于只有126个采样的信号段来说,第四NCO只有30个时钟周期的短周期。
在RAM612中存储的相位被存储在32位宽的字中。低24位代表一个载波周期的小数相位,而高8位代表累加的整数载波周期。RAM612的字长是64个字。频率RAM611也包含64项但是只存储表示期望的卫星/多普勒域的一个频率字的24位。可以把在频率RAM611和相位RAM612中包含的64个字分配给一个或多个卫星,每个字对应于一个多普勒域和一个卫星。NCO结构是时分的,以便产生存储在R2寄存器中的多普勒信号,从而表示多达64个的可能多普勒信号。例如,可以分配64个多普勒域给一个卫星,用掉所有64个数据字。作为另一选择,对于两颗卫星,可以分配32个多普勒域,也用掉所有64个数据字。如图3所示,可以选定普勒域/卫星(Doppler bins per satellite)的任何组合,只要总数不超过RAM611和RAM612的64个存储位置。
在图6a上所示的相差电路613被用于为PN码发生器电路计算PN相位延迟校正。相差不需要是32位的差值,32位长相位字的高10位的一个10比特差值就足够了,并且以整数和小数周期报告相差,其中整数和小数周期低至1/4周期的分解度。相差电路对所产生的每个多普勒信号计算相差(整数和小数周期都低至1/4周期的分解度)并把该差值传送到码相位计算机块(图1上的60),并且最终送到PN发生器块(图1上的40),以便在积分时间期间在一个码相位域中保持码相位稳定。这样,R3的PN码信号时间后移以补偿多普勒引入的接收信号码相位偏移并且在一个累加域中保持相关和(correlation sum)稳定。众所周知,GPS信号在多普勒和码相位之间相干,因此多普勒周期偏移所引起的累加偏移可以被用于补偿码相位延迟。例如,GPS信号载波频率1575.42MHz和PN码片频率1.023MHz相干,也就是,产生载波频率的同一个振荡器用于对每颗卫星产生内部PN码时钟。这样,每个PN码时钟表示1575.42MHz/1.023MHz,或每一个PN码时钟是1540个载波周期。通过累加多普勒载波周期(通过累加613输出的相差),可能进行连续的码相位校准,以便保持图1的40产生的复制PN码信号与接收信号相关。由于设计的接收机主要使用1/2码片间隔采样(存储在R1、R2和R3寄存器中),在进行1/2码片的码相位校准之前需要累加的多普勒信号周期的整数个数是1/2*1520,或770个载波周期。因此,通过对每个多普勒域/卫星累加相差数值(在图6a上产生并且在图1的码相位计算机块60中用掉),载入图1的PN发生器块40的码相位每770.0个累加多普勒周期用1/2码片校准一次。
根据RF的执行,码相位计算机可以在每个770周期的累加上加上或减去1/2码片。例如,如果RF电路使用高端注入或低端注入(也就是,本地振荡器是高于还是低于期望的信号),接收的信号可能产生减少的码相位累加或增大的码相位累加。对于这种设计,处理器可以设置一个称为APAD的参数,或自动相位超前指示寄存器(auto-phaseadvance direction register),其可以控制码相位是加上还是减去累加多普勒周期。
图6a还说明了一个补偿电路,其解决基准振荡器偏移频率和频率变化的速率。这些参数(OSCL_RATE和OSCL-FREQ)由控制微处理器进行估计,并且由处理器记录以便对于所有卫星偏移所有多普勒测量,这样解决了基本振荡器偏移频率。通过Fm时钟信号或测量信号出现时钟EPOCH,参数被时钟锁定到32位累加器614中。累加器以与每个第十六个R1寄存器加载周期同步的时钟速率工作,或每1毫秒一次的时钟速率工作。通过每十六个新的R1寄存器加载周期,OSL_RATE输入参数增加一次,累加器的输出随着改变。在OSCL_EST寄存器上的处理器可以观察到OSCL_FREQ的累加和与OSCL_RATE*N,因为它们在下一次测量信号出现输出时钟上被获得,该输出信号与中断同步。比特校准如下OSCL_FREQ的24位向上移8位校准到累加器中。10位的OSCL_RATE参数用累加器进行比特校准。驱动OSCL_EST寄存器并送入并行的NCO的输出24位向上移8位,也就是,这些输出观察累加器的第8到31位。OSCL_RATE参数的范围在最大值和最小值之间,最大值是OSCL_RATE=1000*(4*0.1220Hz)=488Hz/秒,最小值是OSCL_RATE=1000*(0.1220/256Hz)=0.476Hz/秒。
图1的码相位计算机时钟60执行如下功能a)对于存储器中的每一段保持绝对码相位跟踪。处理器从码相位计算机存储器中直接读取码相位。
b)通过计数多普勒周期,累加多普勒引入的码相位变化(码相位中的自动相位超前)。
c)计算半码片的整数个数(预装数据),在信号的下一次应用期间PN码发生器将使用它,包括自动相位超前分量。
d)基于R1中的段号,补偿整数码相位半码片偏移。
e) 经称为MANL_CP_ADJ输入的处理器可写参数,解决对以多普勒载频周期为单位的码相位的处理器命令的手动调整。
当对每段PN发生器都需要一个预装目标码相位时,码相位计算机必须周期累加码相位。这样,它必须为相干和非相干RAM中的每个BIN_LNGTH段计算一个开始码相位,每毫秒16次,对应于每毫秒在R1寄存器中存储的16个不同的段。如在图1的多普勒发生器块50的情况,图1的码相位计算机块60需要处理RAM以便保持多达64个的唯一码相位寄存器。
为了方便,对码相位寄存器建议下面的格式,码相位计算机支持该格式。如图6b所示,每个寄存器被分为三段。存储在每个寄存器中的码相位指的是每个存储器段中的第一个1/2码片单元的码相位延迟。每段内的其它单位的码相位延迟可以简单地基于距离该段的第一个单元的整数个1/2码片的个数。
为了与多普勒发生器相位变化的输出相一致,小数码片以1/4载频周期为单位进行累加。为了在相干RAM中包含每个相干器段,示例性多普勒发生器计算每个R1寄存器内的1/4载波周期的总数。这样码相位累加器的小数码片部分具有0到769.75周期值的值,在此之后它进位到累加器的码长度部分。在GPS L_band信号上(对于该信号来说PN码和载波相干),对于每个PN码片有1540个载波周期,或对于1/2码片长度有770个载波周期。因此,为了保持相干并且适应多普勒引入的码相位变化,就累加770个载波周期,然后向前进位到下一个字段(半码片延迟),完成所谓的自动相位超前处理。
同样,累加器的码长度部分具有1/2码片延迟增量的0和1022.5个码片之间的值,或0和2045之间的整数值。当码长度部分翻转时,累加器的整数码长度部分增加一次。基于跟踪一个卫星所预期的最大时间(在一种跟踪模式中,是10小时)和对于这样一个信号变化的最大速率,来设置包含累加器的整数码长度部分的比特总数。
码相位计算机应用的算法在C代码等效符号中做了最好描述。模块结构可以由ALU、比特移位器以及RAM块来表示。实际的结构不重要,只要它可以执行所述的算法。基本要求是,码相位计算机能够完成所有卫星和所需多普勒信号(R2的唯一值)的码相位参数的更新并且在最小数量的系统时钟周期(32个时钟)内把预定的预装码相位传送给PN发生器。这里描述了在初始化模式和运行模式中的算法。
在初始化模式中(在积分停止周期开始之前),出现以下对于在码相位计算机存储器中的每个卫星段,Integer_Code_Lengths[i]=0;Code_Lengths[i]=CP_OFFSET[i](存储在配置块中的码相位偏移寄存器的副本);Fractional_Code_Phase[i]=N*Delta_Cp;这里N=具有大于定义的NUM_BINS的任意段块的域个数,Delta_Cp是同一卫星的随后域的码相位的变化,其通常整数个载频周期,并且可以表示远小于1/2个码片的PN码步长偏移量。例如,考虑到77/1540码片,或0.05码片的PN码偏移,Delta_Cp可以是77个载频周期。这样Delta_Cp可以用于把随后的域偏移一个与Delta_Cp/1540码片成比例的量。每颗卫星的参数Delta_Cp都可以由控制处理器控制并且可以设置为任意整数载波周期值,这样一颗特定卫星上的多个码相位域的偏移步长可以是与1/1540码片或0.000649码片一样小的步长。这样,从一个域到另一个域的延迟差可以校准到比1/2码片延迟更细。
在运行模型中-通常在多普勒为所选的卫星/多普勒域产生了一个R2之后的某个时候进行该处理。在对每个相干RAM段为每个卫星处理了每个R1段之后,更新码相位的处理是<pre listing-type="program-listing"><![CDATA[  Fractional_Chips=Quarter_Cycle_Count(from Doppler Gen)+Manl_CP_ADJ(也是以四分之一周期为单位);  MANL_CP_ADJ=0;(在对该卫星更新最后一个域之后);  If(APAD==1)/***(码相位随着每770个多普勒周期增加一次***/  {   If(Fractional_Chips>=770.0 cycles)   {  Fractional_Chips-=770.0;  Code_Lengths+=0.5;  If(Code_Lengths>=1023.0);   {   Code_Lengths-=1023.0;   Integer_Code_Lengths+=1;   }   }  else If(Fractional_Chips<0.0 cycles)  {   Fractional_Chips+=770.0;   Code_Lengths-=0.5;   If(Code_Lengths<0.0);   {   Code_Lengths+=1023.0;   Integer_Code_Lengths-=1;   }   }   }  else/***(码相位随着每770个多普勒周期减小一次***/   {   If(Fractional_Chips>=770.0 cycles)   {  Fractional_Chips-=770.0;  Code_Lengths-=0.5;  If(Code_Lengths<0.0);   {   Code_Lengths+=1023.0;   Integer_Code_Lengths-=1;}  }  else If(Fractional_Chips<0.0 cycles)  {   Fractional_Chips+=770.0;   Code_Lengths+=0.5;   If(Code_Lengths>1023.0);   {  Code_Lengths-=1023.0;  Integer_Code_Lengths+=1;   }  }   }]]></pre>下一个PN码预装数据的产生接下来,需要由PN码发生器预装该特定卫星段,给出PN码发生器存储在通过R1数据的段号偏移的Code_Length寄存器中的半码片的整数计数。尤其是,Preposition_PN_Count=128*Seg_Num+Code_Length_Register;其中Seg_Num指R1数据段号(0到15)。注意,通过一个简单的7个位置的比特移位就可以实现乘以128的乘法。最后,需要对Preposition_PN_Count补偿任意的上溢和下溢,其函数为If(Preposition_PN Count>=1023.0)Preposition_PN_Count-=1023.0;If(Preposition_PN_Count<=1023.0)Preposition_PN_Count+=1023.0。
在图4中,PN复制码发生器320被采样并且以类似于输入信号分段顺序的方式并行送到两个R3寄存器324(只说明了一个)。在R3寄存器中采样数量取决于Div128/126分频器块314的段长输出,是128个采样或是126个采样。R3寄存器通过复用器330连接到复用器块328。
图7中,一个示例性基于ROM的PN码发生器在要求的32个系统时钟内产生R3寄存器的所有128个状态。移位寄存器702和704的内容是确定的,其中1023个状态的每一个都定义了所选码的一个特定比特。移位寄存器的状态存储在相应的查找表ROM中。G1查找表ROM706需要1023个比特(128个字乘8比特),并且G2查找表ROM708需要2176个比特(128个字乘17比特)。
在一个系统时钟周期上,G1和G2 ROM对,结合并行的EXOR和MUX块710,一起为一个所选信号产生8个并行比特,代表PN发生器输出的8个连续状态。第一比特与到8倍ROM的地址的输入地址所代表的比特位置(即,PN码比特状态号)相一致。R3寄存器获得128个比特。来自PN发生器的每个比特被复制两次(R3包括1.023MHzPN发生器的2.046MHz速率采样),以至于G1/G2和并行的EXOR和MUX块必须产生要预先加载的64比特的PN序列。R3寄存器被组织为一个16比特长的移位寄存器的8个复制品。最后八个复制品包含128比特的R3寄存器,同时第一个是移位寄存器的加载寄存器,其由G1/G2ROM和并行的EXOR和MUX块进行加载。
该电路并行加载16比特的移位寄存器。在预加载模式中,该电路在九个时钟周期内连续加载9个寄存器。在加载移位寄存器后,R3寄存器的状态代表所选PN码的那个部分,移位寄存器的第一个比特是与最近状态号相一致的那个比特(在目标状态的16个时钟周期内)。然后把移位寄存器对其余数量的时钟周期计时以便把R3寄存器预装到期望的开始状态,码相位计算机计算该状态并且通过Preposition_PN_Count参数把状态传送到PN发生器。预装计数的高7个比特直接转到ROM。-1到+8的地址计数加到该地址上以便产生查看所有9个16比特移位寄存器内容的地址,所述寄存器组成R3寄存器。低4比特(即其余的)代表使R3寄存器进入期望的初始化状态所需要的时钟整数个数。
如所说明的,有两个R3寄存器复制品,都由G1/G2 ROM和并行的EXOR和MUX块的一个复制品驱动。在一个实施例中,这两个R3寄存器在预加载状态和运行状态之间交替变换。在运行(RUN)模式,R3寄存器每一个时钟转换一次。所要求的这个码的下16个比特在合适的时钟上加载到一个LOAD寄存器,以便把一个连续的PN比特流加载到R3寄存器中。图8是并行的EXOR和MUX块的更详细的框图。对于任意信号,为了在一个并行时钟周期中产生八个连续比特,电路复制用于对以10比特间隔、来自G2移位寄存器的任何两个比特进行唯一的或操作(OR)的电路。因此,两个10比特数据选择器和一个唯一或门(OR gate)被用于这8个的每个比特。此外,G2移位寄存器ROM产生所有17个总的状态比特,以至于10到1选择器可以观察这8比特的每一个的合适10比特范围。
在图4中,128抽头高速闪存并行相关器332执行相关,该相关器一个采样接一个采样地把复数(二比特的I和二比特的Q)R1寄存器和复数(一比特的I和一比特的Q)R2寄存器以及实际的一比特R3寄存器的内容进行相关,组合所有的抽头以形成一个SUMI和一个SUMQ输出。
相关器执行的数学操作在图9a和如下所附的伪随机码中进行了描述假定R1寄存器包括128个称为R1i[k]和R1q[k]的I和Q采样,这里k是R1寄存器内的采样号;0<=k<=max。同样,R2寄存器包括128个称为R2i[k]和R2q[k]的I和Q采样,0<=k<=max。最后,R3寄存器包括128个称为R3[k]的实际PN码序列的I&amp;Q采样;0<=k<=max。在示例性实施例中,根据R1寄存器是包含128个采样R1值还是126个采样R1值,最大值在127和125之间变化。R1i和R1q术语具有+1,+3,-1和-3四个值。R2i和R2q术语具有+1和-1两个值。R3值可以有值+1或-1。
闪存相关器形成了如下的乘积求和For(k=0;k<max;k++)Sum+=R3[k]*(R1[k]*R2[k]);展开该表达式以表示复数操作乘积For(k=0;k<max;k++)Sum+=R3[k]*[(R1i[k]+jR1q[k])*(R2i[k]+jR2q[k])];进一步展开并提取同相和正交分量乘积For(k=0;k<max;k++)Sumi+=R3[k]*[(R1i[k]*R2i[k])-(R1q[k]*R2q[k])];[1]For(k=0;k<max;k++)Sumq+=R3[k]*[(R1i[k]*R2q[k])+(R1q[k]*R2i[k])];[2]最后,R1乘R2的复数乘积可以描述为乘积寄存器,Pi[k]和Pq[k],其中
Pi[k]=(R1i[k]*R2i[k])-(R1q[k]*R2q[k]);[3]Pq[k]=(R1i[k]*R2q[k])+(R1q[k]*R2i[k]);[4]乘积寄存器Pi和Pq对于每个R1和R2值都是常数并且包含最大的元素。最终的和(Sumi和Sumq)可以按照R3乘以乘积寄存器(Pi和Pq)如下写成For(k=0;k<max;k++)Sumi+=R3[k]*Pi[k];[5]For(k=0;k<max;k++)Sumq+=R3[k]*Pq[k];[6]为了在一个时间间隔里最大化相关的数量,在公式[5]和[6]中的这些和,Sumi和Sumq,在一个时钟周期里计算,这可以由完成该功能的大逻辑电路块来通过流水线完成。
图9a说明了闪存相关器块的优选实施例。公式[1]到[6]描述了对乘积寄存器Pi和Pq的每个元素,和随后的输出Sumi和Sumq所执行的数学运算。闪存相关器的具体设计高度依赖于编码与R1和R2数据输入有关的数据的方法。R1输入采样的I和Q采样编码假定是二比特编码值00+101+310-111-3并且R2的一比特I和Q采样编码为一比特编码值0 +11 -1并且R3的一比特I和Q采样编码为一比特编码值0 +11 -1
图9b还说明了比特模式的所有64种可能组合,该模式与二比特的I和Q R1采样乘以R2寄存器(即,乘积寄存器326)的一比特I和Q R1采样相联系。因此,为了构成R1*R2的内积,不需要把采样编码为两个补码符号。Pi[k]和Pq[k]逻辑块乘法器的所有128个输出分别在I和Q数据通路上相加以产生Sumi和Sumq输出。注意,把加法器的输出截短一比特(参见图9a的输出通路),因为闪存相关器加法器的输出总是一个偶数。逻辑块必须简单地复制图9b的真值表,其包括嵌入在表中的1∶2分频器。列“Pi_scaled”与列“Pi的一个元素”差一个因数二,列“Pq_scaled”与列“Pq的一个元素”差同样的因数二。以这种方式编码R1数据的四个输入状态(+1,+3,-1,-3)并且完成与逻辑元素的乘法可以避免两个补码运算,这要求数据通路中的多个数据比特(例如对于每个I和Q R1寄存器是3)并且使用额外的硬件单元。
图9c是一个示例性相关器框图,包括第一和第二乘法器块900和902,分别对应于图4中的乘法器块326和332。图9c是还说明了依赖于求和块904上的段号、128个并行相关器的输出的求和,其中求和块904对应于图4中的求和块333。在示例性实施例中,对于所有的信号段,R1寄存器输出都是128个采样长,除了最后段,它是126个采样长。在段选择信号的控制下,在第16个信号段的求和中,相关器127和128的输出忽略不计。
在图10a中示意性说明了相关处理。来自R1寄存器和R2寄存器的输入采样相乘以产生乘积寄存器P。当复制PN发生器的码相位延迟的预定范围(存储在R3寄存器中)施加到最后的乘法器时,乘积寄存器P会保持恒定。然后乘法器输出的所有128个状态在求和块333中一起求和。
对于特定码相位延迟,R3寄存器包括复制PN码的128个状态。对于每个码相位延迟,相干RAM存储器334用作大量的独立累加器,每一个测试的可能码相位延迟对应一个。在半码片模式中,R3寄存器的内容每个时钟周期超前一个半码片延迟,并且相干RAM334超前一个地址,以便相干RAM中的每个存储位置代表连续的一个码相位延迟的半码片延迟试验(trial)。例如,对于延迟零,R3寄存器的相关结果写入零延迟累加器地址,对于延迟一(半码片差),R3寄存器的相关结果写入延迟一累加器地址,以此类推。每个信号或卫星测试多达2046个半码片,这代表所有可能码相位延迟,或测试预定数量的码相位延迟,只填充相应数量的相干RAM存储器位置。在一码片模式(在后面描述并且在图10b中表示),连续的相干RAM地址代表一个码片间隔延迟。
R3寄存器的2046个可能状态的每一个都构成了一个唯一的SUMI和SUMQ输出,其加到在连续的存储器位置中的相干累加RAM334中。接收机是可编程的,以便相干累加是在N毫秒上,其中,通过存储所搜索的每颗卫星的N值,并且当正在搜索该特定卫星时把N值应用到相干累加器,从而在不同的N值上编程每颗卫星。
只通过包括接收机的多个复制或其部分或者通过增大存储器70和80的大小以及相应增加系统时钟速率,可以在多于4096的搜索域的情况中扩大接收机的并行化。例如,存储器70和80的字数加倍可以得到8192个存储位置。这将为接收机提供计算8192个独特卫星/多普勒/码相位试验域的能力,而不是初始的4096个。为了在R1寄存器的一个更新周期内处理所有的8192个卫星/多普勒/码相位试验域(一毫秒的1/16),系统时钟速率必须大于或等于128*1.023MHz。另一种完成这个的方法是把段长度改变到大于或小于128个采样。例如,如果段长度变成256个采样长,那么,为了覆盖码相位试验空间的2046个半码片,通过在七个256采样长的段和一个254采样长的段上执行部分相关,系统应该可以对1毫秒长的PN码分段。通过考虑到系统时钟速率是初始完成同样数量的相关(4096)的速率的一半,或如果时钟速率保持在同样值,考虑处理两倍的相关数(8192),它可以为接收机提供每个R1更新周期的更多时间以执行顺序的部分相关。
一旦把扩频信号段存储到R1寄存器中,随后的处理就与输入时钟无关。因此,只要相关器,PN发生器,多普勒NCO和累加RAM运行足够快,处理1、2、4或8个信号或卫星的整个码相位空间是可能的。例如,如果PN码发生器R3寄存器和相干RAM定时在(8*2048次相关)/(1/16*0.001sec)MHz,累加器RAM扩大到容纳8*2048个字,并且通过相应地定时复用器和相干累加器RAM,那么就可以执行8个卫星上的整个码相位空间搜索。
示例性结构表现出时钟速率可量测性,其可以采用与半导体处理搜索有关的增加的时钟速度。如所说明的,相关器组可以被编程,以便可以根据特定问题所需要的搜索(码相位和多普勒)域总数以可变时钟速率运行。
当对每个卫星多达2046个可能延迟计算相关测试时,在下一段的采集时间期间(在示例性实施例中大约1/16KHz的时间),R1寄存器的内容保持固定。在该时间周期中,对于前面采集的段,搜索预定数量的码相位和/或多普勒域。当已经为一个多普勒域搜索了所有的码相位时,就可以把一个新的值加载入R2以搜索一个新的多普勒域。
在图11中,相干积分块累加存储器组102中的多达4096的同相和正交相关和,其包括用于SUMI和SUMQ信号的10个或更多位宽(bit-wide)的积分器。该组分成对应为特定卫星PN码、码相位范围和多普勒频率的块。4096个I和Q存储器位置的每一个都可以看作为一个累加器,其保存在一个多普勒频率上的一个卫星、一个码相位延迟(以半个码片为单位)的相关结果。该组102最好配置有独立的读/写输入通路,以便以“1个时钟周期/存储器地址更新一次”为单位进行流水线处理。只要把处理限定到“1个时钟周期/存储元素更新一次”,其它的配置也是可能的,例如包括A和B存储器被用于分离读取和写入处理的一个双向单端口存储方案,其通过在单端口存储器上的时钟频率加倍以允许一个周期读,一个周期写,和一个真正的双端口存储器设计。
对应于在一个多普勒频率上的一个特定码相位延迟、一个卫星的闪存相关器和经SUMI和SUMQ输入而输入到相干存储器中。每个时钟周期传送两个输入SUMI和SUMQ上的一个相关的相关和。在控制处理器或DSP的控制下,闪存相关器输出被截短固定数量的比特以降低动态范围,其中固定数量的比特由104处的预移位参数所确定。通过为所搜索的卫星存储一个预移位值并且通过在正在搜索特定卫星时把预移位值复用到该移位器,可以对所搜索的每个卫星进行预移位值的配置。地址排序从0开始且对于SUMI和SUMQ上的每次相关器采样都增加一个地址。在下一个R1采样可用之前,更新相干存储器组的4096个字。
相干累加器在整数个毫秒上求和,毫秒数对应于对每个卫星的一个可选PDI寄存器设置。积分是整数,即定点(integer-fixed point),具有在输入量SUMI和SUMQ上定标为2-n的定点。相干积分周期可以以1ms的增量从1到20ms变化(一个GPS导航消息比特时间)。对于一个1ms的相干积分,例如,在最后的和被送到图4中的非相干积分块336之前,十六个连续的R1寄存器(对应于信号段1-16)被处理并且被加到相干积分存储器中。在1ms的最后,清除相干RAM段。相干积分时间也可以超出所提供的一个比特时间(20ms),系统具有一个特定导航比特序列的知识。对于20ms的相干积分,要求本地时间知识精确到2ms。
在第一次更新存储器时(即,在相干求和的第一次迭代时),一个驱动加法器108的端口的与门(AND gate)电路106通过把零施加到加法器的那个端口而进行清零。来自相关器的第一个相关结果直接载入存储器。随后通过把前面的累积送到具有与门的加法器以构成4096个积分器,从而形成存储器和。在PDI间隔的最后求和之后的一个R1段,与门106输出设置为零。读取功能正常工作,从存储器读取到期望的和。传送该和到非相干积分器块并且由非相干积分器块锁存该和,这在下面进行讨论。最后,下一个相干间隔的第一个和被写入存储器地址,从而开始下一个相干积分周期的重新处理。
在某些操作模式中,例如,如果PDI设置为20毫秒或更高和/或如果预移位比例因子设置得较低(例如,20或2-1),并且信号比预期的更强,那么相干积分器可能溢出它的10或更多位宽的动态范围。累积溢出可以通过对多个扩频信号的每一个调整比例因子来防止。在一个实施例中,扩频信号的每一个的至少一些相关结果通过不同的比例因子,例如通过降低PDI和/或通过升高预移位参数而被定标。
在图11中,一个溢出检测器110具有一个输入和多个输出,该输入连接到存储器组102的输入,并且输出连接到加法器108和溢出计数更新逻辑电路112。当溢出情况发生时,积分器输出被设置为一个最大值或最小值。然后一个计数器114记录溢出情况的次数,这通过64个可能域(这里,域指的是峰值检测器域、多普勒寄存器的数量)限定,并且只要非相干积分器正在工作就求出总和。例如,如果非相干积分器被编程为工作200ms,并且PDI设置为10ms,然后那个特殊域的溢出计数器对在整个200ms非相干积分“运行”时间期间在那个域中相干积分溢出的总次数进行计数。在该例中,可能检测到多达20次的溢出。然后控制处理器可以读取作为峰值检测器输出的一部分的输出,以便验证在停止期间没有或只有一些溢出发生。
在图12中,一个非相干累加器累加在存储器组122中多达4096个信号幅度和,该存储器组与前面讨论的相干积分器块一样进行分段。每个累加和保持在一个多普勒频率上的一个信号或卫星、一个码相位延迟(以半个码片为单位)的相关结果。如在相干积分器中那样,每个存储器块使用一个定点缩放,对此,定点比例因子与整个块有关。相干积分器提供10或更多位宽的相干I和Q输入给一个JPL幅度检测器124,其使用所述的算法计算I和Q信号幅度近似值。该输入与特定段的相干积分间隔的末尾同步。
非相干积分器还包括一个加法器单元126,该加分器具有来自幅度检测器124的一个10或更多位宽的端口和来自上移位器128的一个18比特输入端口,其中该移位器把非相干累加存储器组122(10或更多比特宽)的内容转换到一个相等的幅度。非相干存储器的定标输出加到一个新的幅度上(最近的相干和),其中一个下移位器132把该输出变换到存储器组的10或更多比特动态范围。
一个优先编码器逻辑电路块134记录下移位器的输出幅度,并且把一个锁存的PE信号输入一个定标逻辑电路块136,以便在随后的累加中防止溢出情况时变换比例因子。尤其是,当任何一个存储器元素都具有一个有效MSB比特时,定标逻辑电路136将将该缩放比例增加一个计数,以便在下一次读取段的时间里,通过应用合适的缩放比例防止溢出。在处理下一段之前,已经锁存一个PE状态标记之后,定标逻辑电路更新非相干全局比例因子RAM138的内容。非相干全局比例因子RAM包含一个“当前”比例和一个“下一个”比例数值,在非相干积分开始时,这两个量都初始化为零。每个比例数值代表用于相应的上和下移位器的许多比特变换。上移位器128得到“当前”比例因子,而下移位器132得到“下一个”变换数值。零意味着不移位,一意味着1比特移位,等等。“下一个”比例通过把锁存PE值的内容加到前一个“下一个”比例因子上而进行更新。注意,这也可以通过使用一个“当前”比例因子存储器加一个单个比特来实现,其中该单个比特指示下一个上移位是否比下一个下移位小一。这与存储一个当前和下一个指数值形成对照,并且可以节省定标电路中的存储区。在任何一种情况中,通过一个指数值或块值来定标整个相关器块。在一个实施例中,如果确定最大累加幅度的连续累加会引起累积溢出,一个或多个预定相位延迟的所有连续累积幅度都用一个公共比例因子来定标。
在图4中,一个峰值检测器和输出寄存器338连接到非相干存储器上,以便协助控制处理器确定检测情况并且降低扫描信号检测的积分输出所要求的吞吐量。峰值检测器和寄存器还提供信号跟踪(码和载波)路径。此外,检测器和寄存器减轻了处理器读取非相干积分RAM的所有4096个字以及测定存储器中的每个数据段上的信号检测情况的工作量。峰值检测器和输出寄存器每更新RAM一次就扫描非相干积分RAM一次。
在图13中,峰值检测器包括一个寄存器142,用于存储段中信号最大值的地址(P);一个寄存器144,用于存储在段中下一个信号最大值的地址(NP);一个寄存器146,用于存储段中下一个的下一个信号最大值的地址(NNP);一个寄存器148,用于存储段中的所有信号幅度的和(SUM_MAG);一个寄存器150,用于存储最大信号幅度(P_DAT);一个寄存器152,用于存储下一个最大信号幅度(NP_DAT);一个寄存器154,用于存储下一个的下一个最大信号幅度(NNP_DAT)。一个64字乘86比特的输出寄存器RAM156存储这些参数。每个RAM字都与一个数据段(一个多普勒,一个卫星和一个码相位延迟)一致,并且与存储器相关的比特位与各个元素相一致。输出寄存器RAM在被控制微处理器读取时,映射到16比特字(P,NP,NNP)和32比特字(SUM_MAG),以及16比特字(P_DAT,NP_DAT,NNP_DAT),以便每个参数的最低有效位出现在最不重要的数据总线比特上。其它的值,例如相干溢出计数和非相干比例因子,可以在峰值检测器数据传送到输出寄存器RAM的同时,在输出器存器中进行更新。
段中的所有信号幅度和可以用来计算一个大致的峰值信号与平均噪声的比值。峰值检测器和输出寄存器功能可以在更新非相干积分器期间工作(即,对应于相干积分间隔终止的1/16毫秒时间段),或可以在下一次非相干积分器更新之前的期间工作。在一个实施例中,通过确定第一和第二最大相关幅度的相位延迟差值大小是否等于一个相位延迟单位,来确认对应于一个最大幅度的相位延迟的近似相位延迟判定。
一个相干RAM捕获(capture)功能,也就是图1中所示的输出寄存器块91的一部分,可以被用于捕获和缓冲(控制处理器随后将读取)来自一个或多个相干存储器空间的相干和,该存储器空间对应于一个或多个所检测卫星的实际码相位延迟。为了使用解调双相(bi-phase)数据调制的传统方法直接解调卫星传输的50BPS数据序列,控制处理器随后可以读取相干RAM捕获缓冲。通过这种途径,接收机可以实时收集卫星传输的天文历表,时钟校正,日历,UTC偏移,和电离层延迟数据,以及在HOW字中编码的精确时间。
现在讨论对一个多普勒频率上的单个扩频信号的所有相位延迟的搜索。PN码发生器定时速率至少是它的正常速率1.023MHz的32倍,R3寄存器定时至少是产生一个至少32*1.023MHz的R3寄存器时钟速率的两倍。PN码发生器在它收集R1中的下一个信号段所花费时间(1毫秒的1/16)的一半中,以该速率运行一个完整的周期,并且R3寄存器的复制码段具有所有可能的2046个状态(延迟)。
在图10a的处理流程图中,如上所述当R1和R2寄存器存储信号和NCO段时,PN码发生器计数1023次,并且R3寄存器计数2046次,以便比较所有可能的0.5码片采样与乘法器块326所形成的R1乘以R2的复数乘积。R3寄存器的2046个状态的每一个产生相应的SUMI和SUMQ相关器输出。在图4中,这些输出经加法器传送到N毫秒相干累加RAM334。SUMI和SUMQ相关器输出的2046个输出的每一个都加到N毫秒相干累加的2046个可能同相和正交存储字的每一个上。相干累加RAM中的每个字都代表2046个可能的0.5码片PN相位延迟的每一个。对于十六个段的每一段,R1和R2寄存器存储并保持它们相应的数据。R3寄存器具有所有2046个码相位状态,并且在这些状态的每一个状态期间,相关器的输出被加到相干累积RAM中的连续地址。当在R1和R2寄存器收集下一段时,重复处理。在处理了所有16段之后,对于1毫秒的处理,相干累加RAM包括对于所有可能的0.5码片PN码相位延迟的相关和。对于一些可编程整数毫秒相关累加,求和可以继续。
相干器还可以产生多个卫星的相关结果。在图4中,复用器328和330分别选择多个多普勒信号源和多个PN码信号源。通过正确对复用器定时,相关器可以计算用于一个缩短的码相位测试范围的多个相关输出。通过时分复用,该设计只需要一个时分PN码发生器和一个多普勒NCO发生器就可以完成在所有可能卫星信号上的处理。
图3表中的第三项说明例如是两颗卫星,每颗都在4个不同多普勒频率和码相位不确定空间的512个半码片上进行搜索。假定信号的码相位已经十分精确地知道,以便把它放在延迟的512个半码片内。在独立GPS的许多情况下以及在辅助操作模式中,这是可能的。控制处理器通过写入到控制器存器可以配置用于特定模式的接收机。相干和非相干累积RAM分为8段,每段是512字长。通过对复用器330定时以及通过编程一个到PN码发生器320中的预相关移位,8段的每一段都可以映射到期望的码相位的512个半码片,其中PN码发生器320驱动R3寄存器324。这样把8个特定码相位搜索范围映射到4096个字的可用累加RAM中,可用码相位搜索范围是4096/N,这里N是所观察的卫星的数量。当N=1或N=2时,由于PN码序列长度,最大码相位搜索空间是2046个半码片/多普勒。
示例性实施例表示0.5码片采样间隔。通过把驱动R1、R2和R3寄存器的电路的时钟速率分别增大2倍或4倍因子,采样间隔可以降低到0.25个码片或0.125个码片间隔。注意,对于同样的因子,这可以降低码相位搜索的范围,例如,如果1023个码片以0.5码片间隔测试,通过把驱动电路的R1、R2和R3寄存器的采样速率加倍,系统能够以0.25码片间隔检验码相位延迟的大约511个码片,从而产生更精确的码相位测量,因为系统将产生更近间隔的相关采样。该采样间隔也可以增大到单个码片间隔,从而通过在ISIP输出采样上引入0.5倍时钟速率,扩充搜索器的数量,这样搜索器数量就会超过4096个。例如,下面的表格定义了接收机数据输入速率的四种可能状态。
接收机数据输入速率 以码片为单位的采样间隔1.023MHz 1码片2.046MHz 1/2码片4.092MHz 1/4码片8.184MHz 1/8码片RAM单元的总数量保持在4092个,但是测量RAM的分配以1,1/2,1/4,或1/8码片间隔为步长。在一个实施例中,对于完整的码相位测试范围(在一个码片间隔上),可以同时测试四个卫星。在另一个实施例中,只要测量的相位延迟总数不超过4092个1/8码片总数,就可以用降低的相位延迟测试多达12颗的卫星。
实现1/2码片或1码片间隔的另一种方法是,通过每次迭代两个半码片,增加在每个连续的时钟周期上R3寄存器中存储的PN码的相位,从而在整个PN码长度上只产生1023个可能延迟,从而允许4092个相关器测试多达4个的全部相位延迟。对于这种方法,R1寄存器存储以1/2码片为间隔的采样,而不管R3寄存器每个时钟是超前1/2还是1码片。
图10b表示如何实现该方法。如在前面所讨论的,来自R1寄存器和R2寄存器的输入采样相乘以产生一个乘积寄存器P。然后,当在把复制PN发生器的码相位延迟的预定范围(存储在R3寄存器中)施加于最后的乘法器时,乘积寄存器P保持恒定,然后乘法器输出的所有128个状态在求和器块333中一起求和。
R3寄存器包括一个特定码相位延迟的复制PN码的128个状态。对于每个码相位延迟,相干RAM存储器334用作大量的独立累加器,每一个测试的可能码相位延迟对应一个累加器。在一码片模式中,R3寄存器的内容每个时钟周期超前两个半码片延迟,并且相干RAM334超前一个地址,以至于相干RAM中的每个存储位置代表连续的码相位延迟的一码片延迟试验。例如,对于延迟零,R3寄存器的相关结果写入零延迟累加器地址,对于延迟一(一个码片差),R3寄存器的相关结果写入延迟一累加器地址,等等。每个卫星测试多达1023个全码片,这些码片代表所有可能码相位延迟,或测试预定数量的码相位延迟,只填充相应数量的相干RAM存储器位置。
R3寄存器的1023个可能状态的每一个都构成了一个唯一的SUMI和SUMQ输出,该输出加到连续存储器位置中的相干累加RAM334。接收机是可编程的,以便相干累加是在N毫秒上,其中,通过存储所搜索的每颗卫星的N值,并且当正在搜索该特定卫星时把N值应用到相干累加器,从而使得每颗卫星在不同的N值上都是可编程的。这种替换模式要求信号采样以1/2码片间隔被载入R1寄存器中,而间隔是1/2码片的R3寄存器每个系统时钟周期超前一个码片(两个1/2码片)。
在一个实施例中,通过把多个相关试验指定给同一颗卫星,使用1/2码片R1和R2间隔产生小于半个码片的间隔,在相对于段PN码发生器有一个小的码相位偏移(即,小于1/2码片间隔)时就移动每个相关试验。在图14中,例如,第一个码复制信号段在0、0.5、1.0、1.5码片间隔产生输出。第二个码复制信号段偏离第一个信号段1/8个码片,在0.125、0.625、1.125、1.625码片间隔产生输出。第三个码复制信号段偏离2/8个码片,在0.250、0.750、1.250、1.750码片间隔产生输出。第四个码复制信号段偏离3/8个码片,在0.375、0.875、1.375、1.875码片间隔产生输出,等等。这样,可以产生1/8个码片间隔输出。通常在复制信号的第一和第二时间偏移之间的差是采样速率的时间间隔的小数倍。
通过把Delta_Cp参数设置到小于770个载波周期,可以实现偏移小于1/2码片延迟。例如,为了实现1/8个码片偏移,把Delta_Cp参数没置到小于1/8*1540,或192.5个载波频率。这可以偏移用于受影响的卫星的码相位计算机块中的相应Fractional_Code_Phase[i]项,通过192.5个载波周期的一个连续增加量,偏移每个测试域,以便使得进一步偏移的那个域稍后在770载波周期限制上循环(roll),这样在其它更小偏移之后不久就应用一个(离散1/2码片步长的)码相位校正。也就是,码相位延迟校正步长仍然是1/2码片物理步长,但是一个域应用一个校正的时间与一个随后域不相同,随后域与Delta_Cp参数成正比,这会产生一个代表码相位延迟的平均偏移,该延迟远小于每个受影响域上的1/2码片。
在图4中,N毫秒之后的相干和可以通过一个幅度检测器并被加到一个M毫秒非相干累加RAM326上。数M也是可编程的。M区间越大,信号处理增益越高。相干积分的N毫秒间隔设置频率搜索带宽为1/(0.001*N)Hz。
在一个N毫秒相干/M毫秒非相干积分工作模式中,搜索器的个数和用于每个搜索器的码相位和多普勒在接收机中都是可编程的。当数据比特沿到达时间(TOA)已知时,接收机可以工作在N毫秒预测比特相干积分/M毫秒非相干积分模式中,其中N典型地大于或等于20毫秒(GPS比特时间),最大达到并包括200毫秒。例如在申请号为09/539,137,题目为“Method and Apparatus For Determining Time in AGPS Receiver(用于确定GAP接收机中的时间的方法和设备)”,与本申请共同转让的待审美国专利中所描述的那样,在时间偏移搜索模式中,一旦检测到信号,接收机搜索到达的特定50BPS数据模式序列,在此通过引用将该专利结合进来。
在一种连续跟踪模式中,接收机连续地跟踪并解调来自观察中的所有卫星的50BPS卫星传输数据。在一种快速搜索模式中,接收机对所有可见卫星执行快速扫描,而没有处理器干预,直到完成整个序列,其中在扫描的最后产生一次中断。当重新供电时,接收机还可以在它停止的地方重新开始检测处理。
接收机还可以工作在比特同步和解调模式,其中为了提高信噪比性能,可以查找数据消息比特,例如GPS50BPS导航数据消息沿。在这种模式,传输数据比特沿到达时间的知识是未知的,但是已经确定了到达所关心的卫星的码相位延迟。
在图15中,在示例性实施例中,需要4096个相关器域的640个(大约15%)来确定用于一个或多个卫星的比特同步时间延迟。在正交域之间变化的参数是一个与积分和转储处理相关的时间,所有的积分和转储处理都被设置为一个20毫秒的预检波积分(PDI)值,其与数据比特时间相一致。用于20个积分器的每一个的转储命令延迟以每个正交域一毫秒变化,以便覆盖数据比特改变的所有可能延迟。在图2中所描述的“多普勒”和“CP_OFFST”参数不是垂直变化的。因为PDI参数是20毫秒,因此用传输的50BPS数据沿正好只能校准一个正交域。所有20个域的积分开始都被同步到最接近PN码相位0的R1段。一旦观察到许多数据转换,就把那个特定域非相干积分到一个值,该值与未校准的那些域相比是最大的。还有,为了在相干和中进行最大程度地抵消(当出现数据转换时),只有一个正交域将会被校准。另一种比特校准测量是,在许多数据转换被求和之后,查找积分到最小值的域。当最大比最小非相干积分器的和大约是数据比特时间的一半时,在该示例性实施例中是10ms,确认比特同步。在一些应用中,例如在具有高噪声量的那些应用中,可以在9、10、或11毫秒或一些其它大约是数据比特时间一半的范围,建立一个通过门限。使用这种方法,在信号电平降至接近20dB-Hz时,接收机都可以找到比特同步,与传统的比特同步方法相比可能好至少10dB。
可以使用替换的方法来确认比特同步。例如,可以计算在最大和与早1秒开始积分的和之间的一个差值。可以计算在最大和与晚1秒开始积分的和之间的一个第二差值。在一个实施例中,如果这两个差值都在彼此的某个容限内时,假定在预期相关差值的10%之内时,就确认比特同步。这种替换方法不依赖于对噪声敏感的最小和。其它技术可以使用最大和附近的其它和。
在图16中,对于一个相应于数据比特时间的时间间隔(在该例中是20ms),在第一扩频信号和第一复制信号之间的确定码相位延迟上执行多次相干相关。多个相干相关,即图16中0-19,在总数上相应于伪随机码比特的重复时间的整数(20)。每次相干相关相对于前一次相关偏移伪随机码比特的重复时间(在图16中是1ms)。确定多次相干相关的每一个的幅度,并且在至少两个数据比特时间(20ms)上对多个相干相关的每一个产生多个非相干幅度和。多个非相干幅度和在总数上相应于伪随机码比特的重复时间的整数。连续的部分相干相关结果存储在相应的多个存储器位置,这些位置总数相应于重复时间的整数,并且求和的连续部分相关结果存储在多个存储器位置。
在图16中,标绘的非相干信号幅度相对于时间偏移垂直。在相应的时间偏移上,峰值能量在域6,并且最小能量在域16,其差值大约是10ms(数据比特时间的一半),这确认比特同步检测已经发生。具有最大幅度的非相干和的偏移时间对应于数据比特消息的比特同步偏移时间。可以根据数据比特沿到达时间和实时时钟的本地时间来确定本地时间校正。
一旦使用前面所讨论的技术(或基于一些其它相关器结构的任何其它方法,其中包括在直接应用中所引用的现有技术)对每个卫星确定了比特同步时间,可以使用对于一个卫星的数据比特沿到达时间的知识来在时间上同步相干积分器中的20毫秒积分和转储处理(或相干积分)的开始,以在整个数据比特时间上积分,避免在积分处理期间的数据变换,并且最大化信噪比。
通常,基于用于一个信号的一个已知比特同步时间,具有多个信号的接收机数据比特同步,接收机和信号源的大致位置,和用于多个信号的每一个的信号源时钟校正参数,可以这样来完成确定接收机和多个信号的每个源之间的传播时间,基于相应的传播时间和相应的信号源时钟校正参数确定从接收机的大约位置到多个信号的每个源的时钟误差校正传播时间,并且对于比特同步偏移时间未知的信号,基于用于每个信号的相应时钟误差校正传播时间来确定用于多个信号的每一个的校准比特同步偏移时间;对于比特同步偏移时间已知的信号,基于已知的比特同步偏移时间和该信号的时钟误差校正传播时间,来确定用于多个信号的每一个的校准比特同步偏移时间。
在一个实施例中,信号是基于卫星的扩频信号,并且通过从天文历表或日历数据和卫星时间的推导来确定信号源位置。
用于每个所关心信号的时钟误差校正传播时间,PTC[I],是通过计算PTC[I]=PT[I]+C[I]来确定的,其中PT[I]是相应的传播时间,C[I]是基于相应信号源时钟校正参数的信号源时钟校正。通过接收机和信号源之间的距离R[I]除以光速,确定从接收机的大致位置到每个信号源的传播时间PT[I]。
对于多个信号源中比特同步偏移时间未知的每个信号源,通过计算BSOT[I]=BSOT[K]+(PTC[I]-PTC[K])来确定校准比特同步偏移时间BSOT[I],其中BSOT[K]是已知的比特同步偏移时间,PTC[K]是比特同步偏移时间已知的信号的时钟误差校正传播时间。在一个实施例中,多个信号的每一个相干地在20毫秒上积分,每次相干积分的开始时间相对于相应的比特同步偏移时间BSOT[I]偏移。
在示例性的基于卫星的扩频信号实施例中,下溢和上溢都被校正,以使BSOT[I]总是在0到20毫秒的范围内。这可以使用一个简单的算法通过软件实现,例如while(BSOT[I]>20)BSOT[I]=BSOT[I]-20;并且while(BSOT[I]<0)BSOT[I]=BSOT[I]+20。
在该实施例中,这些步骤将基于来自一个卫星的比特同步偏移时间,对所有卫星的20毫秒相干积分间隔的开始进行时间校准,这样最大化所有卫星的信号处理增益。
虽然该示例性实施例和应用都是在从卫星传输的扩频信号的情况下讨论的,但是本领域普通技术人员应该可以理解,本发明的多种方法和结构也可以用于搜索和同步来自其它源的扩频信号,例如从基于地面的通信系统中来的扩频信号。
本发明和目前认为的其最佳模式已经以以下的方式进行了讨论通过本发明人建立其所有权并且使本领域普通技术人员能够制作和使用本发明,应该理解和认识到,在不背离本发明的范围和精神的前提下,在此公开的示例性实施例具有多种等效方式,并且可以对其进行无数的修改和改变,本发明的范围和精神不应该被示例性实施例所限制,而应该由所附的权利要求限制。
权利要求
1.一种用于扩频信号的数据消息比特同步的方法,其中所述扩频信号具有用数据消息比特调制的伪随机码比特重复序列,所述数据消息比特具有数据比特时间,所述数据比特时间是所述伪随机码比特的整数个重复时间,所述方法包括接收第一扩频信号;确定码相位延迟;对相应于所述数据比特时间的一个时间间隔,在所述第一扩频信号和第一复制信号之间的确定的码相位延迟上执行多次相干相关;所述多次相干相关在总数上对应于所述伪随机码比特重复时间的整数个数;相对于前一次相干,把每次相干相关偏移所述伪随机码比特的重复时间;确定多次相干相关的每一个的幅度;对在至少两个数据比特时间上的多次相干相关的每一个,产生多个非相干幅度和,所述多个非相干幅度和在总数上对应于所述伪随机码比特的重复时间整数个数。
2.如权利要求1所述的方法,其中,通过以一个大于接收所述第一扩频信号的伪随机码比特的速率的速率连续执行多次相干相关,从而虚拟地并行执行多次相干相关。
3.如权利要求1所述的方法,其中,通过检验具有最小和最大幅度的非相干和之间的积分开始时间差大约是数据比特时间的一半,来确认比特同步,相应于具有最大幅度的非相干和的偏移时间,确定数据比特消息的比特同步偏移时间。
4.如权利要求3所述的方法,其中,基于所述比特同步偏移时间,确定所述数据消息比特的数据比特沿到达时间,根据数据比特沿到达时间和实时时钟的本地时间,确定本地时间校正。
5.一种用于扩频信号的数据消息比特同步的方法,其中所述扩频信号具有用数据消息比特调制的伪随机码比特重复序列,所述数据消息比特具有数据比特时间,所述数据比特时间是伪随机码比特的整数个重复时间,所述方法包括接收第一扩频信号;确定码相位不确定性范围;对相应于所述数据比特时间的一个时间间隔,在所述第一扩频信号和第一复制信号之间的码相位不确定性范围上执行多次相干相关;所述多次相干相关在总数上对应于所述伪随机码比特的重复时间的整数个数;相对于前一次相干,把多次相干相关中的每次偏移所述伪随机码比特的重复时间;确定所述多次相干相关的每一个的幅度;对在至少两个数据比特时间上的多个相干相关的每一个,产生多个非相干幅度和,所述多个非相干幅度和在总数上对应于所述伪随机码比特的重复时间的整数个数。
6.如权利要求5所述的方法,其中,通过以一个大于接收所述第一扩频信号的伪随机码比特的速率的速率连续执行多次相干相关,从而虚拟地并行执行多次相干相关。
7.如权利要求5所述的方法,其中,确定码相位不确定性范围的码相位延迟,其中对于该范围的非相干和具有最大幅度;通过检验具有最小和最大幅度的非相干和之间的积分开始时间差大约是所述数据比特时间的一半,来确认比特同步;相应于具有用于确定的码相位延迟的最大幅度的非相干和的偏移时间,确定所述数据比特消息的比特同步偏移时间。
8.一种用于扩频信号的数据消息比特同步的方法,其中所述扩频信号具有用数据消息比特调制的伪随机码比特的重复序列,所述消息比特具有数据比特时间,所述数据比特时间是所述伪随机码比特的整数个重复时间,所述方法包括接收第一扩频信号;通过连续地对所述扩频信号分段而形成多个连续信号段;在所述多个连续信号段的每一个和相应的连续复制信号段上执行多次连续的部分相干相关,所述多次连续部分相干相关在总数上对应于所述伪随机码比特的重复时间的整数个数;对所述多个连续信号段所执行的多次连续部分相干相关的连续结果求和;把多个求和连续结果相对于另一个结果偏移多个不同的所述伪随机码比特重复时间;对在至少两个数据比特时间上的所述多次相干相关的每一个,产生多个非相干幅度和,所述多个非相干幅度和在总数上对应于所述伪随机码比特的重复时间的整数个数。
9.如权利要求8所述的方法,其中,通过以一个大于接收所述第一扩频信号的伪随机码比特的速率的速率连续执行多次相干相关,从而虚拟地并行执行多次相干相关。
10.如权利要求8所述的方法,其中,确定码相位不确定性范围的码相位延迟,其中对于该范围的非相干和具有最大幅度;检验具有最小和最大幅度的非相干和之间的差大约是所述数据比特时间的一半;相应于具有用于确定的码相位延迟的最大幅度的非相干和的偏移时间,确定所述数据比特消息的比特同步偏移时间。
11.如权利要求8所述的方法,其中在相应的多个存储器位置上存储连续部分相干相关的结果,这些存储位置在数量上对应于所述重复时间的整数个数;在所述多个存储器位置上存储求和的连续部分相关结果。
12.一种用于接收机的数据比特同步的方法,其中所述接收机具有多个信号,所述方法基于一个信号的已知比特同步偏移时间、已知接收机和信号源的大致位置以及多个信号的每一个的已知信号源时钟校正参数,所述方法包括确定所述接收机和所述多个信号的每个的信号源之间的传播时间;基于相应的传播时间和相应的信号源时钟校正参数确定从所述接收机的大致位置到所述多个信号的每个的信号源的时钟误差校正传播时间;对于比特同步偏移时间未知的信号,基于用于每个信号的相应时钟误差校正传播时间,对于比特同步偏移时间已知的信号,基于已知的比特同步偏移时间和所述信号的时钟误差校正传播时间,来确定用于多个信号的每一个的校准比特同步偏移时间。
13.如权利要求12所述的方法,其中,所述信号是基于卫星的扩频信号,通过从天文历表数据和卫星时间的推导来确定信号源位置。
14.如权利要求12所述的方法,其中,所述信号是基于卫星的扩频信号,通过从日历数据和卫星时间的推导来确定信号源位置。
15.如权利要求12所述的方法,其中,通过计算PTC[I]=PT[I]+C[I]确定用于每个信号的时钟误差校正传播时间PTC[I],其中PT[I]是相应的传播时间,C[I]是基于信号源时钟校正参数的相应信号源时钟校正。
16.如权利要求15所述的方法,其中,确定所述接收机的大约位置和所述多个信号源的每一个之间的距离R[I],通过相应距离R[I]除以光速来确定从所述接收机的大致位置到每个所述信号源的传播时间PT[I]。
17.如权利要求15所述的方法,其中,对于所述多个信号源中比特同步偏移时间未知的每个信号源,通过计算BSOT[I]=BSOT[K]+(PTC[I]-PTC[K])来确定校准比特同步偏移时间BSOT[I],这里BSOT[K]是已知的比特同步偏移时间,PTC[K]是比特同步偏移时间已知的信号的时钟误差校正传播时间。
18.如权利要求17所述的方法,其中,对多个信号的每一个相干积分20毫秒,每次相干积分的开始时间相对于相应的比特同步偏移时间BSOT[I]进行偏移。
全文摘要
用于扩频信号的数据消息比特同步的方法和系统,其中扩频信号具有一个用数据消息比特进行调制的伪随机码比特(314)重复序列,该消息比特的数据比特时间是伪随机码比特(314)的整数个重复时间。在一个实施例中,对于比特同步偏移时间未知的信号,基于用于每个信号的相应时钟误差校正传播时间;对于比特同步偏移时间已知的信号,基于已知的比特同步偏移时间和该信号的时钟误差校正传播时间,来确定多个信号的每一个的校准比特同步偏移时间。
文档编号G01S1/00GK1543715SQ02816019
公开日2004年11月3日 申请日期2002年8月6日 优先权日2001年8月16日
发明者托马斯·迈克尔·金, 托马斯 迈克尔 金, 乔治·杰弗里·盖尔, 杰弗里 盖尔, L 斯特罗瑟, 特洛伊·L·斯特罗瑟 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1