中文久久久字幕|亚洲精品成人 在线|视频精品5区|韩国国产一区

歡迎來到優(yōu)發(fā)表網(wǎng),期刊支持:400-888-9411 訂閱咨詢:400-888-1571股權(quán)代碼(211862)

購(gòu)物車(0)

期刊大全 雜志訂閱 SCI期刊 期刊投稿 出版社 公文范文 精品范文

嵌入式設(shè)計(jì)系統(tǒng)范文

時(shí)間:2023-08-18 17:26:02

序論:在您撰寫嵌入式設(shè)計(jì)系統(tǒng)時(shí),參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。

嵌入式設(shè)計(jì)系統(tǒng)

第1篇

[關(guān)鍵詞]嵌入式系統(tǒng) 設(shè)計(jì)

[中圖分類號(hào)]TP368.1[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2010)03-0009-01

嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)和具體應(yīng)用相結(jié)合的產(chǎn)物。

近年來,在計(jì)算機(jī)、互聯(lián)網(wǎng)和通信技術(shù)高速發(fā)展的同時(shí),嵌入式系統(tǒng)開發(fā)技術(shù)取得迅速發(fā)展,嵌入式系統(tǒng)應(yīng)用范圍也急劇擴(kuò)大。從小到電子手表、電子體溫計(jì)、翻譯機(jī)等,大到如冷氣機(jī)、電冰箱、電視機(jī),甚至馬路上紅綠燈的控制器、戰(zhàn)斗機(jī)中的飛控系統(tǒng)等。嵌入式系統(tǒng)幾乎無處不在:

1 嵌入式系統(tǒng)的特點(diǎn)

與通用計(jì)算機(jī)系統(tǒng)相比,嵌入式系統(tǒng)有其自身的特點(diǎn):

(1)嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)以及電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物,這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。

(2)嵌入式系統(tǒng)通常是面向用戶、面向產(chǎn)品、面向特定應(yīng)用的。

(3)嵌入式系統(tǒng)和具體應(yīng)用相結(jié)合,其升級(jí)換代也是和具體產(chǎn)品同步進(jìn)行的。因此嵌入式系統(tǒng)產(chǎn)品一旦進(jìn)入市場(chǎng),就具有較長(zhǎng)的生命周期。

2 嵌入式系統(tǒng)的發(fā)展趨勢(shì)

消費(fèi)家電的智能化,為嵌入式系統(tǒng)的發(fā)展展現(xiàn)出美好的市場(chǎng)前景,也對(duì)嵌入式系統(tǒng)提出新的發(fā)展要求;微電子技術(shù)和系統(tǒng)設(shè)計(jì)方法的進(jìn)步,使得嵌入式系統(tǒng)的發(fā)展呈現(xiàn)出以下趨勢(shì):

(1)隨著嵌入式系統(tǒng)功能的增加,嵌入式系統(tǒng)處理的信息和數(shù)據(jù)量越來越大,系統(tǒng)對(duì)處理的響應(yīng)時(shí)問也要求更嚴(yán)格,嵌入式處理器的主頻會(huì)越來越高,甚至采用多核的方式來應(yīng)付日益增長(zhǎng)的性能要求。

(2)嵌入式系統(tǒng)在工業(yè)領(lǐng)域和某些特殊場(chǎng)合的廣泛應(yīng)用,要求嵌入式系統(tǒng)具有遠(yuǎn)程控制軟件更新和故障診斷的能力。

(3)隨著嵌入式系統(tǒng)在手持設(shè)備上的大量應(yīng)用,手持設(shè)備的特點(diǎn)要求嵌入式系統(tǒng)功耗、體積更小,重量更輕。

(4)嵌入式系統(tǒng)將具有更加高速的通信接口,如USB2.0、千兆以太網(wǎng)等。

3 嵌入式系統(tǒng)設(shè)計(jì)流程

嵌入式系統(tǒng)開發(fā)分為軟件開發(fā)部分和硬件開發(fā)部分。嵌入式系統(tǒng)開發(fā)過程一般都采用“宿主機(jī)/目標(biāo)板”開發(fā)模式,即利用宿主機(jī)(PC機(jī))上豐富的軟硬件資源及良好的開發(fā)環(huán)境和調(diào)試工具來開發(fā)目標(biāo)板上的軟件,然后通過交叉編譯環(huán)境生成目標(biāo)代碼和可執(zhí)行文件,通過串口FUSB/以太網(wǎng)等方式下載到目標(biāo)板上,利用交叉調(diào)試器在監(jiān)控程序運(yùn)行,實(shí)時(shí)分析,最后,將程序下載固化到目標(biāo)機(jī)上,完成整個(gè)開發(fā)過程。當(dāng)前,嵌入式開發(fā)已經(jīng)逐步規(guī)范化,在遵循一般工程開發(fā)流程的基礎(chǔ)上,嵌入式開發(fā)有其自身的一些特點(diǎn),圖1所示為嵌入式系統(tǒng)開發(fā)的一般流程。流程主要包括系統(tǒng)需求分析佞求有嚴(yán)格規(guī)范的技術(shù)要求)、體系結(jié)構(gòu)設(shè)計(jì)、軟硬件及機(jī)械系統(tǒng)設(shè)計(jì)、系統(tǒng)集成、系統(tǒng)測(cè)試、最終產(chǎn)品。具體情況如下:

(1)系統(tǒng)需求分析:確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),并提煉出設(shè)計(jì)規(guī)格說明書,作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能性需求和非專題與綜述功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號(hào)、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。

(2)體系結(jié)構(gòu)設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的功能和非功能需求,包括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分,以及系統(tǒng)的軟件、硬件選型等。一個(gè)好的體系結(jié)構(gòu)是設(shè)計(jì)成功與否的關(guān)鍵。

(3)硬件/軟件協(xié)同設(shè)計(jì):基于體系結(jié)構(gòu),對(duì)系統(tǒng)的軟件、硬件進(jìn)行詳細(xì)設(shè)計(jì)。為了縮短產(chǎn)品開發(fā)周期,設(shè)計(jì)往往是并行的。嵌入式系統(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計(jì)是現(xiàn)代軟件工程經(jīng)常采用的方法。

(4)系統(tǒng)集成:

把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)單元設(shè)計(jì)過程中的錯(cuò)誤。

(5)系統(tǒng)測(cè)試:對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測(cè)試,看其是否滿足規(guī)格說明書中給定的功能要求。

4 嵌入式系統(tǒng)設(shè)計(jì)面臨的挑戰(zhàn)

要求更高的應(yīng)用需求推動(dòng)嵌入式設(shè)計(jì)從8/16位轉(zhuǎn)向功能更強(qiáng)大的32位MCU。這種升級(jí)給工程師帶來了嚴(yán)峻的挑戰(zhàn),提出了一系列前所未有的全新問題。

(1)轉(zhuǎn)變觀念,需要熟悉新的開發(fā)模式。嵌入式系統(tǒng)應(yīng)用不再是過去單一的單片機(jī)應(yīng)用模式,而是越來越多樣化,嵌入式系統(tǒng)實(shí)現(xiàn)的最高形式是片上系統(tǒng)SoC,而SoC的核心技術(shù)是重用和組合IP核構(gòu)件。從單片機(jī)應(yīng)用設(shè)計(jì)到片上系統(tǒng)設(shè)計(jì)及其中間的一系列的變化,從底層大包大攬的設(shè)計(jì)到利用FPGA和IP模塊進(jìn)行功能組合PSoC/SOPC設(shè)計(jì)。

(2)技術(shù)門檻提高,需要學(xué)習(xí)全新的RTOS技術(shù)。

(3)選擇合適的開發(fā)工具,熟悉新的開發(fā)環(huán)境。目前從8位升級(jí)到32位的一個(gè)最大障礙就是開發(fā)工具的投入。32位開發(fā)工具要比8位開發(fā)工具復(fù)雜得多,使用的技術(shù)門檻要高得多,同時(shí)其投資也要高得多。

