,,http://www.bjzhda.cnzh-cn曙海教育集團論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團論壇嵌入式系統關鍵技術分析與開發應用 硬件 操作系統http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1507&Page=1wangxinxin2010-11-19 10:48:01摘要:基于嵌入式系統的概念,闡述嵌入式系統的關鍵技術、嵌入式開發以及廣泛的應用。首先,分析嵌入式系統的技術特點,分別從嵌入

式處理器和嵌入式操作系統兩方面介紹,著重說明它不同于其它操作系統的一些處理方法和過程;在此基礎上闡述嵌入式軟件的開發過程,

并結合作者嵌入式軟件開發的實踐,著重闡述嵌入式軟件的一些開發技巧。接著,介紹目前嵌入式系統一些流行的應用,以及南京東大移動

互聯技術有限公司自行研制的基于藍牙技術的嵌入式產品。最后,給出作者的體會,展望嵌入式系統的前景。

關鍵詞:嵌入式系統 嵌入式處理器 微內核 內存管理單元 藍牙系統


引 言

  在當前數字信息技術和網絡技術高速發展的后PC(Post-PC)時代,嵌入式系統已經廣泛地滲透到科學研究、工程設計、軍事技術、各

類產業和商業文化藝術以及人們的日常生活等方方面面中。隨著國內外各種嵌入式產品的進一步開發和推廣,嵌入式技術越來越和人們的生活緊密結合。

  1970年左右出現了嵌入式系統的概念,此時的嵌入式系統很多都不采用操作系統,它們只是為了實現某個控制功能,使用一個簡單的循

環控制對外界的控制請求進行處理。當應用系統越來越復雜、利用的范圍越來越廣泛的時候,每添加一項新的功能,都可能需要從頭開始設

計。沒有操作系統已成為一個最大的缺點了。 

  C語言的出現使操作系統開發變得簡單。從上世紀80年代開始,出現了各種各樣的商用嵌入式操作系統百家爭鳴的局面,比較著名的有

VxWorks、pSOS和Windows CE等等,這些操作系統大部分是為專有系統而開發的。另外,源代碼開放的嵌入式Linux,由于其強大的網絡功能

和低成本,近來也得到了越來越多的應用。

1 嵌入式系統的技術特點

  嵌入式系統通常包括構成軟件的基本運行環境的硬件和操作系統兩部分。嵌入式系統的運行環境和應用場合決定了嵌入式系統具有區別

于其它操作系統的一些特點。

(1)嵌入式處理器

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

用計算機的微處理器對應的CPU。在應用中,一般是將微處理器裝配在專門設計的電路板上,在母板上只保留和嵌入式相關的功能即可,這樣

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

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


  嵌入式DSP專門用來對離散時間信號進行極快的處理計算,提高編譯效率和執行速度。在數字濾波、FFT、譜分析、圖像處理的分析等領

域,DSP正在大量進入嵌入式市場。

(2)微內核結構

  大多數操作系統至少被劃分為內核層和應用層兩個層次。內核只提供基本的功能,如建立和管理進程、提供文件系統、管理設備等,這些

功能以系統調用方式提供給用戶。一些桌面操作系統,如Windows、Linux等,將許多功能引入內核,操作系統的內核變得越來越大。內核變

大使得占用的資源增多,剪裁起來很麻煩。

  大多數嵌入式操作系統采用了微內核結構,內核只提供基本的功能,比如:任務的調度、任務之間的通信與同步、內存管理、時鐘管理

等。其它的應用組件,比如網絡功能、文件系統、GUI系統等均工作在用戶態,以系統進程或函數調用的方式工作。因而系統都是可裁減的,

用戶可以根據自己的需要選用相應的組件。

(3)任務調度

  在嵌入式系統中,任務即線程。大多數的嵌入式操作系統支持多任務。多任務運行的實現實際是靠CPU在多個任務之間切換、調度。每個

任務都有其優先級,不同的任務優先級可能相同也可能不同。任務的調度有三種方式:可搶占式調度、不可搶占式調度和時間片輪轉調度。

不可搶占式調度是指,一個任務一旦獲得CPU就獨占CPU運行,除非由于某種原因,它決定放棄CPU的使用權;可搶占式調度是基于任務優先

級的,當前正在運行的任務可以隨時讓位給優先級更高的處于就緒態的其它任務;當兩個或兩個以上任務有同樣的優先級,不同任務輪轉地

使用CPU,直到系統分配的CPU時間片用完,這就是時間片輪轉調度。

  目前,大多數嵌入式操作系統對不同優先級的任務采用基于優先級的搶占式調度法,對相同優先級的任務則采用時間片輪轉調度法。

(4)硬實時和軟實時 

  有些嵌入式系統對時間的要求較高,稱之為實時系統。有兩種類型的實時系統:硬實時系統和軟實時系統。軟實時系統并不要求限定某

一任務必須在一定的時間內完成,只要求各任務運行得越快越好;硬實時系統對系統響應時間有嚴格要求,一旦系統響應時間不能滿足,就

可能會引起系統崩潰或致命的錯誤,一般在工業控制中應用較多。

(5)內存管理

  針對有內存管理單元(MMU)的處理器設計的一些桌面操作系統,如Windows、Linux,使用了虛擬存儲器的概念。虛擬內存地址被送到

MMU。在這里,虛擬地址被映射為物理地址,實際存儲器被分割為相同大小的頁面,采用分頁的方式載入進程。一個程序在運行之前,沒有

必要全部裝入內存,而是僅將那些當前要運行的部分頁面裝入內存運行。

  大多數嵌入式系統針對沒有MMU的處理器設計,不能使用處理器的虛擬內存管理技術,采用的是實存儲器管理策略。因而對于內存的訪問

是直接的,它對地址的訪問不需要經過MMU,而是直接送到地址線上輸出,所有程序中訪問的地址都是實際的物理地址;而且,大多數嵌入

式操作系統對內存空間沒有保護,各個進程實際上共享一個運行空間。一個進程在執行前,系統必須為它分配足夠的連續地址空間,然后全

部載入主存儲器的連續空間。

  由此可見,嵌入式系統的開發人員不得不參與系統的內存管理。從編譯內核開始,開發人員必須告訴系統這塊開發板到底擁有多少內

存;在開發應用程序時,必須考慮內存的分配情況并關注應用程序需要運行空間的大小。另外,由于采用實存儲器管理策略,用戶程序同

內核以及其它用戶程序在一個地址空間,程序開發時要保證不侵犯其它程序的地址空間,以使得程序不至于破壞系統的正常工作,或導致其

它程序的運行異常;因而,嵌入式系統的開發人員對軟件中的一些內存操作要格外小心。

(6)內核加載方式

  嵌入式操作系統內核可以在Flash上直接運行,也可以加載到內存中運行。Flash的運行方式,是把內核的可執行映像燒寫到Flash上,

系統啟動時從Flash的某個地址開始執行。這種方法實際上是很多嵌入式系統所采用的方法。內核加載方式是把內核的壓縮文件存放在Flash

上,系統啟動時讀取壓縮文件在內存里解壓,然后開始執行。這種方式相對復雜一些,但是運行速度可能更快,因為RAM的存取速率要比

Flash高。

  由于嵌入式系統的內存管理機制,嵌入式操作系統對用戶程序采用靜態鏈接的形式。在嵌入式系統中,應用程序和操作系統內核代碼

編譯、鏈接生成一個二進制影像文件來運行。

2 嵌入式系統開發相關技術

  相對于在Windows環境下的開發應用程序,嵌入式系統開發有著很多的不同。不同的硬件平臺和操作系統帶來了許多附加的開發復雜性。


2.1 嵌入式開發過程

  在嵌入式開發過程中有宿主機和目標機的角色之分:宿主機是執行編譯、鏈接、定址過程的計算機;目標機指運行嵌入式軟件的硬件

平臺。首先須把應用程序轉換成可以在目標機上運行的二進制代碼。這一過程包含三個步驟:編譯、鏈接、定址。編譯過程由交*編譯器

實現。所謂交*編譯器就是運行在一個計算機平臺上并為另一個平臺產生代碼的編譯器。常用的交*編譯器有GNU C/C++(gcc)。編譯過

程產生的所有目標文件被鏈接成一個目標文件,稱為鏈接過程。定址過程會把物理存儲器地址指定給目標文件的每個相對偏移處。該過程

生成的文件就是可以在嵌入式平臺上執行的二進制文件。

  嵌入式開發過程中另一個重要的步驟是調試目標機上的應用程序。嵌入式調試采用交*調試器,一般采用宿主機-目標機的調試方式,

它們之間由串行口線或以太網或BDM線相連。交*調試有任務級、源碼級和匯編級的調試,調試時需將宿主機上的應用程序和操作系統內核

下載到目標機的RAM中或直接燒錄到目標機的ROM中。目標監控器是調試器對目標機上運行的應用程序進行控制的代理(Debugger Agent),

