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

        ?

        高速SPI 接口在OSD 中的應(yīng)用

        2012-08-09 08:07:40施根勇黃世震
        電子器件 2012年2期
        關(guān)鍵詞:寄存器時(shí)序時(shí)鐘

        施根勇,黃世震

        (福州大學(xué)福建省微電子集成電路重點(diǎn)實(shí)驗(yàn)室,福州 350002)

        字符疊加的全稱(chēng)是視頻字符疊加,英文簡(jiǎn)稱(chēng)OSD(On Screen Display),是一種在視頻信號(hào)中疊加字符信息,使得電視圖像中疊加有字符或漢字圖形的技術(shù)。視頻字符疊加技術(shù)的應(yīng)用領(lǐng)域非常廣泛,尤其是在閉路電視安防監(jiān)控中[1],視頻字符疊加的作用更為明顯。

        設(shè)計(jì)將SPI 串行總線接口應(yīng)用到OSD 顯示中,公司標(biāo)識(shí),自定義圖片,時(shí)間與日期等符號(hào)信息存放在閃存(FLASH)里面,通過(guò)SPI 串行接口預(yù)加載OSD 信息,然后在LCD 上顯示出來(lái),如圖1所示。

        圖1 高速SPI 接口在系統(tǒng)中的位置

        由于LCD 控制器的顯示格式Y(jié)UV、RGB 通常是24 bit或更多,所以SPI 控制器需要很高的帶寬來(lái)滿(mǎn)足LCD 的實(shí)時(shí)顯示。

        1 設(shè)計(jì)任務(wù)

        本文設(shè)計(jì)一個(gè)高速串行接口,連接閃存(FLASH)和屏幕顯示(OSD)控制模塊,在水平和垂直同步信號(hào)作用下,OSD 控制器通過(guò)高速串行接口從閃存(FLASH)中讀取響應(yīng)的圖形和字符點(diǎn)陣數(shù)據(jù),然后與輸入視頻疊加合成到輸出到LCD 顯示屏幕。

        OSD 控制器如果采用320×240 的全屏顯示,需要的數(shù)據(jù)傳輸速率約320×240×30(幀)×8(bit)≈20 Mbit/s,綜合總線余量等因素的考慮,設(shè)計(jì)的SPI 串行接口速率至少應(yīng)該達(dá)到30 Mbit/s。

        2 串行接口比較

        UART(Universal Asynchronous Receiver/Transmitter)是一種通用串行數(shù)據(jù)總線,用于異步通信,該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計(jì)中,UART 用來(lái)與PC 進(jìn)行通信,包括監(jiān)控調(diào)試器和其他器件,比如EEPROM。

        I2C(Inter-Integrated Circuit)總線[2]是由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備,具有接口少,器件封裝形式小等優(yōu)點(diǎn)。

        SPI(Serial Peripheral Interface)總線是Motorola公司提出的一種同步串行外設(shè)接口,主要應(yīng)用在EEPROM[3],F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD 轉(zhuǎn)換器[4],還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。它是一種同步的高速、全雙工的數(shù)據(jù)通信總線,并且在芯片的管腳上只采用四根線,節(jié)約了芯片的管數(shù),同時(shí)為PCB 的布局上節(jié)省空間,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議。

        I2C 連線比SPI 少,但是技術(shù)實(shí)現(xiàn)上更加麻煩,而且I2C 使用上拉電阻,抗干擾能力較弱,I2C 的速度也比SPI 慢。

        3 高速SPI模塊的接口信號(hào)和時(shí)序

        本設(shè)計(jì)內(nèi)部接口采用AMBA 總線協(xié)議[5],增加模塊的可移植性和可復(fù)用性。SPI模塊掛在APB 總線上,通過(guò)APB 總線對(duì)SPI模塊進(jìn)行狀態(tài)控制、數(shù)據(jù)讀寫(xiě)、中斷處理等操作。此外,支持DMA 操作,另外還有1 根中斷請(qǐng)求信號(hào)線,通過(guò)配置內(nèi)部寄存器來(lái)控制中斷請(qǐng)求的輸出。SPI 結(jié)構(gòu)是由四條線組成[6]:串行時(shí)鐘線(SCLK)、主機(jī)輸出從機(jī)輸入線(MOSI)、主機(jī)輸入從機(jī)輸出線(MISO)和從機(jī)選擇線(SS)。SPI 是串行通訊協(xié)議模式,SCLK 提供時(shí)鐘脈沖,MOSI、MISO 則基于此脈沖完成數(shù)據(jù)傳輸。上升沿到來(lái)的時(shí)候,MOSI 上的電平將被發(fā)送到從設(shè)備的寄存器中。下降沿到來(lái)的時(shí)候,MISO 上的電平將被接收到主設(shè)備的寄存器中。設(shè)計(jì)的高速SPI模塊的接口信號(hào)如圖2所示。

        圖2 高速SPI模塊的接口信號(hào)圖

        協(xié)議規(guī)定了4種傳輸時(shí)序,4種時(shí)序由時(shí)鐘極性CPOL和時(shí)鐘相位CPHA 的不同值來(lái)區(qū)分。如果CPOL=0,串行同步時(shí)鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時(shí)鐘的空閑狀態(tài)為高電平。時(shí)鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數(shù)據(jù)傳輸。如果CPHA=“0”,在串行同步時(shí)鐘的第一個(gè)跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時(shí)鐘的第二個(gè)跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI 主模塊和與之通信的外設(shè)時(shí)鐘相位和極性應(yīng)該一致。

        圖3 SPI 傳輸時(shí)序

        4 高速SPI模塊功能設(shè)計(jì)

        4.1 模塊劃分

        根據(jù)定義及SPI 的工作原理,將整個(gè)SPI IP 劃分為6個(gè)子模塊:傳輸控制模塊、時(shí)鐘分頻模塊、時(shí)鐘同步模塊、FIFO模塊、APB 接口模塊、SPI模式選擇模塊。整個(gè)SPI 控制模塊的結(jié)構(gòu)劃分如圖4所示。

        圖4 高速SPI模塊架構(gòu)

        4.2 各模塊設(shè)計(jì)

        4.2.1 APB 接口模塊

        APB 接口模塊的主要功能是地址譯碼,讀取和寫(xiě)入內(nèi)部寄存器以及FIFO 控制,當(dāng)需要讀取或?qū)懭爰拇嫫鞯臅r(shí)候,將Paddr 的地址信息與寄存器的地址常量做比較,若Paddr 等于某個(gè)寄存器的地址常量,則是要對(duì)響應(yīng)寄存器進(jìn)行操作。當(dāng)片選信號(hào)Psel 有效且寫(xiě)入信號(hào)Pwrite,寫(xiě)使能信號(hào)Penable 均有效時(shí),將Pwdata 賦值給相應(yīng)的內(nèi)部寄存器。FIFO控制通過(guò)讀指針和寫(xiě)指針來(lái)了解FIFO 內(nèi)部的狀態(tài)。為了支持ARM 的突發(fā)傳輸,對(duì)FIFO 的地址做了擴(kuò)展。為了滿(mǎn)足高速設(shè)計(jì),SPI FLASH 中要求命令和數(shù)據(jù)的傳輸必須在一個(gè)SPI burst(一個(gè)CS 拉低的傳輸過(guò)程)里面,設(shè)計(jì)中加長(zhǎng)了SPI burst 的最大長(zhǎng)度(最大27個(gè)word),這樣可以一次從FLASH 中盡可能的多讀數(shù)據(jù)。

        4.2.2 時(shí)鐘分頻模塊

        時(shí)鐘分頻模塊將時(shí)鐘spi_clk 分頻,產(chǎn)生內(nèi)部時(shí)鐘信號(hào)sys_clk,設(shè)計(jì)采用了兩級(jí)分頻,第一級(jí)用來(lái)n分頻,第二級(jí)用來(lái)2n分頻。

        4.2.3 時(shí)鐘同步模塊

        模塊中有兩個(gè)異步時(shí)鐘域,Pclk和SPI_clk,為了盡可能減少異步信號(hào)傳輸中由于亞穩(wěn)態(tài)引發(fā)的問(wèn)題,設(shè)計(jì)采用兩級(jí)同步寄存器將信號(hào)同步到新的時(shí)鐘域中,如圖5所示。

        圖5 同步寄存器鏈

        4.2.4 FIFO模塊

        FIFO模塊主要用作數(shù)據(jù)緩沖,以確保數(shù)據(jù)讀寫(xiě)速度的匹配和時(shí)序的一致。由于本設(shè)計(jì)中數(shù)據(jù)吞吐量較大,為了滿(mǎn)足高速設(shè)計(jì),所以定義了一個(gè)64×32的TXFIFO和一個(gè)64×32 的RXFIFO。另外采用DMA 方式傳輸,當(dāng)TXFIFO 的數(shù)據(jù)小于閾值或RXFIFO 的數(shù)據(jù)大于閾值的時(shí)候,觸發(fā)DMA 請(qǐng)求。由DMA模塊控制數(shù)據(jù)在內(nèi)存和SPI 間的交換,而不需要處理器核的參與,有效提高了總線的利用率。

        4.2.5 傳輸控制模塊的設(shè)計(jì)

        傳輸控制模塊是SPI 實(shí)現(xiàn)的核心,控制整個(gè)SPI 總線的傳輸時(shí)序,通過(guò)計(jì)數(shù)產(chǎn)生數(shù)據(jù)傳輸使能信號(hào)以及系統(tǒng)需要的狀態(tài)標(biāo)志位,通過(guò)一個(gè)狀態(tài)機(jī)來(lái)控制數(shù)據(jù)流的傳輸(圖6)。

        圖6 傳輸控制模塊狀態(tài)機(jī)

        初始狀態(tài)為空閑狀態(tài),當(dāng)CONREOLREG 寄存器中XCH 置1 的時(shí)候,開(kāi)始數(shù)據(jù)傳輸,若傳輸過(guò)程中檢測(cè)到TXFIFO為空,則停下來(lái)等待數(shù)據(jù)填入,當(dāng)所有的數(shù)據(jù)傳輸完畢后,返回空閑狀態(tài)。

        5 高速SPI模塊的仿真驗(yàn)證

        用Verilog HDL 語(yǔ)言編寫(xiě)模塊代碼,為了保證RTL 代碼的正確性,對(duì)IP 的功能進(jìn)行全面的仿真驗(yàn)證,仿真包括功能驗(yàn)證和門(mén)級(jí)仿真,功能仿真不涉及任何時(shí)序上的延時(shí),只是單純地驗(yàn)證代碼所實(shí)現(xiàn)的功能是否符合要求。門(mén)級(jí)仿真是布局布線后仿真,包含了精確的時(shí)延參數(shù)。

        系統(tǒng)使用的w25x32[7]是Winbond 公司生產(chǎn)的總?cè)萘繛?2 Mbit 的SPI FLASH,一個(gè)扇區(qū)(Sector)為4 kbyte,一個(gè)塊(Block)為64 kbyte,支持扇區(qū)擦除(Sector Erase),塊擦除(Block Erase)和整片擦除(Chip Erase),支 持 頁(yè) 寫(xiě) 入(Page Program,256 byte),最高時(shí)鐘可達(dá)75 MHz。

        為了測(cè)試設(shè)計(jì)的正確性,我們用HDL 語(yǔ)言編寫(xiě)了該SPI FLASH 的模型掛在驗(yàn)證平臺(tái)上,編寫(xiě)了Testbench模塊,包括產(chǎn)生時(shí)鐘信號(hào),控制寄存器的配置,收發(fā)的數(shù)據(jù)和產(chǎn)生中斷等。

        本設(shè)計(jì)測(cè)試的思路是將采用一次完整的FLASH 讀寫(xiě)來(lái)驗(yàn)證SPI 控制器的功能的完整性,F(xiàn)LASH 要求在頁(yè)寫(xiě)入之前必須對(duì)將要寫(xiě)入的扇區(qū)進(jìn)行擦除,在執(zhí)行頁(yè)寫(xiě)入和擦除命令之前必須執(zhí)行Write Enable,在執(zhí)行命令之前,先判斷FLAH 是否忙,F(xiàn)LASH 的讀寫(xiě)順序如圖7所示。

        圖7 FLASH 讀寫(xiě)順序

        主要的測(cè)試任務(wù)有:

        (1)數(shù)據(jù)傳輸測(cè)試 測(cè)試啟動(dòng)后寄存器的初值是否正確,對(duì)FLASH 進(jìn)行擦除,頁(yè)寫(xiě)入和讀測(cè)試。以及在不同的時(shí)鐘分頻數(shù)值下數(shù)據(jù)傳輸是否正確,還有不同模式下的數(shù)據(jù)發(fā)送和接收是否正確。

        (2)DMA 測(cè)試,將高速SPI模塊掛入系統(tǒng)進(jìn)行DMA 測(cè)試;中斷響應(yīng)測(cè)試,測(cè)試各種情況下的中斷輸出。

        ①數(shù)據(jù)傳輸測(cè)試

        圖8~圖11 是功能仿真的局部圖。

        在頁(yè)寫(xiě)入,擦除和Write Status 之前必須執(zhí)行命令Write Enable,SPI 控制器將發(fā)送命令Write Enable(06h)到FLASH。

        圖8 高速SPI模塊發(fā)送Write Enable 命令波形圖

        圖9 高速SPI模塊發(fā)送Sector Erase 命令波形圖

        擦除有Block Erase(D8h),Sector Erase(20h)和Chip Erase(C7h),圖9 是Sector Erase 的波形圖,前8 bit 傳輸?shù)氖敲?0 h,后24 bit 傳輸?shù)氖堑刂贰?/p>

        圖10 高速SPI模塊頁(yè)寫(xiě)入波形圖

        Page program 前8 bit 發(fā)送的是命令02h,然后24 bit 發(fā)送的是地址,接下來(lái)的256個(gè)byte 發(fā)送的是將要寫(xiě)入FLASH 的內(nèi)容。

        圖11 高速SPI模塊讀數(shù)據(jù)波形圖

        Read data 只要發(fā)送了命令(03h)和地址后,地址會(huì)自動(dòng)的跳到下一個(gè)地址,這就意味著只要發(fā)送一次命令和地址,就可以一直往下讀。控制器設(shè)置的最大SPI burst 的長(zhǎng)度為128個(gè)word。

        ②DMA 測(cè)試和中斷響應(yīng)測(cè)試

        完成了高速SPI IP 的驗(yàn)證后,接著將高速SPI IP 與ARM11 及DMA模塊進(jìn)行整合,如圖12,驗(yàn)證DMA和中斷響應(yīng)。

        順利通過(guò)了功能測(cè)試,利用綜合工具Design Compiler 對(duì)RTL 代碼進(jìn)行綜合,經(jīng)過(guò)對(duì)腳本約束的設(shè)定,通過(guò)DC 將控制器的時(shí)序和面積進(jìn)行優(yōu)化。

        圖12 驗(yàn)證測(cè)試系統(tǒng)結(jié)構(gòu)

        最后采用Xilinx 公司的Virtex-5 系列[8]的XC5VLX330FF1760-1 芯片進(jìn)行FPGA 驗(yàn)證,測(cè)試的SPI模塊的傳輸時(shí)鐘為66 MHz,測(cè)試結(jié)果表明數(shù)據(jù)傳輸?shù)膸掃_(dá)到了我們做OSD 的要求,最大數(shù)據(jù)傳輸速率可達(dá)35 Mbit/s,速度比遵循SPI 協(xié)議的同類(lèi)設(shè)計(jì)得到了相當(dāng)大的改觀。

        表1 SPI模塊設(shè)計(jì)比較

        6 結(jié)論

        實(shí)現(xiàn)了高速SPI IP 核的設(shè)計(jì)和FPGA 仿真驗(yàn)證。本設(shè)計(jì)著重于高速傳輸設(shè)計(jì),數(shù)據(jù)傳輸采用了簡(jiǎn)潔的并串互轉(zhuǎn)結(jié)構(gòu),擴(kuò)展了FIFO 的容量,一次可最大傳輸27個(gè)word,最大傳輸速率可達(dá)35 Mbit/s,在遵守SPI 協(xié)議的同類(lèi)設(shè)計(jì)中是較快的了,滿(mǎn)足了OSD 控制模塊的高速要求,因此可以實(shí)現(xiàn)對(duì)疊加內(nèi)容的動(dòng)態(tài)更新,在OSD 上做非常華麗的效果。而且是基于APB 接口的設(shè)計(jì),更加方便靈活,便于集成。

        [1]張薇.大型云鏡攝像機(jī)控制系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[D].南京:南京理工大學(xué),2007.

        [2]The I2C-BUS Specification Version2.1[S].2000.7.

        [3]M95M01-R,1 Mbit Serial SPI Bus EEPROM with High Speed Clock[R].2008.7.

        [4]ANALOG DEVICE 應(yīng)用筆記AN-877,通過(guò)SPI 與高速ADC 接口[R].2007.4.

        [5]AMBA Specification Revision 2.0[S].ARM Limited,1999.

        [6]SPI Block Guide V04.01[S].Freescale Semiconductor,Inc,2000.6.

        [7]W225X16,W25X32,W25X64,SPI Flash 16M-BIT,32M-bit,and 64M-BIT Serial Flash Memory with 4KB Sectors and Dual Output SPI[S].Winbond,2007.12.

        [8]Virtex-5 User Guide,XILINX[S].2007年9 月.

        [9]張桂友,戴慶元.串行外圍接口SPI 功能模塊設(shè)計(jì)[J].微處理器,2009,(4):15-20.

        [10]王二萍.高速可復(fù)用SPI 總線的設(shè)計(jì)與Verilog HDL 實(shí)現(xiàn)[D].河南大學(xué),2007.

        猜你喜歡
        寄存器時(shí)序時(shí)鐘
        時(shí)序坐標(biāo)
        基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
        別樣的“時(shí)鐘”
        古代的時(shí)鐘
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        有趣的時(shí)鐘
        一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
        電子制作(2016年15期)2017-01-15 13:39:08
        時(shí)鐘會(huì)開(kāi)“花”
        DPBUS時(shí)序及其設(shè)定方法
        河南科技(2014年15期)2014-02-27 14:12:36
        国产色视频在线观看了| 四虎影视一区二区精品| 久久久精品人妻久久影视| 亚洲粉嫩高潮的18p| 久久免费精品国产72精品剧情| 国产av一区二区内射| 丝袜美腿在线观看视频| 日本熟妇人妻xxxx| 欧美巨大巨粗黑人性aaaaaa| 日本久久久久| 日本视频一区二区三区| 人成午夜大片免费视频77777| 内地老熟女老少配视频| 久久久国产精品麻豆| 熟女白浆精品一区二区| 精品亚洲av一区二区| 激情在线一区二区三区视频| 爱性久久久久久久久| 精品国产三级a∨在线观看| 精品四虎免费观看国产高清| 久久精品中文字幕免费| 日韩精品熟妇一区二区三区| 国产av综合影院| 欧美亚洲国产人妖系列视| 国产真实二区一区在线亚洲| 户外精品一区二区三区| 内射口爆少妇麻豆| 国产午夜三级一区二区三| 99免费视频精品| 视频一区视频二区亚洲| 免费av日韩一区二区| 在线成人一区二区| 欧美在线资源| 久青青草视频手机在线免费观看| 国产色视频在线观看了| 亚洲av成人片色在线观看高潮| 成人做爰69片免费看网站| 久久av一区二区三区下| 国产精品视频自拍在线| 国产99久久精品一区二区| 久久99久久99精品免观看女同|