国产一区二区三精品久久久无广告,中文无码伦av中文字幕,久久99久久99精品免视看看,亚洲a∨无码精品色午夜

嵌入式設計系統(tǒng)范例6篇

前言:中文期刊網(wǎng)精心挑選了嵌入式設計系統(tǒng)范文供你參考和學習,希望我們的參考范文能激發(fā)你的文章創(chuàng)作靈感,歡迎閱讀。

嵌入式設計系統(tǒng)

嵌入式設計系統(tǒng)范文1

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

引言

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

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

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

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

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

3詞法語法分析的設計與實現(xiàn)

3.1Lex⁃Yacc

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

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

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

3.3被測源程序靜態(tài)結構分析

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

4覆蓋率分析及評測

4.1被測源程序覆蓋率分析

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

4.2基于代碼的覆蓋評測

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

5嵌入式系統(tǒng)平臺設計

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

5.1插裝代碼分析

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

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

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

5.3自動化比較和測試

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

6結語

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

參考文獻

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

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

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

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

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

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

嵌入式設計系統(tǒng)范文2

關鍵詞: 地理信息系統(tǒng);嵌入式;全球定位系統(tǒng);空間數(shù)據(jù)

Abstract: based on embedded system design of the structure of the geographic information system, and puts forward the comprehensive GIS architecture using a variety of modern technology, they include GIS technology and embedded technology, and RS technology, GPS technology, mobile computing technology and communication technology, etc.

Keywords: geographic information systems; Embedded; Global positioning system; Spatial data

中圖分類號:S611文獻標識碼:A 文章編號:

1.引言

隨著GIS技術的不斷成熟和它給人們帶來的巨大便利,以及嵌入式設備性能的提高和普及,兩者的結合成為一種必然的發(fā)展趨勢。近年來,嵌入式GIS技術正成為GIS發(fā)展的熱點之一,它的應用包括了汽車導航、野外測繪、物流運輸、軍事指揮等眾多的領域。我國也已經(jīng)開發(fā)出了自己的嵌入式GIS產(chǎn)品,比如武漢中地軟件的MAPGIS-Embedded和北京超圖公司的eSuperMap等。本章提出了一種基于嵌入式設備的地理信息系統(tǒng)的完整的體系架構,對于架構中涉及到的技術以及每一個模塊都做了比較詳細的說明。同時需要指出的是:這個架構不僅具有一定的理論價值,還具有很強的現(xiàn)實意義。我們已經(jīng)按照此架構中提出的思想進行了代碼實現(xiàn),當然由于時間和精力的關系,只是實現(xiàn)了其中的一些基本的功能,但這卻是自主開發(fā)嵌入式地理信息系統(tǒng)的一次有意的嘗試,并具體介紹實現(xiàn)的過程和步驟,以及實現(xiàn)過程中一些難點、關鍵問題的解決。

2.嵌入式GIS體系架構

嵌入式地理信息系統(tǒng)的體系架構如圖1所示。從圖中可以看出,整個系統(tǒng)是基于C/S模式的,它由嵌入式設備、高性能計算機、全球定位系統(tǒng)(GPS)和空間數(shù)據(jù)庫四個部分組成。

嵌入式設備由嵌入式硬件系統(tǒng)和嵌入式軟件系統(tǒng)構成,其中嵌入式硬件系統(tǒng)要集成GPS定位信息的接收功能;在嵌入式硬件之上的一層是嵌入式操作系統(tǒng)(如ARM-Linux等),它是嵌入式軟、硬件之間的橋梁,主要負責文件管理、進程調(diào)度等功能;運行在嵌入式設備上的GIS軟件(也就是客戶端程序)包括地圖的顯示、縮放、漫游、緩沖分析、通訊等幾個模塊,通訊模塊可以通過無線網(wǎng)絡與高性能計算機(服務器)進行通信和數(shù)據(jù)傳輸。

高性能計算機(服務器)要實現(xiàn)最短路徑、最優(yōu)路徑的查詢等地理信息系統(tǒng)中比較復雜的功能,同時還要實現(xiàn)與客戶端進行通訊、文件格式的轉換,以及訪問數(shù)據(jù)庫服務器等功能。

對于系統(tǒng)中數(shù)據(jù)的存儲,我們采取的是客戶端-服務器兩級數(shù)據(jù)存儲模式,大部分的數(shù)據(jù)存放在服務器端(高性能計算機),客戶端(嵌入式設備)只保留少量常用的數(shù)據(jù);如果系統(tǒng)中的數(shù)據(jù)量過于龐大,甚至可以由一個具有海量存儲器的計算機專門來存儲服務器端的數(shù)據(jù),并向服務器提供訪問接口,這樣可以減輕服務器的負擔,提高整個系統(tǒng)的效率和處理數(shù)據(jù)的速度。在必要時,客戶端可以向服務器提出更新數(shù)據(jù)的請求,服務器在接到請求后把相應的數(shù)據(jù)文件回傳給客戶端。

圖1 基于嵌入式設備的GIS架構示意圖

對系統(tǒng)的功能模塊進行了劃分,把地圖顯示、圖層管理、緩沖分析、縮放和漫游等比較簡單,對硬件資源消耗小的應用放在客戶端,而把最優(yōu)路徑、最短路徑的分析等復雜的應用放在服務器端。這樣做的原因在于嵌入式硬件本身的資源非常有限,如存儲空間偏小、處理器的速度也不是十分理想等,所以它不可能發(fā)展較為復雜的GIS空間分析功能。當客戶端需要調(diào)用最短(優(yōu))路徑查詢等復雜的GIS分析功能時,就向服務器發(fā)出請求(其中包括客戶端當前的位置、目的地等參數(shù)),服務器根據(jù)客戶端傳遞的參數(shù),對數(shù)據(jù)庫進行一系列的查詢、檢索等操作后,將分析的結果回傳給客戶端,從而為客戶提供決策支持,同時也減輕了嵌入式設備的負擔,提高了它的工作效率。

3.全球定位系統(tǒng)及3S集成技術

3S技術為科學研究、政府管理、社會生產(chǎn)提供了新一代的觀測手段、描述語言和思維工具。3S的結合應用,取長補短,是一個自然的發(fā)展趨勢,三者之間的相互作用形成了“一個大腦,兩只眼睛”的框架,即RS和GPS向GIS提供或更新區(qū)域信息以及空間定位,GIS進行相應的空間分析(圖2),以從RS和GPS提供的浩如煙海的數(shù)據(jù)中提取有用信息,并進行綜合集成,使之成為決策的科學依據(jù)。RS、GIS、GPS集成的方式可以在不同的技術水平上實現(xiàn),最簡單的辦法是三種系統(tǒng)分開而由用戶綜合使用,進一步是三者有共同的界面,做到表面上無縫的集成,數(shù)據(jù)傳輸則在內(nèi)部通過特征碼相結合,最好的辦法是整體的集成,成為統(tǒng)一的系統(tǒng)。

圖2 3S的相互作用與集成

4.空間數(shù)據(jù)的無線傳輸

空間數(shù)據(jù)無線傳輸技術是完善嵌入式GIS 功能的重要技術之一。但是目前該技術的發(fā)展受到諸多因素的制約,下面就這些制約因素加以闡述和分析,并針對無線傳輸網(wǎng)絡提出相應的解決方案。雖然GPRS是作為現(xiàn)有GSM網(wǎng)絡向第三代移動通信演變的過渡技術,但是它相對于原來GSM的撥號方式的電路交換數(shù)據(jù)傳送方式,在許多方面都具有顯著的優(yōu)勢。正是由于GPRS具有以上的這些特點和優(yōu)勢,在我們設計的基于嵌入式設備的GIS系統(tǒng)架構中,采用了GPRS作為空間數(shù)據(jù)的無線傳輸網(wǎng)絡。

5.試驗結果

