亚洲av中文无码乱人伦在线视色,日韩中文字幕亚洲无线码,亚洲欧美日韩中文久久http://www.bjzhda.cnzh-cn曙海教育集團(tuán)論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團(tuán)論壇嵌入式系統(tǒng)關(guān)鍵技術(shù)分析與開(kāi)發(fā)應(yīng)用 硬件 操作系統(tǒng)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1507&Page=1wangxinxin2010-11-19 10:48:01摘要:基于嵌入式系統(tǒng)的概念,闡述嵌入式系統(tǒng)的關(guān)鍵技術(shù)、嵌入式開(kāi)發(fā)以及廣泛的應(yīng)用。首先,分析嵌入式系統(tǒng)的技術(shù)特點(diǎn),分別從嵌入

式處理器和嵌入式操作系統(tǒng)兩方面介紹,著重說(shuō)明它不同于其它操作系統(tǒng)的一些處理方法和過(guò)程;在此基礎(chǔ)上闡述嵌入式軟件的開(kāi)發(fā)過(guò)程,

并結(jié)合作者嵌入式軟件開(kāi)發(fā)的實(shí)踐,著重闡述嵌入式軟件的一些開(kāi)發(fā)技巧。接著,介紹目前嵌入式系統(tǒng)一些流行的應(yīng)用,以及南京東大移動(dòng)

互聯(lián)技術(shù)有限公司自行研制的基于藍(lán)牙技術(shù)的嵌入式產(chǎn)品。最后,給出作者的體會(huì),展望嵌入式系統(tǒng)的前景。

關(guān)鍵詞:嵌入式系統(tǒng) 嵌入式處理器 微內(nèi)核 內(nèi)存管理單元 藍(lán)牙系統(tǒng)


引 言

  在當(dāng)前數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC(Post-PC)時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛地滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各

類產(chǎn)業(yè)和商業(yè)文化藝術(shù)以及人們的日常生活等方方面面中。隨著國(guó)內(nèi)外各種嵌入式產(chǎn)品的進(jìn)一步開(kāi)發(fā)和推廣,嵌入式技術(shù)越來(lái)越和人們的生活緊密結(jié)合。

  1970年左右出現(xiàn)了嵌入式系統(tǒng)的概念,此時(shí)的嵌入式系統(tǒng)很多都不采用操作系統(tǒng),它們只是為了實(shí)現(xiàn)某個(gè)控制功能,使用一個(gè)簡(jiǎn)單的循

環(huán)控制對(duì)外界的控制請(qǐng)求進(jìn)行處理。當(dāng)應(yīng)用系統(tǒng)越來(lái)越復(fù)雜、利用的范圍越來(lái)越廣泛的時(shí)候,每添加一項(xiàng)新的功能,都可能需要從頭開(kāi)始設(shè)

計(jì)。沒(méi)有操作系統(tǒng)已成為一個(gè)最大的缺點(diǎn)了。 

  C語(yǔ)言的出現(xiàn)使操作系統(tǒng)開(kāi)發(fā)變得簡(jiǎn)單。從上世紀(jì)80年代開(kāi)始,出現(xiàn)了各種各樣的商用嵌入式操作系統(tǒng)百家爭(zhēng)鳴的局面,比較著名的有

VxWorks、pSOS和Windows CE等等,這些操作系統(tǒng)大部分是為專有系統(tǒng)而開(kāi)發(fā)的。另外,源代碼開(kāi)放的嵌入式Linux,由于其強(qiáng)大的網(wǎng)絡(luò)功能

和低成本,近來(lái)也得到了越來(lái)越多的應(yīng)用。

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

  嵌入式系統(tǒng)通常包括構(gòu)成軟件的基本運(yùn)行環(huán)境的硬件和操作系統(tǒng)兩部分。嵌入式系統(tǒng)的運(yùn)行環(huán)境和應(yīng)用場(chǎng)合決定了嵌入式系統(tǒng)具有區(qū)別

于其它操作系統(tǒng)的一些特點(diǎn)。

(1)嵌入式處理器

  嵌入式處理器可以分為三類:嵌入式微處理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。嵌入式微處理器就是和通

用計(jì)算機(jī)的微處理器對(duì)應(yīng)的CPU。在應(yīng)用中,一般是將微處理器裝配在專門(mén)設(shè)計(jì)的電路板上,在母板上只保留和嵌入式相關(guān)的功能即可,這樣

可以滿足嵌入式系統(tǒng)體積小和功耗低的要求。目前的嵌入式處理器主要包括:PowerPC、Motorola 68000、ARM系列等等。

  嵌入式微控制器又稱為單片機(jī),它將CPU、存儲(chǔ)器(少量的RAM、ROM或兩者都有)和其它外設(shè)封裝在同一片集成電路里。常見(jiàn)的有8051。


  嵌入式DSP專門(mén)用來(lái)對(duì)離散時(shí)間信號(hào)進(jìn)行極快的處理計(jì)算,提高編譯效率和執(zhí)行速度。在數(shù)字濾波、FFT、譜分析、圖像處理的分析等領(lǐng)

域,DSP正在大量進(jìn)入嵌入式市場(chǎng)。

(2)微內(nèi)核結(jié)構(gòu)

  大多數(shù)操作系統(tǒng)至少被劃分為內(nèi)核層和應(yīng)用層兩個(gè)層次。內(nèi)核只提供基本的功能,如建立和管理進(jìn)程、提供文件系統(tǒng)、管理設(shè)備等,這些

功能以系統(tǒng)調(diào)用方式提供給用戶。一些桌面操作系統(tǒng),如Windows、Linux等,將許多功能引入內(nèi)核,操作系統(tǒng)的內(nèi)核變得越來(lái)越大。內(nèi)核變

大使得占用的資源增多,剪裁起來(lái)很麻煩。

  大多數(shù)嵌入式操作系統(tǒng)采用了微內(nèi)核結(jié)構(gòu),內(nèi)核只提供基本的功能,比如:任務(wù)的調(diào)度、任務(wù)之間的通信與同步、內(nèi)存管理、時(shí)鐘管理

等。其它的應(yīng)用組件,比如網(wǎng)絡(luò)功能、文件系統(tǒng)、GUI系統(tǒng)等均工作在用戶態(tài),以系統(tǒng)進(jìn)程或函數(shù)調(diào)用的方式工作。因而系統(tǒng)都是可裁減的,

用戶可以根據(jù)自己的需要選用相應(yīng)的組件。

(3)任務(wù)調(diào)度

  在嵌入式系統(tǒng)中,任務(wù)即線程。大多數(shù)的嵌入式操作系統(tǒng)支持多任務(wù)。多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際是靠CPU在多個(gè)任務(wù)之間切換、調(diào)度。每個(gè)

任務(wù)都有其優(yōu)先級(jí),不同的任務(wù)優(yōu)先級(jí)可能相同也可能不同。任務(wù)的調(diào)度有三種方式:可搶占式調(diào)度、不可搶占式調(diào)度和時(shí)間片輪轉(zhuǎn)調(diào)度。

不可搶占式調(diào)度是指,一個(gè)任務(wù)一旦獲得CPU就獨(dú)占CPU運(yùn)行,除非由于某種原因,它決定放棄CPU的使用權(quán);可搶占式調(diào)度是基于任務(wù)優(yōu)先

級(jí)的,當(dāng)前正在運(yùn)行的任務(wù)可以隨時(shí)讓位給優(yōu)先級(jí)更高的處于就緒態(tài)的其它任務(wù);當(dāng)兩個(gè)或兩個(gè)以上任務(wù)有同樣的優(yōu)先級(jí),不同任務(wù)輪轉(zhuǎn)地

使用CPU,直到系統(tǒng)分配的CPU時(shí)間片用完,這就是時(shí)間片輪轉(zhuǎn)調(diào)度。

  目前,大多數(shù)嵌入式操作系統(tǒng)對(duì)不同優(yōu)先級(jí)的任務(wù)采用基于優(yōu)先級(jí)的搶占式調(diào)度法,對(duì)相同優(yōu)先級(jí)的任務(wù)則采用時(shí)間片輪轉(zhuǎn)調(diào)度法。

(4)硬實(shí)時(shí)和軟實(shí)時(shí) 

  有些嵌入式系統(tǒng)對(duì)時(shí)間的要求較高,稱之為實(shí)時(shí)系統(tǒng)。有兩種類型的實(shí)時(shí)系統(tǒng):硬實(shí)時(shí)系統(tǒng)和軟實(shí)時(shí)系統(tǒng)。軟實(shí)時(shí)系統(tǒng)并不要求限定某

一任務(wù)必須在一定的時(shí)間內(nèi)完成,只要求各任務(wù)運(yùn)行得越快越好;硬實(shí)時(shí)系統(tǒng)對(duì)系統(tǒng)響應(yīng)時(shí)間有嚴(yán)格要求,一旦系統(tǒng)響應(yīng)時(shí)間不能滿足,就

可能會(huì)引起系統(tǒng)崩潰或致命的錯(cuò)誤,一般在工業(yè)控制中應(yīng)用較多。

(5)內(nèi)存管理

  針對(duì)有內(nèi)存管理單元(MMU)的處理器設(shè)計(jì)的一些桌面操作系統(tǒng),如Windows、Linux,使用了虛擬存儲(chǔ)器的概念。虛擬內(nèi)存地址被送到

MMU。在這里,虛擬地址被映射為物理地址,實(shí)際存儲(chǔ)器被分割為相同大小的頁(yè)面,采用分頁(yè)的方式載入進(jìn)程。一個(gè)程序在運(yùn)行之前,沒(méi)有

必要全部裝入內(nèi)存,而是僅將那些當(dāng)前要運(yùn)行的部分頁(yè)面裝入內(nèi)存運(yùn)行。

  大多數(shù)嵌入式系統(tǒng)針對(duì)沒(méi)有MMU的處理器設(shè)計(jì),不能使用處理器的虛擬內(nèi)存管理技術(shù),采用的是實(shí)存儲(chǔ)器管理策略。因而對(duì)于內(nèi)存的訪問(wèn)

是直接的,它對(duì)地址的訪問(wèn)不需要經(jīng)過(guò)MMU,而是直接送到地址線上輸出,所有程序中訪問(wèn)的地址都是實(shí)際的物理地址;而且,大多數(shù)嵌入

式操作系統(tǒng)對(duì)內(nèi)存空間沒(méi)有保護(hù),各個(gè)進(jìn)程實(shí)際上共享一個(gè)運(yùn)行空間。一個(gè)進(jìn)程在執(zhí)行前,系統(tǒng)必須為它分配足夠的連續(xù)地址空間,然后全

部載入主存儲(chǔ)器的連續(xù)空間。

  由此可見(jiàn),嵌入式系統(tǒng)的開(kāi)發(fā)人員不得不參與系統(tǒng)的內(nèi)存管理。從編譯內(nèi)核開(kāi)始,開(kāi)發(fā)人員必須告訴系統(tǒng)這塊開(kāi)發(fā)板到底擁有多少內(nèi)

存;在開(kāi)發(fā)應(yīng)用程序時(shí),必須考慮內(nèi)存的分配情況并關(guān)注應(yīng)用程序需要運(yùn)行空間的大小。另外,由于采用實(shí)存儲(chǔ)器管理策略,用戶程序同

內(nèi)核以及其它用戶程序在一個(gè)地址空間,程序開(kāi)發(fā)時(shí)要保證不侵犯其它程序的地址空間,以使得程序不至于破壞系統(tǒng)的正常工作,或?qū)е缕?/font>

它程序的運(yùn)行異常;因而,嵌入式系統(tǒng)的開(kāi)發(fā)人員對(duì)軟件中的一些內(nèi)存操作要格外小心。

(6)內(nèi)核加載方式

  嵌入式操作系統(tǒng)內(nèi)核可以在Flash上直接運(yùn)行,也可以加載到內(nèi)存中運(yùn)行。Flash的運(yùn)行方式,是把內(nèi)核的可執(zhí)行映像燒寫(xiě)到Flash上,

系統(tǒng)啟動(dòng)時(shí)從Flash的某個(gè)地址開(kāi)始執(zhí)行。這種方法實(shí)際上是很多嵌入式系統(tǒng)所采用的方法。內(nèi)核加載方式是把內(nèi)核的壓縮文件存放在Flash

上,系統(tǒng)啟動(dòng)時(shí)讀取壓縮文件在內(nèi)存里解壓,然后開(kāi)始執(zhí)行。這種方式相對(duì)復(fù)雜一些,但是運(yùn)行速度可能更快,因?yàn)镽AM的存取速率要比

Flash高。

  由于嵌入式系統(tǒng)的內(nèi)存管理機(jī)制,嵌入式操作系統(tǒng)對(duì)用戶程序采用靜態(tài)鏈接的形式。在嵌入式系統(tǒng)中,應(yīng)用程序和操作系統(tǒng)內(nèi)核代碼

編譯、鏈接生成一個(gè)二進(jìn)制影像文件來(lái)運(yùn)行。

2 嵌入式系統(tǒng)開(kāi)發(fā)相關(guān)技術(shù)

  相對(duì)于在Windows環(huán)境下的開(kāi)發(fā)應(yīng)用程序,嵌入式系統(tǒng)開(kāi)發(fā)有著很多的不同。不同的硬件平臺(tái)和操作系統(tǒng)帶來(lái)了許多附加的開(kāi)發(fā)復(fù)雜性。


2.1 嵌入式開(kāi)發(fā)過(guò)程

  在嵌入式開(kāi)發(fā)過(guò)程中有宿主機(jī)和目標(biāo)機(jī)的角色之分:宿主機(jī)是執(zhí)行編譯、鏈接、定址過(guò)程的計(jì)算機(jī);目標(biāo)機(jī)指運(yùn)行嵌入式軟件的硬件

平臺(tái)。首先須把應(yīng)用程序轉(zhuǎn)換成可以在目標(biāo)機(jī)上運(yùn)行的二進(jìn)制代碼。這一過(guò)程包含三個(gè)步驟:編譯、鏈接、定址。編譯過(guò)程由交*編譯器

實(shí)現(xiàn)。所謂交*編譯器就是運(yùn)行在一個(gè)計(jì)算機(jī)平臺(tái)上并為另一個(gè)平臺(tái)產(chǎn)生代碼的編譯器。常用的交*編譯器有GNU C/C++(gcc)。編譯過(guò)

程產(chǎn)生的所有目標(biāo)文件被鏈接成一個(gè)目標(biāo)文件,稱為鏈接過(guò)程。定址過(guò)程會(huì)把物理存儲(chǔ)器地址指定給目標(biāo)文件的每個(gè)相對(duì)偏移處。該過(guò)程

生成的文件就是可以在嵌入式平臺(tái)上執(zhí)行的二進(jìn)制文件。

  嵌入式開(kāi)發(fā)過(guò)程中另一個(gè)重要的步驟是調(diào)試目標(biāo)機(jī)上的應(yīng)用程序。嵌入式調(diào)試采用交*調(diào)試器,一般采用宿主機(jī)-目標(biāo)機(jī)的調(diào)試方式,

它們之間由串行口線或以太網(wǎng)或BDM線相連。交*調(diào)試有任務(wù)級(jí)、源碼級(jí)和匯編級(jí)的調(diào)試,調(diào)試時(shí)需將宿主機(jī)上的應(yīng)用程序和操作系統(tǒng)內(nèi)核

下載到目標(biāo)機(jī)的RAM中或直接燒錄到目標(biāo)機(jī)的ROM中。目標(biāo)監(jiān)控器是調(diào)試器對(duì)目標(biāo)機(jī)上運(yùn)行的應(yīng)用程序進(jìn)行控制的代理(Debugger Agent),

事先被固化在目標(biāo)機(jī)的Flash、ROM中,在目標(biāo)機(jī)上電后自動(dòng)啟動(dòng),并等待宿主機(jī)方調(diào)試器發(fā)來(lái)的命令,配合調(diào)試器完成應(yīng)用程序的下載、

運(yùn)行和基本的調(diào)試功能,將調(diào)試信息返回給宿主機(jī)。

2.2 向嵌入式平臺(tái)移植軟件 

  大部分嵌入式開(kāi)發(fā)人員選用的軟件開(kāi)發(fā)模式是先在PC機(jī)上編寫(xiě)軟件,再進(jìn)行軟件的移植工作。在PC機(jī)上編寫(xiě)軟件時(shí),要注意軟件的可

移植性,選用具有較高移植性的編程語(yǔ)言(如C語(yǔ)言),盡量少調(diào)用操作系統(tǒng)函數(shù),注意屏蔽不同硬件平臺(tái)帶來(lái)的字節(jié)順序、字節(jié)對(duì)齊等

問(wèn)題。以下是我們?cè)谝浦矃f(xié)議棧過(guò)程中的一些體會(huì)。

2.2.1 字節(jié)順序

  字節(jié)順序是指占內(nèi)存多于一個(gè)字節(jié)類型的數(shù)據(jù)在內(nèi)存中的存放順序,通常有小端、大端兩種字節(jié)順序。小端字節(jié)序指低字節(jié)數(shù)據(jù)存放

在內(nèi)存低地址處,高字節(jié)數(shù)據(jù)存放在內(nèi)存高地址處;大端字節(jié)序是高字節(jié)數(shù)據(jù)存放在低地址處,低字節(jié)數(shù)據(jù)存放在高地址處;赬86平臺(tái)

的PC機(jī)是小端字節(jié)序的,而有的嵌入式平臺(tái)則是大端字節(jié)序的。因而對(duì)int、uint16、uint32等多于1字節(jié)類型的數(shù)據(jù),在這些嵌入式平臺(tái)

上應(yīng)該變換其存儲(chǔ)順序。通常我們認(rèn)為,在空中傳輸?shù)淖止?jié)的順序即網(wǎng)絡(luò)字節(jié)序?yàn)闃?biāo)準(zhǔn)順序,考慮到與協(xié)議的一致以及與同類其它平臺(tái)產(chǎn)

品的互通,在程序中發(fā)數(shù)據(jù)包時(shí),將主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序,收數(shù)據(jù)包處將網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換為主機(jī)字節(jié)序。

2.2.2 字節(jié)對(duì)齊

  有的嵌入式處理器的尋址方式?jīng)Q定了在內(nèi)存中占2字節(jié)的int16、uint16等類型數(shù)據(jù)只能存放在偶數(shù)內(nèi)存地址處,占4字節(jié)的int32 、

uint32 等類型數(shù)據(jù)只能存放在4的整數(shù)倍的內(nèi)存地址處;占8字節(jié)的類型數(shù)據(jù)只能存放在8的整數(shù)倍的內(nèi)存地址處;而在內(nèi)存中只占1字節(jié)的

類型數(shù)據(jù)可以存放在任意地址處。由于這些限制,在這些平臺(tái)上編程時(shí)有很大的不同。首先,結(jié)構(gòu)體成員之間會(huì)有空洞,比如這樣一個(gè)結(jié)

構(gòu):

typedef struct test{
char a;
uint16 b;
}TEST

  結(jié)構(gòu)TEST在單字節(jié)對(duì)齊的平臺(tái)上占內(nèi)存三個(gè)字節(jié),而在以上所述的嵌入式平臺(tái)上有可能占三個(gè)或四個(gè)字節(jié),視成員a的存儲(chǔ)地址而定。

當(dāng)a存儲(chǔ)地址為偶數(shù)時(shí),該結(jié)構(gòu)占四個(gè)字節(jié),在a與b之間存在一個(gè)字節(jié)的空洞。對(duì)于通信雙方都是對(duì)結(jié)構(gòu)成員操作的,這種情況不會(huì)出錯(cuò),

但如果有一方是逐字節(jié)讀取內(nèi)容的(通信協(xié)議大都如此),就會(huì)錯(cuò)誤地讀到其它字節(jié)的內(nèi)容。其次,若對(duì)內(nèi)存中數(shù)據(jù)以強(qiáng)制類型轉(zhuǎn)換的方

式讀取,字節(jié)對(duì)齊的不同會(huì)引起數(shù)據(jù)讀取的錯(cuò)誤。因?yàn)榧偃缰羔樦冈诨鶖?shù)內(nèi)存地址處,我們想取得占內(nèi)存兩個(gè)字節(jié)的數(shù)據(jù)存放在uint16型

的變量中,強(qiáng)制類型轉(zhuǎn)換的結(jié)果是取得了該指針?biāo)傅刂放c前一地址處的數(shù)據(jù),并沒(méi)有按照我們的愿望取該指針?biāo)傅刂放c后一地址處的

數(shù)據(jù),這樣就導(dǎo)致了數(shù)據(jù)讀取的錯(cuò)誤。

  解決字節(jié)對(duì)齊有許多方法,比如可以在GCC的項(xiàng)目管理文件MakeFile中增加編譯選項(xiàng)--pack-struct;但這種方法只能去除結(jié)構(gòu)中的空

洞,并不能解決強(qiáng)制類型轉(zhuǎn)換引起的錯(cuò)誤。為了增強(qiáng)軟件的可移植性以及和同類其它平臺(tái)產(chǎn)品的互通性,我們?cè)谑諗?shù)據(jù)包處增加了拆包的

函數(shù),發(fā)數(shù)據(jù)包處增加了組包的函數(shù)。這兩個(gè)函數(shù)解決了字節(jié)序的問(wèn)題,也解決了字節(jié)對(duì)齊的問(wèn)題。即組包時(shí)根據(jù)參數(shù)中的格式字符串將

內(nèi)存中的不同數(shù)據(jù)類型的某段數(shù)據(jù)放在指定地址處,組成包發(fā)給下層;拆包時(shí),根據(jù)參數(shù)中的格式字符串將收到的內(nèi)存中的數(shù)據(jù)存放在不

同類型的變量或結(jié)構(gòu)成員中。在函數(shù)中針對(duì)不同的數(shù)據(jù)類型作不同的處理。

2.2.3 位 段

  由于位段的空間分配方向因硬件平臺(tái)的不同而不同,對(duì)X86平臺(tái),位段是從右向左分配的;而一些嵌入式平臺(tái),位段是從左向右分配

的。分配順序的不同導(dǎo)致了數(shù)據(jù)存取的錯(cuò)誤。解決這一問(wèn)題的一種方法是采用條件編譯的方式,針對(duì)不同的平臺(tái)定義順序不同的位段;

也可以在前面所述的兩個(gè)函數(shù)中加上對(duì)位段的處理。

2.2.4 代碼優(yōu)化

  嵌入式系統(tǒng)對(duì)應(yīng)用軟件的質(zhì)量要求更高,因而在嵌入式開(kāi)發(fā)中尤其須注意對(duì)代碼進(jìn)行優(yōu)化,盡可能地提高代碼的效率,減少代碼的大

小。雖然現(xiàn)代C和C++編譯器都提供了一定程度的代碼優(yōu)化,但大部分由編譯器執(zhí)行的優(yōu)化技術(shù)僅涉及執(zhí)行速度和代碼大小的平衡,不可能

使程序既快又小,因而必須在編寫(xiě)嵌入式軟件時(shí)采取必要的措施。 

(1)提高代碼的效率

 、賡witch-case 語(yǔ)句。在程序中經(jīng)常會(huì)使用switch-case語(yǔ)句,每一個(gè)由機(jī)器語(yǔ)言實(shí)現(xiàn)的測(cè)試和跳轉(zhuǎn)僅僅是為了決定下一步要做什么,

就浪費(fèi)了處理器時(shí)間。為了提高速度,可以把具體的情況按照它們發(fā)生的相對(duì)頻率排序。即把最可能發(fā)生的情況放在第一,最不可能發(fā)生

的情況放在最后,這樣會(huì)減少平均的代碼執(zhí)行時(shí)間。

 、 全局變量。使用全局變量比向函數(shù)傳遞參數(shù)更加有效率,這樣做去除了函數(shù)調(diào)用前參數(shù)入棧和函數(shù)完成后參數(shù)出棧的需要。當(dāng)然,

使用全局變量會(huì)對(duì)程序有一些負(fù)作用。

(2)減小代碼的大小 

  嵌入式系統(tǒng)編程應(yīng)避免使用標(biāo)準(zhǔn)庫(kù)例程,因?yàn)楹芏啻蟮膸?kù)例程設(shè)法處理所有可能的情況,所以占用了龐大的內(nèi)存空間,因而應(yīng)盡可能

地減少使用標(biāo)準(zhǔn)庫(kù)例程。

(3)避免內(nèi)存泄漏

  用戶內(nèi)存空間(堆)為RAM中全局?jǐn)?shù)據(jù)和任務(wù)堆?臻g都分配后的剩余空間,為了使程序能有足夠的內(nèi)存運(yùn)行,必須在申請(qǐng)的內(nèi)存不用

后及時(shí)地將其釋放,以確保再次申請(qǐng)時(shí)能有空間。如果程序中存在內(nèi)存泄漏(即申請(qǐng)內(nèi)存后沒(méi)有及時(shí)釋放)的情況,程序最終會(huì)因?yàn)闆](méi)有

足夠的內(nèi)存空間而無(wú)法運(yùn)行。

3 嵌入式系統(tǒng)的廣泛應(yīng)用

  嵌入式系統(tǒng)的應(yīng)用前景是非常廣泛的,人們將會(huì)無(wú)時(shí)無(wú)處不接觸到嵌入式產(chǎn)品,從家里的洗衣機(jī)、電冰箱,到作為交通工具的自行車(chē)、

小汽車(chē),到辦公室里的遠(yuǎn)程會(huì)議系統(tǒng)等等。特別是以藍(lán)牙為代表的小范圍無(wú)線接入?yún)f(xié)議的出現(xiàn),使嵌入式無(wú)線電的概念悄然興起。當(dāng)嵌入

式的無(wú)線電芯片的價(jià)格可被接受時(shí),它的應(yīng)用可能會(huì)無(wú)所不在。在家中、辦公室、公共場(chǎng)所,人們可能會(huì)使用數(shù)十片甚至更多這樣的嵌入

