5、CYC-GPS接收机

批判性思维与互联网:
搜索、排序、综合错综复杂的潜在答案,
需要一套特殊的、为互联网量身定做的批判性思维技能。

Winston Sieck

任何问题都无法从提出这个问题的同一感知层面上解决。

阿尔伯特·爱因斯坦

图片描述

(图片来源:www.globalcognition.org)

(1) 引言

\qquad 若学不致用,不为解惑,则难免迷茫,为学而学,难以自拔。对我而言,学习硬件,一直将制作实时GPS接收机作为终极目标。为此,留意、收集了大量技术资料。花费工夫浏览、分析它们之后,自认为时机已成熟,形成了以下制作方案:

  • 所拟设计的GPS接收机应是数字型的;
  • 基本架构为“射频前端+基带硬件+软核处理器”;
  • 使用现有成熟的射频前端芯片制作射频电路板;
  • 充分参考现有的开源GPS接收机资源。

要制作的接收机后来命名为CYC-GPS,2013年8月前后开始设计。

(2) 架构设计

\qquad 现代商业数字型GPS接收机的技术渊源,不少可以追溯到20世纪90年代Mitel半导体公司推出的Zarlink GPS接收机,参见图1。这型接收机的核心硬件包括Mitel设计生产的射频前端GP2015和12-通道相关器GP2021,以及ARM处理器和SAW滤波器。

Zarlink GPS Orion接收机板

图1 Zarlink GPS Orion接收机板

\qquad 最早的开源GPS接收机也是从黑客一台Zarlink GPS接收机入手的,方法是绕过它的微处理器,将GP2021输出的数字IF通过一张ISA卡引入到一台PC机,参见图2。1995年美国南加州大学的Clifford Kelley成功实现了这一技术,并在PC机上开发和发布了他的开源导航软件OpenSource GPS (OSGPS)。后来的开源GPS项目大多发源于OSGPS,包括将大量OSGPS代码移植到eCos RTOS上的GPL-GPS。2006年,澳大利亚新南威尔士州立大学的开源GPS接收机研究平台Namuru,成功将GPL-GPS移植到了它的Namuru接收机中,并将移植后的开源软件命名为Namuru GPL。

被“hacked”的GPS接收机

图2 一台被 “黑客的” Zarlink GPS接收机

\qquad 在Zarlink GPS接收机中,尤其值得一提的是它的12-通道相关器GP2021。GP2021堪称技术经典,它是所有开源GPS基带模块的鼻祖。Namuru接收机项目,在2004至2007年间,遵循GP2021模型和接口,开发了VHDL和Verilog基带相关器,它们是最早的开源模块。相比于Zarlink接收机,Namuru接收机也使用了GP2015,但应用实现在一片FPGA上的基带模块代替了GP2021,用创建在同一片FPGA中的软核代替了ARM硬核,参见图3。

Namuru电路板

图3 Namuru电路板

\qquad Zarlink半导体公司的GPS Orion接收机板卡、Namuru项目的Namuru接收机板卡的电路原理图和PCB版图都是开放的。我在重点分析和大致理解了这两款资料齐全的电路板后,按照以下架构和思路规划了自己的GPS接收机CYC-GPS的设计:

  • 接收机由底板CYC-GPS和射频板GP2015-RFFE构成,它们之间用标准接插件连接;
  • 选择一型功能足够强大的Altera FPGA芯片作为底板CYC-GPS的数字处理器件,在上面实现“基带模块+软核+导航软件”;
  • 选择Zarlink GP2015和/或Maxim MAX2769作为射频板GP2015-RFFE中的射频前端芯片;
  • 以开源Namuru_Verilog代码为基础开发基带模块;
  • 以开源Namuru_GPL代码为基础开发导航软件。

(3) 底板制作

\qquad 底板的目标是制作一块数字电路板:一片FPGA器件位于中央,四周分布着外围芯片和外围电路。尽管硬件知识和制作经验有限,但足以让我认识到,这样的PCB板必须采用四层工艺,设计时需要采用手工布局、手工布线,元器件和接插件也应尽可能选择贴片封装,以满足以下基本工艺要求:

  • 合理布置PCB板上不同信号线
  • 减小PCB板上杂散信号耦合和干扰
  • 约束FPGA逻辑设计中的时序信号

