日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式硬件

引 言

隨著嵌入式系統(tǒng)的迅速發(fā)展,其應用環(huán)境的廣泛性,復雜性對構建于系統(tǒng)上的Nor和Nand閃存設備提出更高要求,需要閃存設備傳輸速度更快,體積更小,容量更大,穩(wěn)定性更好。Flash 是一種創(chuàng)作工具,設計人員和開發(fā)人員可使用它來創(chuàng)建演示文稿、應用程序和其它允許用戶交互的內容。FLASH 可以包含簡單的動畫、視頻內容、復雜演示文稿和應用程序以及介于它們之間的任何內容。通常,使用 Flash 創(chuàng)作的各個內容單元稱為應用程序,即使它們可能只是很簡單的動畫。您也可以通過添加圖片、聲音、視頻和特殊效果,構建包含豐富媒體的 Flash 應用程序。Flash 特別適用于創(chuàng)建通過 Internet 提供的內容,因為它的文件非常小。Flash 是通過廣泛使用矢量圖形做到這一點的。與位圖圖形相比,矢量圖形需要的內存和存儲空間小很多,因為它們是以數(shù)學公式而不是大型數(shù)據(jù)集來表示的。位圖圖形之所以更大,是因為圖像中的每個像素都需要一組單獨的數(shù)據(jù)來表示。

1 NandFLASH和NandFLASH對比

隨著存儲技術的高速發(fā)展,閃存設備因其在性能和成本方面的優(yōu)勢,可擦除性以及更低廉的價格正逐步取代傳統(tǒng)記憶體。它們的技術性能差異顯著,表1是它們的技術對比。

NorFLASH是現(xiàn)在市場上兩種主要的非易失閃存技術。Intel于1988年首先開發(fā)出NOR Flash 技術,徹底改變了原先由EPROM(Electrically Programmable Read-Only-Memory電可編程序只讀存儲器)和EEPROM(電可擦只讀存儲器Electrically Erasable Programmable Read - Only Memory)一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了NAND Flash 結構,強調降低每比特的成本,有更高的性能,并且像磁盤一樣可以通過接口輕松升級。NOR Flash 的特點是芯片內執(zhí)行(XIP ,eXecute In Place),這樣應用程序可以直接在Flash閃存內運行,不必再把代碼讀到系統(tǒng)RAM中。NOR 的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響到它的性能。NAND的結構能提供極高的單元密度,可以達到高存儲密度,并且寫入和擦除的速度也很快。應用NAND的困難在于Flash的管理和需要特殊的系統(tǒng)接口。

NorFLASH使用方便,易于連接,可以在芯片上直接運行代碼,穩(wěn)定性出色,傳輸速率高,在小容量時有很高的性價比,這使其很適合應于嵌入式系統(tǒng)中作為 FLASH ROM。相對于NorFLASH,NandFLASH強調更高的性能,更低的成本,更小的體積,更長的使用壽命。

然而FLASH閃存卻是保證數(shù)據(jù)正確性不太理想的設備,應用中可能出現(xiàn)壞塊;這就給其在嵌入式系統(tǒng)中的應用,如何更好地進行數(shù)據(jù)存儲管理提出了更高要求。恰當?shù)慕涌谠O計和驅動開發(fā)是解決問題的關鍵。

2 FLASH接口設計

2.1 處理器內存分配情況

在分析FLASH的接口以及工作模式前,先分析處理器的內存分配情況。內核ARM920T是32位處理器,尋址空間4 GB,3 GB被處理器內部的寄存器和一些其他設備占用,只有1 GB用于外部尋址;這1 GB的空間S3C2410分為8個部分以支持不同的設備,每個空間為128 Mb,被命名為BANK。S3C2410給每個BANK一個片選即nGCS0~nGCS7來方便對BANK的操作,將CPU上相應的BANK連線接到外設芯片的片選引腳上就可以根據(jù)相應的地址對存儲器進行控制。

2.2 FLASH在系統(tǒng)中的架構

FLASH模塊通過系統(tǒng)總線與處理器相連,如圖1所示。