事先被固化在目標機的Flash、ROM中,在目標機上電后自動啟動,并等待宿主機方調試器發來的命令,配合調試器完成應用程序的下載、

運行和基本的調試功能,將調試信息返回給宿主機。

2.2 向嵌入式平臺移植軟件 

  大部分嵌入式開發人員選用的軟件開發模式是先在PC機上編寫軟件,再進行軟件的移植工作。在PC機上編寫軟件時,要注意軟件的可

移植性,選用具有較高移植性的編程語言(如C語言),盡量少調用操作系統函數,注意屏蔽不同硬件平臺帶來的字節順序、字節對齊等

問題。以下是我們在移植協議棧過程中的一些體會。

2.2.1 字節順序

  字節順序是指占內存多于一個字節類型的數據在內存中的存放順序,通常有小端、大端兩種字節順序。小端字節序指低字節數據存放

在內存低地址處,高字節數據存放在內存高地址處;大端字節序是高字節數據存放在低地址處,低字節數據存放在高地址處。基于X86平臺

的PC機是小端字節序的,而有的嵌入式平臺則是大端字節序的。因而對int、uint16、uint32等多于1字節類型的數據,在這些嵌入式平臺

上應該變換其存儲順序。通常我們認為,在空中傳輸的字節的順序即網絡字節序為標準順序,考慮到與協議的一致以及與同類其它平臺產

品的互通,在程序中發數據包時,將主機字節序轉換為網絡字節序,收數據包處將網絡字節序轉換為主機字節序。

2.2.2 字節對齊

  有的嵌入式處理器的尋址方式決定了在內存中占2字節的int16、uint16等類型數據只能存放在偶數內存地址處,占4字節的int32 、

uint32 等類型數據只能存放在4的整數倍的內存地址處;占8字節的類型數據只能存放在8的整數倍的內存地址處;而在內存中只占1字節的

類型數據可以存放在任意地址處。由于這些限制,在這些平臺上編程時有很大的不同。首先,結構體成員之間會有空洞,比如這樣一個結

構:

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

  結構TEST在單字節對齊的平臺上占內存三個字節,而在以上所述的嵌入式平臺上有可能占三個或四個字節,視成員a的存儲地址而定。

當a存儲地址為偶數時,該結構占四個字節,在a與b之間存在一個字節的空洞。對于通信雙方都是對結構成員操作的,這種情況不會出錯,

但如果有一方是逐字節讀取內容的(通信協議大都如此),就會錯誤地讀到其它字節的內容。其次,若對內存中數據以強制類型轉換的方

式讀取,字節對齊的不同會引起數據讀取的錯誤。因為假如指針指在基數內存地址處,我們想取得占內存兩個字節的數據存放在uint16型

的變量中,強制類型轉換的結果是取得了該指針所指地址與前一地址處的數據,并沒有按照我們的愿望取該指針所指地址與后一地址處的

數據,這樣就導致了數據讀取的錯誤。

  解決字節對齊有許多方法,比如可以在GCC的項目管理文件MakeFile中增加編譯選項--pack-struct;但這種方法只能去除結構中的空

洞,并不能解決強制類型轉換引起的錯誤。為了增強軟件的可移植性以及和同類其它平臺產品的互通性,我們在收數據包處增加了拆包的

函數,發數據包處增加了組包的函數。這兩個函數解決了字節序的問題,也解決了字節對齊的問題。即組包時根據參數中的格式字符串將

內存中的不同數據類型的某段數據放在指定地址處,組成包發給下層;拆包時,根據參數中的格式字符串將收到的內存中的數據存放在不

同類型的變量或結構成員中。在函數中針對不同的數據類型作不同的處理。

2.2.3 位 段

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

的。分配順序的不同導致了數據存取的錯誤。解決這一問題的一種方法是采用條件編譯的方式,針對不同的平臺定義順序不同的位段;

也可以在前面所述的兩個函數中加上對位段的處理。

2.2.4 代碼優化

  嵌入式系統對應用軟件的質量要求更高,因而在嵌入式開發中尤其須注意對代碼進行優化,盡可能地提高代碼的效率,減少代碼的大

小。雖然現代C和C++編譯器都提供了一定程度的代碼優化,但大部分由編譯器執行的優化技術僅涉及執行速度和代碼大小的平衡,不可能

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

(1)提高代碼的效率

  ①switch-case 語句。在程序中經常會使用switch-case語句,每一個由機器語言實現的測試和跳轉僅僅是為了決定下一步要做什么,

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

的情況放在最后,這樣會減少平均的代碼執行時間。

  ② 全局變量。使用全局變量比向函數傳遞參數更加有效率,這樣做去除了函數調用前參數入棧和函數完成后參數出棧的需要。當然,

使用全局變量會對程序有一些負作用。

(2)減小代碼的大小 

  嵌入式系統編程應避免使用標準庫例程,因為很多大的庫例程設法處理所有可能的情況,所以占用了龐大的內存空間,因而應盡可能

地減少使用標準庫例程。

(3)避免內存泄漏

  用戶內存空間(堆)為RAM中全局數據和任務堆棧空間都分配后的剩余空間,為了使程序能有足夠的內存運行,必須在申請的內存不用

后及時地將其釋放,以確保再次申請時能有空間。如果程序中存在內存泄漏(即申請內存后沒有及時釋放)的情況,程序最終會因為沒有

足夠的內存空間而無法運行。

3 嵌入式系統的廣泛應用

  嵌入式系統的應用前景是非常廣泛的,人們將會無時無處不接觸到嵌入式產品,從家里的洗衣機、電冰箱,到作為交通工具的自行車、

小汽車,到辦公室里的遠程會議系統等等。特別是以藍牙為代表的小范圍無線接入協議的出現,使嵌入式無線電的概念悄然興起。當嵌入

式的無線電芯片的價格可被接受時,它的應用可能會無所不在。在家中、辦公室、公共場所,人們可能會使用數十片甚至更多這樣的嵌入

式無線電芯片,將一些電子信息設備甚至電氣設備構成無線網絡;在車上、旅途中,人們利用這樣的嵌入式無線電芯片可以實現遠程辦公、

遠程遙控,真正實現把網絡隨身攜帶。下面介紹幾種具體的應用。 

(1)嵌入式移動數據庫

  所謂的移動數據庫是支持移動計算的數據庫,有兩層含義:① 用戶在移動的過程中可以聯機訪問數據庫資源。② 用戶可以帶

]]>
嵌入式系統的軟硬件協同設計http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1506&Page=1wangxinxin2010-11-19 10:40:18正文:

圖片點擊可在新窗口打開查看

而嵌人式系統軟硬件協同設計是讓軟件設計和硬件設計作為一個整體并行設計,找到軟硬件的最佳結合點,從而使系統高效工作。協同設計的基本思路如圖2所示。

圖片點擊可在新窗口打開查看

從圖2可以看出,軟硬件協同設計最主要的一個優點就是在設計過程中,硬件和軟件設計是相互作用的,這種相互作用發生在設計過程的各個階段和各個層次。

設計過程充分體現了軟硬件的協同性。在軟硬件功能分配時就考慮到了現有的軟硬件資源,在軟硬件功能的設計和仿真評價過程中,軟件和硬件是互相支持的。這就使得軟硬件功能模塊能夠在設計開發的早期互相結合,從而及早發現問題及早解決,避免了(至少可以減少)在設計開發后期反復修改系統以及由此帶來的一系列問題,而且有利于挖掘系統潛能、縮小產品的體積、降低系統成本、提高系統整體性能。

2軟硬件協同設計的過程

總的來說,軟硬件協同設計的系統設計過程可以分為系統描述、系統設計、仿真驗證與綜合實現4個階段。

系統描述是用一種或多種系統級描述語言對所要設計的嵌入式系統的功能和性能進行全面的描述,建立系統的軟硬件模型的過程。系統建模可以由設計者用非正式語言,甚至是自然語言來手工完成,也可以借助EDA工具實現。手工完成容易導致系統描述不準確,在后續過程中需要修改系統模型,從而使系統設計復雜化等問題,而優秀的EDA工具可以克服這些弊端。

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

1.2 嵌入式軟PLC的軟件結構
    嵌入式軟PLC程序包括兩類:一類是編輯狀態,實現PLC程序的輸入和編譯功能;另一類是面向生產過程的應用程序。系統軟件結構由4部分組成,分別是編輯模塊、編譯模塊、執行模塊和監控模塊。軟件PLC系統模塊間的數據流程如圖2所示。

2 系統關鍵組成部分的設計與實現
2.1 梯形圖編輯器
    Qt/Embedded是著名的Qt庫開發商Trolltech推出的面向嵌入式系統的Qt版本。Qt/Embedded具有可移植性強和支持跨平臺開發等優點。本系統采用Qt編寫界面,梯形圖編輯器的界面如圖3所示。

