www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件


1引言
  嵌入式系統(tǒng)由嵌入式硬件和固化在硬件平臺中的嵌入式軟件組成。傳統(tǒng)的小規(guī)模嵌入式系統(tǒng),軟件多采用前后臺的方法,通常應(yīng)用于實(shí)時(shí)性要求不高的簡單場合;對于復(fù)雜的應(yīng)用場合,較為普遍的做法是給系統(tǒng)配上嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),這樣不僅能夠使系統(tǒng)具有良好的實(shí)時(shí)性能,降低軟件編制的工作量,還可以提高整個(gè)系統(tǒng)的穩(wěn)定性。此外,為了簡化用戶程序,系統(tǒng)通常要提供一些必要的庫函數(shù)供用戶調(diào)用。同前后臺系統(tǒng)相比,這種實(shí)時(shí)嵌入式系統(tǒng)增加了系統(tǒng)存儲(chǔ)空間的開銷。Intel 8051系列及各種兼容的單片機(jī)因其極高的性價(jià)比、豐富的庫函數(shù)和長期的技術(shù)積累等背景而被廣泛應(yīng)用于各種嵌入式領(lǐng)域中。受傳統(tǒng)單片機(jī)尋址空間的限制,嵌入式應(yīng)用中經(jīng)常需要進(jìn)行存儲(chǔ)空間擴(kuò)展。本文借鑒傳統(tǒng)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中的虛擬存儲(chǔ)技術(shù),以8051單片機(jī)為例提出一種采用頁面分組和虛擬接口技術(shù)擴(kuò)展存儲(chǔ)空間的方法。本方法與Keil C編譯器具有良好的兼容性。

2 存儲(chǔ)系統(tǒng)的組織

2.1 虛擬存儲(chǔ)系統(tǒng)

  計(jì)算機(jī)系統(tǒng)中常采用虛擬存儲(chǔ)技術(shù)來擴(kuò)展存儲(chǔ)系統(tǒng)容量,頁式虛擬存儲(chǔ)器是常用的一種組織方法。在這種方法下,整個(gè)虛擬地址空間和主存空間均被分成容量相等的若干頁,地址變換機(jī)構(gòu)(通常是一個(gè)快速地址變換表)建立了虛擬空間到主存空間虛頁到實(shí)頁的映射。頁式存儲(chǔ)器組織關(guān)系如圖1。

  虛擬存儲(chǔ)系統(tǒng)利用計(jì)算機(jī)CPU中的一組寄存器堆作為頁表基址寄存器,如圖1(b)所示,它與頁表一起給出用戶程序地址。實(shí)際計(jì)算機(jī)系統(tǒng)的頁式虛擬存儲(chǔ)要比這復(fù)雜得多,還需考慮未命中時(shí)的外部地址變換以及頁面替換算法,然而在嵌入式系統(tǒng)中這些都可以簡化乃至省去。


2.2 單片機(jī)嵌入式系統(tǒng)程序存儲(chǔ)區(qū)擴(kuò)展

  受虛擬存儲(chǔ)系統(tǒng)啟發(fā),我們把上述方法作了一些修改以應(yīng)用于嵌入式系統(tǒng)中。由于系統(tǒng)設(shè)計(jì)選用的外部程序存儲(chǔ)器容量為256k,而一般單片機(jī)(如 8051系列)的尋址空間為64k,為簡單起見,以64k為一頁,將256k虛擬地址分為4頁映射到單片機(jī)的64k空間。嵌入式系統(tǒng)中地址變換機(jī)構(gòu)可被簡化:單片機(jī)沒有專用的頁表基址寄存器,可以通過額外的端口線(如P1.0,P1.1,P1.2等)作為基址指定不同的頁面,頁表查詢可用一個(gè)跳轉(zhuǎn)表實(shí)現(xiàn)。然而頁面切換前后必須保證能夠正確訪問到跳轉(zhuǎn)表,因此所有64k頁面都需要有一個(gè)完全相同的代碼段用來存放跳轉(zhuǎn)表和中斷矢量等公共資源。
  為提高存儲(chǔ)器利用率可采用圖2所示的結(jié)構(gòu),其中公共段中存放了高32k段之間相互調(diào)用所需要