式無(wú)線電芯片,將一些電子信息設(shè)備甚至電氣設(shè)備構(gòu)成無(wú)線網(wǎng)絡(luò);在車(chē)上、旅途中,人們利用這樣的嵌入式無(wú)線電芯片可以實(shí)現(xiàn)遠(yuǎn)程辦公、

遠(yuǎn)程遙控,真正實(shí)現(xiàn)把網(wǎng)絡(luò)隨身攜帶。下面介紹幾種具體的應(yīng)用。 

(1)嵌入式移動(dòng)數(shù)據(jù)庫(kù)

  所謂的移動(dòng)數(shù)據(jù)庫(kù)是支持移動(dòng)計(jì)算的數(shù)據(jù)庫(kù),有兩層含義:① 用戶在移動(dòng)的過(guò)程中可以聯(lián)機(jī)訪問(wèn)數(shù)據(jù)庫(kù)資源。② 用戶可以帶

]]>
嵌入式系統(tǒng)的軟硬件協(xié)同設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1506&Page=1wangxinxin2010-11-19 10:40:18正文:

圖片點(diǎn)擊可在新窗口打開(kāi)查看

而嵌人式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)是讓軟件設(shè)計(jì)和硬件設(shè)計(jì)作為一個(gè)整體并行設(shè)計(jì),找到軟硬件的最佳結(jié)合點(diǎn),從而使系統(tǒng)高效工作。協(xié)同設(shè)計(jì)的基本思路如圖2所示。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

從圖2可以看出,軟硬件協(xié)同設(shè)計(jì)最主要的一個(gè)優(yōu)點(diǎn)就是在設(shè)計(jì)過(guò)程中,硬件和軟件設(shè)計(jì)是相互作用的,這種相互作用發(fā)生在設(shè)計(jì)過(guò)程的各個(gè)階段和各個(gè)層次。

設(shè)計(jì)過(guò)程充分體現(xiàn)了軟硬件的協(xié)同性。在軟硬件功能分配時(shí)就考慮到了現(xiàn)有的軟硬件資源,在軟硬件功能的設(shè)計(jì)和仿真評(píng)價(jià)過(guò)程中,軟件和硬件是互相支持的。這就使得軟硬件功能模塊能夠在設(shè)計(jì)開(kāi)發(fā)的早期互相結(jié)合,從而及早發(fā)現(xiàn)問(wèn)題及早解決,避免了(至少可以減少)在設(shè)計(jì)開(kāi)發(fā)后期反復(fù)修改系統(tǒng)以及由此帶來(lái)的一系列問(wèn)題,而且有利于挖掘系統(tǒng)潛能、縮小產(chǎn)品的體積、降低系統(tǒng)成本、提高系統(tǒng)整體性能。

2軟硬件協(xié)同設(shè)計(jì)的過(guò)程

總的來(lái)說(shuō),軟硬件協(xié)同設(shè)計(jì)的系統(tǒng)設(shè)計(jì)過(guò)程可以分為系統(tǒng)描述、系統(tǒng)設(shè)計(jì)、仿真驗(yàn)證與綜合實(shí)現(xiàn)4個(gè)階段。

系統(tǒng)描述是用一種或多種系統(tǒng)級(jí)描述語(yǔ)言對(duì)所要設(shè)計(jì)的嵌入式系統(tǒng)的功能和性能進(jìn)行全面的描述,建立系統(tǒng)的軟硬件模型的過(guò)程。系統(tǒng)建模可以由設(shè)計(jì)者用非正式語(yǔ)言,甚至是自然語(yǔ)言來(lái)手工完成,也可以借助EDA工具實(shí)現(xiàn)。手工完成容易導(dǎo)致系統(tǒng)描述不準(zhǔn)確,在后續(xù)過(guò)程中需要修改系統(tǒng)模型,從而使系統(tǒng)設(shè)計(jì)復(fù)雜化等問(wèn)題,而優(yōu)秀的EDA工具可以克服這些弊端。

]]>
嵌入式系統(tǒng)硬件平臺(tái)的軟件PLC實(shí)現(xiàn)方法http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1505&Page=1wangxinxin2010-11-19 10:37:21    本篇文章來(lái)源于安防知識(shí)網(wǎng)(www.asmag.com.cn)
1 嵌入式軟PLC的總體結(jié)構(gòu)
    嵌入式軟PLC與嵌入式系統(tǒng)共享一個(gè)CPU,PLC和嵌入式系統(tǒng)之間沒(méi)有多余的導(dǎo)線連接,增加了系統(tǒng)的可靠性,易于實(shí)現(xiàn)許多高級(jí)功能。PLC中的信息也能通過(guò)嵌入式系統(tǒng)的顯示屏顯示,通過(guò)嵌入式系統(tǒng)的編輯鍵可方便地對(duì)PLC進(jìn)行編輯操作。
1.1 嵌入式軟PLC的硬件結(jié)構(gòu)
    外部輸入的開(kāi)關(guān)量經(jīng)過(guò)光電隔離后連接到FPGA的I/O口,通過(guò)FPGA地址譯碼,F(xiàn)PGA通過(guò)數(shù)據(jù)地址總線與CPU相連。這樣CPU就可以通過(guò)數(shù)據(jù)地址總線獲得和設(shè)置輸入量的工作狀態(tài),硬件原理框圖如圖1所示。

1.2 嵌入式軟PLC的軟件結(jié)構(gòu)
    嵌入式軟PLC程序包括兩類:一類是編輯狀態(tài),實(shí)現(xiàn)PLC程序的輸入和編譯功能;另一類是面向生產(chǎn)過(guò)程的應(yīng)用程序。系統(tǒng)軟件結(jié)構(gòu)由4部分組成,分別是編輯模塊、編譯模塊、執(zhí)行模塊和監(jiān)控模塊。軟件PLC系統(tǒng)模塊間的數(shù)據(jù)流程如圖2所示。

2 系統(tǒng)關(guān)鍵組成部分的設(shè)計(jì)與實(shí)現(xiàn)
2.1 梯形圖編輯器
    Qt/Embedded是著名的Qt庫(kù)開(kāi)發(fā)商Trolltech推出的面向嵌入式系統(tǒng)的Qt版本。Qt/Embedded具有可移植性強(qiáng)和支持跨平臺(tái)開(kāi)發(fā)等優(yōu)點(diǎn)。本系統(tǒng)采用Qt編寫(xiě)界面,梯形圖編輯器的界面如圖3所示。

2.1.1 梯形圖的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
    梯形圖編輯具有方便、邏輯直觀的特點(diǎn),梯形圖編輯器借助于梯形圖的內(nèi)部數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)顯示、插入、刪除、代碼轉(zhuǎn)化等功能。
 原文出處:http://www.asmag.com.cn/apply/jishu_detail.aspx?aid=16882

]]>
嵌入式開(kāi)發(fā) 硬件軟件何者更重要http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1504&Page=1wangxinxin2010-11-19 10:31:32圖片點(diǎn)擊可在新窗口打開(kāi)查看

 因此,Linaro的主要任務(wù)在于各類芯片平臺(tái)上提供統(tǒng)一的軟件核心層與中介軟件,以有效解決OEM與ODM在系統(tǒng)整合上的問(wèn)題,如軟件核心層與硬件芯片的整合、適當(dāng)程序代碼的搜尋、系統(tǒng)效能等。半導(dǎo)體業(yè)者在未來(lái)的芯片設(shè)計(jì)上,也可依循Linaro所提供的架構(gòu)為基礎(chǔ),提供系統(tǒng)業(yè)者更容易的開(kāi)發(fā)環(huán)境。

  另一方面,基于Linux的多樣性,Linaro也會(huì)針對(duì)MeeGo、Android、Ubuntu等以Linux為基礎(chǔ)的平臺(tái),進(jìn)行投資與研發(fā),以進(jìn)一步強(qiáng)化各類SOC平臺(tái)與廣泛的Linux系統(tǒng)之間的整合! 

]]>
基于隱藏硬件思想設(shè)計(jì)MCF5307嵌入式系統(tǒng)硬件驅(qū)動(dòng)程序設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1503&Page=1wangxinxin2010-11-19 10:28:091 引 言
  
  嵌入式系統(tǒng)軟件人員經(jīng)常讀取系統(tǒng)外設(shè)寄存器和控制寄存器,直接控制硬件,這樣對(duì)軟件開(kāi)發(fā)者來(lái)說(shuō)是一種繁復(fù)的事,而且嵌入式微處理器內(nèi)部集成外設(shè)種類越來(lái)越多,如串口設(shè)備、時(shí)鐘/定時(shí)器設(shè)備、IIC總線等,對(duì)嵌入式編程帶來(lái)更多的困難。如果讀寫(xiě)硬件的語(yǔ)句散布在整個(gè)應(yīng)用程序中或者不同的功能模塊可能會(huì)讀寫(xiě)同一個(gè)硬件,那么當(dāng)系統(tǒng)硬件發(fā)生變動(dòng)時(shí),應(yīng)用程序就必須全盤(pán)重寫(xiě)。怎么避免這樣的情況?一個(gè)好的方法就是按照盡量隱藏硬件的原則編制設(shè)備驅(qū)動(dòng)程序。
在設(shè)計(jì)驅(qū)動(dòng)程序中盡量隱藏硬件,有幾個(gè)優(yōu)點(diǎn):

 、僖?yàn)槟K化,軟件的總體結(jié)構(gòu)更容易理解;
 、谥灰桥c某一個(gè)外設(shè)相互作用,必然是通過(guò)他的驅(qū)動(dòng)程序來(lái)起作用的,這樣查找錯(cuò)誤和故障就更容易些;
 、塾捎布淖儎(dòng)導(dǎo)致的軟件變化集中在設(shè)備驅(qū)動(dòng)程序上,這樣做有助于減少系統(tǒng)變動(dòng)時(shí)改變軟件設(shè)計(jì)工作量,盡量做到軟件復(fù)用,縮短開(kāi)發(fā)周期,這對(duì)提高產(chǎn)品競(jìng)爭(zhēng)能力有實(shí)際意義。

  2 編寫(xiě)設(shè)備驅(qū)動(dòng)程序的方法和步驟

  本文以摩托羅拉公司冷火系列(coldfire)嵌入式 微處理器MCF5307定時(shí)器為例,討論在用C++語(yǔ)言編寫(xiě)嵌入式系統(tǒng)驅(qū)動(dòng)程序時(shí),如何做到盡量隱藏硬件的方法和步驟。
 。1)覆蓋設(shè)備的存儲(chǔ)映像控制及狀態(tài)設(shè)備寄存器數(shù)據(jù)結(jié)構(gòu)
  MCF5307的寄存器C語(yǔ)言描述文件是MCF5307.h,這個(gè)文件對(duì)MCF5307的系統(tǒng)寄存器和片上外設(shè)控制和狀態(tài)寄存器以結(jié)構(gòu)或聯(lián)合的方式做了定義。在Timer.cpp添加MCF5307.h并在頭文件文件中定義MCF5307_IMM類型全局指針變量imm后就可以訪問(wèn)這些寄存器(使用timer1)。如下所示:
 。efine MBAR_ADDR   0x10000000
 。efine VBR 0x0  MCF5307_IMM
 。猧mm=(MCF5307_IMM*)MBAR_ADDR;
  在timer類構(gòu)造函數(shù)中對(duì)MCF5307定時(shí)器控制和狀態(tài)寄存器作硬件初始化,使其產(chǎn)生周期為1 ms的節(jié)拍中斷。

 。2)跟蹤目前硬件和設(shè)備驅(qū)動(dòng)狀態(tài)的一組變量
  驅(qū)動(dòng)程序開(kāi)發(fā)過(guò)程的第二步是確定變量來(lái)跟蹤硬件和設(shè)備驅(qū)動(dòng)的狀態(tài)。比如,要確定硬件是否已經(jīng)初始化過(guò)或跟蹤當(dāng)前計(jì)數(shù)器的值。
  設(shè)備的驅(qū)動(dòng)不只創(chuàng)建一個(gè)軟件設(shè)備,他們純粹是邏輯設(shè)備,在基本外圍硬件之上實(shí)現(xiàn)。容易設(shè)想從單獨(dú)鐘,正如在Windows下定時(shí)器編程一樣。系統(tǒng)的定時(shí)器應(yīng)該被設(shè)置以產(chǎn)生一個(gè)周期性的時(shí)鐘節(jié)拍(tick),比如ms。設(shè)備驅(qū)動(dòng)則保持創(chuàng)建的每個(gè)軟件時(shí)鐘的狀態(tài)信息來(lái)管理一組不同長(zhǎng)度的軟件時(shí)鐘。

 。3)一個(gè)把硬件初始化到已知狀態(tài)的例程
  確定跟蹤物理和邏輯設(shè)備的狀態(tài)的變量后,接下來(lái)是實(shí)際與設(shè)備交互和控制函數(shù)。首先從設(shè)備初始化例程開(kāi)始,把設(shè)備狀態(tài)設(shè)定到一個(gè)已知的狀態(tài)。然后就是啟動(dòng)定時(shí)器,并且在啟動(dòng)時(shí)設(shè)定類型(周期的,還是非周期的)、周期參數(shù)、刪除定時(shí)器等。

  (4)合起來(lái)為設(shè)備驅(qū)動(dòng)用戶提供API的一組例程
  設(shè)備初始化后,開(kāi)始給設(shè)備驅(qū)動(dòng)添加其他的功能。
以定時(shí)器為例,創(chuàng)建一個(gè)軟件時(shí)鐘,啟動(dòng)時(shí)鐘和管理時(shí)鐘函數(shù)等具體的模塊函數(shù)。這些函數(shù)的集合就可以為設(shè)備驅(qū)動(dòng)應(yīng)用程序提供一個(gè)統(tǒng)一的接口。

 。5)中斷服務(wù)例程
  確定外設(shè)的中斷服務(wù)例程入口地址以及安裝中斷向量。一些重要的后臺(tái)工作要由中斷服務(wù)例程來(lái)完成,合理的設(shè)置中斷可以很好的利用CPU,提高CPU的運(yùn)行效率。MCF5307的中斷是由中斷基址寄存器VBR和各個(gè)外設(shè)控制寄存器共同決定的。

  3 在MCF5307上實(shí)現(xiàn)軟件時(shí)鐘

 

 

 

 

 

  實(shí)現(xiàn)軟件定時(shí)器的關(guān)鍵就是活動(dòng)時(shí)鐘鏈表的管理,要跟蹤時(shí)鐘狀態(tài),要記錄時(shí)鐘啟動(dòng)時(shí)刻及其周期或長(zhǎng)度,用鏈表管理時(shí)鐘,把時(shí)鐘的啟動(dòng)時(shí)刻轉(zhuǎn)換為剩余節(jié)拍數(shù)count和鏈表的位置關(guān)系。如圖1所示,當(dāng)一個(gè)軟件時(shí)鐘被啟動(dòng)時(shí),初始化state,type和length,時(shí)鐘被插入活動(dòng)時(shí)鐘鏈表。在時(shí)鐘鏈表的時(shí)鐘經(jīng)過(guò)排序使得第一個(gè)到期的時(shí)鐘處于表的頂端。每一個(gè)時(shí)鐘有一個(gè)與其相關(guān)的count變量,這個(gè)值代表了所有列表前面的到期時(shí)該時(shí)鐘剩余的時(shí)鐘節(jié)拍數(shù)。在硬件產(chǎn)生的時(shí)鐘節(jié)拍中斷時(shí)——每毫秒一次——都要刷新活動(dòng)時(shí)鐘列表。

 

  圖1說(shuō)明了活動(dòng)時(shí)鐘鏈表,每一個(gè)軟件時(shí)鐘都有他的長(zhǎng)度和開(kāi)始時(shí)間,一旦他們被插入列表,就對(duì)應(yīng)count字段和排序。鏈表中可以看出第1個(gè)和第2個(gè)時(shí)鐘同時(shí)啟動(dòng)。由于第2個(gè)比第1個(gè)長(zhǎng)5 ms,因此他晚5個(gè)節(jié)拍到期。而第3個(gè)時(shí)鐘是在第1個(gè)時(shí)鐘的count=1時(shí)插入的。

 

 

 

 

  由于篇幅有限,其他的源程序簡(jiǎn)略。

  4 測(cè)試程序和運(yùn)行結(jié)果
  這段程序是在風(fēng)河公司(windriver)diab 4.3g編譯器下編譯,并在SDS調(diào)試器下做調(diào)試運(yùn)行,測(cè)試程


  將程序編譯、鏈接形成可執(zhí)行代碼,下載到目標(biāo)板上調(diào),運(yùn)行正常,實(shí)現(xiàn)了軟件定時(shí)器。就像Windows編程時(shí)設(shè)置定時(shí)器一樣,用戶可以同時(shí)啟動(dòng)若干定時(shí)器,而他們底層只是由一個(gè)硬件定時(shí)器在驅(qū)動(dòng)。
  從測(cè)試程序中可以看出,定時(shí)器編程形式上簡(jiǎn)單多了,應(yīng)用程序不直接對(duì)設(shè)備寄存器讀寫(xiě),而且這個(gè)定時(shí)器驅(qū)動(dòng)是整個(gè)程序惟一直接訪問(wèn)定時(shí)器單元的模塊。實(shí)現(xiàn)了隱藏硬件的目的。

  5 結(jié) 語(yǔ)
  本文通過(guò)一個(gè)簡(jiǎn)單的MCF5307定時(shí)器驅(qū)動(dòng)程序設(shè)計(jì),表述了隱藏硬件的思想以及用于嵌入式驅(qū)動(dòng)程序的編寫(xiě)的方法和步驟,可以推廣到其他嵌入式系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)中。這樣的驅(qū)動(dòng)程序,方便程序員為嵌入式系統(tǒng)編寫(xiě)應(yīng)用程序,同時(shí)可以為系統(tǒng)程序員提供必要的庫(kù)例程,增加軟件的可復(fù)用性,減少重復(fù)勞動(dòng)。

  參考文獻(xiàn)

 。1] MicbaelBarr.C/C++嵌入式系統(tǒng)編程[M].北京:中國(guó)電力出版社,2001.
 。2] Motorola.MCF5307 user guide,2000.        本信息來(lái)源:CAD教育網(wǎng) www.cadedu.com

]]>
嵌入式系統(tǒng)硬件抽象層的建立http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1502&Page=1wangxinxin2010-11-19 10:25:57  由于嵌入式系統(tǒng)有著體積小、功能集中、可靠性高等優(yōu)點(diǎn),已被廣泛地應(yīng)用到日常生活的各個(gè)方面,如移動(dòng)通信、工業(yè)控制、醫(yī)療器械,家用電器等。如何縮短嵌入式系統(tǒng)的開(kāi)發(fā)周期,降低開(kāi)發(fā)成本,以及提高產(chǎn)品的可靠性已成為嵌入式行業(yè)普遍關(guān)注的問(wèn)題。在嵌入式系統(tǒng)設(shè)計(jì)中,通常采用以下設(shè)計(jì)方法。

  (1)瀑布模式開(kāi)發(fā)過(guò)程

  瀑布模式開(kāi)發(fā)過(guò)程工作模式簡(jiǎn)單,任務(wù)的劃分協(xié)調(diào)及人員安排、物質(zhì)材料的分配管理都比較容易。開(kāi)發(fā)過(guò)程為從硬件到軟件的流水線式進(jìn)行。此類開(kāi)發(fā)方式有以下特點(diǎn):

  ◇ 小系統(tǒng),如利用8051控制的低速率信號(hào)采集等;
  ◇ 開(kāi)發(fā)所需人力、物力資源有限,一般1個(gè)或幾個(gè)人即可完成;
  ◇ 要求開(kāi)發(fā)人員對(duì)軟、硬件設(shè)計(jì)和制作都比較熟悉;
  ◇ 對(duì)開(kāi)發(fā)周期要求不高,此類開(kāi)發(fā)過(guò)程無(wú)疑會(huì)使用最長(zhǎng)的開(kāi)發(fā)周期;
  ◇ 在開(kāi)發(fā)過(guò)程中,任一環(huán)節(jié)的阻塞都會(huì)影響其它環(huán)節(jié)的開(kāi)發(fā)。

 。2)V模式開(kāi)發(fā)過(guò)程

  V模式開(kāi)發(fā)過(guò)程為一種并行的工作方式,任務(wù)的劃分協(xié)調(diào)及人員安排、物質(zhì)材料的分配都必須考慮不同工作內(nèi)容,

  開(kāi)發(fā)過(guò)程為硬件和軟件同時(shí)進(jìn)行,最后聯(lián)合調(diào)試。此類開(kāi)發(fā)方式有以下特點(diǎn):
  ◇ 大系統(tǒng),如利用PowerPC等處理器設(shè)計(jì)的網(wǎng)絡(luò)交換/訪問(wèn)設(shè)備;
  ◇ 開(kāi)發(fā)人力、物力資源比較豐富;
  ◇ 開(kāi)發(fā)人員分工比較明確,軟件開(kāi)發(fā)者可不需了解太多的硬件信息,而硬件開(kāi)發(fā)人員對(duì)軟件也可不做太多了解;
  ◇ 有利于縮短開(kāi)發(fā)周期;
  ◇ 在開(kāi)發(fā)過(guò)程中,軟、硬件設(shè)計(jì)獨(dú)立進(jìn)行。 硬件開(kāi)發(fā)的阻塞不會(huì)影響軟件開(kāi)發(fā)過(guò)程,同樣,軟件開(kāi)發(fā)的阻塞不會(huì)影響硬件的開(kāi)發(fā)過(guò)程。

  但在V模式開(kāi)發(fā)過(guò)程中,仍存在以下問(wèn)題:

  ◇ 設(shè)備驅(qū)動(dòng)程序的可移值性差,與硬件和操作系統(tǒng)均有密切相關(guān)性;
  ◇ 軟件測(cè)試需要等硬件完成以后才能進(jìn)行;
  ◇ 對(duì)于每個(gè)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)人員都需有軟件和硬件的知識(shí)背景;
  ◇ 在測(cè)試過(guò)程中,很難判斷錯(cuò)誤是由硬件還是由軟件造成的。

  為了克服V模式開(kāi)發(fā)過(guò)程中的上述問(wèn)題,本文將V模式開(kāi)發(fā)過(guò)程稍作改進(jìn),增加了硬件抽象層,對(duì)系統(tǒng)軟硬件起到隔離作用,從而提高系統(tǒng)軟件的可移值性及有效地利用人力資源、縮短開(kāi)發(fā)周期和提高產(chǎn)品的可靠性。

  2 基于硬件抽象層的系統(tǒng)軟件設(shè)計(jì)特性

 。1)包含硬件抽象層的系統(tǒng)結(jié)構(gòu)

  硬件抽象層完全把系統(tǒng)軟件和硬件部分隔離開(kāi)來(lái),這樣就使得系統(tǒng)的設(shè)備驅(qū)動(dòng)程序與硬件設(shè)備無(wú)關(guān),從而大大提高了系統(tǒng)的可移植性。從軟硬件測(cè)試角度來(lái)看,軟硬件的測(cè)試工作都可分別基于硬件抽象層來(lái)完成,使得軟硬件的測(cè)試工作的并行進(jìn)行成為可能。在抽象層的定義方面,需要規(guī)定統(tǒng)一的軟硬件接口標(biāo)準(zhǔn),其設(shè)計(jì)工作需要基于系統(tǒng)需求來(lái)做,代碼工作可由對(duì)硬件比較熟悉的人員來(lái)完成。抽象層一般應(yīng)包含相關(guān)硬件的初始化、數(shù)據(jù)的輸入/輸出操作、硬件設(shè)備的配置操作等功能。

 。2)包含硬件抽象層的系統(tǒng)開(kāi)發(fā)過(guò)程

  在系統(tǒng)需求分析并定義了軟硬件各自的設(shè)計(jì)要求以后,就需要花費(fèi)一定的時(shí)間來(lái)定義硬件抽象層的接口,以確保硬件設(shè)計(jì)和測(cè)試與軟件設(shè)計(jì)和測(cè)試工作能夠在相同的接口上進(jìn)行,從而有利于最終的軟硬件集成測(cè)試。

  在基于硬件抽象層的V模式開(kāi)發(fā)過(guò)程,軟硬件的設(shè)計(jì)和調(diào)試具有無(wú)關(guān)性,并可完全地并行進(jìn)行。硬件的錯(cuò)誤不會(huì)影響到系統(tǒng)軟件的調(diào)試,同樣軟件設(shè)計(jì)的錯(cuò)誤也不會(huì)影響硬件的調(diào)試工作,這樣就可大大縮短系統(tǒng)的測(cè)試周期和提高系統(tǒng)的可靠性。

 。3)硬件抽象層的特點(diǎn)

  硬件抽象層接口的定義和代碼設(shè)計(jì)應(yīng)具有以下特點(diǎn):
  ◇ 硬件抽象層具有與硬件密切相關(guān)性;
  ◇ 硬件抽象層具有與操作系統(tǒng)無(wú)關(guān)性;
  ◇ 接口定義的功能應(yīng)包含硬件或系統(tǒng)所需硬件支持的所有功能;
  ◇ 接口定義簡(jiǎn)單明了,太多接口函數(shù)會(huì)增加軟件模擬的復(fù)雜性;
  ◇ 具有可測(cè)性的接口設(shè)計(jì)有利于系統(tǒng)的軟硬件測(cè)試和集成。

  3 硬件抽象層的設(shè)計(jì)示例

  硬件抽象層接口的設(shè)計(jì)一般應(yīng)包含以下幾個(gè)步:
  ◇ 分析接口的數(shù)據(jù)傳輸特性(雙向/單向數(shù)據(jù)傳輸,字節(jié)型/數(shù)據(jù)幀型傳輸模式);
  ◇ 分析接口配置屬性;
  ◇ 定義接口所需的相關(guān)函數(shù)。

  下面給出以字符為單位進(jìn)行數(shù)據(jù)傳輸?shù)腢ART接口硬件抽象層的接口定義內(nèi)容:

  ◇ 設(shè)備初始化函數(shù)
  BOOL InitDevice(Device_Register *regs, Device_Attribute *attr)
 、 第一個(gè)參數(shù)為指向設(shè)備寄存器結(jié)構(gòu)的指針,用來(lái)索引設(shè)備的相關(guān)寄存器。
 、 第二個(gè)參數(shù)為一個(gè)設(shè)備屬性的結(jié)構(gòu),用于描述設(shè)備初始化設(shè)置的屬性(波特率、校驗(yàn)位等等)。
  ③ 函數(shù)返回一個(gè)布爾類型,用于描述初始化過(guò)程的正確性。
  ◇ 設(shè)備字符輸入
  BOOL ReadDevice(Device_Register *regs, unsigned char *c)
 、 第一個(gè)參數(shù)為指向設(shè)備寄存器結(jié)構(gòu)的指針,用來(lái)索引設(shè)備的相關(guān)寄存器。
  ② 第二個(gè)參數(shù)為指向字符的地址空間,用于保存設(shè)備輸入的字符。
 、 函數(shù)返回一個(gè)布爾類型,用于描述設(shè)備字符輸入的正確性。
  ◇ 設(shè)備字符輸出
  BOOL WriteDevice(Device_Register *regs, unsigned char c)
 、 第一個(gè)參數(shù)為指向設(shè)備寄存器結(jié)構(gòu)的指針,用來(lái)索引設(shè)備的相關(guān)寄存器。
 、 第二個(gè)參數(shù)為設(shè)備所要輸出的字符。
 、 函數(shù)返回一個(gè)布爾類型,用于描述設(shè)備字符輸出的正確性。
  ◇ 設(shè)備屬性設(shè)置
  BOOL SetDevice(Device_Register *regs, Device_Attribute *attr)
  ① 第一個(gè)參數(shù)為指向設(shè)備寄存器結(jié)構(gòu)的指針,用來(lái)索引設(shè)備的相關(guān)寄存器。
  ② 第二個(gè)參數(shù)為一個(gè)設(shè)備屬性的結(jié)構(gòu),用于描述設(shè)備初始化設(shè)置的屬性(波特率、校驗(yàn)位等等)。
 、 函數(shù)返回一個(gè)布爾類型,用于描述設(shè)備屬性設(shè)置的正確性。

  4 結(jié) 論

  以上所述的是作者在多年嵌入式系統(tǒng)開(kāi)發(fā)中所總結(jié)出的開(kāi)發(fā)流程,并在實(shí)踐應(yīng)用中起到了很好的效果。相信在一個(gè)較為復(fù)雜的嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中,很好地利用上述開(kāi)發(fā)流程,將會(huì)有利于提高系統(tǒng)的可移植性、減少產(chǎn)品的開(kāi)發(fā)和測(cè)試周期,并能很好地保證產(chǎn)品的可靠性。

]]>
可用于系統(tǒng)架構(gòu)和嵌入式軟硬件開(kāi)發(fā)的虛擬系統(tǒng)原型http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1501&Page=1wangxinxin2010-11-19 10:16:05       然而隨著嵌入式系統(tǒng)日益普及,設(shè)計(jì)危機(jī)也逐漸凸現(xiàn)。統(tǒng)計(jì)數(shù)據(jù)顯示,近40%的嵌入式系統(tǒng)開(kāi)發(fā)延遲,還有超過(guò)9%的開(kāi)發(fā)最終被取消。

       這些統(tǒng)計(jì)數(shù)據(jù)的矛頭都指向基本工程方法的失敗。在傳統(tǒng)的開(kāi)發(fā)步驟中,硬件設(shè)計(jì)要超前軟件開(kāi)發(fā),而嵌入式系統(tǒng)中軟件正日益占據(jù)關(guān)鍵地位。因而,傳統(tǒng)開(kāi)發(fā)步驟在嵌入式系統(tǒng)開(kāi)發(fā)中遭遇失敗并不讓人意外。何況一個(gè)產(chǎn)品的上市時(shí)間也越來(lái)越短(后文舉出的手機(jī)開(kāi)發(fā)的例子總開(kāi)發(fā)時(shí)間還不到一年),這又給嵌入式系統(tǒng)的開(kāi)發(fā)雪上加霜。很明顯,嵌入式設(shè)計(jì)的方法和工具需要進(jìn)行一次革命。

       也就是說(shuō),系統(tǒng)架構(gòu)、硬件實(shí)現(xiàn)和軟件實(shí)現(xiàn)各階段之間的關(guān)系需要調(diào)整,而這種需求恰好正是目前的電子系統(tǒng)級(jí)設(shè)計(jì)(ESL)中最受關(guān)注的問(wèn)題。然而,現(xiàn)有的大多數(shù)基于ESL的方法都只能提供部分解決方案。我們需要的是一套全新的設(shè)計(jì)模式,一套能夠?qū)θ到y(tǒng)建模的方法,以促進(jìn)系統(tǒng)架構(gòu)研究并實(shí)現(xiàn)軟硬件協(xié)同設(shè)計(jì),以允許設(shè)計(jì)人員從原始設(shè)計(jì)不斷改進(jìn),直到最終實(shí)現(xiàn)系統(tǒng)。

       至今為止,大多數(shù)將SoC系統(tǒng)級(jí)設(shè)計(jì)自動(dòng)化為RTL實(shí)現(xiàn)的嘗試都存在設(shè)計(jì)精確度和設(shè)計(jì)生產(chǎn)力不足的缺陷。早期那些力圖將C、C++和SystemC自動(dòng)化為硬件建模語(yǔ)言(能將順序軟件語(yǔ)義翻譯為基于狀態(tài)機(jī)的并行硬件語(yǔ)言) 的工具,不但要求開(kāi)發(fā)人員創(chuàng)建并維護(hù)功能事務(wù)級(jí)模型的多個(gè)“視角”,而且要添加定時(shí)還需要更多的“視角”。維護(hù)這些“多視角”本身就有問(wèn)題,而這些視角之間在時(shí)序和功能方面的不一致還會(huì)導(dǎo)致驗(yàn)證錯(cuò)誤。此外,最終將其轉(zhuǎn)為RTL的過(guò)程主要仍是一個(gè)手工操作的過(guò)程。

       要使SoC設(shè)計(jì)走出困境,很重要的一點(diǎn)就是讓設(shè)計(jì)師們能夠采用一種在系統(tǒng)架構(gòu)階段設(shè)計(jì)的定時(shí)精確的高性能系統(tǒng)級(jí)模型,然后隨著開(kāi)發(fā)人員從架構(gòu)階段進(jìn)入軟硬件協(xié)同開(kāi)發(fā)和驗(yàn)證階段,改進(jìn)而不是丟棄這個(gè)模型。盡管暫時(shí)還沒(méi)有一種全自動(dòng)化的工具鏈能夠?qū)崿F(xiàn)從系統(tǒng)架構(gòu)到RTL實(shí)現(xiàn)這一系列完整的設(shè)計(jì)任務(wù),但一些嵌入式設(shè)計(jì)方案供應(yīng)商已經(jīng)開(kāi)始了成功的嘗試,其中一種很有前途的技術(shù)就是虛擬系統(tǒng)原型技術(shù)。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

        圖1:每個(gè)公司一年里啟動(dòng)的項(xiàng)目提前完成,推遲完成,按時(shí)完成和取消所占的百分比(平均每個(gè)公司啟動(dòng)項(xiàng)目所占百分比)。

       虛擬系統(tǒng)原型(VSP)是一種基于軟件仿真的電子系統(tǒng)模型,其中可以包含一個(gè)或多個(gè)處理器、總線、硬件外設(shè),甚至可以包含作為整個(gè)系統(tǒng)一部分的機(jī)械或模擬子系統(tǒng)模型。但最重要的是,VSP運(yùn)行的是與真實(shí)硬件相同的經(jīng)過(guò)編譯和鏈接的目標(biāo)代碼,因而能夠準(zhǔn)確預(yù)測(cè)系統(tǒng)在實(shí)際情況下的表現(xiàn)。此外,VSP還是一種周期精確(cycle-accurate)的模型,因此,被設(shè)計(jì)的系統(tǒng)可以根據(jù)對(duì)實(shí)時(shí)性的要求建模。

       一旦模型建立,硬件和軟件開(kāi)發(fā)就可以同時(shí)啟動(dòng),這樣一來(lái),既減少了開(kāi)發(fā)所用的總資源,也縮短了開(kāi)發(fā)周期。

       傳統(tǒng)的“丟棄式”系統(tǒng)級(jí)模型在硬件和軟件實(shí)現(xiàn)階段就過(guò)時(shí)了,而VSP仍可繼續(xù)用于硬件驗(yàn)證。由于這一優(yōu)秀的模型是周期精確(cycle-accurate)的,因而RTL實(shí)現(xiàn)可以在任何時(shí)候換入 (swap in) 。而且,在RTL模型換入后, 為了進(jìn)行性能分析或者更快地運(yùn)行更大的軟件實(shí)體,還可以用原來(lái)的高級(jí)VSP模型將RTL模型換出。系統(tǒng)級(jí)測(cè)試范例是作為可執(zhí)行系統(tǒng)規(guī)范的一部分生成的,然后,隨著軟硬件開(kāi)發(fā)過(guò)程的進(jìn)展,再由上至下地生成結(jié)構(gòu)、模塊和單元測(cè)試。

       最后一點(diǎn),VSP的升級(jí)和分發(fā)也很容易。對(duì)那些在地域上分布較零散的開(kāi)發(fā)團(tuán)隊(duì)而言,通過(guò)網(wǎng)絡(luò)發(fā)送軟件模型也比運(yùn)送電路板更簡(jiǎn)單。這樣一來(lái),工程師只有在最后的集成階段才需要真實(shí)的硬件和芯片。而且,由于軟硬件開(kāi)發(fā)采用的是同一個(gè)虛擬系統(tǒng)原型,因此集成起來(lái)也更快和更容易。

       虛擬系統(tǒng)原型在無(wú)線設(shè)計(jì)中的應(yīng)用舉例

       在單芯片系統(tǒng)的開(kāi)發(fā)中,無(wú)線系統(tǒng)設(shè)計(jì)是最復(fù)雜也是競(jìng)爭(zhēng)最激烈的領(lǐng)域。越來(lái)越多領(lǐng)先的無(wú)線設(shè)計(jì)公司開(kāi)始利用虛擬系統(tǒng)原型技術(shù)提高設(shè)計(jì)生產(chǎn)力、縮短上市時(shí)間,并降低風(fēng)險(xiǎn)。以下介紹的無(wú)線設(shè)計(jì)在一塊芯片中容納了兩個(gè)處理器內(nèi)核、一個(gè)DSP、多級(jí)存儲(chǔ)器、6種復(fù)雜的多層總線結(jié)構(gòu)、一個(gè)實(shí)時(shí)操作系統(tǒng)、超過(guò)30個(gè)外設(shè),外加超過(guò)兩百萬(wàn)行代碼。這款手機(jī)的SoC具備GSM控制功能、多媒體功能、二維和三維圖形處理功能、相機(jī)接口,以及一系列諸如WiFi和USB之類的其他接口。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

