嵌入式系统的知识体系

来源:本站
导读:目前正在解读《嵌入式系统的知识体系》的相关信息,《嵌入式系统的知识体系》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《嵌入式系统的知识体系》的详细说明。
简介:详细介绍嵌入式系统的知识体系。

1嵌入式系统的知识体系

嵌入式系统的应用范围可以粗略分为两大类:电子系统的智能化(工业控制、现代农业、家用电器、汽车电子、测控系统、数据采集等),计算机应用的延伸(MP3、手机、通信、网络、计算机外围设备等)。从这些应用可以看出,要完成一个以MCU为核心的嵌入式系统应用产品设计,需要硬件、软件及行业领域相关知识。硬件主要有MCU的硬件最小系统、输入/输出外围电路、人机接口设计。软件设计有固化软件的设计,也可能含PC机软件的设计。行业知识需要通过协作、交流与总结获得。

概括地说,学习以MCU为核心的嵌入式系统,需要以下软硬件基础知识与实践训练:

① 硬件最小系统(电源、晶振、复位、写入调试接口);

② 通用I/O(开关量输入/输出,涉及各种二值量检测与控制);

③ 模/数转换(各种传感器信号的采集与处理,如红外、温度、光敏、超声波、方向等);

④ 数/模转换(对模拟量设备利用数字进行控制);

⑤ 通信(串行通信接口SCI、串行外设接口SPI、集成电路互联总线I2C、CAN、USB、嵌入式以太网、ZigBee技术等);

⑥ 显示(LED、LCD等);

⑦ 控制(控制各种设备,包括PWM等控制技术);

⑧ 数据处理(图形、图像、语音、视频等的处理或识别);

⑨ 各种具体应用。

万变不离其宗,任何应用都可以归入这几类。而应用中的硬件设计、软件设计、测试等都必须遵循嵌入式软件工程的方法、原理与基本原则。所以,嵌入式软件工程也是嵌入式系统知识体系的有机组成部分,只不过它融于具体项目的开发过程之中。

以上实践训练涉及硬件基础、软件基础及相关领域知识。计算机语言、操作系统、开发环境等均是达到这些目的的工具。有些初学者,容易把工具的使用与所要达到的真正目的相混淆。例如,有的学习者学了很长时间的嵌入式操作系统移植,而不进行实际嵌入式系统产品的开发,到最后也做不好一个嵌入式系统小产品,偏离了学习目标,甚至放弃嵌入式系统领域。这就是进入了嵌入式系统学习误区,下面对此作一些分析。

2嵌入式系统的学习误区

关于嵌入式系统的学习方法,因学习经历、学习环境、学习目的、已有的知识基础等不同,可能在学习顺序、内容选择、实践方式等方面有所不同。但是,应该明确哪些是必备的基础知识,哪些应该先学,哪些应该后学;哪些必须通过实践才能获得;哪些是与具体芯片无关的通用知识,哪些是与具体芯片或开发环境相关的知识。

由于微处理器与微控制器种类繁多,也可能由于不同公司、机构出于自身的利益,给出一些误导性宣传,特别是我国嵌入式微控制器制造技术落后,使得人们对微控制器的发展,在认识与理解上存在差异,导致一些初学者进入嵌入式系统的学习误区,浪费了宝贵的学习时间。下面分析可能存在的几个误区。

2.1操作系统的困惑

如果说,学习嵌入式系统不是为了开发其应用产品,那就没有具体目标,诸如学习方法这样的问题也就不必谈了。实际上,这正是许多人想学,又不知从何开始学习的关键问题所在,不知道自己学习的具体目标。于是,看了一些培训广告,看了书店中种类繁多的嵌入式系统书籍,或上网以“嵌入式系统”为关键词进行查询,就参加培训或看书,开始“学习起来”。对于有计算机阅历的人,往往选择一个嵌入式操作系统就开始学习了。这有点像“瞎子摸大象”,只了解其一个侧面。这样如何能对嵌入式产品的开发过程有全面了解呢?针对许多初学者选择“xxx嵌入式操作系统+xxx处理器”的嵌入式系统入门学习模式,笔者认为是不合适的。笔者的建议是:首先把嵌入式系统软件与硬件基础打好了,再根据实际需要,选择一种实时操作系统(RTOS)进行学习实践。要记住:RTOS是开发某些类嵌入式产品的辅助工具,是手段,不是目的;许多类嵌入式产品,并不需要RTOS。所以,一开始就学习RTOS,并不符合“由浅入深、循序渐进”的学习规律。

