嵌入式系统技术在舰船导航设备中的应用*

2013-01-12 08:36林育生吴永明杨国忠
舰船电子工程 2013年1期
关键词:航海嵌入式单片机

林育生 吴永明 杨国忠

(1.海军九〇二厂 上海 200083)(2.海军湛江航保厂 湛江 524002)

1 引言

嵌入式系统(Embedded System)技术近年来发展十分迅速,成为研究的热门方向之一,被广泛应用于电子设备、平板电脑、智能手机、信息家电、PDA、机顶盒、工业控制、移动通信、电子商务和电子金融等领域,市场潜力巨大。航海导航设备主要用于舰船的航行导航,它为舰船航行提供航向、航速、航迹、位置、方位、水深、气象要素等信息。航海设备中广泛应用了各种嵌入式系统技术,大幅提高了仪器的性能和智能化水平。本文简要介绍嵌入式系统技术,并对其在航海设备中的应用情况及发展方向作简要论述。

2 嵌入式系统技术

2.1 嵌入式系统定义

嵌入式系统被定义为以应用为中心、以计算机技术为基础、软件硬件可裁减、适应应用系统对功能、可靠性、成本、体积、功耗严格的专用计算机系统[1]。从广义上讲嵌入式系统是指一个具有特定功能或用途的计算机软硬件的集合体[2],狭义的嵌入式系统则指装入另一设备并控制设备的专用计算机系统[3]。

嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

2.2 嵌入式系统硬件

2.2.1 处理器

嵌入式系统硬件的核心器件为处理器,通常包括微处理器、微控制器、DSP处理器和 SOC(System On Chip)/SOM(System-on-module)等。

1)微处理器。嵌入式微处理器的基础是通用计算机中的CPU,在工作温度、抗电磁干扰、可靠性、功耗等方面都做了各种增强[1]。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减少系统的体积和功耗。市场上比较常见的嵌入式微处理器有Intel X86芯片(从80486到嵌入式第三代Core i系列处理器)、ARM、MIPS以及智能手机微处理器如高通(Qualcomm)、德州仪器(TI)、英伟达(Nvidia)的芯片等。

2)微控制器MCU。主要为4位、8位、16位和32位的单片机。MCU一般以某种微处理器内核为核心,芯片内部集成RAM、ROM/EPROM、总线、总线逻辑、定时/计时器、Watchdog、I/O、串行口、脉宽调制输出、A/D、D/A、FLASH MEMORY、E2PROM等各种必要功能和外设,有些还集成LCD控制、USB模块等功能。MCU的最大特点是单片化,体积小,功耗和成本下降,可靠性提高。常见的微控制器有Intel MCS-51/96/196/296系列及兼容芯片、ATMEL的AVR及SAM4L系列、MICROCHIP公司的PIC系列、德州仪器 (TI)的各种 MCU芯片以及飞思卡尔(Freescale)等。

2.2.2 主板

嵌入式系统硬件选型时,通常根据系统的功能要求选择采用何种处理器和主板,一般可以通过两种方式获得主板:一种是自行设计,通常采用单片机、DSP的系统就需要设计者自己设计主板,其优点是针对性、灵活性较强;另一种是选择或定制通用标准主板,市场上嵌入式主板标准主要有PC/104标准、EPIC标准(115×165mm)、ETX标准、CompactPCI标准、COM 板(85×105mm)、COM Express标准和ITX规范等,其优点是功能强、开发方便。

1)PC/104,PC/104+,PCI-104嵌入式标准。PC/104嵌入式计算机诞生于1987年,1992年被正式接纳为IEEE P996.1标准。它尺寸为90×96mm,有104根总线,与PC100%兼容。后又衍生出PC/104+(ISA+PCI)和PCI-104(PCI)标准。

2)ETX标准。ETX(Embedded Technology eXtended)是嵌入式控制领域近年来得到推广应用的标准之一。ETX模块尺寸95×114mm,集成了声卡、LVDS显示、网口、USB和标准I/O功能的CPU子系统,通过4个100pin的高密度连接器与客户载板连接。

3)COMe标准。COM Express规范于2005年由国际工业电气协会(PICMG)推出,规定了三个标准尺寸的模块compact(95×95mm)、BASIC(95×125mm)、Extended(155×110mm),该规范保留了对传统PC技术的支持,如PCI,PATA等功能,同时加入高速串行总线PCI Express、串行数字视频传输SDVO、千兆以太网及串行ATA等新技术。

4)ITX规范。是由威盛电子提出一种结构紧凑的微型化的主板设计规范,用来设计用于小空间小尺寸的专业计算机的,包括 Mini-ITX(170mm×170mm)、的Nano-ITX(120mm×120mm)、Pico-ITX 板(100mm×72mm)。

