林育生 吳永明 楊國忠
(1.海軍九〇二廠 上海 200083)(2.海軍湛江航保廠 湛江 524002)
嵌入式系統(tǒng)(Embedded System)技術近年來發(fā)展十分迅速,成為研究的熱門方向之一,被廣泛應用于電子設備、平板電腦、智能手機、信息家電、PDA、機頂盒、工業(yè)控制、移動通信、電子商務和電子金融等領域,市場潛力巨大。航海導航設備主要用于艦船的航行導航,它為艦船航行提供航向、航速、航跡、位置、方位、水深、氣象要素等信息。航海設備中廣泛應用了各種嵌入式系統(tǒng)技術,大幅提高了儀器的性能和智能化水平。本文簡要介紹嵌入式系統(tǒng)技術,并對其在航海設備中的應用情況及發(fā)展方向作簡要論述。
嵌入式系統(tǒng)被定義為以應用為中心、以計算機技術為基礎、軟件硬件可裁減、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格的專用計算機系統(tǒng)[1]。從廣義上講嵌入式系統(tǒng)是指一個具有特定功能或用途的計算機軟硬件的集合體[2],狹義的嵌入式系統(tǒng)則指裝入另一設備并控制設備的專用計算機系統(tǒng)[3]。
嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用戶的應用程序等四個部分組成,用于實現(xiàn)對其他設備的控制、監(jiān)視或管理等功能。
2.2.1 處理器
嵌入式系統(tǒng)硬件的核心器件為處理器,通常包括微處理器、微控制器、DSP處理器和 SOC(System On Chip)/SOM(System-on-module)等。
1)微處理器。嵌入式微處理器的基礎是通用計算機中的CPU,在工作溫度、抗電磁干擾、可靠性、功耗等方面都做了各種增強[1]。在應用中,將微處理器裝配在專門設計的電路板上,只保留和嵌入式應用有關的母板功能,這樣可以大幅度減少系統(tǒng)的體積和功耗。市場上比較常見的嵌入式微處理器有Intel X86芯片(從80486到嵌入式第三代Core i系列處理器)、ARM、MIPS以及智能手機微處理器如高通(Qualcomm)、德州儀器(TI)、英偉達(Nvidia)的芯片等。
2)微控制器MCU。主要為4位、8位、16位和32位的單片機。MCU一般以某種微處理器內(nèi)核為核心,芯片內(nèi)部集成RAM、ROM/EPROM、總線、總線邏輯、定時/計時器、Watchdog、I/O、串行口、脈寬調(dià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 主板
嵌入式系統(tǒng)硬件選型時,通常根據(jù)系統(tǒng)的功能要求選擇采用何種處理器和主板,一般可以通過兩種方式獲得主板:一種是自行設計,通常采用單片機、DSP的系統(tǒng)就需要設計者自己設計主板,其優(yōu)點是針對性、靈活性較強;另一種是選擇或定制通用標準主板,市場上嵌入式主板標準主要有PC/104標準、EPIC標準(115×165mm)、ETX標準、CompactPCI標準、COM 板(85×105mm)、COM Express標準和ITX規(guī)范等,其優(yōu)點是功能強、開發(fā)方便。
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顯示、網(wǎng)口、USB和標準I/O功能的CPU子系統(tǒng),通過4個100pin的高密度連接器與客戶載板連接。
3)COMe標準。COM Express規(guī)范于2005年由國際工業(yè)電氣協(xié)會(PICMG)推出,規(guī)定了三個標準尺寸的模塊compact(95×95mm)、BASIC(95×125mm)、Extended(155×110mm),該規(guī)范保留了對傳統(tǒng)PC技術的支持,如PCI,PATA等功能,同時加入高速串行總線PCI Express、串行數(shù)字視頻傳輸SDVO、千兆以太網(wǎng)及串行ATA等新技術。
4)ITX規(guī)范。是由威盛電子提出一種結(jié)構(gòu)緊湊的微型化的主板設計規(guī)范,用來設計用于小空間小尺寸的專業(yè)計算機的,包括 Mini-ITX(170mm×170mm)、的Nano-ITX(120mm×120mm)、Pico-ITX 板(100mm×72mm)。
2.2.3 復雜可編程邏輯器件(CPLD)
早期的可編程邏輯器件如PROM、EPROM、E2PROM等只能完成簡單的數(shù)字邏輯功能,可編程芯片PLD(如PAL、AGAL、GAL)能實現(xiàn)規(guī)模較小的電路。
復雜可編程邏輯器件(CPLD,Complex programmable logic device)和現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield programmable Gate Array)是近年來發(fā)展起來的大規(guī)模可編程專用集成電路(ASIC)芯片[4]。工程師可以通過傳統(tǒng)的原理圖輸入法或硬件描述語言(HDL),自由設計一個數(shù)字系統(tǒng)和功能復雜的專用電路,設計周期縮短,費用減少,風險降低,成為當今電子系統(tǒng)設計的重要手段。
包括嵌入式系統(tǒng)軟件、應用軟件和開發(fā)工具等。嵌入式系統(tǒng)軟件分為嵌入式操作系統(tǒng)、嵌入式數(shù)據(jù)庫及其他嵌入式系統(tǒng)軟件;開發(fā)工具通常采用C/C++語言和匯編語言。
2.3.1 嵌入式操作系統(tǒng)
簡單的嵌入式系統(tǒng)一般并不使用操作系統(tǒng),只包含一些控制流程,但對于功能復雜的系統(tǒng),簡單的控制流程難以滿足系統(tǒng)的要求,就需要使用嵌入式操作系統(tǒng)[5](Embedded Operating System,EOS)。
現(xiàn)有EOS產(chǎn)品較多,如嵌入式LINUX、VxWorks、Palm OS、WINDOWS CE(Windows Embedded Compact 7)、WINDOWS NT Embedded、WINDOWS XP Embedded、Nucleus PLUS、μC/OS、VRTX、pSOS、QNX、國產(chǎn)的 DELTA SYSTEM以及智能手機操作系統(tǒng)如iOS(蘋果)、Android(安卓)、Windows Phone等。
2.3.2 開發(fā)工具
嵌入式系統(tǒng)開發(fā)工具通常采用C/C++語言和匯編語言[5],對于簡單的單片機系統(tǒng)很多直接采用匯編語言編寫應用軟件,芯片制造商一般都提供匯編語言交叉編譯工具或者集成開發(fā)環(huán)境(IDE),也可以采用第三方公司的C語言編譯器和集成調(diào)試環(huán)境。
對于相對復雜的系統(tǒng),一般選用相應的EOS,在此基礎上再開發(fā)完成特定功能的應用軟件,因此,需要有相應的開發(fā)、調(diào)試工具。有很多廠商推出不少各種EOS環(huán)境下的開發(fā)工具,如WRS公司的Tomado等,借助這些開發(fā)工具,設計者可以采用高級語言如C/C++編程,能夠方便、快速開發(fā)出所需的應用程序。
艦船航海導航設備主要包括磁羅經(jīng)、電羅經(jīng)、平臺羅經(jīng)、慣導、測深儀、計程儀、航跡儀、自動操舵儀、電子航海圖、GPS、羅蘭C、北斗接收機、氣象傳真機以及氣象儀等儀器。
計算機技術在航海儀器中的應用隨著技術進步而越來越廣泛地應用。上世紀70年代末,航海儀器如平臺羅經(jīng)等的計算控制功能主要通過電路(可以稱之為模擬計算機)實現(xiàn);80年代以來,大型航海設備的計算機大多采用INTEL 8086CPU、MULTI-BUS總線的工控機,大大縮小系統(tǒng)的體積,而系統(tǒng)的精度、性能得到了很大的提升,小型航海設備的計算機系統(tǒng)大多采用單板機/單片機如Intel、Motorola、ATMEL等公司的芯片,根據(jù)所承擔的功能自主設計相應的主板和軟件;90年代以來,這些航海設備在升級換代過程中,逐漸采用PC/104等系統(tǒng)或功能改進的單片機。近年來,嵌入式系統(tǒng)技術發(fā)展迅速,各種嵌入式標準如ETX、COMe、ITX等不斷涌現(xiàn),超低功耗、高性能處理器廣泛應用,使航海設備的智能化水平有了很大的提高,儀器的性能大幅提升,體積逐漸減小。
3.1.1 硬件系統(tǒng)應用
目前現(xiàn)役航海設備種類型號眾多,采用的嵌入式系統(tǒng)技術五花八門,大致有以下幾類應用:
1)功能相對簡單的儀器通常采用單片機。使用比較多的是Intel MCS-51系列單片機及兼容芯片,如某型氣象儀、某型測深儀、某型數(shù)字復示磁羅經(jīng)、某型復合式計程儀使用了80C31單片機;某型壓差式計程儀使用ATMEL公司生產(chǎn)的MCS-51兼容芯片AT89C51單片機;某型電磁計程儀使用AT89C55單片機;某型復合式計程儀和某型多普勒計程儀使用AT89C52單片機;也有一些航海儀器使用了DSP芯片,如某型GPS/GLONASS組合導航儀、某型羅蘭C接收機、某型北斗海用導航儀使用TMS320C32芯片;某型組合智能導航儀使用TM5800芯片。
2)個別早期設計的設備使用低檔次通用微處理器芯片,如上世紀90年代定型的某型電磁計程儀、某型航跡儀使用Intel 8086CPU。
3)系統(tǒng)相對復雜的儀器,其嵌入式系統(tǒng)主板較多使用PC/104主板、ETX、COMe等母板,CPU 通常采用Intel 80486到PentiumⅢ以及凌動ATOM超低功耗處理器等嵌入式微處理器。如某型北斗一號艦艇用戶機、某型測深測潛儀、某型回聲測深儀、某型平臺羅經(jīng)等采用Intel 80486嵌入式微處理器;某型綜導顯控臺采用Intel 5x86嵌入式微處理器;某型電子航海圖采用Intel PentiumⅢ-M嵌入式微處理器;某型氣象儀采用Intel ATOM處理器。
4)儀器中組合應用了工控機和單片機等多種嵌入式硬件,通常應用在一些比較龐大復雜的系統(tǒng)中,常見的情形是主機使用PC/104、ETX板、COMe板來完成主控、復雜計算等功能,分機使用單片機或DSP完成某一相對簡單、特定的功能,如某型多普勒計程儀、某型無源北斗導航接收機等。
3.1.2 軟件系統(tǒng)應用
航海設備嵌入式系統(tǒng)軟件系統(tǒng)根據(jù)不同的硬件環(huán)境可以分為二類:
1)使用單片機的系統(tǒng),一般無EOS,其軟件一般采用匯編語言編寫,完成一些簡單計算、流程控制、A/D、D/A、人機交互和顯示控制等功能。
2)使用嵌入式微處理器的系統(tǒng),一般選用相應的EOS和開發(fā)工具,并編寫應用程序。上世紀90年代研發(fā)的產(chǎn)品很多使用DOS環(huán)境、C/C++編程,進入20世紀以來,市場上可供選擇的嵌入式系統(tǒng)軟硬件產(chǎn)品較多,新研發(fā)的航海設備采用的嵌入式系統(tǒng)五發(fā)八門,應用軟件較多采用C++編程,運行環(huán)境主要有 DOS、Windows、VxWorks、Windows XPE、Linux等操作系統(tǒng)。
(1)使用DOS操作系統(tǒng),如某型北斗一號艦艇用戶機和某型平臺羅經(jīng);
(2)使用Windows3.2操作系統(tǒng),如某型回聲測深儀;
(3)使用VxWorks操作系統(tǒng),如某型綜導顯控臺、某型航跡儀、某型北斗一號艦艇用戶機和某型電子航海圖等;
(4)使用Windows XPE操作系統(tǒng),如某型氣象儀等。
3.2.1 電子航海圖系統(tǒng)
電子航海圖系統(tǒng)是具有電子海圖顯示、航海自動化作業(yè)、導航信息綜合處理的綜合導航系統(tǒng)。電子航海圖系統(tǒng)計算機系統(tǒng)采用DOS、Windows、MapInfo、VxWorks、Windwos XPE操作系統(tǒng),軟件編程使用C/C++語言、MapBasic等,近年來,軍用電子航海圖系統(tǒng)軟件平臺更多采用Vx-Works操作系統(tǒng)。以某型電子航海圖系統(tǒng)為例,其嵌入式系統(tǒng)為:
1)硬件系統(tǒng)。主板為嵌入式單板主機GENE-6320,采用Intel超低功耗、移動型PentiumⅢ-M處理器,頻率700MHz,板載插槽支持256MB系統(tǒng)內(nèi)存,提供TTL和LVDS LCD接口、100MB網(wǎng)口、USB端口、PCI-104插槽等,顯示分辨率1280*1024[6]。
2)軟件系統(tǒng)。操作系統(tǒng)原采用 Windows 2000,2001年改用嵌入式VxWorks操作系統(tǒng),應用軟件使用C++語言編程開發(fā),包括信息處理模塊(導航信息統(tǒng)一采集、優(yōu)化處理和集中顯示)、海圖顯示和改正模塊、導航和海圖作業(yè)模塊、航線設計模塊、信息查詢模塊、雷達目標疊加和戰(zhàn)斗航海模塊以及系統(tǒng)管理模塊等。
3.2.2 計程儀
計程儀是用來測量艦船航速并計算艦船航行里程的儀器,又稱測速儀。以某型計程儀為例,該型計程儀由主儀器、電磁傳感器、傳感器升降裝置、前置放大器、壓差傳感器、開關分配器、導壓及提升裝置、復示器、接線箱和信息發(fā)送箱組成[7],其中主儀器是計程儀的操作控制中心,完成速度、航程的各種轉(zhuǎn)換處理和人機界面與發(fā)送的控制,它實質(zhì)上是一個AT89C55單片機系統(tǒng)。
1)硬件系統(tǒng)。CPU板是該型計程儀嵌入式系統(tǒng)的核心部分,采用了AT89C55單片機,片內(nèi)具有24KB程序存儲器,片外擴展了8KB的EEPROM(AT28C64),用于存放各種計算參數(shù)、累計航程、累計時間等數(shù)據(jù)。CPU板的主要功能是自動完成對傳感器送來的代表艦船航行速度大小的信號進行周期性計算和修正,得到航行速度,并對該速度根據(jù)時間間隔大小進行數(shù)值積分,求得航程,然后將速度和航程信息通過接口發(fā)送和顯示;ADC板主要由8155接口芯片、12位并行輸出A/D轉(zhuǎn)換器ICL7109、高精度I/F轉(zhuǎn)換器AD652和分頻器等組成,其主要功能是完成傳感器輸入信號的模/數(shù)轉(zhuǎn)換、鍵盤編碼的控制輸入、航速值的串行輸出、并行輸出及航程輸出脈沖的轉(zhuǎn)換發(fā)送;TRS板主要由自整角機/數(shù)字轉(zhuǎn)換器12SZ、功放電路ULN2803、數(shù)字比較器54LS85等組成,其主要功能是完成航速、航程數(shù)字量到自整角機/旋轉(zhuǎn)變壓器模擬輸出量的轉(zhuǎn)換;CAN總線板包括CAN總線控制器SJA1000、控制器接口82C250和光電耦合器6N137等組成,其主要功能采用雙冗余CAN總線發(fā)送航速信息。
2)系統(tǒng)軟件。主儀器的工作程序用匯編語言編寫,分為自檢模塊、管理模塊、航速航程解算模塊和測速校正模塊,各模塊以中斷方式調(diào)用。不同的中斷服務分支程序處理不同的任務,完成計程儀各種不同類型的操作,如系統(tǒng)啟動、停止、參數(shù)裝訂、誤差計算、誤差修正、記錄數(shù)據(jù)顯示等。
嵌入式系統(tǒng)技術發(fā)展十分迅速,其發(fā)展趨勢為:一是嵌入式開發(fā)方式正在演變,開發(fā)環(huán)境的優(yōu)劣成為選型關鍵。架構(gòu)細節(jié)正日漸變得不再重要,匯編語言編程比重逐步下降,最低層優(yōu)化需針對具體芯片,而開發(fā)環(huán)境變得更重要,芯片公司的服務也越來越關鍵;二是微型化(尺寸、功耗和污染等)是嵌入式計算平臺的必然趨勢。未來航海設備中嵌入式系統(tǒng)的應用必將緊緊追隨主流技術,筆者認為可能朝兩個方向發(fā)展。
1)低端應用(功能相對簡單的儀器)采用各種檔次的單片機。因為近年來單片機技術發(fā)展十分迅速,從4位、8位、16位發(fā)展到32位芯片、多核芯片,集成了更多的外設和豐富的互聯(lián)功能,同樣檔次的單片機功能比以前有了顯著的提高,可供選擇的余地很大,足以滿足一般低端應用的要求。同時,MCU無論是開發(fā)成本,還是開發(fā)難度都在從硬件轉(zhuǎn)移到軟件[8],由芯片制造商提供的集成開發(fā)環(huán)境(IDE)、設計軟件包、工程范例、調(diào)試支持等也比以前豐富,可以幫助客戶減少設計工作量,加快設計速度。
2)中高端應用(功能相對復雜龐大的系統(tǒng))硬件選用各種標準的嵌入式主板(如ETX板、COM Express板、ITX板),CPU采用超低功耗處、高性能嵌入式微處理器如凌動ATOM超低功耗處理器、嵌入式第三代Core i系列處理器等,應用軟件更多采用 Windows XPE[9]、VxWorks、嵌入式Linux[11]等操作系統(tǒng)環(huán)境的開發(fā)工具進行開發(fā)。之所以這樣認為,主要基于:一是從價格角度來看,中高端應用對價格相對不太敏感,但對功能、性能要求較高,容易采用高性能計算機板和芯片;二是從硬件角度來看,ETX、COMe、ITX等通用標準板層出不窮,母板及EOS底層驅(qū)動程序的設計開發(fā)已由專業(yè)廠商完成,開發(fā)人員不必過多考慮硬件設計而主要考慮應用程序的設計開發(fā);三是從操作系統(tǒng)和開發(fā)環(huán)境角度來看,高性能嵌入式微處理器的應用使嵌入式系統(tǒng)運行速度與PC差距不大,原來龐大緩慢的操作系統(tǒng)如Windows XPE的運行會變得流暢,由于該系統(tǒng)功能強大、開發(fā)工具豐富、升級方便反而可能倍受青睞;四是從應用軟件開發(fā)角度來看,嵌入式環(huán)境下的應用軟件開發(fā)同PC環(huán)境下的軟件開發(fā)已經(jīng)沒有多少差別,大大減少開發(fā)周期和難度。
本文介紹了嵌入式系統(tǒng)技術,并對艦船導航設備嵌入式系統(tǒng)技術的應用現(xiàn)狀進行了分析介紹,提出未來航海導航設備中嵌入式應用的發(fā)展趨勢。隨著嵌入式系統(tǒng)技術的飛速發(fā)展,新技術、新產(chǎn)品、新標準不斷涌現(xiàn),嵌入式開發(fā)變得容易,不必過多考慮硬件設計方面的問題,其在航海設備中的應用也會越來越普遍,同時航海設備產(chǎn)品在升級換代過程中也會越來越多地使用這些新技術,加快更新?lián)Q代速度,儀器的性能和智能化水平將大幅提高。
[1]馬義德,劉映杰,張新國,等.嵌入式系統(tǒng)的現(xiàn)狀及發(fā)展前景[J].信息技術,2001,(12):57-59.
[2]李廣軍.嵌入式系統(tǒng)與IP-CORE、M-CORE設計技術[J].半導體技術,2001,26(1):4-8.
[3]宋真君.基于工業(yè)以太網(wǎng)的嵌入式控制系統(tǒng)的研究[D].上海:華東理工大學,2002.
[4]張軍.FPGA與CPLD器件使用經(jīng)驗談[J].測控技術,2001,20(12):57-60.
[5]周德新,張向利.Linux與嵌入式操作系統(tǒng)[J].桂林電子工業(yè)學院學報,2000,20(4):21-23.
[6]陳錦德.電子航海圖系統(tǒng)[M].天津:海軍司令部航海保證部,2008:248-249.
[7]高敬東,陳浩,孫振宇.JD-5WA計程儀原理與使用維修[M].武漢:海軍工程大學,2010:82-83.
[8]何小慶.MCU開發(fā)成本從硬件轉(zhuǎn)移到軟件[N].中國電子報,2012-08-03:8.
[9]余立民,羅明,王敬平,等.基于XPE的嵌入式移動集群設計與實現(xiàn)[J].計算機工程,2012,38(12):251-254.
[10]趙宇峰,孫偉華,王建國.基于嵌入式GIS的地圖顯示算法研究[J].計算機與數(shù)字工程,2011(3).
[11]胡偉.基于嵌入式Linux的RFID安全性研究[J].計算機工程,2011,37(23):155-158.