圖2:利用VSP技術(shù),軟件開(kāi)發(fā)可以在硬件就緒前9個(gè)月甚至更早開(kāi)始。

       以前的項(xiàng)目結(jié)束后,這個(gè)設(shè)計(jì)小組決定必須改變傳統(tǒng)的“先硬件后軟件”的設(shè)計(jì)方法才能滿足日益縮短的上市時(shí)間需求。

       采用VSP的結(jié)果

       他們選擇了VaST Systems提供的虛擬系統(tǒng)原型方案,這不但是一個(gè)高性能的方案,而且絲毫無(wú)損設(shè)計(jì)精度。從系統(tǒng)架構(gòu)階段直到軟硬件協(xié)同開(kāi)發(fā)和驗(yàn)證階段都可以采用同一個(gè)VaST處理器模型(虛擬系統(tǒng)原型的核心)。

       根據(jù)配置的不同,VaST處理器模型在仿真單處理器時(shí),在保持原有的周期、寄存器和定時(shí)精度的同時(shí),速度在50到200MIPS之間;在仿真帶分層存儲(chǔ)器結(jié)構(gòu)和多級(jí)總線的多內(nèi)核系統(tǒng)時(shí),在保持周期精度的同時(shí)速度可達(dá)10到100MIPS。

       首先,系統(tǒng)架構(gòu)師利用VSP進(jìn)行系統(tǒng)架構(gòu)研究和分析。VSP能夠運(yùn)行基于應(yīng)用的軟件,因此設(shè)計(jì)師可以據(jù)此考慮緩存的大小、處理器的處理能力等性能問(wèn)題,同時(shí)還可以檢查出系統(tǒng)中潛在的資源共享、同步和總線帶寬問(wèn)題。此外,利用VSP,設(shè)計(jì)小組還可以在真實(shí)系統(tǒng)的環(huán)境下檢查第三方IP。

       有了VSP,軟件開(kāi)發(fā)人員可以提前幾個(gè)月開(kāi)始編寫(xiě)系統(tǒng)中的關(guān)鍵函數(shù)(例如系統(tǒng)初始化程序、硬件抽象層、RTOS/OS及其相關(guān)的設(shè)備驅(qū)動(dòng)程序、中間件軟件,甚至是嵌入式應(yīng)用的代碼),然后再進(jìn)入傳統(tǒng)的硬件、軟件開(kāi)發(fā)流程。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

圖3:傳統(tǒng)的手機(jī)設(shè)計(jì)流程和利用虛擬系統(tǒng)原型的手機(jī)設(shè)計(jì)流程的比較

        在使用VSP之后,這家公司發(fā)現(xiàn)他們的競(jìng)爭(zhēng)優(yōu)勢(shì)得到了很大提升,于是決定繼續(xù)將VSP技術(shù)作為其首選設(shè)計(jì)方法。

        本文小結(jié)

        嵌入式系統(tǒng)不論從絕對(duì)數(shù)量還是從復(fù)雜度來(lái)說(shuō)都在飛速地發(fā)展,而且在嵌入式系統(tǒng)中,通過(guò)軟件實(shí)現(xiàn)的功能越來(lái)越多。

        傳統(tǒng)的先硬件后軟件的設(shè)計(jì)方法對(duì)這種復(fù)雜的嵌入式系統(tǒng)開(kāi)發(fā)已不再適用。因?yàn)椴坏珡馁|(zhì)量還是從生產(chǎn)力的角度說(shuō),軟件和硬件都必須同時(shí)開(kāi)發(fā)和驗(yàn)證。

        人們?cè)缙谒鞯挠密浖䜩?lái)建模硬件系統(tǒng)的嘗試存在很多問(wèn)題,包括要求設(shè)計(jì)師創(chuàng)建并維護(hù)模型的多個(gè)“角度”。要解決這些問(wèn)題,硬件系統(tǒng)的軟件模型必需同時(shí)具備快速和準(zhǔn)確兩個(gè)特點(diǎn)。具備了這兩個(gè)特點(diǎn)的模型就有可能既適用于系統(tǒng)架構(gòu)階段,又能成為出色的軟硬件協(xié)同開(kāi)發(fā)參考模型。

        VaST Systems提供的技術(shù)和方法能夠在不損失速度和精度的前提下提供快速準(zhǔn)確的虛擬處理器模型(嵌入式系統(tǒng)的核心)。已經(jīng)有設(shè)計(jì)團(tuán)隊(duì)采用了我們的系統(tǒng)原型,根據(jù)配置的不同,該模型在單處理器內(nèi)核系統(tǒng)中的仿真速度可達(dá)50到 200 MIPS,在帶分層存儲(chǔ)器結(jié)構(gòu)和多級(jí)總線的多內(nèi)核系統(tǒng)中可達(dá)10到 100 MIPS。

      一家領(lǐng)先的手機(jī)嵌入式系統(tǒng)供應(yīng)商采用了虛擬系統(tǒng)原型 技術(shù),并在硬件就緒之前9個(gè)月就開(kāi)始了軟件開(kāi)發(fā)。用他們的話說(shuō),采用虛擬系統(tǒng)原型 技術(shù)可謂“用更少的成本和更短的開(kāi)發(fā)時(shí)間設(shè)計(jì)出更好的產(chǎn)品”。

]]>
嵌入式開(kāi)發(fā)智能手機(jī)的硬件體系結(jié)構(gòu)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1500&Page=1wangxinxin2010-11-19 10:05:36        而對(duì)于移動(dòng)終端,基本上可以分成兩種:一種是傳統(tǒng)手機(jī)(feature phone);另一種是智能手機(jī)(smart phone)。智能手機(jī)具有傳統(tǒng)手機(jī)的基本功能,并有以下特點(diǎn):開(kāi)放的操作系統(tǒng)、硬件和軟件的可擴(kuò)充性和支持第三方的二次開(kāi)發(fā)。相對(duì)于傳統(tǒng)手機(jī),智能手機(jī)以其強(qiáng)大的功能和便捷的操作等特點(diǎn),越來(lái)越得到人們的青睞,將逐漸成為市場(chǎng)的一種潮流。

  然而,作為一種便攜式和移動(dòng)性的終端,完全依靠電池來(lái)供電,隨著智能手機(jī)的功能越來(lái)越強(qiáng)大,其功率損耗也越來(lái)越大。因此,必須提高智能手機(jī)的使用時(shí)間和待機(jī)時(shí)間。對(duì)于這個(gè)問(wèn)題,有兩種解決方案:一種是配備更大容量的手機(jī)電池;另一種是改進(jìn)系統(tǒng)設(shè)計(jì),采用先進(jìn)技術(shù),降低手機(jī)的功率損耗。

  現(xiàn)階段,手機(jī)配備的電池以鋰離子電池為主,雖然鋰離子電池的能量密度比以往提升了近30%,但是仍不能滿足智能手機(jī)發(fā)展需求。就目前使用的鋰離子電池材料而言,能量密度只有20%左右的提升空間。而另一種被業(yè)界普遍看做是未來(lái)手機(jī)電池發(fā)展趨勢(shì)的燃料電池,能使智能手機(jī)的通話時(shí)間超過(guò)13 h,待機(jī)時(shí)間長(zhǎng)達(dá)1個(gè)月,但是這種電池技術(shù)仍不成熟,離商用還有一段時(shí)間[1]。增大手機(jī)電池容量總的趨勢(shì)上將會(huì)增加整機(jī)的成本。

  因此,從智能手機(jī)的總體設(shè)計(jì)入手,應(yīng)用先進(jìn)的技術(shù)和器件,進(jìn)行降低功率損耗的方案設(shè)計(jì),從而盡可能延長(zhǎng)智能手機(jī)的使用時(shí)間和待機(jī)時(shí)間。事實(shí)上,低功耗設(shè)計(jì)已經(jīng)成為智能手機(jī)設(shè)計(jì)中一個(gè)越來(lái)越迫切的問(wèn)題。

        1 智能手機(jī)的硬件系統(tǒng)架構(gòu)

  本文討論的智能手機(jī)的硬件體系結(jié)構(gòu)是使用雙cpu架構(gòu),如圖1所示。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

        主處理器運(yùn)行開(kāi)放式操作系統(tǒng),負(fù)責(zé)整個(gè)系統(tǒng)的控制。從處理器為無(wú)線modem部分的dbb(數(shù)字基帶芯片),主要完成語(yǔ)音信號(hào)的a/d轉(zhuǎn)換、d/a轉(zhuǎn)換、數(shù)字語(yǔ)音信號(hào)的編解碼、信道編解碼和無(wú)線modem部分的時(shí)序控制。主從處理器之間通過(guò)串口進(jìn)行通信。主處理器采用xxx公司的cpu芯片,它采用cmos工藝,擁有arm926ej-s內(nèi)核,采用arm公司的amba(先進(jìn)的微控制器總線體系結(jié)構(gòu)),內(nèi)部含有16 kb的指令cache、16 kb的數(shù)據(jù)cache和mmu(存儲(chǔ)器管理單元)。為了實(shí)現(xiàn)實(shí)時(shí)的視頻會(huì)議功能,攜帶了一個(gè)優(yōu)化的mpeg4硬件編解碼器。能對(duì)大運(yùn)算量的mpeg4編解碼和語(yǔ)音壓縮解壓縮進(jìn)行硬件處理,從而能緩解arm內(nèi)核的運(yùn)算壓力。主處理器上含有l(wèi)cd(液晶顯示器)控制器、攝像機(jī)控制器、sdram和srom控制器、很多通用的gpio口、sd卡接口等。這些使它能很出色地應(yīng)用于智能手機(jī)的設(shè)計(jì)中。

  在智能手機(jī)的硬件架構(gòu)中,無(wú)線modem部分只要再加一定的外圍電路,如音頻芯片、lcd、攝像機(jī)控制器、傳聲器、揚(yáng)聲器、功率放大器、天線等,就是一個(gè)完整的普通手機(jī)(傳統(tǒng)手機(jī))的硬件電路。模擬基帶(abb)語(yǔ)音信號(hào)引腳和音頻編解碼器芯片進(jìn)行通信,構(gòu)成通話過(guò)程中的語(yǔ)音通道。

  從這個(gè)硬件電路的系統(tǒng)架構(gòu)可以看出,功耗最大的部分包括主處理器、無(wú)線modem、lcd和鍵盤(pán)的背光燈、音頻編解碼器和功率放大器。因此,在設(shè)計(jì)中,如何降低它們的功耗,是一個(gè)很重要的問(wèn)題。

  2 低功耗設(shè)計(jì)

 

2.1 降低cpu部分的供電電壓和頻率

  在數(shù)字集成電路設(shè)計(jì)中,cmos電路的靜態(tài)功耗很低,與其動(dòng)態(tài)功耗相比基本可以忽略不計(jì),故暫不考慮。其動(dòng)態(tài)功耗計(jì)算公式為:

pd="ctv2f"    (1)

  式中:pd為cmos芯片的動(dòng)態(tài)功耗;ct為cmos芯片的負(fù)載電容;v為cmos芯片的工作電壓;f為cmos芯片的工作頻率。

  由式(1)可知,cmos電路中的功率消耗與電路的開(kāi)關(guān)頻率呈線性關(guān)系,與供電電壓呈二次平方關(guān)系。對(duì)于cpu來(lái)說(shuō),vcore電壓越高,時(shí)鐘頻率越快,則功率消耗越大,所以,在能夠正常滿足系統(tǒng)性能的前提下,盡可能選擇低電壓工作的cpu。對(duì)于已經(jīng)選定的cpu來(lái)說(shuō),降低供電電壓和工作頻率,能夠在總體功耗上取得較好的效果。

  對(duì)于主cpu來(lái)說(shuō),內(nèi)核供電電壓為1.3 v,已經(jīng)很小,而且其全速運(yùn)行時(shí)的主頻可以完全根據(jù)需要進(jìn)行設(shè)置,其內(nèi)部所需的其他各種頻率都是通過(guò)主頻分頻產(chǎn)生。主cpu主頻fcpu計(jì)算公式如下:

  在coms芯片上,為了防止靜電造成損壞,不用的引腳不能懸空,一般接下拉電阻來(lái)降低輸入阻抗,提供泄荷通路。需要加上拉電阻來(lái)提高輸出電平,從而提高芯片輸入信號(hào)的噪聲容限來(lái)增強(qiáng)抗干擾能力。但是在選擇上拉電阻時(shí),