2.1.1 梯形圖的數據結構設計
    梯形圖編輯具有方便、邏輯直觀的特點,梯形圖編輯器借助于梯形圖的內部數據結構來實現顯示、插入、刪除、代碼轉化等功能。
 原文出處:http://www.asmag.com.cn/apply/jishu_detail.aspx?aid=16882

]]>
嵌入式開發 硬件軟件何者更重要http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1504&Page=1wangxinxin2010-11-19 10:31:32圖片點擊可在新窗口打開查看

 因此,Linaro的主要任務在于各類芯片平臺上提供統一的軟件核心層與中介軟件,以有效解決OEM與ODM在系統整合上的問題,如軟件核心層與硬件芯片的整合、適當程序代碼的搜尋、系統效能等。半導體業者在未來的芯片設計上,也可依循Linaro所提供的架構為基礎,提供系統業者更容易的開發環境。

  另一方面,基于Linux的多樣性,Linaro也會針對MeeGo、Android、Ubuntu等以Linux為基礎的平臺,進行投資與研發,以進一步強化各類SOC平臺與廣泛的Linux系統之間的整合。  

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

  ①因為模塊化,軟件的總體結構更容易理解;
  ②只要是與某一個外設相互作用,必然是通過他的驅動程序來起作用的,這樣查找錯誤和故障就更容易些;
  ③由硬件的變動導致的軟件變化集中在設備驅動程序上,這樣做有助于減少系統變動時改變軟件設計工作量,盡量做到軟件復用,縮短開發周期,這對提高產品競爭能力有實際意義。

  2 編寫設備驅動程序的方法和步驟

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

  (2)跟蹤目前硬件和設備驅動狀態的一組變量
  驅動程序開發過程的第二步是確定變量來跟蹤硬件和設備驅動的狀態。比如,要確定硬件是否已經初始化過或跟蹤當前計數器的值。
  設備的驅動不只創建一個軟件設備,他們純粹是邏輯設備,在基本外圍硬件之上實現。容易設想從單獨鐘,正如在Windows下定時器編程一樣。系統的定時器應該被設置以產生一個周期性的時鐘節拍(tick),比如ms。設備驅動則保持創建的每個軟件時鐘的狀態信息來管理一組不同長度的軟件時鐘。

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

  (4)合起來為設備驅動用戶提供API的一組例程
  設備初始化后,開始給設備驅動添加其他的功能。
以定時器為例,創建一個軟件時鐘,啟動時鐘和管理時鐘函數等具體的模塊函數。這些函數的集合就可以為設備驅動應用程序提供一個統一的接口。

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

  3 在MCF5307上實現軟件時鐘

 

 

 

 

 

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

 

  圖1說明了活動時鐘鏈表,每一個軟件時鐘都有他的長度和開始時間,一旦他們被插入列表,就對應count字段和排序。鏈表中可以看出第1個和第2個時鐘同時啟動。由于第2個比第1個長5 ms,因此他晚5個節拍到期。而第3個時鐘是在第1個時鐘的count=1時插入的。

 

 

 

 

  由于篇幅有限,其他的源程序簡略。

  4 測試程序和運行結果
  這段程序是在風河公司(windriver)diab 4.3g編譯器下編譯,并在SDS調試器下做調試運行,測試程


  將程序編譯、鏈接形成可執行代碼,下載到目標板上調,運行正常,實現了軟件定時器。就像Windows編程時設置定時器一樣,用戶可以同時啟動若干定時器,而他們底層只是由一個硬件定時器在驅動。
  從測試程序中可以看出,定時器編程形式上簡單多了,應用程序不直接對設備寄存器讀寫,而且這個定時器驅動是整個程序惟一直接訪問定時器單元的模塊。實現了隱藏硬件的目的。

  5 結 語
  本文通過一個簡單的MCF5307定時器驅動程序設計,表述了隱藏硬件的思想以及用于嵌入式驅動程序的編寫的方法和步驟,可以推廣到其他嵌入式系統驅動程序設計中。這樣的驅動程序,方便程序員為嵌入式系統編寫應用程序,同時可以為系統程序員提供必要的庫例程,增加軟件的可復用性,減少重復勞動。

  參考文獻

  [1] MicbaelBarr.C/C++嵌入式系統編程[M].北京:中國電力出版社,2001.
  [2] Motorola.MCF5307 user guide,2000.        本信息來源:CAD教育網 www.cadedu.com

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

  (1)瀑布模式開發過程

  瀑布模式開發過程工作模式簡單,任務的劃分協調及人員安排、物質材料的分配管理都比較容易。開發過程為從硬件到軟件的流水線式進行。此類開發方式有以下特點:

  ◇ 小系統,如利用8051控制的低速率信號采集等;
  ◇ 開發所需人力、物力資源有限,一般1個或幾個人即可完成;
  ◇ 要求開發人員對軟、硬件設計和制作都比較熟悉;
  ◇ 對開發周期要求不高,此類開發過程無疑會使用最長的開發周期;
  ◇ 在開發過程中,任一環節的阻塞都會影響其它環節的開發。

  (2)V模式開發過程

  V模式開發過程為一種并行的工作方式,任務的劃分協調及人員安排、物質材料的分配都必須考慮不同工作內容,

  開發過程為硬件和軟件同時進行,最后聯合調試。此類開發方式有以下特點:
  ◇ 大系統,如利用PowerPC等處理器設計的網絡交換/訪問設備;
  ◇ 開發人力、物力資源比較豐富;
  ◇ 開發人員分工比較明確,軟件開發者可不需了解太多的硬件信息,而硬件開發人員對軟件也可不做太多了解;
  ◇ 有利于縮短開發周期;
  ◇ 在開發過程中,軟、硬件設計獨立進行。 硬件開發的阻塞不會影響軟件開發過程,同樣,軟件開發的阻塞不會影響硬件的開發過程。

  但在V模式開發過程中,仍存在以下問題:

  ◇ 設備驅動程序的可移值性差,與硬件和操作系統均有密切相關性;
  ◇ 軟件測試需要等硬件完成以后才能進行;
  ◇ 對于每個設備驅動程序設計人員都需有軟件和硬件的知識背景;
  ◇ 在測試過程中,很難判斷錯誤是由硬件還是由軟件造成的。

  為了克服V模式開發過程中的上述問題,本文將V模式開發過程稍作改進,增加了硬件抽象層,對系統軟硬件起到隔離作用,從而提高系統軟件的可移值性及有效地利用人力資源、縮短開發周期和提高產品的可靠性。

  2 基于硬件抽象層的系統軟件設計特性

  (1)包含硬件抽象層的系統結構

  硬件抽象層完全把系統軟件和硬件部分隔離開來,這樣就使得系統的設備驅動程序與硬件設備無關,從而大大提高了系統的可移植性。從軟硬件測試角度來看,軟硬件的測試工作都可分別基于硬件抽象層來完成,使得軟硬件的測試工作的并行進行成為可能。在抽象層的定義方面,需要規定統一的軟硬件接口標準,其設計工作需要基于系統需求來做,代碼工作可由對硬件比較熟悉的人員來完成。抽象層一般應包含相關硬件的初始化、數據的輸入/輸出操作、硬件設備的配置操作等功能。

  (2)包含硬件抽象層的系統開發過程

  在系統需求分析并定義了軟硬件各自的設計要求以后,就需要花費一定的時間來定義硬件抽象層的接口,以確保硬件設計和測試與軟件設計和測試工作能夠在相同的接口上進行,從而有利于最終的軟硬件集成測試。

  在基于硬件抽象層的V模式開發過程,軟硬件的設計和調試具有無關性,并可完全地并行進行。硬件的錯誤不會影響到系統軟件的調試,同樣軟件設計的錯誤也不會影響硬件的調試工作,這樣就可大大縮短系統的測試周期和提高系統的可靠性。

  (3)硬件抽象層的特點

  硬件抽象層接口的定義和代碼設計應具有以下特點:
  ◇ 硬件抽象層具有與硬件密切相關性;
  ◇ 硬件抽象層具有與操作系統無關性;
  ◇ 接口定義的功能應包含硬件或系統所需硬件支持的所有功能;
  ◇ 接口定義簡單明了,太多接口函數會增加軟件模擬的復雜性;
  ◇ 具有可測性的接口設計有利于系統的軟硬件測試和集成。

  3 硬件抽象層的設計示例

  硬件抽象層接口的設計一般應包含以下幾個步:
  ◇ 分析接口的數據傳輸特性(雙向/單向數據傳輸,字節型/數據幀型傳輸模式);
  ◇ 分析接口配置屬性;
  ◇ 定義接口所需的相關函數。

  下面給出以字符為單位進行數據傳輸的UART接口硬件抽象層的接口定義內容:

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

  4 結 論

  以上所述的是作者在多年嵌入式系統開發中所總結出的開發流程,并在實踐應用中起到了很好的效果。相信在一個較為復雜的嵌入式系統開發過程中,很好地利用上述開發流程,將會有利于提高系統的可移植性、減少產品的開發和測試周期,并能很好地保證產品的可靠性。

]]>
可用于系統架構和嵌入式軟硬件開發的虛擬系統原型http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1501&Page=1wangxinxin2010-11-19 10:16:05       然而隨著嵌入式系統日益普及,設計危機也逐漸凸現。統計數據顯示,近40%的嵌入式系統開發延遲,還有超過9%的開發最終被取消。

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

       也就是說,系統架構、硬件實現和軟件實現各階段之間的關系需要調整,而這種需求恰好正是目前的電子系統級設計(ESL)中最受關注的問題。然而,現有的大多數基于ESL的方法都只能提供部分解決方案。我們需要的是一套全新的設計模式,一套能夠對全系統建模的方法,以促進系統架構研究并實現軟硬件協同設計,以允許設計人員從原始設計不斷改進,直到最終實現系統。

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

       要使SoC設計走出困境,很重要的一點就是讓設計師們能夠采用一種在系統架構階段設計的定時精確的高性能系統級模型,然后隨著開發人員從架構階段進入軟硬件協同開發和驗證階段,改進而不是丟棄這個模型。盡管暫時還沒有一種全自動化的工具鏈能夠實現從系統架構到RTL實現這一系列完整的設計任務,但一些嵌入式設計方案供應商已經開始了成功的嘗試,其中一種很有前途的技術就是虛擬系統原型技術。