2.2.3 复杂可编程逻辑器件(CPLD)

早期的可编程逻辑器件如PROM、EPROM、E2PROM等只能完成简单的数字逻辑功能,可编程芯片PLD(如PAL、AGAL、GAL)能实现规模较小的电路。

复杂可编程逻辑器件(CPLD,Complex programmable logic device)和现场可编程门阵列(FPGA,Field programmable Gate Array)是近年来发展起来的大规模可编程专用集成电路(ASIC)芯片[4]。工程师可以通过传统的原理图输入法或硬件描述语言(HDL),自由设计一个数字系统和功能复杂的专用电路,设计周期缩短,费用减少,风险降低,成为当今电子系统设计的重要手段。

2.3 嵌入式软件

包括嵌入式系统软件、应用软件和开发工具等。嵌入式系统软件分为嵌入式操作系统、嵌入式数据库及其他嵌入式系统软件;开发工具通常采用C/C++语言和汇编语言。

2.3.1 嵌入式操作系统

简单的嵌入式系统一般并不使用操作系统,只包含一些控制流程,但对于功能复杂的系统,简单的控制流程难以满足系统的要求,就需要使用嵌入式操作系统[5](Embedded Operating System,EOS)。

现有EOS产品较多,如嵌入式LINUX、VxWorks、Palm OS、WINDOWS CE(Windows Embedded Compact 7)、WINDOWS NT Embedded、WINDOWS XP Embedded、Nucleus PLUS、μC/OS、VRTX、pSOS、QNX、国产的 DELTA SYSTEM以及智能手机操作系统如iOS(苹果)、Android(安卓)、Windows Phone等。

2.3.2 开发工具

嵌入式系统开发工具通常采用C/C++语言和汇编语言[5],对于简单的单片机系统很多直接采用汇编语言编写应用软件,芯片制造商一般都提供汇编语言交叉编译工具或者集成开发环境(IDE),也可以采用第三方公司的C语言编译器和集成调试环境。

对于相对复杂的系统,一般选用相应的EOS,在此基础上再开发完成特定功能的应用软件,因此,需要有相应的开发、调试工具。有很多厂商推出不少各种EOS环境下的开发工具,如WRS公司的Tomado等,借助这些开发工具,设计者可以采用高级语言如C/C++编程,能够方便、快速开发出所需的应用程序。

3 导航设备中的应用情况

3.1 应用概况

舰船航海导航设备主要包括磁罗经、电罗经、平台罗经、惯导、测深仪、计程仪、航迹仪、自动操舵仪、电子航海图、GPS、罗兰C、北斗接收机、气象传真机以及气象仪等仪器。

计算机技术在航海仪器中的应用随着技术进步而越来越广泛地应用。上世纪70年代末,航海仪器如平台罗经等的计算控制功能主要通过电路(可以称之为模拟计算机)实现;80年代以来,大型航海设备的计算机大多采用INTEL 8086CPU、MULTI-BUS总线的工控机,大大缩小系统的体积,而系统的精度、性能得到了很大的提升,小型航海设备的计算机系统大多采用单板机/单片机如Intel、Motorola、ATMEL等公司的芯片,根据所承担的功能自主设计相应的主板和软件;90年代以来,这些航海设备在升级换代过程中,逐渐采用PC/104等系统或功能改进的单片机。近年来,嵌入式系统技术发展迅速,各种嵌入式标准如ETX、COMe、ITX等不断涌现,超低功耗、高性能处理器广泛应用,使航海设备的智能化水平有了很大的提高,仪器的性能大幅提升,体积逐渐减小。

3.1.1 硬件系统应用

目前现役航海设备种类型号众多,采用的嵌入式系统技术五花八门,大致有以下几类应用:

1)功能相对简单的仪器通常采用单片机。使用比较多的是Intel MCS-51系列单片机及兼容芯片,如某型气象仪、某型测深仪、某型数字复示磁罗经、某型复合式计程仪使用了80C31单片机;某型压差式计程仪使用ATMEL公司生产的MCS-51兼容芯片AT89C51单片机;某型电磁计程仪使用AT89C55单片机;某型复合式计程仪和某型多普勒计程仪使用AT89C52单片机;也有一些航海仪器使用了DSP芯片,如某型GPS/GLONASS组合导航仪、某型罗兰C接收机、某型北斗海用导航仪使用TMS320C32芯片;某型组合智能导航仪使用TM5800芯片。

2)个别早期设计的设备使用低档次通用微处理器芯片,如上世纪90年代定型的某型电磁计程仪、某型航迹仪使用Intel 8086CPU。