对我而言,这些都是挑战。

\qquad 底板上的核心器件,考虑到焊接工艺限制(限于用“电烙铁+热风枪”手焊),选择了TQFP-144封装的Altera FPGA EP4CE22 (第一、第二版PCB)和QFP-240封装的Altera FPGA EP3C25(第三版PCB),它们基本满足功能要求。

\qquad 底板外围电路主要包括:电源电路、晶振电路、耦合电路、编程下载电路、射频板接口电路、RS232串行接口电路、USB接口电路、其它控制电路。外围元器件主要包括:SDRAM存储器、FPGA配置器件、晶振芯片、RS232数据收发芯片、USB数据收发芯片、USB连接器、等等。

\qquad 下面谈谈前两版PCB(CYC-GPS-1, CYC-GPS-2)的制作。。

CYC-GPS-1

\qquad 在最初设计的底板CYC-GPS-1中,由于对JTAG模式编程接口理解存在偏差,接口电路设计不正确,无法对FPGA芯片进行编程。这个问题直到制作完PCB板和焊接完部分元器件,进行测试时才发现,因而不得不修改电路设计,重新制作PCB板。当初,没有保留底板电路,也未记录修改过程,时至今日已无法记清细节。对此,不无遗憾,尽管它们不过是些习作。

CYC-GPS-2

\qquad 底板CYC-GPS-2修正了CYC-GPS-1的设计错误,制作的PCB基本达到了设计目标,参见图4。底板中的重要器件包括:

  • 一个功能强大的FPGA芯片Altera Cyclone IV EP4CE22,具有22,320个逻辑单元和79个用户信号I/O引脚;
  • 一个8-MByte SDRAM;
  • 一个64-Mbit串行配置存储设备

此外,底板包括一个用于编程和调试FPGA芯片的JTAG口,一个用于连接射频前端模块的通用I/O口插头,一个USB支持电路,一个RS232支持电路,等等。底板用外部电源供电。

底板CYC-GPS-2

图4 底板CYC-GPS-2

\qquad “架构设计”一节定义了要在底板上实现的主要目标,在底板CYC-GPS-2上,一些已经完成,另一些存在不足。作为接收机主板,底板的终极目标是让运行在(FPGA芯片的)软核中的导航软件,能够正确、稳定、实时地解算出接收机的PVT。就此而言,底板CYC-GPS-2是失败的。下面按成功、不足、原因这三个方面做些分析。

已完成目标

\qquad 已完成目标包括:

  • 测试表明电源电路、晶振电路、FPGA编程下载电路工作正常;
  • 在FPGA芯片EP4CE22上:
    • 实现了能正常工作的“基带模块+软核+导航软件”架构;
    • 以开源Namuru_Verilog代码为基础完成了基带模块移植和调试;
    • 以开源Namuru_GPL代码为基础完成了导航软件移植和调试。
  • 来自射频板的数字IF信号能够正确地通过射频接口被引入到基带模块;
  • 导航软件的运行调试信息能够正常地通过RS232串口输出。

未达到目标

\qquad 就接收机终极目标而言,底板CYC-GPS-2距离甚远,它尚无法有效捕获在视GPS卫星信号,基本情况是:

  • 捕获到的在视卫星信号很快丢失;
  • 对连接到底板的两版射频板都是如此;
  • 优化导航软件捕获算法后仍然如此。

问题原因

\qquad 造成无法有效捕获在视卫星信号的原因,除可能来自射频板的中频信号质量无法达到要求外,下列底板设计缺陷也可能引起:

  • 用双排线电缆将中频信号引入底板的方式不合适,容易引入噪声;
  • 从射频接口到FPGA芯片EP4CE22引脚的信号走线引入了附加噪声;
  • 从SDRAM芯片到FPGA芯片EP4CE22引脚的信号走线不达标,信号时序约束未满足要求。

此外,导航软件架构、捕获算法存在问题,执行速度不达标,也可能造成这种结果。

对自学特点的拙见

\qquad 在继续介绍CYC-GPS接收机中的射频板制作之前,插入一段有关自学者学习特点的见解,供感兴趣者参考。