(4)熟悉硬件/軟件協(xié)同設(shè)計(jì)和驗(yàn)證技術(shù)、設(shè)計(jì)管理技術(shù)。軟/硬件并行設(shè)計(jì)是嵌入式系統(tǒng)設(shè)計(jì)的一項(xiàng)關(guān)鍵任務(wù)。在設(shè)計(jì)過程中的主要問題,是軟硬件設(shè)計(jì)的同步與集成。這要求控制一致性與正確性,但隨著技術(shù)細(xì)節(jié)不斷增加,需要消耗大量的時(shí)間。目前,業(yè)界已經(jīng)開發(fā)Polis、Cosyma及Chinook等多種方法和工具來支持集成式軟硬件的協(xié)同設(shè)計(jì)。目標(biāo)是提供一種統(tǒng)一的軟硬件開發(fā)方法。它支持設(shè)計(jì)空間探索,并使系統(tǒng)功能可以跨越硬件和軟件平臺(tái)復(fù)用。團(tuán)隊(duì)開發(fā)的最大問題就是設(shè)計(jì)管理問題。

(5)SoC設(shè)計(jì)所面臨的巨大的挑戰(zhàn)。SoC已經(jīng)開始成為新一代應(yīng)用電子技術(shù)的核心,這已成為電子技術(shù)的革命標(biāo)志。過去應(yīng)用工程師面對(duì)的是各種ASIC電路,而現(xiàn)在越來越多所面對(duì)的是巨大的IP模塊庫(kù),所有設(shè)計(jì)工作都是以IP模塊為基礎(chǔ)。SoC設(shè)計(jì)技術(shù)使嵌入式系統(tǒng)設(shè)計(jì)工程師變成了一個(gè)面向應(yīng)用的電子器件設(shè)計(jì)工程師。隨著SoC應(yīng)用的日益普及,在測(cè)試程序生成、工程開發(fā)、硅片查錯(cuò)、量產(chǎn)等領(lǐng)域?qū)oC測(cè)試技術(shù)提出了越來越高的要求。

[參考文獻(xiàn)]

[1] DSP技術(shù)及應(yīng)用.黃仁欣.2002年出版.

[2] 單片機(jī)技術(shù).彭永.2007年12月出版.

[3] 電子感測(cè)技術(shù).周南山.2007年出版.

[4] 電子技術(shù)基礎(chǔ).韋鴻.2008年出版.

第2篇

關(guān)鍵詞:嵌入式系統(tǒng);開發(fā)環(huán)境

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)07-1649-02

A Reseach on Design of Embedded System

FANG Jian-gang

(Computer College, Wuhan University of Technology, Wuhan 473000, China)

Abstract: Embedded technique as a new and great development force's science technique has been concerned by more and more people.The article discusses the feature of embedded system,embedded software and hardware developing process and design methods.

Key words: embedded system; development environment

嵌入式系統(tǒng)已經(jīng)廣泛的應(yīng)用到通信、家電、汽車、工業(yè)控制等領(lǐng)域,極大的便利了人們的生活。嵌入式系統(tǒng)是指以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,對(duì)功能、可靠性、成本、體積和功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),,也是為實(shí)現(xiàn)對(duì)象體系智能化控制的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)如圖1。

嵌入式系統(tǒng)由硬件和軟件兩大部分組成,其分類可以從硬件和軟件進(jìn)行劃分。從硬件方面來講,各式各樣的嵌入式處理器是嵌入式系統(tǒng)硬件中的最核心的部分,而目前世界上具有嵌入式功能特點(diǎn)的處理器已經(jīng)超過1000種,流行體系結(jié)構(gòu)包括MCU,MPU等30多個(gè)系列。很多半導(dǎo)體制造商都大規(guī)模生產(chǎn)嵌入式處理器,并且公司自主設(shè)計(jì)處理器也已經(jīng)成為了未來嵌入式領(lǐng)域的一大趨勢(shì),從軟件方面劃分,主要可以依據(jù)操作系統(tǒng)的類型。目前嵌入式系統(tǒng)的軟件主要有兩大類:實(shí)時(shí)系統(tǒng)和分時(shí)系統(tǒng)。其中實(shí)時(shí)系統(tǒng)又分為兩類:硬實(shí)時(shí)系統(tǒng)和軟實(shí)時(shí)系統(tǒng)。

嵌入式系統(tǒng)應(yīng)該具備4個(gè)特性:1) 執(zhí)行特定的功能;2) 以微處理器和設(shè)備構(gòu)成核心;3) 需要嚴(yán)格的時(shí)序與穩(wěn)定性;4)全自動(dòng)操作。

1 嵌入式處理器

嵌入式處理器可以分成下面幾類:嵌入式微處理器(Micro Processor Unit,MPU)、嵌入式微控制器(Microcontroller Unit, MCU)、嵌入式DSP處理器(Embedded Digital Signal Processor, EDSP)、嵌入式片上系統(tǒng)(System On Chip),其中采用RISC架構(gòu)的ARM微處理器以它優(yōu)越的性能被廣泛的應(yīng)用與嵌入式開發(fā)各個(gè)領(lǐng)域。

2 嵌入式操作系統(tǒng)

嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度、控制、協(xié)調(diào);它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過加載卸載某些模塊來達(dá)到系統(tǒng)所要求的功能。實(shí)時(shí)操作系統(tǒng)是嵌入式系統(tǒng)目前最主要的組成部分。

Linux是目前最為流行的一款開放源代碼的操作系統(tǒng),在當(dāng)今開發(fā)嵌入式系統(tǒng)中,70%以上的項(xiàng)目選擇的Linux作為嵌入式系統(tǒng)。另一種常見的嵌入式Linux是UcLinux,它去掉了內(nèi)存管理單元,該系統(tǒng)直接訪問內(nèi)存,所有的程序中訪問的地址都是物理地址。嵌入式Linux有以下特點(diǎn):精簡(jiǎn)的內(nèi)核,性能高、穩(wěn)定,支持多任務(wù)、多種體系結(jié)構(gòu)等。

3 嵌入式系統(tǒng)的設(shè)計(jì)方法

3.1 嵌入式系統(tǒng)的總體結(jié)構(gòu)

一個(gè)嵌入式系統(tǒng)一般都由嵌入式微處理器系統(tǒng)和被控制對(duì)象組成,其中微處理器系統(tǒng)是整個(gè)系統(tǒng)的核心,由硬件層、中間層、軟件層和功能層組成。硬件層是嵌入式微處理器、電路和外設(shè),軟件層主要是操作系統(tǒng),功能層是基于操作系統(tǒng)開發(fā)的應(yīng)用程序組成,用來完成對(duì)被控對(duì)象的控制功能。中間層是將系統(tǒng)軟件與底層硬件部分隔離,使系統(tǒng)的底層設(shè)備驅(qū)動(dòng)程序與硬件無關(guān)。

3.2 嵌入式系統(tǒng)的開發(fā)特點(diǎn)和流程

開發(fā)特點(diǎn):1) 采用宿主機(jī)|目標(biāo)機(jī)的方式。2) 生成的代碼需要固態(tài)化存儲(chǔ)。3) 軟件代碼具有高質(zhì)量、高可靠性。

開發(fā)流程一般由5個(gè)階段構(gòu)成:需求分析、體系結(jié)構(gòu)設(shè)計(jì)、硬件|軟件設(shè)計(jì)、系統(tǒng)集成和代碼固化。各個(gè)階段之間往往要求不斷地反復(fù)和修改,直至完成最終設(shè)計(jì)目標(biāo)。

3.3 嵌入式系統(tǒng)調(diào)試

在嵌入式系統(tǒng)中系統(tǒng)調(diào)試是非常困難的,不同于傳統(tǒng)軟件的調(diào)試,因?yàn)殚_發(fā)程序平臺(tái)和目標(biāo)平臺(tái)是分開的。一般來說,大部分的工作是在RAM中進(jìn)行的,只有當(dāng)程序完成并能運(yùn)行后才切換到ROM上。調(diào)試方法有多種,可分為模擬器方式、在線仿真器方式、在線調(diào)試器方式、監(jiān)控器方式。

4 嵌入式Linux應(yīng)用程序開發(fā)

4.1 開發(fā)環(huán)境的建立

