专利名称:Gps和glonass多信道并行信号编码混频方法及编码混合器的制作方法
技术领域:
本发明涉及卫星信号追踪系统,主要是指一种GPS和GL0NASS多信道并行信号编码混频方法及编码混合器。
背景技术:
已知GPS采用码分多址信号,GL0NASS采用平分多址信号。传统的卫星信号追踪系统只能接收GPS或GL0NASS信号,不能同时接收GPS和GL0NASS信号。
发明内容
本发明的目的就是提供一种GPS和GL0NASS多信道并行信号编码混频方法及编码混合器,通过编混码、累加和丢弃、编码相位计数、编码拨动计数、历元计数,实现了一台接收机可同时接收GPS和GL0NASS多信道信号,较好地克服了现有技术存在的不足。实现本发明的方法是包括编混码、累加和丢弃、编码相位计数、编码拨动计数、历元计数,其中包括把来自载波混合器输出的基带I&Q信号和本地复制生成的PROMPT以及 TRACKING编码相乘得到四个独立的相关结果,该相关结果会被送到”累加和丢弃”模块进行积分。该方法还包括所述累加和丢弃包括对混合器的输出在一个编码周期内进行积分,每个信道都有四个独立的16位累加器,这些累加器的结果表示了在整个积分过程中I/Q信号和PROMPT 以及TRACKING编码的相关性,因为这些寄存器不具备写覆盖保护机制,其中的数据必须在下个‘DUMP’操作之前就被读取。所述编码相位计数包括编码相位计数器计算所生成编码的半位的个数,然后在每个TIC时刻把这个数值存放到CHx_C0DE_PHASE寄存器。所述编码拨动计数器包括编码拨动计数器用来把生成的编码在范围0-2047的范围内以半个码位的单位拨动,在更新模式,拨动发生在下个DUMP操作之后,在预置模式下它发生在下个TIC时刻,所有的波动操作都和当前的编码相位有关,每次需要拨动操作的时候都要多编码拨动计数器进行写入操作,在拨动过程中相应信道的累加器是被禁用的, 以使第一个结果有效,当一个拨动操作被写入时信道被禁用,那么拨动将在信道被启用的同时发生。所述历元计数包括历元计数器持续计算一秒间隔内的编码周期,这个被表达为一个表示以Ims位单位的积分时间(0-19)的5位字,加上一个包含以20ms为单位的计数 (0-49)的6位字,历元计数器可以预先被加载以和来自卫星的数据流同步,历元计数器的值在更新模式下会马上被传送到计数器,或者在预置模式下,在下个TIC时刻被传送,历元计数器的数值在每个TIC时刻被锁存至CHx_EP0CH寄存器,另外它的瞬时值可以从CHx_ EP0CH_CHECK寄存器查验到。
所述编码混频方法还包括寄存,该寄存包括控制寄存器(Control Registers),用来编制器件的功能;状态寄存器(Status Registers),用来只是器件内的进程的状态;累加器数据寄存器(Accumulated Data Registers),每毫秒提供一次C/A编码的累加结果, 这是捕获和追踪卫星信号的原始数据;测量数据寄存器(Measurement Data Registers), 锁存载波数字控制振荡器相位,载波周期计数,编码数字控制振荡器相位,一毫秒内的历元数,还有每9. 09或者100毫秒间隔的以20毫秒为单位的历元数,这是用于计算伪距的原始数据。实现本发明的编码混合器是包括编混码器、累加和丢弃器、编码相位计数器、编码拨动计数器、历元计数器,其中编混码器经累加和丢弃器、编码相位计数器、编码拨动计数器与历元计数器连接。该编码混合器还包括所述编码混合器还包括寄存器,该寄存器包括控制寄存器、状态寄存器、累加器数据寄存器、测量数据寄存器。本发明具有的有益效果采用编混码、累加和丢弃、编码相位计数、编码拨动计数、 历元计数的方式,实现了一台接收机可同时接收GPS和GL0NASS多信道信号。
图1是本发明的整合载波相位图,展示了积分载波相位等式是如何被推到出来的。其中1.Reading at TICo (在 TICo 时刻读取):CHx CARR DCO PHASE0 = PH02. Reading at TICo (在 TICo 时刻读取):CHx CARRDCO PHASE1 = PH1CHx.CARR.CYCLEi = K1+!3. Reading at TICo (在 TICo 时刻读取):CHx CARR DCO PHASE2 = PH2CHxCARR_CYCLE2 = K2+1Δ Yl = 2 π Kl+(2 π-PHO)+PHl= 2 π (K1+D-PH0+PH1= 2 π (CHX_CARR_CYCLE 1-CHX_CARR_DC0_PHASE0/1204+CHX_CARR DC0_PHASE 1/1024);
LASTΣ
Σ Δ Yl =2π( '=I CHX_C ARR_C YCLE1 -CHX_CARR_DCO_PHASEO/1024-CHX_ CARR—DCO—PHASELAST/l 024);NOTE :The carrier cycle counter counter value is stored at everyTIC and the counter is reset(注意载波周期计数器的数字在每个TIC时刻被存储,同时计数器复位)图2是本发明的TAME标记发生器的结构图。其中40MhzMASTER CLOCK(40Mhz 主时钟);20-bit counter QO-位计数器);CNTL (控制);CONTROL LOGIC (控制逻辑);
21-BITPR0GRAMMABLE D0WM21-位可编程倒计时);MARK FBx (FBx 标记);1 SEC. TIME MARK (1 秒时刻标记);EXTERNAL LINE DRIVERS (外部线路驱动);图3是本发明的TAME标记计时的结构图。其中NAVSOLUTION COMPUTATION DELAY (导航结果计算延迟);TIME BETWEEN TICs IS CONSTANT (TIC 时刻之间的时间间隔是常量);OUTPUT UTC TIME MARK (输出世界时标记);图4是本发明的更新模式下清空时序。其中1023CHIPS(1023 位);DUMP (清空);C/AC0DE CHIPNO (C/A 编码位编号);Tl =Load 4into CHx_SLEff register = 2*5chip delay (Tl 向 CHx_SLEW 写入 5= 2*5 位延迟);图5是本发明的追踪模块示意图。其中ADC (数模转换);MUX (多路复选器);SIG MAG (信号强度);TEST (测试);NA PROW BAND CONVERTER (导航可编程基带整流器);SELECT SOURCE&SELCET MODE (选择信号源 & 选择模式);SOURCE SELECTOR (信号源选择);CARRIER DCO (载波 DC0);CARRIER CYCLE COUNTER (载波周期计数器);32-BIT ACCUMULATE&DUMP Q_TARCKING (32-位累加 & 清空 Q_ 追踪);32-BIT ACCUMULATE&DUMP Q_TARCKING (32-位累加 & 清空 Q_ 提示);CODE SLEW (编码位滑动);C/A, L2, GLO CODE GENERATOR (C/A, L2, GLO 编码发生器);CODE PHASE COUNTER (编码相位计数器);CODE DCO (编码 DC0);EPOCH COUNTER (历元计数器);32-BITACCUMULATE&DUMPI_TARCKING (32-位累加 & 清空 1_ 追踪);32-BIT ACCUMULATE&DUMP I _TARCK ING (32-位累加 & 清空 1_ 提示);IN and OUTDATABUks (输入输出总线);图6是本发明的真实时间时钟示意图。其中REALTIME CLOCK(真实时间时钟);MICROPROCESSOR SYSTEM (微处理器系统);ENABLE (激活)RTC DELAY (真实时间时钟演示);
NOTE (注意)1 latch counter value saved on TIC(1 将 TIC 时刻储存的计数器数字锁存);2 regulator read with measurement data (2 校准器禾口测量数据一起读取);图7是本发明的真实时间时钟时序示意图。其中RTC TIME READ HERE BY PROCESSOR(真实时间在此被处理器读取);POSITION FIX COMPUTED ON THIS TIC. TIC IS GNSS TIME TRAGGED (位置信息在这个TIC计算出来。TIC是GNSS时间触发的);NOTES (注意)1 D = delay between RTC timebase and system time ta(l D =真实时间时 中的时间基和系统时间ta之间的延迟);2 consecutive measurement of D give an indication of RTC drift (2 连续车辆的D给出真实时间时钟漂移的提示);3 Resolution of D is a ftnction of clock to RTC_DELAY counter (3 D 的分辨率是RTC_DELAY计数器时钟的方程);图8是本发明的微小误差时序示意图。其中ERR0RTERMS(误差术语);in tSl equal to error terms of GPS time computation while getting the NAV solution(对于tSl 相当于取得导航结果时的GPS时间计算值);in Dl :Can be too long or too short by r, where r = RTC_DELAY counter clock period(对于Dl 用r有可能会太长或者太短,在这里,r = RTC DELAY计数器时钟周期);in D2 :same as Dl (对于 D2 禾口 Dl 相同);in DRTC :Residual error in RTC drift estimate = effective RTCdrift-estimatedRTCdrift (对于DRTC :真实时间时钟漂移估算的残余误差=有效的真实时间时钟漂移-估算的真实时间时钟漂移)。
具体实施例方式下面结合附图对本发明作进一步说明本发明方法包括编码发生器编程对每个信道,CHx_SATCNTL寄存器根据如下被编程1.设置S0URCESEL位选择输入信号源2.设置TRACK_SEL位设置追踪臂编码为”提前”或者”落后”(相对于”准时”臂)。3.设置G2_L0AD位选择要求的PRN编码。4.根据期望的编码相位偏差对CHx_C0DE_SLEW寄存器编程。拨动操作会在CHx_ RSTB被释放时生效。第一个DUMP操作会为信道生成累加数据以及设置相关的CHx_NEW_ ACCUM_DATA 状态位。5.释放 RESET_C0NTR0L 的 CHx_RSTB 位以激活信道。当编码时钟被禁用(用来拨动编码相位)“积分”和”丢弃”模块保持重置。只有当拨动操作完成之后才会开始累加相关结果。多信道搜索一颗卫星可以通过使用MULTI信道地址和适当差异的编码拨动值。读取累加数据在每个”丢弃”操作相应的CHx_NEW_ACCUM_DATA状态位会在ACCUM_STATUS_A寄存器中被设置。状态寄存器和所有的累加寄存器(CHx_l_TRACK,CHx_Q_TRACK, CHx_l_PR0MPT, CHx_Q_PR0MPT)被映射都连续的地址。如果需要,在每个ACCUM_INT中断,这些寄存器数据都可以作为一个连续的区块被读取。或者,状态寄存器可以被轮训。现在累加寄存器是写覆盖保护的,所以当新的数据生效时系统必须很快响应。是否需要在每个DUMP操作都处理累加操作取决于具体的应用。读取这些寄存器数据的顺序是可以选择的,但是理想的是CHx_ Q_PR0MPT寄存器最后被读取,因为这会重置CHx_NEW_ACCUM_DATA位。ACCUM_STATUS_B的CHx_MISSED_ACCUM位指示新的累加数据丢失了。这些寄存器位只能通过写入CHx_ACCUM_RESET或者重新激活信道来清除。搜索其他编码相位当期望在下个编码相位进行相关,比如之后一整个码位,C0DE_SLEW要被编程写入 2(单位是半个码位)。拨动操作会在下个DUMP进行。C0DE_SLEW的效果和当前的编码相位有关。要重复C0DE_SLEW,寄存器要被重新写入,哪怕拨动的大小是一样的。一旦卫星信号被探测到(达到了相关阈值),编码和载波的追踪循环就可以关闭了。追踪循环的参数必须被整合到软件中以适应具体的应用。数据位同步数据位同步算法应该找到数据位传输的时刻。处理器计算当前的一毫秒历元然后把这个数值写入1MS_EP0CH计数器。理想状态下,历元计数器的访问应该发生在每个DUMP的累加寄存器写入操作之后。或者,历元计数器可以任由它自行运转,偏差由软件在每次它读取历元寄存器的时候加上去。注意如果积分操作穿越位元边界,积分结果会很小。读取测量数据在每个TIC时刻,测量数据都会被锁存在测量数据寄存器中CHx_EP0CH,CHx_C0DE_PHASE,CHx_CARRIER_DCO_PHASE,CHx_CARRIER_CYCLE_HIGH,CHx_CARRIER_CYCLE_LOff,CHx_C0DE_DC0_PHASE.ACCUM_STATUS_B或者MEAS_STATUS_A寄存器必须在一个大于TIC频率的频率上进行轮询(以查验一个TIC是否已经发生),否则测量数据会丢失。ACCUM_INT或者MEAS_INT 事件可以用来启动这个操作。测量数据的读取既可以由中断发动也可以是轮询的。对于中断发动的防范微处理器在每个MEAS_INT中断后读取ACCUM_STATUS_B或者MEAS_STATUS_A 寄存器,如果TIC位被设置,跟着就读取测量数据。对于轮询法,ACCUM_STATUS_A寄存器总是在ACCUM_INT中断后被读取。另外ACCUM_STATUS_B寄存器在每个ACCUM_INT中断后被读取以保证没有累加数据被丢失以及检查TIC位(以及几个状态位)。软件检查TIC位来确定新的测量数据已经可以被读取。预置模式(PRESETMODE)寄存器的PRESET/UPDATEB位置高位,每个信道都可以被编程进入预置模式。当TIC事件发生,卫星编码,历元数值和拨动数被加载,一个新的相位被编程写入编码数字控制振荡器,这个相位和振荡器中之前的数值无关。在TIC时间之前信道根据它之前的设置运作。预置模式多载波数字控制振荡器和载波周期计数器没有影响。一旦预置模式被开动,那它应该被允许运行至结束。要求的运行序列如下1.寄存器选择预置模式,同时写入合适的新设置2.加载编码和载波数字控制振荡器增量数值。注意这些立即生效所以会影响当前的测量。3.加载以下的寄存器CHx_C0DE_DC0_PHASE,CHx_C0DE_SLEff andCHx_EP0CH_C0UNT_L0AD·CHx_EP0CH_C0UNT_L0AD最后加载很重要,因为它会激活下个TIC的预置操作中断(Interrupts)存在一个中断源INT0UT.默认的INTOUT周期是505. 05s。这个周期可以通过 PR0G_ACCUM_INT寄存器或者通过改变SYSTEM_SETUP寄存器的INTERRUPT_PERIOD位来重新设置。默认的TIC 周期是 99. 9999ms。它可以通过 PR0G_TIC_HIGH 禾Π PR0G_TIC_L0ff 寄存
器重新配置。硬件信号处理引入的信号通道延时当期望从GNSS信号产生一个精确的时钟参考或者给位置定位加上时间标记,接收机的延时必须加以考虑。信号通道延时包括两部分,一个是模拟通道延时,随着温度和组件公差变动,一个数字通道延时,如果振荡器漂移变动可以无视,那它就是常数。数字延时的估值简单些,它由以下几部分组成1.从前端的(SMPCLK) SIGN和MAG位的采样边缘到采样锁存重采样(比从SMPCLK 到前端传播延时少175ns)的时间。2.加上相关器在相同的SIGN和MAG位上的相关操作所需时间(175ns)。3.加上累加器中用来锁存采样数据的延时。4.减去相关操作和累加器锁存相位(75ns)之前的TIC时钟相位之间的时间。通过射频接收机的模拟延时被设置为滤波器中的组延时参数,对于C/A编码所用的贷款或在1到2ms的范围内,所以淹没在数字延时中。但是它是可以被测量和修正的。积分载波相位测量相关器追踪信道的硬件允许通过CHx_CARRIER_CYCLE_HIGH/_LOW和CHx_ CARRIER_DCO_PHASE寄存器的作为测量数据一部分的测量值在每个TIC时刻被采样。CHx_ CARRIER_CYCLE_HIGH/_LOff寄存器包含了 20位元的载波数字控制振荡器的正向零相交的数值;这会比过去的整个周期的数值多一 G位在_HIGH,16位在_L0W寄存器)。CHx_
8CARRIER_DCO_PHASE寄存器包含了周期小数或者相位,以及10位的分辨率来给出2/2046 弧度的增量。要获取几个TIC周期的积分载波相位,所需要做的就是在每个TIC时刻读取 CHx_CARRIER_CYCLE_HIGH和_L0W寄存器并且对读取值求和。当载波周期测量是从一个正向零相交到下个正向零相交,这会给出一个比完整的载波周期高1的数值。最后的载波周期小数必须被加到这个数值上,而开始的载波周期小数必须被减去。两个数值都是从CHx_CARR_DCO_PHASE寄存器被读取。总的相位变化可以如下被计算出来积分载波相位=2 π * Σ Numbers in Carrier Cycle Counter+final Carrier DCO phase-Initial Carrier DCO phase这个积分载波相位可以和”delta”距离(到各个卫星的距离变化)联系起来。当和卫星的轨道参数一起使用,” delta”距离会给出一个定位点之间接收机的移动测量值,这个测量值是相对于定位点里的,所以可以用来对它们做平滑。它同时也可以直接给出速度值。” delta”距离是包含噪声的而且大多数数值取决于卫星的运动,所以速度的确定必须使用来自充分分离的TIC的数据。对于位置平滑所有的”delta”距离都会被包含在导航滤波器的输入中。该滤波器会执行一个” delta”距离和距离的动态平均。生成时间记号(TMARK)时间记号(Time Mark)发生器被设计成每一秒提供一个可以和给定的时间基(比如接收机时间基,GPS, GL0NASS世界协调时同步单元或者世界协调时)同步的时间记号输出信号。时间记号在某个可编程的和TIC相关的延时后生成。
1.偶尔捕获测量数据(在任一的TIC时刻)用来2.解算测量时刻的世界协调时(t0)。注意分辨率只能精确到接收机中的硬件传输速度,一般是几个毫秒,除非这些延时被校准过而且世界协调时分辨率根据校准结果被修正。3. Compute on which 100ms TIC, tm, to take the nextsample of measurement data such that 计算在哪个100毫秒TIC时刻对下个测量数据进行采样以满足UTC TIME MARK-tm = δ 1+ δ 2这里UTC TIME MARK =和一个世界协调时秒同步的期望时间记号δ 1 = k χ (time between TICs),这里 k = INTEGER 而且 δ 1 >导航结果计算延时。δ 2 =时间记号和100ms_TIC标记” tr”之间的时间偏差(拥有50ns的分辨率)δ 2 < (TIC时刻之间的时间)
4.在时刻tm捕获测量数据。在时刻tm计算Nav结果。在UTC时刻传输Nav结果。 通过已知的振荡器漂移,时间记号生成器单元加上的25ns延时以及校准过的传播延时,计算DOWN COUNT,要编程输入可编程倒数计数器的数值以把时间记号延时δ 2。5.在tr事件发生之前对倒数计数器编程写入D0WNC0UNT值。6.在 tr 时间之后 2000ms 内输出 ARINC DATA (跟随 ARINC743)。7.定位tm+1然后返回步骤4。世界协调时(UTC)误差预算以下的误差预算都和时间记号(Time Mark)的产生有关系总误差=TDOP+时钟分辨率+振荡器漂移残余误差。+计算引入误差。+时间记号传输通过器件/线路产生的延时。+ 硬件中的传输延时,从天线到相关器到测量数据采样器。其中的典型值是1. TDOP 当选择可用性(SA)打开,估计值为177ns (2 δ数)2.时钟分辨率50ns (在21位可编程倒数计数器中)。3.振荡器漂移残余误差(a)来自从上个振荡器漂移计算开始的TCXO上的温度变化⑴TQCO最大斜率是士 lppm/°C(ii)温度最大变化是5°C /minute(iii)振荡器漂移每秒计算一次所以在世界协调时记号中最多存在一秒钟。比如以lppm/°C x5°C /min χ Isec = 83ns作为温度步进变化或者41. 5ns (取整到 50ns)作为线性斜率(b)因为漂移估值中最大的误差是50ns(大致猜测)总的振荡器漂移误差= (a)+ (b) >> 100ns.4.计算引入误差假设为足够多的有用位被保留所以这个误差趋近于0。5.时间记号传输通过器件/线路产生的延时这个会根据GPS接收机的输出通过使用倒数计数器的反馈来校正和补偿,会存在残余误差,因为(a)时钟分辨率=50ns(b)反馈延时校正=25ns (估计值)6.硬件中的传输延时这些都被估计在几个毫秒的范围内所以是时间记号(Time Mark)同步错误的主要组成部分。当整个硬件设计已经完成,一个估计算法可以被包含在软件中以提高总的精确度。总误差=177ns+50ns+100ns+0+75ns+硬件延时总误差=402ns+硬件延时.寄存器详细描述ZVM2060IP寄存器列表寄存器地址
寄存器
(十六进制)
CNTLχΟΟtox07CHI/13/25/37 Control
CNTLχ08toxOFCH2/14/26/38 Control
CNTLxlOtoxl7CH3/15/27/39 Control
CNTLX18toxlFCH4/16/28/40 Control
CNTLx20tox27CH5/17/29/41 Control
CNTLx28tox2FCH6/18/30/42 Control
CNTLX30tox37CH7/19/31/43 Control
CNTLx38tox3FCH8/20/32/44 Control
CNTLx40tox47CH9/21/33/45 Control
CNTLX48tox4FCH10/22/34/46 Control
CNTLx50tox57CHl1/23/35/47 Control
CNTLx58tox5FCH12/24/36/48 Control
CNTLx60tox67MULTI Control
68TMARK_SI
6BPR0G_ACCUM_INT
6DPR0G_TIC
CNTLx70tox77ALL Control
79TMARK_L0AD
x7CTEST_C0NTR0L
x7DMULTI_CHANNEL_SELECT
x7ESYSTEM_SETUP
x7FRESET_C0NTR0L
x80tox83Status Registers
ACCUMx84tox87CHl/13/25/37Accumulate
ACCUMx88tox8BCH2/14/26/38Accumulate
ACCUMx8Ctox8FCH3/15/27/39Accumulate
ACCUMx90tox93CH4/16/28/40Accumulate
ACCUMx94tox97CH5/17/29/41Accumulate
ACCUMx98tox9BCH6/18/30/42Accumulate
ACCUMX9Ctox9FCH7/19/31/43Accumulate
ACCUMxAOtoxA3CH8/20/32/44Accumulate
ACCUMxA4toxA7CH9/21/33/45Accumulate
ACCUMxA8toxABCH10/22/34/46Accumulate
ACCUMxACtoxAFCHll/23/35/47Accumulate
ACCUMxBOtoxB3CHll/23/35/47Accumulate
ACCUMXDOtoxD3ALL Accumulate
ACCUMXD4toxD7MULTI Accumulate0164]ACCUM XD8 toxDBWH00LALL Accumulate0165]ACCUM XDC toxDFWHHOOLMULTIAccumulate0166]External0167]CORTC_DELAY_L0168]event0169]External0170]ClRTC_DELAY_H0171]even0172]CNTL COReset ON0173]CNTL ClReset OFF0174]Bus Test xC2DATA BUS TEST0175]CNTL EO toE7WH00L MULTI Control0176]CNTL FO toF7WH00L ALL Control0177]CNTL FFWH00L RESET_C0NTR0L0178]表4.寄存器列表0179]地址0180](十六进写入函数读取函数0181]制)0182]x80 STATUSACCUM一STATUS_C0183]x81 未使用MEAS_STATUS_A0184]x82 未使用ACCUM一STATUS_A0185]x83 未使用ACCUM一STATUS_B0186]表5·0187]地址0188]写入函数读取函数0189](十六进制)0190]CNTL+0 SATCNTLC0DE_SLEff0191]CODEPHASE0192]CNTL+1C0DE_PHASE0193]COUNTER⑴0194]CARRIER_CYCL0195]CNTL+2CARRIER_CYCLE_L0ff0196]E_C0UNTER(1)0197]CARRIER_DC0_I0198]CNTL+3CARRIER_DC0—PHASE0199]NCR_HIGH0200]CARRIER0201]CNTL+4EPOCH(Latched 0)0202]DCOINCRLOW
CNTL+5CNTL+6CNTL+7
ACCUM+0
CODE DCO INC
R_HIGH CODE DCO INC
ACCUM+1 ACCUM+2
R_LOff EPOCH_COU
NT_LOAD CODE SLEW CO
UNTER
ACCUM_RESET
SIG_SEL
CODE_DCO_PRE
SET PHASE
CODE_DCO_PHASE CARRIER_CYCLE HIGH EPOCH_CHECK(Not latched)
I_TRACK
Q_TRACK I_PROMPT
Q PROMPTACCUM+3一表6.追踪信道寄存器注意CODE_PHASE_COUNTER 和 CARRIER_CYCLE_CONTROL 寄存器只能在测试模式在通过把TEST CONTROL寄存器的第三位置高而选中之后才能被写入。χ含义0对应1..信道,1对应13. . 24信道,2对应25. . 36信道,3对应37. . 48信道,4对应49. .60信道ZVM2060IP寄存器列表相关器寄存器相关寄存器的地址可以通过一个基础地址和特定的寄存器增量来计算。相关器每个信道的CNTL和ACCUM寄存器单元的基础地址显示在表4中,增量在表 6中给出。比如CH3_C0DE_DC0_INCR = 18H+06H = 1EH.CH23_C0DE_DC0_INCR = 118H+06H = 11EH. 在ACCUM和CNTL部分都有一些地址在CHx的地方被标记了 ALL或者MULTI。一次操作写入这些地址就会写入所有一组的12个信道或者一组通过MULTI_CHANNEL_SELECT选择的信道所以可以用来快速初始化系统或者使用很少的总线加载下个搜设置。这是一个只写操作所以相应的CHx读取操做在标记了 ALL或者MULTI的地址是无效的。要同时写入所有的芯片信道要使用WH00LALL控制地址。可以看到CNTL中的地址被用来在写模式下控制器件但是在读模式给出测量数据数据被写入32位接口的输入缓冲器然后会在接下来的7 (或者6)相位时钟的整个周期被传输到它的目标寄存器。所以写入周期应该至少有300ns。
相关器寄存器分配如下,有两个只写寄存器没有任何数据位,它们是1.对CHx_ACCUM_RESET寄存器的写操作(和写入的数据是什么无关)会重置该信道的 ACCUM_STATUS_A,ACCUM_STATUS_B,and ACCUM_STATUS_C 寄存器2.3.对STATUS寄存器的写操作0会把所有信道的各种状态标记的状态值锁存到 ACCUM_STATUS_A, ACCUM_STATUS_Band ACCUM_STATUS_C 寄存器中。这就允许了追踪机制是轮询为基础的,而不是由中断驱动的。寄存器是以字母顺序而不是以地址顺序排列的,以便各部分更容易地参考。除非另外声明否则LSB是0位而 MSB是31位或者锁存在数据寄存器的最高位。注意大多数寄存器不同时具备读和写的功能,所以很多地址被不同功能的只读或者只写寄存器共享。ACCUM_STATUS_A (读取地址)ACCUM_STATUS_A是一个包含了十二个状态位状态
31 to 15 14位元
位元名
ACCUM_MT
未使用-低位
未使用-低位
未使用-低位
CHl2_NEff_ACCUM_DATA
CH11_NEW_ACCUM_DATA
CH10_NEff_ACCUM_DATA
CH9_NEff_ACCUM_DATA
CH8_NEff_ACCUM_DATA
CH7_NEff_ACCUM_DATA
CH6_NEff_ACCUM_DATA
CH5_NEff_ACCUM_DATA
CH4_NEff_ACCUM_DATA
CH3_NEff_ACCUM_DATA
CH2_NEff_ACCUM_DATA
CHl NEW ACCUM DATA
13 12 11 10 9 8 7 6 5 4 3 2 1
0 _ _ _ 表7
的寄存器,它在每个INTOUT的有效边被采样和锁存。它们也可以通过对STATUS 寄存器执行一个写操作在要求下被采样和锁存(这只在通过设置SYSTEM_SETUP寄存器中 NTERRUPT_ENABLE位使中断被终止的情况下才是安全的)。微处理器必须在该信道的下个 DUMP操作前响应每个INT0UT,然后读取信道寄存器。The ACCUM_INT bit在每个INTOUT中断被置高,它通过读取ACCUM_STATUS_A寄存器被重置。这个状态位是通过硬件主重置而不是软件重置被重置的(MSB)。The CHx_NEff_ACCUM_DATA状态位表明在该信道一个DUMP操作已经发生,而且新的累加数据已经可以读取了。每一位都是在相关的CHx_Q_PR0MPT寄存器的读取操作或者 CHx_ACCUM_RESET寄存器的写入操作的下降沿被清除的。注意该寄存器的信道特定位在INTOUT或者STATUS寄存器写入操作的有效边之前是不会显示它们的新数值的。但是禁用一个信道会马上清除这些状态位。ACCUM_STATUS_B (读取地址)
BitBitname
31 to 14未使用-低位
13TIC
12MEAS_I NT
11CHlS!_MISSED_ACCUM
10CHll_MISSED_ACCUM
9CHlC)_MISSED_ACCUM
8CH9__MISSED__ACCUM
7CH8__MISSED__ACCUM
6CH7__MISSED__ACCUM
5CH6__MiSSED__ACCUM
4CH5__MISSED__ACCUM
3CH4__MISSED__ACCUM
2CH3__MISSED__ACCUM
1CH2__MISSED__ACCUM
0CH1__MISSED__ACCUM
表8
ACCUM_STATUS__B的低12位在每个INTOUT信号的有效边被采样和锁存
以通过对STATUS寄存器执行一个写操作来在要求下被采样和锁存(和ACCUM_STATUS_A类似)。The TIC bit在每个TIC被置高而且通过读取ACCUM_STATUS_B寄存器被清空。它存在的意义是告诉微处理器新的测量数据已经就位了。它通过一个硬件主重置(RESET置低)而不是一个软件重置(RESET_C0NTR0L中的MRB)被重置。如果TIC周期大于50ms,那么在被告知中断被启用的情况下,MEAS_INT位在每个TIC和每个TIC之前的50ms被置高, 同时也通过读取这个寄存器被清空。这个状态位可以被微处理器用作一个标记,来个软件模块交换计时。它通过一个硬件主重置(RESET置低)而不是一个软件重置被重置。CHx_ MISSED_ACCUM状态位(置高时)表示在前一个数据被读取前有一个因为CHx中的DUMP操作被遗漏的累加数据。这个状态位直到CHx_ACCUM_RESET被写入后才被锁存。软件必须考虑到会有数据因为读取过程太慢而遗漏数据的情况,比如不考虑累加数据读取的导航信息数据位传输的检验。一旦太多的数据被遗漏,那系统的信号信噪比会降低。这个位元的主要的存在目的是一个作为追踪惯例工作质量的校验-一旦整个设计完成,这个位元不应该被设置。注意该寄存器的信道特定位在INTOUT或者STATUS寄存器写入操作的有效边之前是不会显示它们的新数值的。但是禁用一个信道会马上清除这些状态位。相关器追踪信道的硬件允许有通过CHx_CARRIER_CYCLE_HIGH和_L0W以及CHx_ CARRIER_DCO_PHASE寄存器的积分载波相位的测量,这个测量数据是每个TIC时刻采样的测量数据的一部分。CHx_CARRIER_CYCLE_HIGH和_L0W寄存器包含了载波数字控制振荡器正向零相干的20位数值(_HIGH4位,_L0W16位)。周期小数可以从CHx_Carrier_DCO_Phase寄存器被读取。在CHx_CARRIER_CYCLE计数器中,一个TIC产生两个连续的操作。首先它把4位周期计数器的较高有效位锁存到CHx_CARRIER_CYCLE_HIGH中,把16位较低有效位锁存到 CHx_CARRIER_CYCLE_LOW中。然后它再重置周期计数器。每次TIC之后,只要载波数字控制振荡器累加器生成一个作为载波周期完成的溢出,周期计数器就加一。没有多普勒和振荡器漂移补偿的载波数字控制振荡器的标称频率是 1 · 405396825MH,所以在IOOms内会有大约140540个周期。几乎在所有的应用下从一个TIC间隔到另外一个之间的载波数字控制振荡器周期数的差别不大,所以可以预测这个值的最高有效位,这样就只用读取CHx_CARRIER_ CYCLE_L0ff 寄存器。CHx_CARRIER_CYCLE_HIGH和_L0W寄存器中的内容没有被写覆盖保护机制所保护所以必须在下个TIC之前被读取。关于载波周期计数器更多的信息请参照第七页的追踪模块章节。CHx_CARRIER_DCO_INCR,MULTI_CARRIER_DCO_INCR,ALL_CARRIER_DCO_INCR(写入地址)Bits 25 to 0 载波数字控制振荡器(相位增量)。一个沈位的增量数值对一个 27位的累加器数字控制振荡器就足够了,因为最高有效位的增量总是零。INCR寄存器的最低有效位表示了如下给出的步进最小步进频率=(40MHz+7) +227 = 42 · 57475mHz输出频率=CHx_CARRIER_DCO_INCR* (最小步进频率).如果是GP2015/GP2010类型的前端,在考虑多普勒偏移或者晶振误差之前的中频标称值是1 ·405396^6ΜΗζ。通过对CHx_CARRIER_DCO_INCR寄存器写入01F7B1B9H就可以生成一个1 · 405396845MHz的本地振荡器频率。ACCUM_STATUS_C (读取地址)
位元位元名
31tol2未使用-低位
11CH12_NARR0ff_WIDE
10CH11_NARR0W_WIDE
9CH10_NARR0ff_WIDE
8CH9_NARR0ff_WIDE
7CH8_NARR0ff_WIDE
6CH7_NARR0ff_WIDE
5CH6_NARR0ff_WIDE
4CH5_NARR0ff_WIDE
3210
CH4_NARR0ff_WIDE CH3_NARR0ff_WIDE CH2_NARR0ff_WIDE CHl NARROW WIDE表 16ACCUM_STATUS_C bits在每个INTOUT信号的有效边被采样和锁存。它们可以通过对STATUS寄存器执行一个写操作来在要求下被采样和锁存(和ACCUM_STATUS_A类似)。The CHx_NARR0ff_WIDE status bit表明CHx频道的累加数据的编码类型。高位表示NARROW类的编码而地位表示WIDE类型的编码。每一位都在DUMP是被确定,把该信道的 CHx_NEff_ACCUM_DATA位置高。其他模式下该位无用。注意该寄存器的信道特定位在INTOUT或者STATUS寄存器写入操作的有效边之前是不会显示它们的新数值的。但是禁用一个信道会马上清除这些状态位。CHx_ACCUM_RESET (写入地址)Bits 15 to 0 未使用。提供了只写地址以允许和给定信道或者所有信道相关的状态位ACCUM_STATUS_A, ACCUM_STATUS_B,andACCUM_STATUS_C的重置。当这些地址被写入是,数据是不相干的。CHx_CARRIER_CYCLE_COUNTER,MULTI_CARRIER_CYCLE_COUNTER,ALL_CARRIER_CYCLE_COUNTER(写入地址)对这些寄存器的写操作只在测试模式下有效(TEST_C0NTR0L寄存器的第三位被置高)。总线的数值被载入CHx_CARRIER_CYCLE_COUNTER寄存器的低16位,同时该寄存器的高4位被置零。CHx_CARRIER_CYCLE_HIGH,CHx CARRIER_CYCLE_LOff(读取地址)_HIGH bits 15 to 4 未使用-读取时置低·_HIGH bits 3 to 0 载波周期计数位 19-16._L0ff bits 15 to 0 载波周期计数位 15-0.CHx_CARRIER_DC0_PHASE (读取地址)Bits 31 to 10 未使用-读取时置低.Bits 9 to 0 在最后的TIC采样的CHx_CARRIER_DC0_PHAS寄存器的较高有效位 (26 到 17)。最低有效位的权重是一个载波数字控制振荡器周一的2/10M弧度。这些位元组成一个0到1023无符号数。CHx_CARRIER_DC0_PHASE提供子周期相位测量信息,和CHx_ CARRIER_CYCLE_HIGH和_L0W提供的信息互补。寄存器数值在每个TIC被锁存,而且没有任何写覆盖保护机制。CHx_C0DE_DC0_INCR_L0ff,MULTI_C0DE_DC0_INCR_L0ff,
ALL_C0DE_DC0_INCR_L0ff(Write Address)Bits 31 to 25:未使用。Bits 24 to 0 编码数字控制振荡器相位增量。—个25位的增量数值对一个沈位的累加器数字控制振荡器就足够了,因为对最高有效位的增量总是0。INCR寄存器的最低有效位表示了如下给出的步进st印Min. step frequency= (40MHz + 7) +226 = 85 · 14949mHzOutput frequency= CHx_CARRIER_DCO_INCR* (最小步进频率).注意编码数字控制振荡器驱动编码发生器以提供半个码位时间的步进量,所以必须被编程以使需要的码率加倍。这意味着码率的分辨率是42 · 57475mHz在考虑多普勒偏移或者晶振误差之前,GPS的编码标称频率是1. 023000000MHz。 通过对CHx_C0DE_DC0_INCR寄存器写入016EA4A8H就可以生成一个1. 022999968MHz的码率。CHx_C0DE_DC0_PHASE (读取地址)Bits 15 to 10 未使用(读取时置低)。Bits 9 to 0 CHx_C0DE_DC0_PHASE 包含了编码数字控制振荡器相位累加器中在每个TIC时间采样的十位较高有效位05 to 16)。这是一个0到1023的无符号整数。最低有效位的权重是2 π/10 弧度。2 π是半个码位的长度,所以伪距分辨率是1/2048个码位(相当于0. 15m或CHx_C0DE_DC0_PRESET_PHASE,MULTI_C0DE_DC0_PRESET_PHASE,ALL_C0DE_DC0_PRESET_PHASE(写入地址)Bits 31 到 8 未使用Bits 7到0 编码数字控制振荡器相位的较高有效位(25到18),在预置模式中会在下个TIC时间被载入。在预置模式中,CHx_C0DE_DC0_PRESET_PHASE寄存器中的八位用零填满低位,然后在下个TIC被传送到编码数字控制振荡器累加器中。之前的累加器相位完全被改写。 PRESET_PHASE寄存器是个只写寄存器,它可以在预置模式和更新模式的任意时刻被写入, 但是只在进入预置模式之后才有效。PRESET相位的最低有效位的权重是半个码位周期的 2 π /256 弧度。在更新模式中,这个寄存器除了为预置模式做准备意外,没有任何作用。关于预置模式的更多的内容请参考16页的ZVM2060IP详细操作。CHx_C0DE_PHASE (读取地址)CHx_C0DE_PHASE_C0UNTER,MULTI_60DE_PHASE_C0UNTER,
18
ALL_C0DE_PHASE_C0UNTER(写入地址)Bits 31 to 11 未使用(读取时置低)。Bits 10 to 0 :CHx_C0DE_PHASE(读)它反映了编码相位计数器(一个在编码发生器时钟驱动下的11位二进制加计数器)的状态,在每个TIC被保存。相位被表示为一些0 到2046的半码位位长。读取到2046是非常少见的,只有在TIC获得编码相位的时刻正好处于计数器到达2046之后以及被C/A编码发生器的DUMP信号重置计数器之前。DUMP信号同样增加历元计数器数值,所以相位值2046加上之前的历元值的意义等同于0加上增加的历元值,两个一个都是有效的。如果TIC发生在编码拨动时,读取的数值将会是零,这种情况下该信道的测量数据是没用的。Bits 10 to 0 :(写)载入 CHx_C0DE_PHASE_C0UNTER 中的 11 位。这些寄存器只有在测试模式中才可能被写入,激活测试模式是通过把CHx_C0DE_PHASE_C0UNTER中的TM_ TEST位置高。CHx_C0DE_SLEff (读取地址)CHx_C0DE_SLEff_C0UNTER,MULTI_C0DE_SLEff_C0UNTER,ALL_C0DE_SLEff_C0UNTER(写入地址)CHx_C0DE_SLEff寄存器可以在任何时刻被写入。如果在更新模式的DUMP之前或者预置模式的TIC之前发生了两次访问写入,那最后一次的数据会在拨动操作中被使用。如果一个信道不活动,一个非零的拨动数值应该在信道被释放之前被写入CHx_ C0DE_SLEff寄存器。这个写入操作会在重置释放前立刻生效。如果TIC事件发生在拨动时或者拨动后一小会,信道将不会被锁定到卫星,所以该信道的测量数据没有用。读取拨动计数器的功能只是为了硬件或者软件的测试。它只是在读操作发生在真正的拨动操作的情况下给出一个非零的结果。CHx_EPOCH_CHECK (读取地址)Bits 31 to 14 未使用·Bits 13 to 8 :CHx_20MS_EP0CH 的瞬时值·Bits 7 to 5 未使用Bits 4 to 0 :CHx_lMS_EP0CH 的瞬时值读取这个地址给出CHx_lMS_EP0CH和CHx_20MS_EP0CH计数器的瞬时值。它可以用来校验历元计数器是否被软件正确地初始化了。它的数值不会被锁存,而是在每个DUMP 时刻增加。为了保证正确的结果,这个寄存器应该在确保读取周期内没有DUMP的前提下进行读取操作,这是通过把读取操作和NEW_ACCUM_DATA寄存器进行同步来完成的。这些值的范围和之前在CHx_EP0CH寄存器中看到的是一样的。CHx_EP0CH (读取地址)Bits 31. · 14,7,6 and 5 未使用,读取时置低
Bits 13to 8 :CHx_20MS_EP0CH在最后一个TIC事件采样的20ms历元计数器数值,范围是0到49。Bits 4 to 0 :CHx_l MS_EP0CH会被载入Ims历元计数器的数值,数值范围是0到 19。这个操作手当前的信道模式影响(预置或者更新)。在更新模式,写入这些寄存器的数据会被立刻传送到Ims和20ms历元计数器。而在预置模式,数据会在下个TIC之后被传送。很重要的一点是在预置模式的载入序列中要把CHx_EP0CH寄存器的载入放在最后,因为对这个寄存器的写操作的后沿在下个TIC激活这个预置操作。关于预置模式请参考16页的ZVM2060IP的详细操作。CHx_l_TRACK,CHx_Q_TRACK,CHx_l_PR0MPT,CHx_Q_PR0MPT(读取地址)Bits 31 to 0 :累加数据寄存器,用来在每个DUMP存储32位积分和丢弃累加器的结果。包含在寄存器中的数值是二进制补码,范围是-2 ★★ 31到+ H 31-1)。这些寄存器是只读的,可以在任意时刻被读取。它们没有任何写覆盖保护机制,所以这些四个寄存器的组必须在一个ACCUM_INT之后很快被读取以确保新来的数据不会造成写覆盖。CHx_l_PR0MPT和CHx_Q_PR0MPT寄存器包含了来自准时臂的累加数据。CHx_l_ TRACK和CHx_Q_TRACK寄存器包含了来自追踪臂的累加数据。如果一个信道不活动,一个非零的拨动数值应该在信道被释放之前被写入CHx_ C0DE_SLEff寄存器。这个写入操作会在重置释放前立刻生效。如果TIC事件发生在拨动时或者拨动后一小会,信道将不会被锁定到卫星,所以该信道的测量数据没有用。读取拨动计数器的功能只是为了硬件或者软件的测试。它只是在读操作发生在真正的拨动操作的情况下给出一个非零的结果。CHx_EPOCH_CHECK (读取地址)Bits 31 to 14 未使用.Bits 13 to 8 :CHx_20MS_EP0CH 的瞬时值·Bits 7 to 5 未使用Bits 4 to 0 :CHx_lMS_EP0CH 的瞬时值读取这个地址给出CHx_lMS_EP0CH和CHx_20MS_EP0CH计数器的瞬时值。它可以用来校验历元计数器是否被软件正确地初始化了。它的数值不会被锁存,而是在每个DUMP 时刻增加。为了保证正确的结果,这个寄存器应该在确保读取周期内没有DUMP的前提下进行读取操作,这是通过把读取操作和NEW_ACCUM_DATA寄存器进行同步来完成的。这些值的范围和之前在CHx_EP0CH寄存器中看到的是一样的。CHx_EP0CH (读取地址)Bits 31. · 14,7,6 and 5 未使用,读取时置低Bits 13 to 8 :CHx_20MS_EP0CH在最后一个TIC事件采样的20ms历元计数器数值,范围是0到49。Bits 4 to 0 :CHx_l MS_EP0CH会被载入Ims历元计数器的数值,数值范围是0到 19。这个操作手当前的信道模式影响(预置或者更新)。在更新模式,写入这些寄存器的数据会被立刻传送到Ims和20ms历元计数器。而在预置模式,数据会在下个TIC之后被传送。很重要的一点是在预置模式的载入序列中要把CHx_EP0CH寄存器的载入放在最后,因为对这个寄存器的写操作的后沿在下个TIC激活这个预置操作。关于预置模式请参考16页的ZVM2060IP的详细操作。CHx_l_TRACK,CHx_Q_TRACK,CHx_l_PR0MPT,CHx_Q_PR0MPT(读取地址)Bits 31 to 0 :累加数据寄存器,用来在每个DUMP存储32位积分和丢弃累加器的结果。包含在寄存器中的数值是二进制补码,范围是-2 ★★ 31到+ H 31-1)。这些寄存器是只读的,可以在任意时刻被读取。它们没有任何写覆盖保护机制,所以这些四个寄存器的组必须在一个ACCUM_INT之后很快被读取以确保新来的数据不会造成写覆盖。CHx_l_PR0MPT和CHx_Q_PR0MPT寄存器包含了来自准时臂的累加数据。CHx_l_ TRACK和CHx_Q_TRACK寄存器包含了来自追踪臂的累加数据。
为了准确地追踪卫星,只有伴随CHx_NEW_ACCUM_DATA位置高的数据读取是被允许的。溢出或者下溢的情况是不会发生的。CHx_SATCNTL,MULTI_SATCNTL,ALL_SATCNTL(写入地址)位元位元名1514-13121110
9-0 表17
GPS_NGL0N TRACK_SEL PRESET/UPDATEB C0DE_0FF/0NB Not used G2_L0AD(9 to 0)
CHx_SATCNTL是一个只写寄存器,可以在任意时刻被写入。在更新模式,任何对寄存器内容的修改都会在下个DUMP生效,而在预置模式则是在下个TIC。无论在哪个模式,对每个位元都有效。重要的一点是,在开始预置序列初始化以使信道CHx_SIG_SEL,MULTI_SIG_SEL,ALL_SIG_SEL(写入地址)Bit 22 to 20 选择模数转换输入搜索4位元-31 28,27 24...Bit 19 选择模数转换搜索I输入量位元-I或者Q。Bit 18 选择模数转换搜索Q输入量位元-Q或者I。Bit 17 倒转I&Q输入最高有效位-I[l]和Q[l]。Bit 16 把 I&Q 输入 SIG,MAGN 转换到。Bits 15 to 14 选择输入信号。参见表20。Bits 13,12 对于信道1到49未使用,但是对于信道49到60是GPS L2编码发生器控制。Bit 11 窄带宽带相关器开关。Bits 10 to 8 未使用。Bit 7 to 0 窄带转换器编程的编码。位元编码选择13 120 0GPS C/A 或者 GL0NASS0 1GPS L2 CM Code1 0GPS L2 CL Code1 1GPS L2 both Code (CL & CM)
表 20位元15 140 00 11 01 1表 20a位元31 到 1211109876543210表 22MULTY_CHANNEL_SELECT(写入地址) CHx_SELECT,如果被置高,就激活CHx的多信道写入操作。这可以用来把几个信道设置为几乎相同的状态。对于对一颗卫星的并行搜索,比如设置各个载波数字控制振荡器至同样的频率,或者在搜索过程中,用相同的数值调整所有选择的信道(例如编码拨动值来把编码相MEAS_STATUS_A(写入地址)CHx_MISSED_MEAS_DATA状态位,置高的时候意味着一个或者更多的测量数据组在上次对这个寄存器读取之后丢失了。它是通过被同一信道的编码相位计数器读取来置高的,前提是编码相位计数器的前一个数值还没有被读取。它是通过来自MEAS_STATUS_A寄存器的读取操作或者禁用信道来完成重置的。如果这个寄存器总是在编码相位计数器之后被读取,意味着编码相位计数器在上一次被读取之后有测量数据丢失了。CHx_MISSED_MEAS_DATA的所有位都是通过硬件 (RESET)或者软件(MRB)被置低。
输入选择
低频输入tl 低频输入t2 高频输入测试输入
位元名未使用 CH12SELECT CHll SELECT CH10SELECT CH9 SELECT CH8 SELECT CH7 SELECT CH6 SELECT CH5 SELECT CH4 SELECT CH3SELECT CH2 SELECT CHl SELECT
The MEAS_INT bit在每个TIC和每个TIC之前50ms (如果TIC周期大于50ms)被置高,并且通过对这个寄存器的读取被清空。这个位元被用作微处理器的时间软件模块交换的标志,并且通过硬件主重置(RESET置低)而不是MRB软件重置来重置。The TIC bit在每个TIC被置高而且通过读取这个寄存器被清空。这个位元的作用是告诉微处理器新的测量数据已经就位了。这个位元通过硬件主重置(RESET置低)而不是MRB软件重置来重置。位元位元名
31 to15 未使用
15MARK_FB_ACK
14RTC_TIC_ACK
13TIC
12MEAS_INT
11CHl 2MISSED_MEAS_DATA
10CHl1MISSED_MEAS_DATA
9CH10ISSED__MEAS__DATA
8CH9MISSED__MEAS__DATA
7CH8MISSED__MEAS__DATA
6CH7MISSED__MEAS__DATA
5CH6MISSED__MEAS__DATA
4CH5MISSED__MEAS__DATA
3CH4MISSED__MEAS__DATA
2CH3MISSED__MEAS__DATA
1CH2MISSED__MEAS__DATA
0CHlMISSED__MEAS__DATA
表21
TheRTC_TIC_ACK bit在接收到实时时钟中断和这个中断发生之后的TIC被设置
它通过读取RTC_DELAY寄存器或者硬件主重置(RESET置低)而不是RESET_C0NTR0L中的 MRB来重置。The MARK_FB_ACK bit在MARKFB管脚接收到一个TMARK反馈信号或者在TICO信号的选取边被设置。它通过读取TMARK_L0W寄存器或者硬件主重置(RESET置低)而不是 RESET_C0NTR0L 中的 MRB 来重置。PR0G_ACCUM_INT(写入地址)Bits 15 to 13 未使用.然后它加载一个储存在它的预置寄存器中的预置值并开始重新倒计时。如果预置值是P,计数顺序是P,P-I,P-2,. . .,1,0,P,P-I。因此,计数器除以P+1就产生一个长度是 (P+1)*时钟周期的输出。因为INTOUT计数器是由多相时钟终驱动的,时钟周期是7*时钟周期(标称值是40MHz, 25ns)。储存在PRESET寄存器中的数值可以通过两种方法来修改一个是通过切换SYSTEM_SETUP寄存器中的INTERRUPT_PERIOD位,或者通过写入PR0G_ACCUM_INT地址。任意一个操作都会把前一个预置值的内容覆盖掉,两个方法可以单独使用也可以同时使用。INTERRUPT_PERIOD = low 的值也是在一个主重置时 _0B45H(505. 05 microsecond)加载的。INTERRUPT_PERIOD = high 的值-1313Η(854· 7microsecond)。INTOUT 计数器可以通过直接写入PR0G_ACCUM_INT地址被加载。在这种情况下新的ACCUM_INT周期如下INTOUT 周期= (PR0G_ACCUM_INT l)x 7/40MHZPR0G_TIC_HIGH,PR0G_TIC_L0ff(写入地址)用来设置TIC的周期。TIC是一个21位的二进制倒数计数器产生的。当它数到零时,它会加载它的预置寄存器中的预置值然后开始重新倒数。如果预置值是P,计数顺序是 ρ,ρ-ι,ρ-2,.. .,1,0,P,P-1。因此,计数器除以P+1就产生一个长度是(P+1)*时钟周期的输出。因为TIC计数器是由多相位时钟驱动的,时钟周期是7*时钟周期(标称值是40MHz, 25ns)。写入PR0G_TIC地址可以修改储存在预置寄存器中的值。这些操作会把之前的预置值写覆盖。PR0G_TICBits 20 to 19 计数器分割比。TIC计数器可以通过直接向PR0G_TIC地址写入的方式来加载。需要注意的一点是对TIC计数器数据锁存其的数据传输是在多相位时钟的写周期的控制下的,对一只寄存器的写入发生在主内部写操作之后。使用PR0G_TIC写入地址时TIC周期如下TIC 周期= ((PR0G_TIC_HIGH χ 65536) +PR0G_TIC_L0ff+l)x 7/40MHZ)RESET_C0NTR0L (写入地址)CHx_RSTB 当被设置为低有效,重置位就禁止时钟相位传输到CHx追踪信道,然后重置累加数据标记,编码数字控制振荡器和载波数字控制振荡器累加器,以及I&Q累加器, 编码相位计数器。CHx_RSTB并不重置载波周期,编码拨动或者历元计数器。在重置的末尾, 信道激活重置编码发生器至之前编程好的起始相位。在对单个卫星信号的的并行搜索算法中,这些都是必须的。这个算法使用很多信道追踪一个卫星,以使搜索从所有信道的一个已知的相对编码相位开始。在重置状态,CHx中所有的控制寄存器都可以入场被编程和读取。 为了在几个不同的信道同时重启常规的操作,相应的CHx_RSTB位在相同的写操作过程中应该被置高。所有的CHx_RSTB都通过主重置(硬件的和软件的)被置低,所以对这个寄存器的第0位置低会迫使12到1位都置低,不管他们之前在总线中是什么值。可以通过在信道不被使用时把CHx_RSTB置低来达到功耗最小化。位元位元名31 to 13 未使用12CH12_RSTB
25
11CH11_RSTB10CH10_STB9CH9_RSTB8CH8_RSTB7CH7_RSTB6CH6_RSTB5CH5_RSTB4CH4_RSTB3CH3_RSTB2CH2_RSTB1CH1_RSTB0MRB,低有效软件重置表 23STATUS (写入地址)Bits31o0:未使用对这个地址的写入操作,不管总线中的数据是什么,会所错 ACCUM_STATUS_C寄存器中的所有状态位的状态。在读取状态位寄存器之前对STATUS进行写操作可以保证读取的状态值的稳定。锁存在写入操作脉冲下降沿之后300纳秒之内有效。INTOUT信号的有效边传输也会锁存状态位的状态,所以在一个中断处理管理中,不需要在状态位寄存器被当作一个对INTOUT信号响应而读取的时候对STATUS进行写入操作。 对STATUS的写操作之在状态寄存器在没有和中断同步的时候被读取的情况下才需要。这两个机制是互相排斥的,所以不应该同时被使用;如果两个同时使用,在INTOUT信号发生后不久的对STATUS写操作会导致混乱的读取。为了避免冲突,SYSTEM_SETUP寄存器中的 INTERRUPT_ENABLE位在写入STATUS机制被使用时应该被置低。
如果SYSTEM_SETUP寄存器中的INTERRUPT_ENABLE位被置低,中断将不会锁存状态寄存器中的状态位,但是STATUS写入访问会。SYSTEM_SETUP (写入地址)
位元位元名
31 to 11未使用
10MEAS_INT_SOURCE
9未使用
8未使用
71NTERRUPT_PERI0D
6EX_IMP_P0L
5INTERRUPT—ENABLE
4未使用
3未使用
2未使用
1未使用
0CARRIER_MIX_DISABLE
26
表 24MEAS_INT_SOURCE 当被置高时MEAS_INT的输出通过读取MEAS_STATUS_A被清空, 当被置低是通过读取MEAS_STATUS_A清空。INTERRUPT_PERIOD 当置低时,中断周期被设置为大约505秒,但置高时设置位邪4秒。更详细的信息参见22页对PR0G_ACCUM_INT的描述。主重置迫使INTERRUPT_PERIOD 位被置低。EX_IMP_P0L 当置低时,RTC开始依靠低到高的转变,否则依靠高到低。INTERRUPT_ENABLE 当置低是INTOUT和MEAS_INT中断被禁用(被屏蔽),置高时都被激活。主重置迫使INTERRUPT_ENABLE位被置低。CARRIER_MIX_DISABLE 当置高时,载波混合器都被载波数字控制振荡器输入端的固定的‘+1’电平驱动,所以输入数据不做更改就传送到编码混合器。主重置迫使 CARRIER_MIX_DISABLE 位被置低。TEST_C0NTR0L (写入地址)TEST_C0NTR0L寄存器的作用完全是激活各种测试模式。一个主重置(RESET位置低)能把所有位都置低,给出常规的操作。FE_TEST 当置高,这个测试控制信号强制信道11的位元位元名31到6未使用5TEST_DATA4未使用3TM_TEST2FE_TEST1未使用0未使用表 25SIGN(符号)输入和信道5的MAG (强度)输入置低。这就允许了对前端SIGN(信道 5)和MAG(信道11)占空比的评估。要被测试的前端是通过CH5_SATCNTL和CH11_SATCNTL 寄存器的S0URCESEL位来选择。要正确地传送SIGN和MAG数至累加器,载波和编码混合器都要被设置成透明的。载波混合可以通过两种方式禁用(1)把CARRIER_MIX_DISABLE位(SYSTEM_SETUP 寄存器的第0位)置高以迫使所有信道载波数字控制振荡器的输入为a+10)如果在测试过程中要求后续位置搜索,通过设置015_和CH11_CARRIER_DC0_INCR为全0以给出恒定的电平(频率为0).应该在信道5和11的载波数字控制振荡器被编程至频率为0时,通过把这两个信道简单地设置进重置状态(通过使用RESET_C0NTR0L寄存器的6和12位)被设置为一个已知的数值,把这个电平设置的到一个已知的数值。这个重置迫使所有的相位为 0,所以驱动准时同相混合器为固定的1,1而不是随机从_2,-1,+1,或者-2中选取。C/A编码混合必须通过把C0DE_0FF/0NB位(CH5_和CHl 1_SATCNTL寄存器中的11 位)置高来禁用。然而因为计数器的周期是通过编码发生器的DUMP信号来设置的,编码发生器的数字控制振荡器时钟必须通过对编码数字控制振荡器编程来设置为要求的频率,即使编码输出被禁用。典型的数值是标称编码码率的频率,所以SIGN和MAG的计数要超过毫秒。监视接收机前端的结果可以用于故障诊断,也可以同于通过设置软件参数对特定前端或者SIGN/MAG占空比进行卫星追踪优化。信道5被用来寻找SIGN信号的占空比。同相累加器的CH5_I_PR0MPT位在置高时会给每个SIGN采样加1,置低时减1,所以如果占空比是正确值50%,累加和总是会接近0, 小的误差来自于累加周期开始和结束时采样的不平衡。占空比可以通过下式计算N=累加周期的总采样数NSIGNl = SIGN为高时的总采样数NSIGNO = SIGN为低时的总采样数ACC5 = DUMP之后读取的CH5_I_PR0MPT累加器的总值N = NSIGN1+NSIGN0ACC5 = NSIGN1-NSIGN0SIGN duty cycle = Rs = NSIGN1/N = (N+ACC5) /2N(标称值50%)信道11被用来寻找MAG信号的占空比。同相累加器的CH11_I_PR0MPT位在置高时会给每个MAG采样减3,置低时减1。如果占空比正确(% 30),累加和是-1.6(采样数) 加上留给累加周期开始和结束时采样的不平衡的富余量。占空比可以通过下式计算N=累加周期的总采样数NMAG3 = MAG为高时的总采样数NMAGl = MAG为低时的总采样数ACCll = DUMP之后读取的CH11_1_PR0MPT累加器的总值N = NMAG3+NMAG1TEST_DATA 这个位元设置当TEST_S0URCE被设置时生成的测试数据的调制符号 (正的或是负的)。RTC_DELAY_HIGH,RTC_DELAY_L0ff (读取地址)RTC_DELAY_L0W是一个包含无符号整数的16个较低有效位16位寄存器,存储的数值是从一个RTC中断发生到下个TIC之间的时钟周期数。每个计数表示175纳秒。RTC_DELAY_HIGH是一个包含同上整数的4个较高有效位的4位寄存器。寄存器内容是无符号数,有效范围是0到TIC/175纳秒。RTC_DELAY 中的误差是士 175 纳秒。MEAS_STATUS_A 寄存器的 RTC_TIC_ACK 状态位指示是否收到了一个RTC中断。通过读取RTC_DELAY寄存器或者主重置可以清空RTC_TIC_ACK状态位。TMARKSI(读取地址)Bits 31 to 3 未使用。Bits 19 to 4 时间标记长度+1,单位是毫秒
Bits 3 时间标记的反向性0-低到高,1-高到低。Bits 2 to 0 时间标记反馈有效边选择000-上升沿 MARKFB001-下降沿 MARKFBxlO-上升沿 TICOxll-下降沿 TICO100-上升沿 TMARK100-下降沿 TMARKTMARK_L0AD (写入)这两个寄存器是用来对时间标记发生器进行编程的。使用21位无符号整数字进行编程,有效范围是0到IFFFFF(16进制数)。数值表示时间延迟,该延迟小于25纳秒,从下个TIC到TMARK输出信号,单位是50 纳秒。对TMARK_L0AD写操作的下降沿激活时间标记发生器。当下个TIC发生时,时间标记计数器被加载,然后倒数到零,在这个时候TMARK被输出。TMARK_HIGH, TMARK_L0ff (读取)TMARK_L0W是一个包含一个无符号整数的16个较低有效位的16位寄存器,数值是从TMARK输出信号产生开始经过的50纳秒间隔数减去1.TMARK_HIGH是一个包含同上数值的5个较高有效位的5位寄存器。外围设备功能寄存器外围功能寄存器的地址请参照ZVM2060IP寄存器列表。DATA_BUS_TEST(读/写地址)这是一个16位的读/写寄存器,功能是允许对一个16位宽的数据总线进行简单的测试,具体方法是通过写入一个16位数字然后确认读回的数据是否是一样的。同时这个寄存器可以用来存储预设值,这个值可以被检验,以确定是否发生了一个完全的动力丧失 (低于数据保持水准)。
权利要求
1.一种GPS和GL0NASS多信道相关器的编码混频方法,包括编混码、累加和丢弃、编码相位计数、编码拨动计数、历元计数,其特征是包括把来自载波混合器输出的基带I&Q信号和本地复制生成的PROMPT以及TRACKING编码相乘得到四个独立的相关结果,该相关结果会被送到”累加和丢弃”模块进行积分。
2.如权利要求1所述的GPS和GL0NASS多信道相关器的编码混频方法,其特征是所述累加和丢弃包括对混合器的输出在一个编码周期内进行积分,每个信道都有四个独立的16 位累加器,这些累加器的结果表示了在整个积分过程中I/Q信号和PROMPT以及TRACKING 编码的相关性,因为这些寄存器不具备写覆盖保护机制,其中的数据必须在下个‘DUMP’操作之前就被读取。
3.如权利要求1所述的GPS和GL0NASS多信道相关器的编码混频方法,其特征是所述编码相位计数包括编码相位计数器计算所生成编码的半位的个数,然后在每个TIC时刻把这个数值存放到CHx_C0DE_PHASE寄存器。
4.如权利要求1所述的GPS和GL0NASS多信道相关器的编码混频方法,其特征是所述编码拨动计数器包括编码拨动计数器用来把生成的编码在范围0-2047的范围内以半个码位的单位拨动,在更新模式,拨动发生在下个DUMP操作之后,在预置模式下它发生在下个 TIC时刻,所有的波动操作都和当前的编码相位有关,每次需要拨动操作的时候都要多编码拨动计数器进行写入操作,在拨动过程中相应信道的累加器是被禁用的,以使第一个结果有效,当一个拨动操作被写入时信道被禁用,那么拨动将在信道被启用的同时发生。
5.如权利要求1所述的GPS和GL0NASS多信道相关器的编码混频方法,其特征是所述历元计数包括历元计数器持续计算一秒间隔内的编码周期,这个被表达为一个表示以Ims 位单位的积分时间(0-19)的5位字,加上一个包含以20ms为单位的计数(0_49)的6位字, 历元计数器可以预先被加载以和来自卫星的数据流同步,历元计数器的值在更新模式下会马上被传送到计数器,或者在预置模式下,在下个TIC时刻被传送,历元计数器的数值在每个TIC时刻被锁存至CHx_EP0CH寄存器,另外它的瞬时值可以从CHx_EPOCH_CHECK寄存器查验到。
6.如权利要求1所述的GPS和GL0NASS多信道相关器的编码混频方法,其特征是所述编码混频方法还包括寄存,该寄存包括控制寄存器(C0NTR0LREGISTERS),用来编制器件的功能;状态寄存器(STATUS REGISTERS),用来只是器件内的进程的状态;累加器数据寄存器(ACCUMULATED DATA REGISTER。,每毫秒提供一次C/A编码的累加结果,这是捕获和追踪卫星信号的原始数据;测量数据寄存器(MEASUREMENT DATA REGISTERS),锁存载波数字控制振荡器相位,载波周期计数,编码数字控制振荡器相位,一毫秒内的历元数,还有每9. 09 或者100毫秒间隔的以20-毫秒为单位的历元数,这是用于计算伪距的原始数据。
7.实现权利要求1的GPS和GL0NASS多信道相关器的编码混合器,其特征是包括编混码器、累加和丢弃器、编码相位计数器、编码拨动计数器、历元计数器,其中编混码器经累加和丢弃器、编码相位计数器、编码拨动计数器与历元计数器连接。
8.如权利要求6所述的GPS和GL0NASS多信道相关器的编码混合器,其特征是所述编码混合器还包括寄存器,该寄存器包括控制寄存器、状态寄存器、累加器数据寄存器、测量数据寄存器。
全文摘要
一种GPS和GLONASS多信道并行信号编码混频方法及编码混合器,包括编混码器、累加和丢弃器、编码相位计数器、编码拨动计数器、历元计数器,其中编混码器经累加和丢弃器、编码相位计数器、编码拨动计数器与历元计数器连接。
文档编号G01S19/01GK102262231SQ20101018819
公开日2011年11月30日 申请日期2010年5月31日 优先权日2010年5月31日
发明者庄巍, 王星, 王泽复, 谢德明, 陈跃斌 申请人:北京联星科通微电子技术有限公司