RTOS本身由于种类繁多,实际使用何种RTOS,一般需要由工作单位确定。基础阶段主要学习RTOS的基本原理与RTOS上的软件开发方法,而不是学习如何设计RTOS。以开发实际嵌入式产品为目标的学习者,不要把过多的精力花在设计或移植RTOS上面。正如很多人使用Windows操作系统,而设计Windows操作系统的只有Microsoft。许多人“研究”Linux,但不使用它,浪费了时间。人的精力是有限的,学习必须有所选择。

2.2硬件与软件的困惑

以MCU为核心的嵌入式技术的知识体系必须通过具体的MCU来体现、实践。但是,选择任何型号的MCU,其芯片相关的知识只占知识体系的20%左右,80%左右是通用的软件硬件及相关知识。80%的通用知识,必须通过具体实践才能获得,所以学习嵌入式技术一般要选择一个系列的MCU。

系统含有硬件与软件两大部分,它们之间的关系如何?

有些学者,仅从电子的角度认识嵌入式系统。认为“嵌入式系统=MCU硬件系统+小程序”。这些学者大多具有良好的电子技术基础知识。实际情况是,早期MCU内部RAM小,程序存储器外接,需要外扩各种I/O,没有像USB、嵌入式以太网等这样较复杂的接口。因此,程序占总设计量比例小于50%,使人们认为嵌入式系统(单片机)是“电子系统”,以硬件为主,程序为辅。但是,随着MCU制造技术的发展,不仅MCU内部RAM越来越大,Flash进入MCU内部改变了传统的嵌入式系统开发与调试方式,固件程序可以更方便地调试与在线升级,许多情况下与开发PC机程序的方便程度相差无几,只不过开发环境与运行环境不是同一载体而已。这使得嵌入式系统的软件硬件设计方法发生了根本变化。

有些学者,仅从软件开发角度认识嵌入式系统,甚至仅从嵌入式操作系统认识嵌入式系统。这些学者大多具有良好的计算机软件开发基础知识,认为硬件是生产厂商的事。他们没有认识到,嵌入式系统产品的软件与硬件均是需要开发者设计的。笔者常常接到一些关于嵌入式产品稳定性的咨询,发现大多数是由于软件开发者对底层硬件的基本原理不理解。特别是有些功能软件开发者,过分依赖于底层硬件的驱动软件,自己对底层驱动原理知之甚少。实际上,一些功能软件开发者,名义上在做嵌入式软件,其实仅仅是使用嵌入式编辑、编译环境而已,本质与开发通用PC机软件没有两样。而底层硬件驱动软件的开发,若不全面考虑高层功能软件对底层硬件的可能调用,也会使封装或参数设计得不合理或不完备,导致高层功能软件调用困难。可以看出,若把嵌入式系统的开发孤立地分为硬件设计、底层硬件驱动软件设计、高层功能软件设计,那么一旦出现问题,就可能难以定位。实际上,嵌入式系统设计是一个软件、硬件协同设计工程,不能像通用计算机那样,软件、硬件完全分开来看,而要在一个大的框架内协调工作。

学习嵌入式系统是以软件为主还是以硬件为主,或者如何选择切入点,如何在软件与硬件之间取得平衡?对于这个困惑的建议是:要想成为一名真正的嵌入式系统设计师,在初学阶段,必须打好嵌入式系统的硬件与软件基础。以下是从事嵌入式系统设计二十多年的美国学者John Catsoulis 在《Designing Embedded Hardware》一书中关于这个问题的总结:嵌入式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软件;同样,没有对软件的理解也不可能设计好嵌入式硬件。

2.3片面认识嵌入式系统