進(jìn)行項(xiàng)目開發(fā)前,首先要搭建一套基于Linux操作系統(tǒng)的應(yīng)用開發(fā)環(huán)境,一般由目標(biāo)機(jī)和宿主機(jī)所構(gòu)成。目標(biāo)板用于運(yùn)行操作系統(tǒng)和系統(tǒng)應(yīng)用軟件,而目標(biāo)板所用到的操作系統(tǒng)的內(nèi)核編譯、應(yīng)用程序的開發(fā)和調(diào)試則需要通過宿主機(jī)來完成。雙方之間通過關(guān)鍵接口如串口、以太網(wǎng)口或USB口建立連接關(guān)系。個(gè)人進(jìn)行嵌入式開發(fā)可以在自己的PC上安裝一套Linux,使用系統(tǒng)中的工具來編譯、調(diào)試。多人開發(fā)的最好建立個(gè)Linux服務(wù)器,使用服務(wù)器的Linux系統(tǒng)的gcc編譯生成目標(biāo)代碼,通過ftp傳到每個(gè)開發(fā)人員的PC,然后通過串口或網(wǎng)絡(luò)下載開發(fā)板上。開發(fā)人員也可以在Windows下安裝模擬Linux環(huán)境的軟件(如Cygwin、虛擬機(jī)等)來開發(fā)。

交叉編譯環(huán)境是一個(gè)由編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境。交叉編譯工具主要包括針對(duì)目標(biāo)系統(tǒng)的編譯器gcc、目標(biāo)系統(tǒng)的二進(jìn)制工具binutils、目標(biāo)系統(tǒng)的標(biāo)準(zhǔn)c庫(kù)glibc、gdb代碼調(diào)試器和目標(biāo)系統(tǒng)的Linux內(nèi)核頭文件。

4.2 引導(dǎo)程序

一個(gè)嵌入式軟件系統(tǒng)通常可以分為引導(dǎo)程序BootLoader、操作系統(tǒng)內(nèi)核、文件系統(tǒng)和用戶程序4個(gè)層次。

BootLoader和PC機(jī)中的BIOS很相似,整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)完全由它來完成。BootLoader是在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運(yùn)行之前運(yùn)行的一段小程序,可以初始化硬件設(shè)備,建立內(nèi)存的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶來一個(gè)合適的狀態(tài),為最終調(diào)用內(nèi)核和應(yīng)用程序準(zhǔn)備好正確的環(huán)境。大多數(shù)BootLoader都包含兩種不同的操作模式:?jiǎn)?dòng)加載模式和下載模式。

BootLoader的啟動(dòng)過程大多數(shù)分兩個(gè)階段,第一階段主要包含依賴于CPU的體系結(jié)構(gòu)硬件的初始化代碼,通常是用匯編語言實(shí)現(xiàn)的,這一階段任務(wù)是硬件設(shè)備初始化,為加載BootLoader的階段2準(zhǔn)備RAM空間,拷貝BootLoader階段2的代碼到RAM中,設(shè)置好堆棧,跳轉(zhuǎn)到階段2的C程序入口。階段2通常是用C語言來實(shí)現(xiàn),這階段任務(wù)是初始化本階段要使用的硬件設(shè)備,檢測(cè)系統(tǒng)的內(nèi)存映射,將內(nèi)核映像和跟文件系統(tǒng)映射從FLASH上讀到RAM空間中,為內(nèi)核設(shè)置參數(shù),調(diào)用內(nèi)核。

4.3 Linux操作系統(tǒng)的移植

Linux系統(tǒng)實(shí)際上由兩個(gè)比較獨(dú)立的部分組成,即內(nèi)核部分和系統(tǒng)部分。Linux系統(tǒng)的移植分為內(nèi)核移植和系統(tǒng)移植,內(nèi)核可以視為由5個(gè)功能部分組成:進(jìn)程管理、內(nèi)存管理、設(shè)備管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)。由于Linux內(nèi)核良好的分層結(jié)構(gòu)將硬件相關(guān)的代碼獨(dú)立出來,在做系統(tǒng)移植時(shí),只需要改動(dòng)進(jìn)程管理、內(nèi)存管理和設(shè)備管理中被獨(dú)立出來的那部分與硬件相關(guān)的代碼,開發(fā)者要將自己開發(fā)的代碼加到Linux內(nèi)核中,需要確定代碼放入到內(nèi)核的位置,了解Linux的內(nèi)核配置系統(tǒng),把開發(fā)功能增加到Linux的配置選項(xiàng)中,使用戶能夠選擇此功能。

4.4 應(yīng)用程序的移植和調(diào)試

在開發(fā)環(huán)境和操作系統(tǒng)建立后,就可以開始應(yīng)用程序的開發(fā)了,應(yīng)用程序的開發(fā)一般先在宿主機(jī)上調(diào)試完成,然后下載到目標(biāo)板,宿主機(jī)和目標(biāo)板必須建立可靠的連接,連接主要方式是串口連接、網(wǎng)絡(luò)連接和JTAG口連接。

Linux中可以使用應(yīng)用程序資源非常豐富,可將現(xiàn)成的程序移植到嵌入式系統(tǒng)中,可以極大加快開發(fā)流程,提高開發(fā)效率。

調(diào)試應(yīng)用程序:Linux包含一個(gè)gun調(diào)試程序gdb,它是一個(gè)用來調(diào)試C和C++程序的調(diào)試器。通過gdb還可以在程序運(yùn)行時(shí)觀察內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。

5 嵌入式Linux驅(qū)動(dòng)程序開發(fā)

由于嵌入式設(shè)備硬件種類豐富,對(duì)于Linux系統(tǒng)的開發(fā),很大工作量是為各種設(shè)備編寫驅(qū)動(dòng)程序。操作系統(tǒng)一般提供設(shè)備驅(qū)動(dòng)程序來完成對(duì)特定硬件的控制,以建立應(yīng)用程序和設(shè)備之間的抽象接口。設(shè)備驅(qū)動(dòng)程序?qū)嶋H是處理和操作硬件控制器的軟件,從本質(zhì)上講是內(nèi)核中具有最高特權(quán)硬件的、駐留內(nèi)存的、可共享的底層硬件處理例程。驅(qū)動(dòng)程序是內(nèi)核的一部分,屏蔽了硬件的細(xì)節(jié),Linux操作系統(tǒng)將所有的設(shè)備全部看成文件,都納入文件系統(tǒng)的范疇,并通過文件的操作界面進(jìn)行操作。

5.1 驅(qū)動(dòng)程序的開發(fā)過程

實(shí)現(xiàn)一個(gè)嵌入式Linux設(shè)備驅(qū)動(dòng)的流程:

1) 查看原理圖,理解設(shè)備工作原理。2) 定義設(shè)備號(hào)。3) 實(shí)現(xiàn)初始化函數(shù),在驅(qū)動(dòng)程序中實(shí)現(xiàn)驅(qū)動(dòng)的注冊(cè)和卸載。4) 設(shè)計(jì)所要實(shí)現(xiàn)的文件操作。5) 實(shí)現(xiàn)所要的文件操作調(diào)用。6) 實(shí)現(xiàn)中斷服務(wù),并用request-irq向內(nèi)核注冊(cè)。7) 編譯該驅(qū)動(dòng)程序到內(nèi)核中,或者用insmod命令加載模塊。8) 測(cè)試該設(shè)備,編寫應(yīng)用程序,對(duì)驅(qū)動(dòng)程序進(jìn)行調(diào)試。

5.2 模塊化驅(qū)動(dòng)程序

當(dāng)談到軟件時(shí),我們通常稱執(zhí)行態(tài)為內(nèi)核空間和用戶空間,模塊是在內(nèi)核空間中運(yùn)行的,而應(yīng)用程序則是在用戶空間中運(yùn)行。

Linux通過系統(tǒng)調(diào)用和硬件中斷完成從用戶空間到系統(tǒng)空間的控制轉(zhuǎn)換。模塊的作用就是擴(kuò)展內(nèi)核的功能,是運(yùn)行在內(nèi)核空間的模塊化的代碼,模塊的某些函數(shù)作為系統(tǒng)調(diào)用執(zhí)行,而某些函數(shù)負(fù)責(zé)中斷。內(nèi)核模塊的一部分保存在Kernel中,另一部分在Modules包中,模塊就像一個(gè)插件,內(nèi)核提供一個(gè)插槽,在需要時(shí),插入內(nèi)核中使用,不需要時(shí)從內(nèi)核拔出,這一切都由一個(gè)稱作Kernel的守護(hù)進(jìn)程自動(dòng)處理。內(nèi)核模塊的這種動(dòng)態(tài)加載具有以下優(yōu)點(diǎn):將內(nèi)核映像的尺寸保持在最小,并具有最大的靈活性。這便于檢驗(yàn)新的內(nèi)核代碼,而不需要重新編譯內(nèi)核并重新引導(dǎo)。