\qquad 关于底板电路设计,前面有意不加具体描述,以免贻误学人,因为作为初学者,我不过是敢于在略知皮毛后,将撷取的电路整合在一起,加以利用而已。网络资料汗牛充栋,哪些富于启发,哪些专业权威,既与学习者的搜索方法有关,也与他们各自的知识积累、学习特点和应用目的有关。

\qquad 在我看来,学习者,按特点,可分为两类:一类习于灌输,一类习于自学。习于灌输者,大有人在,无需多说。习于自学者,厌于设计就绪的灌输,不喜按部就班的学习,多少具有以我为主、专注重点、思维跳跃、知行合一之特点,还常常囿于问题而难以自拔。

\qquad 习于自学者的最突出表现是他们的跳跃性(非线性)学习和思维方式。但习于灌输者,人数占优,千人一面,传统图书自然垂青于他们,只有很少一些图书顾及了自学者的阅读特点。它们内容清晰,章节合理,重点突出,名词含义单一、来历明确,推理以例服人,特别是书后的分类索引和参考书目齐全丰富,帮助很大。

\qquad 跳跃性思维是一般思维的重要组成部分,合理的跳跃性思维能够依靠看似模糊的联系,甚至所谓的直觉,快速地:

  • 评估不同的论据,
  • 识别推理中的错误或不一致之处,
  • 预测付诸实施的推理可能产生的结果,
  • 做出正确的选择。

由此可见,跳跃性思维的根源在于:囿于问题和概念,突出和专注问题推理和概念发展的合理性。我们常可见到,不少学习者,尤其是自学者,绝不轻言理解(某事),绝不轻易接受(解释),经常刨根问底,且问题因人而异、出乎意料,甚至“幼稚可笑”。

\qquad 浓缩了知识精华的优秀图书是求知者梦寐以求的,而能够全文检索的优秀电子书则是习于自学者的最爱,后者提炼了知识、加速了搜索、自由了思想、节省了思维,让每个人都有可能按照自身的理解,又快又好地层次化、条理化、线性化所学的知识单元。

\qquad 互联网资料比电子书更便于检索,助力人们实现了足不出户遨游知识海洋的梦想。互联网,作为一本最大、最全的电子书,是习于自学者必须拥有的。它投射和汇聚了全体人类的知识和经验,但它们未必最可靠、最准确、最精华、最浓缩,因此需要善学者自我甄别、合理利用。

(4) 射频板制作

\qquad 实现射频前端有两种方式。一种方式是利用分立器件自行搭建。这种方式的优点在于能非常灵活地改变系统参数和本振频率,同时可以自行调节系统增益和AGC设置,缺点是调试难度很大。尤其在1.5 GHz左右的GNSS载频上,很难保证良好的噪声系数和系统稳定性,除非有专业的调试设备和丰富的射频经验。另一种方式是利用市场上已经成熟的集成射频前端芯片。它们包含了所有必需的射频模块,输出的就是量化中频数据,所以使用方便,性能可靠,缺点是灵活性不够。

\qquad 作为业余电子制作者,本人有自知之明,只敢尝试后一种方式,并且选择的射颇前端芯片,Zarlink GP2015和Maxim MAX2769,都能下载到详细的数据表、参考电路、以及应用指南。在开源GPS接收机中,它们应用得最普遍,从而可供开放参考和利用的网络资料最丰富。

\qquad 尽管如此,我的射频板制作,若以精进射频电路理论和射频制作技艺为准绳,基本是失败的。我参考官方或专业厂商发布的电路图、PCB版图,尽量选择相同或类似的高质量元器件,小心翼翼地按照RF原则进行布局和布线,努力模仿得一致,设计、制作了射频板PCBs,能说得出口的有两版(GP2015-RFFE, MAX2769-RFFE).,但它们都未能达到预定目标。在“底板制作”一节,已有所提及,下面再具体谈谈。

GP2015-RFFE

\qquad 射频板GP2015-RFFE以双面层叠工艺制作,板厚0.6毫米,板材采用FR-4基材,如图5所示。

射频板GP2015-RFFE

图5 射频板GP2015-RFFE