嵌入式系统产品种类繁多,应用领域各异。在第1部分中,把嵌入式系统的应用范围粗略分为电子系统的智能化与计算机应用的延伸两大类。从初学者角度,可能存在分别从这两个角度片面认识嵌入式系统的问题。因此,一些从电子系统智能化角度认识嵌入式系统的学习者,可能会忽视编程结构、编程规范、软件工程的要求、操作系统等知识的积累。另一些从计算机应用的延伸角度认识嵌入式系统的学习者,可能会把通用计算机学习过程中的概念与方法生搬硬套到嵌入式系统的实践中,忽视嵌入式系统与通用计算机的差异。

实际上,在嵌入式系统学习与实践的初始阶段,应该充分了解嵌入式系统的特点,根据自身的已有知识结构,制定适合自身情况的学习计划。目标应该是打好嵌入式系统的硬件与软件基础,通过实践,为成为良好的嵌入式系统设计师建立起基本知识结构。学习过程中,具体应用系统可为实践载体,但不能拘泥于具体系统,应该有一定的抽象与归纳。例如,初学者开发实际控制系统时没有使用实时操作系统,但不要认为实时操作系统不需要学习。又例如,初学者可以一个带有实时操作系统的样例为蓝本进行学习,但不要认为任何嵌入式系统都需要实时操作系统,甚至为一个十分简明的实际系统加上不必要的实时操作系统。因此,片面认识嵌入式系统,可能导致学习困惑。应该根据实际项目需要,锻炼自己分析实际问题、解决问题的能力。这是一个长期的学习与实践过程,不能期望通过短期培训完成整体知识体系的建立,应该重视自身实践,全面地理解嵌入式系统的知识体系。

2.4入门芯片选择的困惑

嵌入式系统的大部分初学者需要选择一个微控制器(MCU)进行入门级学习,面对众多厂家生产的微控制器系列,往往不知如何是好。

首先是关于位数问题,目前主要有8位、16位和32位MCU。不同位数的MCU各有应用领域,这一点与通用微机有很大不同。例如做一个遥控器,不需要使用32位MCU,否则MCU芯片价格就已经超过遥控器价格需求。对于首次接触嵌入式系统的学习者,可以根据自己的知识基础选择入门芯片的位数。建议大多数初学者选择8位MCU作为快速入门芯片,了解一些汇编与底层硬件知识,之后再选16位或32位芯片进行学习实践。

关于芯片选择的另一个误区是认为有“主流芯片”存在,嵌入式系统也可以形成芯片垄断。这完全是一种误解,是套用通用计算机系统的思维模式,而忽视了嵌入式系统应用的多样性。

关于学习芯片选择还有一个误区,即误认为选择工作频率高的芯片进行入门学习,更先进。实际上,工作频率高可能给初学者带来不少困难。

实际嵌入式系统设计不是追求芯片位数、工作频率、操作系统等因素,而是追求稳定可靠、维护、升级、功耗、价格等指标。初学者选择入门芯片,是通过某一MCU作为蓝本,获得嵌入式系统知识体系的通用基础。其基本原则是:入门时间较短、硬件成本较低,知识要素较多,学习难度较低。

3基础阶段的学习建议

基于以上讨论,下面对广大渴望学习嵌入式系统的学子提出几点基础阶段的学习建议:

① 嵌入式系统软件硬件密切相关,一定要打好软硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统。

② 选择一个芯片及硬件评估板(入门芯片最好简单一点,例如8位MCU)、选择一本好书(最好有规范的例子)、找一位好老师(最好是有经验且热心的)。硬件评估板的价格一定要在1000元以下,不要太贵,最好能有自己动手的空间。不花一分硬件钱想要学好嵌入式系统不实际,因为这是实践性很强的学科。好书,可以让人少走弯路,不被误导。好老师也可以是做过一些实际项目的学长(一定要找做过几个成功项目的学长或老师做指导,否则经验不足也可能误导),有教师指导,学习进程会加快(人工智能学科里有个术语叫无教师指导学习模式与有教师指导学习模式,无教师指导学习模式比有教师指导学习模式复杂许多)。

③ 许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了。只要深入理解MCU的硬件最小系统,对I/O口、串行通信、键盘、LED、LCD、SPI、I2C、PWM、A/D(包括一些传感器)、D/A等逐个实验理解,逐步实践,再通过动手做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。学习嵌入式系统的初期,这个过程是必须的。