圖片點擊可在新窗口打開查看

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

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

       一旦模型建立,硬件和軟件開發就可以同時啟動,這樣一來,既減少了開發所用的總資源,也縮短了開發周期。

       傳統的“丟棄式”系統級模型在硬件和軟件實現階段就過時了,而VSP仍可繼續用于硬件驗證。由于這一優秀的模型是周期精確(cycle-accurate)的,因而RTL實現可以在任何時候換入 (swap in) 。而且,在RTL模型換入后, 為了進行性能分析或者更快地運行更大的軟件實體,還可以用原來的高級VSP模型將RTL模型換出。系統級測試范例是作為可執行系統規范的一部分生成的,然后,隨著軟硬件開發過程的進展,再由上至下地生成結構、模塊和單元測試。

       最后一點,VSP的升級和分發也很容易。對那些在地域上分布較零散的開發團隊而言,通過網絡發送軟件模型也比運送電路板更簡單。這樣一來,工程師只有在最后的集成階段才需要真實的硬件和芯片。而且,由于軟硬件開發采用的是同一個虛擬系統原型,因此集成起來也更快和更容易。

       虛擬系統原型在無線設計中的應用舉例

       在單芯片系統的開發中,無線系統設計是最復雜也是競爭最激烈的領域。越來越多領先的無線設計公司開始利用虛擬系統原型技術提高設計生產力、縮短上市時間,并降低風險。以下介紹的無線設計在一塊芯片中容納了兩個處理器內核、一個DSP、多級存儲器、6種復雜的多層總線結構、一個實時操作系統、超過30個外設,外加超過兩百萬行代碼。這款手機的SoC具備GSM控制功能、多媒體功能、二維和三維圖形處理功能、相機接口,以及一系列諸如WiFi和USB之類的其他接口。

圖片點擊可在新窗口打開查看

圖2:利用VSP技術,軟件開發可以在硬件就緒前9個月甚至更早開始。

       以前的項目結束后,這個設計小組決定必須改變傳統的“先硬件后軟件”的設計方法才能滿足日益縮短的上市時間需求。

       采用VSP的結果

       他們選擇了VaST Systems提供的虛擬系統原型方案,這不但是一個高性能的方案,而且絲毫無損設計精度。從系統架構階段直到軟硬件協同開發和驗證階段都可以采用同一個VaST處理器模型(虛擬系統原型的核心)。

       根據配置的不同,VaST處理器模型在仿真單處理器時,在保持原有的周期、寄存器和定時精度的同時,速度在50到200MIPS之間;在仿真帶分層存儲器結構和多級總線的多內核系統時,在保持周期精度的同時速度可達10到100MIPS。

       首先,系統架構師利用VSP進行系統架構研究和分析。VSP能夠運行基于應用的軟件,因此設計師可以據此考慮緩存的大小、處理器的處理能力等性能問題,同時還可以檢查出系統中潛在的資源共享、同步和總線帶寬問題。此外,利用VSP,設計小組還可以在真實系統的環境下檢查第三方IP。

       有了VSP,軟件開發人員可以提前幾個月開始編寫系統中的關鍵函數(例如系統初始化程序、硬件抽象層、RTOS/OS及其相關的設備驅動程序、中間件軟件,甚至是嵌入式應用的代碼),然后再進入傳統的硬件、軟件開發流程。

圖片點擊可在新窗口打開查看

圖3:傳統的手機設計流程和利用虛擬系統原型的手機設計流程的比較

        在使用VSP之后,這家公司發現他們的競爭優勢得到了很大提升,于是決定繼續將VSP技術作為其首選設計方法。

        本文小結

        嵌入式系統不論從絕對數量還是從復雜度來說都在飛速地發展,而且在嵌入式系統中,通過軟件實現的功能越來越多。

        傳統的先硬件后軟件的設計方法對這種復雜的嵌入式系統開發已不再適用。因為不但從質量還是從生產力的角度說,軟件和硬件都必須同時開發和驗證。

        人們早期所作的用軟件來建模硬件系統的嘗試存在很多問題,包括要求設計師創建并維護模型的多個“角度”。要解決這些問題,硬件系統的軟件模型必需同時具備快速和準確兩個特點。具備了這兩個特點的模型就有可能既適用于系統架構階段,又能成為出色的軟硬件協同開發參考模型。

        VaST Systems提供的技術和方法能夠在不損失速度和精度的前提下提供快速準確的虛擬處理器模型(嵌入式系統的核心)。已經有設計團隊采用了我們的系統原型,根據配置的不同,該模型在單處理器內核系統中的仿真速度可達50到 200 MIPS,在帶分層存儲器結構和多級總線的多內核系統中可達10到 100 MIPS。

      一家領先的手機嵌入式系統供應商采用了虛擬系統原型 技術,并在硬件就緒之前9個月就開始了軟件開發。用他們的話說,采用虛擬系統原型 技術可謂“用更少的成本和更短的開發時間設計出更好的產品”。

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

  然而,作為一種便攜式和移動性的終端,完全依靠電池來供電,隨著智能手機的功能越來越強大,其功率損耗也越來越大。因此,必須提高智能手機的使用時間和待機時間。對于這個問題,有兩種解決方案:一種是配備更大容量的手機電池;另一種是改進系統設計,采用先進技術,降低手機的功率損耗。

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

  因此,從智能手機的總體設計入手,應用先進的技術和器件,進行降低功率損耗的方案設計,從而盡可能延長智能手機的使用時間和待機時間。事實上,低功耗設計已經成為智能手機設計中一個越來越迫切的問題。

        1 智能手機的硬件系統架構

  本文討論的智能手機的硬件體系結構是使用雙cpu架構,如圖1所示。

圖片點擊可在新窗口打開查看

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

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

  從這個硬件電路的系統架構可以看出,功耗最大的部分包括主處理器、無線modem、lcd和鍵盤的背光燈、音頻編解碼器和功率放大器。因此,在設計中,如何降低它們的功耗,是一個很重要的問題。

  2 低功耗設計

 

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

  在數字集成電路設計中,cmos電路的靜態功耗很低,與其動態功耗相比基本可以忽略不計,故暫不考慮。其動態功耗計算公式為:

pd="ctv2f"    (1)

  式中:pd為cmos芯片的動態功耗;ct為cmos芯片的負載電容;v為cmos芯片的工作電壓;f為cmos芯片的工作頻率。

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

  對于主cpu來說,內核供電電壓為1.3 v,已經很小,而且其全速運行時的主頻可以完全根據需要進行設置,其內部所需的其他各種頻率都是通過主頻分頻產生。主cpu主頻fcpu計算公式如下:

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

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

  b)從確保足夠的驅動電流考慮,上拉電阻應足夠小,以增大電流;

  c)在高速電路中,過大的上拉電阻會使信號邊沿變得平緩,信號完整性會變差。

  因此,在考慮能夠正常驅動后級的情況下(即考慮芯片的vih或vil),盡可能選取更大的阻值,以節省系統的功耗。對于下拉電阻,情況類似。

  2.3.2 對懸空引腳的處理

  對于系統中cmos器件的懸空引腳,必須給予重視。因為cmos懸空的輸入端的輸入阻抗極高,很可能感應一些電荷導致器件被高壓擊穿,而且還會導致輸入端信號電平隨機變化,導致cpu在休眠時不斷地被喚醒,從而無法進入睡眠狀態或其他莫名其妙的故障。所以正確的方法是,根據引腳的初始狀態,將未使用的輸入端接到相應的供電電壓來保持高電平,或通過接地來保持低電平。

  2.3.3 緩沖器的選擇

  緩沖器有很多功能,如電平轉換、增加驅動能力、數據傳輸的方向控制等,當僅僅基于驅動能力的考慮增加緩沖器時,必須慎重考慮,因驅動電流過大會導致更多的能量被浪費掉。所以應仔細檢查芯片的最大輸出電流ioh和iol是否足夠驅動下級芯片,當可以通過選取合適的前后級芯片時應盡量避免使用緩沖器。

  2.4 電源供給電路

  由于使用雙cpu架構,外設很多,需要很多種電源。僅以主cpu來說,就需要1.3v、2.4v和2.8v電壓,因此需要很多電壓變化單元。通常,有以下幾種電壓變換方式:線性調節器;dc/dc;LDO(低漏失調節器)。其中ldo本質上是一種線性穩壓器,主要用于壓差較小的場合,所以將其合并為線性穩壓器。

  線性穩壓器的特點是電路結構簡單,所需元件數量少,輸入和輸出壓差可以很大,但其致命弱點是效率低、功耗高,其效率η完全取決于輸出電壓大小。

]]>
基于EP9312的銀稅類嵌入式系統硬件設計方案http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1499&Page=1wangxinxin2010-11-19 10:04:331 嵌入式系統的概念與特點

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

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

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

  (3)嚴格的時序與穩定性要求;

  (4)全自動操作循環。

  嵌入式系統具有目的性或針對性,其開發是圍繞著產品和產品的特定功能來進行的。它必須最大限度地在硬件和軟件上“量身定做”以提高效率。本文設計的嵌入式系統主要用于金融和稅務類產品。

  2 總體設計

  2.1 CPU的選擇

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

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

  2.2 技術指標

  經過系統調研并基于產品成本考慮,嵌入式系統的技術指標如下所述:

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

  2.3 系統組成

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

系統的基本結構

  3 模塊功能描述

  3.1 CPU

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

  3.2 RESET模塊

  系統的RESET模塊為系統提供啟動及復位信號,是系統運行的開端。

  本系統采用MAX708CSA作為復位器件,設計成用戶重啟的按鈕控制。發出RESET信號送給CPU的RSTOn引腳、Flash模塊、JATG模塊等。另采用一片MAX708CSA作為系統上電的按鈕控制。發出POR信號送給CPU的PRSTn引腳,如圖2所示。

RESET結構圖

  3.3 系統時鐘模塊

  系統時鐘模塊的作用是產生20個獨立的時鐘頻率來滿足EP9312不同獨立邏輯部分的要求,所有這些時鐘頻率都來源于外部的一個低頻晶體振蕩器。這樣處理器速率、總線速率、視頻速率就可以不同而且互不影響。

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

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

]]>
基于嵌入式系統的網絡硬件防火墻的實現http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1498&Page=1wangxinxin2010-11-19 10:03:49  3.1  底層軟件的實現

  這部分軟件是網絡硬件防火墻實現的關鍵,它主要完成四個方面的工作,即對網絡封包的過濾,日志的記錄并發送,對用戶的報警以及跟PC機的接口。在本系統中我們采用實時操作系統UCOS,配合自己編寫的TCP/IP協議棧來實現對各個網絡層次封包的過濾。

  3.1.1   UC/OSII在ARM7下的移植

  UCOSII是一個完整、可移植、可固化及可剪裁的占先式實時多任務內核。它用ANSI C編寫,包含一小部分匯編代碼,使之可以供不同架構的微處理器使用。移植該實時操作系統是實現底層軟件的第一步。移植操作系統其實是一件不簡單的事情,它必須要求開發人員對目標硬件平臺有很深的了解;對UCOS的原理有相當的了解;對所使用的編譯器有較深入的了解。只有具備以上三點,才能成功移植該實時操作系統。要移植UCOS,只要編寫三個文件即可,它們分別是:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。下面就簡單介紹該移植的實現過程。

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

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

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

<!--ecms.*-->

  在ARM7硬件平臺下移植UCOSII要注意幾個問題,首先是在移植系統函數或者系統宏時要盡量的調用軟件中斷,這樣有助于簡化移植工作;其次在初始化任務堆棧時,可以添加任務變量OSEnterSum這個變量來監視中斷開關次數,這是關于移植的一個技巧;最后要注意為了方便編寫中斷服務程序,在移植時還要提供相應的匯編宏來簡化用戶層代碼的編寫。

  3.1.2 TCP/IP協議棧在UCOSII下的實現

  TCP/IP協議分為四層,分別為應用層、傳輸層、網絡層,物理層。本系統中物理層主要包括8019的驅動程序,網絡層包括IP協議和ARP協議,傳輸層主要包括TCP協議和UDP協議,應用層主要包括FTP、HTTP、SNMP和一些用戶應用程序。由于該協議實現很復雜,這也是本系統實現的難點,下面給出該協議棧實現的函數框圖:<!--工控自動化,autooo.net-->


基于嵌入式系統的網絡硬件防火墻的實現]]>
基于 WINDOWS CE的嵌入式監控工作站的快速搭建http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1497&Page=1wangxinxin2010-11-19 10:02:55

1 引言


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

2 嵌入式系統結構


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

3 應用系統開發


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

圖片點擊可在新窗口打開查看


開發結束后,通過網線將工程直接下載到PCM-3350的CF卡電子盤上即可。系統啟動后自動進入運行工程。

4 結束語