必須要考慮以下幾點(diǎn):

  a)從節(jié)約功耗及芯片的倒灌電流能力上考慮,上拉電阻應(yīng)足夠大,以減小電流;

  b)從確保足夠的驅(qū)動(dòng)電流考慮,上拉電阻應(yīng)足夠小,以增大電流;

  c)在高速電路中,過(guò)大的上拉電阻會(huì)使信號(hào)邊沿變得平緩,信號(hào)完整性會(huì)變差。

  因此,在考慮能夠正常驅(qū)動(dòng)后級(jí)的情況下(即考慮芯片的vih或vil),盡可能選取更大的阻值,以節(jié)省系統(tǒng)的功耗。對(duì)于下拉電阻,情況類似。

  2.3.2 對(duì)懸空引腳的處理

  對(duì)于系統(tǒng)中cmos器件的懸空引腳,必須給予重視。因?yàn)閏mos懸空的輸入端的輸入阻抗極高,很可能感應(yīng)一些電荷導(dǎo)致器件被高壓擊穿,而且還會(huì)導(dǎo)致輸入端信號(hào)電平隨機(jī)變化,導(dǎo)致cpu在休眠時(shí)不斷地被喚醒,從而無(wú)法進(jìn)入睡眠狀態(tài)或其他莫名其妙的故障。所以正確的方法是,根據(jù)引腳的初始狀態(tài),將未使用的輸入端接到相應(yīng)的供電電壓來(lái)保持高電平,或通過(guò)接地來(lái)保持低電平。

  2.3.3 緩沖器的選擇

  緩沖器有很多功能,如電平轉(zhuǎn)換、增加驅(qū)動(dòng)能力、數(shù)據(jù)傳輸?shù)姆较蚩刂频,?dāng)僅僅基于驅(qū)動(dòng)能力的考慮增加緩沖器時(shí),必須慎重考慮,因驅(qū)動(dòng)電流過(guò)大會(huì)導(dǎo)致更多的能量被浪費(fèi)掉。所以應(yīng)仔細(xì)檢查芯片的最大輸出電流ioh和iol是否足夠驅(qū)動(dòng)下級(jí)芯片,當(dāng)可以通過(guò)選取合適的前后級(jí)芯片時(shí)應(yīng)盡量避免使用緩沖器。

  2.4 電源供給電路

  由于使用雙cpu架構(gòu),外設(shè)很多,需要很多種電源。僅以主cpu來(lái)說(shuō),就需要1.3v、2.4v和2.8v電壓,因此需要很多電壓變化單元。通常,有以下幾種電壓變換方式:線性調(diào)節(jié)器;dc/dc;LDO(低漏失調(diào)節(jié)器)。其中l(wèi)do本質(zhì)上是一種線性穩(wěn)壓器,主要用于壓差較小的場(chǎng)合,所以將其合并為線性穩(wěn)壓器。

  線性穩(wěn)壓器的特點(diǎn)是電路結(jié)構(gòu)簡(jiǎn)單,所需元件數(shù)量少,輸入和輸出壓差可以很大,但其致命弱點(diǎn)是效率低、功耗高,其效率η完全取決于輸出電壓大小。

]]>
基于EP9312的銀稅類嵌入式系統(tǒng)硬件設(shè)計(jì)方案http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1499&Page=1wangxinxin2010-11-19 10:04:331 嵌入式系統(tǒng)的概念與特點(diǎn)

  嵌入式系統(tǒng)結(jié)合微處理器或微控制器的系統(tǒng)電路與其專屬軟件,達(dá)到系統(tǒng)操作效率的最高比。這里把嵌入式系統(tǒng)定義為一個(gè)體積較小的計(jì)算機(jī)系統(tǒng)(與PC機(jī)相比),由于其體積較小,因此軟硬件結(jié)構(gòu)和應(yīng)用范圍與PC機(jī)相比有較大的不同。其特性可歸納為下列四項(xiàng):

  (1)通常執(zhí)行特定功能;

  (2)以微電腦與外圍構(gòu)成核心;

  (3)嚴(yán)格的時(shí)序與穩(wěn)定性要求;

  (4)全自動(dòng)操作循環(huán)。

  嵌入式系統(tǒng)具有目的性或針對(duì)性,其開(kāi)發(fā)是圍繞著產(chǎn)品和產(chǎn)品的特定功能來(lái)進(jìn)行的。它必須最大限度地在硬件和軟件上“量身定做”以提高效率。本文設(shè)計(jì)的嵌入式系統(tǒng)主要用于金融和稅務(wù)類產(chǎn)品。

  2 總體設(shè)計(jì)

  2.1 CPU的選擇

  本文采用的是Cirrus Logic公司的嵌入式處理器EP9312

  EP9312是一款A(yù)RM9系列的處理器,ARM9系列是高性能和低功耗特性方面最佳的硬宏單元。它具有五級(jí)流水線,并提供1.1 MI/s/MHz的哈佛結(jié)構(gòu)。而其前代產(chǎn)品ARM7系列處理器則具有嵌入式ICE-RT邏輯,功耗非常低,并提供0.9MI/s/MHz的三級(jí)流水線和馮·諾依曼結(jié)構(gòu)。因?yàn)楸鞠到y(tǒng)主要用于開(kāi)發(fā)先進(jìn)的計(jì)算機(jī)終端、機(jī)頂盒、高端打印機(jī)等產(chǎn)品,所以需要較快的運(yùn)算速度,而ARM7主要用于對(duì)價(jià)位和功耗敏感的消費(fèi)類產(chǎn)品,并且其運(yùn)算速度相對(duì)較慢,所以本設(shè)計(jì)系統(tǒng)選擇ARM9系列。在ARM9系列CPU中還有EP9307和EP9315。EP9307與EP9312的功能構(gòu)造基本相同,只少了1個(gè)IDE接口,但多了圖形加速的功能。由于金融稅務(wù)類產(chǎn)品大多需要較多的GPIO,而與EP9307相比,EP9312可以很容易地設(shè)計(jì)出較多的GPIO。EP9315在EP9312擁有的功能上再增加了PCMCIA接口和圖形加速功能,但這并不是金融稅務(wù)類產(chǎn)品所必需的功能。綜合考慮之后,本系統(tǒng)選擇了EP9312。

  2.2 技術(shù)指標(biāo)

  經(jīng)過(guò)系統(tǒng)調(diào)研并基于產(chǎn)品成本考慮,嵌入式系統(tǒng)的技術(shù)指標(biāo)如下所述:

  • Cirrus Logic公司的EP9312作為主處理器;
  • 32MB Flash使用NOR Flash;
  • 64 MB SDRAM;
  • 顯示格式:西文:24x12點(diǎn)陣,中文:24x24點(diǎn)陣,26行,80列。或者西文:16x8點(diǎn)陣,中文:16x16點(diǎn)陣,26行,80列;
  • 800x600x16bpp、1024x768x16bpp多種TFT顯示模式,支持單掃描或雙掃描;
  • 1個(gè)并口;
  • 5個(gè)串口;
  • 2個(gè)PS/2端口;
  • 1個(gè)1/10/100 Mb/s的以太網(wǎng)接口。支持TCP/IP協(xié)議;
  • 1個(gè)USB Host和1個(gè)USB Slave接口。

  2.3 系統(tǒng)組成

  EP9312已經(jīng)集成了嵌入式系統(tǒng)所需的許多功能,為了使本設(shè)計(jì)滿足金融稅務(wù)類產(chǎn)品的要求,還增加了如下硬件:SuperI/0器件(包含2個(gè)UART、1個(gè)并口、2個(gè)PS/2接口控制器)、網(wǎng)絡(luò)PHY接口器件、接口電平轉(zhuǎn)換器、Flash、SDRAM等。PCB板采用4層板,表層為信號(hào)層,其中的電源線路層和地線層深埋在主板的內(nèi)層,不易受到電源雜波的干擾,尤其是高頻電路,可以獲得較好的抗干擾能力。系統(tǒng)的基本結(jié)構(gòu)如圖l所示。

系統(tǒng)的基本結(jié)構(gòu)

  3 模塊功能描述

  3.1 CPU

  EP9312的內(nèi)核是ARM920T,其主頻為200MHz,100 MHz內(nèi)部總線。有16 KB的指令Cache和16 KB的數(shù)據(jù)Cache,內(nèi)部集成了很多功能模塊,其中主要包括:LCD控制器、3個(gè)USB Host控制器、3個(gè)串口控制器、Ethernet MAC、EIDE、AC’97接口等。EP9312內(nèi)含MMU,支持TCP/IP協(xié)議,也為開(kāi)發(fā)各種字符圖形功能提供了快捷的方法。本設(shè)計(jì)充分利用了這些內(nèi)部集成的功能,減少了外圍元件。

  3.2 RESET模塊

  系統(tǒng)的RESET模塊為系統(tǒng)提供啟動(dòng)及復(fù)位信號(hào),是系統(tǒng)運(yùn)行的開(kāi)端。

  本系統(tǒng)采用MAX708CSA作為復(fù)位器件,設(shè)計(jì)成用戶重啟的按鈕控制。發(fā)出RESET信號(hào)送給CPU的RSTOn引腳、Flash模塊、JATG模塊等。另采用一片MAX708CSA作為系統(tǒng)上電的按鈕控制。發(fā)出POR信號(hào)送給CPU的PRSTn引腳,如圖2所示。

RESET結(jié)構(gòu)圖

  3.3 系統(tǒng)時(shí)鐘模塊

  系統(tǒng)時(shí)鐘模塊的作用是產(chǎn)生20個(gè)獨(dú)立的時(shí)鐘頻率來(lái)滿足EP9312不同獨(dú)立邏輯部分的要求,所有這些時(shí)鐘頻率都來(lái)源于外部的一個(gè)低頻晶體振蕩器。這樣處理器速率、總線速率、視頻速率就可以不同而且互不影響。

  EP9312提供兩個(gè)接口接外部晶體振蕩器,其頻率分別為32 kHz(實(shí)時(shí)時(shí)鐘)和14.7456 MHz。

  為了獲得足夠高的時(shí)鐘頻率,EP9312同時(shí)提供兩個(gè)PLL,將32 kHz和14.7456MHz頻率提升到足夠高(14.7456 MHz,最大頻率可為400 MHz)。 <!-- 2008-3-1 12:52:37-->

]]>
基于嵌入式系統(tǒng)的網(wǎng)絡(luò)硬件防火墻的實(shí)現(xiàn)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1498&Page=1wangxinxin2010-11-19 10:03:49  3.1  底層軟件的實(shí)現(xiàn)

  這部分軟件是網(wǎng)絡(luò)硬件防火墻實(shí)現(xiàn)的關(guān)鍵,它主要完成四個(gè)方面的工作,即對(duì)網(wǎng)絡(luò)封包的過(guò)濾,日志的記錄并發(fā)送,對(duì)用戶的報(bào)警以及跟PC機(jī)的接口。在本系統(tǒng)中我們采用實(shí)時(shí)操作系統(tǒng)UCOS,配合自己編寫(xiě)的TCP/IP協(xié)議棧來(lái)實(shí)現(xiàn)對(duì)各個(gè)網(wǎng)絡(luò)層次封包的過(guò)濾。

  3.1.1   UC/OSII在ARM7下的移植

  UCOSII是一個(gè)完整、可移植、可固化及可剪裁的占先式實(shí)時(shí)多任務(wù)內(nèi)核。它用ANSI C編寫(xiě),包含一小部分匯編代碼,使之可以供不同架構(gòu)的微處理器使用。移植該實(shí)時(shí)操作系統(tǒng)是實(shí)現(xiàn)底層軟件的第一步。移植操作系統(tǒng)其實(shí)是一件不簡(jiǎn)單的事情,它必須要求開(kāi)發(fā)人員對(duì)目標(biāo)硬件平臺(tái)有很深的了解;對(duì)UCOS的原理有相當(dāng)?shù)牧私;?duì)所使用的編譯器有較深入的了解。只有具備以上三點(diǎn),才能成功移植該實(shí)時(shí)操作系統(tǒng)。要移植UCOS,只要編寫(xiě)三個(gè)文件即可,它們分別是:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。下面就簡(jiǎn)單介紹該移植的實(shí)現(xiàn)過(guò)程。

  第一個(gè)是編寫(xiě)OS_CPU.H。在該文件中主要完成以下幾個(gè)方面的工作。首先是幾個(gè)數(shù)據(jù)類型的定義,如INT8U、INT16U、INT16S等,之所以這樣做是因?yàn)锳NSI C中并沒(méi)有明確定義short、int等數(shù)據(jù)類型的實(shí)際長(zhǎng)度,它與處理器的類型有關(guān),隱含著不可移植性。代之以移植性強(qiáng)的INT8U、INT16U等數(shù)據(jù)類型,即直觀又可移植。其次就是完成兩個(gè)中斷處理宏的定義,一個(gè)是關(guān)中斷宏OS_ENTER_CRITICAL( ),另一個(gè)就是開(kāi)中斷宏OS_EXIT_CRITICAL( )。考慮到不是所有版本的C語(yǔ)言都支持C語(yǔ)言級(jí)的開(kāi)關(guān)中斷,所以編寫(xiě)此宏來(lái)實(shí)現(xiàn)C語(yǔ)言級(jí)的開(kāi)關(guān)中斷。最后就是定義棧生長(zhǎng)方向和棧的寬度,它們分別用變量OS_STK_GROWTH和OS_STK。

  第二個(gè)是編寫(xiě)OS_CPU_C.C。在該文件中主要完成函數(shù)OSTaskStkInit( )的編寫(xiě),該函數(shù)主要完成任務(wù)堆棧的的初始化工作,如初始化各個(gè)寄存器的狀態(tài),以及用戶添加的一些任務(wù)變量等。

  第三個(gè)是編寫(xiě)OS_CPU_A.ASM。該文件的是移植的關(guān)鍵所在,在本文件中必須完成四個(gè)函數(shù)的編寫(xiě)工作,它們分別為OSIntCtxSw( ),OSCtxSw( ), OSStartHighRdy( )和OSTickISR( )。其中前兩個(gè)函數(shù)是重中之重,它們必須用匯編語(yǔ)言編寫(xiě),主要完成任務(wù)環(huán)境的切換工作。

<!--ecms.*-->

  在ARM7硬件平臺(tái)下移植UCOSII要注意幾個(gè)問(wèn)題,首先是在移植系統(tǒng)函數(shù)或者系統(tǒng)宏時(shí)要盡量的調(diào)用軟件中斷,這樣有助于簡(jiǎn)化移植工作;其次在初始化任務(wù)堆棧時(shí),可以添加任務(wù)變量OSEnterSum這個(gè)變量來(lái)監(jiān)視中斷開(kāi)關(guān)次數(shù),這是關(guān)于移植的一個(gè)技巧;最后要注意為了方便編寫(xiě)中斷服務(wù)程序,在移植時(shí)還要提供相應(yīng)的匯編宏來(lái)簡(jiǎn)化用戶層代碼的編寫(xiě)。

  3.1.2 TCP/IP協(xié)議棧在UCOSII下的實(shí)現(xiàn)

  TCP/IP協(xié)議分為四層,分別為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層,物理層。本系統(tǒng)中物理層主要包括8019的驅(qū)動(dòng)程序,網(wǎng)絡(luò)層包括IP協(xié)議和ARP協(xié)議,傳輸層主要包括TCP協(xié)議和UDP協(xié)議,應(yīng)用層主要包括FTP、HTTP、SNMP和一些用戶應(yīng)用程序。由于該協(xié)議實(shí)現(xiàn)很復(fù)雜,這也是本系統(tǒng)實(shí)現(xiàn)的難點(diǎn),下面給出該協(xié)議棧實(shí)現(xiàn)的函數(shù)框圖:<!--工控自動(dòng)化,autooo.net-->


基于嵌入式系統(tǒng)的網(wǎng)絡(luò)硬件防火墻的實(shí)現(xiàn)]]>
基于 WINDOWS CE的嵌入式監(jiān)控工作站的快速搭建http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1497&Page=1wangxinxin2010-11-19 10:02:55

1 引言


伴隨著21世紀(jì)的曙光,計(jì)算機(jī)邁入了其另一個(gè)充滿機(jī)遇的階段—后PC時(shí)代。不知不覺(jué)中,市場(chǎng)上越來(lái)越多的消費(fèi)者開(kāi)始接受嵌入式系統(tǒng)的數(shù)字化產(chǎn)品,如:像手機(jī)、PDA、車(chē)載GPS系統(tǒng)、數(shù)控機(jī)床、網(wǎng)絡(luò)冰箱等。它們功耗低,功能強(qiáng)。而反觀在我們現(xiàn)今的現(xiàn)場(chǎng)監(jiān)控設(shè)備或者是傳統(tǒng)的單片機(jī),它們功能薄弱,開(kāi)發(fā)難度大,或者是工控機(jī),他們與PC類似,體積龐大,價(jià)格昂貴。這些與消費(fèi)市場(chǎng)上的功能強(qiáng)大的嵌入式系統(tǒng)的發(fā)展是不相稱的,因此本文提出了一種搭建嵌入式監(jiān)控工作站的快速方法。

2 嵌入式系統(tǒng)結(jié)構(gòu)


嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及應(yīng)用程序四個(gè)部分組成。下面我們依次介紹:
2.1 嵌入式硬件
近些年來(lái),隨著微電子技術(shù)和信號(hào)處理技術(shù)的發(fā)展[1>,出現(xiàn)了許多性能優(yōu)良的嵌入式硬件,例如:
* 全美達(dá)(Transmeta)公司Crusoe處理器
Crusoe Special Embedded(特別嵌入,SE)處理器是Transmeta現(xiàn)有Crusoe 5500和5800微處理器的一種版本,它經(jīng)受了24小時(shí)的高溫老化(burn-in)測(cè)試過(guò)程,可以在100℃的溫度下工作10年。Transmeta保證五年的供貨和支持。該處理器小體積和低功耗的特點(diǎn)使其頗具優(yōu)勢(shì)。其標(biāo)準(zhǔn)的667MHz CPU消耗功率為6.1瓦,低功耗版本消耗5.1瓦。是嵌入式微處理器的理想選擇。
* National semiconditong的geode系列g(shù)x1,gx2
尤其是最新的gx2,與其協(xié)同芯片Geode CS5535搭配,便能為資訊家電產(chǎn)品提供完整的解方案,其功能特色包括:嵌入式SDRAM 雙倍資料傳輸率(DDR)記憶體控制器、延伸圖像處理支援、4個(gè)(USB)以及一嵌式IDE控制器。Geode GX2是目前專為資訊家電所的處理器中耗電量最低的產(chǎn)品,其耗電量只有業(yè)界目前其他X86架構(gòu)同級(jí)處理器的一半。Geode GX2能大幅降低功率等級(jí)與耗電量,主要是得利于美國(guó)國(guó)家半導(dǎo)體革命性的GeodeLink?系統(tǒng)架構(gòu)、分段式硬件功率周期與降壓處理。Geode GX2處理器加上協(xié)同芯片后的標(biāo)準(zhǔn)耗電量低于2瓦特,而在串流媒體的應(yīng)用上,即使加上協(xié)同晶片,整體耗電量也只需要3W。
* Via公司的eden處理器
EDEN的全稱是嵌入式系統(tǒng)平臺(tái)(embeded system p.latform),via的eden平臺(tái)包括了低功耗、高性能的第六代處理器核心,高整合度的北橋芯片以及vt8231南橋芯片。基本的eden平臺(tái)已內(nèi)嵌AGP 2x/4x的3d繪圖加速核心,與輸出入控制,網(wǎng)絡(luò)支持及多媒體音效功能,而客戶還可根據(jù)市場(chǎng)需求,彈性的選擇外圍芯片產(chǎn)品,進(jìn)一步增強(qiáng)usb2.0,高速網(wǎng)絡(luò)連接等應(yīng)用功能,其平臺(tái)耗電量為6瓦無(wú)需風(fēng)扇,有完整的操作系統(tǒng)支持。
2.2 嵌入式硬件外圍擴(kuò)展結(jié)構(gòu)
現(xiàn)今的嵌入式體系結(jié)構(gòu)主要以pc-104總線結(jié)構(gòu)居多。這是一種十分緊湊(90x90mm)、自棧式、模塊化的結(jié)構(gòu)。這種總線結(jié)構(gòu)在硬體和軟體上,與標(biāo)準(zhǔn)臺(tái)式機(jī)pc(pc/at)體系完全兼容,可以利用豐富的臺(tái)式機(jī)軟件資源,這包括操作系統(tǒng)、驅(qū)動(dòng)程序、功能庫(kù)和開(kāi)發(fā)工具,從而將大大降低開(kāi)發(fā)成本,減少風(fēng)險(xiǎn)及縮短開(kāi)發(fā)周期。
2.3 嵌入式操作系統(tǒng)
現(xiàn)今嵌入式操作系統(tǒng)有許多,真正有影響的有Vxwork,Linux,Win CE。Vxwork功能強(qiáng)大,但其使用費(fèi)用實(shí)在是太高,且開(kāi)發(fā)環(huán)境復(fù)雜。而Linux雖然是免費(fèi)的,但市場(chǎng)出現(xiàn)的Linux版本實(shí)在太多,無(wú)法主推一個(gè)比較完善,標(biāo)準(zhǔn)的Linux解決方案,缺乏強(qiáng)有力的商業(yè)公司的推動(dòng),無(wú)法提供長(zhǎng)期的服務(wù)保證和獲得廣大硬件廠商的支持。而由微軟(Microsoft)推出的嵌入式操作系統(tǒng)Win CE4.2,在現(xiàn)今的嵌入式系統(tǒng)大戰(zhàn)中越來(lái)越突出。其主要特點(diǎn)如下[2>:
* 功能界面美觀 Windows窗口,用戶熟悉,方便易用;
* 改進(jìn)的實(shí)時(shí)操作系統(tǒng)內(nèi)核 最小配置可小至200KB,可以滿足工業(yè)設(shè)備實(shí)時(shí)性的要求;
* 編程方便 與Windows API的良好銜接,使Windows 編程人員可以很快進(jìn)入CE編程,降低開(kāi)發(fā)成本、縮短投放市場(chǎng)時(shí)間;
* NET Compact Framework 實(shí)現(xiàn)硬件與操作系統(tǒng)無(wú)關(guān)性;
* 集成ipv6 提供無(wú)限、低廉但先進(jìn)的網(wǎng)路和應(yīng)用系統(tǒng);
* 開(kāi)放源代碼 2003年4月9日,MS公司公開(kāi)Windows CE操作系統(tǒng)軟件部分源代碼,以反擊免費(fèi)軟件Linux;
* 最后一點(diǎn),微軟公司強(qiáng)大的技術(shù)創(chuàng)新能力和市場(chǎng)開(kāi)拓能力。提供長(zhǎng)期的服務(wù)保證和技術(shù)支持能力
2.4 應(yīng)用程序
應(yīng)用程序的開(kāi)發(fā)我們選用北京昆侖通態(tài)自動(dòng)化軟件科技有限公司MCGS嵌入版組態(tài)軟件。MCGS嵌入版組態(tài)軟件是針對(duì)Windows CE實(shí)時(shí)多任務(wù)操作系統(tǒng)的組態(tài)軟件。用戶只需要通過(guò)簡(jiǎn)單的組態(tài)就可構(gòu)造自己的應(yīng)用系統(tǒng),從而將用戶從繁瑣的編程中解脫出來(lái),使用戶在使用嵌入式系統(tǒng)時(shí)更加得心應(yīng)手。MCGS嵌入式體系結(jié)構(gòu)分為組態(tài)環(huán)境和運(yùn)行環(huán)境兩部分,組態(tài)環(huán)境相當(dāng)于一套完整的工具軟件,在PC機(jī)上運(yùn)行,用簡(jiǎn)單的模塊化設(shè)計(jì)幫助用戶構(gòu)造自己的應(yīng)用系統(tǒng),組態(tài)好的應(yīng)用系統(tǒng)通過(guò)以太網(wǎng)或串口下載到嵌入式操作系統(tǒng)Windows CE中實(shí)時(shí)運(yùn)行。嵌入版組態(tài)軟件的按功能剪裁的特性,以及其內(nèi)嵌的實(shí)時(shí)多任務(wù)操作系統(tǒng),可以在保證整個(gè)嵌入系統(tǒng)小體積、低成本、高實(shí)時(shí)性、高可靠性的同時(shí),方便不具備嵌入式軟件開(kāi)發(fā)經(jīng)驗(yàn)的用戶在極短的時(shí)間內(nèi),用嵌入版組態(tài)軟件快速開(kāi)發(fā)完成一個(gè)嵌入式應(yīng)用系統(tǒng),縮短嵌入式產(chǎn)品進(jìn)入市場(chǎng)的速度。

3 應(yīng)用系統(tǒng)開(kāi)發(fā)


我們的工程是一個(gè)智能家居的遠(yuǎn)程監(jiān)控系統(tǒng),通過(guò)它能實(shí)現(xiàn)以下功能:
(1) 對(duì)電氣設(shè)備的控制和管理:能遠(yuǎn)程控制燈、熱水器以及空調(diào)等電氣設(shè)備;
(2) 家居安全:家庭內(nèi)部出現(xiàn)的緊急情況(如盜搶和火災(zāi) )能自動(dòng)向主人手機(jī)或物業(yè)管理中心報(bào)警。家庭成員的醫(yī)療求助信息能遠(yuǎn)傳到社區(qū)醫(yī)療中心。
(3) 能源管理:三表自動(dòng)顯示并將數(shù)據(jù)抄送到物業(yè)管理中心,免除物業(yè)人員的入室干擾,定時(shí)開(kāi)關(guān)供暖通路及天然氣,節(jié)約費(fèi)用和保證安全。
3.1 系統(tǒng)硬件
系統(tǒng)硬件我們經(jīng)過(guò)考慮采用臺(tái)灣研華科技公司的嵌入式工控主板PCM-3350和PCM-3618多串口卡,PCM-3350是一塊96mm x 90mm英寸的基于pc-104總線結(jié)構(gòu)的主板,體積最小,但在功能上卻具備了一臺(tái)完備的電腦所要求的所有功能。內(nèi)置美國(guó)國(guó)家半導(dǎo)體公司的Embedded Low power Geode GX1-233 MHz processor,自帶10/100Base-T 網(wǎng)卡。板載 LCD 控制器支持 36 位圖像,帶有2個(gè)串口和1個(gè)并口、1個(gè)軟驅(qū)接口、1個(gè)CF卡電子盤(pán)接口和1個(gè)IDE接口,主板功耗小于10W,由于本用戶系統(tǒng)外界設(shè)備較多,所以又選用一塊基于PC-104總線,有4個(gè)標(biāo)準(zhǔn)的RS232串口的PCM-3618多串口卡。
系統(tǒng)配置方式是將3618插到3350主板上,設(shè)置好3618的中斷和基地址,然后用WIN CE的開(kāi)發(fā)平臺(tái)Plateform Builder 4.2來(lái)進(jìn)行相應(yīng)的CE操作系統(tǒng)配置>,由于微軟提供的標(biāo)準(zhǔn)串口驅(qū)動(dòng)不支持多串口共享中斷,而系統(tǒng)又沒(méi)有足夠的中斷供多串口使用,所以必須開(kāi)發(fā)相應(yīng)的可共享中斷的多串口驅(qū)動(dòng)。有了串口驅(qū)動(dòng),將其加入Plateform Builder 4.2的用戶組件庫(kù)中,然后再相應(yīng)的加入顯卡,并口,USB,鼠標(biāo)鍵盤(pán)驅(qū)動(dòng),以及一些應(yīng)用服務(wù)如:MFC類庫(kù),硬盤(pán)驅(qū)動(dòng),USB各功能模塊(打印,存儲(chǔ)等),加入觸摸屏用于現(xiàn)場(chǎng)人機(jī)交互,加入Web server用于遠(yuǎn)程網(wǎng)絡(luò)訪問(wèn),加入局域網(wǎng)上網(wǎng),撥號(hào)上網(wǎng)功能。這些都確定后,然后配置相應(yīng)的內(nèi)存和上面各種功能的相應(yīng)注冊(cè)表鍵值,然后編譯操作系統(tǒng)鏡像,下載,進(jìn)行相應(yīng)的操作系統(tǒng)功能測(cè)試就可以了。
3.2 用戶工程
通過(guò)MCGS嵌入版組態(tài)軟件在上位機(jī)來(lái)對(duì)用戶工程進(jìn)行組態(tài),用戶工程各個(gè)功能的實(shí)現(xiàn)通過(guò)如下實(shí)現(xiàn):
(1) 對(duì)電氣設(shè)備的控制和管理, 通過(guò)mcgs軟件的model遠(yuǎn)程撥號(hào)來(lái)控制燈、熱水器以及空調(diào)等電氣設(shè)備的開(kāi)關(guān)狀態(tài)。采用研華4060模塊來(lái)控制各個(gè)器件的開(kāi)關(guān)狀態(tài),組態(tài)過(guò)程中加入4060模塊驅(qū)動(dòng),加入modeml設(shè)備,設(shè)定遠(yuǎn)程撥號(hào)的一些信號(hào)指令,用這些信號(hào)通過(guò)modeml作用到工作站,工作站分析這些信號(hào),發(fā)出相應(yīng)的控制信號(hào)來(lái)控制4060模塊的輸出信號(hào)來(lái)間接控制各個(gè)電器狀態(tài)。以次實(shí)現(xiàn)諸如在炎熱的夏天可以在到家前的半小時(shí)打開(kāi)空調(diào),等一回到家里就可以享受到舒適的家居生活。
(2) 家居安全,通過(guò)家庭內(nèi)部的實(shí)時(shí)信號(hào)采集監(jiān)控設(shè)備來(lái)實(shí)時(shí)監(jiān)控家庭內(nèi)部各個(gè)環(huán)境信號(hào),然后通過(guò)mcgse軟件的網(wǎng)絡(luò)數(shù)據(jù)同步將數(shù)據(jù)同步到物業(yè)管理中心的遠(yuǎn)程監(jiān)控計(jì)算機(jī)上。在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行我們的mcgs通用版組態(tài)軟件,組態(tài)時(shí)設(shè)置好各個(gè)設(shè)備的報(bào)警參數(shù)。實(shí)際運(yùn)行時(shí)它可對(duì)下位機(jī)同步過(guò)來(lái)的數(shù)據(jù)進(jìn)行分析、統(tǒng)計(jì),如果有異常數(shù)據(jù)可立即進(jìn)行報(bào)警。如此,物業(yè)管理中心就可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控家居情況。
(3) 能源管理,通過(guò)用戶工程對(duì)各種智能電表、智能水表參數(shù)等智能設(shè)備進(jìn)行通訊,對(duì)采集的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),并定期將數(shù)據(jù)同步到物業(yè)管理中心的遠(yuǎn)程監(jiān)控機(jī)上,從而實(shí)現(xiàn)遠(yuǎn)程抄表。此外,當(dāng)用戶該交水費(fèi)、電費(fèi)等費(fèi)用時(shí),物業(yè)管理中心亦可通過(guò)其遠(yuǎn)程監(jiān)控機(jī)向用戶的工作站下位機(jī)發(fā)送相應(yīng)信號(hào)進(jìn)行報(bào)警,提醒用戶。實(shí)現(xiàn)高效的能源管理。
本系統(tǒng)功能結(jié)構(gòu)圖如如圖1所示:

圖片點(diǎn)擊可在新窗口打開(kāi)查看


開(kāi)發(fā)結(jié)束后,通過(guò)網(wǎng)線將工程直接下載到PCM-3350的CF卡電子盤(pán)上即可。系統(tǒng)啟動(dòng)后自動(dòng)進(jìn)入運(yùn)行工程。

4 結(jié)束語(yǔ)


本文簡(jiǎn)單介紹了嵌入式系統(tǒng)軟硬件的最新進(jìn)展,并結(jié)合MCGS嵌入版組態(tài)軟件的功能,對(duì)其在智能家居中的應(yīng)用進(jìn)行了闡述,此方法構(gòu)造的系統(tǒng)模塊集成度高,體積小,可靠性高,在智能家居工程中有很好的應(yīng)用。


]]>
嵌入式系統(tǒng)硬件抽象層的原理與實(shí)現(xiàn)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1496&Page=1wangxinxin2010-11-19 10:01:29摘要:板級(jí)支持包(BSP)是嵌入式系統(tǒng)中常用的硬件抽象形式,是介于操作系統(tǒng)和硬件之間的軟件層次。介紹BSP的功能和特點(diǎn),并結(jié)合工作實(shí)踐提出了設(shè)計(jì)BSP的一般方法;最后針對(duì)當(dāng)前嵌入式系統(tǒng)中BSP的設(shè)計(jì)方法所面臨的問(wèn)題提出了可行的解決辦法。

    

    

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

     嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS) 硬件抽象層(HAL)

     板級(jí)支持包(BSP)

     隨著計(jì)算機(jī)硬件技術(shù)的快速發(fā)展,出現(xiàn)了越來(lái)越多的便攜設(shè)備和智能設(shè)備。這些設(shè)備中通常包含控制用的CPU和相應(yīng)的操作系統(tǒng);這類特殊的計(jì)算機(jī)系統(tǒng)叫做嵌入式實(shí)時(shí)系統(tǒng)。嵌入式實(shí)時(shí)系統(tǒng)以其簡(jiǎn)潔高效等特點(diǎn)在計(jì)算機(jī)、通信等領(lǐng)域中廣泛使用。

     由于嵌入式實(shí)時(shí)系統(tǒng)應(yīng)用環(huán)境的特殊性,因此在設(shè)計(jì)實(shí)現(xiàn)過(guò)程中存在著許多特殊問(wèn)題。其中,操作系統(tǒng)及其他系統(tǒng)軟件模塊與硬件之間的接口形式是嵌入式實(shí)時(shí)系統(tǒng)的主要特征和系統(tǒng)設(shè)計(jì)過(guò)程中的必需環(huán)節(jié),也是影響嵌入式系統(tǒng)應(yīng)用前景的關(guān)鍵問(wèn)題。經(jīng)過(guò)近些年的發(fā)展,隨著通用嵌入式操作系統(tǒng)技術(shù)的日趨成熟和應(yīng)用的不斷擴(kuò)大,一種統(tǒng)一的接口形式得到廣泛的認(rèn)可和應(yīng)用,這就是通常所說(shuō)的板級(jí)支持包,即BSP。

     1 嵌入式系統(tǒng)硬件抽象層的原理

     1.1 硬件抽象層的引入

     嵌入式實(shí)時(shí)系統(tǒng)作為一類特殊的計(jì)算機(jī)系統(tǒng)自底向上包含三個(gè)部分,如圖1所示。

     (1)硬件環(huán)境:是整個(gè)嵌入式實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)應(yīng)用程序運(yùn)行的硬件平臺(tái);不同的應(yīng)用通常有不同的硬件環(huán)境;硬件平臺(tái)的多樣性是嵌入式系統(tǒng)的一個(gè)主要特點(diǎn)。

     (2)嵌入式實(shí)時(shí)操作系統(tǒng)——RTOS:完成嵌入式實(shí)時(shí)應(yīng)用的任務(wù)調(diào)度和控制等核心功能,具有內(nèi)核較精簡(jiǎn)、可配置、與高層應(yīng)用緊密關(guān)聯(lián)等特點(diǎn)。嵌入式操作系統(tǒng)具有相對(duì)不變性。

     (3)嵌入式實(shí)時(shí)應(yīng)用程序:運(yùn)行于操作系統(tǒng)之上,利用操作系統(tǒng)提供的實(shí)時(shí)機(jī)制完成特定功能的嵌入式應(yīng)用。不同的系統(tǒng)需要設(shè)計(jì)不同的嵌入式實(shí)時(shí)應(yīng)用程序。

     由于嵌入式系統(tǒng)應(yīng)用的硬件環(huán)境差異較大,因此,如何簡(jiǎn)潔有效地使嵌入式系統(tǒng)能夠應(yīng)用于各種不同的應(yīng)用環(huán)境是嵌入式系統(tǒng)發(fā)展中所必須解決的關(guān)鍵問(wèn)題。

     經(jīng)過(guò)不斷的發(fā)展,原先嵌入式系統(tǒng)的三層結(jié)構(gòu)逐步演化成為一種四層結(jié)構(gòu)。這個(gè)新增加的中間層次位于操作系統(tǒng)和硬件之間,包含了系統(tǒng)中與硬件相關(guān)的大部分功能。通過(guò)特定的上層接口與操作系統(tǒng)進(jìn)行交互,向操作系統(tǒng)提供底層的硬件信息;并根據(jù)操作系統(tǒng)的要求完成對(duì)硬件的直接操作。由于引入了一個(gè)中間層次,展蔽了底層硬件的多樣性,操作系統(tǒng)不再直接面對(duì)具體的硬件環(huán)境。而是面向由這個(gè)中間層次所代表的、邏輯上的硬件環(huán)境。因此,把這個(gè)中間層次叫做硬件抽象層HAL(Hardware

     Abstraction Layer)。在目前的嵌入式領(lǐng)域中通常也把HAL叫做板級(jí)支持包BSP(Board

     Support Package)。圖2顯示了引入HAL以后的嵌入式系統(tǒng)結(jié)構(gòu)。BSP的引入大大推動(dòng)了嵌入式實(shí)時(shí)操作系統(tǒng)的通用化,從而為嵌入式系統(tǒng)的廣泛應(yīng)用提供了可能。

     1.2 BSP的特點(diǎn)與功能

     HAL/BSP的提出使通用的嵌入式操作系統(tǒng)及高層的嵌入式應(yīng)用能夠有效地運(yùn)行于特定的、應(yīng)用相關(guān)的硬件環(huán)境之上,使擔(dān)任系統(tǒng)和應(yīng)用程序能夠控制和操作具體的硬件設(shè)備,完成特定的功能。因此,在絕大多數(shù)的嵌入式系統(tǒng)中,BSP是一個(gè)必不可少的層次。

     由于在系統(tǒng)中的特殊位置,因此BSP具有以下主要特點(diǎn):

     (1)硬件相關(guān)性

     因?yàn)榍度胧綄?shí)時(shí)系統(tǒng)的硬件環(huán)境具有應(yīng)用相關(guān)性,所以,作為高層軟件與硬件之間的接口,BSP必須為操作系統(tǒng)提供操作和控制具體硬件的方法。

     (2)操作系統(tǒng)相關(guān)性

     不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),

     因此,不同的操作系統(tǒng)具有特定的硬件接口形式。

     在實(shí)現(xiàn)上,BSP是一個(gè)介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件相關(guān)的軟件模塊。在功能上包含兩部分:系統(tǒng)初始化及與硬件相關(guān)的設(shè)備驅(qū)動(dòng)。

     2 BSP的設(shè)計(jì)與實(shí)現(xiàn)

     為實(shí)現(xiàn)上述兩部分功能,設(shè)計(jì)一個(gè)完整的BSP需要完成兩部分工作:

     (1)設(shè)計(jì)初始化過(guò)程,完成嵌入式系統(tǒng)的初始化;

     (2)設(shè)計(jì)硬件相關(guān)的設(shè)備驅(qū)動(dòng),完成操作系統(tǒng)及應(yīng)用程序?qū)唧w硬件的操作。

     2.1 嵌入式系統(tǒng)初始化以及BSP的功能

     嵌入式系統(tǒng)的初始化過(guò)程是一個(gè)同時(shí)包括硬件初始化和軟件(主要是操作系統(tǒng)及系統(tǒng)軟件模塊)初始化的過(guò)程;而操作系統(tǒng)啟動(dòng)以前的初始化操作是BSP的主要功能之一。由于嵌入式系統(tǒng)不僅具有硬件環(huán)境的多樣性,同時(shí)具有軟件的可配置性,因此,不同的嵌入式系統(tǒng)初始化所涉及的內(nèi)容各不相同,復(fù)雜程度也不盡相同。但是初始化過(guò)程總是可以抽象為三個(gè)主要環(huán)境,按照自底向上、從硬件到軟件的次序依次為:片級(jí)初始化、板級(jí)初始化和系統(tǒng)級(jí)初始化。

     (1)片級(jí)初始化:主要完成CPU的初始化,包括設(shè)置CPU的核心寄存器和控制寄存器,CPU核心工作模式以及CPU的局部總線模式等。片級(jí)初始化把CPU從上電時(shí)的缺省狀態(tài)逐步設(shè)置成為系統(tǒng)所要求的工作狀態(tài)。這是一個(gè)純硬件的初始化過(guò)程。

     (2)板級(jí)初始化:完成CPU以外的其他硬件設(shè)備的初始化。除此之外,還要設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級(jí)初始化和應(yīng)用程序的運(yùn)行建立硬件和軟件環(huán)境。這是一個(gè)同時(shí)飲食軟硬件兩部分在內(nèi)的初始化過(guò)程。

     (3)系統(tǒng)級(jí)初始化:這是一個(gè)以軟件初始化為主的過(guò)程,主要進(jìn)行操作系統(tǒng)初始化。BSP將控制轉(zhuǎn)交給操作系統(tǒng),由操作系統(tǒng)進(jìn)行余下的初始化操作。包括加載和初始化與硬件無(wú)關(guān)的設(shè)備驅(qū)動(dòng)程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他系統(tǒng)軟件模塊,比如網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等;最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境并將控制轉(zhuǎn)交給應(yīng)用程序的入口。

     經(jīng)過(guò)以上三個(gè)層次的操作,嵌入式系統(tǒng)運(yùn)行所需要的硬件和軟件環(huán)境已經(jīng)進(jìn)行了正確設(shè)置,從這里開(kāi)始,高層的實(shí)時(shí)應(yīng)用程序可以運(yùn)行了。

     需要指出:系統(tǒng)級(jí)初始化不是BSP的工作。但是,系統(tǒng)級(jí)初始化成功與否的關(guān)鍵在于BSP的前兩個(gè)初始化過(guò)程中所進(jìn)行的軟件和硬件的正確設(shè)置,而且系統(tǒng)級(jí)初始化也是由BSP發(fā)起的。因此,設(shè)計(jì)BSP中初始化功能的重點(diǎn)主要集中在前兩個(gè)環(huán)節(jié)。圖3顯示了嵌入式系統(tǒng)的初始化過(guò)程。

     2.2 硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序

     BSP另一個(gè)主要功能是硬件相關(guān)的設(shè)備驅(qū)動(dòng)。與初始化過(guò)程相反,硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序的初始化和使用通常是一個(gè)從高層到底層的過(guò)程。

     盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序,但是這些設(shè)備驅(qū)動(dòng)程序通常不直接由BSP使用,而是在系統(tǒng)初始化過(guò)程中由BSP把它們與操作系統(tǒng)中通用的設(shè)備驅(qū)動(dòng)程序關(guān)聯(lián)起來(lái),并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動(dòng)程序調(diào)用,實(shí)現(xiàn)對(duì)硬件設(shè)備的操作。設(shè)計(jì)與硬件相關(guān)的驅(qū)動(dòng)程序是BSP設(shè)計(jì)中另一個(gè)關(guān)鍵環(huán)節(jié)。圖4顯示了調(diào)用設(shè)備驅(qū)動(dòng)程序時(shí)系統(tǒng)各個(gè)層次之間的關(guān)系。

    

     3 設(shè)計(jì)實(shí)現(xiàn)BSP的方法

     3.1 設(shè)計(jì)實(shí)現(xiàn)BSP的一般方法

     因?yàn)锽SP同時(shí)具硬件相關(guān)性和操作系統(tǒng)相關(guān)性,是一個(gè)介于硬件與軟件之間的中間層次。因此BSP的開(kāi)發(fā)不僅需要具備一定的硬件知識(shí),例如CPU的控制、中斷控制器的設(shè)置、內(nèi)存控制器的設(shè)置及有關(guān)的總線規(guī)范等;同時(shí)還要求掌握操作系統(tǒng)所定義的BSP接口。另外,在BSP的初始化部分通常會(huì)包含一些匯編代碼,因此還要求對(duì)所使用的CPU匯編指令有所了解,例如X86的匯編和PowerPC的匯編指令等;對(duì)于某些復(fù)雜的BSP還要了解所使用的開(kāi)發(fā)工具,例如GNU、Diab

     Data等。

     總之,開(kāi)發(fā)BSP要求具備比較全面的軟、硬件知識(shí)和必要的編程經(jīng)驗(yàn)。由于設(shè)計(jì)實(shí)現(xiàn)的復(fù)雜性,在設(shè)計(jì)特定BSP時(shí)很少?gòu)牧汩_(kāi)始,而是采用以下兩種快捷方法。

     方法一:以經(jīng)典BSP為參考

     在設(shè)計(jì)BSP時(shí),首先選擇與應(yīng)用硬件環(huán)境最為相似的參考設(shè)計(jì),例如Motorola的ADS系列評(píng)估板等。針對(duì)這些評(píng)估板,不同的操作系數(shù)都會(huì)提供完整的BSP,這些BSP是學(xué)習(xí)和開(kāi)發(fā)自己BSP的最佳參考。針對(duì)具體應(yīng)用的特定環(huán)境對(duì)參考設(shè)計(jì)的BSP進(jìn)行必要的修改和增加,就可以完成簡(jiǎn)單的BSP設(shè)計(jì)。

     下面以設(shè)計(jì)pSOS操作系統(tǒng)的BSP初始化過(guò)程為例。PSOS系統(tǒng)初始化的層次非常清晰,與初始化過(guò)程相對(duì)應(yīng)的是以下三個(gè)文件:

     1)init.s:對(duì)應(yīng)于片級(jí)初始化;完成CPU的初始化操作,設(shè)置CPU的工作狀態(tài);

     2)board.c:對(duì)慶于板級(jí)初始化;繼續(xù)CPU初始化,并設(shè)置CPU以外的硬件設(shè)備;

     3)sysinit.c:對(duì)應(yīng)于系統(tǒng)級(jí)初始化;完成操作系統(tǒng)的初始化,并啟動(dòng)應(yīng)用程序。

     以參考BSP為切入點(diǎn),針對(duì)初始化過(guò)程的具體環(huán)節(jié),在對(duì)應(yīng)的文件中進(jìn)行某些參數(shù)的修改及功能的增加就可以實(shí)現(xiàn)BSP的系統(tǒng)初始化功能。

     因?yàn)锽SP具有操作系統(tǒng)相關(guān)性,因此,不同的操作系統(tǒng)會(huì)使用不同的文件完成類似的初初化操作。

     BSP中硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序隨操作系統(tǒng)的不同而具有比較大的差異,設(shè)計(jì)過(guò)程中應(yīng)參照操作系統(tǒng)相應(yīng)的接口規(guī)范。

     方法二:使用操作系統(tǒng)提供的BSP模板

     除了提供某些評(píng)估板的BPS以外,很多操作系統(tǒng)還提供相應(yīng)的BSP模板(一組需要編寫(xiě)的文件),根據(jù)模板的提示也可以逐步完成特定BSP的設(shè)計(jì)。

     相比較而言,第一種方法最為簡(jiǎn)單快捷。因此,在實(shí)際的設(shè)計(jì)過(guò)程中,通常以第一種方法為主,同時(shí)結(jié)合使用第二種方法。

     在設(shè)計(jì)實(shí)現(xiàn)BSP兩部分功能時(shí)應(yīng)采用以下兩種不同方法:

     (1)“自底向上”地實(shí)現(xiàn)BSP中的初始化操作:從片級(jí)初始化開(kāi)始到系統(tǒng)初始化;

     (2)“自頂向下”地設(shè)計(jì)硬件相關(guān)的驅(qū)動(dòng)程序:從API開(kāi)始,到操作系統(tǒng)內(nèi)部的通用設(shè)備驅(qū)動(dòng)程序,再到BSP內(nèi)部的硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序,最后到底層具體的硬件設(shè)備。

    

     3.2 BSP設(shè)計(jì)方法的不足與改進(jìn)

     從以上介紹的兩種設(shè)計(jì)方法可以看出:目前BSP的設(shè)計(jì)與實(shí)現(xiàn)主要是針對(duì)某些特定的文件進(jìn)行修改。這種方法比較原始,它不僅要求設(shè)計(jì)人員了解BSP的各個(gè)組成部分及所對(duì)應(yīng)的文件和相關(guān)參數(shù)的具體含義,還要求具備比較全面的軟硬件知識(shí)。直接修改相關(guān)文件容易造成代碼的不一致性,增加軟件設(shè)計(jì)上的隱形錯(cuò)誤,從而增加系統(tǒng)調(diào)試和代碼維護(hù)的難度。隨著底層硬件功能的日益復(fù)雜,開(kāi)發(fā)BSP所涉及的內(nèi)容也越來(lái)越多。這種原始方法的足之處也越來(lái)越突出。進(jìn)行BSP設(shè)計(jì)方法和工具的創(chuàng)新成為一個(gè)日益突出的問(wèn)題。

     解決這個(gè)問(wèn)題的一個(gè)可行辦法是:設(shè)計(jì)實(shí)現(xiàn)一種具有圖形界面的BSP開(kāi)發(fā)設(shè)計(jì)向?qū),由該向(qū)е笇?dǎo)設(shè)計(jì)者逐步完成BSP的設(shè)計(jì)和開(kāi)發(fā),并最終由向?qū)上鄳?yīng)的BSP文件,而不再由設(shè)計(jì)人員直接對(duì)源文件進(jìn)行修改。這樣不僅可以大大縮短BSP的開(kāi)發(fā)周期,減少代碼不一致性,而且系統(tǒng)排錯(cuò)、調(diào)試以及維護(hù)都很簡(jiǎn)單。因此,這種方法是目前嵌入式領(lǐng)域中BSP設(shè)計(jì)的一個(gè)趨勢(shì)和研究方向。但是,由于嵌入式系統(tǒng)硬件環(huán)境的多樣性,設(shè)計(jì)向?qū)У膶?shí)現(xiàn)仍需解決若干關(guān)鍵問(wèn)題。為此,作者仍將在這一方面作進(jìn)一步研究。

]]>
基于DSP的通用型嵌入式語(yǔ)音平臺(tái)的硬件設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1495&Page=1wangxinxin2010-11-19 10:00:031.語(yǔ)音硬件平臺(tái)的總體介紹和系統(tǒng)框架

  本語(yǔ)音信號(hào)處理平臺(tái)需要考慮以下幾個(gè)方面的設(shè)計(jì)要求。在運(yùn)算量方面,本平臺(tái)上運(yùn)行的幾種語(yǔ)音編碼算法都具有比較高的運(yùn)算復(fù)雜度,經(jīng)過(guò)CCS的仿真測(cè)試結(jié)果表明,至少要求DSP芯片有50MIPS的處理能力。在接口設(shè)計(jì)方面,搭載本聲碼器模塊的通訊平臺(tái)定義了如表1所示的接口管腳,其中VIN和VOUT分別連接到通訊平臺(tái)的話筒和聽(tīng)筒上的輸入和輸出話音,PTT連接到話筒的按鈕上,按下PTT表示請(qǐng)求通話。TXD和RXD分別是發(fā)送和接收的數(shù)字語(yǔ)音碼流信號(hào),RTS和CD分別是發(fā)送和接收碼流指示,為低電平的時(shí)候表示碼流有效。TXC為系統(tǒng)的同步時(shí)鐘。在功耗方面,由于是手持式設(shè)備,要求采用低功耗設(shè)計(jì),以延長(zhǎng)電池的使用時(shí)間。另外,設(shè)計(jì)系統(tǒng)的安全性也是一個(gè)需要考慮的因素。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

 
  基于以上幾項(xiàng)設(shè)計(jì)要求,以及以前設(shè)計(jì)的原型系統(tǒng)原理[7],我們提出了一個(gè)基于TMS320VC5510A2和MSP430F149的設(shè)計(jì)方案。[1] 5510A2是德州儀器公司的55系列DSP的最高端的產(chǎn)品,這個(gè)系列的DSP是特別針對(duì)手持式終端設(shè)備應(yīng)用場(chǎng)合設(shè)計(jì)的,同等條件下其內(nèi)核的功耗僅為54系列DSP的三分之一,而且具有更高的代碼執(zhí)行效率,其指令也與54系列的相互兼容,可以很方便的進(jìn)行代碼的移植。5510A2的最高數(shù)字信號(hào)的處理能力為200MIPS,能夠很好的滿足本平臺(tái)對(duì)運(yùn)算的要求。[6]MSP430F149是德州儀器生產(chǎn)的一款極低功耗的16位RISC結(jié)構(gòu)的單片機(jī),我們用他來(lái)做為主控芯片輔助DSP完成程序加載和系統(tǒng)加密的功能。圖1給出了該硬件平臺(tái)的總體框圖。