6 總結(jié)

本文對(duì)嵌入式系統(tǒng)設(shè)計(jì)的進(jìn)行了深入淺出的探討,分析了嵌入式系統(tǒng)的組成和特點(diǎn),描述了嵌入式系統(tǒng)開發(fā)流程以及嵌入式Linux下驅(qū)動(dòng)程序開發(fā)特點(diǎn)。

參考文獻(xiàn):

[1] 馬忠梅,李善平,葉楠.ARM&Linux嵌入式教程[M].北京:北京航天航空出版社,2004.

[2] 孫天澤,袁文菊,張海峰.嵌入式設(shè)計(jì)及l(fā)iunx驅(qū)動(dòng)開發(fā)指南―基于ARM9處理器[M].北京:電子工業(yè)出版社,2005.

第3篇

關(guān)鍵詞:UML;嵌入式系統(tǒng);OOD建模;雙向工程

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)34-9742-02

The Design on UML Embedded Systems

YU Hai-wen

(College of Information Engineering Nanchang University(Pre-Lake Campus), Nanchang 33000, China)

Abstract: UML is the the most popular standard modeling language, embedded systems are professional computer system on the centre of application and the base of computer technology, embedded systems are the integrity of software and hardware; The design's quality of embedded systems is the key of success about digital products. The paper discuss the important conception of UML,and how to use the technology of UML OOD in the design of embedded systems, then show us the steps based on the example of microwave light.

Key words: UML; embedded systems; OOD modeling; two-way engineering

近年來,數(shù)字家電、汽車電子、MP3、Smart Phone等躍居電腦產(chǎn)業(yè)的主流地位,數(shù)字整合的需求日益增長(zhǎng),嵌入式軟件(Embedded Software)系統(tǒng)愈來愈復(fù)雜,涉及到的接口越來越多,這種軟、硬件結(jié)合的協(xié)同設(shè)計(jì)(Hardware/Software Co-design)需要不同技術(shù)背景的人共同開發(fā),如何使這些具有不同技術(shù)背景和專長(zhǎng)的人聯(lián)合開發(fā)、協(xié)同設(shè)計(jì)?UML可以解決這個(gè)問題。統(tǒng)一建模語言UML(Unified Modeling Language)采用一種簡(jiǎn)單而直觀的圖形化方式描述系統(tǒng)設(shè)計(jì)中的各個(gè)問題和細(xì)節(jié)。不同技術(shù)背景的設(shè)計(jì)師只需懂得UML 符號(hào)就可以與對(duì)方交流、共同設(shè)計(jì)。

本文將重點(diǎn)討論如何在嵌入式系統(tǒng)設(shè)計(jì)中使用 UML 技術(shù),并結(jié)合實(shí)例“微波爐小燈”演示采用 UML 的嵌入式系統(tǒng)設(shè)計(jì)過程。

1 UML OOD建模

1.1 UML基本概念介紹

1.1.1 UML事物

UML中事物是實(shí)體抽象化的最終結(jié)果,是模型中的基本成員,UML中包含結(jié)構(gòu)事物、行為事物、分組事物和注釋事物。

1.1.2 UML建模圖

圖是事物集合的分類,UML中包含多種圖:1)類圖(Class Diagram);2)對(duì)象圖(Object Diagram);3)包圖(Package Diagram);4)組件圖(Compoment Diagram,也稱構(gòu)件圖);5)部署圖(Deployment Diagram);6)用例圖(Usecase Diagram);7)時(shí)序圖(Sequence Diagram);8)協(xié)作圖(Collaboration Diagram);9)狀態(tài)圖(Statechart Diagram);10)活動(dòng)圖(Activity Diagram)。

由于篇幅原因,本文將結(jié)合一個(gè)需求非常簡(jiǎn)單的“微波爐小燈”的實(shí)例,給出幾個(gè)重要的圖。本文介紹的圖采用業(yè)界使用最廣泛的UML建模工具Rational Rose。Rational Rose為團(tuán)隊(duì)開發(fā)和規(guī)范的開發(fā)過程管理提供了良好的支持。

1.2 UML OOD建模

從應(yīng)用的角度上來講,面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)一般需要完成如下工作:

1)描述需求;2)根據(jù)需求建立系統(tǒng)的靜態(tài)模型;3)建立系統(tǒng)的動(dòng)態(tài)模型:即描述系統(tǒng)的行為。

1.2.1 描述需求

“微波爐小燈”的實(shí)例需求很簡(jiǎn)單,即微波爐里有個(gè)小燈,微波爐門打開時(shí),它就亮起來,一旦關(guān)上門,就熄掉了。本文將根據(jù)此需求說明,采用UML設(shè)計(jì)一個(gè)控制程序來感應(yīng)微波爐對(duì)象的狀態(tài)變化,并且觸發(fā)小燈對(duì)象的狀態(tài)變化。

1.2.2 建立系統(tǒng)的靜態(tài)模型

用例圖(Use Case Diagram):UML的Use Case圖1描述User對(duì)整體系統(tǒng)的功能需求,本例中,User會(huì)有兩項(xiàng)動(dòng)作――“開微波爐”與“關(guān)微波爐”,而且期待開微波爐時(shí)會(huì)亮小燈,關(guān)微波爐時(shí)小燈會(huì)自動(dòng)熄掉。

類圖(Class Diagram):如圖2,類是OOD中一個(gè)重要概念。軟件組件的模塊通稱為組件的類(Class),OOD設(shè)計(jì)理念是程序指令寫在類里,其所檢驗(yàn)測(cè)試的對(duì)象都是類,等到電腦執(zhí)行時(shí)才由電腦在內(nèi)存中定義實(shí)體組件(對(duì)象)。

1.2.3 建立系統(tǒng)的動(dòng)態(tài)模型

建立系統(tǒng)的動(dòng)態(tài)模型實(shí)質(zhì)就是描述系統(tǒng)的行為。

時(shí)序圖(Sequence Diagram):圖3這個(gè)時(shí)序圖反映了開微波爐過程中觸發(fā)小燈亮的詳細(xì)執(zhí)行過程。

狀態(tài)轉(zhuǎn)換圖4(Statechart Diagram):對(duì)對(duì)象行為做詳細(xì)的描述。就小燈而言,消息的傳達(dá)是個(gè)事件(Event),這事件令小燈改變狀態(tài)(亮或熄)。

2 雙向工程

2.1 正向工程

Rational Rose中可實(shí)現(xiàn)正向(為模型產(chǎn)生相應(yīng)的代碼,即程序框架)、逆向(從用戶原來的軟件系統(tǒng)導(dǎo)出該系統(tǒng)的模型)和雙向工程(實(shí)現(xiàn)模型和代碼之間的循環(huán)工程),從而保證模型與代碼的高度一致,這個(gè)功能意味著降低了開發(fā)人員編寫程序的復(fù)雜度和工作量。

Rational Rose支持C++、Visual C++、Java、Smalltalk、Ada、Visual Basic、PowerBuilder等語言和開發(fā)工具,并能為CORBA 應(yīng)用生成接口定義語言(IDL),為數(shù)據(jù)庫(kù)應(yīng)用生成數(shù)據(jù)庫(kù)描述語言(DDL)等。Rational Rose默認(rèn)支持的語言是Java。

本例中,在完成了“微波爐小燈”類圖制作后,選擇菜單“Tools” “Java/J2EE”“generate code”即可生成Java代碼,當(dāng)原建模文件更新時(shí),代碼會(huì)同步更新。

2.2 逆向工程

前面所述正向工程雖然只是得到了代碼框架,實(shí)現(xiàn)功能部分的代碼仍需開發(fā)人員輸入。隨著軟件功能的實(shí)現(xiàn)及新的用戶需求的加入,原建模文件在需要更新時(shí),可不需要重新畫圖,只需進(jìn)行逆向工程操作即可。本例中,在完成了“微波爐小燈”代碼后,選擇菜單“Tools”“Java/J2EE”“reverse engineer”即可生成新的建模文件。

3 小結(jié)

