《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AT25T1024 FLASH的高速SPI接口
基于AT25T1024 FLASH的高速SPI接口
摘要: 從一種軍用板卡的實際需求出發,對SPI接口在設計中有諸如FPGA資源和管腳等限制的情況下,快速加栽配置數據的方法進行了分析。并基于ATMEL公司的AT25F1024 FLASH器件,描述了高速SPI接口的設計原理和方法,具有一定的實用性和可行性。
Abstract:
Key words :
摘要:從一種軍用板卡的實際需求出發,對SPI接口在設計中有諸如FPGA資源和管腳等限制的情況下,快速加栽配置數據的方法進行了分析。并基于ATMEL公司的AT25F1024 FLASH器件,描述了高速SPI接口的設計原理和方法,具有一定的實用性和可行性。

0 引言

在一些軍用芯片的早期設計中,一般先采用比較成熟的商用協議芯片進行軍用化改造(通常做成板卡形式),而商用芯片的軍用化改造主要體現在確定性、實時性、穩定性、安全性等問題上,所以一般需要在商用協議芯片的上層加入較多的控制功能。FPGA以其資源豐富,易于組織流水和并行處理等優點,為這種復雜控制提供了很好的選擇。而SPI在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,因此在基于FPGA的讀寫接口設計中,高速SPI是一種很好的選擇。

1 SPI結構

SPI (Serial Peripheral Interface-串行外圍設備接口)是Motorola公司推出的一種高效率全雙工同步串行數據接口,以主從模式工作,廣泛應用于FLASH,實時時鐘,AD轉換器等。SPI串行外圍設備總線根據串行同步時鐘極性(CPOL)和時鐘相位(CPHA)兩個參數的設置分為四種工作方式(SPO,SP1,SP2,SP3)。本板卡選用的片外存儲器AT25F1024僅支持0和3模式,為簡化設計,本設計的SPI時鐘采用SP0模式(CP-OL=0,CPHA=0),時鐘極性為低電平,時鐘相位串行時鐘上升沿采樣數據,下降沿數據輸出.SPI為主從工作方式,主設備由三部分構成,SPI_CFG_LOAD配置加載模塊可自動讀取存儲器FLASH的值,并加載到片內DPRAM中。主機通過配置SPI_CTRL控制模塊相應的寄存器,來完成對片外FLASH的訪問。SPI結構框圖如圖1所示。

一種基于<a class=AT25T1024 FLASH的高速SPI接口設計" src="http://files.chinaaet.com/images/20110705/aaa37216-c9fd-4200-afec-d00ad1cf84a4.jpg" />

2 高速SPI接口設計

2.1 配置加載模塊的設計

SPI_CFG_LOAD配置加載模塊主要完成從片外FLASH讀取數據,并將數據存入片內DPRAM中的功能。圖2給出了對應的狀態機設計。

一種基于AT25T1024 FLASH的高速SPI接口設計

各狀態說明如下:

SPI_IDLE:空閑狀態,如果主機配置了寄存器SPICFGSTART,狀態就跳到SPI_TX_BUFFER狀態。

SPI_TX_BUFFER:在此狀態主要向SPI_CTRL模塊的發送緩沖區地址0填入8位讀命令及讀取數據的三字節起始地址,狀態機之間進入下一狀態。

SPI_CTRL_REG:在這一狀態,配置SPI_CTRL模塊CTRL寄存器的值,包括一次讀操作搬運的數據位數,數據加載方式。如果配置GO位為“1”,表明可以開始進行讀傳輸,進入下一狀態SPI_CS。

SPI_CS:配置SPI_CTRL)模塊寄存器SS位的值,以選擇傳輸數據的從設備。

SPI_WAIT:本狀態判斷讀操作的起始地址和終止地址是否在要求的范圍內,如果處于相應的范圍,地址自動加64后,狀態機進入SPI_SS_ UA狀態。

SPI_SS_UA:等待片內DPRAM的寫操作完成,如果DPRAM_WR_END_T信號為高,說明當前的傳輸操作已經結束,可以進入下一次的訪問,狀態機進入SPI_IDLE狀態。

2.2 控制模塊的設計

SPI_CTRL控制模塊可將發送緩沖區0的數據讀出來,經過并串轉換,發送到串行線SI上,并且控制從串行線SO上接收數據,存儲在接收緩沖區,并行數據轉換成串行輸出由并串轉換狀態機來控制實現,見圖3。

一種基于AT25T1024 FLASH的高速SPI接口設計

各狀態含義如下:

TX_IDLE:等待主機設置控制寄存器的GO位,如果置“1”,表示準備開始傳輸,跳入下一狀態TX_ADDR。

TX_ADDR:當傳輸長度小于等于32位時,跳入下一狀態PARALELL_DATA。

PARALELL_DATA:如果GO為1,在此狀態TIP將被置“1”,說明傳輸開始,傳輸的計數器開始計數。

SERIAL_DATA:并行數據轉換為串行數據發送出去,當CNT_SHIFT計數器減到0時,傳輸結束,狀態跳入TX_IDLE。

2.3 串行移位時鐘設計

SPI串行線上的主從設備必須根據具體要求設置匹配的傳輸時序模式,時序只有匹配,數據傳輸才能正常進行。如果設置的不匹配,可能導致數據接收方和發送方在同一時鐘沿作用,而使數據傳輸失敗。本設計中的時鐘僅支持SP0模式,即串行時鐘處于空閑電平時,空閑狀態時鐘的極性電平為低,在時鐘的前沿采樣數據,時鐘后沿串行線上數據變化。

