亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        集成化圖像控制引擎的研究與實(shí)現(xiàn)

        2013-09-25 14:13:00李奇劉宇紅金海陸
        電子設(shè)計(jì)工程 2013年5期
        關(guān)鍵詞:內(nèi)核端口總線

        李奇,劉宇紅,金海陸

        (貴州大學(xué) 理學(xué)院,貴州 貴陽(yáng) 550025)

        SOPC是Altera公司提出來(lái)的一種靈活、高效的SOC解決方案,它是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)SOC;其次它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁剪、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。NIOS II是由硬件描述語(yǔ)言編寫的基于FPGA的軟核CPU。NIOS II嵌入式處理器不僅提供更高的性能、更低的成本,還提供了齊全的軟件開發(fā)工具以及系統(tǒng)靈活性設(shè)計(jì)。本文將結(jié)合Nios II處理器的總線架構(gòu),分析SD卡的接口協(xié)議和驅(qū)動(dòng)程序設(shè)計(jì)方法;由于FPGA片內(nèi)的存儲(chǔ)資源可能滿足不了系統(tǒng)的設(shè)計(jì)需求,在設(shè)計(jì)中使用了片外SDRAM作為程序存儲(chǔ)和數(shù)據(jù)存儲(chǔ)器。通過(guò)SOPC中的Avalon總線接口與Nios II處理器和SDRAM控制器通信,構(gòu)建了基于Nios II的SOPC,使之能顯示圖片格式為JPEG的圖像 ,并實(shí)現(xiàn)各種控制操作,能較好的模擬類似于引擎的操作,并給出基于Nios II處理器的設(shè)計(jì)實(shí)例。

        1 NIOS II處理器的Avalon總線架構(gòu)

        Avalon總線模塊是系統(tǒng)模塊的主干,是SOPC設(shè)計(jì)中外設(shè)之間通信的主要通道。Avalon總線模塊由各類控制、數(shù)據(jù)和地址信號(hào)以及仲裁邏輯組成,它將系統(tǒng)模塊的外設(shè)連接起來(lái),并描述了主從構(gòu)件的端口連接關(guān)系,以及構(gòu)件間通信的時(shí)序關(guān)系。以構(gòu)成可編程片上系統(tǒng)(SOPC)[1],Avalon總線系統(tǒng)結(jié)構(gòu)如圖1所示。

        圖1 Avalon總線系統(tǒng)結(jié)構(gòu)Fig.1 Avalon-bus system architecture

        Avalon總線模塊是一種可配置的總線結(jié)構(gòu),它可以隨著用戶的不同互聯(lián)要求而改變。Nios II處理器的片內(nèi)系統(tǒng)互聯(lián)主要靠的就是Avalon總線,Nios II處理器和各外設(shè)之間都是通過(guò)Avalon總線進(jìn)行交互。Avalon定義了5種不同的傳輸方式,包括從端口傳輸、主端口傳輸、流水線讀傳輸、流傳輸控制和三態(tài)傳輸。本文僅分析和討論SD卡設(shè)備所使用的從端口傳輸方式。

        一個(gè)Nios II處理器系統(tǒng)可以說(shuō)是包含了一個(gè)可配置CPU軟核、FPGA片上存儲(chǔ)器和片外存儲(chǔ)器、外設(shè)以及外設(shè)接口等的一個(gè)片上可編程系統(tǒng),所有的Nios II處理器系統(tǒng)都用同一的指令和編程模式[6]。一個(gè)典型的Nios II處理器系統(tǒng)如圖2所示。

        圖2 NIOS II處理器系統(tǒng)Fig.2 NIOS II processor system

        Nios II處理器系統(tǒng)[2]根據(jù)不同用戶的要求,其設(shè)計(jì)類型也不同,在設(shè)計(jì)中,CPU為主要部件,需要強(qiáng)大的性能,除了實(shí)現(xiàn)Nios II處理器系統(tǒng)外,剩下的邏輯資源可以用作粘貼和邏輯使用;而在另一些設(shè)計(jì)中,Nios II處理器系統(tǒng)只占FPGA一小部分資源,性能要求不高,剩下的邏輯資源可實(shí)現(xiàn)主要的邏輯功能。在這些系統(tǒng)中,如果用戶邏輯需要和Nios II處理器系統(tǒng)相互通信,用戶邏輯可以直接掛在片內(nèi)的Avalon總線上。Nios II是一個(gè)可靈活配置的軟核處理器,是用戶根據(jù)自己設(shè)計(jì)的性能或成本要求,靈活的增加或裁剪一些系統(tǒng)特性和外設(shè)。用戶甚至可以在系統(tǒng)中放置多個(gè)Nios II處理器內(nèi)核,以滿足應(yīng)用的要求。本設(shè)計(jì)中由于要處理圖片信息,故選用的是快速型內(nèi)核“Nios II/f”。其系統(tǒng)架構(gòu)如圖3所示。

        圖3 系統(tǒng)架構(gòu)Fig.3 system architecture

        本設(shè)計(jì)中根據(jù)Nios II處理器系統(tǒng)配置的SOPC系統(tǒng)如圖4所示。

        圖4 SOPC系統(tǒng)Fig.4 SOPC system

        由此產(chǎn)生的設(shè)計(jì)原理圖模塊如圖5所示。

        圖5 原理圖模塊Fig.5 Schematic module

        2 SD卡讀寫控制設(shè)計(jì)

        SD卡(SecureDigitalMemoryCard)是一種常見的存儲(chǔ)器件,以FlashMemory為存儲(chǔ)體,SD卡允許兩個(gè)可選的通信協(xié)議:SD模式和SPI模式。文中所研究的是SPI協(xié)議下的SD卡設(shè)計(jì)。

        2.1 SD卡的接口-SPI協(xié)議分析

        在SPI模式下,SD卡支持單塊的或是多塊的寫操作,在接收到一個(gè)合法的寫指令時(shí),SD卡件響應(yīng)一個(gè)應(yīng)答標(biāo)記的等待主控制器發(fā)送這個(gè)數(shù)據(jù)塊。

        圖6 單個(gè)塊的讀取操作Fig.6 Single block read operation

        在SPI模式下,SD卡支持單塊的或是多塊的寫操作[3],在接收到一個(gè)合法的寫指令時(shí),SD卡將響應(yīng)一個(gè)應(yīng)答標(biāo)記和等待主控制器發(fā)送這個(gè)數(shù)據(jù)塊。

        圖7 單個(gè)塊的寫入操作Fig.7 Single block write operation

        SPI模式下SD卡引腳定義如表1所示。

        表1 SD卡引腳定義Tab.1 SD card pin configuration

        SPI總線允許通過(guò) DI(數(shù)據(jù)輸入)和 DO(數(shù)據(jù)輸出)兩個(gè)通道傳輸數(shù)據(jù),數(shù)據(jù)為串行模式,每8位數(shù)據(jù)為一組。輸入數(shù)據(jù)和輸出數(shù)據(jù)在SCLK的上升沿是鎖存。SD卡的復(fù)位、初始化、寫操作和讀操作等都是通過(guò)DI端口發(fā)送SPI命令進(jìn)行控制的,SPI命令由 6個(gè)字節(jié)組成,其格式如表2所示。

        表2 SPI命令格式Tab.2 SPI command format

        字節(jié)1由“命令號(hào)+0x40”組成。例如,CMD55,55的16進(jìn)制為 0x37,0x37+0X40=0X77,二進(jìn)制為 01110111。

        字節(jié)2-5為命令參數(shù),共32為寬度。有些命令有參數(shù),有些命令沒(méi)有參數(shù)。對(duì)于沒(méi)有參數(shù)的命令可以直接置0x00、0x00、0x00、0x00、0x00。

        字節(jié)6為“CRC校驗(yàn)位+停止位”,對(duì)于SPI模式下的命令不需要進(jìn)行CRC校驗(yàn),可直接置為0xff。

        本設(shè)計(jì)中使用到的命令如下:

        2.2 SPI內(nèi)核

        SPI內(nèi)核集成在SOPC Builder內(nèi)部,SPI內(nèi)核的結(jié)構(gòu)如圖8所示。

        圖8 SPI內(nèi)核結(jié)構(gòu)Fig.8 SPI core construction

        由圖可知,SPI內(nèi)核的接口信號(hào)有兩條數(shù)據(jù)線、一條同步時(shí)鐘和一條控制線,它們分別表示如下。

        Master Out Slave In(mosi):主設(shè)備輸出數(shù)據(jù)到從設(shè)備的數(shù)據(jù)線。

        Master In Slave Out(miso):從設(shè)備輸出數(shù)據(jù)到主設(shè)備的數(shù)據(jù)線。

        Serial Clock(SCLK):主設(shè)備與從設(shè)備之間的數(shù)據(jù)同步時(shí)鐘。

        Slave Select(SS_n):主設(shè)備驅(qū)動(dòng)選擇從設(shè)備的選擇信號(hào),低電平時(shí)有效。

        SPI內(nèi)核有 5 個(gè)存儲(chǔ)器應(yīng)像的寄存器:rxdata、txdata、status、control和slaveselect。寄存器提供了用戶與SPI內(nèi)核的設(shè)計(jì)接口,SPI內(nèi)核支持流傳輸,設(shè)計(jì)中與DMA控制器相連接。

        在 Nios II中,Alter提供了一個(gè)函數(shù) int alt_avalon_spi_command(),該函數(shù)提供了對(duì)配置為主設(shè)備的SPI內(nèi)核的通用接口訪問(wèn),該函數(shù)原型為[4]:

        int alt_avalon_spi_command(alt_u32 base, alt_u32 slave,alt_u32 write_length, const alt_u8 * write_data,alt_u32 read_length, alt_u8*read_data,alt_u32 flags);

        調(diào)用該函數(shù)可以寫一個(gè)或多個(gè)字節(jié)的數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)并通過(guò)mosi端口發(fā)送,然后從miso端口讀回一個(gè)或多個(gè)字節(jié)的數(shù)據(jù)。

        函數(shù)的參數(shù)說(shuō)明如下。

        alt_u32 base:選擇主設(shè)備

        alt_u32 slave:選擇從設(shè)備,0為第一個(gè)從設(shè)備,1為第二個(gè)從設(shè)備,以此類推。

        alt_u32 write_length:設(shè)置主設(shè)備發(fā)送數(shù)據(jù)的字節(jié)數(shù)。

        const alt_u8*write_data:待發(fā)送緩沖數(shù)據(jù),函數(shù)將數(shù)組中的數(shù)據(jù)依次發(fā)出。

        alt_u32 read_length:設(shè)置主設(shè)備接收數(shù)據(jù)的字節(jié)數(shù)。

        alt_u8*read_data:接收的數(shù)據(jù)緩沖。

        alt_u32 flags:如果從不連續(xù)的數(shù)據(jù)緩沖區(qū)發(fā)送數(shù)據(jù),可以多次調(diào)用該函數(shù),每次指明訪問(wèn)的合并標(biāo)志(merge flag),則訪問(wèn)從設(shè)備之后不會(huì)釋放從設(shè)備,即SS_n為低電平。如果flag=0,則訪問(wèn)從設(shè)備之后會(huì)釋放從設(shè)備,即SS_n為高電平。

        3 SOPC中TFT LCD控制器核與驅(qū)動(dòng)設(shè)計(jì)

        本設(shè)計(jì)中使用Nios II軟核對(duì)TFT-LCD進(jìn)行驅(qū)動(dòng)時(shí),片內(nèi)的存儲(chǔ)器資源滿足不了系統(tǒng)的設(shè)計(jì)需求,因此在設(shè)計(jì)中將使用片外SDRAM作為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。

        3.1 SDRAM控制器內(nèi)核

        SDRAM控制器內(nèi)核為FPGA片外的SDRAM提供了一個(gè)Avalon_MM接口,可以使用SDRAM控制器將片外的SDRAM芯片連接到自定制的Nios II系統(tǒng)中。如圖9所示為SDRAM控制器內(nèi)核與片外SDRAM芯片連接的框圖。

        圖9 SDRAM控制器內(nèi)核與外設(shè)的連接Fig.9 SDRAM controller core and peripherals connection

        3.2 TFT-LCD組件設(shè)計(jì)

        LCD控制器主要由Avalon總線接口、寄存器組、控制模塊,DMA、FIFO以及時(shí)序生成模塊組成。每個(gè)寄存器獨(dú)立編址。處理器通過(guò)Avalon總線讀寫寄存器,從而完成對(duì)LCD控制器工作狀態(tài)的設(shè)定與控制??刂破鲉?dòng)后,DMA Master通過(guò)Avalon總線讀取SDRAM中的數(shù)據(jù),然后存入FIFO中,外部的SDRAM控制器在每一場(chǎng)的開始都會(huì)清空FIFO,然后保持FIFO中有數(shù)據(jù)(但不溢出)可供當(dāng)前顯示。在每次FIFO讀請(qǐng)求信號(hào)有效后,相應(yīng)的FIFO輸出數(shù)據(jù)也會(huì)送到該模塊內(nèi)部進(jìn)行鎖存。時(shí)序生成模塊按照TFT時(shí)序要求從FIFO中讀取數(shù)據(jù),然后送出去顯示。由于DMA讀取的速度與TFT時(shí)序發(fā)生器輸出的速度不一致,所以在DMA與TFT時(shí)序發(fā)生器之間加入FIFO用來(lái)緩沖數(shù)據(jù),DMA由控制模塊控制其工作,控制器不斷檢測(cè)FIFO狀態(tài),當(dāng)FIFO快滿是,暫停DMA,當(dāng)FIFO快空時(shí),重新啟動(dòng)DMA,如此循環(huán),保證顯示畫面的連續(xù)性與穩(wěn)定性。

        3.3 TFT-LCD控制的實(shí)現(xiàn)

        設(shè)計(jì)中利用取模軟件將圖片格式為JPEG的圖像轉(zhuǎn)化成從上到下、從左到右的RGB像素點(diǎn)色彩數(shù)據(jù)[5],然后將這些數(shù)據(jù)以并行的方式傳遞給LCD顯示,器驅(qū)動(dòng)原理如圖10所示。

        圖10 LCD驅(qū)動(dòng)原理Fig.10 LCD drive

        本設(shè)計(jì)中使用的LCD有一個(gè)16位的數(shù)據(jù)接口,設(shè)定要顯示的點(diǎn)的XY坐標(biāo),以及顯示什么顏色。觸摸屏為4線式觸摸觸摸屏,四線觸摸屏包含兩個(gè)阻性層。其中一層在屏幕的左右邊緣各有一條垂直總線,另一層在屏幕的底部和頂部各有一條水平總線,為了在X軸方向進(jìn)行測(cè)量,將左側(cè)總線偏置為0 V,右側(cè)總線偏置為VREF。將頂部或底部總線連接到ADC,當(dāng)頂層和底層相接觸時(shí)即可作一次測(cè)量。為了在Y軸方向進(jìn)行測(cè)量,將頂部總線偏置為VREF,底部總線偏置為0 V。將ADC輸入端接左側(cè)總線或右側(cè)總線,當(dāng)頂層與底層相接觸時(shí)即可對(duì)電壓進(jìn)行測(cè)量。

        設(shè)計(jì)中使用軟件編程的方法實(shí)行控制,利用C程序在觸摸屏中的相應(yīng)的位置畫上相應(yīng)的控制圖標(biāo)。

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

        基于NIOS II軟核處理器的設(shè)備驅(qū)動(dòng)設(shè)計(jì)方案具有良好的穩(wěn)定性與靈活性,可以按照設(shè)計(jì)者的需要去設(shè)計(jì)每個(gè)細(xì)節(jié),使整個(gè)系統(tǒng)結(jié)構(gòu)清晰明朗,設(shè)計(jì)比較靈活,設(shè)計(jì)中深刻的理解了FPGA的體系結(jié)構(gòu)與各部件協(xié)同的工作方式。設(shè)計(jì)中成功的實(shí)現(xiàn)的圖片格式為JPEG圖像的顯示與控制。并對(duì)SD卡的接口協(xié)議與LCD顯示有了較深刻的理解。

        [1]孫愷,程世恒.NiosⅡ系統(tǒng)開發(fā)設(shè)計(jì)與實(shí)例》[M].北京:北京航空航天大學(xué)出版社,2007.

        [2]赫建國(guó),倪德克,鄭燕.基于Nios II內(nèi)核的FPGA電路系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2010.

        [3]王黎明,陳雙嬌,閆曉玲,等.ARM9嵌入式系統(tǒng)開發(fā)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.

        [4]Altera Corporation.Nios II softerware developer’Handbook[S].2009.

        [5]吳厚航.愛(ài)上FPGA開發(fā)-特權(quán)同學(xué)和你一起學(xué)NIOS II[M].北京:北京航空航天大學(xué)出版社,2011.

        [6]Altera Corporation.Nios II processor reference handbook[S].2009.

        猜你喜歡
        內(nèi)核端口總線
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        一種端口故障的解決方案
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        基于PCI Express總線的xHC與FPGA的直接通信
        機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
        端口阻塞與優(yōu)先級(jí)
        初識(shí)電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        生成樹協(xié)議實(shí)例探討
        日本人视频国产一区二区三区| 亚洲国产高清一区av| 国产日韩欧美在线| 国产成人av在线影院无毒| 日韩极品视频在线观看免费| 国产亚洲av一线观看| 久久综合九色欧美综合狠狠| 亚洲精品色婷婷在线影院| 亚洲色欲综合一区二区三区| 秋霞午夜无码鲁丝片午夜精品| av无码精品一区二区乱子| 亚洲中文字幕乱码一二三区| 伊人久久综合狼伊人久久| 日本一区二区三区光视频| 香港三级午夜理论三级| 久久精品国产亚洲av麻豆| 亚洲欧美国产双大乳头| 91福利国产在线观一区二区| 国产精品一区二区久久毛片| 日韩有码在线一区二区三区合集| 26uuu在线亚洲欧美| 亚洲av国产精品色午夜洪2| 无码一区久久久久久久绯色AV| 视频在线亚洲视频在线| 亚洲天堂一区av在线| 国产精品成人aaaaa网站| 国产精品久久久久久人妻精品 | 成人试看120秒体验区| 亚洲美腿丝袜 欧美另类| 99热在线精品播放| 无码av专区丝袜专区| 午夜一区二区三区福利视频| 国产精品亚洲第一区二区三区| 欧美bbw极品另类| 久久狠狠第一麻豆婷婷天天| 国产精品女同久久久久久| 50岁熟妇大白屁股真爽| 伊人久久大香线蕉av不卡 | 成人无码h真人在线网站| 无码三级国产三级在线电影| 色综合悠悠88久久久亚洲|