ECI GIS的開發(fā)嚴格遵循了軟件工程的思想,并且針對嵌入式軟件開發(fā)的特點,對軟、硬件平臺以及專業(yè)需求等因素也進行了綜合的分析和考慮。但由于時間、技術等方面的原因,我們的軟件只是實現(xiàn)了GIS中的一些基本功能。本節(jié)將重點向您介紹這些功能的實現(xiàn),即程序運行的結果。說明:地圖中的當前圖層為上海市區(qū)縣和主要河流。

圖3全圖顯示

圖4屬性數(shù)據(jù)庫的顯示

結束語

ECI GIS1.0是一個基于嵌入式設備的地理信息系統(tǒng)軟件,它經(jīng)過了架構的搭建、模塊設計、代碼實現(xiàn)、軟件移植和應用檢驗幾個階段,具備了地圖縮放、信息查詢等基本的功能。ECI GIS與其他的嵌入式地理信息系統(tǒng)相比,最大的特點就是它沒有借助任何商業(yè)的操作系統(tǒng)(如WinCE)和GIS系統(tǒng)軟件,實現(xiàn)過程中用到的Linux和GDAL函數(shù)庫的源代碼都是免費開放的。ECI GIS1.0是我們?yōu)殚_發(fā)出中國擁有自己完全版權的GIS軟件而進行的有意的嘗試和探索,這一點或許遠遠大于其在商業(yè)上的價值。

參考文獻:

[1] 龔健雅. 地理信息系統(tǒng)基礎[M]. 北京:科學出版社,2001.

[2] 張超,陳丙咸,鄔倫.地理信息系統(tǒng)[M]. 北京:高等教育出版社,1995.

[3] 鄔倫.地理信息系統(tǒng)――原理、方法和應用[M].北京:科學出版社, 2001.

嵌入式設計系統(tǒng)范文3

關鍵詞:嵌入式;系統(tǒng)軟件;設計;實現(xiàn)

中圖分類號:TP273.5 文獻標識碼:A 文章編號:1674-7712 (2014) 12-0000-01

當前時代,科學技術快速發(fā)展,信息技術被應用于我們?nèi)粘I畹母鱾€方面。高科技為我們的生活帶來了無限的便利,目前采用高科技手段為人們提供一個安全的生活和工作環(huán)境。本文針對嵌入式系統(tǒng)在門禁卡的應用上進行研究,解決了傳統(tǒng)門禁卡很多的不便功能。為實現(xiàn)門禁卡自動、智能化管理提供建議,以此來對門禁卡功能與嵌入式系統(tǒng)軟件設計與實現(xiàn)相關問題進行研究[1]。

一、嵌入式門禁系統(tǒng)設計

(一)嵌入式系統(tǒng)設計介紹。隨著科學技術的快速發(fā)展,嵌入式門禁卡系統(tǒng)已經(jīng)逐漸進入人們的生活,逐漸由傳統(tǒng)的門禁卡系統(tǒng)轉變?yōu)楝F(xiàn)代的生物特征識別技術門禁卡系統(tǒng)。嵌入式系統(tǒng)的門禁卡主要分為了圖像采集、自動照明、語音提示、申請功能、無人監(jiān)測等具體功能實現(xiàn)[2]。其具體的架構如圖1所示。

圖1 門禁系統(tǒng)功能圖示

(二)系統(tǒng)硬件設計概述。如果要設計出完善的門禁系統(tǒng),不僅需要軟件系統(tǒng)的支持,還需要硬件支撐,否則整個軟件系統(tǒng)難以實現(xiàn)。嵌入式多功能門禁系統(tǒng)其本質(zhì)由嵌入式技術與圖像處理技術融合應用。其中嵌入式的硬件支撐硬件結構主要有照明控制、網(wǎng)絡接口、攝像頭、按鍵、CF卡、音頻接口、LVDS以及DDR2等。

二、嵌入式系統(tǒng)在門禁卡中的實現(xiàn)

(一)圖像采集實現(xiàn)。量化后的數(shù)字圖像信號和連續(xù)信號取樣的數(shù)字圖像信號是數(shù)字圖像處理的對象,當這些最原始的信號經(jīng)過圖像處理后即可獲得可觀測的連續(xù)信號。對連續(xù)信號進行取樣其本質(zhì)是將信號的空間離散化,而量化則是將離散后的圖像信號幅度上進行離散化,所以量化和取樣后的圖像信號應該是原始連續(xù)圖像信號。

對于視頻圖像的獲取方法通常有兩種,一是利用視頻捕捉卡中的SDK工具獲取,二是使用Video for Windows,這給視頻捕獲編程帶來了很大的福利,對視頻捕獲的靈活性有很大的提高。視頻數(shù)據(jù)的實時采集主要是調(diào)用AVICap32.dll來穿件一個AVICap窗口類,它給應用程序提供了一個簡單而方便的數(shù)據(jù)接口,使用戶能夠訪問音頻和視頻,并且還能在硬盤上對視頻捕獲進行控制,它在捕獲視頻的能力很強,可以直接訪問視頻緩沖區(qū),也不生成中間文件,視頻捕獲的速度快,及時性高,也可以將視頻保存在設置好的文件夾中,整個視頻捕捉過程都可以實現(xiàn)控制[3]。

(二)自動照明實現(xiàn)。整個照明系統(tǒng)主要分為了兩個部分,照明系統(tǒng)通過發(fā)送指令給單片機實現(xiàn)對整個電路進行調(diào)整。整個照明系統(tǒng)分為控制部分和圖像亮度檢測部分,照明系統(tǒng)中的圖像檢測與電路照明具有很強的聯(lián)系。嵌入式軟件系統(tǒng)進行照明攝像控制時,通過采集信息的亮度,而其亮度與圖像的象素有關,將圖像做為一個二維圖像,橫坐標表示圖像各個像素點的灰度級r;縱坐標則表示弧度制出現(xiàn)的概率Pr(r);那么對于某一個灰度值ri的象素個數(shù)為ni。則概率密度為:Pr(r)= ; =1。

(三)語音提示實現(xiàn)。該系統(tǒng)運用的是ALC655音頻解碼器,Mic用于連接麥克風,Line用于錄制聲源的聲音,Audio_Out用于揚聲器或者耳機。本系統(tǒng)主要根據(jù)不用的命令來實現(xiàn)功能,通過調(diào)用不同文件得到不同的效果,根據(jù)不同情況播放不同的提示音。系統(tǒng)中的MFC附帶的音頻播放組可以有效的提高開發(fā)是速度,通過媒體控制接口API實現(xiàn)停止功能MCI提供了控制媒體接口的能力,對波形音頻設備、CD/視頻播放設備等媒體進行控制。系統(tǒng)對音頻的播放采用的是DirectX,作為低級應用程序的編程接口,在開發(fā)上降低難度。對于聲音,主要的API是DirectSound,具備播放、處理混音、錄音等功能,Microsoft DirectSound API為聲音的捕獲、播放、混音的處理、錄音提供了鏈接,DirectSound可以給多媒體提供直接訪問聲音設備、低延遲混合、硬件加速。

(四)申請功能實現(xiàn)。所謂的申請來訪功能主要門禁卡在進行檢測的時候如果遇到不相匹配者,則需要進行申請之后才能夠進入。系統(tǒng)通過語音告知模塊的主人,采取系統(tǒng)中斷方式來進行受訪申請。受訪者來進行訪問申請時,需要按下按鈕然后系統(tǒng)給予語音提示,并且顯示出來訪者的面貌,以此來進行判斷,決定通過或者拒絕。嵌入式軟件系統(tǒng)在門禁卡的顯示上將來訪者的信息顯示在LVDS屏幕桑,然后通過系統(tǒng)對來訪人員進行判斷[4]。

