專利名稱::Fpga控制設(shè)備的在線flash燒寫器的制作方法
技術(shù)領(lǐng)域:
:本實(shí)用新型屬于電子控制
技術(shù)領(lǐng)域:
,涉及一種FPGA控制設(shè)備的在線FLASH燒寫器。
背景技術(shù):
:在FPGA正常工作時(shí),配置數(shù)據(jù)存儲(chǔ)在SRAM單元中,這個(gè)SRAM單元也被稱為配置存儲(chǔ)器(ConfigurationRAM)。由于SRAM是易失性的存儲(chǔ)器,因此FPGA在上電之后,外部電路需要將配置數(shù)據(jù)重新載入到片內(nèi)的配置RAM中。在芯片配置完成后,內(nèi)部的寄存器以及1/0管腳必須進(jìn)行初始化。等初始化完成以后,芯片才會(huì)按照用戶設(shè)計(jì)的功能正常工作,因此通常都會(huì)給FPGA配置一個(gè)FLASH配置芯片,存放配置數(shù)據(jù)。在實(shí)際應(yīng)用中,F(xiàn)PGA的控制設(shè)備常需要對控制器的FPGA軟件進(jìn)行重新的刷新、診斷和更新。在以往的FPGA的控制設(shè)備需要借助于BDM進(jìn)行FLASH的燒寫,因此在布置的時(shí)候需要給控制器B匿接口預(yù)留較大的空間,對于布置十分緊湊的控制設(shè)備來說,這無疑增加了布置的難度;而且一旦控制器布置不當(dāng),將控制器從設(shè)備中拆卸下來進(jìn)行重新的燒寫,燒寫完成之后,再將控制器安裝上去,這樣對控制器軟件的更新非常的困難,對于一些設(shè)備來說,很難把焊接好的FLASH拔出來進(jìn)行燒寫。因此經(jīng)常為更新設(shè)備程序,要更新整個(gè)電路板。因此設(shè)計(jì)一個(gè)能在線燒寫FLASH的控制設(shè)備是至關(guān)重要的。
發(fā)明內(nèi)容本實(shí)用新型的目的是提供一種FPGA控制設(shè)備的在線FLASH燒寫器,解決了現(xiàn)有技術(shù)對控制器進(jìn)行重新燒寫非常困難的問題。本實(shí)用新型所采用的技術(shù)方案是,一種FPGA控制設(shè)備的在線FLASH燒寫器,包括計(jì)算機(jī)、USB數(shù)據(jù)控制板及FPGA用戶端,所述的計(jì)算機(jī)通過USB接口與USB數(shù)據(jù)控制板連接,USB數(shù)據(jù)控制板通過數(shù)據(jù)總線與FPGA用戶端連接,所述的計(jì)算機(jī)中置入FLASH燒寫控制軟件、EZ-USB通用驅(qū)動(dòng)程序和固件驅(qū)動(dòng)程序以及上位機(jī)控制軟件,實(shí)現(xiàn)硬件狀態(tài)檢測及硬件控制功能;所述的USB數(shù)據(jù)控制板中包括由USB控制器、數(shù)據(jù)接口、FPGA模塊、LVDS-A模塊依次連接組成的數(shù)據(jù)處理通道,和用于固件程序處理的GPIF模塊;所述的FPGA用戶端包括FLASH燒寫硬核組件、數(shù)據(jù)收發(fā)硬核組件和LVDS-B模塊,并預(yù)裝用戶自己的FPGA程序。本實(shí)用新型的在線FLASH燒寫器,其特征還在于所述的USB接口選用USB2.0設(shè)備。所述的數(shù)據(jù)總線選用96M的SPI總線。所述的LVDS-A模塊和LVDS-B模塊均選用96Mbps速度的LVDS接口。本實(shí)用新型的在線FLASH燒寫器利用SPI總線,借助于USB2.O通信接口實(shí)現(xiàn)了對FPGA控制設(shè)備的FLASH在線燒寫,解決了對控制器進(jìn)行重新燒寫的難題,明顯降低了硬件設(shè)計(jì)的難度,減少了控制器的體積。圖1是本實(shí)用新型裝置的連接框圖。圖中,l.計(jì)算機(jī),2.USB接口,3.USB控制器,4.數(shù)據(jù)接口,5.FPGA模塊,6.LVDS-A模塊,7.GPIF模塊,8.FLASH燒寫硬核組件,9.數(shù)據(jù)收發(fā)硬核組件,10.FPGA用戶端,11.數(shù)據(jù)總線,12.LVDS-B模塊,13.USB數(shù)據(jù)控制板。具體實(shí)施方式以下結(jié)合附圖和具體實(shí)施方式對本實(shí)用新型進(jìn)行詳細(xì)說明。如圖l,本實(shí)用新型裝置的結(jié)構(gòu)是,包括計(jì)算機(jī)1、USB數(shù)據(jù)控制板13、FPGA用戶端10連接組成,計(jì)算機(jī)1通過USB接口2與USB數(shù)據(jù)控制板13連接,USB接口2選用USB2.0設(shè)備,USB數(shù)據(jù)控制板13通過數(shù)據(jù)總線11與FPGA用戶端IO連接,數(shù)據(jù)總線11選用96M的SPI總線,在計(jì)算機(jī)1中置入FLASH燒寫控制軟件、EZ-USB通用驅(qū)動(dòng)程序和固件驅(qū)動(dòng)程序以及上位機(jī)控制軟件,完成硬件狀態(tài)檢測及硬件控制功能;USB數(shù)據(jù)控制板13中包括由USB控制器3、數(shù)據(jù)接口4、FPGA模塊5、LVDS-A模塊6依次連接組成的數(shù)據(jù)處理通道和用于固件程序處理的GPIF模塊7;FPGA用戶端10包括FLASH燒寫硬核組件8、數(shù)據(jù)收發(fā)硬核組件9和LVDS-B模塊12,并預(yù)裝用戶自己的FPGA程序。LVDS-A模塊6和LVDS-B模塊12均選用96Mbps速度的LVDS接口。USB數(shù)據(jù)控制板13采用USB2.0和GPIF進(jìn)行數(shù)據(jù)傳輸,并結(jié)合了96Mbps速度的LVDS接口,可以實(shí)現(xiàn)高速數(shù)據(jù)采集和控制及FLASH燒寫。USB數(shù)據(jù)控制板13的硬件采用USB接口供電,小巧靈活,便于攜帶。參照圖l,本實(shí)用新型整個(gè)裝置的硬件結(jié)構(gòu)分成3個(gè)層次計(jì)算機(jī)1所在的計(jì)算機(jī)管理層,USB數(shù)據(jù)控制板13所在的數(shù)據(jù)控制層,以及FPGA用戶端10所在的用戶FPGA層。計(jì)算機(jī)管理層主要負(fù)責(zé)界面管理,固件程序下載、USB通信過程等構(gòu)成。其中,界面管理模塊功能包括打開文件、擦除芯片、燒寫文件、校驗(yàn)、數(shù)據(jù)狀態(tài)檢測等,給FLASH燒寫器提供一個(gè)很好的交互平臺(tái)。固件下載主要功能是通常USB控制芯片的固件程序,被燒寫在ROM中,這種方式一旦想升級(jí)固件程序,擴(kuò)展系統(tǒng)功能,就很難實(shí)現(xiàn),USB數(shù)據(jù)控制板13的固件運(yùn)行程序通過USB接口2從主機(jī)下載到內(nèi)部RAM,這樣就明顯的方便了修改、調(diào)試和更新。之所以能下載代碼是因?yàn)樾酒簧想娡耆谟布献詣?dòng)完成枚舉過程,不需要Firmware。完成枚舉后便可作為一個(gè)USB設(shè)備(叫做缺省USB設(shè)備)與計(jì)算機(jī)通訊,此時(shí)即可進(jìn)行Firmware下載。下載完后,控制芯片內(nèi)核脫離RESET狀態(tài)開始執(zhí)行代碼。可以通過Firmware對USB設(shè)備重新配置,這個(gè)重新配置過程叫做再枚舉。USB通信過程主要完成當(dāng)USB設(shè)備插入計(jì)算機(jī)時(shí),計(jì)算機(jī)和USB設(shè)備之間產(chǎn)生一個(gè)枚舉過程。計(jì)算機(jī)檢測到有設(shè)備插入,自動(dòng)發(fā)出查詢請求;USB設(shè)備回應(yīng)這個(gè)請求,送出設(shè)備的VerdorID和ProductID;計(jì)算機(jī)根據(jù)這兩個(gè)ID裝載相應(yīng)的設(shè)備驅(qū)動(dòng)程序,完成枚舉過程。計(jì)算機(jī)與USB設(shè)備的數(shù)據(jù)通信全部靠端點(diǎn)進(jìn)行通信的,端點(diǎn)O,是系統(tǒng)端點(diǎn),主要進(jìn)行系統(tǒng)枚舉,以及控制系統(tǒng)的下發(fā),端點(diǎn)2和4是數(shù)據(jù)輸出端點(diǎn),端點(diǎn)6和8作為數(shù)據(jù)輸入端點(diǎn),根據(jù)本控制裝置的通信特點(diǎn),主要包括三個(gè)方面一是讀取數(shù)據(jù);二是發(fā)生數(shù)據(jù);三是發(fā)生控制指令。直接使用缺省配置中的3個(gè)Endpoint。端點(diǎn)0:主要完成控制指令的下發(fā)和系統(tǒng)狀態(tài)讀取,包括輸入和輸出切換,系統(tǒng)復(fù)位,緩沖區(qū)復(fù)位,以及讀取各個(gè)數(shù)據(jù)緩沖區(qū)的狀態(tài)。端點(diǎn)2:主要負(fù)責(zé)數(shù)據(jù)的輸出,端點(diǎn)6:讀取外面采集的數(shù)據(jù),目前端點(diǎn)4和8系統(tǒng)沒有使用,為以后的高速數(shù)據(jù)采集,留有專門的數(shù)據(jù)收發(fā)通道。USB數(shù)據(jù)控制板13是整個(gè)裝置數(shù)據(jù)轉(zhuǎn)發(fā)的核心,它主要作用是負(fù)責(zé)協(xié)議傳輸,通過USB與計(jì)算機(jī)管理層進(jìn)行數(shù)據(jù)交換,通過SPI與用戶FPGA層進(jìn)行數(shù)據(jù)傳輸。USB數(shù)據(jù)控制板13和計(jì)算機(jī)管理層進(jìn)行數(shù)據(jù)交互的通信方式異步,全雙工,主從應(yīng)答式;包大小固定包長512字節(jié);傳輸速率480Mbps;USB字段長度4個(gè)字節(jié);每次傳輸包含字段數(shù)128個(gè)。在FLASH模式下,如果處于設(shè)置地址低位地址命令下的時(shí)候,USB字段數(shù)據(jù)結(jié)構(gòu)中的高位和低位數(shù)據(jù),組合為1個(gè)16位地址,送給FLASH的A0-A15,如果處于高位地址模式下的時(shí)候,USB字段數(shù)據(jù)結(jié)構(gòu)中的高位和低位數(shù)據(jù),組合為1個(gè)16位數(shù)值,送給高位地址的中,A16-A24,以及FLASH的控制總線Vopen,nCEO,nCEl,nCE2,nCE3,nByte,nRP。這樣就為了FLASH所有控制總線對于計(jì)算機(jī)來說,都是開放的,便于兼容不同種類的FLASH。在數(shù)據(jù)收發(fā)模式下,通過命令字D4和D5組合,以及16位數(shù)據(jù),實(shí)現(xiàn)32位的數(shù)據(jù)收發(fā)。用戶FPGA層主要是嫁接用戶FPGA用戶端10內(nèi)部的一個(gè)程序,主要負(fù)責(zé)和USB數(shù)據(jù)控制通過LVDS進(jìn)行數(shù)據(jù)交互。交互協(xié)議包大小8位、16位、24位、32位;傳輸速率96Mbps;常用包大小24位。下面結(jié)合表1,說明具體協(xié)議通過LVDS實(shí)現(xiàn)方式,整個(gè)數(shù)據(jù)傳輸最小字段是4個(gè)字節(jié),USB每個(gè)數(shù)據(jù)包固定長度是512個(gè)字節(jié),這樣每個(gè)數(shù)據(jù)分為128個(gè)數(shù)據(jù)字段,提高通信效率,LVDS字段表示第一個(gè)字節(jié)是指令包,具體描述如表2,當(dāng)對FLASH操作的時(shí)候,通常過程需要設(shè)置地址,然后送數(shù)據(jù),因此對表2指令包分析可以看出,寫FLASH和讀FLASH,以及LVDS數(shù)據(jù)長度,可以通過這個(gè)指令包進(jìn)行完成。字段第2和第3個(gè)字節(jié)是個(gè)數(shù)據(jù)自己,表示根據(jù)命令包,所產(chǎn)生命令不同,功能也不一樣,當(dāng)設(shè)置地址的時(shí)候,它表示的是高位和低位地址,當(dāng)是讀寫數(shù)據(jù)的時(shí)候,它表示的是16位數(shù)據(jù)。表3為FLASH模式下地址定義,通過以上的的過程,可以完成對FLASH進(jìn)行燒寫和讀取。表1通過LVDS的字段格式<table>tableseeoriginaldocumentpage5</column></row><table>表2數(shù)據(jù)通過LVDS傳輸過禾<table>tableseeoriginaldocumentpage5</column></row><table><table>tableseeoriginaldocumentpage5</column></row><table>表3FLASH模式下地址定義<table>tableseeoriginaldocumentpage6</column></row><table>本實(shí)用新型的FPGA控制設(shè)備的在線FLASH燒寫器,利用96M的SPI總線,借助于USB2.0通信接口實(shí)現(xiàn)對FPGA控制設(shè)備的FLASH進(jìn)行在線燒寫,由于使用SPI總線進(jìn)行通訊的控制設(shè)備很多,這樣使用SPI接口進(jìn)行FLASH的燒寫在控制器的硬件設(shè)計(jì)上不需要增加什么新的功能接口,這樣在硬件初期設(shè)計(jì)的時(shí)候,就省掉B匿接口,降低了硬件設(shè)計(jì)的難度,減少了控制器的體積。綜上所述,本實(shí)用新型的FPGA控制設(shè)備的在線FLASH燒寫器,用于對安裝在現(xiàn)有的硬件系統(tǒng)中的FLASH進(jìn)行在線燒寫,并且能對32路的硬件狀態(tài)進(jìn)行在線監(jiān)測,提供了32路的硬件系統(tǒng)的開關(guān)量輸出控制、監(jiān)測和控制點(diǎn)數(shù)量,可以隨著硬件的系統(tǒng)需求,靈活變更。權(quán)利要求一種FPGA控制設(shè)備的在線FLASH燒寫器,其特征在于包括計(jì)算機(jī)(1)、USB數(shù)據(jù)控制板(13)及FPGA用戶端(10),所述的計(jì)算機(jī)(1)通過USB接口(2)與USB數(shù)據(jù)控制板(13)連接,USB數(shù)據(jù)控制板(13)通過數(shù)據(jù)總線(11)與FPGA用戶端(10)連接,所述的計(jì)算機(jī)(1)中置入FLASH燒寫控制軟件、EZ-USB通用驅(qū)動(dòng)程序和固件驅(qū)動(dòng)程序以及上位機(jī)控制軟件,實(shí)現(xiàn)硬件狀態(tài)檢測及硬件控制功能;所述的USB數(shù)據(jù)控制板(13)中包括由USB控制器(3)、數(shù)據(jù)接口(4)、FPGA模塊(5)、LVDS-A模塊(6)依次連接組成的數(shù)據(jù)處理通道,和用于固件程序處理的GPIF模塊(7);所述的FPGA用戶端(10)包括FLASH燒寫硬核組件(8)、數(shù)據(jù)收發(fā)硬核組件(9)和LVDS-B模塊(12),并預(yù)裝用戶自己的FPGA程序。2.根據(jù)權(quán)利要求1所述的在線FLASH燒寫器,其特征在于所述的USB接口(2)選用USB2.0設(shè)備。3.根據(jù)權(quán)利要求1所述的在線FLASH燒寫器,其特征在于所述的數(shù)據(jù)總線(11)選用96M的SPI總線。4.根據(jù)權(quán)利要求1所述的在線FLASH燒寫器,其特征在于所述的LVDS-A模塊(6)和LVDS-B模塊(12)均選用96Mbps速度的LVDS接口。專利摘要本實(shí)用新型公開了一種FPGA控制設(shè)備的在線FLASH燒寫器,包括計(jì)算機(jī)、USB數(shù)據(jù)控制板及FPGA用戶端,所述的計(jì)算機(jī)通過USB接口與USB數(shù)據(jù)控制板連接,USB數(shù)據(jù)控制板通過數(shù)據(jù)總線與FPGA用戶端連接,所述的計(jì)算機(jī)中置入FLASH燒寫控制軟件、EZ-USB通用驅(qū)動(dòng)程序和固件驅(qū)動(dòng)程序以及上位機(jī)控制軟件,實(shí)現(xiàn)硬件狀態(tài)檢測及硬件控制功能;所述的USB數(shù)據(jù)控制板中包括由USB控制器、數(shù)據(jù)接口、FPGA模塊、LVDS-A模塊依次連接組成的數(shù)據(jù)處理通道,和用于固件程序處理的GPIF模塊;所述的FPGA用戶端包括FLASH燒寫硬核組件、數(shù)據(jù)收發(fā)硬核組件和LVDS-B模塊,并預(yù)裝用戶自己的FPGA程序。本實(shí)用新型的在線FLASH燒寫器降低了硬件設(shè)計(jì)的難度,減少了控制器的體積。文檔編號(hào)G06F13/10GK201514768SQ20092003511公開日2010年6月23日申請日期2009年10月20日優(yōu)先權(quán)日2009年10月20日發(fā)明者劉青申請人:西安瑞日電子發(fā)展有限公司