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

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

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

尹凱

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

關鍵詞:SSP;FPGA被動配置;Linux

1. 引言

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

2.FPGA配置方式

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

2.1PS配置過程

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

lDCLK:配置時鐘;

lDATA0:配置數據;

lnCONFIG:配置命令;

lnSTATUS:配置狀態指示;

lCONF_DONE:配置完成指示。

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

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

2.2PS配置文件

Altera的開發環境QuartusII編譯后自動生成的sof和pof格式的配置文件,不能用于PS模式,需要進行格式轉化將sof文件轉換為rbf文件。

3.SSP接口電路設計

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

3.1GPIO工作模式

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

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

讀取GPIO管腳的電平狀態,每一位對應一個GPIO管腳。

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

控制GPIO管腳輸出高電平,每一位對應一個GPIO管腳。

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

控制GPIO管腳輸出低電平,每一位對應一個GPIO管腳。

lGPDR0(GPIO方向寄存器0)

配置GPIO管腳為輸出或者輸入,每一位對應一個GPIO管腳。

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

配置GPIO管腳復用功能,每兩位對應一個GPIO管腳。

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

3.2SSP接口時序

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

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

4.Linux上配置程序實現

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

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

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

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

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

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

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

6)待所有數據發送完畢后,CONF_DONE應變為1,表示FPGA配置完成。

對nCONFIG、nSTATUS和CONF_DONE管腳的操作,通過讀寫相應GPIO寄存器即可實現,這里主要對SSP控制器的操作進行說明。

1.1SSP接口初始化

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

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

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

通過SSCR0_1寄存器配置SSP接口的工作模式,數據位數、時鐘頻率;通過SSCR1_1寄存器配置SSP接口的極性、相位等參數。最后通過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接口數據發送

SSP接口數據發送使用到的SSP寄存器如下:

a)SSSR_1(SSP1狀態寄存器)

b)SSDR_1(SSP1數據寄存器)

通過SSSR_1寄存器讀取當前發送FIFO的狀態,如果發送FIFO不滿,則在SSDR_1寄存器中寫入新數據,直到配置數據發送完成。發送代碼如下:

static int ssp_xmit(u16 b)

{

while(?。╣etmem(SSP_SSSR) & TNF));

putmem(SSP_SSDR, b);

return 0;

}

5. 結束語

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

參考文獻

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

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

[3]王黎明.深入淺出XScale嵌入式系統.北京航空航天大學出版社, 2011

主站蜘蛛池模板: 日韩午夜片| 久久黄色一级视频| 欧美a√在线| 国产在线观看一区二区三区| 成人国产三级在线播放| 国产精品免费电影| 又爽又大又光又色的午夜视频| 成人无码一区二区三区视频在线观看| 欧美特级AAAAAA视频免费观看| 亚洲天堂啪啪| 亚洲欧美成aⅴ人在线观看| 亚洲—日韩aV在线| 婷婷中文在线| 亚洲伦理一区二区| 国产九九精品视频| 亚洲男人的天堂在线| 日韩免费中文字幕| 熟妇无码人妻| 思思99热精品在线| 99在线视频精品| 中国一级毛片免费观看| 全色黄大色大片免费久久老太| 国产精品嫩草影院av| 69免费在线视频| 国产精品一线天| 亚洲国产成人麻豆精品| 国产三级视频网站| 国产91丝袜在线播放动漫| 婷婷久久综合九色综合88| 一区二区无码在线视频| 国产高清不卡视频| 99re在线视频观看| 99福利视频导航| 亚洲天堂视频在线播放| 欧美一级专区免费大片| 亚洲综合一区国产精品| 国产精品免费入口视频| 99在线免费播放| 国产啪在线91| 一级片一区| 免费精品一区二区h| 国产一区二区免费播放| 欧美区一区| 中文字幕在线观| 欧美日韩国产一级| 免费中文字幕一级毛片| 亚洲欧美另类日本| 国产成人高清精品免费| 欧美人人干| 538精品在线观看| 久久综合激情网| 日韩人妻无码制服丝袜视频| 久久国产拍爱| 亚洲中文字幕久久无码精品A| 国产精品国产主播在线观看| 久久人人爽人人爽人人片aV东京热| 亚洲制服丝袜第一页| 久久网欧美| 高潮毛片免费观看| 国产性精品| 国产精品亚洲天堂| 好吊妞欧美视频免费| 九九免费观看全部免费视频| 国产日韩丝袜一二三区| 国产日韩欧美在线播放| AV片亚洲国产男人的天堂| 少妇高潮惨叫久久久久久| 999国内精品久久免费视频| 国产日本欧美在线观看| 国产91av在线| 国产日本欧美在线观看| 国产一二三区视频| 久久久噜噜噜久久中文字幕色伊伊| 国产福利观看| 欧美日韩在线第一页| 久久五月天综合| 国产精品第5页| 77777亚洲午夜久久多人| 日韩A∨精品日韩精品无码| 国产噜噜在线视频观看| 亚洲a免费| 国内精品视频|