④ 至于嵌入式实时操作系统RTOS,一定不要一开始就学,这样会走很多弯路,也会使你对嵌入式系统感到畏惧。等你软件硬件基础打好了,再学习就感到容易理解。实际上,许多嵌入式应用并不需要操作系统。也可以根据实际项目需要,再学习特定的RTOS。不要被一些嵌入式实时操作系统培训班的宣传所误导,而忽视实际嵌入式系统软硬件基础知识的学习。

⑤ 要避免片面地单纯从“电子”或“计算机软件”角度认识嵌入式系统。前面说过,嵌入式系统是软件与硬件的综合体。因此,要逐步从MCU的最小系统开始,一点一点理解硬件原理及底层硬件驱动编程方法。要通过规范的例子,理解软件工程封装、可复用等思想。通过规范编程,积累底层构件(component),也就是一个一个模块;但是要封装得比较好,可复用。

⑥ 注重实验与实践。这里说的实验主要指通过重复来验证他人的工作,目的是学习基础知识,这个过程一定要经历。实践是自己设计,有具体的“产品”目标。如果花500元左右,自己做一个具有一定功能的小产品,且能稳定运行1年以上,就可以说接近入门了。

⑦ 关于入门芯片的选择。不要选太复杂的微控制器作为入门芯片,不能超越学习过程。不要一下子学习几种芯片。可以通过一个芯片入门,并具有一个实践经验后,根据实际需要选择芯片开发实际产品。注意,不要把微处理器(MPU)与微控制器(MCU)概念相混淆,微处理器只是微控制器的内核。

⑧ 关于嵌入式操作系统的选择。可以等到具有一定实践基础后,选择一个简单、容易理解原理的嵌入式操作系统进行学习。不要一开始就学习几种操作系统,理解了基本原理,实践中确有实际需要再学习也不迟。人总是要不断学习的。

⑨ 关于汇编语言与C语言的取舍。随着MCU对C编译的优化支持,对于汇编语言可以只了解几个必要的语句,而直接使用C语言编程。但必须通过第一个程序理解芯片初始化过程、中断机制、程序存储情况等,区别于PC机程序的内容。另外,为了测试的需要,最好掌握一门PC机编程语言。

⑩ 要明确自己的学习目的,并注意学习方法。要明确学习目的是打基础,还是为了适应工作需要而进行的短训。学习方法方面,要根据学习目的选择合适的学习途径,注意理论学习与实践、通用知识与芯片相关知识、硬件知识与软件知识的平衡,要在理解软件工程基本原理基础上理解硬件构件与软件构件等基本概念。

1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来

再参考别人的提示,你就知道自己和别人思路的差异。

2.别小家子气,买本书几十块都舍不得,你还学个P。为了省钱看电子书,浪费的时间绝对

超过书的价值。当然如果查资料,只能看PDF。

3.学习新的开发软件时,一定要看帮助手册。买的书不够全面。刚接触一个软件,什么都不

懂,就盲目的问东问西,让人看起来很幼稚。

4.不要蜻蜓点水,得过且过,细微之处往往体现实力。

5.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。

6.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。

.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。

7.多实践,去焊板子、调试,去写去调,只用软件模拟,是永远成不了高手的。

8.保存好你做过的所有的源程序、PCB、原理图等----那是你最好的积累之一。

9.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会

自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相

关资料,别老是等待别人给你希望,看的出你平时一定也很懒!

10 到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就

有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回

的。

11,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你

总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的才有讨论的说

法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。

什么样的人是浮躁的人?

浮躁的人容易问:我到底该学什么;

----踏踏实实的学点基本的吧?单片机不知道是什么就想去学ARM?

c语言不会想搞LINUX?别老是好高骛远。

浮躁的人容易问:谁有xxx源码?--(你给人家多少钱啊?自己的劳动白送你?)

浮躁的人容易说:跪求xxx ---(就算网络也要点尊严吧?)

浮躁的人容易说:紧急求救---(其实只是个简单的课程设计)

浮躁的人容易说:有没有xxx中文资料?---一个字:懒。别说别的。E文不行?谁不是从

ABC学起的啊?

浮躁的人容易说:求xxx,我的email是,然后消失 ---- 你以为你是大爷啊,人

家请你吃饭,还要喂到你口里不成?

