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

        ?

        基于Nios II的SPI接口實(shí)現(xiàn)

        2014-08-30 06:26:30康賓孫亮周玉娟
        關(guān)鍵詞:寄存器時(shí)序時(shí)鐘

        康賓孫亮周玉娟

        (1中國電子科技集團(tuán)公司第五十四研究所河北石家莊050081)

        (2解放軍理工大學(xué)江蘇南京210007)

        1 引言

        SPI作為一個(gè)通用的接口在越來越多的芯片上使用,是一種4線的低速接口;AD9517-1ABCPZ就是一款支持SPI接口的時(shí)鐘芯片,SPI接口是該芯片的配置接口。Nios II處理器作為一個(gè)簡單的CPU,在很多SOPC系統(tǒng)中都被使用;在FPGA設(shè)計(jì)中搭建Nios II系統(tǒng),結(jié)合SPIMASTER模塊,可以用于配置AD9517-1ABCPZ,讓其輸出所需頻率的時(shí)鐘。

        2 簡介

        2.1 Nios

        Nios II系列軟核處理器是Altera公司的第二代FPGA嵌入式處理器,其性能超過200DMIPS。Nios II包括3種產(chǎn)品,分別是:NiosⅡ/f(快速)最高的系統(tǒng)性能、中等FPGA使用量;NiosⅡ/s(標(biāo)準(zhǔn))高性能和低FPGA使用量;NiosⅡ/e(經(jīng)濟(jì))低性能,最低的FPGA使用量。這3種產(chǎn)品采用32位處理器的基本結(jié)構(gòu)單元:32位指令大小、32位數(shù)據(jù)和地址路徑32位通用寄存器和32個(gè)外部中斷源;使用同樣的指令集架構(gòu)(ISA),100%二進(jìn)制代碼兼容,可以根據(jù)系統(tǒng)需求的變化更改CPU,選擇滿足性能和成本的最佳方案[1,2]。

        2.2 AD9517-1ABCPZ

        AD9517-1ABCPZ是Analog Device公司生產(chǎn)的時(shí)鐘發(fā)生器,其工作電壓+3.3 V,最大輸入頻率2 400 MHz,最大輸出頻率2 650 MHz,輸出時(shí)鐘為TTL電平或LVPEL電平[3]。

        2.3 SPI總線

        SPI總線系統(tǒng)是一種同步串行外設(shè)接口,可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。SPI總線系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接相連,該總線一般使用4條線:SDO(主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入)、SDI(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出)、SCLK(時(shí)鐘信號,由主設(shè)備產(chǎn)生)和CS(從設(shè)備使能信號,由主設(shè)備控制)等信號[4]。

        3 實(shí)現(xiàn)方案

        使用Nios II初始化、配置AD9517-1ABCPZ的實(shí)現(xiàn)方案可以分為兩部分:硬件設(shè)計(jì)和軟件設(shè)計(jì)[4]。硬件設(shè)計(jì)主要包括基于Nios II的SOPC系統(tǒng)的搭建,SPI-MASTER接口FPGA程序設(shè)計(jì)。軟件設(shè)計(jì)主要包括:SPI讀寫函數(shù)設(shè)計(jì),AD9517-1ABCPZ寄存器配置函數(shù)設(shè)計(jì)。

        3.1 硬件設(shè)計(jì)

        硬件設(shè)計(jì)包括:Nios II的SOPC系統(tǒng)和SPI-MASTER模塊兩部分。Nios II的SOPC系統(tǒng)通過并行的CPU接口與SPI-MASTER模塊相連,SPI-MASTER通過 SPI接口與AD9517相連,其原理框圖如圖1所示:

        圖1 硬件系統(tǒng)原理框圖

        Nios II的SOPC系統(tǒng),采用硬件程序和軟件程序都存儲在EPCS芯片的方式,采用該方式FPGA無需外接FLASH、SDRAM芯片,節(jié)省了電路板的布局空間以及成本,其主要包括以下幾個(gè)部分[5]:①Nios II,系統(tǒng)的CPU;②On-chip Memory RAM,存儲系統(tǒng)啟動后的程序指令以及數(shù)據(jù);③On-chip Memory ROM,存儲只讀數(shù)據(jù),例如波形數(shù)據(jù)等;④EPCSSerial Flash Controller,控制EPCS芯片,指定啟動地址;⑤JTAG UART,程序調(diào)試輸出接口,相當(dāng)于系統(tǒng)串行接口輸出,用于觀察調(diào)試過程中輸出信息;⑥Avalon-MM Tristate Bridge,其用于連接以上5個(gè)部分;⑦Typical Avalon-MM Tristate Slave,系統(tǒng)的CPU接口,控制片選,讀寫信號等。以上7個(gè)部分組成一個(gè)簡單的帶有CPU接口的SOPC系統(tǒng),用于承載AD9517-1ABCPZ配置程序。

        NIOS系統(tǒng)數(shù)據(jù)線是32位的,也就是按照32位進(jìn)行讀寫操作。但圖1所示的原理框圖中DATA寬度是8位的,這樣的話就會出現(xiàn)一個(gè)問題:若不對CS信號作調(diào)整,在一個(gè)讀周期內(nèi)CS信號會出現(xiàn)4次有效狀態(tài)。要完成8位的讀操作,就必須對CS信號進(jìn)行調(diào)整:在Typical Avalon-MM Tristate Slave里加入4位Byteenable[3..0]信號,當(dāng)Byteenable信號和RD信號同時(shí)有效時(shí),CS信號才有效,這樣就可以避免一個(gè)讀周期內(nèi)CS信號出現(xiàn)4次有效狀態(tài)的情況。NIOS系統(tǒng)的讀操作不會出現(xiàn)類似情況,所以數(shù)據(jù)讀過程CS信號不需要調(diào)整[6]。AD9517-1ABCPZ的SPI接口默認(rèn)是MSB方式,SPI-MASTER模塊以MSB的方式設(shè)計(jì),其讀寫時(shí)序圖如圖2和圖3所示。

        圖2 SPI接口寫時(shí)序

        圖3 SPI接口讀時(shí)序

        在FPGA內(nèi)部,SPI-MASTER模塊有以下幾個(gè)寄存器,用于存儲命令以及數(shù)據(jù):①R/W寄存器,用于指示本次操作是SPI讀操作還是SPI寫操作;②W1WO寄存器,用于指示本次SPI讀寫操作要訪問AD9517-1ABCPZ的寄存器個(gè)數(shù);③地址寄存器,用于指示本次SPI讀寫操作要訪問的AD9517-1ABCPZ的寄存器起始地址;④開始SPI讀寫寄存器,用于發(fā)起SPI讀寫操作;⑤狀態(tài)指示寄存器,用于指示SPI讀寫操作是否為空閑;⑥寫數(shù)據(jù)寄存器,用于暫存本次SPI寫操作的數(shù)據(jù);⑦讀數(shù)據(jù)寄存器,用于暫存本次SPI讀操作的數(shù)據(jù)。

        R/W寄存器、W1WO寄存器、地址寄存器、開始SPI讀寫寄存器和狀態(tài)指示寄存器等的內(nèi)容用于指定本次SPI操作的屬性,其決定了SPI接口的指令周期;寫數(shù)據(jù)寄存器和讀數(shù)據(jù)寄存器用于存儲SPI接口的讀寫數(shù)據(jù),其決定SPI接口的數(shù)據(jù)周期。

        SPI的接口時(shí)序設(shè)計(jì)分為SPI讀時(shí)序和SPI寫時(shí)序2個(gè)部分。

        SPI寫時(shí)序:SPI接口的CS信號只有在“開始SPI讀寫寄存器”被置位后有效,其有效狀態(tài)要一直保持到最后一個(gè)數(shù)據(jù)傳輸完成;SCLK信號的頻率一要在AD9517-1ABCPZ的SPI接口SCLK頻率范圍內(nèi),其是SDO、SDI信號的同步時(shí)鐘,可以由其他高頻率時(shí)鐘分頻得到;SDO信號在SCLK時(shí)鐘上升延依次輸出“R/W寄存器”、“W1WO寄存器”、“地址寄存器”的內(nèi)容,完成SPI接口的指令周期;SD0信號在SCLK時(shí)鐘上升延依次輸出由“W1WO寄存器”決定數(shù)據(jù)字節(jié)數(shù),完成SPI接口的數(shù)據(jù)周期。

        SPI讀時(shí)序:SPI接口的CS信號只有在“開始SPI讀寫寄存器”被置位后有效,其有效狀態(tài)要一直保持到最后一個(gè)數(shù)據(jù)傳輸完成;SD0信號在SCLK時(shí)鐘上升延依次輸出“R/W寄存器”、“W1WO寄存器”、“地址寄存器”的內(nèi)容,完成SPI接口的指令周期;SD0信號在SCLK時(shí)鐘上升延依次儲存由“W1WO寄存器”決定數(shù)據(jù)字節(jié)數(shù),完成SPI接口的數(shù)據(jù)周期。

        3.2 軟件設(shè)計(jì)

        配置AD9517-1ABCPZ的NOIS系統(tǒng)軟件設(shè)計(jì)可以分為2個(gè)主要的部分:SPI讀寫函數(shù)設(shè)計(jì)和AD9517-1ABCPZ寄存器配置函數(shù)設(shè)計(jì)。AD9517-1ABCPZ寄存器配置主要包括:SPI接口MSB或LSB寄存器配置、PLL使能寄存器配置、REFCLK選擇寄存器配置、分頻寄存器配置和倍頻寄存器配置等,按照其手冊進(jìn)行配置就可以讓其輸出相應(yīng)頻率的時(shí)鐘。SPI讀寫函數(shù)設(shè)計(jì)是該系統(tǒng)程序設(shè)計(jì)的重點(diǎn),其決定SPI接口能否正常配置AD9517-1ABCPZ時(shí)鐘芯片。

        SPI讀函數(shù)設(shè)計(jì)流程:①設(shè)置“R/W寄存器”為讀指令狀態(tài);②設(shè)置“W1WO寄存器”,指示被讀寄存器的個(gè)數(shù);③設(shè)置“地址寄存器”,指示本次SPI讀操作要訪問的AD9517-1ABCPZ寄存器起始地址;④判斷“狀態(tài)指示寄存器”是否為空閑狀態(tài),若為空閑狀態(tài),則進(jìn)行⑤的操作,若為忙狀態(tài),則等待;⑤設(shè)置“開始SPI讀寫寄存器”為開始讀狀態(tài),發(fā)起SPI讀操作;⑥等待SPI讀操作完成,把暫存的數(shù)據(jù)讀入Nios II的CPU接口;⑦SPI讀操作完成后,由硬件FPGA程序,清除“開始SPI讀寫寄存器”的開始讀狀態(tài),為下次讀操作做準(zhǔn)備。

        在開始SPI讀操作后,“狀態(tài)指示寄存器”指示SPI讀操作為忙狀態(tài),直到SPI讀操作完成,“狀態(tài)指示寄存器”再次指示SPI讀操作為空閑狀態(tài)。在2次SPI讀之間,上一次讀操作完成,才能開始下一次的讀操作。本次SPI讀操作完成后,才能把數(shù)據(jù)讀入Nios II的CPU接口。何時(shí)把數(shù)據(jù)讀入到Nios II的CPU接口的程序有2種方法設(shè)計(jì):①不作任何判斷,只在程序中加入足夠的時(shí)延;②對“狀態(tài)指示寄存器”的指示狀態(tài)進(jìn)行判斷,在其指示忙狀態(tài)時(shí)程序一直處于等待狀態(tài),但是等待要有一定的限度,在等待足夠的SCLK時(shí)鐘周期后,要跳出等待狀態(tài),若此時(shí)“狀態(tài)指示寄存器”還是處于忙狀態(tài),則輸出告警信息。

        方法①的設(shè)計(jì)比較簡單,其執(zhí)行效率不高,可靠性比較低,適合于程序處于理想狀態(tài)下運(yùn)行的情況;方法2對狀態(tài)進(jìn)行判斷,執(zhí)行效率較高,雖然也進(jìn)行了等待,但是在足夠的SCLK周期以后就跳出等待狀態(tài),防止了程序死鎖,程序執(zhí)行的可靠性較高。

        SPI寫函數(shù)設(shè)計(jì)流程:①設(shè)置“R/W寄存器”為寫指令狀態(tài);②設(shè)置“W1WO寄存器”,指示被寫寄存器的個(gè)數(shù);③設(shè)置“地址寄存器”,指示本次SPI寫操作要訪問的AD9517-1ABCPZ寄存器起始地址;④判斷“狀態(tài)指示寄存器”是否為空閑狀態(tài),若為空閑狀態(tài),則進(jìn)行⑤的操作,若為忙狀態(tài),則等待;⑤設(shè)置“開始SPI讀寫寄存器”為開始寫狀態(tài),發(fā)起SPI寫操作;⑥等待SPI寫操作完成;⑦SPI寫操作完成后,由硬件FPGA程序,清除“開始SPI讀寫寄存器”的開始寫狀態(tài),為下次寫操作做準(zhǔn)備。

        在開始SPI寫操作后,“狀態(tài)指示寄存器”指示SPI寫操作為忙狀態(tài),直到SPI寫操作完成,“狀態(tài)指示寄存器”再次指示SPI寫操作為空閑狀態(tài)。在2次SPI寫之間,上一次寫操作完成,才能開始下一次的寫操作。這樣的話在2次SPI寫操作之間,要加入延時(shí)判斷程序,若在每次SPI寫操作之間都加入延時(shí)判斷程序,會對程序執(zhí)行效率帶來較大影響。在SPI MASTER模塊了加入適量的FIFO,用于緩存SPI寫指令,結(jié)合FPGA程序的乒乓設(shè)計(jì),可以較大的提高程序的運(yùn)行效率。

        4 結(jié)束語

        使用NOIS II搭建的SOPC結(jié)合自主設(shè)計(jì)的SPI MASTER模塊,可以靈活輕松的完成AD9517-1ABCPZ配置工作,讓其輸出系統(tǒng)所需的多種時(shí)鐘?;贜ios II的SOPC系統(tǒng)設(shè)計(jì)簡單靈活、開發(fā)周期短、成本低和系統(tǒng)維護(hù)升級方便,是許多中、低速系統(tǒng)設(shè)計(jì)不錯(cuò)的選擇,今后必將在各個(gè)領(lǐng)域得到更廣泛的應(yīng)用。

        [1]孟 芳,于立佳,張文志.基于NiosⅡ的SOPC系統(tǒng)設(shè)計(jì)分析[J].無線電通信技術(shù).2012,38(1):73-76.

        [2]ALTERA ComPany,Nios IIprocess Reference handbook.Ver13.1.0[R].ALTERA ComPany,2014.

        [3]ANALOG DEVICESComPany,AD9517-1ABCPZ datasheet.Rev.D[R].ALTERA ComPany,2012.

        [4]Freescale ComPany,The Freescale SPIBus Specification.VERSION 4.01[R].ALTERA ComPany,2004.

        [5]侯建軍,郭 勇.SOPC技術(shù)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2008.

        [6]ALTERA ComPany,Embeded Design handbook.Ver2.9[R].ALTERA ComPany,2011.

        猜你喜歡
        寄存器時(shí)序時(shí)鐘
        時(shí)序坐標(biāo)
        基于Sentinel-2時(shí)序NDVI的麥冬識別研究
        別樣的“時(shí)鐘”
        古代的時(shí)鐘
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        有趣的時(shí)鐘
        一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
        電子制作(2016年15期)2017-01-15 13:39:08
        時(shí)鐘會開“花”
        DPBUS時(shí)序及其設(shè)定方法
        河南科技(2014年15期)2014-02-27 14:12:36
        国产亚洲精选美女久久久久| 亚洲中文字幕综合网站| 亚洲av日韩一区二三四五六七| 久久色悠悠亚洲综合网| 国产亚洲综合另类色专区| 深夜黄色刺激影片在线免费观看| 最近免费中文字幕中文高清6 | 精品人妻无码视频中文字幕一区二区三区 | 永久免费毛片在线播放| 日日麻批免费40分钟无码| 久人人爽人人爽人人片av| 人妻无码一区二区三区免费| 国产精品亚洲二区在线观看| 亚洲中文字幕无码mv| 这里有精品可以观看| 啪啪视频一区二区三区入囗| 国产99久久精品一区| 精品一区二区三区久久| 女女同恋一区二区在线观看| 三级全黄裸体| 成人免费看片又大又黄| 亚洲国产高清在线一区二区三区 | 亚洲VA欧美VA国产VA综合| 亚洲最稳定资源在线观看| 亚洲国产精品嫩草影院久久av| 亚洲一区二区三区在线视频| 99国产精品久久久久久久成人热| 亚洲女同一区二区| 欧美中日韩免费观看网站| 亚洲精品成人片在线观看| 精品亚洲一区二区视频| 亚洲精品国产av成人网| 国产日本精品视频一区二区| 成人欧美一区二区三区| 亚洲日韩v无码中文字幕| 日本久久精品免费播放| 亚洲一区二区女优av| 偷拍综合在线视频二区日韩| 在线麻豆精东9制片厂av影现网| 久久综合亚洲色一区二区三区| 中文字幕精品久久久久人妻红杏ⅰ |