在采樣時刻,線上數據必須已經穩定可靠,因此數據發送端設備應提前將數據移出到數據線上,本SPI接口電路設計在同一串行移位時鐘周期中的前一個時鐘沿(即相反時鐘變化方向)將數據移出,移位時鐘設計為系統時鐘的兩分頻,為40/2MHz。

2.4 SPI相關寄存器描述

在本設計中,共有四種32位寄存器,包括控制寄存器,從設備選擇寄存器,加載配置數據起始寄存器以及加載配置數據完成寄存器。

控制寄存器用來控制配置信息加載方式,即:片外FLASH加載方式或主機直接加載方式。當選擇片外FLASH加載方式時,控制寄存器還用來控制一次數據傳輸的長度。CTRL寄存器的具體描述見表1。

一種基于AT25T1024 FLASH的高速SPI接口設計

從設備選擇寄存器的SS位置“1”時,表示選中從設備。置“0”表示不選擇任何從設備,本設計僅支持一個從設備。

加載配置數據起始寄存器的SPICFGSTART位置“1”時,配置數據自動從FLASH中讀取并寫入到DPRAM中,置“0”不進行讀FLASH操作。

加載配置數據完成寄存器為只讀寄存器,用來判斷數據是否已經加載完成。

2.5 SPI緩沖區設計

圖4所示為主機可直接訪問的SPI接口內部DPRAM發送和接收數據緩沖區。

一種基于AT25T1024 FLASH的高速SPI接口設計

SPI發送數據緩沖區深度65,數據位寬32位,其中地址22’h 3e0600存放訪問AT25F1024存儲器的指令,當進行寫操作時,從數據發送緩沖區最低位地址22’h3e0604開始,將數據搬運出來,串行發送到AT25F1024存儲器。

SPI接收數據緩沖區深度65,數據位寬32位,其中地址22’h3e0400緩存讀取的AT25F1024配置和狀態信息,偏移地址22’h3e0404~22’ h3e0500緩存指定FLASH讀取的總線配置數據數據,最大緩存2048位。

3 數據搬運時間

3.1 主機寫片外FLASH的時間

本設計使用的存儲器AT25F1024緩沖數據寄存器大小2048位,寫使能需要8個串行時鐘周期,向片外FLASH傳輸2048位數據需要2080個串行時鐘周期(包括了32位寫指令的傳輸數據),這樣寫一次需要時間為2088個時鐘周期,主機將1Mbits的FLASH填滿,時間大約為2088 x50ns(串行時鐘40/2MHz)×512 (填滿1Mbits需要512次寫操作)=53.4ms。讀1Mbits的FLASH需要的時間約為2080x50x512=53.2ms。圖5所示為主機寫片外FLASH時序圖。

一種基于AT25T1024 FLASH的高速SPI接口設計

3.2 讀取數據并加載到片內DPRAM的時間

通過SO管腳讀取AT25F1024的過程按下面順序執行,當片選拉低選擇此器件之后,通過SI線發送讀指令,后面跟隨要讀的地址(三個字節地址),指令傳輸完之后,SI線上的任何數據將被忽略。指定地址的數據接著被移出到SO線上。如果僅讀取一個字節,當數據讀出來之后,CS信號驅動為高。讀指令繼續時,字節地址自動增加,并且數據不斷被搬運出來。

AT25F1024緩沖數據寄存器大小2048位,在本設計中,寫使能需要32個串行時鐘周期,這樣讀取一次需要時間為2080個時鐘周期,將片內DPRAM(DPRAM大小14940字節)填滿,時間大約為2080x50ns(串行時鐘40/2MHZ)x59(填滿片內DPRAM需要大約59次讀操作)=6.13ms。

4 結束語

本文從應用的實際需求出發,在FPGA中實現了對外部FLASH進行讀寫的高速SPI接口,并已在某型板卡中成功應用。本文重點用有限狀態機的形式對各部分的工作原理和實現方法進行了描述。在FPGA資源比較緊張,限制管腳的使用數目,對速率又有比較高的需求的情況下,利用此SPI接口進行數據的加載或者固化,具有很高的應用價值。

作者:王純委 王明 中國航空計算技術研究所   來源:《電子元器件應用》2011年04期

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩亚洲国产综合久久久 | 色网址在线 | 亚洲欧美人妖另类激情综合区 | 欧美亚洲日本视频 | 久久99国产精品免费观看 | 中文字幕一区二区在线观看 | 国产成人精品无缓存在线播放 | 免费逼片 | 免费特黄一级欧美大片在线看 | 国产日韩精品视频 | 视频偷拍一级视频在线观看 | 国产一级久久久久久毛片 | 日韩色道| 久久成人免费观看草草影院 | 久久er热这里只有精品23 | 成人免费黄色网址 | 欧美日中文字幕 | 久久久久久久久免费影院 | 一级做a爱片特黄在线观看免费看 | 一区二区三区四区免费视频 | 亚洲国产亚洲片在线观看播放 | 波多野结衣一区二区 | 久久久国产乱子伦精品 | 久久国产网站 | 亚洲视频在线观看网站 | 国产在线播放一区 | 亚洲成人在线免费视频 | 亚洲 欧美 视频 | 免费看欧美一级特黄a大片一 | 成人做爰视频www视频 | 色射网| 国产成人综合日韩精品婷婷九月 | 亚洲精品美女国产一区 | 国产伦码精品一区二区 | 香蕉福利久久福利久久香蕉 | 亚洲高清不卡 | 久久久久免费视频 | 天堂视频网站 | 亚洲国产成人私人影院 | 欧美日韩国产一区二区三区在线观看 | 欧美一级毛片片aa视频 |