隨著深亞微米工藝技術日益成熟,集成電路芯片的規(guī)模越來越大。數(shù)字IC從基于時序驅動的設計方法,發(fā)展到基于IP復用的設計方法,并在SOC設計中得到了廣泛應用。在基于IP復用的SoC(System on Chip的縮寫,稱為系統(tǒng)級芯片,也有稱片上系統(tǒng))設計中,片上總線設計是最關鍵的問題。為此,業(yè)界出現(xiàn)了很多片上總線標準。其中,由ARM公司推出的AMBA片上總線受到了廣大IP開發(fā)商和SoC系統(tǒng)集成者的青睞,已成為一種流行的工業(yè)標準片上結構。AMBA規(guī)范主要包括了AHB(Advanced High performance Bus)系統(tǒng)總線和APB(Advanced Peripheral Bus)外圍總線。為了擁有高速的數(shù)據(jù)交換通道,F(xiàn)LASH經(jīng)由控制器模塊通過AHB總線與處理器通信。NandFLASH控制器、NorFLASH控制器和DMA控制器都是高速總線AHB上的Master模塊,都包含符合AMBA標準的總線接口模塊與AHB交互工作。

2.3 NorFLASH的接口設計

系統(tǒng)用的NorFLASH芯片是Atmel公司開發(fā)的AT49BV1614A,存儲空間為16 MB,在系統(tǒng)中常用于存放代碼,系統(tǒng)上電或復位后獲得指令開始執(zhí)行,因此,應將其配置到Bank0,將AT49BV1614A的片選端nCE接至 S3C2410的nGCS0;AT49BVl614A的輸出使能端nOE接S3C2410的nOE;寫使能端nWE接S3C2410的nWBE0;將模式選擇nBYTE上拉,使AT49BV1614A工作在 16 位數(shù)據(jù)模式。

2. 4 NorFLASH在系統(tǒng)中的具體操作

以AT49BV1614A芯片時序圖為例,具體說明NorFLASH的寫操作,如圖2所示。

CLE信號有效時系統(tǒng)通過I/O口向命令寄存器發(fā)送命令00H,此時WE為低電平,寫操作有效,NandFLASH處于寫狀態(tài)。發(fā)送命令后,接著發(fā)送要讀的地址,該操作將占用WE的1,2,3,4四個周期,發(fā)送地址信息時,CLE為低電平,ALE為高電平。地址信息發(fā)送完畢后,不能立刻讀取數(shù)據(jù),因為此時芯片正處于BUSY(忙)狀態(tài),需要等待2~20 ms,之后,才能開始數(shù)據(jù)讀取。

3 FLASH驅動程序開發(fā)

3.1 Linux系統(tǒng)下的驅動程序

Linux系統(tǒng)將所有的設備都看作具體的文件,通過文件系統(tǒng)對設備進行管理。所以在Linux架構中,和設備相關的處理分成兩層:文件系統(tǒng)層和設備驅動層。設備驅動層用來屏蔽具體設備的細節(jié),文件系統(tǒng)層向用戶提供一組統(tǒng)一的接口。這種設備管理方法可以很好的實現(xiàn)設備無關性,使Linux系統(tǒng)可以隨著外部設備的發(fā)展進行擴展。

Linux系統(tǒng)里將FLASH設備歸屬到MTD設備下管理,相對于常規(guī)塊設備驅動程序,MTD設備驅動程序能更好的支持和管理閃存。具體講,基于MTD的 FLAsH驅動程序,對上層可以很好的支持JFFS(針對NorFLASH)和YAFFS(針對NandFLASH)等文件系統(tǒng),對下層FLASH的讀寫,擦除,壞塊處理都能進行很好的管理,它在硬件設備和上層文件系統(tǒng)間提供一個抽象接口。

3.2 FLASH驅動程序開發(fā)流程

FLASH驅動程序有兩種編程方式。一種是直接編程進內核(Kernel),另一種是編程成模塊(Modules),如果編程進內核,會增加內核的大小,還要改動內核源文件,不能動態(tài)卸載,不利于調試。

FLASH驅動開發(fā)流程要經(jīng)過四步:模塊化設計,編譯,加載,調用驗證。如圖4所示。

3.2.1 驅動程序的模塊化設計

構成FLASH驅動程序的所有子程序,要進行模塊化設計,必須加入兩個函數(shù):入口函數(shù)module init()和出口函數(shù)module_exit()。在執(zhí)行程序時module_init()會調用int_init cfi probe_init(void),負責初始化MTD芯片,同時這個函數(shù)還調用register_mtd_chip_driver(),將cfi_chipdrv加入至 MTD驅動器列表chip_drvs_list中。初始化成功返回0,否則返回負值。實現(xiàn)代碼為:

另一個函數(shù)module_exit()執(zhí)行時,會調用staticvoid_exit cfi_probe_exit(void),負責清除MTD芯片驅動工作。同時這個函數(shù)還調用unregister_mtd_chip_driver(),將cfi_chipdrv從MTD芯片驅動器列表chip_drvs_list中刪除。實現(xiàn)代碼為:

其中:-O指定代碼優(yōu)化的級別;-D內核模塊必須按照特殊定義的參數(shù)進行編譯,這些參數(shù)跟在選項-D后;MODULE通知頭文件要給出適當?shù)膬群四K定義;-KERNEL-通知頭文件形成的目標代碼在內核態(tài)運行。得到的文件*.O就是一個FLASH驅動程序的目標文件,這樣FLAsH驅動程序編譯好。

3.2.3 驅動程序的加載

加載模塊要用到兩個命令:insmod(加載),rmmod(卸載)。加載時,module_init()函數(shù)被調用,這個函數(shù)向系統(tǒng)設備表登記 FLAsH設備。卸載時,module_exit()函數(shù)被調用,它釋放FLASH設備在系統(tǒng)設備表中占有的表項。注冊成功后就可以用mknod命令將 FLASH設備映射為一個特別文件,其他程序使用FLASH設備時,只要對此文件進行操作就行。Linux在/dev目錄中為每個設備建立了一個文件,用 ls-1命令列出函數(shù)返回值,若小于O,表示注冊失?。环駝t表示注冊成功。注冊以后,Linux將FLAsH設備名與主、次設備號聯(lián)系起來。當對 FLASH訪問時,Linux通過請求訪問FLASH設備名得到主、次設備號;然后把此訪問發(fā)送到FLASH設備驅動,F(xiàn)LASH驅動再根據(jù)次設備號調用不同的函數(shù)。

3.2.4 驅動程序的調用驗證

模塊加載到內核后,然后就要調用驗證。在Linux根目錄下有dev子目錄,這里面是節(jié)點名,這些結點是通過mknod建立的,里面有MTD字符設備節(jié)點和MTD塊設備節(jié)點,通過訪問這些節(jié)點來訪問設備驅動程序。Open一般是設備節(jié)點上的第一個操作,訪問設備時其實就是系統(tǒng)調用open()函數(shù),然后 open()函數(shù)打開設備準備進行I/O操作,該函數(shù)注冊進mtd_fops結構中。

上面就是NorFLASH和NandFLASH驅動程序架構,具體開發(fā)驅動程序時,就要填充架構里的程序代碼,來完成驅動程序。這個框架中有一個函數(shù)表,具體到Linux系統(tǒng)里,需要提供一個結構來向系統(tǒng)說明FLASH驅動程序所提供的一組入口點,這個結構就是fop函數(shù)表。

FLASH驅動程序運行時,向內核注冊,告訴系統(tǒng)fop函數(shù)表是跟FLASH驅動程序相關聯(lián)的。當用戶去訪問驅動程序時,系統(tǒng)就告訴文件系統(tǒng)的管理程序,調用fop函數(shù)表就可以,然后調用函數(shù)表里的函數(shù),完成用戶要求。當從設備來收發(fā)數(shù)據(jù)時,系統(tǒng)不是調用read(),write()這兩個函數(shù),fop結構里沒這兩個函數(shù),而是要用到一個函數(shù)blk_init_queue(),這個函數(shù)向上注冊了一個請求處理函數(shù)request,對FLASH設備的讀取和發(fā)送數(shù)據(jù),都是從請求隊列發(fā)出一個請求,請求調用請求處理函數(shù),由請求處理函數(shù)執(zhí)行具體的讀寫操作。

4 結 語

基于Samsung公司的s3c2410處理器平臺,分析和設計NorFLASH和NandFLASH的接口和驅動,詳細介紹兩種FLASH的硬件結構、性能差異、讀寫時序、以及驅動開發(fā)。NorFLASH和NandFLASH因其在存儲數(shù)據(jù)和程序以及性價比方面的優(yōu)勢,占據(jù)的存儲器市場份額越來越多,并在嵌入式系統(tǒng)中得到廣泛應用。



QICK

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

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

關鍵字: 驅動電源

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

關鍵字: 工業(yè)電機 驅動電源

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

關鍵字: 驅動電源 照明系統(tǒng) 散熱

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

關鍵字: LED 設計 驅動電源

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

關鍵字: 電動汽車 新能源 驅動電源

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

關鍵字: 發(fā)光二極管 驅動電源 LED

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

關鍵字: LED 驅動電源 功率因數(shù)校正

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

關鍵字: LED照明技術 電磁干擾 驅動電源

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

關鍵字: LED 驅動電源 開關電源

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

關鍵字: LED 隧道燈 驅動電源
關閉