《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AT25T1024 FLASH的高速SPI接口設計
基于AT25T1024 FLASH的高速SPI接口設計
EEworld
摘要: 本文從應用的實際需求出發,在FPGA中實現了對外部FLASH進行讀寫的高速SPI接口,并已在某型板卡中成功應用。本文重點用有限狀態機的形式對各部分的工作原理和實現方法進行了描述。在FPGA資源比較緊張,限制管腳的使用數目,對速率又有比較高的需求的情況下,利用此SPI接口進行數據的加載或者固化,具有很高的應用價值。
Abstract:
Key words :

關鍵字:AT25T1024 FLASH 高速SPI接口

  在一些軍用芯片的早期設計中,一般先采用比較成熟的商用協議芯片進行軍用化改造(通常做成板卡形式),而商用芯片的軍用化改造主要體現在確定性、實時性、穩定性、安全性等問題上,所以一般需要在商用協議芯片的上層加入較多的控制功能。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所示。

  

 

  2 高速SPI接口設計

  2.1 配置加載模塊的設計

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

  

 

  各狀態說明如下:

  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狀態。

關鍵字:AT25T1024 FLASH 高速SPI接口

 

2.2 控制模塊的設計

 

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

  

 

  各狀態含義如下:

  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。

  

 

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

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

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

  2.5 SPI緩沖區設計

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

  

 

  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時序圖。

  

 

  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接口進行數據的加載或者固化,具有很高的應用價值。

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
最近中文字幕mv在线一区二区三区四区 | 国产一区 二区 三区一级| 欧美日韩精品系列| 欧美jizz19性欧美| 免费欧美网站| 欧美韩日精品| 欧美久久电影| 欧美日韩国产页| 欧美日韩精品一区二区| 欧美日韩亚洲精品内裤| 欧美午夜精品久久久| 欧美视频免费在线| 欧美网站在线观看| 国产精品久久久久三级| 国产麻豆9l精品三级站| 国产精品亚洲综合色区韩国| 国产精品午夜国产小视频| 国产精品视频99| 国产日韩亚洲欧美综合| 国产亚洲毛片在线| 一色屋精品视频在线看| 亚洲国产成人精品女人久久久 | 欧美国产综合视频| 欧美精品成人| 欧美性色aⅴ视频一区日韩精品| 欧美性事免费在线观看| 国产精品久久久久久久久果冻传媒 | 亚洲激情视频在线播放| 亚洲日韩成人| 亚洲亚洲精品在线观看| 午夜激情久久久| 久久久久欧美精品| 欧美激情第六页| 国产精品久久久久久五月尺| 国产欧美日韩精品丝袜高跟鞋 | 在线亚洲国产精品网站| 亚洲欧美另类中文字幕| 亚洲大胆在线| 一本久道综合久久精品| 性欧美大战久久久久久久久| 久久综合九色综合久99| 欧美日本一区二区三区| 国产精品一区一区三区| 在线日韩欧美视频| 宅男噜噜噜66一区二区| 欧美在线一二三四区| 亚洲卡通欧美制服中文| 亚洲一区久久| 久久婷婷综合激情| 欧美日韩精品免费观看视频完整 | 欧美视频精品在线观看| 国产日韩综合一区二区性色av| 伊人久久大香线蕉av超碰演员| 99精品欧美一区二区三区| 欧美亚洲系列| 在线亚洲自拍| 99伊人成综合| 久久九九99视频| 欧美成人自拍视频| 国产精品热久久久久夜色精品三区 | 亚洲性视频h| 麻豆精品在线视频| 国产精品激情偷乱一区二区∴| 国产主播精品| 一区二区三区蜜桃网| 亚洲第一区在线| 西瓜成人精品人成网站| 欧美99在线视频观看| 国产麻豆91精品| 亚洲美女在线观看| 亚洲国产精品激情在线观看| 亚洲性感美女99在线| 欧美国产日本高清在线| 国产日韩专区| 亚洲视频在线观看视频| 亚洲每日在线| 久久综合五月| 国产日韩欧美91| 一区二区三区视频在线播放| 91久久午夜| 久久精品二区三区| 国产精品久久久久久五月尺| 亚洲人精品午夜| 亚洲国产精品成人综合色在线婷婷| 亚洲欧美日韩中文播放| 欧美福利一区二区| 伊人婷婷欧美激情| 久久不射中文字幕| 篠田优中文在线播放第一区| 欧美日韩一区二区视频在线| 亚洲成人自拍视频| 久久成人一区| 久久精品成人一区二区三区| 国产精品99免视看9| 亚洲日本中文字幕区| 亚洲激情视频网| 久久亚洲一区二区| 国产一区二区三区久久悠悠色av | 在线视频欧美精品| 欧美成人免费在线视频| 狠狠色狠狠色综合| 欧美在线短视频| 久久超碰97中文字幕| 国产精品porn| 亚洲精选视频免费看| 亚洲精品欧美激情| 蜜乳av另类精品一区二区| 欧美主播一区二区三区| 国产精品乱码| 在线一区二区三区四区五区| 一区二区三区精品视频在线观看 | 欧美精品二区| 亚洲精品永久免费精品| 亚洲精品日韩激情在线电影| 美日韩免费视频| 精品二区视频| 亚洲国产日韩欧美综合久久 | 黄色国产精品| 久久精品国产免费看久久精品| 欧美在线二区| 国产性猛交xxxx免费看久久| 午夜亚洲伦理| 久久久不卡网国产精品一区| 国产综合自拍| 亚洲国产成人高清精品| 另类图片综合电影| 在线观看久久av| 日韩天堂av| 欧美日韩综合在线| 在线亚洲成人| 久久国产精品久久w女人spa| 国产夜色精品一区二区av| 久久精品国产69国产精品亚洲| 麻豆精品在线播放| 亚洲精品1区2区| 在线中文字幕一区| 国产精品日韩欧美一区| 香蕉久久a毛片| 六月婷婷久久| 亚洲精品久久7777| 国产精品99久久99久久久二8 | 亚洲欧美一区二区在线观看| 国产乱码精品一区二区三区不卡| 午夜精品久久久久久久久久久久久| 欧美怡红院视频| 国语自产偷拍精品视频偷| 亚洲国产一区在线观看| 欧美人成免费网站| 亚洲午夜一区| 久久综合一区二区| 亚洲精选视频免费看| 午夜视黄欧洲亚洲| 韩国女主播一区二区三区| 日韩视频精品在线| 国产精品久久久久久久浪潮网站 | 久久国产综合精品| 亚洲国产精品一区二区第一页 | 国产精品日韩精品欧美在线| 欧美一级二级三级蜜桃| 欧美成人亚洲成人| 制服诱惑一区二区| 久久婷婷国产综合精品青草| 亚洲精品中文字幕在线| 欧美亚洲免费| 亚洲第一精品夜夜躁人人躁| 一本色道久久88综合日韩精品| 国产精品乱码人人做人人爱| 欧美中文字幕视频在线观看| 欧美精品一区二区三区在线播放| 亚洲视频一区二区在线观看| 久久久精品网| 一区二区欧美日韩视频| 久久这里有精品15一区二区三区| 日韩视频在线观看一区二区| 久久国产精品第一页| 亚洲国产一区二区三区在线播 | 亚洲另类一区二区| 久久高清国产| 99国内精品| 久久亚洲国产精品一区二区| 99在线精品观看| 久久影院亚洲| 亚洲一区二区在线免费观看| 你懂的视频欧美| 亚洲资源在线观看| 欧美波霸影院| 亚洲欧美一区二区三区极速播放 | 一本色道久久加勒比88综合| 久久人人97超碰精品888| 一本色道久久综合| 欧美成人黑人xx视频免费观看| 亚洲欧美日韩专区| 欧美日韩精品一区二区三区| 久久精品导航| 国产精品一区二区在线| 亚洲天堂偷拍| 亚洲国产综合在线看不卡| 久久久91精品国产| 亚洲综合导航| 国产精品激情电影|