複製鏈接
請複製以下鏈接發送給好友

嵌入式開發

鎖定
嵌入式開發就是指在嵌入式操作系統下進行開發,包括在系統化設計指導下的硬件和軟件以及綜合研發。除暫且分離硬件的EDA研發以外,側重的就是在一定硬件條件下的系統化設計和軟件研發
中文名
嵌入式開發
外文名
Embedded System
開發流程
系統需求分析、體系結構設計等
特    點
軟件、硬件綜合開發
應用領域
製造業
所屬領域
計算機科學技術

嵌入式開發定義

嵌入式開發是指利用分立元件或集成器件進行電路設計、結構設計,再進行軟件編程(通常是高級語言),實驗,經過多輪修改設計、製作,最終完成整個系統的開發。這種嵌入式開發,適用於未來產品比較單一,產量比較大,產品開發週期比較長,成本控制比較嚴格的系統。
嵌入式技術不是單純的軟件技術,也不是單純的硬件技術,是一門如何在一個特定的硬件環境上開發與構建特定的可編程軟件系統的綜合技術。嵌入式技術是在嵌入式系統的發展中應運而生的,它是依附於嵌入式系統,並推動嵌入式系統不斷向前發展的核心動力。嵌入式是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手錶、微波爐錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是是由單個程序實現整個控制邏輯。嵌入式技術近年來得到了飛速的發展,但是嵌入式產業涉及的領域非常廣泛,彼此之間的特點也相當明顯。例如,很多行業:手機、PDA、車載導航、工控、軍工、多媒體終端、網關、數字電視等。 [1] 

嵌入式開發主流平台

主流的嵌入式平台有三種:ARM平台、DSP平台和FPGA平台。
一、ARM
ARM微處理器是由ARM公司提供IP(Intellectual Property,知識產權)授權,交付多個芯片設計廠商整合生產的。在2007年,意法半導體ST)公司成為第一個引入ARM Cortex-M授權的半導體廠商,開啓了高性能、低成本、低功耗的ARM嵌入式芯片新時代,其生產的STM32系列微處理器是最流行的Cortex-M微處理器。ARM嵌入式系統廣泛應用於自動檢測與控制、智能儀器儀表、機電一體化設備、汽車電子及日常消費電子產品中。
二、DSP平台
嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP),是專門用於信號處理方面的處理器,其在系統結構和指令算法方面進行了特殊設計,芯片內部採用程序和數據分開存儲及傳輸的哈佛結構,具有專門硬件乘法器,採用流水線操作,提供特殊的DSP指令,可用來快速地實現各種數字信號處理算法,具有很高的編譯效率和指令的執行速度,在數字濾波FFT譜分析等各種儀器上獲得了大規模的應用。
三、FPGA平台
隨着平台級FPGA產品的出現和EDA設計工具軟件的不斷髮展,利用現有的FPGA和EDA工具,人們也可以很方便地在FPGA中嵌入RISC(Reduced Instruction Set Computer,精簡指令集)處理器內核、DSP算法、存儲器、專用ASIC模塊、其它數字IP Core以及用户定製邏輯等,構建成一個可編程的片上系統(SOPC),把原來需要在PCB上採用處理器、DSP、若干ASIC芯片才能實現的功能全都集成到了單片FPGA上。
FPGA內部嵌入了豐富的乘法器(DSP)資源、高速收發器(GTP/GTX)資源、以太網MAC資源、嵌入式處理器(Power PC)資源、時鐘及鎖相環資源、存儲器(BRAM)資源等,甚至在Xilinx公司最新推出的Zynq-7000系列芯片之中嵌入了ARM資源,將傳統的FPGA演變成了ARM+FPGA的擴展開發平台。這些嵌入的硬件資源極大地增強了傳統FPGA的功能,提升了FPGA的工作效率和靈活性,使得一塊FPGA平台就可適用於多種產品,進行各種擴展。開發者只需要掌握Verilog HDL硬件描述語言嵌入式系統開發的相關知識,就可對整個系統進行編程和控制。 [2] 

嵌入式開發硬件環境