3)系统相对复杂的仪器,其嵌入式系统主板较多使用PC/104主板、ETX、COMe等母板,CPU 通常采用Intel 80486到PentiumⅢ以及凌动ATOM超低功耗处理器等嵌入式微处理器。如某型北斗一号舰艇用户机、某型测深测潜仪、某型回声测深仪、某型平台罗经等采用Intel 80486嵌入式微处理器;某型综导显控台采用Intel 5x86嵌入式微处理器;某型电子航海图采用Intel PentiumⅢ-M嵌入式微处理器;某型气象仪采用Intel ATOM处理器。

4)仪器中组合应用了工控机和单片机等多种嵌入式硬件,通常应用在一些比较庞大复杂的系统中,常见的情形是主机使用PC/104、ETX板、COMe板来完成主控、复杂计算等功能,分机使用单片机或DSP完成某一相对简单、特定的功能,如某型多普勒计程仪、某型无源北斗导航接收机等。

3.1.2 软件系统应用

航海设备嵌入式系统软件系统根据不同的硬件环境可以分为二类:

1)使用单片机的系统,一般无EOS,其软件一般采用汇编语言编写,完成一些简单计算、流程控制、A/D、D/A、人机交互和显示控制等功能。

2)使用嵌入式微处理器的系统,一般选用相应的EOS和开发工具,并编写应用程序。上世纪90年代研发的产品很多使用DOS环境、C/C++编程,进入20世纪以来,市场上可供选择的嵌入式系统软硬件产品较多,新研发的航海设备采用的嵌入式系统五发八门,应用软件较多采用C++编程,运行环境主要有 DOS、Windows、VxWorks、Windows XPE、Linux等操作系统。

(1)使用DOS操作系统,如某型北斗一号舰艇用户机和某型平台罗经;

(2)使用Windows3.2操作系统,如某型回声测深仪;

(3)使用VxWorks操作系统,如某型综导显控台、某型航迹仪、某型北斗一号舰艇用户机和某型电子航海图等;

(4)使用Windows XPE操作系统,如某型气象仪等。

3.2 典型应用举例

3.2.1 电子航海图系统

电子航海图系统是具有电子海图显示、航海自动化作业、导航信息综合处理的综合导航系统。电子航海图系统计算机系统采用DOS、Windows、MapInfo、VxWorks、Windwos XPE操作系统,软件编程使用C/C++语言、MapBasic等,近年来,军用电子航海图系统软件平台更多采用Vx-Works操作系统。以某型电子航海图系统为例,其嵌入式系统为:

1)硬件系统。主板为嵌入式单板主机GENE-6320,采用Intel超低功耗、移动型PentiumⅢ-M处理器,频率700MHz,板载插槽支持256MB系统内存,提供TTL和LVDS LCD接口、100MB网口、USB端口、PCI-104插槽等,显示分辨率1280*1024[6]。

2)软件系统。操作系统原采用 Windows 2000,2001年改用嵌入式VxWorks操作系统,应用软件使用C++语言编程开发,包括信息处理模块(导航信息统一采集、优化处理和集中显示)、海图显示和改正模块、导航和海图作业模块、航线设计模块、信息查询模块、雷达目标叠加和战斗航海模块以及系统管理模块等。

3.2.2 计程仪

计程仪是用来测量舰船航速并计算舰船航行里程的仪器,又称测速仪。以某型计程仪为例,该型计程仪由主仪器、电磁传感器、传感器升降装置、前置放大器、压差传感器、开关分配器、导压及提升装置、复示器、接线箱和信息发送箱组成[7],其中主仪器是计程仪的操作控制中心,完成速度、航程的各种转换处理和人机界面与发送的控制,它实质上是一个AT89C55单片机系统。

1)硬件系统。CPU板是该型计程仪嵌入式系统的核心部分,采用了AT89C55单片机,片内具有24KB程序存储器,片外扩展了8KB的EEPROM(AT28C64),用于存放各种计算参数、累计航程、累计时间等数据。CPU板的主要功能是自动完成对传感器送来的代表舰船航行速度大小的信号进行周期性计算和修正,得到航行速度,并对该速度根据时间间隔大小进行数值积分,求得航程,然后将速度和航程信息通过接口发送和显示;ADC板主要由8155接口芯片、12位并行输出A/D转换器ICL7109、高精度I/F转换器AD652和分频器等组成,其主要功能是完成传感器输入信号的模/数转换、键盘编码的控制输入、航速值的串行输出、并行输出及航程输出脉冲的转换发送;TRS板主要由自整角机/数字转换器12SZ、功放电路ULN2803、数字比较器54LS85等组成,其主要功能是完成航速、航程数字量到自整角机/旋转变压器模拟输出量的转换;CAN总线板包括CAN总线控制器SJA1000、控制器接口82C250和光电耦合器6N137等组成,其主要功能采用双冗余CAN总线发送航速信息。