(五)無人監(jiān)測功能實現(xiàn)。無人監(jiān)測功能則是當受訪者進行訪問時,遇到公司無人的時候,由門禁卡系統(tǒng)提示訪問者內(nèi)部無人,并且拍下來訪者的照片,發(fā)送到系統(tǒng)設定的郵箱之中。在此自動發(fā)送郵件的功能中,該系統(tǒng)主要采取以太網(wǎng)作為接口進行數(shù)據(jù)通訊,并且根據(jù)TCP/IP協(xié)議來發(fā)送報文,實現(xiàn)信息交換。

三、結束語

隨著科學技術的不斷發(fā)展,新型的軟件技術被應用到我們?nèi)粘5纳钪校疚闹饕槍η度胧较到y(tǒng)在門禁卡中的應用情況,以及在系統(tǒng)設計過程中所占據(jù)的地位進行研究。實現(xiàn)嵌入式軟件系統(tǒng)在門禁卡中的應用探索,主要針對門禁卡的各項功能的設計與實現(xiàn)進行了詳盡的介紹,希望為采用嵌入式方法進行門禁卡開發(fā)的企業(yè)提供借鑒。

參考文獻:

[1]周海龍.嵌入式門禁系統(tǒng)的設計與實現(xiàn)[D].西安電子科技大學,2012.

[2]吳若無.基于光學逆向器門禁的驅(qū)動和檢測系統(tǒng)設計與實現(xiàn)[D].電子科技大學,2013.

嵌入式設計系統(tǒng)范文4

    摘要:設計一種能夠在典型嵌入式環(huán)境下應用的線性文件系統(tǒng),為嵌入式系統(tǒng)Flash空間的管理提供一種非常有效的手段。它包裝和通用文件系統(tǒng)類似的API接口,設計的實現(xiàn)獨立于實時操作系統(tǒng)(RTOS)和具體的Flash典型,可方便移植到不同的嵌入式應用中。

在嵌入式系統(tǒng)中,為了便于對閃存(Flash)空間進行管理,會采用文件的形式來訪問Flash。目前,可以購買到的Flash文件系統(tǒng)一般都是兼容DOS的文件系統(tǒng)(Flash File System,F(xiàn)FS),這對需要一個具有復雜的目錄層次,并且DDS文件兼容的系統(tǒng)來說是必要的;但是對大多數(shù)的嵌入式應用來說,這種文件系統(tǒng)太過奢侈。筆者在參與嵌入式系統(tǒng)項目的時候,設計了一種線性文件系統(tǒng),它適用于大多數(shù)的嵌入式應用對Flash文件系統(tǒng)的需求。

線性文件系統(tǒng)設計基于三個目標:一是提供給應用程序通過文件名而不是物理地址訪問系統(tǒng)Flash的能力;二是文件系統(tǒng)的設計獨立于實時操作系統(tǒng)(RTOS),這樣可以很容易移植到不同的嵌入式應用中;三是設計統(tǒng)一的底層接口,適應不同的Flash類型。本文設計的線性文件系統(tǒng)為典型的嵌入式系統(tǒng)提供了所需的類文件系統(tǒng)能力。需要注意的是,本文件系統(tǒng)不支持復雜的Flash扇區(qū)擦寫次數(shù)均衡算法,沒有目錄層次,并且和其它的文件系統(tǒng)不兼容。

1 線性文件系統(tǒng)

線性文件系統(tǒng)的設計思路是這樣的:文件分為文件頭和文件數(shù)據(jù)區(qū)兩個部分,每個文件按照順序存放在Flash中,以單向鏈表來鏈接文件。文件的起始部分是文件頭,包含文件的屬性、指向下一個文件頭的指針、文件頭和文件數(shù)據(jù)區(qū)的32位循環(huán)冗余校驗和(CRC32)等。文件頭用一個32位的字來表示文件屬性,每位表示一種屬性,如數(shù)據(jù)文件或者是可執(zhí)行文件,是否已刪除的文件等,具體可以根據(jù)應用的需要來定義文件的屬性;文件頭和文件數(shù)據(jù)區(qū)維護獨立的CRC32校驗,使文件系統(tǒng)能更精確檢測文件的完整性。文件的起始地址沒有特殊需求,分配給文件系統(tǒng)的Flash大小限制了文件的大小。另外,線性文件系統(tǒng)作為嵌入式系統(tǒng)的一個功能模塊,它為應用程序提供與標準文件系統(tǒng)類似的API接口,如:read()、write()、open()、close()、stat()和seek()等。對于同時在多片F(xiàn)lash的系統(tǒng)而言,每片F(xiàn)lash相當于一個目標,文件都可存儲在任何一片中(當然受物理空間限制),但不能跨片存儲。

圖1 Flash文件系統(tǒng)空間

    在第一個文件創(chuàng)建之前,必須進行初始化,將所有分配給文件系統(tǒng)的Flash空間擦除。當創(chuàng)建第一個文件時,起始位置從文件系統(tǒng)的起始地址開始,文件頭指針指向下一個空文件的起始位置(鏈表尾部);第二個文件的位置從當前的鏈表尾部開始,同時文件頭中的鏈表指針指向新的尾部。刪除文件時,僅僅是簡單地把文件頭的標識位中的活動文件標識位置0,表示刪除。這樣,在經(jīng)過多次刪除之后,就有必要運行碎片整理模塊來進行文件系統(tǒng)Flash空間的碎片整理。碎片整理模塊還需要在文件系統(tǒng)Flash空間尾部留一個扇區(qū)來數(shù)據(jù)備份,以便當碎片整理被打斷時(如下電或者復位)可以恢復文件系統(tǒng)。這個保留的扇區(qū)稱空閑扇區(qū)。它必須放在文件系統(tǒng)空間之后,這樣可以保證文件系統(tǒng)的所有文件在所占用的Flash空間是連續(xù)的。整個文件空間的分配如圖1所示。

陰影部分是文件頭,數(shù)據(jù)結構如下:

struct hdr{

unsigned short hdrsize; /*文件頭字節(jié)數(shù)*/

long filsize; /*文件頭版本*/

long filsize; /*文件大小*/

long flags; /*描述文件的標識*/

unsigned long filcrc; /*文件數(shù)據(jù)的CRC32的值*/

unsigned long hdrcec; /*文件的最后修改時間*/

struct hdr *next; /*指向下一個文件頭的指針*/

char name[NAMESIZE]; /*文件名*/

char info[INFOSIZE]; /*文件描述信息*/

};

碎片整個記錄區(qū)包含兩種數(shù)據(jù)類型:碎片整理文件頭信息表defraghdr和文件區(qū)扇區(qū)整理前后的CRC值備份表sectorcre。具體的地址分配從空閑扇區(qū)的起始地址減1開始,往前分配文件系統(tǒng)扇區(qū)數(shù)乘以4字節(jié)作為sectorcrc的空間;從sectorcrc起始地址減1開始,往前分配活動文件個數(shù)乘以64字節(jié)作為碎片整理文件頭信息表。這兩個結構定義如下:

struct defraghdr{

struct hdr *ohdr; /*文件頭的原始位置指針*/

struct hdr *nextfile; /*指向下一個文件的指針*/

long filsize; /*文件大小*/

unsigned long crc; /*這個頭的CRC32值*/

unsigned long ohdrcrc; /*原始文件頭CRC32值的拷貝*/

long idx; /*碎片整理表頭的索引*/

long nesn; /*新的文件尾的扇區(qū)號*/

long neso; /*新的文件尾的扇區(qū)偏移量*/

char *nda; /*新的文件起始地址*/

char fname[NAMESIZE]; /*文件名*/

};

struct sectorcrc{

unsigned long precrc; /*碎片整理前扇區(qū)數(shù)據(jù)CRC32的值*/

unsigned long postcrc; /*碎片整理后扇區(qū)數(shù)據(jù)CRC32的值*/

};