\qquad 射频板具有独立电源电路,为板上电路和有源天线供电。射频前端芯片输出的数字IF信号使用一个双排10-针插头引入到底板CYC-GPS。为了让射频板同时支持GP2015和MAX2769前端芯片,PCB板顶层被划分为两个物理区域,分别用于布局和布线这两个芯片及其外围元器件。针对GP2015的电路设计、PCB版图规划、元器件选择和布局、以及RF信号、电源和接地信号走线,主要参考了Zarlink的以下数据表和应用指南:

  • GP2015: GPS Receiver RF Front End (2007)
  • GP2000: GPS Receiver Hardware Design (AN4855, 1999)
  • GP2010/GP2015: Using the Murata SAFJA35M4WC0Z00 Saw Filter (AB5202, 2001)
  • GP2010 and GP2105: Reduction of VCO-related EMC radiation (AB5640, 2001)

而针对MAX2769,主要参考了Maxim的以下数据表和应用指南:

  • MAX2769 Universal GPS Receiver (19-0791, 2010)
  • MAX2769 Evaluation Kit (19-0983, 2007)
  • MAX2769 Universal GPS Tuner Application Note (2006)
  • GPS USB Reference Design with the MAX2769 (AN4275, 2008)
  • MAX2769 GPS Reference Design (AN4279, 2008)
  • MAX2769 Application Notes (2008)

\qquad 在图5中,PCB板上焊接了前端芯片GP2015及其外围元器件。把它与底板相连,然后连上一个有源天线并接通电源,整机将可以工作。设计时,在PCB板上预留了一个GP2015 模拟IF输出测试点(J2),用于监控在信号进入模数转换器之前的IF输出。不幸的是,由于缺乏可用的测试设备(频谱分析仪等),无法对GP2015中即将通过双排线电缆引入底板的数字IF信号的质量进行评估。

\qquad 对我而言,射频板产生的数字IF信号,其质量满足应用要求的最低标准是:运行在底板(FPGA芯片的)软核中的导航软件,能够正确、稳定、有效地捕获在视卫星的信号。然而,即便满足这一最低标准也需要前提,即底板及工作在底板上的基带模块和导航软件必须首先能正常工作。为此,我不断检查和优化我的基带模块和导航软件代码,但都没能克服问题。最终,我还是把问题归咎于射频板产生的数字IF信号。

MAX2769-RFFE

\qquad 于是,对于射频板,我必须简化和健壮它的设计和制作,以减小噪声和提高抗噪能力。做到这一点的最直接方法是单独以MAX2769开发新一版PCB。相比于GP2015,MAX2769工艺更先进、尺寸更小,应用电路更简单,抗噪声能力更强,因为它不仅内置了射频带通滤波器和IF滤波器,而且无需外部提供任何数字信号,包括采样时钟信号,从而能有效隔离来自底板电路数字信号的噪声干扰。

\qquad 射频板MAX2769-RFFE就是为达上述目标而制作的,它同样采用了双面层叠工艺,板厚0.6毫米,板材FR-4,如图6所示。

射频板MAX2769-RFFE

图6 射频板MAX2769-RFFE

\qquad 射频板MAX2769-RFFE去掉了GP2015-RFFE中的GP2015支持电路,重新优化了电源电路,它的PCB版图规划、元器件布局、以及RF信号、电源和接地信号走线仔细参考了前面列出的Maxim数据表和应用指南。

\qquad 然而,结果仍然不尽我意——将焊接了MAX2769及其外围元器件的射频板它与底板相连,然后连上有源天线并接通电源,整机可以工作,但导航软件的输出结果表明,整机仍未达到上述最低标准。
\qquad
\qquad 再次失败着实沮丧,但尚未穷途末路,走出困境的出口还有两个:寻摸测试射频板质量的仪器或实验室,用接近专业的态度、软件和设备,设计和制作以后的射频板;或者,将射频板输出的数字IF信号保存到文件,用软件分析它的频谱,以确定它的制作质量。

\qquad 情急之下,慌不择路,我本能地迈向了第一个出口,但很快退缩了,我无法为了资金、设备,忍受煎熬,应付那些所谓的课题。这条路刺脚、穿心、难以循行。我转向了第二个出口,尽管指向羊肠小道,但目标不远且通达。

