www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 工業(yè)控制 > 電子設計自動化

1.引言

  由于 FPGA 良好的可編程性和優(yōu)越的性能表現(xiàn),當前采用FPGA 芯片的嵌入式系統(tǒng)數(shù) 量呈現(xiàn)迅速增加的趨勢,特別是在需要進行大規(guī)模運算的通信領域。目前FPGA 配置數(shù)據(jù)一 般使用基于SRAM 的存儲方式,掉電后數(shù)據(jù)消失,每次上電后都要重新寫入。配置數(shù)據(jù)的 寫入方式有3 種,即使用JTAG 仿真器、使用專用芯片以及使用微處理器。JTAG 仿真器的 方式在調(diào)試的時候使用較多,能隨時修改,但缺點是FPGA 芯片必須與電腦主機連接,失去 了靈活性。使用專用芯片的方式可以將配置數(shù)據(jù)事先存儲在非易失性存儲介質(zhì)中,為大規(guī)模 升級提供了方便,但不利之處在于專用芯片往往價格較高,并且也必須采用特定的存儲介質(zhì), 提升了系統(tǒng)成本,而且沒有利用到板上的現(xiàn)有資源,需要為配置芯片設置出專用的空間,占 用了電路板上的空間資源。而第三種方式可以利用當前嵌入式系統(tǒng)中一般都存在的微處理 器,同時也可以自行選擇合適的存儲介質(zhì)。下面就這種配置方案進行說明。

  2. 系統(tǒng)介紹

  2.1 系統(tǒng)工作原理

  本配置方案中使用的微控制器是Philips 公司生產(chǎn)的ARM7 處理器LPC2468。FPGA 則 是Xilinx 公司的Virtex SX95T。存儲配置數(shù)據(jù)的介質(zhì)是成本較低而且使用廣泛的SD 卡。

  系統(tǒng)的工作原理是上電時微控制器LPC2468 從SD 卡中讀取FPGA 的配置文件,然后 通過其通用IO 管腳模擬FPGA 的某種配置模式的時序,將配置文件寫入到FPGA 的配置 RAM 中。Virtex 系列FPGA 有幾種不同的配置模式,每種配置模式使用到的管腳以及配置 信號的時序都是不同的, 因此對配置模式需要作出合適的選擇。

  2.2 Viretex 系列FPGA 的配置模式

  Viretex 系列FPGA 的配置模式是由上電時其專用配置管腳的狀態(tài)決定的,對應的關系 如下表所示:

因在系統(tǒng)中使用微處理器作為主控制器,因此FPGA 的模式需選擇Slave 方式,所以有 2 種模式可以選擇,即Slave SelectMap 和Slave Serial。這2 種模式的區(qū)別在與數(shù)據(jù)管腳的數(shù) 目不同,Slave Serial 模式只有1 個管腳用于數(shù)據(jù)傳輸,屬于串行傳輸,而Slave SelectMap 模式有8 個管腳用于數(shù)據(jù)傳輸,屬于并行傳輸。這2 種模式可以任意選擇,本文選擇的是 Slave SelectMap 模式。

  2.3 Slave SelectMap 配置模式

  Slave SelectMap 配置模式在管腳信號功能、配置流程、配置數(shù)據(jù)等方面有自己的特點, 在進行電路板設計以及程序編寫時需要注意。下面對其主要特點進行說明。

  2.3.1 Slave SelectMap 模式使用的管腳信號:

  SelectMap 模式下使用的FPGA 管腳為:

根據(jù)上表,可以將微控制器的通用IO 管腳與上述FPGA 管腳連接起來,連接電路圖如圖1 所示:


2.3.2 Slave SelectMap 模式的配置流程

  Slave SelectMap 模式下提供時鐘的是外部器件,本方案中的時鐘信號是CCLK 使用 ARM 芯片的通用IO 進行模擬。同時,該模式下數(shù)據(jù)管腳有8 個,因此在每個CCLK 的上 升沿,F(xiàn)PGA 可以讀入1 個字節(jié)的數(shù)據(jù)。需要注意的是這1 字節(jié)的最高位是D0,而不是一 般微處理器默認的D7,在電路板布線和編寫配置程序時應給予相應改變。

  配置過程的具體流程如圖2 所示。