本文簡單介紹了嵌入式系統軟硬件的最新進展,并結合MCGS嵌入版組態軟件的功能,對其在智能家居中的應用進行了闡述,此方法構造的系統模塊集成度高,體積小,可靠性高,在智能家居工程中有很好的應用。


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

    

    

     關鍵詞:嵌入式系統

     嵌入式實時操作系統(RTOS) 硬件抽象層(HAL)

     板級支持包(BSP)

     隨著計算機硬件技術的快速發展,出現了越來越多的便攜設備和智能設備。這些設備中通常包含控制用的CPU和相應的操作系統;這類特殊的計算機系統叫做嵌入式實時系統。嵌入式實時系統以其簡潔高效等特點在計算機、通信等領域中廣泛使用。

     由于嵌入式實時系統應用環境的特殊性,因此在設計實現過程中存在著許多特殊問題。其中,操作系統及其他系統軟件模塊與硬件之間的接口形式是嵌入式實時系統的主要特征和系統設計過程中的必需環節,也是影響嵌入式系統應用前景的關鍵問題。經過近些年的發展,隨著通用嵌入式操作系統技術的日趨成熟和應用的不斷擴大,一種統一的接口形式得到廣泛的認可和應用,這就是通常所說的板級支持包,即BSP。

     1 嵌入式系統硬件抽象層的原理

     1.1 硬件抽象層的引入

     嵌入式實時系統作為一類特殊的計算機系統自底向上包含三個部分,如圖1所示。

     (1)硬件環境:是整個嵌入式實時操作系統實時應用程序運行的硬件平臺;不同的應用通常有不同的硬件環境;硬件平臺的多樣性是嵌入式系統的一個主要特點。

     (2)嵌入式實時操作系統——RTOS:完成嵌入式實時應用的任務調度和控制等核心功能,具有內核較精簡、可配置、與高層應用緊密關聯等特點。嵌入式操作系統具有相對不變性。

     (3)嵌入式實時應用程序:運行于操作系統之上,利用操作系統提供的實時機制完成特定功能的嵌入式應用。不同的系統需要設計不同的嵌入式實時應用程序。

     由于嵌入式系統應用的硬件環境差異較大,因此,如何簡潔有效地使嵌入式系統能夠應用于各種不同的應用環境是嵌入式系統發展中所必須解決的關鍵問題。

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

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

     Support Package)。圖2顯示了引入HAL以后的嵌入式系統結構。BSP的引入大大推動了嵌入式實時操作系統的通用化,從而為嵌入式系統的廣泛應用提供了可能。

     1.2 BSP的特點與功能

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

     由于在系統中的特殊位置,因此BSP具有以下主要特點:

     (1)硬件相關性

     因為嵌入式實時系統的硬件環境具有應用相關性,所以,作為高層軟件與硬件之間的接口,BSP必須為操作系統提供操作和控制具體硬件的方法。

     (2)操作系統相關性

     不同的操作系統具有各自的軟件層次結構,

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

     在實現上,BSP是一個介于操作系統和底層硬件之間的軟件層次,包括了系統中大部分與硬件相關的軟件模塊。在功能上包含兩部分:系統初始化及與硬件相關的設備驅動。

     2 BSP的設計與實現

     為實現上述兩部分功能,設計一個完整的BSP需要完成兩部分工作:

     (1)設計初始化過程,完成嵌入式系統的初始化;

     (2)設計硬件相關的設備驅動,完成操作系統及應用程序對具體硬件的操作。

     2.1 嵌入式系統初始化以及BSP的功能

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

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

     (2)板級初始化:完成CPU以外的其他硬件設備的初始化。除此之外,還要設置某些軟件的數據結構和參數,為隨后的系統級初始化和應用程序的運行建立硬件和軟件環境。這是一個同時飲食軟硬件兩部分在內的初始化過程。

     (3)系統級初始化:這是一個以軟件初始化為主的過程,主要進行操作系統初始化。BSP將控制轉交給操作系統,由操作系統進行余下的初始化操作。包括加載和初始化與硬件無關的設備驅動程序,建立系統內存區,加載并初始化其他系統軟件模塊,比如網絡系統、文件系統等;最后,操作系統創建應用程序環境并將控制轉交給應用程序的入口。

     經過以上三個層次的操作,嵌入式系統運行所需要的硬件和軟件環境已經進行了正確設置,從這里開始,高層的實時應用程序可以運行了。

     需要指出:系統級初始化不是BSP的工作。但是,系統級初始化成功與否的關鍵在于BSP的前兩個初始化過程中所進行的軟件和硬件的正確設置,而且系統級初始化也是由BSP發起的。因此,設計BSP中初始化功能的重點主要集中在前兩個環節。圖3顯示了嵌入式系統的初始化過程。

     2.2 硬件相關的設備驅動程序

     BSP另一個主要功能是硬件相關的設備驅動。與初始化過程相反,硬件相關的設備驅動程序的初始化和使用通常是一個從高層到底層的過程。

     盡管BSP中包含硬件相關的設備驅動程序,但是這些設備驅動程序通常不直接由BSP使用,而是在系統初始化過程中由BSP把它們與操作系統中通用的設備驅動程序關聯起來,并在隨后的應用中由通用的設備驅動程序調用,實現對硬件設備的操作。設計與硬件相關的驅動程序是BSP設計中另一個關鍵環節。圖4顯示了調用設備驅動程序時系統各個層次之間的關系。

    

     3 設計實現BSP的方法

     3.1 設計實現BSP的一般方法

     因為BSP同時具硬件相關性和操作系統相關性,是一個介于硬件與軟件之間的中間層次。因此BSP的開發不僅需要具備一定的硬件知識,例如CPU的控制、中斷控制器的設置、內存控制器的設置及有關的總線規范等;同時還要求掌握操作系統所定義的BSP接口。另外,在BSP的初始化部分通常會包含一些匯編代碼,因此還要求對所使用的CPU匯編指令有所了解,例如X86的匯編和PowerPC的匯編指令等;對于某些復雜的BSP還要了解所使用的開發工具,例如GNU、Diab

     Data等。

     總之,開發BSP要求具備比較全面的軟、硬件知識和必要的編程經驗。由于設計實現的復雜性,在設計特定BSP時很少從零開始,而是采用以下兩種快捷方法。

     方法一:以經典BSP為參考

     在設計BSP時,首先選擇與應用硬件環境最為相似的參考設計,例如Motorola的ADS系列評估板等。針對這些評估板,不同的操作系數都會提供完整的BSP,這些BSP是學習和開發自己BSP的最佳參考。針對具體應用的特定環境對參考設計的BSP進行必要的修改和增加,就可以完成簡單的BSP設計。

     下面以設計pSOS操作系統的BSP初始化過程為例。PSOS系統初始化的層次非常清晰,與初始化過程相對應的是以下三個文件:

     1)init.s:對應于片級初始化;完成CPU的初始化操作,設置CPU的工作狀態;

     2)board.c:對慶于板級初始化;繼續CPU初始化,并設置CPU以外的硬件設備;

     3)sysinit.c:對應于系統級初始化;完成操作系統的初始化,并啟動應用程序。

     以參考BSP為切入點,針對初始化過程的具體環節,在對應的文件中進行某些參數的修改及功能的增加就可以實現BSP的系統初始化功能。

     因為BSP具有操作系統相關性,因此,不同的操作系統會使用不同的文件完成類似的初初化操作。

     BSP中硬件相關的設備驅動程序隨操作系統的不同而具有比較大的差異,設計過程中應參照操作系統相應的接口規范。

     方法二:使用操作系統提供的BSP模板

     除了提供某些評估板的BPS以外,很多操作系統還提供相應的BSP模板(一組需要編寫的文件),根據模板的提示也可以逐步完成特定BSP的設計。

     相比較而言,第一種方法最為簡單快捷。因此,在實際的設計過程中,通常以第一種方法為主,同時結合使用第二種方法。

     在設計實現BSP兩部分功能時應采用以下兩種不同方法:

     (1)“自底向上”地實現BSP中的初始化操作:從片級初始化開始到系統初始化;

     (2)“自頂向下”地設計硬件相關的驅動程序:從API開始,到操作系統內部的通用設備驅動程序,再到BSP內部的硬件相關的設備驅動程序,最后到底層具體的硬件設備。

    

     3.2 BSP設計方法的不足與改進

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

     解決這個問題的一個可行辦法是:設計實現一種具有圖形界面的BSP開發設計向導,由該向導指導設計者逐步完成BSP的設計和開發,并最終由向導生成相應的BSP文件,而不再由設計人員直接對源文件進行修改。這樣不僅可以大大縮短BSP的開發周期,減少代碼不一致性,而且系統排錯、調試以及維護都很簡單。因此,這種方法是目前嵌入式領域中BSP設計的一個趨勢和研究方向。但是,由于嵌入式系統硬件環境的多樣性,設計向導的實現仍需解決若干關鍵問題。為此,作者仍將在這一方面作進一步研究。

]]>
基于DSP的通用型嵌入式語音平臺的硬件設計http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1495&Page=1wangxinxin2010-11-19 10:00:031.語音硬件平臺的總體介紹和系統框架

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

圖片點擊可在新窗口打開查看

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

圖片點擊可在新窗口打開查看


  如圖所示,當PTT被按下則表示請求通話,話筒輸入的模擬話音VIN通過一個放大電路放大之后輸入語音CODEC芯片TLV320AIC11,TLV320AIC11內的模數轉換器將其轉換成16bit的線性PCM格式并通過DSP的McBSP0口傳送到DSP內部接收語音緩沖區,DSP在緩沖區內的數據在積累到一定幀長之后啟動編碼算法編成特定碼率的碼流。編好的碼流被送入另一發送比特流緩沖區緩沖。該緩沖區內的信號在同步時鐘TXC的上升沿被送到MODEM的調制模塊調制并發射出去。同時,DSP檢測MODEM的CD信號,當CD信號有效(低電平)時,在同步時鐘TXC的下降沿鎖存RXD上的數據并送入DSP內的接收比特流緩沖區。當接收比特緩沖區內的數據積累到一定長度時,DSP啟動解碼程序將其解碼成16bit的PCM語音。該語音通過McBSP0口被送入TLV320AIC11,TLV320AIC11內的數模轉換器將其轉換成模擬的語音信號送入聽筒。

]]>
基于硬件壓縮技術的嵌入式圖像監控系統設計http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1494&Page=1wangxinxin2010-11-19 9:54:47  嵌入式系統 (embedded system)被定義為:以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適應對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。今天,嵌入式系統已經無處不在,從汽車、pda、電視機,到工控生產現場、通信、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等方面,都能發現嵌入式系統的蹤影。從國內外的嵌入式系統發展狀況來說,嵌入式系統的應用正在從傳統的單一應用范圍、狹窄應用對象、簡單實現功能向現在和未來社會需要的應用需 要進行轉變。工業自動化領域對嵌入式系統的需求正在慢慢擴大,特別是最近幾年來隨著工業以太網的發展,對嵌入式智能設備的需求越來越明顯。嵌入式系統在智能設備里面的應用,是對嵌入式系統概念和應用范圍的一個變革,會出現一個由多芯片、多處理器占領工業自動化應用市場領域的局面。

  目前,在嵌入式處理器市場上,arm系列處理器以其高性價比,價格低廉廣受用戶青睞,而且許多國際知名的芯片生產廠家都已經購買了arm芯片設計許可并開 始大量生產針對特定應用領域的arm芯片,芯片種類十分豐富。arm公司專注于芯片內核設計,其內核功耗少、成本低、功能強,特有的16位/32位雙指令 集,存儲器比等價32位代碼節省近35%,16位的thumb狀態和正常的arm狀態之間的開銷為零。目前arm嵌入式處理器有5個產品系列-arm7、 arm9、arm9e、arm10和securcore。

  arm7系列是低功耗的32位核,最適合應用于對價位核功耗敏感的產品,可分為應用于實時環境的arm7tdmi、arm7tdmi-s以及適用于開放平 臺的arm720t核適用于dsp運算及支持java的arm7ej等。arm7采用三級流水線和馮-諾依曼結構,提供0.9mips/mhz的性能。迄 今為止,arm7tdmi是世界上應用最廣泛的32位嵌入式處理器。

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

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

  嵌入式操作系統通常分為商用型和免費型兩類。商用的嵌入式操作系統有windriver(風河)的vxworks和psos、美國ati的nucleus plus以及microsoft(微軟)的windows ce等。免費的嵌入式操作系統有嵌入式ulinux、uc/os等。商用型操作系統功能穩定、可靠,有完善的技術支持和售后服務,但往往價格昂貴。免費型操作系統具有源代碼公開和無需版稅的優勢,但也存在著開發困難的不足。

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