(5) CYC-GPS-3接收机

\qquad 底板CYC-GPS-2预留了焊接一片CH376S芯片及其外围器件和一个USB连接器的位置。只要焊接上它们,就能利用运行在NIOS II软核中的应用软件,控制CH376S,将数据写入U盘。因此,编写一个实用软件,将射频板输出的数字IF信号保存为U盘文件,成为了下一个开发目标。

\qquad 当我为此做准备时,在网络上看到了一款IF信号采集器,北京星源北斗公司开发的HG-SOFTGPS01。我发现它不仅价廉物美,而且特别适合作为我下一步开发的参考,于是自费购买了一套。正是由于这套HG-SOFTGPS01,我迄今未能编写出IF信号采集软件,却参照它成功开发了新的射频板,而且借鉴其射频板接口方式,成功制作了新的底板CYC-GPS-3,最终使整机试验达到了正确、稳定、实时地解算出接收机PVT这一目标。

\qquad 下面从HG-SOFTGPS01的射频板开始,介绍开发CYC-GPS-3接收机的过程。

射频板HG-RF02-C

\qquad HG-SOFTGPS01为一单通道GNSS IF信号采集器,由射频板和采集板两个模块组成。HG-SOFTGPS01可以外接有源或无源天线,支持 3.3V馈电,用 USB供电即可正常工作。将连接了有源或无源天线的采集器通过USB馈线接入PC机,然后运行PC端程序即可采集IF数据。

\qquad 对于HG-SOFTGPS01,我感兴趣的是它的射频板HG-RF02-C。HG-RF02-C是这家公司开发的系列射频模块之一,使用MAX2769作为前端芯片。我特别注意的是它的PCB版图,包括布局布线、电源馈送、对外接口(参见图7),并将它与我制作的射频板MAX2769-RFFE进行了比较:

  • PCB工艺:
    • 双面层叠
    • 板材FR-4
    • 板厚,HG-RF02-C为0.8毫米,MAX2769-RFFE为0.6毫米
  • 电路设计:
    • 相比于MAX2769-RFFE,HG-RF02-C在将有源天线信号引入MAX2769 LNA2引脚前,加入了一片LNA MAX2659;
    • HG-RF02-C由外部提供3.3V和5V电源,要求保证电源稳定性;5V电源为射频部分供电,3.3V电源为数字部分供电,射频供电和数字供电相互隔离;MAX2769-RFFE有专门电源电路,但没有很好地隔离射频供电和数字供电,它在MAX2769 VCC_ADC引脚上引入了数字电源,而前者引入了射频电源;
    • HG-RF02-C与采集板的射频接口采用双排8-针插座和插头直连,不使用额外馈线,以最大程度缩短信号走线。
  • 布局布线:
    • 晶振布局,MAX2769-RFFE置于靠近MAX2769 XTAL引脚的顶层右下方,HG-RF02-C置于XTAL引脚的底层右下方;
    • MAX2769-RFFE的布线尽量遵循了Maxim数据表和应用指南的说明和要求,而HG-RF02-C则不然。

射频板HG-RF02-C

图7 射频板HG-RF02-C

\qquad 借助HG-SOFTGPS01,我采集了若干试验数据,包括GPS和BDS数字IF数据,并用MATLAB软件分析了它们的频谱,结果显现出了明显的GNSS IF信号特征。可见, HG-RF02-C的IF数据质量是可靠的,我可以将它作为我的接收机的射频板,重新设计底板。待底板电路、硬软件制作、调试成功,工作基本正常后,再按照自己的思路制作射频板。

底板CYC-GPS-3

\qquad 重新设计的底板命名为CYC-GPS-3,它和射频板HG-RF02-C组成了GNSS接收机CYC-GPS-3,如图8所示。

接收机CYC-GPS-3

图8 接收机CYC-GPS-3