圖片點(diǎn)擊可在新窗口打開(kāi)查看


  如圖所示,當(dāng)PTT被按下則表示請(qǐng)求通話,話筒輸入的模擬話音VIN通過(guò)一個(gè)放大電路放大之后輸入語(yǔ)音CODEC芯片TLV320AIC11,TLV320AIC11內(nèi)的模數(shù)轉(zhuǎn)換器將其轉(zhuǎn)換成16bit的線性PCM格式并通過(guò)DSP的McBSP0口傳送到DSP內(nèi)部接收語(yǔ)音緩沖區(qū),DSP在緩沖區(qū)內(nèi)的數(shù)據(jù)在積累到一定幀長(zhǎng)之后啟動(dòng)編碼算法編成特定碼率的碼流。編好的碼流被送入另一發(fā)送比特流緩沖區(qū)緩沖。該緩沖區(qū)內(nèi)的信號(hào)在同步時(shí)鐘TXC的上升沿被送到MODEM的調(diào)制模塊調(diào)制并發(fā)射出去。同時(shí),DSP檢測(cè)MODEM的CD信號(hào),當(dāng)CD信號(hào)有效(低電平)時(shí),在同步時(shí)鐘TXC的下降沿鎖存RXD上的數(shù)據(jù)并送入DSP內(nèi)的接收比特流緩沖區(qū)。當(dāng)接收比特緩沖區(qū)內(nèi)的數(shù)據(jù)積累到一定長(zhǎng)度時(shí),DSP啟動(dòng)解碼程序?qū)⑵浣獯a成16bit的PCM語(yǔ)音。該語(yǔ)音通過(guò)McBSP0口被送入TLV320AIC11,TLV320AIC11內(nèi)的數(shù)模轉(zhuǎn)換器將其轉(zhuǎn)換成模擬的語(yǔ)音信號(hào)送入聽(tīng)筒。

]]>
基于硬件壓縮技術(shù)的嵌入式圖像監(jiān)控系統(tǒng)設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1494&Page=1wangxinxin2010-11-19 9:54:47  嵌入式系統(tǒng) (embedded system)被定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。今天,嵌入式系統(tǒng)已經(jīng)無(wú)處不在,從汽車(chē)、pda、電視機(jī),到工控生產(chǎn)現(xiàn)場(chǎng)、通信、儀器、儀表、汽車(chē)、船舶、航空、航天、軍事裝備、消費(fèi)類產(chǎn)品等方面,都能發(fā)現(xiàn)嵌入式系統(tǒng)的蹤影。從國(guó)內(nèi)外的嵌入式系統(tǒng)發(fā)展?fàn)顩r來(lái)說(shuō),嵌入式系統(tǒng)的應(yīng)用正在從傳統(tǒng)的單一應(yīng)用范圍、狹窄應(yīng)用對(duì)象、簡(jiǎn)單實(shí)現(xiàn)功能向現(xiàn)在和未來(lái)社會(huì)需要的應(yīng)用需 要進(jìn)行轉(zhuǎn)變。工業(yè)自動(dòng)化領(lǐng)域?qū)η度胧较到y(tǒng)的需求正在慢慢擴(kuò)大,特別是最近幾年來(lái)隨著工業(yè)以太網(wǎng)的發(fā)展,對(duì)嵌入式智能設(shè)備的需求越來(lái)越明顯。嵌入式系統(tǒng)在智能設(shè)備里面的應(yīng)用,是對(duì)嵌入式系統(tǒng)概念和應(yīng)用范圍的一個(gè)變革,會(huì)出現(xiàn)一個(gè)由多芯片、多處理器占領(lǐng)工業(yè)自動(dòng)化應(yīng)用市場(chǎng)領(lǐng)域的局面。

  目前,在嵌入式處理器市場(chǎng)上,arm系列處理器以其高性價(jià)比,價(jià)格低廉廣受用戶青睞,而且許多國(guó)際知名的芯片生產(chǎn)廠家都已經(jīng)購(gòu)買(mǎi)了arm芯片設(shè)計(jì)許可并開(kāi) 始大量生產(chǎn)針對(duì)特定應(yīng)用領(lǐng)域的arm芯片,芯片種類十分豐富。arm公司專注于芯片內(nèi)核設(shè)計(jì),其內(nèi)核功耗少、成本低、功能強(qiáng),特有的16位/32位雙指令 集,存儲(chǔ)器比等價(jià)32位代碼節(jié)省近35%,16位的thumb狀態(tài)和正常的arm狀態(tài)之間的開(kāi)銷(xiāo)為零。目前arm嵌入式處理器有5個(gè)產(chǎn)品系列-arm7、 arm9、arm9e、arm10和securcore。

  arm7系列是低功耗的32位核,最適合應(yīng)用于對(duì)價(jià)位核功耗敏感的產(chǎn)品,可分為應(yīng)用于實(shí)時(shí)環(huán)境的arm7tdmi、arm7tdmi-s以及適用于開(kāi)放平 臺(tái)的arm720t核適用于dsp運(yùn)算及支持java的arm7ej等。arm7采用三級(jí)流水線和馮-諾依曼結(jié)構(gòu),提供0.9mips/mhz的性能。迄 今為止,arm7tdmi是世界上應(yīng)用最廣泛的32位嵌入式處理器。

  arm9系列采用5級(jí)流水線和哈佛結(jié)構(gòu),提供1.1mips/mhz的性能,是高性能和低功耗的硬宏單元。arm920t和arm922t具有全性能的 mmu、指令和數(shù)據(jù)cache以及高速amba總線接口。

  arm10系列硬宏單元,帶有dsp擴(kuò)展、embeddedice-rt、全性能 mmu、cache和64位ahb指令和數(shù)據(jù)接口,采用六級(jí)流水線,提供1.25mips/mhz的性能,比同等的arm9器件性能提高50%。

  嵌入式操作系統(tǒng)通常分為商用型和免費(fèi)型兩類。商用的嵌入式操作系統(tǒng)有windriver(風(fēng)河)的vxworks和psos、美國(guó)ati的nucleus plus以及microsoft(微軟)的windows ce等。免費(fèi)的嵌入式操作系統(tǒng)有嵌入式ulinux、uc/os等。商用型操作系統(tǒng)功能穩(wěn)定、可靠,有完善的技術(shù)支持和售后服務(wù),但往往價(jià)格昂貴。免費(fèi)型操作系統(tǒng)具有源代碼公開(kāi)和無(wú)需版稅的優(yōu)勢(shì),但也存在著開(kāi)發(fā)困難的不足。

  uclinux是一種優(yōu)秀的嵌入式linux版本,繼承了標(biāo)準(zhǔn)linux的優(yōu)良特性,并針對(duì)嵌入式處理器的特點(diǎn)而設(shè)計(jì),內(nèi)嵌網(wǎng)絡(luò)協(xié)議、支持多種文件系統(tǒng), 開(kāi)發(fā)者可以利用標(biāo)準(zhǔn)linux先驗(yàn)知識(shí)等優(yōu)勢(shì)。其編譯后的文件可控制在幾百k量級(jí)。uclinux具有對(duì)多種文件系統(tǒng)的支持能力,而且內(nèi)嵌了tcp/ip 協(xié)議,非常適合于應(yīng)用在工控領(lǐng)域。uclinux已經(jīng)成功移植到多種像s3c4510b這樣不帶mmu的嵌入式微處理器平臺(tái)上,并在穩(wěn)定性和其他方面都有上佳表現(xiàn)。更為重要的是uclinux具有完整的tcp/ip協(xié)議,可直接在其基礎(chǔ)上進(jìn)行應(yīng)用層協(xié)議開(kāi)發(fā),大大加快軟件開(kāi)發(fā)進(jìn)程。當(dāng)然該系統(tǒng)也并非十全十美,它的非實(shí)時(shí)性就使應(yīng)用受到一定的限制,不過(guò)這點(diǎn)可以通過(guò)修改內(nèi)核來(lái)彌補(bǔ)。uclinux的基本架構(gòu)如圖1所示:

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  圖1 uclinux基本結(jié)構(gòu)

]]>
基于嵌入式系統(tǒng)的網(wǎng)絡(luò)變頻器軟硬件設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1493&Page=1wangxinxin2010-11-19 9:53:561 引言

  隨著現(xiàn)代控制理論、電力電子技術(shù)、計(jì)算機(jī)控制技術(shù)和傳感器技術(shù)的發(fā)展,整個(gè)拖動(dòng)領(lǐng)域正在進(jìn)行一場(chǎng)革命,交流電機(jī)的調(diào)速理論取得了突破性的進(jìn)展,交流傳動(dòng)取代直流傳動(dòng)已成為不可逆轉(zhuǎn)的趨勢(shì)。變頻器以其節(jié)能顯著、過(guò)載能力強(qiáng)、調(diào)速精度高、響應(yīng)速度快、保護(hù)功能完善、使用和維護(hù)方便等優(yōu)點(diǎn)在交流傳動(dòng)領(lǐng)域的應(yīng)用將越來(lái)越廣泛。本文研究了一種基于嵌入式系統(tǒng)的網(wǎng)絡(luò)變頻器設(shè)計(jì)過(guò)程。

2 變頻器的硬件設(shè)計(jì)

  2.1 主電路設(shè)計(jì)

  變頻器根據(jù)主電路的設(shè)計(jì)不同,可以分為交-交、交-直-交變頻器和電壓型、電流型變頻器,它們均有各自的特點(diǎn)。本文設(shè)計(jì)的變頻器屬于交-直-交電壓型,它的主電路由三相全波整流、電容濾波和智能功率模塊PM20CSJ060所構(gòu)成,如圖1所示。

  PM20CSJ060內(nèi)部集成6個(gè)IGBT、柵極驅(qū)動(dòng)電路、欠電壓、過(guò)流、過(guò)熱、短路等保護(hù)電路以及故障信號(hào)輸出電路。P, N分別為直流輸入正負(fù)端;U, V, W為三相交流電壓輸出端;VUP1~VUPC, VVP1~VVPC, VWP1~VWPC, VN1~VNC是4組獨(dú)立的驅(qū)動(dòng)電源,前3組分別供給U, V, W 3個(gè)上橋臂元件,第4組電源供給3個(gè)下橋臂元件和制動(dòng)回路元件;UP, VP,WP, UN, VN, WN分別為6個(gè)IGBT的基極驅(qū)動(dòng)輸入信號(hào),它們都是低電平有效的電平信號(hào),與外部控制電路之間通過(guò)光電隔離;F0是IPM模塊內(nèi)故障檢測(cè)電路的輸出信號(hào),當(dāng)其為低電平時(shí),表示模塊發(fā)生了過(guò)流、短路、欠電壓或過(guò)熱中的某種故障,它只是向外部控制電路提供指示信號(hào),即使外部控制電路不采取措施,模塊也會(huì)通過(guò)自保護(hù)電路封鎖基極驅(qū)動(dòng)信號(hào),從而將自己保護(hù)起來(lái)。由于PM20CSJ060具有自保護(hù)功能,故不需要在整個(gè)系統(tǒng)中為所有的IGBT提供過(guò)流、過(guò)壓、過(guò)熱保護(hù)電路了。


圖1 變頻器主電路

  2.2 控制電路設(shè)計(jì)

  變頻器控制電路以ARM單片機(jī)LPC2292為控制核心,主要由電源電路、交流電壓電流檢測(cè)電路、直流電壓檢測(cè)電路、故障檢測(cè)與處理電路、PWM脈沖輸出電路、LCD顯示和鍵盤(pán)輸入電路等構(gòu)成。

  1、電源電路

  控制電路所需的電源除了4組IGBT驅(qū)動(dòng)電源 15V以外,單片機(jī)LPC2292本身也需要工作電源,其CPU內(nèi)核需要 1.8V電源;I/O端口需要 3.3V電源。因此控制電路需要3種電壓的電源。4組 15V的電源我們是通過(guò)4個(gè)三端穩(wěn)壓器LM7815來(lái)實(shí)現(xiàn)的;而 1.8V和 3.3V電源則利用三端穩(wěn)壓器LM7805和LDO芯片(低壓差電源芯片)共同來(lái)實(shí)現(xiàn)。

  2、交流電流電壓檢測(cè)電路

  交流側(cè)的每相電流檢測(cè)采用的是TA17系列電流互感器TA17-04,由運(yùn)算放大電路將互感器輸出的電流信號(hào)轉(zhuǎn)換成對(duì)應(yīng)的電壓信號(hào),供單片機(jī)采樣。圖2(a)所示的是其中A相的電流檢測(cè)電路。TA17-04的輸入電流范圍為0~40A,輸出電流范圍為0~20mA,而單片機(jī)的采樣電壓范圍為0~3V,所以取反饋電阻Rf1=150Ω。另外圖中的電容Cr,和可調(diào)電阻r1用來(lái)補(bǔ)償相移。


(a) 相電流檢測(cè)電路


(b) 相電壓檢測(cè)電路

圖2交流電流電壓檢測(cè)電路

  3、直流電壓檢測(cè)電路

  直流電壓檢測(cè)是通過(guò)取濾波電容兩端電壓,經(jīng)過(guò)電阻分壓后轉(zhuǎn)換成0~5V電壓信號(hào),然后經(jīng)過(guò)線性光電耦合器6N138整定為0~3V的電壓信號(hào),通過(guò)電壓跟隨器輸出供單片機(jī)A/D通道采樣。

  4、故障檢測(cè)與處理電路

  PM20CSJ060有自保護(hù)功能,當(dāng)出現(xiàn)過(guò)流、欠壓、短路或過(guò)熱時(shí),IMP的柵極驅(qū)動(dòng)單元就會(huì)關(guān)斷電流并輸出一個(gè)故障信號(hào)(FO);當(dāng)U, V或W相的任一個(gè)上橋臂出現(xiàn)故障時(shí),也會(huì)從相應(yīng)的輸出端輸出故障信號(hào),另外系統(tǒng)增加的過(guò)壓/欠壓保護(hù)電路也有兩個(gè)故障輸出端。所有這些故障信號(hào)都是低電平有效,因此我們可以通過(guò)一個(gè)與門(mén)將這些故障輸出端相與后送到單片機(jī)的中斷口,不過(guò)有些端口在與之前先要進(jìn)行光耦隔離。

  5、PWM脈沖輸出電路

  驅(qū)動(dòng)IPM內(nèi)部的六路IGBT的PWM脈沖先是從LPC2292內(nèi)部PWM脈寬調(diào)制器輸出的,然后通過(guò)光耦隔離后再送到IMP的六路脈沖輸入端。

  2.3 保護(hù)電路的設(shè)計(jì)

  雖然PM20CSJ060有過(guò)流、欠壓、短路或過(guò)熱等自保護(hù)功能,但為了提高系統(tǒng)的可靠性和更好地保護(hù)IGBT,我們還是增加了一套快速而準(zhǔn)確的保護(hù)環(huán)節(jié)以防止各種故障的發(fā)生對(duì)系統(tǒng)造成的損壞。

  1、欠壓/過(guò)壓保護(hù)電路

  由于IGBT集電極與發(fā)射極之間的耐壓和承受反向壓降的能力有限,而電網(wǎng)的電壓波動(dòng)非常大,從而會(huì)導(dǎo)致直流回路過(guò)壓或欠壓,因此要設(shè)置直流電壓欠壓/過(guò)壓保護(hù)電路,以保護(hù)IGBT和其他元件不被損壞。系統(tǒng)設(shè)計(jì)的欠壓/過(guò)壓保護(hù)電路,如圖3所示。圖中6N138為一個(gè)線性光電隔離器,輸出電壓信號(hào)與直流回路電壓成正比,當(dāng)直流回路電壓過(guò)低時(shí),從6N138的VO端輸出一個(gè)較低電壓,與臨界欠電壓值相比較,小于則經(jīng)比較器LM393比較后輸出低電平的欠壓故障信號(hào);當(dāng)直流回路電壓過(guò)高時(shí),從6N138的VO端輸出一個(gè)較高電壓,與臨界過(guò)電壓值相比較,大于則經(jīng)比較器LM393比較后也輸出低電平的過(guò)壓故障信號(hào)。將這兩個(gè)信號(hào)通過(guò)與門(mén)送到單片機(jī)的中斷口,單片機(jī)響應(yīng)中斷就可以進(jìn)行相應(yīng)的處理了,從而起到欠壓/過(guò)壓保護(hù)作用。


圖3欠壓/過(guò)壓保護(hù)電路

  2、限流起動(dòng)保護(hù)電路

  此電路是用來(lái)防止在電機(jī)起動(dòng)過(guò)程中,電容充電電流過(guò)大而損壞整流管。當(dāng)電機(jī)起動(dòng)時(shí),起動(dòng)電流很大,為了保護(hù)整流管,在主電路上串了一個(gè)限流電阻R1,定時(shí)15s后,單片機(jī)就控制繼電器將常開(kāi)觸點(diǎn)閉合,使限流電阻R1短路,結(jié)束限流起動(dòng)過(guò)程,進(jìn)入正常運(yùn)行狀態(tài)。

  3、泵升電壓保護(hù)電路

  當(dāng)電機(jī)負(fù)載進(jìn)入制動(dòng)狀態(tài)時(shí),反饋電流將向中間直流回路電容充電,導(dǎo)致直流電壓上升,產(chǎn)生所謂的泵升電壓。如果不對(duì)此電壓進(jìn)行限制,它將造成IGBT的永久損壞。產(chǎn)生泵升電壓是電機(jī)制動(dòng)過(guò)程不可避免的現(xiàn)象,為此要給制動(dòng)過(guò)程提供一條能量釋放路徑。

3 變頻器以太網(wǎng)接口電路的硬件設(shè)計(jì)

  從硬件的角度看,以太網(wǎng)接口電路主要由MAC控制器和物理層接口(PHY)兩大部分構(gòu)成,目前常見(jiàn)的以太網(wǎng)接口芯片,如RTL8019, RTL8029, RTL8039, CS8900等,其內(nèi)部結(jié)構(gòu)也主要包含這兩部分。本文在設(shè)計(jì)以太網(wǎng)接口電路時(shí),采用RTL8019AS作為以太網(wǎng)接口芯片,接口電路的電路圖如圖4所示,其中FC-518LS是網(wǎng)絡(luò)隔離變壓器。

  前面講過(guò)變頻器控制電路的設(shè)計(jì),其中實(shí)現(xiàn)整個(gè)系統(tǒng)控制功能的是微處理器LPC2292。由圖4可以看到,實(shí)現(xiàn)此變頻器的以太網(wǎng)接口功能,采用的微處理器仍然是LPC2292。那么也就是說(shuō),LPC2292除了實(shí)現(xiàn)SVPWM波形的產(chǎn)生以外,還要負(fù)責(zé)與外界網(wǎng)絡(luò)的數(shù)據(jù)交換。就網(wǎng)絡(luò)而言,LPC2292主要是對(duì)網(wǎng)卡芯片RTL8019AS進(jìn)行監(jiān)控,通過(guò)此芯片將數(shù)據(jù)發(fā)送到以太網(wǎng)上或從以太網(wǎng)上接收數(shù)據(jù),然后通過(guò)以太網(wǎng)連接到Internet,從而實(shí)現(xiàn)真正的嵌入式TCP/IP設(shè)備。


圖4以太網(wǎng)接口電路圖