圖片點擊可在新窗口打開查看

  圖1 uclinux基本結構

]]>
基于嵌入式系統的網絡變頻器軟硬件設計http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1493&Page=1wangxinxin2010-11-19 9:53:561 引言

  隨著現代控制理論、電力電子技術、計算機控制技術和傳感器技術的發展,整個拖動領域正在進行一場革命,交流電機的調速理論取得了突破性的進展,交流傳動取代直流傳動已成為不可逆轉的趨勢。變頻器以其節能顯著、過載能力強、調速精度高、響應速度快、保護功能完善、使用和維護方便等優點在交流傳動領域的應用將越來越廣泛。本文研究了一種基于嵌入式系統的網絡變頻器設計過程。

2 變頻器的硬件設計

  2.1 主電路設計

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

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


圖1 變頻器主電路

  2.2 控制電路設計

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

  1、電源電路

  控制電路所需的電源除了4組IGBT驅動電源 15V以外,單片機LPC2292本身也需要工作電源,其CPU內核需要 1.8V電源;I/O端口需要 3.3V電源。因此控制電路需要3種電壓的電源。4組 15V的電源我們是通過4個三端穩壓器LM7815來實現的;而 1.8V和 3.3V電源則利用三端穩壓器LM7805和LDO芯片(低壓差電源芯片)共同來實現。

  2、交流電流電壓檢測電路

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


(a) 相電流檢測電路


(b) 相電壓檢測電路

圖2交流電流電壓檢測電路

  3、直流電壓檢測電路

  直流電壓檢測是通過取濾波電容兩端電壓,經過電阻分壓后轉換成0~5V電壓信號,然后經過線性光電耦合器6N138整定為0~3V的電壓信號,通過電壓跟隨器輸出供單片機A/D通道采樣。

  4、故障檢測與處理電路

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

  5、PWM脈沖輸出電路

  驅動IPM內部的六路IGBT的PWM脈沖先是從LPC2292內部PWM脈寬調制器輸出的,然后通過光耦隔離后再送到IMP的六路脈沖輸入端。

  2.3 保護電路的設計

  雖然PM20CSJ060有過流、欠壓、短路或過熱等自保護功能,但為了提高系統的可靠性和更好地保護IGBT,我們還是增加了一套快速而準確的保護環節以防止各種故障的發生對系統造成的損壞。

  1、欠壓/過壓保護電路

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


圖3欠壓/過壓保護電路

  2、限流起動保護電路

  此電路是用來防止在電機起動過程中,電容充電電流過大而損壞整流管。當電機起動時,起動電流很大,為了保護整流管,在主電路上串了一個限流電阻R1,定時15s后,單片機就控制繼電器將常開觸點閉合,使限流電阻R1短路,結束限流起動過程,進入正常運行狀態。

  3、泵升電壓保護電路

  當電機負載進入制動狀態時,反饋電流將向中間直流回路電容充電,導致直流電壓上升,產生所謂的泵升電壓。如果不對此電壓進行限制,它將造成IGBT的永久損壞。產生泵升電壓是電機制動過程不可避免的現象,為此要給制動過程提供一條能量釋放路徑。

3 變頻器以太網接口電路的硬件設計

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

  前面講過變頻器控制電路的設計,其中實現整個系統控制功能的是微處理器LPC2292。由圖4可以看到,實現此變頻器的以太網接口功能,采用的微處理器仍然是LPC2292。那么也就是說,LPC2292除了實現SVPWM波形的產生以外,還要負責與外界網絡的數據交換。就網絡而言,LPC2292主要是對網卡芯片RTL8019AS進行監控,通過此芯片將數據發送到以太網上或從以太網上接收數據,然后通過以太網連接到Internet,從而實現真正的嵌入式TCP/IP設備。


圖4以太網接口電路圖

4 基于μC/OS-II的系統整體軟件的設計

  μC/OS-II是一個占先式、多任務的實時操作系統,它可以管理64個任務,除8個系統任務外,應用程序最多可以有56個任務。若采用μC/OS-II來實現某系統的軟件設計,通常是把這整個系統分成若干個部分來完成,每個部分可以當成一個單獨任務,然后在μC/OS-II的統一管理下來協調各部分的工作,從而達到整個系統的軟件設計要求。本文在軟件設計時,就是采用μC/OS-II框架,把系統軟件模塊化,分成多個任務來共同完成。

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

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

  為此,把LPC2292要實現的功能分成6個部分,每個部分用μC/OS-II中的一個任務來實現,這六個任務分別為Task1、Task2, Task3, Task4, Tasks, Task6。

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

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

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

因此,現在已發展成為調試數據通信、無線系統和其他實時嵌入式應用的通用接口。本文研究了以內含ARM核的微處理器AT91SAM7X256為核心,柵格模式系統。外部擴展指紋傳感器MBF200構成指紋識別服務器硬件;圖5所示為通過測試平臺的數據流。系統軟件移植實時多任務操作系統μC/OS-Ⅱ、文件系統、LwIP,智能家居報警網絡框圖如圖1所示。應用軟件實現指紋識別。●選擇正確的架構,

該方法具有成本低、占用資源少、可擴展性強的特點。其中一個是用戶模式和系統模式共用的。

1 分布式指紋識別系統原理及硬件設計

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

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

1.1 AT91SAM7X256器件及MBF200模塊應用

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

]]>
LPC2214的在線式UPS硬件設計http://www.rfoamep.cn/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),相應地需要兩種電壓的電源。本設計采用的低壓差線性穩壓器LDO為TI公司的TPS73xx系列穩壓器,將5 V電壓穩壓成主控芯片的3.3 V和1.8 V。TPS73xx系列芯片是雙路輸出,輸出電流可達250 mA,內部集成電壓監控器監視器,噪聲低,負載/線路瞬態響應優良。圖4為雙路LDO電源。5 V電源來自采用飛兆公司的FSDM0265設計的反激式開關電源。反激式開關電源設計輸入電壓為AC 85~265 V。當市電正常供電時,使用市電;當市電電網斷電時,由電池的電壓向反激式開關電源供電,生成電路中應用的低壓直流電源。

圖片點擊可在新窗口打開查看

  2.5 工作存儲模塊

  工作存儲模塊采用NAND Flash K9F2G16U0M。其內部采用非線性宏單元模式,固態大容量存儲;容量為256 MB,采用頁寫模式;通過并行數據接口連接到數據總線,可以快速地進行存儲或讀取。

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

圖片點擊可在新窗口打開查看

  2.6 網絡接口模塊

  UPS系統在向網絡化、智能化發展,所以在主控模塊電路中設計了網絡接口,如圖6所示。

圖片點擊可在新窗口打開查看

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

  3 結 論

  基于LPC2214的數字化UPS,簡化了電路的硬件設計,降低了硬件成本,提高了UPS的可靠性,擴大了升級空間和產品的多樣性。通過搭建實驗性電路與程序的結合,驗證了設計的正確性,為后續研究提供了一定的實驗基礎。

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

數字多媒體終端的硬件設計與實現
    數字語音教學系統由教師端、多個學生端(數字多媒體終端)、數字傳輸網絡組成。其中,教師端一般采用計算機控制,主要完成系統管理及網絡管理。學生端既可以基于PC機平臺,也可以采用經濟型獨立設備。數字傳輸網絡是所要傳輸的多媒體信息的載體。本文就是針對學生端設計一種經濟實用的獨立設備。它采用嵌入式數字信號處理器DSP+CPLD+接口電路的設計模式。數字信號處理器DSP實現語音信號的處理、網絡接口部分的控制及多任務的管理。CPLD完成網絡適配部分設計及部分外圍電路控制。接口電路包含網絡接口、模擬語音輸入輸出接口。語音傳輸中要保證語音傳輸的實時性和交互性,實現學生端與教師端和其他學生端的通信。

    硬件平臺構造于DSP嵌入式系統上,該平臺采用了TI公司的數字信號處理器TMS320VC5402作為核心部件,利用可編程邏輯器件XC95288開發了外圍控制電路和接口電路,其電路如圖1所示。它主要包括以下幾部分:
圖片點擊可在新窗口打開查看
          圖1 嵌入式多媒體終端硬件平臺結構框圖
 
多種設備接口
    包括網絡輸入、輸出接口、話筒輸入接口和耳機輸出接口。 

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