浮躁的人容易问:做单片机有钱途吗----只是为了钱,搞不好技术的,你去抢银行好了。

浮躁的人容易说:哪里有xxx芯片资料?(其实大部分资料网络上都有,但是偏偏来找人

问,懒!)

浮躁的人分两种:只观望而不学的人;只学而不坚持的人;

浮躁的人永远不是一个高手。

关键词 LNA RF 基带处理 芯片组 一体化模块 卫星定位授时与同步

利用导航卫星,进行物体定位、时钟授时与同步数据采集控制,可以达到传统测量控制手段所不及的精确程度。这种卫星定位授时同步技术在航空航海、陆上交通、科学考察、极地探险、地理测量、气象预报、设备巡检、系统监控等方面的应用日益广泛。近年来,很多厂商,如Atmel、ST、Motorola、Maxim、NEC、Fijitsu、Conexant等,相继推出了许多相关卫星定位授时同步的芯片组与模块,为设计出稳定可靠、简洁便携的仪表仪器,提供了很多有效的便捷途径。本文对现有的卫星信号接收芯片组或模块如何构成各种结构紧凑、成本低廉、简单易用、性能优良的卫星信号接收通道,怎样嵌入到不同的实际应用系统中实现精确的物体定位、时钟授时或同步数据采集控制的各种类型设计进行综合阐述。

1卫星定位授时同步概述

卫星定位授时同步技术中的关键部件是人造地球导航卫星组。目前,主要的导航卫星组有美国的全球卫星定位系统GPS、俄罗斯的全球导航卫星系统GLONASS(Global Navigation System)、中国的北斗导航系统和欧盟的伽利略全球导航系统Galileo。这几种导航卫星系统的特征与应用状况如表1所列。

表1现存导航卫星系统的特征与状况

卫星导航系统通常由三部分组成:导航卫星、地面监测校正维护系统和用户接收机或收发机。对于北斗局域卫星导航系统,地面监测中心要帮助用户一起完成定位授时同步。本文重点阐述的是用户接收或收发部分的嵌入式硬软件应用设计。

在民用方面,GPS、GLONASS和北斗的定位精度是米级,卫星授时时钟精度是毫秒级,数据同步能力在1 μs以下。未来的Galileo导航卫星系统,其民用定位授时同步精度是GPS的10倍左右。上述几种导航卫星系统中, GPS是能够进行全方位、全天候、长时期卫星定位授时同步的最好的卫星导航设备。目前,美国与俄罗斯一道正在维护GLONASS,共同构成GPS + GLONASS系统,卫星数目倍增,卫星定位授时同步的精度、范围、效率和可靠性将会得到更进一步的提高。

2卫星定位授时同步的基本原理

卫星导航基于多普勒效应的多普勒频移规律:

式中,fΔ为运行物体之间的电磁波信号频率变化,λ是其信号电磁波的波长,ν是其相对速度。

上式说明所接收卫星信号的多普勒频移曲线与卫星轨道有一一对应关系。也就是说,只要获得卫星的多普勒频移曲线,就可确定卫星的轨道。反之,已知卫星运行轨道,根据所接收到的多普勒频移曲线,便能确定接收体的地面位置。

全球卫星导航的基本原理是:卫星发射导航电文,其中包括测距精度因子、开普勒参数、轨道摄动参数、卫星钟差参数νti、大气传播迟延修正参数等。地面接收机根据码分多址CDMA(Code Division Multiple Access)或频分多址FDMA(Frequency Division Multiple Access)的特点区分各导航卫星,接收并识别相应的导航电文,测量发来信号的传播时间Δti,利用导航电文中的一系列参数逐步计算出卫星的位置(xi, yi, zi)。设接收机所在待测点位置为(x, y, z),接收机时钟钟差为νt0,接收机只要能接收到至少4颗卫星信号,就可确定其位置和钟差:

在全球导航系统下,用户接收机根据卫星导航电文不断地核准其时钟钟差,可以得到很高的时钟精度,这就是精确的卫星授时;根据导航电文的规律性的时序特征,通过计数器,可以得到高精度的同步秒脉冲PPS(Pulse Per Second)信号,用于同/异地多通道数据采集与控制的同步操作。

