• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA片內(nèi)Flash實現(xiàn)數(shù)據(jù)的動態(tài)加載和讀取*

      2019-05-31 03:19:40曹健輝
      通信技術(shù) 2019年3期
      關(guān)鍵詞:應(yīng)用層寄存器命令

      周 剛,曹健輝,彭 勃

      (中國電子科技集團公司第三十研究所,四川 成都 610041)

      0 引 言

      本項目中涉及到4個通道的射頻發(fā)射電路,頻段覆蓋225~400 MHz,射頻輸出幅度會隨著頻率的變化而變化。由于DA輸出屬于模擬電路,加之元器件的個體差異,常會導致相同電路、不同頻率射頻輸出幅度不一致。每個通道的輸出功率均有平坦度要求,因此每臺設(shè)備的4個通道均需根據(jù)實際輸出功率調(diào)整射頻輸出的衰減量,確定4個通道的衰減量后,編譯生成本臺設(shè)備的下載文件。根據(jù)經(jīng)驗,一般1 MHz頻率內(nèi)對應(yīng)一個校正值。例如,175 MHz范圍只需175個矯正值即可。此種方式導致每臺設(shè)備的調(diào)試測試均需要重新編譯FPGA工程文件,工作量大且不利于FPGA程序的歸檔和使用。

      考慮兩種改進方案。

      方案一為傳統(tǒng)的FPGA+SPI Flash或者FPGA+CPLD+Flash設(shè)計方案。由于硬件已經(jīng)開發(fā)完成,此方案的缺點在于需要修改硬件電路,增加單獨的Flash芯片或者CPLD芯片,因此實現(xiàn)難度較大,不建議采用。

      方案二為直接利用Xilinx公司Spartan-3AN系列FPGA內(nèi)含F(xiàn)lash進行設(shè)計改進。此FPGA內(nèi)含16 MB內(nèi)存的Flash,在PC中開發(fā)參數(shù)配置軟件,通過串口下載配置文件至FPGA中的片內(nèi)Flash。因為FPGA自帶串行外圍設(shè)備接口(Serial Peripheral Interface,SPI),F(xiàn)PGA每次開機后自動讀取片內(nèi)Flash的配置文件,也可以根據(jù)需要從FPGA的片內(nèi)Flash中讀取配置文件。

      1 Spartan-3AN

      1.1 Spartan-3AN主要特點

      Spartan-3AN FPGA平臺是Xilinx公司于2007年推出的非易失性FPGA解決方案,基于成熟的90 nm工藝的低成本FPGA構(gòu)架,融合了SRAM技術(shù)和可靠的非易失性閃存技術(shù)。

      以XC3S1400AN-4FGG676I為例,Spartan-3AN FPGA平臺的主要特點如下[1]:

      (1)工作溫度范圍:-40~100 ℃(結(jié)溫);

      (2)門數(shù)/乘積項:1 400 000門;

      (3)最高工作頻率:250 MHz;

      (4)傳輸延遲時間≤1.21 ns;

      (5)最大用戶I/O數(shù):502個;

      (6)電源電壓:1.2 V;

      (7)I/O端電壓:1.1~3.6 V;

      (8)邏輯單元:25 344個;

      (9)片內(nèi)Flash容量:16 MB。

      1.2 Spartan-3AN片內(nèi)Flash特點

      Flash又稱為閃存,具有可電擦寫、掉電后數(shù)據(jù)不丟失的特性,且容量大、功耗低、速度快,在現(xiàn)代電子產(chǎn)品中應(yīng)用廣泛[2]。

      以XC3S1400AN-4FGG676I為例,Spartan-3AN系列FPGA中片內(nèi)Flash的主要特點如下[1]:

      (1)片內(nèi)Flash容量:16 MB;

      (2)SRAM頁面緩沖區(qū):2個;

      (3)較小的空間(264 B或528 B)存儲非易失性數(shù)據(jù);

      (4)隨機存取,二進制地址可設(shè)置;

      (5)最大66 MHz連續(xù)數(shù)據(jù)傳輸;

      (6)支持全部擦除、塊擦除和扇區(qū)擦除;

      (7)重點區(qū)域數(shù)據(jù)具備保護功能和防護措施;

      (8)128 B安全存儲空間;

      (9)支持100 000次擦寫;

      (10)Flash數(shù)據(jù)可保存20年;

      (11)支持多種Flash使用方式。

      Spartan-3AN系列FPGA內(nèi)部結(jié)構(gòu),如圖1所示[3]。

      圖1 Spartan-3AN系列FPGA內(nèi)部結(jié)構(gòu)

      Spartan-3AN系列FPGA中片內(nèi)Flash的配置接口,如圖2所示。

      圖2 Spartan-3AN系列FPGA中片內(nèi)Flash的配置接口

      1.3 SPI接口

      SPI是由Motorola公司推出的一種高速、全雙工的同步串行通信總線,可以使MCU與各種外圍設(shè)備以串行方式進行通信并交換信息。SPI接口主要有4根信號線:時鐘信號線(CLK)、主輸出/從機輸入數(shù)據(jù)線(MISI)、主輸入/從機輸出數(shù)據(jù)線(MISO)和片選信號線(CSB)[4]。SPI接口框圖如圖3所示[5]。

      圖3 SPI接口

      目前,Spartan-3AN等FPGA內(nèi)含F(xiàn)lash模塊,支持SPI接口。對于Spartan-3AN,F(xiàn)PGA是SPI主器件,SPI Flash PROM是從器件。

      2 系統(tǒng)架構(gòu)

      本文構(gòu)建了一個通過SPI接口實現(xiàn)FPGA片內(nèi)Flash數(shù)據(jù)動態(tài)加載和讀取的系統(tǒng),系統(tǒng)架構(gòu)如圖4所示。

      圖4 系統(tǒng)架構(gòu)

      系統(tǒng)校正值寫入流程,如圖5所示。

      圖5 校正值寫入流程

      系統(tǒng)校正值讀取流程,如圖6所示。

      圖6 校正值讀取流程

      2.1 ISF Flash控制

      SPI_ACCESS原語用來連接FPGA應(yīng)用層和系統(tǒng)Flash。使用中,F(xiàn)PGA應(yīng)用層是主,系統(tǒng)Flash是從。該原語包括MISO、MOSI、CSB和CLK四個管腳。

      MISO:主入從出,串行數(shù)據(jù)從系統(tǒng)Flash存儲空間中輸出至FPGA應(yīng)用層邏輯;

      MOSI:主出從入,串行數(shù)據(jù)從FPGA應(yīng)用層邏輯中輸出至系統(tǒng)Flash存儲空間;

      CSB:系統(tǒng)Flash片選使能信號,低電平有效;

      CLK:系統(tǒng)Flash操作時鐘,由FPGA應(yīng)用層邏輯給出。

      SPI_ACCESS原語屬性定義包括以下內(nèi)容:

      (1)SIM_DVICE:用來定義目標芯片類型,type為String,本實現(xiàn)中賦值“3S1400AN”;

      (2)SIM_USE_ID:用來定義SPI存儲器安全寄存器中的編程用戶ID,type為16進制數(shù)據(jù),本實現(xiàn)中賦值“0XFF”;

      (3)SIM_MEM_FILE:用來指定存儲初始化值的文件,type為String,本實現(xiàn)中賦值“NONE”;

      (4)SIM_FACTORY_ID:用來指定安全寄存器中的用戶識別號,type為16進制數(shù)據(jù),本實現(xiàn)中賦值“0X00”;

      (5)SIM_DELAY_TYPE:用來指定仿真延時類型,type為String,本實現(xiàn)中賦值“SCALED”。

      2.2 ISF Flash地址分配策略

      XC3S1400AN內(nèi)部SPI FLASH基礎(chǔ)構(gòu)成是page。page是系統(tǒng)FPGA中的最小可擦除單元,每個page包含528個字節(jié),8個page可組成一個block,32個block組成一個sector。

      應(yīng)用層可針對page、block和sector單獨進行擦除操作,并且可對sector單獨進行鎖住和保護。內(nèi)部SPI Flash存儲結(jié)構(gòu)如圖7所示。

      圖7 內(nèi)部SPI Flash存儲結(jié)構(gòu)

      XC3S1400AN系列FPGA的默認尋址方式,如圖8所示[5],本文即采用這種默認地址分配模式。

      2.3 ISF Flash讀寄存器

      狀態(tài)寄存器讀取命令時序,如圖9所示[5]。

      圖8 XC3S1400AN FPGA默認尋址方式

      圖9 狀態(tài)寄存器讀取命令時序

      (1)在開始發(fā)送讀取命令前,CSB必須開始拉低,并在整個讀取過程中一直保持低電平;

      (2)讀取狀態(tài)寄存器命令為0XD7,并伴隨時鐘下降沿以二進制形式“11010111”傳至MOSI;

      (3)系統(tǒng)Flash伴隨時鐘上升沿捕捉傳來的數(shù)據(jù);

      (4)在狀態(tài)結(jié)果輸出之前,MISO一直保持高電平;

      (5)在讀取命令傳輸完畢后,系統(tǒng)存儲器伴隨時鐘下降沿將狀態(tài)寄存器內(nèi)的內(nèi)容一一輸出,高位在前,低位在后;

      (6)FPGA應(yīng)用層伴隨時鐘上升沿捕捉系統(tǒng)存儲器的狀態(tài)信息;

      (7)在系統(tǒng)存儲器狀態(tài)信息讀取完畢后,將CSB拉高,結(jié)束讀取過程。

      2.4 ISF Flash讀數(shù)據(jù)命令

      系統(tǒng)Flash讀取命令有多種讀取方式,包括快速讀取、自由讀取、頁緩存至Buffer讀取和Buffer讀取等。本應(yīng)用采取自由讀取,原因是快速讀取適合小數(shù)據(jù)量、自由讀?。蛔x取數(shù)據(jù)無延時,讀取時鐘可達33 MHz,滿足本系統(tǒng)的使用需求。

      讀取命令格式及要求如表1所示。

      表1 讀取命令格式及要求

      注意事項:

      (1)讀取輸出數(shù)據(jù)無延時;

      (2)當CSB保持低電平時,MISO數(shù)據(jù)隨時鐘下降沿串行輸出,高位先出,地址會自動增加,無需人為控制;

      (3)當CSB拉高時,結(jié)束數(shù)據(jù)讀取操作。

      讀取命令的Chipscope截圖,如圖10所示。

      2.5 ISF Flash寫數(shù)據(jù)命令

      系統(tǒng)Flash讀取命令有多種讀取方式,包括Buffer寫、頁擦除Buffer寫、頁不擦除Buffer寫、頁Buffer寫、頁Buffer比對和自動頁寫。本應(yīng)用采取頁Buffer寫,原因是頁Buffer寫是將Buffer寫和Buffer頁擦除合二為一,用一條指令就完成了兩個操作,減少了命令條數(shù),簡化了操作步驟,降低了出錯概率,提高了寫數(shù)據(jù)的效率。

      寫數(shù)命令格式及要求如表2所示。

      表2 寫數(shù)命令格式及要求

      寫數(shù)命令的Chipscope截圖,如圖11所示。

      圖11 寫數(shù)命令的Chipscope截圖

      2.6 ISF Flash擦除命令

      擦除有三種擦除模式:頁擦除、block擦除和sector擦除。為防止sector誤擦除和非授權(quán)的擦除,可實現(xiàn)sector保護和sector鎖住。

      頁擦除、block擦除和sector擦除命令格式及要求如表3所示。

      表3 擦除命令格式及要求

      擦除完畢后,相應(yīng)擦除存儲空間里的數(shù)據(jù)為0XFF。

      2.7 ISF Flash Sector保護命令

      Sector保護寄存器狀態(tài)讀?。合鄳?yīng)的命令控制字為0X32。

      Sector保護寄存器擦除:相應(yīng)的命令控制字為0X3D+0X2A+0X7F+0XCF。

      Sector保護寄存器擦除格式如表4所示。

      表4 Sector保護寄存器擦除格式

      擦除Sector保護寄存器后,Sector保護寄存器每個字節(jié)的值變?yōu)?XFF,代表所有的Sector均被保護。

      Sector保護寄存器寫入:相應(yīng)的命令控制字為0X3D+0X2A+0X7F+0XFC。

      Sector保護寄存器寫入格式如表5所示。

      表5 Sector保護寄存器寫入格式

      Sector保護寄存器讀出:相應(yīng)的命令控制字為0X32。

      Sector保護寄存器讀取格式如表6所示。

      表6 Sector保護寄存器讀取格式

      Sector保護寄存器使能:相應(yīng)的命令控制字為0X3D+0X2A+0X7F+0XA9。

      Sector保護寄存器寄存器使能格式如表7所示。

      表7 Sector保護寄存器使能格式

      Sector保護寄存器禁用:相應(yīng)的命令控制字為0X3D+0X2A+0X7F+0X9A。

      Sector保護寄存器禁用格式如表8所示。

      表8 Sector保護寄存器禁用格式

      2.8 參數(shù)配置軟件

      參數(shù)配置軟件布置于一臺普通PC中,通過串口與射頻控制模塊的FPGA相連,實現(xiàn)COM選擇、通道選擇、參數(shù)文件的讀取和存儲。參數(shù)配置軟件截圖如圖12所示。

      圖12 參數(shù)配置軟件截圖

      3 實現(xiàn)過程

      制備顯控小軟件一個,該軟件具備以下功能:能通過RS232協(xié)議與FPGA應(yīng)用層進行通信;可下發(fā)系統(tǒng)Flash擦除、寫入、回讀和sector保護功能等;可將要寫入的數(shù)據(jù)和地址一一對應(yīng)保存在文本文件中;待寫入完畢后,進行寫入數(shù)據(jù)回讀并一一比對,判定是否寫入成功。若寫入成功,則結(jié)束燒寫;失敗則再重寫,直到燒寫成功。

      系統(tǒng)FPGA應(yīng)用軟件一套,該軟件具備以下功能:能通過RS232協(xié)議與FPGA應(yīng)用層進行通信,能正確接收顯控下發(fā)的命令信息,執(zhí)行相應(yīng)的系統(tǒng)Flash擦除、寫入、回讀和sector保護等操作。在系統(tǒng)上電后,該系統(tǒng)運行后稍做延時,會執(zhí)行從Flash讀數(shù)據(jù)的操作,根據(jù)系統(tǒng)需要將讀取到的數(shù)據(jù)保存至雙口RAM,待程序需要該數(shù)據(jù)時會根據(jù)索引從相應(yīng)的RAM地址中讀取數(shù)據(jù)并使用,增加了系統(tǒng)應(yīng)用的靈活性。

      當系統(tǒng)程序控制DA發(fā)射射頻時,系統(tǒng)會根據(jù)發(fā)射頻率計算應(yīng)該取雙口RAM哪個地址中的矯正值。例如,發(fā)射頻率范圍為200~400 MHz,則200~201 MHz對應(yīng)的矯正值保存在第1個地址中,201~202 MHz對應(yīng)的矯正值保存在第2個地址中;以此類推,399~400 MHz對應(yīng)的矯正值保存在第200個地址中,400 MHz對應(yīng)的矯正值保存在第201個地址中。具體實現(xiàn)中,讀校正值地址可通過addr=(Freqence-200 000 000)/1 000 000計算,即對結(jié)果取整獲取所需的地址值;其他的讀操作邏輯控制相應(yīng)的給出,即可正確讀出校正值。然后,矯正值被提出并轉(zhuǎn)化為對應(yīng)頻率的功率補償,進而實現(xiàn)DA輸出幅度的平坦性。

      4 試驗驗證

      參數(shù)配置軟件寫入截圖,如圖13所示。

      參數(shù)配置軟件讀取截圖,如圖14所示。

      5 結(jié) 語

      本文設(shè)計并實現(xiàn)了一種基于FPGA片內(nèi)Flash進行數(shù)據(jù)加載和讀取的方法:以裝在普通PC中的參數(shù)配置軟件作為配置主控制器,通過串口對FPGA片內(nèi)的Flash進行控制,成功實現(xiàn)了對FPGA的數(shù)據(jù)動態(tài)加載和讀取。

      在應(yīng)用該系統(tǒng)前,需根據(jù)每個頻率測量求得一個校正值,并將校正值寫入系統(tǒng)應(yīng)用程序中。這樣做的缺點是:針對每臺設(shè)備校正值不同,需要重新修改源代碼中相應(yīng)的校正值,并對源代碼進行編譯燒寫。這樣不便于程序的版本控制,需對每臺設(shè)備準備一套與之對應(yīng)的版本程序,給設(shè)備后期維護帶來了較大不便,尤其當設(shè)備大批量生產(chǎn)時。

      圖13 寫入截圖

      圖14 讀取截圖

      應(yīng)用該系統(tǒng)后,程序版本只需要一個版本,矯正值會存入Flash中,并可以根據(jù)DA發(fā)射頻率將校正值讀取出使用。后期設(shè)備維修維護時只需讀出Flash中的校正值并保存至文本文件。硬件更換后,根據(jù)需要修改更換后硬件部分對應(yīng)的校正值,并再次保存歸檔。當新的矯正數(shù)據(jù)寫入完畢后,還可通過回讀命令自動進行校正值的回讀和比對,確保矯正值完全讀寫正確,提高了設(shè)備的穩(wěn)定性,簡化了操作的復雜性,節(jié)省了大量人力,尤其在設(shè)備大批量生產(chǎn)時。

      猜你喜歡
      應(yīng)用層寄存器命令
      只聽主人的命令
      Lite寄存器模型的設(shè)計與實現(xiàn)
      移防命令下達后
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      基于分級保護的OA系統(tǒng)應(yīng)用層訪問控制研究
      新一代雙向互動電力線通信技術(shù)的應(yīng)用層協(xié)議研究
      這是人民的命令
      物聯(lián)網(wǎng)技術(shù)在信息機房制冷系統(tǒng)中的應(yīng)用
      Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
      藍色命令
      蕉岭县| 上林县| 东方市| 汝阳县| 长阳| 保亭| 台江县| 四会市| 大宁县| 东阿县| 元阳县| 青海省| 内乡县| 鄯善县| 额尔古纳市| 梧州市| 伊通| 永城市| 英吉沙县| 昌图县| 云霄县| 杭锦后旗| 调兵山市| 金乡县| 珲春市| 泉州市| 奉新县| 商河县| 通许县| 十堰市| 吉安县| 安义县| 郓城县| 那坡县| 孝感市| 江西省| 沽源县| 墨脱县| 尚义县| 和林格尔县| 阜南县|