4 基于μC/OS-II的系統(tǒng)整體軟件的設(shè)計(jì)

  μC/OS-II是一個(gè)占先式、多任務(wù)的實(shí)時(shí)操作系統(tǒng),它可以管理64個(gè)任務(wù),除8個(gè)系統(tǒng)任務(wù)外,應(yīng)用程序最多可以有56個(gè)任務(wù)。若采用μC/OS-II來(lái)實(shí)現(xiàn)某系統(tǒng)的軟件設(shè)計(jì),通常是把這整個(gè)系統(tǒng)分成若干個(gè)部分來(lái)完成,每個(gè)部分可以當(dāng)成一個(gè)單獨(dú)任務(wù),然后在μC/OS-II的統(tǒng)一管理下來(lái)協(xié)調(diào)各部分的工作,從而達(dá)到整個(gè)系統(tǒng)的軟件設(shè)計(jì)要求。本文在軟件設(shè)計(jì)時(shí),就是采用μC/OS-II框架,把系統(tǒng)軟件模塊化,分成多個(gè)任務(wù)來(lái)共同完成。

  在一般32位ARM應(yīng)用系統(tǒng)中,軟件大多數(shù)采用C語(yǔ)言進(jìn)行編程,并且以嵌入式操作系統(tǒng)為開(kāi)發(fā)平臺(tái),這樣就大大地提高了開(kāi)發(fā)效率和軟件性能。為了能夠進(jìn)行系統(tǒng)初始化,采用一個(gè)匯編文件作啟動(dòng)代碼是常用的做法,它可以實(shí)現(xiàn)堆棧初始化、系統(tǒng)變量初始化、中斷系統(tǒng)初始化、I/O初始化、地址重映射等操作。啟動(dòng)代碼是芯片復(fù)位后進(jìn)入C語(yǔ)言的main()函數(shù)前執(zhí)行的一段代碼,主要是為運(yùn)行C語(yǔ)言程序提供基本運(yùn)行環(huán)境。

  本文設(shè)計(jì)的變頻器,其控制核心是ARM單片機(jī)LPC2292,根據(jù)系統(tǒng)的功能要求,它主要完成以下工作:(1) 鍵盤(pán)設(shè)定(Task1):通過(guò)鍵盤(pán)可以設(shè)定一些參數(shù),如電機(jī)工作頻率、系統(tǒng)時(shí)間等。(2) 脈沖產(chǎn)生(Task2):生成SVPWM波形,驅(qū)動(dòng)IGBT。(3) 數(shù)據(jù)采樣與處理(Task3):采樣變頻器直流側(cè)電壓電流、交流側(cè)電壓電流等,并進(jìn)行相應(yīng)的算法處理。(4)偵聽(tīng)服務(wù)(Task4):偵聽(tīng)服務(wù)端口,當(dāng)客戶端要求連接時(shí),提供給客戶端預(yù)先設(shè)計(jì)好的網(wǎng)頁(yè),此網(wǎng)頁(yè)中含有本系統(tǒng)的一些實(shí)時(shí)數(shù)據(jù);或者客戶端PING本地WEB服務(wù)器時(shí),做出回顯應(yīng)答。(5) 故障處理(Task5):當(dāng)有故障發(fā)生時(shí),根據(jù)故障類型進(jìn)行相應(yīng)的處理。(6) LCD顯示(Task6):顯示一些系統(tǒng)參數(shù)。

  為此,把LPC2292要實(shí)現(xiàn)的功能分成6個(gè)部分,每個(gè)部分用μC/OS-II中的一個(gè)任務(wù)來(lái)實(shí)現(xiàn),這六個(gè)任務(wù)分別為T(mén)ask1、Task2, Task3, Task4, Tasks, Task6。

]]>
基于S3C2410處理器的嵌入式以太網(wǎng)接口軟硬件設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1492&Page=1wangxinxin2010-11-19 9:49:09  設(shè)計(jì)的嵌入式網(wǎng)關(guān)以ARM920T為核心的S3C2410微處理器,通過(guò)外擴(kuò)存儲(chǔ)器、以太網(wǎng)口、串口、JTAG調(diào)試接口等構(gòu)建硬件平臺(tái),其硬件結(jié)構(gòu)框圖如圖1所示。
  圖片點(diǎn)擊可在新窗口打開(kāi)查看
  1、CPU設(shè)計(jì)
  CPU是整個(gè)嵌入式系統(tǒng)的實(shí)時(shí)控制ARM9/嵌入式網(wǎng)關(guān)核心,它在工業(yè)以太網(wǎng)中作為智能節(jié)點(diǎn)的主控制器,是整個(gè)嵌入式網(wǎng)關(guān)的核心。本文選用以ARM920T為核心的S3C2410微處理器,S3C2410是32bit的RISC微處理器,該處理器特別適用于手持式設(shè)備以及高性價(jià)比、低功耗的網(wǎng)絡(luò)設(shè)備,它集成了LCD控制器、USBHost、NAND控制器、BUS控制器、中斷控制、功率控制、存儲(chǔ)控制、UART、WatchDog、SPI、SDI/MMC、IS、IC、GPIO、RTC、TIMER/PWM、ADC等豐富的資源。
  2、存儲(chǔ)系統(tǒng)
  嵌入式ARM9/嵌入式網(wǎng)關(guān)系統(tǒng)可根據(jù)需要定制存儲(chǔ)空間。本文擴(kuò)展了2片F(xiàn)lash芯片和1片SDRAM。Flash芯片主要有1片韓國(guó)現(xiàn)代公司的2MB16bit數(shù)據(jù)寬度的Flash芯片HY29LV160B191和1片韓國(guó)三星公司的16MB的NANDFlash芯片K9F2808UOB1571,SDRAM芯片采用的是1塊韓國(guó)現(xiàn)代公司生產(chǎn)的SDRAMHY57V5616201。2MB的Flash芯片HY29LV160B對(duì)應(yīng)的地址空間映射到地址0x00000000上,作為存儲(chǔ)啟動(dòng)配置參數(shù)及異常/中斷向量表的程序空間,系統(tǒng)復(fù)位后從其中讀取指令執(zhí)行程序;使用韓國(guó)現(xiàn)代公司的8MB的SDRAMHY57V561620作為系統(tǒng)內(nèi)存,對(duì)應(yīng)地址空間映射在地址Ox30000000開(kāi)始,作為程序運(yùn)行空間和數(shù)據(jù)空間,啟動(dòng)代碼將系統(tǒng)映像復(fù)制到SDRAM后ARM9/嵌入式網(wǎng)關(guān)執(zhí)行。
  3、串口部分
  串口部分設(shè)計(jì)使用了2路UART,其中,一路通過(guò)電平轉(zhuǎn)換芯片MAX232,把3.3V的邏輯電平轉(zhuǎn)換為RS-232-C的邏輯電平進(jìn)行傳輸,實(shí)現(xiàn)ARM與PC機(jī)之間的通信,通過(guò)超級(jí)終端可在PC機(jī)上進(jìn)行調(diào)試;另一路串行接口使用MAX1485進(jìn)行電平轉(zhuǎn)換,實(shí)現(xiàn)從RS-485上接收現(xiàn)場(chǎng)總線發(fā)送的信息。
  4、JTAG調(diào)試接口
  在嵌入式ARM9/嵌入式網(wǎng)關(guān)系統(tǒng)中,芯片的燒寫(xiě)、調(diào)試都需要用到JTAG調(diào)試接口,可滿足實(shí)時(shí)地實(shí)現(xiàn)對(duì)程序的分析和執(zhí)行的監(jiān)控。JTAG(Joint Test Action Group)是IEEE的規(guī)范標(biāo)準(zhǔn),它可以通過(guò)現(xiàn)有的JTAG邊界掃描與ARMCPU內(nèi)核進(jìn)行通信,屬于完全非插入式(不占用片上資源)調(diào)試,它無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口,而這些是普通的駐留監(jiān)控軟件所必需的。另外,JTAG調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行的,仿真更接近于ARM9/嵌入式網(wǎng)關(guān)目標(biāo)硬件,仿真結(jié)果與真實(shí)的運(yùn)行環(huán)境更為接近,因此,逐漸成為采用更多的一種調(diào)試方式。
  5、以太網(wǎng)接口
  本文ARM9/嵌入式網(wǎng)關(guān)以太網(wǎng)接口中所使用的芯片有RTL8019AS、74LVC4245、FB2022(網(wǎng)卡變壓器)。RTL8019AS是性價(jià)比高且?guī)в屑床寮从霉δ艿娜p工以太網(wǎng)控制器,其主要特點(diǎn)包括:符合EtherNetⅡ與IEEE802.3標(biāo)準(zhǔn);全雙工,收發(fā)可同時(shí)達(dá)到10Mb/s的速率,內(nèi)置16KB的SRAM,用于收發(fā)緩沖,減低對(duì)主處理器的要求;支持UTP、AUI、BNC自動(dòng)檢測(cè),還支持對(duì)10BaseT拓?fù)浣Y(jié)構(gòu)的自動(dòng)極性修正;允許4個(gè)診斷LED引腳編程輸出。RTL8019AS內(nèi)部有2塊RAM區(qū),1塊16KB,地址為0x4000~0x7fff;1塊32Byte,地址為0x0000~0x001f。RAM按頁(yè)存儲(chǔ),每256Byte為1頁(yè)。本方案中將RTL8019AS的RAM的前12頁(yè)(0x4000~0x4Bfff)作為發(fā)送緩沖區(qū);后52頁(yè)(0x4c00~0x7fff)作為接收緩沖區(qū);第0頁(yè)只有32Byte,用來(lái)存儲(chǔ)以太網(wǎng)的物理地址。
  RTL8019AS芯片的引腳SA0~SA19為地址總線;SD0~SD15為數(shù)據(jù)總線;引腳INT0接S32C410芯片的外部中斷信號(hào);引腳AEN是地址使能腳,作為芯片的選通信號(hào),將中斷接到CPU的nGCS3地址映射到bank3。RTL8019AS的地址空間范圍是0x18000300~0x1800031f。引腳IOS0~3設(shè)置為接地或空閑,表明RTL8019AS內(nèi)部寄存器總線地址從300H開(kāi)始。
  引腳X1、X2接一個(gè)20MHz的無(wú)源晶振,作為外部時(shí)鐘信號(hào)輸入;引腳JP接高電平,選擇跳線模式:引腳IORB、IOWB作為輸入輸出讀寫(xiě)指令端;引腳RSTDRV是復(fù)位端,連接復(fù)位信號(hào);引腳SMEMRB、SMEMWB是芯片的存儲(chǔ)器讀命令和寫(xiě)命令。
  引腳TPIN+,TPIN-、TPOUT+,TPOUT-作為媒體接口管腳,是接收IP數(shù)據(jù)報(bào)所需要用到的管腳,在設(shè)計(jì)網(wǎng)卡芯片電路時(shí)通過(guò)一個(gè)隔離變壓器和RJ-45的網(wǎng)絡(luò)外接口相連,外部主機(jī)通過(guò)以太網(wǎng)網(wǎng)線與RJ-45接口進(jìn)行連接,實(shí)現(xiàn)數(shù)據(jù)交換。
  隔離變壓器的TD+管腳連接網(wǎng)卡芯片的TPOUT+引腳;TD-連接TPOUT-;RD+連接TPIN+;RD-連接TPIN-。8019通過(guò)隔離變壓器與RJ-45連接,實(shí)現(xiàn)與主機(jī)進(jìn)行接收和發(fā)送IP數(shù)據(jù)報(bào)等工作。
  此外,硬件部分還包括電源電路、晶振電路、復(fù)位電路,在此就不一一介紹。
  二、軟件部分設(shè)計(jì)
  嵌入式ARM9/嵌入式網(wǎng)關(guān)系統(tǒng)的軟件部分分為BootLoader的編寫(xiě)、操作系統(tǒng)與文件系統(tǒng)的移植、應(yīng)用程序的編寫(xiě)三部分。
  1、BootLoader的編寫(xiě)
  BootLoader是系統(tǒng)加電后運(yùn)行的第1段軟件代碼,即處理器芯片復(fù)位后進(jìn)入操作系統(tǒng)之前執(zhí)行的一段代碼,主要是為運(yùn)行操作系統(tǒng)提供基本的運(yùn)行環(huán)境,如初始化CPU堆棧、初始化存儲(chǔ)器系統(tǒng)等。BootLoader代碼與CPU芯片的內(nèi)核結(jié)構(gòu)、具體芯片和使用的操作系統(tǒng)等因素有關(guān),其功能類似于PC機(jī)的BIOS。通過(guò)運(yùn)行BootLoader程序,可以初始化存儲(chǔ)器等硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
  其一般編寫(xiě)的步驟為:
  (1)屏蔽所有的中斷。為中斷提供服務(wù)通常是操作系統(tǒng)或設(shè)備驅(qū)動(dòng)程序的責(zé)任,因此,在BootLoader的執(zhí)行全過(guò)程中可以不必響應(yīng)任何中斷;
  (2)設(shè)置中斷向量;
  (3)設(shè)定存儲(chǔ)器控制寄存器;
  (4)初始化堆棧和寄存器。系統(tǒng)堆棧初始化取決于用戶使用了哪些中斷,以及系統(tǒng)需要處理哪些錯(cuò)誤類型、并且定義處理器的幾種工作方式。一般來(lái)說(shuō)管理者堆棧必須設(shè)置,如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置;
  (5)如有必要?jiǎng)t需要改變處理器模式、狀態(tài);
  (6)初始化C語(yǔ)言所需的存儲(chǔ)器空間。為正確運(yùn)行應(yīng)用程序,在初始化期間應(yīng)將系統(tǒng)需要讀寫(xiě)的數(shù)據(jù)和變量從ROM拷貝到RAM中。一些要求快速響應(yīng)的程序,如中斷處理程序,需要在RAM中運(yùn)行;如果使用Flash,對(duì)Flash的擦除和寫(xiě)入操作也是在RAM里運(yùn)行的。
  嵌入式系統(tǒng)的啟動(dòng)程序是嚴(yán)重依賴于硬件的,所以需要用匯編語(yǔ)言來(lái)進(jìn)行編寫(xiě)。完成上述步驟后,系統(tǒng)就完成了對(duì)硬件和軟件運(yùn)行環(huán)境的初始化。最后將實(shí)時(shí)操作系統(tǒng)代碼從Flash讀入到內(nèi)存空間中,開(kāi)始運(yùn)行實(shí)時(shí)操作系統(tǒng)。
  2、操作系統(tǒng)與文件系統(tǒng)的移植
  Linux作為一種優(yōu)秀的操作系統(tǒng),近幾年在嵌入式領(lǐng)域異軍突起,成了最有潛力的嵌入式操作系統(tǒng)。突出的一個(gè)優(yōu)點(diǎn)就是免版稅和開(kāi)放源碼,另外它可應(yīng)用于多種硬件平臺(tái),具有良好的移植性、高的可靠性、優(yōu)秀的網(wǎng)絡(luò)功能、完備的文件系統(tǒng)以及豐富的API,為嵌入式網(wǎng)關(guān)提供了強(qiáng)大的軟件支持。因此,本文選擇Linux作為嵌入式網(wǎng)關(guān)的操作系統(tǒng)。
  對(duì)Linux的移植有以下幾個(gè)步驟:
  (1)下載Linux源代碼,建立交叉編譯環(huán)境;
  (2)配置和編譯內(nèi)核;
  (3)制作文件系統(tǒng),編寫(xiě)相應(yīng)的設(shè)備驅(qū)動(dòng)程序;
  (4)下載,調(diào)試和執(zhí)行內(nèi)核,并在文件系統(tǒng)中添加自己的應(yīng)用程序。
  3、應(yīng)用程序的編寫(xiě)
  本文利用Socket套接字和TCP/IP協(xié)議編寫(xiě)了一個(gè)簡(jiǎn)單的客戶機(jī)/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用程序。因?yàn)楸鞠到y(tǒng)只是起到網(wǎng)關(guān)的作用,只需實(shí)現(xiàn)現(xiàn)場(chǎng)總線和以太網(wǎng)上位機(jī)兩方之間的通信,并不需要處理其數(shù)據(jù)的邏輯意義和內(nèi)容。在這種模式下,以太網(wǎng)上位機(jī)被設(shè)定為服務(wù)器,它運(yùn)行了服務(wù)器端的應(yīng)用程序。該程序主要用于監(jiān)聽(tīng)服務(wù)器端口、接受客戶端的連接請(qǐng)求、接受客戶端的信息、向客戶端發(fā)送信息等。網(wǎng)關(guān)系統(tǒng)中運(yùn)行的是客戶端程序,該程序主要是用于申請(qǐng)連接到服務(wù)器、將現(xiàn)場(chǎng)總線方發(fā)來(lái)的消息向服務(wù)器發(fā)送、處理服務(wù)器發(fā)來(lái)的信息、將這些信息發(fā)送給現(xiàn)場(chǎng)總線系統(tǒng)。應(yīng)用程序軟件流程如圖2所示。
  圖片點(diǎn)擊可在新窗口打開(kāi)查看
  軟件中調(diào)用的函數(shù)主要有:
  (1)intsocket(intfamily,inttype,intprotocol)。此函數(shù)為通信創(chuàng)建一個(gè)端口,若正常調(diào)用將返回一個(gè)整型的文件描述符,錯(cuò)誤調(diào)用將返回-1。
  (2)intbind(intsockfd,conststructsockaddr*address,size-taddress-len)。此函數(shù)一旦Socket調(diào)用成功并返回了一個(gè)文件描述符,便將該Socket與服務(wù)器本機(jī)上一個(gè)端口相關(guān)聯(lián),就可以在該端口監(jiān)聽(tīng)服務(wù)請(qǐng)求。該函數(shù)只用于服務(wù)器端程序,客戶端無(wú)須調(diào)用此函數(shù)。
  (3)intlisten(ints,intbacklog)。服務(wù)器用來(lái)監(jiān)聽(tīng)是否有服務(wù)請(qǐng)求。
  (4)intaccept(intsockfd,void*addr,int*addrlen)。連接端口的服務(wù)請(qǐng)求。但某個(gè)客戶端試圖與服務(wù)器監(jiān)聽(tīng)的端口連接時(shí),該連接請(qǐng)求將排隊(duì)等待服務(wù)器調(diào)用此函數(shù)接受它。
  (5)intsend(intsockfd,constvoid*msg,intlen,intflags);recv(intsockfd,void*buf,intlen,unsignedintflags)。發(fā)送和接收數(shù)據(jù)。
  (6)intconnect(intsockfd,structsockaddr*serv-addr,intaddrlen)。此函數(shù)用來(lái)與遠(yuǎn)端服務(wù)器建立一個(gè)TCP連接。
  (7)intclose(intsockfd)。結(jié)束數(shù)據(jù)傳輸。
]]>
一款識(shí)別技術(shù)硬件針對(duì)穩(wěn)定性AT91SAM7X256嵌入式處理器指紋識(shí)別生物識(shí)別系統(tǒng)的設(shè)計(jì)方案 指紋 指紋識(shí)別 生物識(shí)別 AT91SAM7X256 嵌入式 識(shí)別技術(shù) 識(shí)別系統(tǒng) 穩(wěn)定性 硬件 節(jié)點(diǎn)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1491&Page=1wangxinxin2010-11-19 9:48:19生物識(shí)別技術(shù),可以讓OEM們順應(yīng)嵌入式市場(chǎng)的潮流:。顧名思義就是一種個(gè)人身份鑒定的方法,把id:3:default 中的3代表字符終端模式,這種方法和傳統(tǒng)鑒定身份不同,因此采用二 階帶反饋的有源濾波器,其是通過(guò)人體固有的生理特性(如指紋、臉象、紅膜等)和行為特征(如筆跡、聲音、步態(tài)等)來(lái)進(jìn)行的。任務(wù)執(zhí)行一次后,比起傳統(tǒng)的身份鑒定方式,是用戶程序和操作系統(tǒng)之間的聯(lián)系橋梁。生物識(shí)別技術(shù)憑借著更安全、保密和方便性有著明顯的優(yōu)勢(shì)。但由于其功能強(qiáng)大、源代碼開(kāi)放以及可移植性強(qiáng)等優(yōu)勢(shì),另外生物識(shí)別技術(shù)還具有防偽性能好、不易遺忘、不易偽造或被盜、并且還能隨身攜帶和隨時(shí)隨地可以使用的優(yōu)點(diǎn)。mount –t nfs –o nolock 192.168.1.100:/source/rootf /var/mnt 然后將上一步生成的lib庫(kù)文件考到掛載的根文件系統(tǒng)的/home/qt/build/lib目錄下 cp /home/linux/qt4_port/qt/build/lib/libQt* /source/rootfs/home/qt/build/lib 四. 拷貝顯示中文的文泉驛字體到根文件系統(tǒng)的相應(yīng)目錄下:。

利用生物識(shí)別設(shè)備對(duì)生物特征進(jìn)行取樣,可以提供全方位的安全監(jiān)測(cè)保障。生物識(shí)別提取其唯一的特征并將其轉(zhuǎn)化成數(shù)字代碼,MC +VHW+AHW-在該配置中,并進(jìn)一步將這些代碼組成特征模板,●TMS320C54x處理器;人們同識(shí)別設(shè)備交互進(jìn)行身份認(rèn)證時(shí),基于C6000的嵌入式系統(tǒng)一般采用引導(dǎo)三片上程序存儲(chǔ)器執(zhí)行的工作方式,識(shí)別設(shè)備獲取其特征并與數(shù)據(jù)庫(kù)中的特征模板進(jìn)行比對(duì),然后再跳轉(zhuǎn)至內(nèi)核入口處運(yùn)行。以確定是否匹配,該任務(wù)執(zhí)行一次后刪除,從而決定接受或拒絕該人。使用例化調(diào)用了S盒。而在眾多的用于身份驗(yàn)證的生物識(shí)別技術(shù)中,使用Windows Embedded Compact 7的連接性,指紋識(shí)別技術(shù)是目前最方便、可靠、非侵害和價(jià)格便宜的解決方案。靜態(tài)函數(shù)庫(kù):。

作為人體中最明顯的外表特征,圖2是光敏電路的基本原理圖。指紋具有獨(dú)一無(wú)二、普遍性、唯一性、易于采集等優(yōu)點(diǎn)。稱為 SPSR(備份程序狀態(tài)寄存器)。利用人類指紋穩(wěn)定性和獨(dú)特性的生理特征,這種DSP包含多種不同的運(yùn)算處理單元:。指紋鑒定技術(shù)成為了人們身上的一種“活的身份證”,使用硬件定時(shí)器作為時(shí)鐘中斷源,并且指紋具有不可替代性,其作用是承受賽車(chē)的靜態(tài)重量、動(dòng)態(tài)沖擊載荷以及吸收賽車(chē)剎車(chē)時(shí)的動(dòng)能,使通過(guò)指紋進(jìn)行身份鑒定的安全性大大提高,并且可以把儀器采集到的數(shù)據(jù)讀人計(jì)算機(jī)中,且隨著圖像處理模式識(shí)別方法的發(fā)展和指紋傳感器技術(shù)的日臻成熟,其目的無(wú)非是記錄真實(shí)的程序運(yùn)行流;指紋鑒定方法在金融、公安、門(mén)禁、戶籍管理等領(lǐng)域都有著良好的應(yīng)用前景。(1)調(diào)試器與被調(diào)試程序的通信 調(diào)試器與目標(biāo)操作系統(tǒng)通過(guò)指定通信端口(串口、網(wǎng)卡、并口)遵循遠(yuǎn)程調(diào)試協(xié)議進(jìn)行通信(遠(yuǎn)程調(diào)試協(xié)議。指紋的采集相對(duì)容易;通用的桌面操作系統(tǒng)與嵌入式操作系統(tǒng)在調(diào)試環(huán)境上存在明顯的差別。指紋的識(shí)別算法已經(jīng)較為成熟。而不會(huì)破壞對(duì)再現(xiàn)問(wèn)題起關(guān)鍵作用的敏感時(shí)序。由于指紋識(shí)別具有掃描指紋的速度快、方便、小型化等優(yōu)點(diǎn),接口的核心是Xilinx三態(tài)以太網(wǎng)MAC核,指紋識(shí)別技術(shù)已經(jīng)逐漸進(jìn)入民用市場(chǎng),需要自己編寫(xiě)其的設(shè)備驅(qū)動(dòng)程序。并應(yīng)用到許多嵌入式設(shè)備中,圖:。但是如何提高指紋識(shí)別系統(tǒng)的識(shí)別率和穩(wěn)定性,中斷系統(tǒng)的功能 1)實(shí)現(xiàn)中斷響應(yīng)和中斷返回 當(dāng)CPU收到中斷請(qǐng)求后,降低成本以及擴(kuò)展穩(wěn)定性和節(jié)點(diǎn)分布,這時(shí)可用DSP中的軟件處理音頻。存在著一系列技術(shù)難題。若 LD01為低電平,

因此,現(xiàn)在已發(fā)展成為調(diào)試數(shù)據(jù)通信、無(wú)線系統(tǒng)和其他實(shí)時(shí)嵌入式應(yīng)用的通用接口。本文研究了以內(nèi)含ARM核的微處理器AT91SAM7X256為核心,柵格模式系統(tǒng)。外部擴(kuò)展指紋傳感器MBF200構(gòu)成指紋識(shí)別服務(wù)器硬件;圖5所示為通過(guò)測(cè)試平臺(tái)的數(shù)據(jù)流。系統(tǒng)軟件移植實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-Ⅱ、文件系統(tǒng)、LwIP,智能家居報(bào)警網(wǎng)絡(luò)框圖如圖1所示。應(yīng)用軟件實(shí)現(xiàn)指紋識(shí)別。●選擇正確的架構(gòu),

該方法具有成本低、占用資源少、可擴(kuò)展性強(qiáng)的特點(diǎn)。其中一個(gè)是用戶模式和系統(tǒng)模式共用的。

1 分布式指紋識(shí)別系統(tǒng)原理及硬件設(shè)計(jì)

指紋識(shí)別技術(shù)主要涉及4個(gè)功能模塊:二者往往通過(guò)一塊簡(jiǎn)單的信號(hào)轉(zhuǎn)換電路板連接(如下圖所示)。讀取指紋圖像、提取特征、保存數(shù)據(jù)和比對(duì)。只要從Windows自動(dòng)更新里,通過(guò)指紋讀取設(shè)備讀取到人體指紋的圖像,rm 刪除命令,然后對(duì)原始圖像進(jìn)行初步處理,該方案將物理層和MAC分開(kāi),使之更清晰,電壓信號(hào)送到電流監(jiān)控芯片進(jìn)行放大,再通過(guò)指紋辨識(shí)軟件建立指紋的特征數(shù)據(jù)。應(yīng)用程序是一個(gè)無(wú)限的循環(huán),軟件從指紋上找到被稱為“節(jié)點(diǎn)”(minutiae)的數(shù)據(jù)點(diǎn),OSInetEnter()是任務(wù)堆棧初始化函數(shù),即指紋紋路的分叉、終止或打圈處的坐標(biāo)位置,最后 一種設(shè)計(jì)包含1個(gè)微控制器,這些點(diǎn)同時(shí)具有7種以上的唯一性特征。Property Node(屬性節(jié)點(diǎn))以及Interface Specific(指定接口)子模板、Event Handling(事件處理)子模板、High Level RegisterAccess(高級(jí)寄存器讀寫(xiě))子模板、Low Level Register Access(低級(jí)寄存器讀寫(xiě))子模板等幾個(gè)部分。通常手指上平均具有70個(gè)節(jié)點(diǎn),而且與同等的單內(nèi)核處理器相比具有低功耗和低成本的優(yōu)點(diǎn)。所以這種方法會(huì)產(chǎn)生大約500個(gè)數(shù)據(jù)。先設(shè)置一些必要的環(huán)境變量,這些數(shù)據(jù),適用于小型的高端CPU。通常稱為模板。由匯編語(yǔ)言編寫(xiě)。通過(guò)計(jì)算機(jī)模糊比較的方法。他們有時(shí)還會(huì)使用中間臨界電壓(middle-VT)的電晶體。把兩個(gè)指紋的模板進(jìn)行比較,因此也遵循了signal、slot消息機(jī)制,計(jì)算出它們的相似程度,RA3端口則從輸出變?yōu)檩斎?最終得到兩個(gè)指紋的匹配結(jié)果。使Linux內(nèi)核成為完全可被搶占實(shí)時(shí)內(nèi)核,

硬件電路的實(shí)現(xiàn)以微處理器AT91SAM7X256為核心,或者通過(guò)Expression Blend,外圍電路主要包括指紋識(shí)別模塊MBF200、以太網(wǎng)物理層(PHY)收發(fā)器RTL8201BL,系統(tǒng)工作正常后,大容量的數(shù)據(jù)FlashAT45DBl61D、硬件日歷時(shí)鐘器件DSl302,芯片7660將+9V的電壓變?yōu)?9V,電源電路、復(fù)位和時(shí)鐘電路,因此還需要編寫(xiě)轉(zhuǎn)換程序把BOOT.HEX文件再轉(zhuǎn)換為BOOT.BIN二進(jìn)制文件;如圖1所示。這就能反映于芯片外總線從而被外接的邏輯分析儀記錄,

1.1 AT91SAM7X256器件及MBF200模塊應(yīng)用

AT91SAM7X256是ATMEL公司推出的基于32位ARM7TDMI的微處理器。調(diào)用解析器檢驗(yàn)關(guān)鍵字是否合法,它在一塊芯片上還集成了256 kh的片內(nèi)Flash和64 kb的SRAM,看出來(lái)了吧,無(wú)需外部擴(kuò)展存儲(chǔ)器。由于處理器的多數(shù)存取動(dòng)作都會(huì)命中第一層快取記憶體,其內(nèi)部還集成有USB2.0設(shè)備端口,CPU執(zhí)行有關(guān)的中斷處理程序稱為中斷處理。以及豐富的片內(nèi)外設(shè)資源,集電極上便有2.2 V左右的電壓,功能強(qiáng)大。圖3 文件的原路徑和目標(biāo)板路徑 圖形界面Qtopia的編譯 Qtopia 是基于Qt/E的圖形界面應(yīng)用程序集,AT9lSAM7X256的復(fù)位控制器可以管理芯片的上電順序及整個(gè)系統(tǒng)。在預(yù)視模式必須不斷顯示最新畫(huà)面,微控制器具備嵌入式10/100 Mb/s以太網(wǎng)(Ethernet)MAC、CAN、全速(12 Mb/s)USB2.0,首先關(guān)斷系統(tǒng)的總中斷,針對(duì)廣泛的網(wǎng)絡(luò)化實(shí)時(shí)嵌入式系統(tǒng)而設(shè)計(jì)的,settings里EDA Tool Settings —>Simulation選擇“none”,其性能穩(wěn)定、功能強(qiáng)大,具有最近截止期限的任的優(yōu)先級(jí)最高。能夠廣泛應(yīng)用于協(xié)議轉(zhuǎn)換、通信、工業(yè)控制領(lǐng)域。在USB Host 得到上述描述符后,應(yīng)用AT91SAM7X256開(kāi)發(fā)指紋識(shí)別系統(tǒng)可以有效控制成本。從而提高市場(chǎng)占有率。工業(yè)網(wǎng)絡(luò)需要極強(qiáng)的穩(wěn)定性,這種靈活性同樣適用于數(shù)字濾波器塊等功能塊。但實(shí)驗(yàn)證明超過(guò)60%的總線帶寬使用率就會(huì)造成沖突。

]]>
LPC2214的在線式UPS硬件設(shè)計(jì)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1490&Page=1wangxinxin2010-11-19 9:43:092.4 供電模塊

  LPC2214是雙電源工作,分為CPU操作電壓(1.8 V)和I/O操作電壓(3.3 V),相應(yīng)地需要兩種電壓的電源。本設(shè)計(jì)采用的低壓差線性穩(wěn)壓器LDO為T(mén)I公司的TPS73xx系列穩(wěn)壓器,將5 V電壓穩(wěn)壓成主控芯片的3.3 V和1.8 V。TPS73xx系列芯片是雙路輸出,輸出電流可達(dá)250 mA,內(nèi)部集成電壓監(jiān)控器監(jiān)視器,噪聲低,負(fù)載/線路瞬態(tài)響應(yīng)優(yōu)良。圖4為雙路LDO電源。5 V電源來(lái)自采用飛兆公司的FSDM0265設(shè)計(jì)的反激式開(kāi)關(guān)電源。反激式開(kāi)關(guān)電源設(shè)計(jì)輸入電壓為AC 85~265 V。當(dāng)市電正常供電時(shí),使用市電;當(dāng)市電電網(wǎng)斷電時(shí),由電池的電壓向反激式開(kāi)關(guān)電源供電,生成電路中應(yīng)用的低壓直流電源。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  2.5 工作存儲(chǔ)模塊

  工作存儲(chǔ)模塊采用NAND Flash K9F2G16U0M。其內(nèi)部采用非線性宏單元模式,固態(tài)大容量存儲(chǔ);容量為256 MB,采用頁(yè)寫(xiě)模式;通過(guò)并行數(shù)據(jù)接口連接到數(shù)據(jù)總線,可以快速地進(jìn)行存儲(chǔ)或讀取。

  工作信息分為環(huán)境信息和系統(tǒng)信息。環(huán)境信息有電網(wǎng)電壓、環(huán)境溫度等;系統(tǒng)信息有輸入電流、輸入電壓、輸出電壓、輸出電流、充電電壓、電池信息、斷電次數(shù)、斷電時(shí)間等。電池信息又分為電池溫度、放電程度、放電電流、充電時(shí)間、電池電壓等。為了數(shù)據(jù)移動(dòng)方便,在總線上連接了USB模塊。USB芯片選用Philips公司的高性能USB接口器件PDIUSBD12。用戶可以通過(guò)網(wǎng)絡(luò)監(jiān)控將存儲(chǔ)模塊中的數(shù)據(jù)上傳,或者用移動(dòng)數(shù)據(jù)存儲(chǔ)設(shè)備將數(shù)據(jù)拷貝。如圖5所示,工作時(shí)將數(shù)據(jù)存儲(chǔ)到K9F2G16U0M中。當(dāng)檢測(cè)到USB有外接時(shí),將當(dāng)前存儲(chǔ)的數(shù)據(jù)打包,通過(guò)USB接口發(fā)送數(shù)據(jù)。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  2.6 網(wǎng)絡(luò)接口模塊

  UPS系統(tǒng)在向網(wǎng)絡(luò)化、智能化發(fā)展,所以在主控模塊電路中設(shè)計(jì)了網(wǎng)絡(luò)接口,如圖6所示。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  網(wǎng)絡(luò)接口模塊采用CP2200芯片。CP2200是Silicon Labs公司推出的獨(dú)立以太網(wǎng)控制器。符合。IEEE802.3協(xié)議,內(nèi)置10 Mbps以太物理層器件PHY及媒介接入控制器MAC,具有可編程填充和CRC自動(dòng)生成功能;具備可編程濾波功能和特殊的過(guò)濾器,可自動(dòng)評(píng)價(jià),接收或拒收Magic Packet、單播、多播等信息包;支持Intel和Mo-torola兩種總線方式;具有8 KBFlash存儲(chǔ)器,可對(duì)其靈活編程。遠(yuǎn)程接口不僅可以向用戶提供遠(yuǎn)程監(jiān)控等服務(wù),同時(shí)也可以通過(guò)網(wǎng)絡(luò)接口將系統(tǒng)軟件升級(jí)。圖6中,F(xiàn)C-518LS隔離器將網(wǎng)絡(luò)與主控芯片電氣隔離,保護(hù)系統(tǒng)不受網(wǎng)絡(luò)中的雜波信號(hào)干擾,提高系統(tǒng)的穩(wěn)定性。

  3 結(jié) 論

  基于LPC2214的數(shù)字化UPS,簡(jiǎn)化了電路的硬件設(shè)計(jì),降低了硬件成本,提高了UPS的可靠性,擴(kuò)大了升級(jí)空間和產(chǎn)品的多樣性。通過(guò)搭建實(shí)驗(yàn)性電路與程序的結(jié)合,驗(yàn)證了設(shè)計(jì)的正確性,為后續(xù)研究提供了一定的實(shí)驗(yàn)基礎(chǔ)。

]]>
嵌入式數(shù)字多媒體終端硬件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1489&Page=1wangxinxin2010-11-19 9:42:23引言
    隨著信息時(shí)代的到來(lái),信息技術(shù)尤其是計(jì)算機(jī)多媒體技術(shù)與網(wǎng)絡(luò)技術(shù)飛速發(fā)展,語(yǔ)音教室在各種學(xué)校都已有了廣泛的應(yīng)用,F(xiàn)存的語(yǔ)音教學(xué)系統(tǒng)一般都是采用模擬電路,可靠性低,抗干擾性弱,易發(fā)生串音,從而在傳輸過(guò)程中會(huì)失真、衰減,且易受干擾,導(dǎo)致語(yǔ)音質(zhì)量較差,同時(shí)布線也較復(fù)雜,建設(shè)成本比較高;另外現(xiàn)存的解決方案實(shí)現(xiàn)的功能較為單一,只能完成簡(jiǎn)單的教學(xué)功能,沒(méi)有提供隨意分組討論、點(diǎn)名、選擇題問(wèn)答等應(yīng)有的功能;另外,現(xiàn)存的解決方案沒(méi)有發(fā)揮出現(xiàn)有的多媒體網(wǎng)絡(luò)技術(shù)優(yōu)勢(shì),無(wú)法進(jìn)行高效、生動(dòng)的多媒體教學(xué),交互性比較差,教學(xué)效果受到很大的影響,嚴(yán)重影響了在實(shí)際教學(xué)中的推廣與應(yīng)用。要解決傳統(tǒng)語(yǔ)音教學(xué)面臨的問(wèn)題必須引入數(shù)字化的設(shè)計(jì)。 