接收完配置數(shù)據(jù)后,DONE 管腳會被拉高。但這并不是表示配置過程已經(jīng)結束,系統(tǒng)仍 需要時鐘來進行后續(xù)的上電啟動工作。為保證上電配置過程的正確進行,最好的辦法是將配 置文件中的所有數(shù)據(jù)寫入FPGA 中之后,然后繼續(xù)輸出CCLK 信號,直到DONE 管腳被拉 高。之后,再輸出8 個周期的CCLK,保證配置能正常完成。

  根據(jù)上述流程,配置程序的主要函數(shù)的偽碼如下。

  1.初始化函數(shù)SelectMAP_Init,在其它函數(shù)之前運行。

  SelectMAP_Init(){

  將ARM 通用IO 設置為對應的SelectMap 管腳信號;

  設置 PROGRAM#,CS#和WRITE#管腳為低電平;

  延時至少300ns;

  設置 PROGRAM#為高電平;

  循環(huán)檢查INIT#是否變?yōu)楦唠娖剑?/p>

  }

  2.發(fā)送數(shù)據(jù)的函數(shù)SendData_Byte,發(fā)送1 字節(jié)的數(shù)據(jù)。

  SendData(uint8 data){

  拉低CCLK;

  將 D0~D7 電平設置為與data 對應的狀態(tài);

  拉高 CCLK;

  }

  3.發(fā)送數(shù)據(jù)的函數(shù)SendData_Sector,發(fā)送SD 卡中1 個扇區(qū)的數(shù)據(jù)。

  void SendData_Sector(uint8 * data){

  聲明計數(shù)器,并將初始值設為0;

  調(diào)用 SendData_Byte 發(fā)送1 個字節(jié)的數(shù)據(jù),計數(shù)器加1;

  檢查 BUSY 管腳的狀態(tài),等待其變?yōu)榈碗娖剑?/p>

  檢查計數(shù)器是否到達規(guī)定的數(shù)據(jù)塊大小,達到時函數(shù)返回,未到達時繼續(xù)發(fā)送數(shù)據(jù);

  }

  2.3.3 配置文件的格式

  FPGA 支持將配置文件生成為幾種不同的格式,但在本方案中不是所有格式都可以使用 的。一般最常用的格式是.BIN 和.BIT 格式。由于.BIT 格式包含頭部開銷,會增加額外的處 理過程,因此本方案沒有支持.BIT 格式的數(shù)據(jù),僅推薦使用.BIN 格式。

  2.4 文件在SD 卡中的存儲

  發(fā)送數(shù)據(jù)前,需要先從SD 卡中讀取配置文件。所有文件在SD 卡中都是按照一定的格式來組織的,本方案默認文件采用FAT16 格式進行存儲。FAT16 格式下,SD 卡的結構如下圖所示[3]。

主引導記錄中最重要的參數(shù)是邏輯扇區(qū)的起始地址。獲得該參數(shù)后即可以讀取BIOS 參 數(shù)數(shù)據(jù)塊(BPB)。BPB 中存儲了扇區(qū)(Sector)、簇(Cluster)、文件分配表(FAT)的 大小,以及分區(qū)總扇區(qū)數(shù)等參數(shù),是文件進行操作時必不可少的。文件分配表則是指明了文 件存儲的位置,這些位置是以簇為單位的。每個簇包含的扇區(qū)數(shù)目在BPB 中說明。根文件 夾中存儲了各不同文件的文件名和起始簇以及文件大小等信息。

  2.5 配置文件的讀取和發(fā)送

  根據(jù)上述SD 卡存儲格式的說明,可以對存儲在其中的配置數(shù)據(jù)進行讀取并發(fā)送出去。在本方案中,數(shù)據(jù)的讀取和發(fā)送是同時進行的。

  在對 SD 卡進行讀取時,首先需要讀取主引導記錄(MBR),獲得邏輯扇區(qū)的位置,然 后根據(jù)該位置讀取BIOS 參數(shù)數(shù)據(jù)塊(BPB),得到文件分配表(FAT)的位置以及扇區(qū)大 小等參數(shù)。在讀取文件分配表之前,需要先讀取根文件夾來獲得文件的起始位置,然后再 通過文件分配表獲得后續(xù)數(shù)據(jù)的位置。

  得到文件的起始簇號之后,在文件分配表中讀取對應該起始簇的字節(jié),獲得文件存儲的 下一個簇的簇號,這樣可以連續(xù)的進行讀取。在讀取一個簇后,即將整簇的數(shù)據(jù)發(fā)送出去。 如果發(fā)現(xiàn)文件分配表中某一簇對應的數(shù)值是0xFFFF,則說明是文件最后一個簇,這時該簇 的數(shù)據(jù)可以不足一個整簇,需要對其中的數(shù)據(jù)進行取舍,以保證發(fā)送數(shù)據(jù)的正確性。

  對配置文件讀取和發(fā)送的函數(shù)偽碼如下所示。

  ReadSD_FAT16(){

  讀取物理第0 扇區(qū)內(nèi)容,即MBR,獲取邏輯0 扇區(qū)的位置;

  讀取邏輯0 扇區(qū)的內(nèi)容,獲取每扇區(qū)字節(jié)數(shù),每簇扇區(qū)數(shù),F(xiàn)AT 表占據(jù)的扇區(qū)數(shù)等參數(shù);

  讀取根文件夾的內(nèi)容,根據(jù)配置文件的文件名獲取其起始簇號和文件長度;

  將當前簇設置為起始簇;

  While(1){

  讀取FAT 中對應當前簇的內(nèi)容,獲得下一個簇的簇號;

  FAT 表中對應當前簇的內(nèi)容為0xFFFF 時,即說明當前簇是最后一個簇,計算該簇內(nèi)的有效數(shù)據(jù),并進行發(fā)送;

  讀取當前簇內(nèi)容,進行發(fā)送;

  當前簇指向下一個簇;

  }

  }

  3 結束語

  在當前FPGA 使用領域日趨廣泛的情況下,對現(xiàn)有的含有FPGA 的嵌入式產(chǎn)品進行升 級更新成為了一項比較繁瑣的工作,特別是在產(chǎn)品數(shù)量較多的情況下。本方案提出了采用 SD 卡存儲配置數(shù)據(jù)的配置方案,使用了目前嵌入式系統(tǒng)中常見的ARM 微處理器和SD 卡, 不僅降低了成本,而且利用了現(xiàn)有資源,節(jié)省了電路板布線布局的空間。最重要的是使升級 過程更加簡潔,在進行調(diào)試時也可以靈活使用。本文只給出了對Virtex FPGA 進行配置的情 況,該方案也可以適用于Spartan 系列FPGA。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