從上面介紹可知,除了文件數(shù)據(jù)之外,文件系統(tǒng)還需要如下4種額外的開銷。

①文件頭:這是每個文件必須的開銷,如果文件名和信息域各24字節(jié),那么整個文件頭共76字節(jié)。

②碎片整理文件頭信息表:每個活動(非刪除)的文件在進行碎片整理時在這個表里創(chuàng)建一個表項,每個表項64字節(jié)。

③碎片整理前后的扇區(qū)CRC32值表:保存文件整理前后的CRC32值,總的字節(jié)數(shù)約為文件所占扇區(qū)數(shù)的4倍。

④空閑塊:用來在碎片整理過程中備份當前整理扇區(qū)數(shù)據(jù)。它必須不小于文件系統(tǒng)其它所有扇區(qū)。

可以用下面方程計算系統(tǒng)開銷的總和:

overhead=(FTOT*(HDRSIZE+64))+SPARESIZE+(SECTORCOUNT*8)

其中:

FTOT是總的文件數(shù);

HDRSIZE是文件頭字節(jié)數(shù)(目前為76字節(jié));

SPARESIZE是空閑塊的大小;

SECTORCOUNT是分配給文件系統(tǒng)的Flash扇區(qū)數(shù),不包括空閑塊。

圖2 文件碎片整理

2 碎片整理

創(chuàng)建新文件需要占用文件系統(tǒng)空間;但是,由于Flash的底層技術不允許Flash中的任意地址空間被刪除,而是按照扇區(qū)為單位刪除,為此在刪除一個文件的時候,暫時沒有把整個文件所占的空間刪除,僅僅是在文件頭的標識里作一個刪除標識,并保留在Flash中。這樣,被刪除文件積累到一定的數(shù)量時,就會占用相當大的空間。因此,需要整理文件系統(tǒng)Flash空間,使被刪除文件占用的空間重新使用。圖2顯示了碎片整理過程。文件F1、F2和F5已經(jīng)被刪除,并且在碎片整理之后從Flash中被清除。

進行碎片整理的方法可以有多種。對于嵌入式系統(tǒng)來說,選擇哪種方法,衡量的依據(jù)是復雜性和功能之間的平衡。下面討論兩種不同的方法:第一種方法相當簡單,但是有缺陷;第二種方法功能強大得多,筆者在線性文件實現(xiàn)中即采用這種方法。當然,存在更加復雜的解決辦法,但通常的情況是,所添加的復雜性會使整個文件系統(tǒng)的實現(xiàn)更加復雜。目標是保持文件存儲的簡單和線性,保證所有的文件都是以連續(xù)的空間存儲在Flash中。

最簡單的方法是將活動的文件備份在RAM中,刪除分配給文件系統(tǒng)的Flash空間,然后將RAM中備份的所有文件拷貝回Flash。這種方法很簡單,并且不需要分配一個扇區(qū)作為空閑區(qū);但問題是,需要有一整塊和分配給文件系統(tǒng)的空間一樣大的RAM來完成這項工作。更糟的是,如果此時系統(tǒng)被復位,或者在刪除扇區(qū)內(nèi)容卻還沒有將文件拷貝回Flash的時候被斷電,文件系統(tǒng)將會崩潰。因為RAM中的內(nèi)容會隨之選擇,文件內(nèi)容會被破壞掉。

我們在文件系統(tǒng)實現(xiàn)設計了一種碎片整理方法,可以防止在碎片整理過程中系統(tǒng)復位導致文件崩潰的情況。采用這種方法,不需要大塊的RAM,但是需要預選先分配給碎片整理過程一個Flash扇區(qū)作為備份區(qū)。這個扇區(qū)的字節(jié)數(shù)不小于任何分配給文件系統(tǒng)的扇區(qū)。在整個文件系統(tǒng)中,這個扇區(qū)位于分配給文件系統(tǒng)最后一個扇區(qū)的下一個扇區(qū)。因為扇區(qū)可能比需要分配給非刪除文件的備份的空間要小,所以它必須逐個扇區(qū)進行處理,而不是一下就把所有的碎片整理完。采用備份扇區(qū)的好處是,在碎片整理過程中,無論斷電或者復位都不會破壞文件系統(tǒng)。當下次系統(tǒng)重新恢復時,會根據(jù)在碎片整理前記錄的每個扇區(qū)碎片整理前后CRC值,來判斷當前的文件碎片整理狀態(tài)。如果上次文件整理沒有完成,就會繼續(xù)上次的整理。這種技術的一個缺陷是空閑扇區(qū)的擦寫次數(shù)會較多。這樣空閑扇區(qū)就可能因為達到擦寫壽命而失敗。達到這一點的關鍵依賴于使用的Flash、所分配給文件系統(tǒng)的扇區(qū)數(shù)、文件刪除和重建的頻率。一個可行的解決辦法采用電池備份的RAM來替換空閑扇區(qū),可以增加Flash的整體壽命,但是對那些預算緊張的應用來說太過奢移。

具體的碎片整理過程是,首先建立碎片整理區(qū)。①為每個扇區(qū)建立2個CRC32表項;第一個CRC32是這個扇區(qū)在碎片整理前的CRC值;第二個CRC32值是計算出來的碎片整理后的CRC32值。這些CRC是當碎片整理過程被打斷時,用來重新恢復整理用的。②創(chuàng)建碎片整理文件頭信息表,每個活動的文件占用一個表項。③計算①和②的CRC值,并保存。①~③的數(shù)據(jù)保存在圖1中的碎片整理記錄區(qū)。第二步是文件重定位;遍歷文件系統(tǒng)的每個扇區(qū),處理重新定位后存儲空間和該扇區(qū)相覆蓋的文件。在每個扇區(qū)被重寫之前,扇區(qū)原來的信息被保存在空閑扇區(qū)里。第三步,擦除Flash;遍歷未使用的扇區(qū),確認所有的扇區(qū)被刪除。第四步,完整性檢測:對新的文件進行檢測,保證所有重定位的文件都是完整的。

3 應用分析

Flash的扇區(qū)有最大擦寫次數(shù)。當前的Flash芯片一般支持10萬~100萬次的擦除。文件系統(tǒng)的應用各不相同,所以這里不能下結論說采用線性文件系統(tǒng)Flash的壽命會有多長。下面解釋文件系統(tǒng)訪問Flash的方法。這樣用戶可以根據(jù)應用來判斷Flash的預期壽命。

我們所設計的線性文件系統(tǒng)并不進行扇區(qū)刪除次數(shù)均衡,以延長Flash的使用壽命。如果所需要的文件系統(tǒng)頻繁修改并需要扇區(qū)刪除次數(shù)均衡,可以購買現(xiàn)成的Flash文件系統(tǒng)。扇區(qū)刪除均衡算法大大增加了底層實現(xiàn)的復雜性,并且超出本文的討論范圍。一般來說,通過文件系統(tǒng)來管理Flash的需求遠大于對Flash扇區(qū)擦寫次數(shù)均衡的需求,特別是現(xiàn)在越來越多的Flash扇區(qū)都支持100萬次的擦寫。

如上面所提到的,文件系統(tǒng)本身提供給編程者的接口API與標準OS提供的接口類似。這可能誤導開發(fā)者認為文件系統(tǒng)可以看作是一個硬盤,以任意的頻率進行讀寫操作。事實并不是這樣,線性文件系統(tǒng)碎片整理同制并沒有進行擦寫次數(shù)均衡,這意味著空閑扇區(qū)可能會是最早損壞的Flash扇區(qū)。因為在碎片整理過程中,空閑扇區(qū)被用作其它所有扇區(qū)的暫時存放扇區(qū)。例如在設計里,有13個扇區(qū)Flash用來作線性文件系統(tǒng)區(qū),有1個扇區(qū)作為空閑扇區(qū)。假設對于最壞情況的碎片整理(13個扇區(qū)都影響到),如果每天進行1次碎片整理,對于100 000次擦寫次數(shù)的Flash而言,可用期能夠超過20年(100 000/13/365=21)。20年是基于每天進行1次碎片整理,并且所有扇區(qū)都影響到的情況。碎片整理的頻率和整理所影響到的扇區(qū)數(shù)受應用程序使用文件的限制。用戶可以根據(jù)文件系統(tǒng)的應用來估算Flash扇區(qū)的磨損情況,并作相應的處理。