2)系统软件。主仪器的工作程序用汇编语言编写,分为自检模块、管理模块、航速航程解算模块和测速校正模块,各模块以中断方式调用。不同的中断服务分支程序处理不同的任务,完成计程仪各种不同类型的操作,如系统启动、停止、参数装订、误差计算、误差修正、记录数据显示等。

4 应用展望

嵌入式系统技术发展十分迅速,其发展趋势为:一是嵌入式开发方式正在演变,开发环境的优劣成为选型关键。架构细节正日渐变得不再重要,汇编语言编程比重逐步下降,最低层优化需针对具体芯片,而开发环境变得更重要,芯片公司的服务也越来越关键;二是微型化(尺寸、功耗和污染等)是嵌入式计算平台的必然趋势。未来航海设备中嵌入式系统的应用必将紧紧追随主流技术,笔者认为可能朝两个方向发展。

1)低端应用(功能相对简单的仪器)采用各种档次的单片机。因为近年来单片机技术发展十分迅速,从4位、8位、16位发展到32位芯片、多核芯片,集成了更多的外设和丰富的互联功能,同样档次的单片机功能比以前有了显著的提高,可供选择的余地很大,足以满足一般低端应用的要求。同时,MCU无论是开发成本,还是开发难度都在从硬件转移到软件[8],由芯片制造商提供的集成开发环境(IDE)、设计软件包、工程范例、调试支持等也比以前丰富,可以帮助客户减少设计工作量,加快设计速度。

2)中高端应用(功能相对复杂庞大的系统)硬件选用各种标准的嵌入式主板(如ETX板、COM Express板、ITX板),CPU采用超低功耗处、高性能嵌入式微处理器如凌动ATOM超低功耗处理器、嵌入式第三代Core i系列处理器等,应用软件更多采用 Windows XPE[9]、VxWorks、嵌入式Linux[11]等操作系统环境的开发工具进行开发。之所以这样认为,主要基于:一是从价格角度来看,中高端应用对价格相对不太敏感,但对功能、性能要求较高,容易采用高性能计算机板和芯片;二是从硬件角度来看,ETX、COMe、ITX等通用标准板层出不穷,母板及EOS底层驱动程序的设计开发已由专业厂商完成,开发人员不必过多考虑硬件设计而主要考虑应用程序的设计开发;三是从操作系统和开发环境角度来看,高性能嵌入式微处理器的应用使嵌入式系统运行速度与PC差距不大,原来庞大缓慢的操作系统如Windows XPE的运行会变得流畅,由于该系统功能强大、开发工具丰富、升级方便反而可能倍受青睐;四是从应用软件开发角度来看,嵌入式环境下的应用软件开发同PC环境下的软件开发已经没有多少差别,大大减少开发周期和难度。

5 结语

本文介绍了嵌入式系统技术,并对舰船导航设备嵌入式系统技术的应用现状进行了分析介绍,提出未来航海导航设备中嵌入式应用的发展趋势。随着嵌入式系统技术的飞速发展,新技术、新产品、新标准不断涌现,嵌入式开发变得容易,不必过多考虑硬件设计方面的问题,其在航海设备中的应用也会越来越普遍,同时航海设备产品在升级换代过程中也会越来越多地使用这些新技术,加快更新换代速度,仪器的性能和智能化水平将大幅提高。

[1]马义德,刘映杰,张新国,等.嵌入式系统的现状及发展前景[J].信息技术,2001,(12):57-59.

[2]李广军.嵌入式系统与IP-CORE、M-CORE设计技术[J].半导体技术,2001,26(1):4-8.

[3]宋真君.基于工业以太网的嵌入式控制系统的研究[D].上海:华东理工大学,2002.

[4]张军.FPGA与CPLD器件使用经验谈[J].测控技术,2001,20(12):57-60.

[5]周德新,张向利.Linux与嵌入式操作系统[J].桂林电子工业学院学报,2000,20(4):21-23.

[6]陈锦德.电子航海图系统[M].天津:海军司令部航海保证部,2008:248-249.

[7]高敬东,陈浩,孙振宇.JD-5WA计程仪原理与使用维修[M].武汉:海军工程大学,2010:82-83.

[8]何小庆.MCU开发成本从硬件转移到软件[N].中国电子报,2012-08-03:8.

[9]余立民,罗明,王敬平,等.基于XPE的嵌入式移动集群设计与实现[J].计算机工程,2012,38(12):251-254.

[10]赵宇峰,孙伟华,王建国.基于嵌入式GIS的地图显示算法研究[J].计算机与数字工程,2011(3).

[11]胡伟.基于嵌入式Linux的RFID安全性研究[J].计算机工程,2011,37(23):155-158.

猜你喜欢
航海嵌入式单片机
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
断水三天的航海人
大航海争霸
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
航海博物馆