999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于SSP接口的FPGA被動配置方法

2021-03-07 00:06:39尹凱
電子樂園·中旬刊 2021年4期

尹凱

摘要:本文實現(xiàn)了一種基于SSP接口的FPGA被動配置方法,對FPGA的被動串行配置進(jìn)行了詳細(xì)討論,給出了硬件電路設(shè)計和SSP接口的操作方法。

關(guān)鍵詞:SSP;FPGA被動配置;Linux

1. 引言

FPGA在上電之后,需要從外部電路獲取配置數(shù)據(jù)并載入到內(nèi)部的配置SRAM中才能正常工作。本文主要討論了一種基于外部處理器SSP接口發(fā)送配置數(shù)據(jù)的方法,既可以保證配置速度又簡化了硬件連接。

2.FPGA配置方式

Altera公司的Cyclone系列FPGA支持三種配置方式:AS模式(主動串行模式)、PS模式(被動串行模式)和JTAG模式。這三種配置方式由模式選擇管腳(MSEL1、MSEL0)的電平值決定,其主要區(qū)別是配置過程中FPGA所處的地位和加載配置數(shù)據(jù)的方式不同。本文使用其中的PS模式,實現(xiàn)外部處理器對FPGA的串行配置。

2.1PS配置過程

PS模式中主要用到的FPGA配置管腳包括:

lDCLK:配置時鐘;

lDATA0:配置數(shù)據(jù);

lnCONFIG:配置命令;

lnSTATUS:配置狀態(tài)指示;

lCONF_DONE:配置完成指示。

在PS模式下FPGA處于從屬地位,接收來自外部的配置命令、配置時鐘和配置數(shù)據(jù),并給出配置狀態(tài)信號以及配置完成指示信號,時序波形如下圖所示。

外部控制器(ARM、單片機(jī)等)控制整個配置過程。在配置期間,配置數(shù)據(jù)在DCLK管腳的時鐘信號上升沿通過DATA0管腳鎖存至FPGA中。FPGA要求每字節(jié)數(shù)據(jù)從LSB(最低有效位)開始發(fā)送,比如配置文件包含的字節(jié)順序為0x02 0x1B,那么串行二進(jìn)制流的發(fā)送順序就是0100-0000 1101-1000。

2.2PS配置文件

Altera的開發(fā)環(huán)境QuartusII編譯后自動生成的sof和pof格式的配置文件,不能用于PS模式,需要進(jìn)行格式轉(zhuǎn)化將sof文件轉(zhuǎn)換為rbf文件。

3.SSP接口電路設(shè)計

在本設(shè)計中,外部處理器使用的是MARVELL公司的PXA270,通過配置其GPIO管腳的復(fù)用功能實現(xiàn)SSP(同步串行協(xié)議)通信接口,處理器與FPGA配置管腳的連接關(guān)系如下圖所示。

3.1GPIO工作模式

對于具有復(fù)用功能的GPIO管腳,通過GPIO控制器的相應(yīng)寄存器來配置其工作模式。根據(jù)我們所選用GPIO管腳的編號范圍(GPIO23~GPIO27),使用的寄存器名稱及作用如下:

lGPLR0(GPIO電平狀態(tài)寄存器0)

讀取GPIO管腳的電平狀態(tài),每一位對應(yīng)一個GPIO管腳。

lGPSR0(GPIO輸出設(shè)置寄存器0)

控制GPIO管腳輸出高電平,每一位對應(yīng)一個GPIO管腳。

lGPCR0(GPIO輸出清除寄存器0)

控制GPIO管腳輸出低電平,每一位對應(yīng)一個GPIO管腳。

lGPDR0(GPIO方向寄存器0)

配置GPIO管腳為輸出或者輸入,每一位對應(yīng)一個GPIO管腳。

lGAFR0_U(GPIO復(fù)用功能寄存器0)

配置GPIO管腳復(fù)用功能,每兩位對應(yīng)一個GPIO管腳。