下面討論文件系統(tǒng)是如何使用扇區(qū)的。Flash扇區(qū)僅僅在碎片整理時候才被擦除。當刪除文件的時候,只是簡單地作一個標識(文件頭的一個位)。如果一個存在的文件以寫的方式打開,實際的修改步驟是,刪除原有的文件,并在當前文件系統(tǒng)的最后一個文件之后重寫該文件。最后,這個過程會使文件系統(tǒng)的Flash空間被耗盡,這要就需要運行碎片整理程序。碎片整理程序會使已被刪除文件所占用的空間被清除,所有活動的文件在Flash中的位置以連續(xù)的方式存放。每個扇區(qū)的整理過程是,扇區(qū)被拷貝到空閑扇區(qū)作備份,然后原來的扇區(qū)被刪除,計算出該扇區(qū)在文件整理后的內(nèi)容,寫入扇區(qū),之后刪除空閑扇區(qū)的備份。文件系統(tǒng)從頭到尾每個扇區(qū)重復這樣作。在碎片整理時,如果一個扇區(qū)不需要進行碎片整理,碎片整理程序就不會動這個扇區(qū)因此,受碎片整理程序影響的扇區(qū)數(shù)目依賴于當前被文件系統(tǒng)占用的Flash扇區(qū)數(shù)和被刪除文件在Flash中的位置。

在一個典型的嵌入式應用里,文件系統(tǒng)中的可執(zhí)行文件本身就是應用程序。可執(zhí)行文件一般是最大的文件,也是最不可能經(jīng)常改變的文件。這意味著執(zhí)行文件所占用的空間是相對固定的,將會減少空閑扇區(qū)因為碎片整理而進行的擦寫次數(shù)。另外一方面,如果有任何文件需要定期改動,碎片整理將會更加頻繁運行。

嵌入式設計系統(tǒng)范文5

關鍵詞:SEP4020;音頻系統(tǒng);驅(qū)動程序;IIS總線;UDA1341

中圖分類號:TP338文獻標識碼:A文章編號:1009-3044(2008)31-0964-03

Design of Embedded Audio System Based on SEP4020

QI Hao-chun

(IC Embedded System Lab,Southeast University,Nanjing 210096,China)

Abstract: SEP4020 which is developed by National ASIC System Engineering Research Center of SEU is a microprocessor based on ARM7TDMI core. The playing and sampling of audio signals is realized with an embedded audio system constructed by connecting the SEP4020 and CODEC UDA1341 with IIS bus. The hardware system structure and design of device driver of Embedded Audio device based on SEP4020 and IIS Bus interface have been introduced in the article. The explanations of relative hardware designs, as well as the key features of the audio devices' driver under embedded system are provided.

Key words: SEP4020; audio system; driver; IIS bus; UDA1341

1 引言

嵌入式音頻系統(tǒng)廣泛應用于GPS自動導航、PDA、3G手機等嵌入式領域,音頻系統(tǒng)基于某種處理器和操作系統(tǒng),由音頻設別和驅(qū)動程序兩部分組成。音頻設別主要完成聲音數(shù)據(jù)的采集、回放、混音和聲音信號的模數(shù)轉換,驅(qū)動程序在系統(tǒng)啟動時對硬件進行初始化,在系統(tǒng)啟動后實現(xiàn)硬件和應用程序之間的數(shù)據(jù)交互。

音頻系統(tǒng)設計包括軟件設計和硬件設計兩方面,硬件部分采用基于IIS總線的音頻系統(tǒng)體系結構。IIS(Inter-IC Sound bus)是飛利浦公司提出的串行數(shù)字音頻總線協(xié)議,它主要針對數(shù)字音頻處理技術和設別的標準接口,它將音頻數(shù)據(jù)和時鐘信號分離,從而避免了由時鐘帶來的抖動問題,系統(tǒng)中不再需要消除抖動的器件。隨著該標準的廣泛應用,不同廠家紛紛開發(fā)了支持該標準的語音芯片,但大多數(shù)由于功能單一,操作復雜,沒有得到廣泛應用。PHILIPS生產(chǎn)了一種支持IIS總線數(shù)據(jù)格式的音頻編解碼新品啊UDA1341TS,由于其功能強大、低功耗、低電壓及其具有DSP語音功能等特征,目前已廣泛應用于各種嵌入式語音系統(tǒng)中。

在軟件上,作為一個功能復雜的嵌入式系統(tǒng),需要有嵌入式操作系統(tǒng)支撐。Nucleus PLUS是美國ATI公司位實時性要求較高的嵌入式系統(tǒng)應用設計的操作系統(tǒng)內(nèi)核。約95%的Nucleus PLUS代碼用ANSI C語言編寫,因此,非常便于移植并能夠支持大多數(shù)類型的微處理器。由于音頻應用對實時性有很高的要求,且需要處理的數(shù)據(jù)量較大,所以必須合理分配資源,使用合適的算法。本文針對東南大學的SEP4020處理器和PHILIPS公司的UDA1341TS型立體聲音頻CODEC構造了基于IIS的嵌入式音頻系統(tǒng), 給出了整個系統(tǒng)的軟硬件實現(xiàn)方案。

2 硬件體系結構的配置

2.1 SEP4020微處理器簡介

SEP4020由東南大學國家專用集成電路系統(tǒng)工程技術研究中心設計的基于ARM720T的一款ARM處理器,采用0.18um標準CMOS的工藝設計,內(nèi)嵌32位RISC內(nèi)核,兼容ARM720T,帶8KB指令數(shù)據(jù)Cache,三級流水線作業(yè),支持片上斷點、調(diào)試點設置,具有先進的軟件開發(fā)環(huán)境和調(diào)試環(huán)境。圖1為SEP4020處理器的結構框圖。

2.2 IIS總線

IIS(Inter-IC Sound)總線是PHILIPS公司提出的串行數(shù)字音頻總線協(xié)議。它是一種面向?qū)γ襟w的音頻總線,專用于音頻設備之間的數(shù)據(jù)傳輸,為數(shù)字立體聲提供序列的連接至標準編解碼器。IIS總線只處理聲音數(shù)據(jù)。其他信號(如控制信號)必須單獨傳輸。為了使必需的引腳數(shù)最小并且保持連線簡單,IIS總線由3條信號線組成:時分復用的數(shù)據(jù)銅導線(SD)、字選擇線(WS)和時鐘線(SCK)。

I2S工作模式分為MASTER模式和SLAVE模式,MASTER模式下,I2S向外輸出時鐘,SLAVE模式下,時鐘由外部芯片提供。常見的SOC芯片的I2S工作在MASTER模式,芯片外接音頻CODEC,SOC芯片向外提供數(shù)據(jù),CODEC做DA轉換發(fā)出聲音,錄音則是CODEC提供AD轉換后的數(shù)據(jù),SOC芯片把數(shù)據(jù)接收到MEMORY中。

無論在MASTER模式還是在SLAVE模式,I2S都可以作為TRANSMITTER或者RECEIVER,如果I2S向外接CODEC提供數(shù)據(jù),I2S是TRANSMITTER,如果I2S從外接CODEC接收數(shù)據(jù),I2S是RECEIVER。

圖2 MASTER = TRANSMITTER圖3 MASTER = RECEIVER