(1)嵌入式處理器MPU、DSP。
(2)存儲器系統:Flash+RAM+MEM card+mini HD。
嵌入式系統有別於一般的通用計算機系統,它不具備像硬盤那樣大容量的存儲介質,而用靜態易失型存儲器(RAMSRAM)、動態存儲器DRAM)和非易失型存儲器(ROM、EPROMEEPROM、FLASH)作為存儲介質,其中FLASH憑藉其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛應用。
(3)輸入設備:鍵盤,視/音頻輸入A/D
(4)輸出設備:顯示(LED/LCD/OLED)裝置,視/音頻輸出,A/D。
(5)通訊接口:Ehternet(802.3),WIFI802.11)。
(6)總線接口:RS232/RS485,USB,1394(Firewire)。
(7)電源管理:待機、休眠、功耗管理等。
嵌入式開發的硬件平台選擇主要是嵌入式處理器的選擇。在具體應用中處理器的選擇決定了其市場競爭力。在一個系統中使用什麼樣的嵌入式處理器主要取決於應用領域、用户的需求、成本、開發的難易程度等因素。在開發過程中,選擇最適用的硬件平台是一項很複雜的工作,包括要考慮其他工程的影響以及缺乏完整或準確的信息等。

嵌入式開發嵌入式開發結構

標準嵌入式開發架構有兩大體系:CISC(Complex Instruction Set Computer,複雜指令集計算機)和RISC(Reduced Instruction Set Computer,精簡指令集計算機)。
早期的CPU全部是CISC架構,它的設計目的主要用最少的機器語言指令來完成所需的計算任務。這種架構會增加CPU結構的複雜性和對CPU工藝的要求,但對於編譯器的開發十分有利。只有Intel及其兼容CPU還在使用CISC架構。RISC架構要求軟件來指定各個操作步驟,可以降低CPU的複雜性以及允許在同樣的工藝水平下生產功能更強大的CPU,但對於編譯器的設計有更高的要求。佔主要地位的是RISC處理器。
RISC體系的陣營非常廣泛,從ARMMIPSPowerPC、ARC、Tensilica等,都是屬於RISC處理器範疇。不過這些處理器雖然同樣是屬於RISC體系,但是在指令設計與處理單元的結構上都各有不同,因此彼此完全不能兼容,在特定平台上所開發的軟件無法直接為另一硬件平台所用,而必須重新經過編譯。CISC和RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一個明顯的例子,它們的內核都是基於RISC體系結構的,它們接受CISC指令後將其分類成RISC指令以便在同一時間內能夠執行多餘指令 [3] 

嵌入式開發嵌入式開發流程

當前,嵌入式開發已經逐步規範化,在遵循一般工程開發流程的基礎上,嵌入式開發有其自身的一些特點。主要包括系統需求分析(要求有嚴格規範的技術要求)、體系結構設計、軟硬件及機械系統設計、系統集成系統測試,最終得到產品。
(1)系統需求分析。確定設計任務和設計目標,並提煉出設計規格説明書,作為正式設計指導和驗收的標準。系統的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統的基本功能,如輸入輸出信號、操作方式等;非功能性需求包括系統性能、成本、功耗、體積、重量等因素。
(2)體系結構設計。描述系統如何實現所述的功能和非功能性需求,包括對硬件、軟件和執行裝置的功能劃分,以及系統的軟件、硬件選型等。一個好的體系結構是設計成功與否的關鍵。
(3)硬件/軟件協同設計。基於體系結構,對系統的軟件、硬件進行詳細設計。為了縮短產品開發週期,設計往往是並行的。嵌入式系統設計的工作大部分都集中在軟件設計上,面向對象技術、軟件組件技術模塊化設計是現代軟件工程經常採用的方法。
(4)系統集成。把系統的軟件、硬件和執行裝置集成在一起,進行調試,發現並改進單元設計過程中的錯誤。
(5)系統測試。對設計好的系統進行測試,看其是否滿足規格説明書中給定的功能要求。
嵌入式系統開發模式最大特點是軟件、硬件綜合開發。這是因為嵌入式產品是軟硬件的結合體,軟件針對硬件開發、固化、不可修改 [4] 

嵌入式開發主要特徵

嵌入式系統國內普遍認同的定義是:以計算機技術為基礎,以應用為中心,軟件、硬件可剪裁,適合應用系統對功能可靠性、成本、體積、功耗嚴格要求的專業計算機系統。在構成上,嵌入式系統以微處理器及軟件為核心部件,兩者缺一不可;在特徵上,嵌入式系統具有方便、靈活地嵌入到其他應用系統的特徵,即具有很強的嵌入性
嵌入式微處理器類型劃分,嵌入式系統可分為以單片機為核心的嵌入式單片機系統;以工業計算機板為核心的嵌入式計算機系統;以DSP為核心組成的嵌入式數字信號處理器系統;以FPGA為核心的嵌入式SOPC(System On a Programmable Chip,可編程片上系統)系統等。
嵌入式系統在含義上與傳統的單片機系統和計算機系統有很多重疊部分。為了方便區分,在實際應用中,嵌入式系統還應該具備下述三個特徵:
(1)嵌入式系統的微處理器通常是由32位及以上的RISC(Reduced Instruction Set Computer,精簡指令集計算機處理器)組成,例如ARMMIPS等。
(2)嵌入式系統的軟件系統通常是以嵌入式操作系統為核心,外加用户應用程序
(3)嵌入式系統在特徵上具有明顯的可嵌入性 [5] 