在軟、硬件設(shè)計(jì)領(lǐng)域中,采用UML進(jìn)行軟件組件設(shè)計(jì)及其架構(gòu)(Architecture)規(guī)劃技術(shù)逐漸成為業(yè)界關(guān)注的焦點(diǎn)。根據(jù)本文及“微波爐小燈”實(shí)例,顯然從UML設(shè)計(jì)圖到Java(C及C++)代碼的過程很流暢。

參考文獻(xiàn):

[1] 徐寶文. UML與軟件建模[M]. 北京:清華大學(xué)出版社,2006.

第4篇

關(guān)鍵詞:ARM 嵌入式系統(tǒng)

中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2012)12-0104-01

1、序言

本系統(tǒng)是設(shè)計(jì)一款基于ARM的嵌入式開發(fā)平臺(tái),該嵌入式開發(fā)平臺(tái)是基于AT91SAM9263(基于ARM926EJ-S芯核)的嵌入式系統(tǒng),可以在此系統(tǒng)上運(yùn)行嵌入式操作系統(tǒng),并在上運(yùn)行嵌入式數(shù)據(jù)庫(kù)、人機(jī)窗口等應(yīng)用程序,此系統(tǒng)包括硬件和軟件兩部分,本文主要介紹硬件部分。

2、系統(tǒng)硬件設(shè)計(jì)

本系統(tǒng)硬件由核心板和母板組成,核心板將系統(tǒng)擴(kuò)展可能用到的總線都引出來,與母板之間通過針形接插件連接,為以后產(chǎn)品開發(fā)提供了穩(wěn)定、經(jīng)濟(jì)而又方便的平臺(tái),此種設(shè)計(jì)的好處,其一把高速和低速分開,降低了硬件之間的干擾,提高了穩(wěn)定性。其二是當(dāng)系統(tǒng)需要擴(kuò)展某些特殊接口時(shí),則只需要對(duì)母板進(jìn)行修改,縮短了開發(fā)周期。

其中核心板設(shè)計(jì)這部分是任何一個(gè)ARM系統(tǒng)要正常運(yùn)行所必備的電路,因此稱為核心板,這些基礎(chǔ)電路,包括存貯程序用的Flash存貯器,運(yùn)行程序和緩沖數(shù)據(jù)所必須的SDRAM、復(fù)位模塊、時(shí)鐘模塊、JTAG接口等。這部分電路集中在較小空間里,因此相對(duì)比較密集,而且這部分的信號(hào)是超高速信號(hào),且電路的設(shè)計(jì)要求比較高,所以核心板采用購(gòu)買成熟的核心板。

系統(tǒng)母板設(shè)計(jì)了大部分的電路,因?yàn)槟0迳系男盘?hào)都是低速信號(hào),所以從成本角度考慮,母板采用二層電路板設(shè)計(jì),其主要電路包括了電源部分、USB接口部分、串口及10/100M以太網(wǎng)接口、LCD接口、CAN總線以及底板與核心板之間通過針形接插件相連的接口等,其結(jié)構(gòu)如圖1所示。

下面將分模塊介紹電路原理。

2.1 串行接口電路設(shè)計(jì)

系統(tǒng)設(shè)計(jì)了一個(gè)RS-232、RS-485接口,方便與其他設(shè)備通信。具體的電路采用MAX3232作為電平轉(zhuǎn)換芯片,它本身提供兩組驅(qū)動(dòng)器和接收器,并接有數(shù)字隔離器ADuM1201,此芯片提供了兩個(gè)信道的通道,具體電路如圖2。

系統(tǒng)的RS-485串行接口,是由ADM2483來實(shí)現(xiàn),ADM2483本身是帶有隔離的高速RS-485轉(zhuǎn)換器,不需要其它額外的電路。

2.2 以太網(wǎng)接口設(shè)計(jì)

系統(tǒng)選用DM9161作為以太網(wǎng)的接口芯片,因?yàn)橄到y(tǒng)工作在100BASE-TX模式下,所以選擇RMII作為DM9161與AT91SAM9263的接口模式,具體電路如圖3所示。

2.3 CAN接口電路設(shè)計(jì)

本系統(tǒng)的CAN總線接口的實(shí)現(xiàn),是通過外接CAN收發(fā)器來實(shí)現(xiàn)的,系統(tǒng)選用的是MCP2551作為系統(tǒng)的收發(fā)器,其特點(diǎn)是有差分發(fā)射和接收能力,自動(dòng)檢測(cè)TXD輸入端接地錯(cuò)誤及較強(qiáng)的抗噪聲特性。

3、結(jié)語

本系統(tǒng)設(shè)計(jì)了基于ARM系統(tǒng)的嵌入式硬件平臺(tái),在此之上可以提供各種實(shí)時(shí)操作系統(tǒng),從而構(gòu)成一個(gè)完整的平臺(tái),其硬件部分電路已經(jīng)進(jìn)行了信號(hào)完整性分析具有一定的可靠性。

參考文獻(xiàn)

[1]田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.

第5篇

為解決公交車的高效便捷清洗問題,基于青島理工大學(xué)韓旭東教授的團(tuán)隊(duì)設(shè)計(jì)的一款“垂直滾筒式公交清洗小車”,利用AT89C51單片機(jī)配合其他元器件,設(shè)計(jì)了相關(guān)的嵌入式系統(tǒng),包括超聲波測(cè)距系統(tǒng)和手動(dòng)/自動(dòng)雙模平臺(tái)升降控制系統(tǒng),完善了原產(chǎn)品的設(shè)計(jì)。采用KeilC51軟件編寫了相應(yīng)的控制程序,使用Proteus軟件繪制了電路原理圖,并進(jìn)行了仿真模擬。

關(guān)鍵詞:

公交清洗小車;嵌入式系統(tǒng);超聲波測(cè)距;平臺(tái)升降控制

0引言

為解決公交車的高效便捷清洗問題,青島理工大學(xué)韓旭東教授的團(tuán)隊(duì)設(shè)計(jì)了一款“垂直滾筒式公交清洗小車”[1]。但在該設(shè)計(jì)中,僅對(duì)機(jī)械結(jié)構(gòu)與工作原理做了介紹,缺少相關(guān)的控制電路與控制程序的設(shè)計(jì),給清洗小車的使用帶來了極大的不便。本文在原產(chǎn)品的基礎(chǔ)上,針對(duì)小車與公交車之間距離的控制不準(zhǔn)確的問題,設(shè)計(jì)了超聲波測(cè)距系統(tǒng);針對(duì)平臺(tái)升降控制不方便的問題,設(shè)計(jì)了手動(dòng)/自動(dòng)雙模平臺(tái)升降控制系統(tǒng)。有效地提高了該產(chǎn)品的實(shí)用性,完善了該產(chǎn)品的設(shè)計(jì)。

1超聲波測(cè)距系統(tǒng)

1.1設(shè)計(jì)目的

清洗小車由人力推動(dòng)并控制方向,但由于路面不平,人力控制精度有限,會(huì)使小車與公交車車體間的距離發(fā)生改變,距離過近會(huì)使?jié)L筒擠壓車體表面,阻礙滾筒旋轉(zhuǎn);距離過遠(yuǎn),則會(huì)使?jié)L筒毛刷與車體表面間間隙過大,影響清洗效果。需要一套測(cè)距系統(tǒng)使小車與公交車車體間的距離始終保持在一個(gè)合理范圍之內(nèi)。

1.2測(cè)距方式的選擇

超聲波測(cè)距是利用機(jī)械波反射來測(cè)量距離,適用于短距離測(cè)距,原理簡(jiǎn)單,成本低,遠(yuǎn)距離測(cè)量精度較低。公交清洗小車的使用環(huán)境比較復(fù)雜,對(duì)測(cè)距系統(tǒng)的精度要求不高,測(cè)量的距離在1~2m,且要求結(jié)構(gòu)簡(jiǎn)單、成本低廉、性能穩(wěn)定。根據(jù)需要和集中測(cè)距方式的特點(diǎn),本文選擇超聲波測(cè)距方式。

1.3超聲波測(cè)距原理