GPIO管腳的工作模式配置及寄存器取值如下表所示,各寄存器的物理地址詳見處理器的數(shù)據(jù)手冊。

3.2SSP接口時序

PXA270的SSP接口支持多種通信協(xié)議,包括TI的同步串行協(xié)議、Motorola的SPI協(xié)議、NI的Microwire協(xié)議等。這里使用Motorola的SPI通信協(xié)議,其接口時序如下圖所示。根據(jù)GPIO管腳的工作模式配置,我們只使用其中的SSPSCLK和SSPTXD信號用于發(fā)送FPGA的配置時鐘和配置數(shù)據(jù)。

這里需要注意的是,處理器的SSP接口在發(fā)送字節(jié)數(shù)據(jù)時是從MSB(最高有效位)開始發(fā)送,而FPGA要求每字節(jié)數(shù)據(jù)從LSB(最低有效位)開始發(fā)送,所以在配置程序中需要增加一個數(shù)據(jù)格式轉(zhuǎn)換過程。

4.Linux上配置程序?qū)崿F(xiàn)

配置程序運行在Linux的用戶空間,rbf文件存放在與處理器相連的Flash指定分區(qū)中,rbf文件名作為參數(shù)傳遞給配置程序并通過文件訪問函數(shù)進(jìn)行讀取,配置程序的實現(xiàn)流程如下圖所示。

其中PS模式配置流程的具體操作步驟如下:

1)設(shè)置nCONFIG=0,保持2us以上;

2)檢測nSTATUS,若為0表示FPGA已響應(yīng)配置請求,否則出錯;

3)設(shè)置nCONFIG=1,等待不超過40us;

4)檢測nSTATUS,若為1表示FPGA可以開始進(jìn)行配置;

5)在DCLK的每個上升沿,通過DATA0輸入比特流數(shù)據(jù);

6)待所有數(shù)據(jù)發(fā)送完畢后,CONF_DONE應(yīng)變?yōu)?,表示FPGA配置完成。

對nCONFIG、nSTATUS和CONF_DONE管腳的操作,通過讀寫相應(yīng)GPIO寄存器即可實現(xiàn),這里主要對SSP控制器的操作進(jìn)行說明。

1.1SSP接口初始化

SSP接口初始化使用到的SSP寄存器如下:

a)SSCR0_1(SSP1控制寄存器0)

b)SSCR1_1(SSP1控制寄存器1)

通過SSCR0_1寄存器配置SSP接口的工作模式,數(shù)據(jù)位數(shù)、時鐘頻率;通過SSCR1_1寄存器配置SSP接口的極性、相位等參數(shù)。最后通過SSCR0_1寄存器使能SSP1接口。初始化代碼如下:

static void set_ssp_reg(void)

{

//----Control Register 0----//

int sscr0 = read_reg(SSP_SSCR0);

sscr0 &= ~FRF; //Motorola

sscr0 &= ~MOD;

sscr0 |= (TIM | RIM);

//16-bit data

sscr0 &= ~(0xF);

sscr0 |= DSS;

sscr0 &= ~EDSS;

//Clock 6.5MHz

sscr0 &= ~ACS;

sscr0 &= ~NCS;

sscr0 &= ~ECS;

sscr0 &= ~(0xFFF << 8);

sscr0 |= SCR;

write_reg(SSP_SSCR0, sscr0);

//----Control Register 1----//

int sscr1 = read_reg(SSP_SSCR1);

sscr1 &= ~(0x3fc0);

sscr1 |= TFT; //Set TX fifo level

sscr1 |= RFT; //Set RX fifo level

sscr1 &= ~RWOT; //Tx Rx mode

sscr1 &= ~SPH; //Phase

sscr1 &= ~SPO; //Polarity

sscr1 &= ~LBM;

sscr1 &= ~TIE;

sscr1 &= ~RIE;

write_reg(SSP_SSCR1, sscr1);

//----Control Register 0----------------//

sscr0 = getmem(SSP_SSCR0);

sscr0 |= SSE;

putmem(SSP_SSCR0, sscr0);

}

