工控網首頁
>

應用設計

>

嵌入式系統結構與協同性探討

嵌入式系統結構與協同性探討

2013/10/18 13:46:11
引言

嵌入式技術被廣泛應用于信息家器、消費電子、交換機以及機器人等產品中,與通用計算機技術不同,嵌入式系統中計算機被置于應用環境內部特征不明顯。系統對性能、體積、以及時間等有較高的要求。復雜的嵌入式系統面向特定應用環境,必須支持硬、軟件裁減,適應系統對功能、成本以及功耗等要求。

0.1 嵌入式系統與協同性

從信息傳遞的電特性過程分析,嵌入式系統特征表現為,計算機技術與電子技術緊密結合,難以分清特定的物理外觀和功能,處理器與外設、存儲器等之間的信息交換主要以電平信號的形式在IC間直接進行。

從嵌入深度ED來看,信息交換在IC間越直接、越多,嵌入深度就越大。

在設計實驗系統模型(圖1)時,充分考慮到軟硬協同性,使其成為一個實驗與研究完備平臺。軟硬件協同性問題涉及到協同性劃分技術和協同性設計技術。協同性核心問題之一將涉及啟動加載軟件Bootloader、系統板級支持包BSP以及嵌入式OS之間融合和移植。協同性設計技術與系統功能、性能以及開發人員等因素相關,其核心內容為軟硬件的協同描述、驗證和綜合提供一種集成環境。

嵌入式系統結構模型
圖1.嵌入式系統結構模型

0.2 沒有操作系統OS的嵌入式系統

0.2.1系統特點

由于系統的性質、任務、成本等原因,沒有操作系統支持的嵌入式系統將繼續大量存在。這樣的系統使用專用開發工具(如:仿真在線調試器ICE等)。通過串口或并口在PC機上聯機調試程序,具有源代碼調試功能。

0.2.2 局限性分析

沒有OS的系統按照“指令順序執行+中斷”的模式運行。在作者參與的早期程控交換機系統設計中,需要對不同端口量級(從10到1000等)的分機進行實時處理。通過建立交換系統核心硬件層(存儲體、第一層I/O等)以及用戶口地址等程序;然后建立定時和非定時事件、過程以及任務中斷鏈和任務表,應用中斷對任務以及過程調度。設計人員要完成相當于部分操作系統功能的編寫,導致軟件結構復雜、工作量大尤其是重復勞動。

0.3 具有OS的嵌入式系統

圖1的2嵌入式系統就是具有嵌入式OS的一種結構模型。引入嵌入式OS可以面對多種嵌入式處理器環境(如:MPU、DSP、SOC等)提供類同的API接口,使基于OS上的程序具有較好的移植性。從協同劃分與設計技術出發,通過嵌入式軟件的函數化、產品化能夠促進分工專業化,減少重復勞動。

1. Bootloader/BSP特性

Bootloader與BSP配合,通過初始化硬件設備、建立內存空間映射,“屏敝”硬件環境,為調用操作系統內核和應用程序運行作好準備。

1.1 Bootloader特性與結構分析

Bootloader是系統加電后首先運行的程序,主要依賴于硬件,建立一個通用版本幾乎不可能。即使同一CPU,硬件稍作變化,Bootloader也必須修改。建立良好的BootLoader結構,為系統二次開發以及減輕BSP的開發難度、可移植提供有益幫助;同時,也是保護硬件平臺設計知識產權的重要措施。

啟動過程分單階段(Single STage)和多階段(Multi-Stage)。從協同性劃分技術角度,設備初始化程序等通常放在stage中,stage2設置內核參數和調用,應具有可讀性和可移植性。從固態存儲設備上啟動的Bootloader大多都是兩階段的啟動過程。Bootloader的存貯體和分區:Flash/RAM/固態存貯器(圖2);Flash存儲分區有連續和非連續兩種方式。當系統需要多媒體等功能,用DOC(DiskONChip)技術解決大容量嵌入式OS的存貯。

空間分配結構示意圖
圖2.空間分配結構示意圖

1.2 BSP特性

作為板級支持軟件包BSP處在一個軟硬件交界的中心位置,結構與功能隨系統應用范圍表現較大的差異。不同的硬件環境和操作系統,BSP具有不同的內容與結構。從協同性角度,在系統設計初始階段,就必須考慮BSP可移植性、生成組件性以及快速性。如,BSP的編程大多數是在成型的模板上進行,保持與上層OS正確的接口。

2. Bootloader/BSP協同性與設計