SCK由總線時鐘分頻而來,分頻比可配。WS是占空比為50%的周期性信號,高低電平分別對應左右(或者右左)聲道,周期長度和音頻數(shù)據(jù)的字長有關,例如,8位的雙聲道音頻數(shù)據(jù),對應的WS周期就是16個SCK,8個左聲道數(shù)據(jù),8個右聲道數(shù)據(jù);若是單聲道,WS的高低電平將使用相同的數(shù)據(jù)。左右聲道對應的WS信號電平可配,可以左低右高或者左高右低。

圖4I2S信號傳輸波形(左先) 圖5 I2S信號輸出波形(右先)

I2S的數(shù)據(jù)(SD信號)的變化比字選擇(WS)晚一個時鐘。I2S支持8位、16位、32位字傳輸,數(shù)據(jù)的傳輸支持DMA模式。在單聲道模式下,左右聲道輸出同樣的數(shù)據(jù)。

當I2S作為TRANSMITTER工作時,數(shù)據(jù)從總線傳輸?shù)絀2S的數(shù)據(jù)FIFO,然后根據(jù)設定的字長、聲道將數(shù)據(jù)送出,數(shù)據(jù)的高位先出。當FIFO為半空的時候,發(fā)出中斷和DMA請求,當FIFO為空時,發(fā)出空中斷,I2S將繼續(xù)重復發(fā)送最后一個數(shù)據(jù)(這種情況下,CODEC將會發(fā)出不是用戶想要的聲音),直到有新的數(shù)據(jù)寫到FIFO中。

當I2S作為RECEIVER工作時,數(shù)據(jù)從外接的CODEC輸入到FIFO,當FIFO半滿時發(fā)出中斷和DMA請求,當FIFO為滿時,發(fā)出滿中斷,I2S將繼續(xù)接收數(shù)據(jù),但之后接收的數(shù)據(jù)會被丟棄而不被存入FIFO中。

除了工作在標準的I2S模式,I2S模塊還可以工作在WS和SD對齊的方式。

圖6 對齊數(shù)據(jù)輸出波形(左先) 圖7 對齊數(shù)據(jù)輸出波形(右先)

SEP4020內(nèi)置IIS總線接口,可直接外接8/16比特的立體聲CODEC。它還可以給FIFO通道提供DMA傳輸模式而非中斷模式,從而使數(shù)據(jù)發(fā)送和接收同時進行。該IIS接口有3種工作方式(正常傳輸模式,DMA模式,傳輸/接收模式),可以通過設置IISCON寄存器來選擇,本系統(tǒng)使用正常傳輸模式,該模式下,IIS數(shù)據(jù)線將通過DMA接收和發(fā)送音頻數(shù)據(jù),IIS總線接口為FIFO隊列的訪問提供DMA傳輸模式來取代中斷,從而發(fā)送和接收數(shù)據(jù)。

2.3 支持IIS的編解碼芯片UDA1341TS介紹

UDA1341支持IIS總線數(shù)據(jù)格式,采用位元流轉換技術進行信號處理,完成聲音信號的模數(shù)轉換,具有可編程增益放大器和數(shù)字自動增益控制器,其低功耗、低電壓的特點使其非常適合用于MD/CD、筆記本電腦等便攜式設備。

UDA1341提供兩個音頻通道,分別輸入和輸出,對應的引腳連接:IIS總線的音頻輸出IISSDO對應UDA1341的音頻輸入;IIS總線的音頻輸入IISSDI對應于DA1341的音頻輸出。UDA1341的L3接口相當于一個混音器控制接口,可以用來控制輸入/輸出音頻信號的音量大小、低音等。L3接口的引腳L3MODE、L3DATA、L3CLOCK分別連接到SEP4020的GPA8、GPA3、GPA2。

2.4 L3總線介紹

本文中UDA1341TS采用微控制器輸入模式。在該模式總,所有的數(shù)字音頻處理特征和系統(tǒng)控制特征由微控制器通過l3m總線控制。如UDA1341TS在放音過程中去重音、音量控制、低音增強、高音和軟件靜音等DSP特征可通過L3 總線控制。

UDA1341TS和微控制器之間數(shù)據(jù)和控制信息的交換是通過一個L3硬件接口實現(xiàn)的。它包括以下引腳:

L3DATA,微控制器接口數(shù)據(jù)線;

L3MODE,微控制器接口模式線;

L3CLOCK,微控制器接口時鐘線;

通過微控制器總線的信息傳輸是按照“L3”格式來組織的。它有兩種不同的操作模式:地址模式和數(shù)據(jù)傳輸模式。地址模式通過L3總線來選擇通道設備并且指明數(shù)據(jù)傳輸?shù)哪康募拇嫫鳌?shù)據(jù)傳輸模式中數(shù)據(jù)傳輸可以是雙向的,向UDA1341TS輸入數(shù)據(jù),對它的音頻處理和控制功能進行編程;向外輸出峰值電平的值。

L3控制的本質(zhì)就是向UDA1341TS寫數(shù)據(jù)的過程。向設備寫控制字分兩步進行:第一步是在地址模式根據(jù)地址選擇設備,同時指名后來數(shù)據(jù)要發(fā)送到的寄存器類型;第二步是在數(shù)據(jù)傳輸模式下,傳送一個8位字節(jié)。要想正確地配置硬件以完成正確的功能,SEP4020提供的5根IIS信號線IISDI,IISDO,IISLRCK,IISCLK及CODEC必須和UDA1341TS提供的IIS信號線DATAO,DATAI,WS,BCK及SYSCLK對應連接。

至此,使用SEP4020芯片和UDA1341TS及其它必需設備構建了一個功能完善的嵌入式音頻硬件系統(tǒng)。為接下來的與本系統(tǒng)對應的底層控制軟件的開發(fā)做好了準備,接下來進行基于硬件的底層軟件設計。

3 底層驅(qū)動程序設計

嵌入式系統(tǒng)硬件設備種類繁多,且缺乏PC中標準的體系結構,所以必須為各種設備編寫驅(qū)動程序,驅(qū)動程序的主要任務是控制音頻數(shù)據(jù)在硬件中流動,并為音頻應用提供標準接口。

通過配置IIS和CODEC,以及對DMA傳輸進行配置,可以實現(xiàn)IIS的錄音和放音等功能,本系統(tǒng)音頻采樣規(guī)格為44.1Hz,采樣精度為16bit。具體配置如下:

3.1 L3總線配置

本系統(tǒng)將GPA2配置為L3CLOCK信號,GPA3,GPA8分別配置為L3DATA和L3MODE。SEP4020和UDA1341連接配置程序如下:

static void IIS_PortSetting(void)