北斗局域卫星导航的基本原理是:以2颗位置已知的卫星为圆心,各以测定的本星至用户机距离为半径构成2个球面。地面控制中心通过电子高程地图提供一个以地心为球心、球心至地球表面高度为半径的非均匀球面。三球面的交点即是用户位置。具体的定位过程是:首先由地面中心发出信号,分别经2颗卫星反射传至用户接收机,再由接收机反射2颗卫星分别传回地面中心,地面中心站计算出两种途径所需时间t1和t2,设卫星的位置为(xi, yi, zi),地面中心到卫星的距离为Ri,(xi, yi, zi)、Ri可由地面中心确定,通过下列方程组就可以计算待测点的位置(x, y, z):

式中,c为电磁波的空中传播速度,即光速。

上述一系列复杂的运算,对全球导航系统来说,在用户接收侧进行;对北斗局域导航系统来说,是在地面中心进行的。地面中心确定用户位置后,再把定位与时钟信息通过卫星传给用户。

3全球导航卫星信号的接收端设计

3.1卫星信号接收端的基本构成

全球导航卫星信号接收端主要由以下部分组成:卫星接收天线、低噪声放大器LNA(Lower Noise Amplifier)、前端射频下变频器EndFront RF(EndFront Radio Frequency Down Converter)、信号通道相关器、数字信号运算处理控制器DSP、实时时钟RTC(Real Time Clock)、数据存储器Memory与输入输出I/O接口组成,整个体系如图1所示。

从图1可以看出:卫星信号接收端的核心是DSP,从导航电文到卫星位置的确定,再到接收端所在待测点位置与接收端时钟钟差的确定,及其卫星通道数据的整定控制等都是该DSP完成的。在实际应用中常选用32位的通用数字信号处理器或ARM7内核的单片机,来执行这一系列复杂的运算与控制。

接收端向外输出精确的定位/授时数据结果和PPS秒脉冲信号,并且可以接收外界的通信配置。

3.2选择适当的卫星信号收发天线

卫星信号接收天线是卫星接收端的关键部件。

选择卫星信号接收天线,既要具有适当的信号增益,又要视其形状和大小。固定场合使用的卫星信号接收天线,可以选用高增益大体积的冠状天线;便携式移动设备的卫星接收天线可以选用微型的平板式天线和四臂螺旋式天线。常见的微型平板天线是陶瓷微波瓷介天线。陶瓷微波瓷介天线经济实用,既可以作为无源天线近距离直接连接到前端RF下变换器,也可以与LNA一起构成有源长馈线车载天线。四臂螺旋天线性能比平板天线好,无方位要求;但价格高,杆长度大,应用不多。

接收的卫星信号是右旋园极化波,发给卫星的信号要求是左旋园极化波。使用北斗局域导航卫星的用户接收机,虽然不需要复杂的运算就能得到地面中心提供的准确的定位授时结果,但它既要接收卫星信号又要向卫星发射信号,其天线的理想选择是微型笔杆状无源双频带螺旋式卫星收发天线。

3.3选用集成组件构建卫星信号接收端

选用合适的CPU及其外围器件,按照图1所示的原理,可以很容易地设计出卫星信号接收端的硬件电路;但是由于涉及到大量复杂繁琐的运算,CPU软件设计任务十分繁重。

设计卫星信号接收端,常选用集成组件来搭建。可选的LNA组件,如Atmel的ATR0610、Maxim的MAX2641/ 2654/2655等。可选的前端RF下变频器,如Atmel的ATR0600、Maxim的MAX2742/4/5、ST的STB5600、μNav的μN1005/8021C、NEC的μPB1029R、Fujitsu的MB15H156等。

很多知名半导体厂商把通道相关器、DSP运算控制器、数据存储器等集成到一个芯片内,内含通道相关算法、卫星位置确定算法、待测点定位授时算法,对外通过RS232串口每秒钟输出一次定位授时等信息和PPS秒脉冲,并且可通过RS232串口接收用户的RS232通信配置信息,这种芯片就是基带处理器(Base Band Processor)。基带处理器含有8~16个卫星通道数,工作稳定可靠,价格低廉。使用这种芯片可以免除用户选用高速DSP数字信号处理器或ARM7单片机构建电路与设计卫星信号运算处理软件的麻烦。常见的卫星信号基带处理器,例如Atmel的ATR0620、Sony的CXD2932、ST的ST20GP6、μNav的μN8031B、NEC的μPD77538、Fujitsu的MB87Q2040等。