超聲波在均勻介質(zhì)中的傳輸速度為一恒定值,由發(fā)生器發(fā)射超聲波,在遇到測(cè)量目標(biāo)后反射回來,由接收器接收并記錄由發(fā)射到接收經(jīng)歷的時(shí)間,便可以計(jì)算出發(fā)生器與測(cè)量目標(biāo)之間的距離[2]。公式如下:L=12C•Δt。式中:L為測(cè)量距離;C為超聲波在當(dāng)前介質(zhì)中的傳輸速度(空氣中常溫下速度為340m/s);Δt為從發(fā)射到接收經(jīng)歷的時(shí)間。

1.4設(shè)計(jì)內(nèi)容

本文利用AT89C51單片機(jī)、HC-SR04超聲波測(cè)距模塊、LED燈組成了一個(gè)超聲波測(cè)距警報(bào)系統(tǒng)。當(dāng)距離過近時(shí),指示距離過近的紅燈點(diǎn)亮;距離適中時(shí),指示距離適中的綠燈點(diǎn)亮;當(dāng)距離過遠(yuǎn)時(shí),指示距離過遠(yuǎn)的紅燈點(diǎn)亮。工作人員可以根據(jù)燈光指示調(diào)整小車位置,使之與車體表面間的距離保持在一個(gè)合理范圍。1.4.1HC-SR04超聲波測(cè)距模塊工作原理本文所采用的HC-SR04超聲波測(cè)距模塊,具有成本低、體積小、精度高、使用簡(jiǎn)單方便等優(yōu)點(diǎn),其基本工作原理為:1)采用I/O口TRIG觸發(fā)測(cè)距,提供至少10μs的高電平信號(hào);2)模塊自動(dòng)發(fā)送8個(gè)40kHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;3)有信號(hào)返回,通過I/O口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間[3]。1.4.2程序控制過程利用AT89C51單片機(jī)自帶的定時(shí)計(jì)數(shù)器資源,通過I/O口給超聲波模塊一個(gè)發(fā)射信號(hào)并開始計(jì)時(shí),當(dāng)收到超聲波模塊的反饋信號(hào)時(shí),結(jié)束計(jì)時(shí)并計(jì)算距離。

2手動(dòng)/自動(dòng)雙模平臺(tái)升降控制系統(tǒng)

2.1設(shè)計(jì)目的

現(xiàn)行大多數(shù)公交車的高度在3m左右,為能夠確保清洗整個(gè)車體表面,原產(chǎn)品采用雙絲杠旋轉(zhuǎn)驅(qū)動(dòng)平臺(tái)升降的設(shè)計(jì),并利用直流電動(dòng)機(jī)產(chǎn)生動(dòng)力。為方便用戶使用,能夠快捷高效操作平臺(tái)升降,提高清洗效率,本文設(shè)計(jì)了一套手動(dòng)/自動(dòng)雙模平臺(tái)升降控制系統(tǒng)。

2.2設(shè)計(jì)內(nèi)容

根據(jù)計(jì)算,清洗平臺(tái)需調(diào)整2次高度才可將車體表面清洗完畢,為了方便工作人員操作,本文設(shè)計(jì)了手動(dòng)/自動(dòng)雙??刂葡到y(tǒng)。該系統(tǒng)采用AT89C51單片機(jī),配合L289直流電動(dòng)機(jī)驅(qū)動(dòng)模塊,通過控制電動(dòng)機(jī)的正反轉(zhuǎn)實(shí)現(xiàn)平臺(tái)的升降,設(shè)計(jì)原理圖見圖4[5]。操作過程為:?jiǎn)?dòng)系統(tǒng)后,在自動(dòng)模式下,按UP鍵,平臺(tái)會(huì)上升一個(gè)固定高度;按DOWN鍵,平臺(tái)會(huì)下降一個(gè)固定高度。該高度值是為實(shí)現(xiàn)最高清洗效率,以3m高的車身為標(biāo)準(zhǔn),經(jīng)優(yōu)化計(jì)算得出的最適高度。因?yàn)楣卉嚨男吞?hào)差異,車身高度也各不相同,所以為滿足實(shí)際使用要求,我們又設(shè)計(jì)了手動(dòng)控制模式。在手動(dòng)模式下,按住UP鍵,平臺(tái)會(huì)上升,松開立即停止;按住DOWN鍵,平臺(tái)會(huì)下降,松開立即停止。為防止工作人員誤操作,本文增加了按鍵防抖動(dòng)延遲,防止工作人員誤觸按鍵;如果UP和DOWN鍵同時(shí)按下,則電動(dòng)機(jī)停轉(zhuǎn),直至其中一個(gè)按鍵松開。

3結(jié)語

第6篇

關(guān)鍵詞:黑盒測(cè)試;嵌入式系統(tǒng);程序流程圖;插樁處理

引言

黑盒測(cè)試是從用戶觀點(diǎn)出發(fā)的測(cè)試,依據(jù)需求功能說明書中的預(yù)期用途、定時(shí)和性能的要求,推斷測(cè)試結(jié)果。黑盒測(cè)試根據(jù)測(cè)試階段可分為單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試四個(gè)階段[1]。嵌入式計(jì)算機(jī)系統(tǒng)具有與傳統(tǒng)軟件測(cè)試不同的新特性,因此需要采取針對(duì)性的測(cè)試方法。通用的測(cè)試方法可分為靜態(tài)時(shí)間分析和動(dòng)態(tài)時(shí)間分析。

1嵌入式軟件測(cè)試的環(huán)境分析

在線仿真配備了CPU芯片接口,提供和應(yīng)用程序交流信息橋,不足之處在于對(duì)硬件的依賴性較強(qiáng),測(cè)試范圍較窄;目標(biāo)機(jī)仿真測(cè)試結(jié)果真實(shí),但由于實(shí)際運(yùn)行中連接外部設(shè)備,很難辨識(shí)軟件和硬件錯(cuò)誤。在實(shí)際測(cè)試中,根據(jù)測(cè)試效率、成本、可靠性、自動(dòng)化程度等因素選擇測(cè)試環(huán)境[2]。

2嵌入式測(cè)試系統(tǒng)的技術(shù)實(shí)現(xiàn)

CodeTest一方面吸取軟件插樁技術(shù),另一方面從硬件測(cè)試那里吸取從總線獲取數(shù)據(jù)的技術(shù),并進(jìn)行升級(jí)改造。在硬件測(cè)試時(shí),CodeTest選擇插入點(diǎn)的方式為主動(dòng)獲取關(guān)鍵數(shù)據(jù)。和CodeTest相比,純軟件測(cè)試對(duì)目標(biāo)測(cè)試的影響大大降低。因此選用Cereal仿真器。嵌入式軟件測(cè)試系統(tǒng)由功能測(cè)試模塊、代碼測(cè)試模塊、數(shù)據(jù)分析和文檔報(bào)告模塊、通信接口轉(zhuǎn)換模塊組成。對(duì)于黑盒測(cè)試來說,功能測(cè)試模塊居主導(dǎo)地位,它主要通過接收目標(biāo)系統(tǒng)輸出信號(hào)和需要的信號(hào)進(jìn)行比對(duì)來判定目標(biāo)系統(tǒng)在功能上是否達(dá)到最優(yōu)[3]。

3詞法語法分析的設(shè)計(jì)與實(shí)現(xiàn)

3.1Lex⁃Yacc

Lex是檢測(cè)字符匹配性的詞法生成程序,Yacc是測(cè)定語法的生成程序。一個(gè)Lex程序由三段組成:首先是C和Lex定義;第二段是C代碼;第三段是C函數(shù)。一個(gè)Yacc程序也是由三段組成,分別是聲明、語法規(guī)則和C代碼。Lex同Yacc的工作原理如圖1所示。

3.2Lex⁃Yacc之間的聯(lián)系

Lex程序用來計(jì)算數(shù)字字符串,能對(duì)各種符號(hào)進(jìn)行識(shí)別,當(dāng)插碼時(shí)可以以注釋的形式插入插樁代碼,等程序完成,可以自行取消代碼插樁,不影響整體進(jìn)程。Yylval用來傳遞Lex與Yacc之間數(shù)字字符串轉(zhuǎn)化后的數(shù)值,利用lineno傳遞正在處理的代碼行號(hào)和標(biāo)號(hào)。本次設(shè)計(jì)全程在Linux下,通過Lex編譯后生成詞法分析程序的C代碼,通過Yacc編譯后生成語法分析程序的C程序代碼。兩者通過gcc命令進(jìn)行編譯形成綜合分析。最后運(yùn)行該綜合分析器就可以對(duì)51系列的匯編語言進(jìn)行分析[4⁃5]。