{ #define L3C (1

#define L3D (1

#define L3M (1

static void _WrL3Addr(U8 data)

{

S32 i,j;

rGPBDAT= rGPBDAT &~(L3D|L3M|L3C)|L3C;//L3D=L, L3M=L(in address mode), L3C=H

for(j=0;j 190ns

//GPB[4:2]=L3C:L3D:L3M

for(i=0;i

{

if(data & 0x1) //If data's LSB is 'H'

{

rGPBDAT &= ~L3C; //L3C=L

rGPBDAT |= L3D;//L3D=H

for(j=0;j 500ns

rGPBDAT |= L3C;//L3C=H

rGPBDAT |= L3D;//L3D=H

for(j=0;j 500ns

}

else //If data's LSB is 'L'

{

rGPBDAT &= ~L3C; //L3C=L

rGPBDAT &= ~L3D; //L3D=L

for(j=0;j 500ns

rGPBDAT |= L3C;//L3C=H

rGPBDAT &= ~L3D; //L3D=L

for(j=0;j 500ns

}

data >>= 1;

}

rGPBDAT= rGPBDAT & ~(L3D|L3M|L3C)|(L3C|L3M); //L3M=H,L3C=H

}

3.2 DMA傳輸配置

本系統(tǒng)相應的DMA寄存器配置如下,I2S Transmitter 表示放音,I2S Receiver表示錄音。

// I2S Transmitter DMA Configuration

write_reg(DMACC0SrcAddr, EMIADDR_CSC_BASE); //source addr

write_reg(DMACC0DestAddr, I2S_T_DR); //destination addr

write_reg(DMACC0Control, TRANSFERSIZE(16)+DI(0)+SI(1)+DESTSIZE(2)+SOURCESIZE(2)+DESTBURST(3)+SOURCEBURST(3));

//control, 16, SI, 32, Burst = 4

write_reg(DMACC0Configuration, 0X200B); //configuration, mem to I2S_T,

//completionmask, enable

// I2S Receiver DMA configuration

write_reg(DMACC2SrcAddr, I2S_R_DR);

write_reg(DMACC2DestAddr, EMIADDR_CSD_BASE);

write_reg(DMACC2Control, TRANSFERSIZE(0x800)+DI(1)+SI(0) + DESTSIZE(2) + SOURCESIZE(2)+DESTBURST(3)+SOURCEBURST(3));//re:256 -- tr:16, add int

write_reg(DMACC2Configuration, 0X038D); //I2S_R(MMC) TO mem,

//completion not mask

// I2S_T DMA Configuration as receiver

write_reg(DMACC0SrcAddr, I2S_T_DR);//source addr

write_reg(DMACC0DestAddr, EMIADDR_CSGBAB_val);//destination addr

write_reg(DMACC0Control, TRANSFERSIZE(16) + DI(1) + SI(0) + DESTSIZE(2)+SOURCESIZE(2)+DESTBURST(3)+SOURCEBURST(3));//control, 16, SI, 32, Burst = 4

write_reg(DMACC0Configuration, 0X020D);//configuration, mem to I2S_T,

//completionmask, enable

// I2S_R DMA configuration as transmitter

write_reg(DMACC2SrcAddr, EMIADDR_CSB_BASE);

write_reg(DMACC2DestAddr, I2S_R_DR);

write_reg(DMACC2Control, TRANSFERSIZE(256)+DI(0)+SI(1)+DESTSIZE(2)+SOURCESIZE(2)+DESTBURST(3)+SOURCEBURST(3));//re:256--tr:16, add int

write_reg(DMACC2Configuration, 0X280B);//I2S_R(SSI) TO mem,

//completion not mask

4 結束語

本文介紹了在嵌入式系統(tǒng)中構建基于IIS總線的音頻系統(tǒng),實現(xiàn)音頻的播放和錄音的采集。具體講述了基于東南大學ASIC中心SEP4020型微處理器的CODEC硬件連接的實現(xiàn)及嵌入式操作系統(tǒng)下音頻驅(qū)動的實現(xiàn)。該系統(tǒng)已經(jīng)在基于SEP4020的開發(fā)平臺上得到了實現(xiàn),可以順利進行音頻的播放和采集,并取得了良好的效果。

參考文獻:

[1] SEP4020移動終端應用處理器用戶手冊[S].國家用集成電路系統(tǒng)工程技術中心,2008-01.

[2] FURBERS.ARM SoC System Structure[M].田澤,于敦山,盛世敏,譯.北京:北京航空航天大學出版社,2002:87-159.

[3] 徐睿,李斐,王申康.基于IIS總線的嵌入式音頻系統(tǒng)設計[J].計算機應用,2004(4):7-9.

[4] 黎想,馬欣.基于VxWorks的音頻系統(tǒng)的設計與實現(xiàn)[J].計算機工程,2002(12):233-235.

嵌入式設計系統(tǒng)范文6

【關鍵詞】嵌入式系統(tǒng);開放型;虛擬實驗平臺

嵌入式課程是電子信息類專業(yè)的一門核心課程,具有理論學習難度大、實踐操作性強等特點。隨著現(xiàn)代計算機仿真技術的飛速發(fā)展,在嵌入式課程的實驗教學中采用仿真軟件進行虛擬實驗已變得非常普遍。國內(nèi)外已經(jīng)有不少大學對這方面進行了研究,主要是利用計算機仿真技術實現(xiàn)實驗內(nèi)容、完成實驗操作。虛擬實驗在嵌入式課程體系教學中的應用,也取得了一些成果。如何結合自己的教學實際,設計一套性能穩(wěn)定良好的嵌入式系統(tǒng)虛擬實驗平臺,使學生真正對課程感興趣、更全面的提高學生的動手實踐技能,就成了一個亟待解決的問題。

1嵌入式實驗教學存在的問題

1.1實驗教學難以開展

對于嵌入式系統(tǒng)的遠程教學、網(wǎng)絡教學等開放教學模式來說,受空間和時間等因素的影響,很難開展實驗教學,學生沒有辦法動手操作直接參與實驗。而對于傳統(tǒng)的面授教學來說,雖大部分院校配備有相關的配套實驗箱,但ARM實驗箱價格較為昂貴,所以課程的實體實驗資源非常有限,實驗需要分批、分時進行,當然,還有部分院校因?qū)嶒灄l件和資金的限制,根本不具備實驗的條件,只能單純進行理論教學。缺乏了實驗教學的輔助作用,大大增加了ARM嵌入式教學的難度。

1.2實驗教學缺乏創(chuàng)新

目前,課程的實驗教學一般采用驗證性實驗模式,實驗內(nèi)容較為單一。學生一般在老師的指導下,按照實驗手冊進行簡單接線,然后直接將編寫好的程序下載到芯片中,觀察實驗現(xiàn)象,機械被動地進行實驗操作。學生做完了實驗,只能做到實驗結果的表象認知,缺乏“從概念到產(chǎn)品”的系統(tǒng)訓練,對于嵌入式系統(tǒng)產(chǎn)品的設計并沒有深入的學習體會。

2虛擬實驗平臺設計

為了有效加強課程實驗內(nèi)容的深度,提高學生綜合運用知識的能力,適應市場的變化,在借鑒前人成果的基礎上,結合筆者的實際教學經(jīng)驗,采用仿真軟件Proteus和編程工具Keil,設計完成了一套適用于開放型教學的虛擬實驗平臺。本虛擬實驗平臺采用基于ARM7內(nèi)核的LPC2138微控制器作為核心控制芯片,共包括14個實驗模塊,除“匯編語言實驗模塊”外,其他模塊均采用C語言實現(xiàn)軟件程序的編寫,并且,在完成基本實驗要求的基礎上,學生可自行設計程序并修改。設計完成的適用于開放型教學的虛擬實驗平臺如圖1所示。

2.1最小系統(tǒng)實驗模塊

最小系統(tǒng)實驗模塊包括LPC2138微控制器,3.3V供電電路,復位電路和時鐘電路,其中時鐘電路采用振蕩模式產(chǎn)生時鐘信號。通過學習可幫助學生理解最小系統(tǒng)的概念和組成部分。

2.2匯編語言實驗模塊

通過一個簡單的ARM匯編程序?qū)崿F(xiàn)兩個寄存器的循環(huán)相加。可讓學生了解有關ARM匯編指令格式、程序結構和基本風格。

2.3輸入輸出(GPIO)實驗模塊

采用引腳分別連接1個按鍵輸入和1個蜂鳴器及1個LED輸出,完成最基本的GPIO輸入輸出控制。當按鍵按下的情況下,蜂鳴器響,LED發(fā)光二極管滅;當按鍵松開的情況下,蜂鳴器不響,LED發(fā)光二極管亮。為了和定時器實驗模塊中的定時功能進行對比學習,本實驗模塊中的延時功能采用for循環(huán)語句實現(xiàn)。

2.4外部中斷實驗模塊

輸出元件采用1個蜂鳴器、2個發(fā)光二極管,輸入元件采用1個按鍵模擬外部中斷信號。正常狀態(tài)下,2個發(fā)光二極管依次循環(huán)點亮,按下按鍵,檢測到中斷信號,進而執(zhí)行中斷處理函數(shù),執(zhí)行完畢后,再返回主函數(shù)繼續(xù)執(zhí)行發(fā)光二極管的點亮任務,模擬中斷流程。

2.5定時器(Timer)實驗模塊

主要使用定時器1實現(xiàn)比較匹配輸出控制LED閃爍,并采用四通道虛擬示波器的A端口檢測輸出信號的波形。為了讓學生熟悉示波器的使用以及各種信號的比較學習,虛擬示波器的B、C、D端口分別輸入脈沖信號、時鐘信號和正弦信號三種信號源。

2.6SPI實驗模塊

采用串入并出顯示驅(qū)動芯片74HC595控制1個LED數(shù)碼管循環(huán)顯示0~F字符。通過學習可掌握全雙工同步串行接口SPI的工作原理、SPI的接口電路連接和LED數(shù)碼管顯示的編程控制方法。

2.7I2C實驗模塊

主要是通過操作帶I2C接口的存儲芯片F(xiàn)M24C02完成,F(xiàn)M24C02是2048位的串行電可擦除只讀存儲器,內(nèi)部有256個字節(jié)。該實驗模塊主要是實現(xiàn)向該存儲芯片中寫入10字節(jié)數(shù)據(jù),然后讀回數(shù)據(jù),并判斷是否正確。讓學生學習和掌握設置I2C引腳連接、I2C時鐘頻率、主機發(fā)送起始信號、發(fā)送從機地址和判斷總線狀態(tài)等方法。

2.8UART實驗模塊

通過串行接口UART0輸出字符串,輸出字符串可通過編程控制,采用虛擬終端接收并顯示,同時采用虛擬串行接口器件COMPIM,向上位機PC發(fā)送該字符串,并且使PC終端顯示收到字符串,實現(xiàn)微控制器芯片與上位機PC的通信。

2.9ADC實驗模塊

主要通過可調(diào)電阻改變輸入引腳的電壓提供模擬量輸入,實驗平臺通過ADC對模擬量外部輸入電壓進行AD采樣轉換,并把結果轉換成電壓值,然后發(fā)送到串行接口UART0,結合UART實驗模塊中的虛擬終端進行顯示。

2.10WDT實驗模塊

看門狗定時器實驗模塊開始主要先控制4個LED發(fā)光二極管循環(huán)閃爍8次,期間不斷進行喂狗處理,然后只點亮其中1個LED發(fā)光二極管,并進入死循環(huán),等待WDT復位。通過學習讓學生了解看門狗的原理以及如何設置相關寄存器完成看門狗的使能、啟動、喂狗等操作。

2.11PWM實驗模塊

主要采用PWM2輸出PWM信號,并由按鍵控制PWM的占空比,每按一次按鍵將會改變一次PWM的占空比,從而控制LED發(fā)光二極管的閃爍亮度。利用虛擬交流電壓表檢測輸出端口的電壓大小,并利用示波器顯示輸出端口的波形,便于觀察LED發(fā)光二極管的閃爍亮度和理解PWM的作用。

2.12RTC實驗模塊

主要采用微控制器內(nèi)部RTC的實時時鐘控制LED發(fā)光二極管的閃爍,即通過設置RTC秒值的增量產(chǎn)生中斷,每產(chǎn)生一次中斷,取反LED發(fā)光二極管控制口,并利用示波器檢測輸出端口的波形。

2.13LCD實驗模塊

實現(xiàn)通過輸出端口控制液晶顯示屏LM032L顯示字符,顯示字符可通過程序改變。

2.14UC/OS-II操作系統(tǒng)實驗模塊

基于UC/OS-II實時操作系統(tǒng),通過芯片引腳分別控制1個按鍵輸入和1個蜂鳴器及1個LED發(fā)光二極管輸出,實現(xiàn)基于實時操作系統(tǒng)的GPIO輸入輸出功能。通過學習幫助學生簡單理解芯片在操作系統(tǒng)下進行控制的方法以及和在沒有操作系統(tǒng)的情況下進行控制的區(qū)別。該實驗平臺已通過打包工具生成了安裝包,學生只需將安裝包通過現(xiàn)有網(wǎng)絡版實驗管理系統(tǒng)下載到PC機中或通過U盤等存儲工具復制到PC機中,按照安裝步驟完成簡單安裝后,就可以利用虛擬仿真技術在PC機上進行實驗操作。

3仿真效果舉例

本節(jié)主要選取虛擬實驗平臺中的一個模塊ADC實驗模塊演示仿真效果,ADC實驗模塊主要通過可調(diào)電阻改變輸入引腳的電壓提供模擬量輸入,進行AD采樣轉換,并把結果轉換成電壓值,發(fā)送到串行接口UART0進行顯示。圖2為ADC實驗模塊的主函數(shù);圖3為ADC實驗模塊的仿真演示效果。

4實驗平臺建設意義

4.1節(jié)省資金投入

本文設計完成的虛擬實驗平臺可方便快捷的安裝到計算機中,這樣既可以緩解實驗設備緊張、建設資金有限的問題,也可以解決實驗設備更新速度慢等問題,保證每個學生都能做到真正參與實驗。

4.2培養(yǎng)實踐能力

通過虛擬實驗平臺,可讓學生形象深刻的了解嵌入式系統(tǒng)的工作原理,掌握知識本身,如在實驗條件允許的情況下,在虛擬實驗的基礎上,再加上傳統(tǒng)的實驗箱教學,形成“虛實”結合的實驗模式,將大大有利于學生學習課程的興趣和學生動手實踐技能的提高。

4.3突破時空的局限該平臺的實現(xiàn)

為學生提供了開放的學習環(huán)境,學生可選擇合適的時間和地點進行學習,從而很好的解決了學生學習時在時空上的局限性。4.4提供借鑒意義隨著仿真軟件的功能越來越強大和應用越來越成熟,在實驗教學中采用仿真軟件進行虛擬仿真實驗已變得非常普遍。本文對嵌入式虛擬實驗平臺的研究對其它各類專業(yè)虛擬實驗室的建設具有一定的借鑒意義。

5結論

主站蜘蛛池模板: 暖暖视频 免费 日本社区| 国产精品户露av在线户外直播| 精品国际久久久久999波多野| 少妇丰满大乳被男人揉捏视频| 色欲a∨无码蜜臀av免费播| 国产亚洲欧美日韩俺去了| 久久www免费人成人片| 亚洲综合无码一区二区加勒此| 久久综合九色综合97欧美| 国产老熟女狂叫对白| 久青草无码视频在线播放| 久久夜色精品国产欧美乱| 亚洲日韩看片无码超清| 末发育娇小性色xxxxx视频| 亚洲精品久久激情国产片| 精品成人免费国产片| 亚洲国产成人av人片久久| 亚洲最大综合久久网成人| 伊人久久大香线蕉无码不卡| 东京热无码av一区二区| 亚洲一本大道av久在线播放| 亚洲国产制服丝袜无码av| 国产强被迫伦姧在线观看无码| 青娱乐极品视觉盛宴国产视频| 深夜国产一区二区三区在线看| 日本精品aⅴ一区二区三区| 久久只有这里有精品4| 亚洲国产精品无码观看久久| 嫩草研究院久久久精品| 精品免费看国产一区二区| 不知火舞私秘?奶头大屁股小说| 天堂va欧美ⅴa亚洲va在线| ass日本丰满熟妇pics| 无码人妻视频一区二区三区| 中文字幕无码视频专区| 亚洲精品9999久久久久无码| 秋霞影院午夜伦a片欧美| 日本中文字幕乱码aa高清电影| 无遮挡国产高潮视频免费观看| 婷婷五月综合丁香在线| 乱人伦无码中文视频在线|