图1全球导航卫星信号接收端结构框图

图2集成组件构建的卫星信号的接收端框图

图2是由ATR0610、ATR0600和ATR0620构成的GPS卫星信号接收端框图。

选用LNA、前端RF下变频器、基带处理器构建卫星信号接收端的时候,应注意尽可能选用一个厂商的器件;如果不能做到,应选用成熟搭配的不同厂商的器件。表2列出了几种常用的工作稳定可靠的器件搭配组合。

表2集成卫星信号接收组件的最佳搭配组合

还有一些知名半导体厂商,则进一步集成,如ST把RF下变频器与基带处理器集成在一起推出的多功能单芯片STB2056,Motorola把LNA、RF下变频器与基带处理器集成在一起推出的模块化多功能单芯片MG4000/MG4100/MG4200。图3是由MG4200构成的卫星信号接收端框图。卫星信号接收端芯片功能集成度的逐步提高,为简化设计提供了有效的捷径。

3.4使用集成模块构建卫星信号接收端

使用集成组件构建卫星信号接收端简捷、明了,但是如果射频电路设计经验不足,在PCB(Print Circuit Board)制板时,布局、布线不合理,往往会因噪声干扰严重引起卫星定位授时同步数据或信号的浮动,造成过大的偏差。在初次设计卫星信号接收端或射频电路设计经验不足的情况下,设计卫星信号接收端的最好途径就是使用卫星信号接收OEM(Original Equipment Manufacturer)板或接收模块。卫星信号接收OEM板或模块是一些知名半导体设计厂商利用集成组件设计的模块化卫星信号接收端,工作稳定可靠,精确程度高,接口规范标准。OEM板如μBlox的RCBLJ、SBRLS,Conexant的Jupiter Receiver,古野的GN77等。接收模块如μBlox的TIMLP、TIMLS,Motorola的FS Oncore,Koden的GSU16,Rackwell的TU30,TastraX的Trax02等。接收模块形体小巧,有很多是低功耗产品,特别适合便携设备的嵌入式体系设计开发。这些卫星信号接收OEM板或模块,配上适当的无源或有源天线,就可以构成性能稳定的野外型或车载式便携接收端。还有天线与接收模块集成在一起的小尺寸一体化接收模块,如μBlox的SAMLS,应用设计起来更加方便。图4是用TIMLP构成的卫星信号接收端,即可使用随机携带的无源天线直接在野外使用,也可外插有源车载天线在行进中使用。

3.5仅用卫星信号同步时的特殊设计

在实际应用中,使用导航卫星信号,如果仅处于异地或同地多通道数据采集与控制的精确同步目的,诸如电力系统中的故障录波、相位测量、故障判距、继电保护等,则可以不使用价格昂贵的卫星信号接收组件、OEM板或接收模块,而选用常规器件构建接收电路,结合软件对信号的识别和脉冲计数,直接得到精确的同步PPS脉冲信号。图5是这种构思的一个典型实例。

图5中整形电路实现取得最强的一个卫星信号;整形削波部分捕获导航电文的传播帧头,启动单片机中的计数器对另一路整形脉冲计数;单片机根据导航电文传播的速度特征计算并产生精确的PPS秒脉冲信号。

图3由MG4200构成的卫星信号接收端框图

图4由“天线+接收模块”构成的卫星信号接收端

图5简易卫星信号秒脉冲发生原理图

图5中扩频降噪选用NE570/571,带通滤波或信号放大选用LM1450,信号整形或削波整形选用LM311,单片机选用MCS51。

4应用设计

4.1应用卫星信号的同步数据采集与控制