3.3被測(cè)源程序靜態(tài)結(jié)構(gòu)分析

Lex⁃Yacc工具對(duì)單文件逐行掃描,得出當(dāng)前語句各類參數(shù)類型,不同參數(shù)類型分別進(jìn)入不同的單鏈表中。其中除了順序單鏈表外,其他四種處理方式基本相同。待詞法、語法分析完畢,五個(gè)單鏈表中存儲(chǔ)了對(duì)應(yīng)的匯編程序。因?yàn)閱捂湵肀旧碇皇且粋€(gè)轉(zhuǎn)換器,無法顯示匯編程序之間的邏輯關(guān)系,所以需要對(duì)程序進(jìn)行二次分析,確定所有邏輯關(guān)系。其中五個(gè)單鏈表形成的流程圖如圖2所示。針對(duì)程序流程圖的建立,首先搜索匹配節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)不同進(jìn)入相應(yīng)分支處理。當(dāng)前語句在順序節(jié)點(diǎn),則進(jìn)入順序處理模塊。從關(guān)鍵字“結(jié)束行號(hào)+1”開始遍歷單鏈表,存在兩種結(jié)果:一是算法出錯(cuò);另外一種就是在主程序中時(shí)則表明當(dāng)前分支分析完成。接著要判斷條件跟蹤鏈表中的順序分支(規(guī)定為右分支)是否都已分析完畢。

4覆蓋率分析及評(píng)測(cè)

4.1被測(cè)源程序覆蓋率分析

虛擬插樁技術(shù)就是在匯編語言基本結(jié)構(gòu)的特點(diǎn)上,在源程序的插樁點(diǎn)處設(shè)置斷點(diǎn),在源程序執(zhí)行到斷點(diǎn)處,響應(yīng)斷點(diǎn)處指令,給出具體的PC地址,自動(dòng)記錄并打印出來,接連下去形成PC值的數(shù)據(jù)鏈。通過查詢五類單鏈表與之建立對(duì)應(yīng)關(guān)系,就可以獲得到源程序的真實(shí)運(yùn)行軌跡,進(jìn)而計(jì)算出各類覆蓋指標(biāo)。

4.2基于代碼的覆蓋評(píng)測(cè)

在仿真測(cè)試平臺(tái)原型系統(tǒng)上,基于代碼的覆蓋測(cè)試首先需要選定適合用作黑盒測(cè)試的子過程模塊。提取的子過程模塊必須具備獨(dú)立運(yùn)行的能力,根據(jù)覆蓋測(cè)試的標(biāo)準(zhǔn)和要求對(duì)代碼邏輯結(jié)構(gòu)進(jìn)行認(rèn)真分析,設(shè)計(jì)出多個(gè)測(cè)試用例,然后通過手工運(yùn)行該子程序的方式,在某一特定測(cè)試用例驅(qū)動(dòng)下運(yùn)行,測(cè)定出運(yùn)行路徑,通過計(jì)算得出兩種覆蓋率理論評(píng)測(cè)指標(biāo),與仿真測(cè)試平臺(tái)上實(shí)現(xiàn)的兩種覆蓋率相對(duì)比,得出覆蓋率分析法與虛擬插樁的正確性驗(yàn)證結(jié)果。

5嵌入式系統(tǒng)平臺(tái)設(shè)計(jì)

設(shè)計(jì)一個(gè)可以代替人工進(jìn)行黑盒測(cè)試的平臺(tái)系統(tǒng),見圖3,其基本原理是通過腳本語言記錄狀態(tài)信息,之后通過PC回放測(cè)試信息以判斷結(jié)果是否與記錄腳本一致,以此決定本次測(cè)試是否通過。為此,在編輯源代碼時(shí)就需要滿足錄制腳本和腳本回放兩個(gè)階段的需求。

5.1插裝代碼分析

在PC上運(yùn)行插裝系統(tǒng)最重要的原則就是要保證軟件原有功能的穩(wěn)定性和完整性。因此在設(shè)計(jì)嵌入式系統(tǒng)的插裝代碼時(shí)不能改變程序的原有邏輯和原有執(zhí)行流程,應(yīng)盡量降低在嵌入式系統(tǒng)所占的資源,盡可能將部分功能和操作交付于PC進(jìn)行。嵌入式系統(tǒng)中的模擬用戶輸入模塊的主要功能是將計(jì)算機(jī)發(fā)送的命令進(jìn)行分析,并將結(jié)果回復(fù)到處理模塊中,其操作模擬流程見圖4。

5.2系統(tǒng)狀態(tài)的定義和獲取

(1)聲音信息的獲取嵌入式系統(tǒng)中對(duì)聲音信息的獲取主要是通過識(shí)別每個(gè)聲音惟一的ID編號(hào)和固定的音頻編碼進(jìn)行的。工作時(shí),由系統(tǒng)中的服務(wù)函數(shù)獲得ID聲音的音頻編碼并發(fā)送到PC中。(2)獲取LED信息LED的運(yùn)行方法和聲音相似,都有一套惟一的LED編碼,并由LED控制器控制。常用的設(shè)計(jì)方法是將LED中的編碼放到嵌入式系統(tǒng)中的緩沖區(qū)內(nèi),通過定時(shí)刷新函數(shù)提取LED信息[6]。(3)獲取LCD信息由于LCD需要顯示的信息較多,且各消息屬性復(fù)雜,因此較難提取。目前常用的提取方法是點(diǎn)陣截取法和消息截取法。由于點(diǎn)陣截取法操作簡(jiǎn)單、測(cè)試結(jié)果準(zhǔn)確率高,因此本文使用點(diǎn)陣截取法獲取LCD信息。(4)系統(tǒng)狀態(tài)的獲取主動(dòng)請(qǐng)求和被動(dòng)獲取是嵌入式系統(tǒng)獲取信息的主要方式。主動(dòng)請(qǐng)求是指嵌入式系統(tǒng)在處理完P(guān)C發(fā)出的操作命令時(shí),主動(dòng)將搜集好的信息發(fā)送到PC上。被動(dòng)獲取是指嵌入式系統(tǒng)并不主動(dòng)發(fā)送檢測(cè)信息,而是當(dāng)狀態(tài)出現(xiàn)時(shí)才決定是否繼續(xù)后續(xù)操作。

5.3自動(dòng)化比較和測(cè)試

軟件是否準(zhǔn)確輸出結(jié)果,需要經(jīng)過多次測(cè)試實(shí)際輸出和預(yù)期輸出的差別。本文在設(shè)計(jì)嵌入式系統(tǒng)時(shí)綜合考慮了一些智能比較思想來優(yōu)化設(shè)計(jì)流程。由于實(shí)際的嵌入式系統(tǒng)會(huì)產(chǎn)生上百個(gè)復(fù)雜的狀態(tài)信息[7],為便于比較,本文采用了相對(duì)比較的辦法對(duì)錄制腳本時(shí)的狀態(tài)變遷進(jìn)行比較。最后設(shè)計(jì)完成的嵌入式系統(tǒng)需對(duì)腳本進(jìn)行測(cè)試,這是交互式應(yīng)用的重要組成部分。腳本測(cè)試的準(zhǔn)確度主要依賴于所選用的測(cè)試工作和腳本技術(shù)。當(dāng)前主要的腳本技術(shù)有共享腳本、數(shù)據(jù)驅(qū)動(dòng)腳本、結(jié)構(gòu)化腳本等。這些腳本都包括了三個(gè)命令,即人工操作命令、狀態(tài)檢查命令、邏輯控制命令。測(cè)試腳本主要就是對(duì)這三個(gè)命令進(jìn)行檢查,其中在自動(dòng)化檢測(cè)中采用何種腳本記錄測(cè)試結(jié)果可依據(jù)模塊要求進(jìn)行選定。

6結(jié)語