語音信號的轉換及編解碼
    語音信號的A/D,D/A轉換及編解碼功能是利用MC145480完成的,它的優點是:①可將語音信號的A/D,D/A轉換及編解碼集成在一個芯片中,提高了系統穩定性;②只需單電源供電,減少了雙電源供電所帶來的電源干擾問題,提高了語聲質量;③可提供A律及m律兩種編碼格式,提供符合ITU-T G.711建議的語音數據流。
系統控制、管理與語音壓縮

    由數字信號處理器TMS320VC5402完成。該芯片處理速度快,可實現語音的實時處理,并實現語音的回聲抑制功能。除了能完成DSP所提供的功能外,利用內嵌的DSP/BIOS實時操作系統,可實現并建立語音實時多任務系統。

網絡適配電路
    本網絡的拓撲結構參考令牌總線網,物理拓撲采用總線型結構,由一根線形的電纜連接各個站點。邏輯拓撲采用環形結構,每個站點知道自己左邊和右邊站點的地址,在邏輯上構成一個環,數據沿環逐節點順序傳送。這種物理結構具有以太網電纜的可靠性,不會因某處電纜故障物而在物理上導致整個系統癱瘓。其所需電纜長度短,安裝費用低,易于布線、維護和擴充。而且,物理上共享總線的站點之間可以直接通信,響應速度較快。同時,由于總線電纜固有的廣播特性,使得應用中廣播功能的實現較為容易。另外,由于邏輯環是公平的,每一站點對信道的訪問時間有一個確定的上界,因此可以防止某一站點獨占信道這種情況的發生。共享媒體語音網是一個局域通信網絡,它沒有路由問題,任何兩個站點之間可以使用一條直接鏈路,所以不需要單獨設置網絡層,而可以將尋址、排序、流控、差錯控制等功能都放在數據鏈路層中實現。

    該控制電路利用XILINX公司的可編程邏輯器件CX95288實現。網絡適配器把數據總線上的低電平并行信號轉換成0、1碼流,通過連接網絡各站點的電纜傳輸。它采用特殊技術,以便利用適配器共享局域網線纜、局域網的介質訪問控制MAC方式和發送信號的類型。電路包括網絡接口、接收電路、發送電路及與DSP的接口電路。其中,網絡接口部分采用通用的RS-485通信接口,實現簡單。共享媒體語音網絡的適配器電路結構如圖2所示。
圖片點擊可在新窗口打開查看 
             圖2 網絡適配器電路結構

數字多媒體終端的軟件設計與實現
    數字多媒體終端系統除了利用DSP完成信號處理,實現全部系統控制功能之外,在系統軟件設計中,需要對DSP、存儲器、外設等各種資源加以管理,同時還要處理多任務并發操作和不同任務之間的協調。為了保證系統的可靠性和穩定性,本文采用了DSP/BIOS實現上述工作。

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

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

    DAX函數由配置工具中設備對象的函數表調用,在dax.c中初始化驅動函數表DAX_FXNS,DAX函數表的結構如下所示:
DEV_Fxns DAX_FXNS = {
DAX_close,
DAX_ctrl,
DAX_idle,
DAX_issue,
DAX_open,
DAX_ready,
DAX_reclaim
};

    應用程序不直接調用驅動函數,這個函數表用于SIO模塊調用特定的設備驅動函數,SIO模塊依次發送通常的函數調用適當的驅動函數。

● 建立SIO流
    本文利用靜態配置工具為每個任務建立一個輸入流和一個輸出流,采樣線程對應采樣輸入流inSample和輸出流outSample,播放線程對應播放輸入流inSink和輸出流outSink。

● 建立任務
    系統利用DSP/BIOS建立兩個任務tasksample和tasksink,分別對應Sample 和Sink線程,以完成語音的采集處理與播放處理。采樣線程Sample和播放線程Sink調用相同的I/O處理函數,I/O處理函數如下所示:
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);
}
}
}

    雖然兩個線程調用了相同的I/O處理函數,但是由于對應不同的輸入/輸出流,因此在多任務操作中,不會出現沖突。

● 建立中斷服務程序 
    使用HWI硬件中斷服務管理器HWI配置相應的中斷服務程序ISR。當接收發生中斷時,ISR將接收的數據放入緩沖區,當接收緩沖區滿時,通知設備驅動程序DAX,將緩沖區的數據發送到inSample流中,供上層任務處理。

結語

    本文針對傳統模擬語音教學系統的弊端提出了數字語音教學系統,并設計實現。該系統平臺主要為數字語音教室的隨意分組討論、點名、選擇題問答、播放備課文件、回放等一系列功能提供了實現基礎。同時通過共享多種媒體,如聲音、音樂、文字、圖象等,減少時間浪費,使教學高效、生動,從而激發學生的學習積極性和想象力,有很好的開發應用價值。
]]>
基于EP9312的銀稅類嵌入式系統硬件設計方案http://www.rfoamep.cn/bbs/dispbbs.asp?BoardID=15&ID=1488&Page=1wangxinxin2010-11-19 9:41:28

內容摘要:闡述了采用EP9312來構造銀行稅務類嵌入式系統的理由,將EP9312與其它嵌入式處理器進行了比較。

<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>

圖片點擊可在新窗口打開查看

  3.9 電源

  EP9312需要4個不同的電源:RVDD(3.3 V)、CVDD(1.8 V)、VDD_PLL(1.8 V)和VDD_ADC(3.3V)。板上其他元件除了3.3 V供電的以外,還有5V供電的,整個系統的輸入電壓為12 V,通過變壓器件變成5 V,再通過LTl76ET-3.3轉換器件把+5 V轉變為3.3 V的系統電壓,通過LT176ET-1.8轉換器件把+3.3V轉變為1.8V的EP9312內核電壓。

  3.10 GPIO分配

  EP9312有16個具有中斷能力的增強型通用I/0,由于金融稅務類嵌入式系統的產品通常不需要IDE接口,因此把IDE接口的I/O設計成GPIO,連同其他一些設計,總共增加了49個可選通用I/O。

  3.11 Bootloader

  Bootloader是系統加電啟動運行的第一段軟件代碼。整個系統的加載啟動任務就完全由Bootloader來完成。簡單地說,Bootloader就是在操作系統內核或用戶應用程序運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核或用戶應用程序準備好正確的環境。EP9312提供了20種Boot-loader的方式,分別經過EECLK、EEDAT、LBOOTI、LBOOTO、ASDO、CSn[7:6]的跳線組合來選擇。

  本系統在調試和生產時,采用16-bit serial boot的啟動方式。對應的EECLK、EEDAT、LBOOTI、LBOOTO、ASDO、CSn[7:6]選擇方式分別為:l、1、0、X、0、1。此時,CPU通過片內已經固化的4 KB程序進行啟動,初始化CPU和串口,并通過串口把用戶程序下載到Flash中。當系統正常工作時,則直接通過Flash啟動。直接在Flash中讀取程序代碼運行。

  本設計利用前者把操作系統和應用程序寫入Flash中,用后者進行嵌入式系統的正常工作開啟。

  4 結束語

  本文介紹了一種基于EP9312的銀稅類嵌入式系統的硬件設計方案。經過測試,系統各部分都能正常工作,實現了預定的功能。

  與以前的嵌入式系統平臺相比,本系統集成度高、主板面積小、外圍接口多,成本低,運行速度快,是一款性價比很高的產品,能為嵌入式產品的開發提供一個良好的平臺。主要面向計算機終端、存折打印機、補登機、POS機等嵌入式產品

]]>
主站蜘蛛池模板: 日本人强jizz多人高清 | 禁断看护妇中文字幕在线视频 | 日韩中文字幕在线播放 | 亚洲爆乳无码一区二区三区 | 日本熟妇人妻xxxxx-欢迎您 | 97人人模人人爽人人喊网 | 亚洲欧美视频在线观看 | 999精品在线 | 欧美重口另类在线播放二区 | jizz在线看片 | 中文在线观看视频 | 四虎影院在线播放 | 强奷乱码中文字幕熟女导航 | 美女穿丝袜被爆网站 | 欧美成人aaa片一区国产精品 | 亚洲素人在线 | 老色鬼久久亚洲av综合 | 欧美精品国产 | 素人天堂 | 久久久日韩精品国产成人 | 好吊色欧美一区二区三区视频 | 亚洲国产精品嫩草影院 | 一级特大黄色片 | 中文在线а√天堂官网 | 在线观看91香蕉国产免费 | 欧美日韩一区二区视频图片 | 特级毛片a级毛片在线播放www | 202z日本高清免费视频 | 精品三级国产一区二区三区四区 | 鲁大师在线视频播放免费观看 | 东方aⅴ免费观看久久av | 亚洲依依成人亚洲社区 | 91系列在线 | 欧美国产精品不卡在线观看 | 精品视频www | 国产成人精品亚洲日本语言 | 国产成人综合亚洲一区 | 26uuu精品一区二区 | 女女互磨互喷水高潮les呻吟 | 日韩精品久久一区二区三区 | 韩国无码一区二区三区免费视频 |