\qquad 与底板CYC-GPS-2相比,新底板CYC-GPS-3的一个重要改变是:核心器件选用了QFP-240封装的EP3C25,而非之前TQFP-144封装的EP4CE22。相比EP4CE22的22,320个逻辑单元和79个用户信号I/O引脚,EP3C25拥有24,624个逻辑单元和148个用户信号I/O引脚。这两种芯片的封装引脚间距同为0.5 mm,手焊难度相当,选用EP3C25Q240主要考虑的是它的用户I/O数较多,从而连接到外围器件(尤其是SDRAM芯片)的选择就越多,布线就越方便,FPGA硬件逻辑的时序约束就越容易满足。

\qquad 在电路设计上,新底板CYC-GPS-3主要做了以下改变:

  • 核心器件选用了QFP-240封装的EP3C25;
  • 重新设计了射频接口,增加了通用接口;
  • 调整了外接电源电路,增加了备份电源电路;
  • 增加了RTC电路;
  • 增加了AS模式编程下载接口。

在器件布局上,CYC-GPS-3将SDRAM芯片和FPGA配置芯片布局在PCB板底层,而CYC-GPS-2的所有芯片都布局在顶层。

\qquad 分析和应用HG-RF02-C,让我进一步理解了射频板接口信号定义和布线要领。制作底板CYC-GPS-2的经验以及分析其设计缺陷的体会,使我在设计和制作新底板CYC-GPS-3时,能够有思路不断地对电源电路、射频接口、布局布线进行优化和调整。

\qquad 总之,经过难以言尽的一系列细致工作,包括对我而言极具挑战的手工焊接,我总算制成了一版似乎达到了目标要求的底板。

硬件逻辑和导航软件

\qquad 现在,我拥有了一套接收机硬件,暂且认为质量已经达标,我可以在上面设计FPGA硬件逻辑和开发导航软件了。之前的CYC-GPS-2接收机开发已经完成了其中的基础性工作,包括:

  • 构建“基带模块+软核+导航软件”架构
  • 移植和调试基带模块
  • 移植和调试导航软件

不过,它们只是在架构、功能、语法层面验证了可行性,大量的调整、纠错、优化、提速工作需要完成,涉及FPGA逻辑、NIOS II软核、基带模块、导航软件四个方面。

\qquad 对于基带模块,主要涉及调整它的顶层模块接口,让它与从射频板HG-RF02-C引入的数字IF信号相匹配。至于NIOS II软核配置,目标是加速软件执行和数据存取速度。针对FPGA逻辑,需要花费不少设计时间,除改变FPGA器件、调整I/O信号绑定外,重点工作包括时钟信号设计、时序信号约束、硬件加速支持等方面,尤其是为了满足时序约束要求,需要对一些信号的时延进行估计和调整。

\qquad 以上三个方面的硬件逻辑设计和优化,有一个共同目标,即让导航软件能够快速和稳定地运行于软核RTOS,以及及时获得正确的基带累积数据。要真正做到这些,导航软件本身同样重要。实际上,对它的调整和优化,花费的时间、精力要多得多,看一看下面的开发进度表:

  • 2013年8月前后开始设计CYC-GPS
  • 2013年10月25日提交PCB制作厂家加工底板CYC-GPS-1
  • 2013年11月8日提交PCB制作厂家加工底板CYC-GPS-2
  • 2013年11月28日提交PCB制作厂家加工射频板GP2015-RFFE
  • 2014年1月14日提交PCB制作厂家加工射频板MAX2769-RFFE
  • 2014年1月25日左右购买HG-SOFTGPS01
  • 2014年3月24日提交PCB制作厂家加工底板CYC-GPS-3
  • 2015年2月13日存档了硬件逻辑设计和导航软件开发的最终结果

CYC-GPS接收机开发花了约18个月时间,硬件逻辑设计和导航软件开发至少用了10个月,其中导航软件开发从2014年4月开始,2014年8月存档了第一个可接受的结果,其后存档了十几个针对不同调整和优化情况的结果,包括针对GPS或BDS系统的结果。

\qquad 关于调整和优化导航软件的具体情况,过于繁琐、专业,不适合在此叙述,但可以给出的一个最终结果是:运行在底板FPGA芯片的软核中的导航软件,确实正确、稳定、实时地解算出了静态接收机的PVT,无论针对的是GPS系统,还是BDS系统。

猜你喜欢

转载自blog.csdn.net/turing321_huaide/article/details/107936867
今日推荐