的跳轉(zhuǎn)表。各段相互調(diào)用之前應(yīng)先跳轉(zhuǎn)到公共段,執(zhí)行頁面切換后再跳轉(zhuǎn)到被調(diào)用程序的入口,這就實(shí)現(xiàn)了18位虛擬地址到16位主存地址的變換。不妨以P1.0,P1.1,P1.2作為頁面基址來指定不同的頁,相應(yīng)的跳轉(zhuǎn)表程序結(jié)構(gòu)如下:

ADDR:CLR EA ;關(guān)中斷

SETB/CLR P1.0 ;切換頁面

SETB/CLR P1.1

SETB/CLR P1.2

SETB EA ;開中斷

JMP REAL_ADDR ;跳轉(zhuǎn)

  在公共段(256k存儲(chǔ)芯片的低32k)中存放操作系統(tǒng)和提供給用戶的其他庫函數(shù),其他各段用來存放嵌入式系統(tǒng)的用戶程序。采用圖2結(jié)構(gòu)的單片機(jī)與存儲(chǔ)器接口原理圖如圖3所示。其中A0~A15地址線接法與普通存儲(chǔ)器擴(kuò)展方法相同。





以上考慮了復(fù)位時(shí)頁面應(yīng)切換到公共代碼區(qū)。

Keil C51編譯器是單片機(jī)開發(fā)應(yīng)用中非常流行的一種高效編譯器,它支持上述頁面分組技術(shù)。

2.3 單片機(jī)嵌入式系統(tǒng)數(shù)據(jù)存儲(chǔ)區(qū)擴(kuò)展

  嵌入式系統(tǒng)中引入操作系統(tǒng)需要增加一定的數(shù)據(jù)存儲(chǔ)器開銷,必要時(shí)仍可以采用分頁技術(shù)擴(kuò)展數(shù)據(jù)存儲(chǔ)區(qū)容量。

  引入操作系統(tǒng)以后,數(shù)據(jù)區(qū)有兩種組織方法,比較簡單的一種方法是操作系統(tǒng)與用戶程序共用一個(gè)數(shù)據(jù)區(qū),編譯器將整個(gè)程序一起編譯,不必區(qū)分是系統(tǒng)程序還是用戶程序。但這樣對用戶來說操作系統(tǒng)變得不透明了,而且不良的用戶程序可能會(huì)破壞系統(tǒng)的數(shù)據(jù)區(qū),導(dǎo)致整個(gè)系統(tǒng)崩潰。

  相對應(yīng)的另一種方法是給操作系統(tǒng)與用戶程序分別分配獨(dú)立的數(shù)據(jù)區(qū),譬如將128k 數(shù)據(jù)存儲(chǔ)器給操作系統(tǒng)和用戶程序各分配64k。不幸地是,當(dāng)操作系統(tǒng)與用戶程序一起編譯時(shí),編譯器會(huì)自動(dòng)給它們分配不同的地址,這樣即使存儲(chǔ)器物理上是分開的,操作系統(tǒng)與用戶程序的數(shù)據(jù)區(qū)還是無法地址復(fù)用,這極大地浪費(fèi)了地址空間;而且對傳統(tǒng)的單片機(jī), Keil C 編譯器最大只支持64k數(shù)據(jù)區(qū),幸運(yùn)地是,這個(gè)矛盾可以通過采用虛擬接口的方法加以解決。

  為此,將公共代碼段中的程序單獨(dú)編譯,并且在鏈接、定位目標(biāo)代碼時(shí),給操作系統(tǒng)和公共庫函數(shù)的每個(gè)函數(shù)在0x0000~0x7FFFH內(nèi)分別指定一個(gè)固定的首地址。鑒于用戶程序可能調(diào)用這些函數(shù),需要為這些函數(shù)分別編寫一個(gè)相同類型的同名偽函數(shù),每個(gè)偽函數(shù)僅包含一條到真實(shí)函數(shù)(入口地址已知)的轉(zhuǎn)移指令,所有這些函數(shù)都存放在一個(gè)被稱為虛擬接口的頭文件中。虛擬接口文件與用戶程序一起編譯,完成用戶程序與操作系統(tǒng)兩次編譯的接口。顯然這種方法僅占用了用戶區(qū)的極少量代碼空間,而絲毫沒有浪費(fèi)用戶數(shù)據(jù)區(qū),同時(shí)又實(shí)現(xiàn)了地址復(fù)用。

  公共代碼段和操作系統(tǒng)的數(shù)據(jù)區(qū)特殊的對應(yīng)關(guān)系(見圖4),很容易通過P2端口線來指定。由單片機(jī)外部程序區(qū)訪問時(shí)序(圖 5)可知,PSEN的上升沿后數(shù)據(jù)總線A0~A7上開始出現(xiàn)指令或指令操作數(shù),此時(shí)的地址線A15指示當(dāng)前訪問的是公共代碼段(對應(yīng)數(shù)據(jù)區(qū)高64k)還是其他程序段(對應(yīng)數(shù)據(jù)區(qū)低64k),因此在PSEN上升沿鎖存地址線A15,用它可以選擇不同的數(shù)據(jù)存儲(chǔ)器空間。