黑盒測(cè)試技術(shù)的匯編語言測(cè)試系統(tǒng)用例研究在我國(guó)已經(jīng)很多,本文最大的亮點(diǎn)是引入虛擬插樁技術(shù),實(shí)現(xiàn)真正插樁,即在被測(cè)源程序的插樁點(diǎn)處設(shè)置中斷指令,當(dāng)源程序運(yùn)行到該點(diǎn)處時(shí)自動(dòng)運(yùn)行斷點(diǎn)指令,給出具體的PC地址,進(jìn)而給出一系列地址數(shù)據(jù),根據(jù)事先設(shè)定的用例判定運(yùn)行效果,得出黑盒測(cè)試的正確驗(yàn)證結(jié)果。此方法最大的優(yōu)點(diǎn)在于高效、精確、成本較低,在實(shí)際運(yùn)用中具有較高的實(shí)用價(jià)值。

參考文獻(xiàn)

[1]孫昌愛,靳若明,劉超,等.實(shí)時(shí)嵌入式軟件的測(cè)試技術(shù)[J].小型微型計(jì)算機(jī)系統(tǒng),2000,21(9):920⁃924.

[2]杜曉東.面向嵌入式系統(tǒng)的測(cè)試工具研究[D].成都:電子科技大學(xué),2003.

[3]蘇銘,宋宗宇,王華.多計(jì)算機(jī)的自動(dòng)插樁與監(jiān)測(cè)系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2002(4):79⁃82.

[4]楊作梅,張旭東.1ex與yacc[M].北京:電子工業(yè)出版社,2003.

[5]鄧支益,何亦征,田翼.嵌入式軟件測(cè)試研究[J].航空電子技術(shù),2003,34(1):37⁃42.

[6]曹文靜,宮云戰(zhàn).軟件測(cè)試性計(jì)算方法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2003,24(10):67⁃70.

第7篇

關(guān)鍵詞:嵌入式芯片;FPGA;人機(jī)交互界面

嵌入式芯片是當(dāng)前一些主流數(shù)碼設(shè)備的核心部件,也是嵌入式系統(tǒng)的硬件基礎(chǔ)。嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。簡(jiǎn)單地說,嵌入式系統(tǒng)集系統(tǒng)的應(yīng)用軟件與硬件于一體,類似于PC中BIOS的工作方式,具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn),特別適合于要求實(shí)時(shí)和多任務(wù)的體系。

嵌入式芯片主要包括FPGA芯片(Field Programmable Gate Array 現(xiàn)場(chǎng)可編程門陣列),MCS-51系列芯片等等。本文主要介紹面向嵌入式芯片的指令測(cè)試系統(tǒng)。

一、系統(tǒng)架構(gòu)

測(cè)試系統(tǒng)的主體是面向嵌入式芯片的人機(jī)交互界面。它為用戶提供了檢測(cè)芯片指令集的各種便捷操作。

為了更好的實(shí)現(xiàn)測(cè)試體系的各項(xiàng)功能,筆者在編寫程序時(shí),將測(cè)試系統(tǒng)人為的分成了幾個(gè)模塊。這些模塊之間有著非常緊密的聯(lián)系,每一步的實(shí)現(xiàn)都是下一步成功運(yùn)行的基礎(chǔ)。

測(cè)試體系的主體架構(gòu)主要分為五個(gè)部分:

(一)源代碼的輸入與保存

用戶可以通過編輯框輸入代碼,實(shí)現(xiàn)程序的編寫。此外系統(tǒng)還為用戶提供了編輯框的清空操作,并可以自動(dòng)將編寫的代碼保存為.asm文件。

(二)源文件的讀取與顯示

用戶可以將已經(jīng)編寫好的源文件讀入系統(tǒng),并對(duì)其進(jìn)行編輯。

(三)交叉編譯

系統(tǒng)對(duì)讀入的源文件進(jìn)行編譯,期間用戶可以自動(dòng)配編譯工具,編譯完成后系統(tǒng)將自動(dòng)報(bào)錯(cuò)。

(四)串口的輸入輸出

系統(tǒng)可以將用戶指定的二進(jìn)制文件送到串行口中,并發(fā)送至連接到PC端的8051芯片中。發(fā)送成功后,系統(tǒng)將顯示已經(jīng)發(fā)送的信息。

系統(tǒng)可以自動(dòng)接收來自串口的消息,并顯示在相應(yīng)的列表框中。

(五)程序運(yùn)行日志

系統(tǒng)在用戶運(yùn)行了測(cè)試體系之后,即程序的出口處,自動(dòng)生成程序的運(yùn)行日志,它為用戶顯示了程序運(yùn)行的各項(xiàng)參數(shù),例如程序運(yùn)行時(shí)間,串口狀態(tài)等。

此外系統(tǒng)為了使用戶可以更加方便自如的使用本測(cè)試框架,在每一部分的實(shí)現(xiàn)過程中,都充分考慮了軟件的靈活性,盡可能的讓用戶自主配置測(cè)試體系的各項(xiàng)參數(shù)。

二、系統(tǒng)設(shè)計(jì)

(一)整體性

作為嵌入式測(cè)試系統(tǒng)的人機(jī)交互界面,在其設(shè)計(jì)的過程中必然要形成一套完備的軟件體系,即保證程序運(yùn)行的整體性。這關(guān)系到整個(gè)測(cè)試系統(tǒng)的完整性和穩(wěn)定性。

源代碼輸入和源文件讀取部分主要是將指令集測(cè)試代碼導(dǎo)入到系統(tǒng)中。交叉編譯部分的工作是對(duì)導(dǎo)入系統(tǒng)的測(cè)試代碼進(jìn)行編譯處理,以便用戶對(duì)測(cè)試代碼進(jìn)行調(diào)試。串口檢測(cè)部分是將編譯通過的測(cè)試程序所生成的二進(jìn)制文件以8位字符串的形式送入串口,經(jīng)過開發(fā)板的運(yùn)行以后,將結(jié)果通過串口輸出到指定的LCD顯示屏或PC上,從而驗(yàn)證測(cè)試程序的可執(zhí)行性。程序運(yùn)行日志是對(duì)整個(gè)程序運(yùn)行的效率和穩(wěn)定性向用戶提供的反饋信息。

(二)靈活性

在保證程序運(yùn)行的整體性的同時(shí),為了使測(cè)試體系的使用更加的方便,提高測(cè)試體系進(jìn)一步完善的空間,就必須保證各功能模塊的靈活性。在源代碼輸入和源文件讀取的部分,系統(tǒng)默認(rèn)的輸入程序是匯編程序,但用戶也可以輸入C程序,JAVA程序,XML程序等多種程序語言。同時(shí),在交叉編譯部分也可以通過調(diào)用不同的編譯器和鏈接器對(duì)這些程序編譯調(diào)試,這無形中將單一的面向嵌入式芯片的匯編編譯器擴(kuò)展為集C語言編譯器,JAVA語言編譯器和XML語言編譯器等多種編譯器于一體的集成編譯環(huán)境,從而實(shí)現(xiàn)強(qiáng)大的編譯功能。串口檢測(cè)部分為用戶提供串口參數(shù)的配置框,并支持串口信息的發(fā)送與接收,從而使測(cè)試體系具有了類似超級(jí)終端的串口通信功能,這也為用戶對(duì)串口操作提供了極大的方便。

三、結(jié)束語

作為當(dāng)前主流的數(shù)碼產(chǎn)品的關(guān)鍵部件,嵌入式芯片必然會(huì)在未來的IT市場(chǎng)上占有越來越重要的地位。本文所探討的嵌入式芯片測(cè)試系統(tǒng)正是基于這樣的考量,不但從源代碼的輸入與保存,源文件的讀取與顯示,交叉編譯,串口的輸入輸出和程序運(yùn)行日志這五個(gè)模塊來構(gòu)建測(cè)試系統(tǒng),而且還從程序設(shè)計(jì)的整體性和靈活性兩個(gè)方面,對(duì)該系統(tǒng)進(jìn)行了評(píng)測(cè)。未來的嵌入式系統(tǒng)和普通的計(jì)算機(jī)系統(tǒng)在微型化和小型化方面將會(huì)趨于一致,而測(cè)試系統(tǒng)也可以進(jìn)一步擴(kuò)展為對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)進(jìn)行相應(yīng)的檢測(cè)。希望測(cè)試系統(tǒng)能為嵌入式芯片的發(fā)展做出一定的貢獻(xiàn)。

參考文獻(xiàn):

[1]胡振華.VHDL與FPGA設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2003.

[2]陳榮,陳華.VHDL芯片設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2006.

[3]張大波,吳迪,郝軍.嵌入式系統(tǒng)原理設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.