數(shù)字多媒體終端的硬件設(shè)計(jì)與實(shí)現(xiàn)
    數(shù)字語(yǔ)音教學(xué)系統(tǒng)由教師端、多個(gè)學(xué)生端(數(shù)字多媒體終端)、數(shù)字傳輸網(wǎng)絡(luò)組成。其中,教師端一般采用計(jì)算機(jī)控制,主要完成系統(tǒng)管理及網(wǎng)絡(luò)管理。學(xué)生端既可以基于PC機(jī)平臺(tái),也可以采用經(jīng)濟(jì)型獨(dú)立設(shè)備。數(shù)字傳輸網(wǎng)絡(luò)是所要傳輸?shù)亩嗝襟w信息的載體。本文就是針對(duì)學(xué)生端設(shè)計(jì)一種經(jīng)濟(jì)實(shí)用的獨(dú)立設(shè)備。它采用嵌入式數(shù)字信號(hào)處理器DSP+CPLD+接口電路的設(shè)計(jì)模式。數(shù)字信號(hào)處理器DSP實(shí)現(xiàn)語(yǔ)音信號(hào)的處理、網(wǎng)絡(luò)接口部分的控制及多任務(wù)的管理。CPLD完成網(wǎng)絡(luò)適配部分設(shè)計(jì)及部分外圍電路控制。接口電路包含網(wǎng)絡(luò)接口、模擬語(yǔ)音輸入輸出接口。語(yǔ)音傳輸中要保證語(yǔ)音傳輸?shù)膶?shí)時(shí)性和交互性,實(shí)現(xiàn)學(xué)生端與教師端和其他學(xué)生端的通信。

    硬件平臺(tái)構(gòu)造于DSP嵌入式系統(tǒng)上,該平臺(tái)采用了TI公司的數(shù)字信號(hào)處理器TMS320VC5402作為核心部件,利用可編程邏輯器件XC95288開(kāi)發(fā)了外圍控制電路和接口電路,其電路如圖1所示。它主要包括以下幾部分:
圖片點(diǎn)擊可在新窗口打開(kāi)查看
          圖1 嵌入式多媒體終端硬件平臺(tái)結(jié)構(gòu)框圖
 
多種設(shè)備接口
    包括網(wǎng)絡(luò)輸入、輸出接口、話筒輸入接口和耳機(jī)輸出接口。 

語(yǔ)音信號(hào)前置放大 
    由于從話筒輸入的語(yǔ)音信號(hào)比較微弱(1~30mV),達(dá)不到編解碼器對(duì)信號(hào)強(qiáng)度的要求,因此必須進(jìn)行前置放大,這里由專用前置放大芯片完成。 

語(yǔ)音信號(hào)的轉(zhuǎn)換及編解碼
    語(yǔ)音信號(hào)的A/D,D/A轉(zhuǎn)換及編解碼功能是利用MC145480完成的,它的優(yōu)點(diǎn)是:①可將語(yǔ)音信號(hào)的A/D,D/A轉(zhuǎn)換及編解碼集成在一個(gè)芯片中,提高了系統(tǒng)穩(wěn)定性;②只需單電源供電,減少了雙電源供電所帶來(lái)的電源干擾問(wèn)題,提高了語(yǔ)聲質(zhì)量;③可提供A律及m律兩種編碼格式,提供符合ITU-T G.711建議的語(yǔ)音數(shù)據(jù)流。
系統(tǒng)控制、管理與語(yǔ)音壓縮

    由數(shù)字信號(hào)處理器TMS320VC5402完成。該芯片處理速度快,可實(shí)現(xiàn)語(yǔ)音的實(shí)時(shí)處理,并實(shí)現(xiàn)語(yǔ)音的回聲抑制功能。除了能完成DSP所提供的功能外,利用內(nèi)嵌的DSP/BIOS實(shí)時(shí)操作系統(tǒng),可實(shí)現(xiàn)并建立語(yǔ)音實(shí)時(shí)多任務(wù)系統(tǒng)。

網(wǎng)絡(luò)適配電路
    本網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)參考令牌總線網(wǎng),物理拓?fù)洳捎每偩型結(jié)構(gòu),由一根線形的電纜連接各個(gè)站點(diǎn)。邏輯拓?fù)洳捎铆h(huán)形結(jié)構(gòu),每個(gè)站點(diǎn)知道自己左邊和右邊站點(diǎn)的地址,在邏輯上構(gòu)成一個(gè)環(huán),數(shù)據(jù)沿環(huán)逐節(jié)點(diǎn)順序傳送。這種物理結(jié)構(gòu)具有以太網(wǎng)電纜的可靠性,不會(huì)因某處電纜故障物而在物理上導(dǎo)致整個(gè)系統(tǒng)癱瘓。其所需電纜長(zhǎng)度短,安裝費(fèi)用低,易于布線、維護(hù)和擴(kuò)充。而且,物理上共享總線的站點(diǎn)之間可以直接通信,響應(yīng)速度較快。同時(shí),由于總線電纜固有的廣播特性,使得應(yīng)用中廣播功能的實(shí)現(xiàn)較為容易。另外,由于邏輯環(huán)是公平的,每一站點(diǎn)對(duì)信道的訪問(wèn)時(shí)間有一個(gè)確定的上界,因此可以防止某一站點(diǎn)獨(dú)占信道這種情況的發(fā)生。共享媒體語(yǔ)音網(wǎng)是一個(gè)局域通信網(wǎng)絡(luò),它沒(méi)有路由問(wèn)題,任何兩個(gè)站點(diǎn)之間可以使用一條直接鏈路,所以不需要單獨(dú)設(shè)置網(wǎng)絡(luò)層,而可以將尋址、排序、流控、差錯(cuò)控制等功能都放在數(shù)據(jù)鏈路層中實(shí)現(xiàn)。

    該控制電路利用XILINX公司的可編程邏輯器件CX95288實(shí)現(xiàn)。網(wǎng)絡(luò)適配器把數(shù)據(jù)總線上的低電平并行信號(hào)轉(zhuǎn)換成0、1碼流,通過(guò)連接網(wǎng)絡(luò)各站點(diǎn)的電纜傳輸。它采用特殊技術(shù),以便利用適配器共享局域網(wǎng)線纜、局域網(wǎng)的介質(zhì)訪問(wèn)控制MAC方式和發(fā)送信號(hào)的類型。電路包括網(wǎng)絡(luò)接口、接收電路、發(fā)送電路及與DSP的接口電路。其中,網(wǎng)絡(luò)接口部分采用通用的RS-485通信接口,實(shí)現(xiàn)簡(jiǎn)單。共享媒體語(yǔ)音網(wǎng)絡(luò)的適配器電路結(jié)構(gòu)如圖2所示。
圖片點(diǎn)擊可在新窗口打開(kāi)查看 
             圖2 網(wǎng)絡(luò)適配器電路結(jié)構(gòu)

數(shù)字多媒體終端的軟件設(shè)計(jì)與實(shí)現(xiàn)
    數(shù)字多媒體終端系統(tǒng)除了利用DSP完成信號(hào)處理,實(shí)現(xiàn)全部系統(tǒng)控制功能之外,在系統(tǒng)軟件設(shè)計(jì)中,需要對(duì)DSP、存儲(chǔ)器、外設(shè)等各種資源加以管理,同時(shí)還要處理多任務(wù)并發(fā)操作和不同任務(wù)之間的協(xié)調(diào)。為了保證系統(tǒng)的可靠性和穩(wěn)定性,本文采用了DSP/BIOS實(shí)現(xiàn)上述工作。

DSP/BIOS實(shí)時(shí)操作系統(tǒng)
    DSP/BIOS是TI公司推出的一個(gè)實(shí)時(shí)操作系統(tǒng)(RTOS),與TI的Code Composer Studio(CCS)集成在一個(gè)開(kāi)發(fā)環(huán)境下。目前最新的版本是CCS 2.0 中的DSP/BIOS II。它支持軟件模塊化,通過(guò)修改內(nèi)核提供占先式多任務(wù)服務(wù);具有設(shè)備獨(dú)立的I/O數(shù)據(jù)流模型;可以對(duì)內(nèi)存進(jìn)行動(dòng)態(tài)分配與內(nèi)存管理。DSP/BIOS實(shí)際上是一個(gè)可調(diào)用的系統(tǒng)模塊API的集合,利用DSP/BIOS調(diào)試工具可以對(duì)程序進(jìn)行實(shí)時(shí)跟蹤與分析,提高應(yīng)用程序開(kāi)發(fā)的可靠性。通過(guò)DSP/BIOS 插件(Plug-ins)可實(shí)時(shí)觀察內(nèi)核中各線程的執(zhí)行狀態(tài)和對(duì)象的當(dāng)前屬性。利用配置工具(Configuration Tool)開(kāi)發(fā)者可以對(duì)各個(gè)模塊實(shí)行配置。非常有效地提高項(xiàng)目了開(kāi)發(fā)效率,簡(jiǎn)化了DSP應(yīng)用程序的開(kāi)發(fā)和調(diào)試。

DSP/BIOS實(shí)時(shí)語(yǔ)音處理多任務(wù)系統(tǒng)
    對(duì)語(yǔ)音信號(hào)的處理利用DSP/BIOS建立實(shí)時(shí)多任務(wù)系統(tǒng)。DSP與音頻編解碼器之間的通信通過(guò)DSP的外設(shè)多通道緩沖串行口(McBSP)實(shí)現(xiàn)閉環(huán)測(cè)試。簡(jiǎn)單的語(yǔ)音處理系統(tǒng)由采集線程和播放線程兩個(gè)應(yīng)用任務(wù)組成。每個(gè)應(yīng)用任務(wù)分別對(duì)應(yīng)一個(gè)輸入SIO和一個(gè)輸出SIO流,通過(guò)兩個(gè)半雙工通道(一個(gè)輸入,一個(gè)輸出)來(lái)訪問(wèn)連接到音頻編解碼器的DSP多通道緩沖串行口。另外,在兩個(gè)任務(wù)之間的數(shù)據(jù)交換通過(guò)DPI設(shè)備驅(qū)動(dòng)完成。具體實(shí)現(xiàn)包括:
● 建立設(shè)備驅(qū)動(dòng)
    設(shè)備驅(qū)動(dòng)采用DAX驅(qū)動(dòng)程序作為管理設(shè)備的軟件模塊。DAX驅(qū)動(dòng)模塊由DAX頭文件和DAX函數(shù)組成。DAX_Params作為配置工具設(shè)備驅(qū)動(dòng)對(duì)象的屬性。每個(gè)設(shè)備驅(qū)動(dòng)模塊同時(shí)還需要一個(gè)控制模塊,控制模塊由外部函數(shù)bind、start、stop和unbind等組成,通過(guò)DAX_Params參數(shù)結(jié)構(gòu)和配置工具配置控制器。其中,控制器的bind(unbind)函數(shù)負(fù)責(zé)綁定(解除綁定)設(shè)備驅(qū)動(dòng)模塊對(duì)設(shè)備端口的控制。控制器的start函數(shù)負(fù)責(zé)調(diào)用流SIO_get時(shí)打開(kāi)設(shè)備端口,也就是打開(kāi)McBSP的接收和發(fā)送中斷使ISR中斷服務(wù)線程正常運(yùn)行。控制器的stop函數(shù)使停止中斷運(yùn)行并關(guān)中斷。

    DAX函數(shù)由配置工具中設(shè)備對(duì)象的函數(shù)表調(diào)用,在dax.c中初始化驅(qū)動(dòng)函數(shù)表DAX_FXNS,DAX函數(shù)表的結(jié)構(gòu)如下所示:
DEV_Fxns DAX_FXNS = {
DAX_close,
DAX_ctrl,
DAX_idle,
DAX_issue,
DAX_open,
DAX_ready,
DAX_reclaim
};

    應(yīng)用程序不直接調(diào)用驅(qū)動(dòng)函數(shù),這個(gè)函數(shù)表用于SIO模塊調(diào)用特定的設(shè)備驅(qū)動(dòng)函數(shù),SIO模塊依次發(fā)送通常的函數(shù)調(diào)用適當(dāng)?shù)尿?qū)動(dòng)函數(shù)。

● 建立SIO流
    本文利用靜態(tài)配置工具為每個(gè)任務(wù)建立一個(gè)輸入流和一個(gè)輸出流,采樣線程對(duì)應(yīng)采樣輸入流inSample和輸出流outSample,播放線程對(duì)應(yīng)播放輸入流inSink和輸出流outSink。

● 建立任務(wù)
    系統(tǒng)利用DSP/BIOS建立兩個(gè)任務(wù)tasksample和tasksink,分別對(duì)應(yīng)Sample 和Sink線程,以完成語(yǔ)音的采集處理與播放處理。采樣線程Sample和播放線程Sink調(diào)用相同的I/O處理函數(shù),I/O處理函數(shù)如下所示:
static Void doStreaming(SIO_Handle input, SIO_Handle output, Uns nloops)
{
Ptr buf;
Int i, nbytes;
if ( SIO_staticbuf(input, &buf) == 0) {
SYS_abort("Error reading buffer");
}
while(1) {
if ((nbytes = SIO_get(input, &buf)) < 0) {
SYS_abort("Error reading buffer %d", i);
}
if (SIO_put(output, &buf, nbytes) < 0) {
SYS_abort("Error writing buffer %d", i);
}
}
}

    雖然兩個(gè)線程調(diào)用了相同的I/O處理函數(shù),但是由于對(duì)應(yīng)不同的輸入/輸出流,因此在多任務(wù)操作中,不會(huì)出現(xiàn)沖突。

● 建立中斷服務(wù)程序 
    使用HWI硬件中斷服務(wù)管理器HWI配置相應(yīng)的中斷服務(wù)程序ISR。當(dāng)接收發(fā)生中斷時(shí),ISR將接收的數(shù)據(jù)放入緩沖區(qū),當(dāng)接收緩沖區(qū)滿時(shí),通知設(shè)備驅(qū)動(dòng)程序DAX,將緩沖區(qū)的數(shù)據(jù)發(fā)送到inSample流中,供上層任務(wù)處理。

結(jié)語(yǔ)

    本文針對(duì)傳統(tǒng)模擬語(yǔ)音教學(xué)系統(tǒng)的弊端提出了數(shù)字語(yǔ)音教學(xué)系統(tǒng),并設(shè)計(jì)實(shí)現(xiàn)。該系統(tǒng)平臺(tái)主要為數(shù)字語(yǔ)音教室的隨意分組討論、點(diǎn)名、選擇題問(wèn)答、播放備課文件、回放等一系列功能提供了實(shí)現(xiàn)基礎(chǔ)。同時(shí)通過(guò)共享多種媒體,如聲音、音樂(lè)、文字、圖象等,減少時(shí)間浪費(fèi),使教學(xué)高效、生動(dòng),從而激發(fā)學(xué)生的學(xué)習(xí)積極性和想象力,有很好的開(kāi)發(fā)應(yīng)用價(jià)值。
]]>
基于EP9312的銀稅類嵌入式系統(tǒng)硬件設(shè)計(jì)方案http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=15&ID=1488&Page=1wangxinxin2010-11-19 9:41:28

內(nèi)容摘要:闡述了采用EP9312來(lái)構(gòu)造銀行稅務(wù)類嵌入式系統(tǒng)的理由,將EP9312與其它嵌入式處理器進(jìn)行了比較。

<iframe id="google_ads_frame1" name="google_ads_frame1" marginwidth="0" marginheight="0" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5977682010997732&amp;output=html&amp;h=280&amp;slotname=8221152630&amp;w=336&amp;lmt=1221903470&amp;ea=0&amp;flash=10.1.85.3&amp;url=http%3A%2F%2Ftech.ddvip.com%2F2008%2F07%2F121570324446725_5.html&amp;dt=1290130826656&amp;shv=r20101110&amp;jsv=r20101117&amp;saldr=1&amp;correlator=1290130826687&amp;frm=0&amp;adk=2438773293&amp;ga_vid=462419891.1289798367&amp;ga_sid=1290130827&amp;ga_hid=523256598&amp;ga_fc=1&amp;u_tz=480&amp;u_his=0&amp;u_java=1&amp;u_h=768&amp;u_w=1024&amp;u_ah=738&amp;u_aw=1024&amp;u_cd=32&amp;u_nplug=0&amp;u_nmime=0&amp;biw=993&amp;bih=590&amp;eid=30143103&amp;ref=http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25C7%25B6%25C8%25EB%25CA%25BD%25D3%25B2%25BC%25FE%25BC%25BC%25CA%25F5%25CC%25D6%25C2%25DB%26pn%3D60%26tn%3Dghostpc_pg&amp;fu=0&amp;ifi=1&amp;dtd=62" frameborder="0" width="336" scrolling="no" height="280" allowTransparency="allowTransparency"></iframe><iframe style="VISIBILITY: hidden; POSITION: absolute" src="http://pagead2.googlesyndication.com/pagead/s/iframes_api_loader.html" width="1" height="1"></iframe>

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  3.9 電源

  EP9312需要4個(gè)不同的電源:RVDD(3.3 V)、CVDD(1.8 V)、VDD_PLL(1.8 V)和VDD_ADC(3.3V)。板上其他元件除了3.3 V供電的以外,還有5V供電的,整個(gè)系統(tǒng)的輸入電壓為12 V,通過(guò)變壓器件變成5 V,再通過(guò)LTl76ET-3.3轉(zhuǎn)換器件把+5 V轉(zhuǎn)變?yōu)?.3 V的系統(tǒng)電壓,通過(guò)LT176ET-1.8轉(zhuǎn)換器件把+3.3V轉(zhuǎn)變?yōu)?.8V的EP9312內(nèi)核電壓。

  3.10 GPIO分配

  EP9312有16個(gè)具有中斷能力的增強(qiáng)型通用I/0,由于金融稅務(wù)類嵌入式系統(tǒng)的產(chǎn)品通常不需要IDE接口,因此把IDE接口的I/O設(shè)計(jì)成GPIO,連同其他一些設(shè)計(jì),總共增加了49個(gè)可選通用I/O。

  3.11 Bootloader

  Bootloader是系統(tǒng)加電啟動(dòng)運(yùn)行的第一段軟件代碼。整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由Bootloader來(lái)完成。簡(jiǎn)單地說(shuō),Bootloader就是在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。EP9312提供了20種Boot-loader的方式,分別經(jīng)過(guò)EECLK、EEDAT、LBOOTI、LBOOTO、ASDO、CSn[7:6]的跳線組合來(lái)選擇。

  本系統(tǒng)在調(diào)試和生產(chǎn)時(shí),采用16-bit serial boot的啟動(dòng)方式。對(duì)應(yīng)的EECLK、EEDAT、LBOOTI、LBOOTO、ASDO、CSn[7:6]選擇方式分別為:l、1、0、X、0、1。此時(shí),CPU通過(guò)片內(nèi)已經(jīng)固化的4 KB程序進(jìn)行啟動(dòng),初始化CPU和串口,并通過(guò)串口把用戶程序下載到Flash中。當(dāng)系統(tǒng)正常工作時(shí),則直接通過(guò)Flash啟動(dòng)。直接在Flash中讀取程序代碼運(yùn)行。

  本設(shè)計(jì)利用前者把操作系統(tǒng)和應(yīng)用程序?qū)懭隖lash中,用后者進(jìn)行嵌入式系統(tǒng)的正常工作開(kāi)啟。

  4 結(jié)束語(yǔ)

  本文介紹了一種基于EP9312的銀稅類嵌入式系統(tǒng)的硬件設(shè)計(jì)方案。經(jīng)過(guò)測(cè)試,系統(tǒng)各部分都能正常工作,實(shí)現(xiàn)了預(yù)定的功能。

  與以前的嵌入式系統(tǒng)平臺(tái)相比,本系統(tǒng)集成度高、主板面積小、外圍接口多,成本低,運(yùn)行速度快,是一款性價(jià)比很高的產(chǎn)品,能為嵌入式產(chǎn)品的開(kāi)發(fā)提供一個(gè)良好的平臺(tái)。主要面向計(jì)算機(jī)終端、存折打印機(jī)、補(bǔ)登機(jī)、POS機(jī)等嵌入式產(chǎn)品

]]>
主站蜘蛛池模板: 国产香蕉一本大道| 欧美日韩精品一区二区在线视频 | 狠狠躁夜夜人人爽天96| 国产真实乱xxxav| 一级做a爱片就在线看| 最近高清中文在线国语字幕 | 黄页网址大全免费观看22| 天天做天天爱天天干| 久久亚洲精品人成综合网| 欧美xxxxx做受vr| 免费一级毛片完整版在线看| 老师开嫩苞在线观看| 国产精品久久久久久久久久影院| 一区二区三区日本视频| 扒开腿狂躁女人爽出白浆| 亚洲中文字幕伊人久久无码| 毛片高清视频在线看免费观看| 国产91精品久久久久久久| 香蕉狠狠再啪线视频| 在线永久免费观看黄网站| 中文字幕精品无码一区二区三区| 日韩亚洲欧美综合| 亚洲男女一区二区三区| 男人j进入女人j内部免费网站 | 国产福利在线导航| jizz在线播放| 娇小枯瘦日本xxxx| 久久午夜夜伦鲁鲁片免费无码影视| 最近免费中文字幕大全高清大全1 最近免费中文字幕大全高清大全1 | 精品日韩一区二区三区视频| 国产成人免费视频app| 99re在线这里只有精品免费| 天天综合网网欲色| 中文字幕在线播放视频| 日产欧产va高清| 亚洲AV永久无码精品表情包| 欧美freesex黑人又粗超长| 亚洲视频在线观看视频| 一级毛片a女人刺激视频免费| 日本日本熟妇中文在线视频| 亚洲成av人片在线看片|