嵌入式開發關鍵技術

1.開發過程中的相關技術
嵌入式系統開發過程中,主要包括宿主機與目標機兩個部分的開發,宿主機能夠對嵌入式系統中的代碼編譯、定址及鏈接進行執行,而目標機則是嵌入式系統中的硬件平台。在對嵌入式系統進行開發時,需要將應用程序轉換成相應的二進制代碼,這些二進制代碼能夠在目標機中運行。在上述開發過程中,主要可分為三個步驟,分別是編譯過程;鏈接過程與定址過程,其中,嵌入式系統中的交叉編譯器能夠進行編譯,交叉編譯器屬於一種計算機平台中的代碼生成編譯器,較為常見的交叉編譯器是GNU C/C++gcc),它會將所有編譯完成的目標文件均和一個目標文件進行鏈接,這便是鏈接過程。而定址過程則會在目標文件的各個偏移位置對相應的物理存儲器地址進行指定,在定址過程中所生成的文件便是二進制文件。在嵌入式系統調試過程中,主要是利用交叉調試器來進行,其調試方式通常採用宿主機-目標機形勢,宿主機與目標機之間的連接是通過以太網串行口線來實現的,在交叉調試任務中,主要包括任務級調試、彙編級調試與源碼級調試,在調試過程中需要將宿主機中存儲的系統內核與應用程序分別下載到目標機當中的RAM或ROM當中。當目標機運行後,會對宿主機中的調試器控制命令進行接收,同時配合調試器來對應用程序進行下載、運行與調試,然後將調試信息發送到宿主機當中。
2.軟件移植技術
在嵌入式系統開發中,軟件移植技術無疑是其中的一項關鍵技術,其是以移植協議來完成軟件功能移植的,在移植協議中主要包括三個部分,分別是字節順序字節對齊位段空間分配。在字節順序中,現有的字節順序主要包括小段字節與大段字節兩種方式,小段字節順序是依據存儲地址中的數據排列順序來實現的,也就是低地址用於存儲低字節數據,高地址則用於存儲高字節數據。而大段字節則恰好與小段字節的排序順序是對調的。在字節對齊方面,現有的字節對齊方式非常多,其主要是以GCC中的MakeFile命令來編譯字節,然後對這些字節進行對齊,不過這種對齊方式會存在一些缺陷,因此需要在收數據包位置與發數據位置中分別加入相應的拆包函數與組包函數,以此提高嵌入式系統中軟件的互通性與移植性。位段空間分配也是軟件移植技術中的重要因素,通常在對位段進行分配時,其順序應從左至右進行,也有一部分系統是從右向左進行的。通過位段排序來確保嵌入式系統對數據進行準確保存,並利用編程方法來編譯位段排序,這樣在位段排序過程中只需要將對應的程序進行直接調用即可 [6] 

嵌入式開發考慮因素

嵌入式系統是以實際應用為主要考慮對象的專用計算機系統,嵌入式的特點就是軟硬件可配置、功能可靠、成本低、體積小、功耗低、實時性強。因此,嵌入式系統受功能和具體應用環境的約束,其開發流程就不同於一般的通用計算機系統。在嵌入式系統設計開發時必須考慮以下因素:
·功能可靠實用,便於升級;
·實時併發處理,及時響應;
·體積符合要求,結構緊湊;
·接口符合規範,易於操作;
·配置精簡穩定,維護便利;
·功耗嚴格管理,成本低廉 [7] 
參考資料
  • 1.    李春傑,李丹,陸璐編著.信息技術專題研究[M].長春:吉林大學出版社,2012.05
  • 2.    李延鵬編著.嵌入式開發工程入行手冊[M]..北京:中國鐵道出版社,2013.08
  • 3.    陳勇.龍芯嵌入式系統開發及應用實戰[M].南京:東南大學出版社,2016.12
  • 4.    肖明明等編著.電子信息類專業實踐教程[M].廣州:中山大學出版社,2010.12
  • 5.    張淑清編著.嵌入式單片機STM32設計及應用技術[M].北京:國防工業出版社,2015.06
  • 6.    蘇珂珂, 鄭俊珂, 王中志等. 嵌入式系統開發的關鍵技術[J]. 電子技術與軟件工程, 2018, (11):212  .超星[引用日期2019-08-17]
  • 7.    謝川主編.嵌入式Linux開發基礎[M].北京:中國鐵道出版社,2011.08