3 存儲(chǔ)系統(tǒng)的性能分析

  本文基于虛擬存儲(chǔ)系統(tǒng)思想實(shí)現(xiàn)了嵌入式系統(tǒng)中大容量存儲(chǔ)器的擴(kuò)展。不難看出系統(tǒng)的擴(kuò)展余地受端口線的限制。由于在同一塊芯片中構(gòu)造圖2所示的結(jié)構(gòu),需要多使用一根端口線,因此對于8051系列使用整個(gè)P1口可以將系統(tǒng)的程序虛擬空間擴(kuò)展至8M字節(jié)。數(shù)據(jù)存儲(chǔ)區(qū)擴(kuò)展的最大容量還與程序在編譯時(shí)所被分成塊的數(shù)目有關(guān),最大可達(dá)16M字節(jié),這在單片機(jī)嵌入式系統(tǒng)中已經(jīng)是足夠大了。

  程序在調(diào)用不同頁面的函數(shù)時(shí)需要額外的軟件切換周期,頻繁的頁面切換會(huì)降低系統(tǒng)的性能,因此編譯時(shí)應(yīng)仔細(xì)選擇函數(shù),盡可能將相關(guān)的函數(shù)分配在同一頁中。

  數(shù)據(jù)存儲(chǔ)區(qū)切換是由硬件實(shí)現(xiàn)的,頁面切換并不降低系統(tǒng)性能。由于操作系統(tǒng)與用戶程序數(shù)據(jù)區(qū)相互獨(dú)立,對用戶來說整個(gè)64k空間都是可用的,這就增加了操作系統(tǒng)的透明性。

4結(jié)論

  嵌入式系統(tǒng)由于它的專用性和特殊性,系統(tǒng)的軟硬件設(shè)計(jì)都與傳統(tǒng)的計(jì)算機(jī)系統(tǒng)設(shè)計(jì)方法有所不同。但進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)時(shí)仍然很有必要借鑒傳統(tǒng)計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)成熟的設(shè)計(jì)方法,“量體裁衣”為我所用。作者在進(jìn)行嵌入式平臺設(shè)計(jì)時(shí)借鑒了傳統(tǒng)計(jì)算機(jī)虛擬存儲(chǔ)思想來擴(kuò)展存儲(chǔ)系統(tǒng),并在實(shí)際項(xiàng)目中得以應(yīng)用,證明這種方法是非常有效的。




本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