在建構嵌入式系統的過程中,應從系統結構和協同性角度,關注底層軟件的設計。bootloaer和BSP構成底層軟件設計的核心內容,與硬件、過程、功能劃分結合緊密。

2.1 Bootloader與BSP協同性分析流程

首先用對任務所涉及的功能和過程進行系統級劃分,確定將功能劃分給軟件還是硬件,對執行確定相關的“延遲”特性。形成模型創建、配置、*估等協同流程,克服傳統孤立的設計模式。在面對系統低層軟件Bootloader與BSP設計時,在前面分析系統結構以及特性基礎上,給出如下系統性流程圖。

系統底層軟件結構模型
圖3.系統底層軟件結構模型

2.2 基于ARM-μCLinux系統bootloader設計

在系統結構模型以及設計流程的基礎上,下面通過實例說明bootloader的主要設計過程。

基于ARM-μCLinux嵌入式系統的啟動引導過程:通過串口更新系統軟件平臺,完成啟動、初始化、操作系統內核的固化和引導等。硬件平臺由內嵌ARM10的處理器、存儲器2MBFlash和16MBSDRAM、串口以及以太網口組成。軟件平臺組成:系統引導程序、嵌入式操作系統內核、文件系統。采用Flash存儲bootloader、內核等,直接訪問內核所在地址區間的首地址。

2.3 μCLinux內核的加載

系統采用μCLinux自帶的引導程序加載內核,用自舉模式和內核啟動模式相互切換;同時,切換到內核啟動模式,自動安全地啟動系統。針對ARM7TDMI的無MMU特性,采用修改后的μCLinux內核引導程序加載操作系統和初始化環境,解決內核加載的地址重映射問題和操作系統的內存管理問題。

2.4 WinCE系統下BootLoader

完成定制WinCE的加載主要工作是編寫啟動加載程序bootloader和板級支持包BSP。Bootloader涉及到基本的硬件操作,如CPU的結構、指令等,同時涉及以太網下載協議TFTP和映像文件格式。Bootloader支持命令輸入的方式,不用人工干預加載WinCE,其主控部分通過串口來接收用戶的命令。

2.5 系統板級支持包BSP

由于硬件環境、Bootloader映射范圍以及二次開發等原因,系統啟動加載程序Bootloader不能把經過裁剪的OS直接引導進入硬件環境,需要建立BSP文件,如VxWorks的BSP和Linux的BSP相對于某一CPU來說盡管實現的功能一樣,寫法和接口定義可以完全不同。BSP的結構與內容差異性較大,依據不同的系統和應用環境,應設計建立合理、穩定的BSP內核。

2.6 交叉融合

在分析過程、任務劃分以及系統協同性的基礎上,對系統底層軟件設計應考慮Bootloader、BSP、接口以及應用程序交叉與融合。應用BSP組成靈活性,設計充分考慮軟硬件協同。接口驅動程序,如網絡驅動、串口驅動和系統下載調試、部分應用程序可添加到BSP中,從系統結構的角度是,簡化軟件層次和硬件尤其是存貯體系結構,當操作系統運行于硬件相對固定的系統,BSP也相對固定,不需要做任何改動,建立獨立的應用程序包。如果BSP中的應用程序不斷升級,將對系統穩定性造成影響。

圖4表征了嵌入式系統三個軟件環節的結構變化,Bootloader、BSP、接口驅動程序以及部分應用程序將產生融合與交叉。對于一次開發功能強大的嵌入式系統,應充分利用嵌入式處理器供應商提供的Bootloader,使建立BSP的過程變得相對容易。

軟件交叉與融合示意圖
圖4.軟件交叉與融合示意圖

3. 結束語

通過對嵌入式系統結構與協同性探討,分析了嵌入式系統的特點和協同性。應用結構協同思路與流程,建立一個結構良好與嵌入式核心硬件層密切相關的Bootloader和BSP,對順利植入裁剪良好的OS、簡化軟件結構以及保護硬件平臺知識產權都有重要意義。嵌入式處理器種類多,系統結構不盡相同,Bootloader和BSP的內容隨之會產生差異,應充分考慮系統協同問題,避免傳統的多次設計、反復實驗的方式,為實際應用提供有益幫助。

投訴建議

提交

查看更多評論
其他資訊

查看更多

自動化機床的故障排除技術淺析

安川焊接機器人編程

ABB機器人控制軟件RobotWare應用手冊SafeMove(英文)

ABB IRB7600 機器人維護信息

ABB IRC5P機器人培訓教材