1.2SSP接口數(shù)據(jù)發(fā)送

SSP接口數(shù)據(jù)發(fā)送使用到的SSP寄存器如下:

a)SSSR_1(SSP1狀態(tài)寄存器)

b)SSDR_1(SSP1數(shù)據(jù)寄存器)

通過SSSR_1寄存器讀取當(dāng)前發(fā)送FIFO的狀態(tài),如果發(fā)送FIFO不滿,則在SSDR_1寄存器中寫入新數(shù)據(jù),直到配置數(shù)據(jù)發(fā)送完成。發(fā)送代碼如下:

static int ssp_xmit(u16 b)

{

while(!(getmem(SSP_SSSR) & TNF));

putmem(SSP_SSDR, b);

return 0;

}

5. 結(jié)束語

本文主要實現(xiàn)了基于外部處理器SSP接口的FPGA被動串行配置,具有接口簡單、加載速度快、通用性強等特點。基于linux實現(xiàn)的配置程序方便移植和使用,通過分時加載不同的配置文件可以實現(xiàn)FPGA的動態(tài)配置。

參考文獻(xiàn)

[1] Marvell Inc.Marvell PXA270 Processor Developers Manual, 2009

[2] Altera Inc.Cyclone III Device Handbook, 2012

[3]王黎明.深入淺出XScale嵌入式系統(tǒng).北京航空航天大學(xué)出版社, 2011

主站蜘蛛池模板: 欧洲亚洲欧美国产日本高清| 露脸一二三区国语对白| 老司机久久99久久精品播放| 久久永久精品免费视频| 日韩欧美中文在线| 欧美a级在线| 亚洲清纯自偷自拍另类专区| 国产极品美女在线观看| 在线国产毛片| 伊人久久精品无码麻豆精品| 欧美精品二区| 精品人妻AV区| 亚洲伊人久久精品影院| 欧美午夜视频| 国产手机在线观看| 国产精品浪潮Av| 美女无遮挡免费视频网站| 国产精品第5页| 久久这里只精品热免费99| 国产综合色在线视频播放线视 | 伊人久久久久久久| 中文字幕亚洲专区第19页| 性欧美在线| 最新国产午夜精品视频成人| 视频二区国产精品职场同事| 国产91蝌蚪窝| 国产精品免费电影| 欧美色综合网站| 欧美在线一级片| 国产一在线| 老色鬼久久亚洲AV综合| 任我操在线视频| 久久综合一个色综合网| 精品国产成人高清在线| a毛片免费观看| 久久五月天国产自| 国产大全韩国亚洲一区二区三区| 国产美女叼嘿视频免费看| 色哟哟精品无码网站在线播放视频| 美女裸体18禁网站| 日韩不卡免费视频| 日本午夜三级| 亚洲香蕉久久| 国产午夜一级淫片| 一区二区欧美日韩高清免费 | 日本在线亚洲| 亚洲小视频网站| 国产精品xxx| 免费日韩在线视频| 欧美色视频日本| 国产色婷婷| 激情国产精品一区| 国产精品v欧美| 性视频久久| 欧美一级高清片欧美国产欧美| 国产毛片基地| 成人在线观看一区| 国产综合另类小说色区色噜噜| 亚洲中文字幕无码爆乳| 在线播放91| 4虎影视国产在线观看精品| 国产传媒一区二区三区四区五区| 国产精品视频导航| 成年女人a毛片免费视频| 亚洲伊人久久精品影院| 欧美日韩久久综合| 国产人在线成免费视频| 久久这里只精品热免费99| 中文字幕久久精品波多野结| 亚洲浓毛av| 欧美国产精品不卡在线观看| 久996视频精品免费观看| 中文字幕永久在线观看| 毛片网站观看| 国产亚洲精品自在久久不卡| www.99精品视频在线播放| 亚洲综合二区| 亚洲第一成年网| 国内丰满少妇猛烈精品播| 国产免费好大好硬视频| 国产一级一级毛片永久| 亚洲午夜综合网|