应用卫星导航信号进行精确的异地或同地的多通道工业数据的采集与控制,主要是直接使用由卫星信号接收端得到的PPS秒脉冲信号或使用再由此PPS信号得到PPM(Pulse Per Minute)、100PPS、PPH (Pulse Per Hour)脉冲信号,同步启动多通道的数据采集模数转换器ADC、数字控制数模转换器,同步打开或关闭各个通道开关;还有用于测量判断的,制作精确时间标签的,如电力系统中的故障定位、功角测量等。除需要使用同步脉冲启动判断测量外,还需要得到精确的测量时间值。这时需用高分辨率的定时器对PPS间的时间间隔进行细分,以供CPU捕获使用。为得到精确的clk(clock)时钟还要选用高频恒温晶体振荡器。这种类型的模型如图6所示。

图6应用卫星信号的同步数据采集与控制的模型框图

图6中,CPU可选择使用可编程逻辑器件PLD、数字信号处理器DSP或单片机MCU。CPU、ADC、DAC等的速度、类型、规格等应根据实际设计系统的状况决定。

4.2应用卫星信号进行物体定位与时钟授时

应用卫星信号进行物体定位与时钟授时的一般过程是:设计卫星信号接收端,从中取得的待测点三维位置信息(经度、纬度、海拔)和国际标准时间UTC(Universal Coordinate Time),存储,显示,通过授时通道(RS232、RS485、CAN等)向外广播时钟或通过无线通信技术GSM/CDMA向外传播该时刻物体的实际位置。

得到的定位/时钟精度分辨值:经/纬度的分单位值可达小数点后5位,海拔的米单位值可达小数点后2位,时钟的秒单位值可达小数点后2位。

应用卫星信号接收芯片组或OEM板或接收模块设计的接收端,串行外输的数据格式通常使用美国国家海洋电子协会NMEA(National Marine Electronics Association)的NMEA183标准,接收端每秒钟向外发出一个PPS秒脉冲和一串定位、时钟等信息。PPS秒脉冲与外传数据信息有严格的时间关系,扣准PPS秒脉冲时序的跳变沿读取时钟数据可以得到更精确的时钟值。使用中,需要把所得UTC时间转换成北京时间。

进行物体定位与时钟授时的模型如图7所示。

图7应用卫星信号的物体定位与时钟授时模型框图

4.3注意事项

(1)卫星信号的接收失步

设计体系应用于山区、极地等不开阔或易受太阳风暴等影响的地域时,应在设计中加入防止卫星信号接收失步的软硬件措施。具体做法常常是设计本地精密的PPS产生电路、实时时钟RTC电路,当从接收端取得的NMEA格式信息中识别出所传定位/时钟信息无效时,立即启用本地PPS信号、RTC时间,并根据前面正常情况下物体的位置特征推断当前物体的位置。卫星信号接收恢复正常时,转而使用卫星定位时钟同步,同时清除本地PPS发生计数器,校正RTC时钟。图8为这种典型的防失步方案。

图8卫星信号监测失步时的同步/时钟处理

(2)系统电源管理

卫星信号定位授时同步体系,特别是嵌入式便携设备,涉及到不同的电源供给,如5 V的液晶显示模块、3.3 V的主系统、1.8 V的CPU核,需要从1.2~4.3 V的电池得到各种供电电压。电源管理设计时,不要直接从电池电压同时变换得到1.8 V、3.3 V、5 V,而应先升压得到最大的供电电压,再逐级降压得到所需各级供电电压,否则系统不能正常工作,操作过程如图9所示。

图9便携式卫星信号定位仪器的系统电源规划

(3)PCB制板

需要重点考虑的是卫星信号接收部分的设计。为减少干扰,获得最好的接收效果,接收天线要尽可能靠近集成芯片的接收引脚;天线接口到芯片接收脚的微带线要尽可能短,宽度要2倍于PCB板厚,走斜切线,避免锐角、直角。要有独立的电源、地层。电源、地层要靠近顶/底层,大面积铺地,PCB边缘处,电源层面积要小于地层;地层边缘要加一圈密密的过孔,顶层要有大量过孔和大面积地。尽可能使用金属罩屏蔽全部接收部分。

结语

卫星导航技术日臻完美,深入日常生产、生活的各个领域和方面。设计稳定可靠、便携低耗、成本低廉的现代卫星信号接收体系,实现精确的物体定位、时钟授时和同步数据采集控制,具有广阔的前景。

提醒:《嵌入式系统的知识体系》最后刷新时间 2024-03-14 01:04:54,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《嵌入式系统的知识体系》该内容的真实性请自行鉴别。