一種寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法
【專利摘要】本發(fā)明公開了一種寬帶接入網(wǎng)的邏輯文件動(dòng)態(tài)加載方法,通過TCP協(xié)議實(shí)現(xiàn)FPGA邏輯文件動(dòng)態(tài)加載,在加載完成之后不需重啟系統(tǒng),并且在單板運(yùn)行過程中,任何時(shí)候均可以加載新版本的FPGA邏輯文件去替代當(dāng)前運(yùn)行的FPGA邏輯文件,這樣在保證了傳輸效率和可靠性的同時(shí)又提高了系統(tǒng)的靈活性;在實(shí)際運(yùn)行過程中,只需要將客戶端的連接IP地址設(shè)置為單板的IP地址,這樣又?jǐn)U大了應(yīng)用范圍,且簡(jiǎn)單易行符合當(dāng)前嵌入式系統(tǒng)發(fā)展的需要。
【專利說明】一種寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于嵌入式系統(tǒng)【技術(shù)領(lǐng)域】,更為具體地講,涉及一種寬帶接入網(wǎng)的邏輯文 件動(dòng)態(tài)加載方法。
【背景技術(shù)】
[0002] VxWorks是美國風(fēng)河公司開發(fā)的一套實(shí)時(shí)嵌入式操作系統(tǒng),因其優(yōu)良的性能而廣 泛的應(yīng)用在各個(gè)嵌入式設(shè)備上,尤其是無源光網(wǎng)絡(luò)PON(Passive Optical Network)、路由 器、交換機(jī)等網(wǎng)絡(luò)設(shè)備;TCP協(xié)議實(shí)現(xiàn)若干臺(tái)主機(jī)的相互通信,一種應(yīng)用程序訪問通信協(xié)議 的操作系統(tǒng)調(diào)用套接字;基于接入網(wǎng)的嵌入式在比較復(fù)雜的需求下,所需要加載的文件有 不同功能的多個(gè)版本文件需要對(duì)單板上芯片控制以保證整體運(yùn)行在特定的功能;在接入網(wǎng) 中,在處理不同的Ρ0Ν模式邏輯文件,需要不同功能的編譯文件加載到單板上運(yùn)行。接入網(wǎng) 中的無源光網(wǎng)絡(luò)Ρ0Ν是一種純介質(zhì)網(wǎng)絡(luò),避免了外部設(shè)備的電磁干擾和雷電影響,減少了 線路和外部設(shè)備的故障率。Ρ0Ν的業(yè)務(wù)透明性較好,原則上可適用于任何制式和速率信號(hào)。
[0003] 眾所周知,通常任何一款嵌入式系統(tǒng)編譯的邏輯文件都需要傳輸?shù)絾伟迳喜拍芸?制單板的正常工作。接入網(wǎng)應(yīng)用中也可能需要通過嵌入式控制具體的功能,在目前接入網(wǎng) 的嵌入式邏輯文件加載方法中,其一般加載都是基于串口和文件傳輸協(xié)議TFTP(Trivial File Transfer Protocol)傳輸?shù)絾伟迳稀J褂肨FTP與串口加載存在的缺點(diǎn):1、其一般是 在開啟單板時(shí)或者整個(gè)系統(tǒng)復(fù)位之后加載,相對(duì)于是一種靜態(tài)加載方式;2、其需要串口與 TFTP同時(shí)工作才能夠加載邏輯文件,即同時(shí)需要串口與網(wǎng)口都與單板鏈接,相對(duì)使用的范 圍比較狹隘;3、TFTP協(xié)議傳輸數(shù)據(jù)速率比較低,傳輸較大的邏輯文件時(shí)需要時(shí)間特別長(zhǎng); 4、TFTP協(xié)議傳輸相對(duì)于TCP協(xié)議可靠性更低,使得在傳輸過程中可能出現(xiàn)任何錯(cuò)誤,降低 了傳輸文件的可靠性;5、對(duì)于有多個(gè)版本需要加載的FPGA邏輯文件,其不能在運(yùn)行過程中 動(dòng)態(tài)加載,使得對(duì)于相對(duì)比較復(fù)雜的工程,其不能完成相對(duì)應(yīng)的功能,降低了系統(tǒng)可用性。
[0004] 在現(xiàn)有的技術(shù)中,嵌入式系統(tǒng)應(yīng)用程序動(dòng)態(tài)加載的方法,通過將應(yīng)用程序的 固件文件存入嵌入式設(shè)備自帶的外部存儲(chǔ)空間中,并設(shè)置操作系統(tǒng)和應(yīng)用程序間的函 數(shù)接口來進(jìn)行動(dòng)態(tài)加載[李敬來.嵌入式系統(tǒng)應(yīng)用程序動(dòng)態(tài)加載的方法:中國[P]. CN102541579A. 2012-07-04];-種嵌入式操作系統(tǒng)加載邏輯文件的方法和嵌入式系統(tǒng),將 邏輯文件添加到嵌入式操作系統(tǒng)自身的數(shù)據(jù)中,使嵌入式操作系統(tǒng)可以通過調(diào)用自身數(shù)據(jù) 來加載邏輯文件[楊霆,王偉,曾云剛.一種嵌入式操作系統(tǒng)加載邏輯文件的方法和嵌 入式系統(tǒng):中國[P].CN1900909. 2007-01-24]。在以上專利只能解決加載一種模式的邏輯 文件,在運(yùn)行過程中不能在線動(dòng)態(tài)加載,對(duì)于有多種模式需要變化的需求,其不能實(shí)現(xiàn)動(dòng)態(tài) 加載,其加載過程需要單板重啟,無疑增加了復(fù)雜性,并且在特定的環(huán)境不能實(shí)現(xiàn)特殊的功 能。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種寬帶接入網(wǎng)的邏輯文件動(dòng)態(tài)加 載方法,通過TCP協(xié)議實(shí)現(xiàn)FPGA邏輯文件動(dòng)態(tài)加載,這樣提高了應(yīng)用范圍,同時(shí)具有靈活性 高、傳輸時(shí)間快以及傳輸可靠的優(yōu)點(diǎn)。
[0006] 為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明一種寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法,其特 征在于,包括以下步驟:
[0007] (1)、編譯需要加載的FPGA邏輯文件
[0008] 在PC端,選擇對(duì)應(yīng)使用的FPGA芯片型號(hào),通過quartus II編譯需要加載的FPGA 邏輯文件,,將編譯后的FPGA邏輯文件存放在PC端的加載目錄下;
[0009] ⑵、運(yùn)行當(dāng)前版本的FPGA
[0010] 加載VxWorks系統(tǒng)文件到單板的CPU上,待VxWorks系統(tǒng)文件加載完成后,讀取PC 端加載目錄存放的默認(rèn)FPGA邏輯文件,將默認(rèn)版本的FPGA邏輯文件并加載到單板的CPU 上,并配置該默認(rèn)FPGA邏輯文件到FPGA中,使默認(rèn)版本的FPGA邏輯文件正常運(yùn)行;
[0011] (3)、更換默認(rèn)版本的FPGA邏輯文件
[0012] 將單板中CPU的TCP Socket服務(wù)器端的傳輸端口與PC端中客戶端的傳輸端口設(shè) 置相同,并將單板CPU中的TCP Socket服務(wù)器端和PC端中的客戶端同時(shí)開啟TCP Socket 服務(wù),并將PC端中客戶端的連接IP地址設(shè)置為單板的IP地址;
[0013] 選擇需要需動(dòng)態(tài)加載的FPGA邏輯文件,PC端中的客戶端從存放FPGA邏輯文件的 加載目錄下讀取該需動(dòng)態(tài)加載的FPGA邏輯文件,并用功能函數(shù)識(shí)別出文件大小信息,然后 組裝成數(shù)據(jù)幀傳送給單板中CPU的TCP Socket服務(wù)器端;
[0014] 單板中CPU的TCP Socket服務(wù)器端監(jiān)聽到發(fā)送來的數(shù)據(jù)幀后進(jìn)行接收,再根據(jù)功 能函數(shù)解析接收的數(shù)據(jù)幀獲取到該需動(dòng)態(tài)加載的FPGA邏輯文件的大小信息,根據(jù)該需動(dòng) 態(tài)加載的FPGA邏輯的文件信息向CPU申請(qǐng)分配動(dòng)態(tài)內(nèi)存,CPU進(jìn)行分配并記錄分配動(dòng)態(tài)內(nèi) 存的首地址;
[0015] PC端中的客戶端持續(xù)分組發(fā)送該需動(dòng)態(tài)加載FPGA邏輯文件內(nèi)容,單板中CPU的 TCP Socket服務(wù)器端每接收到一組從PC端中的客戶端發(fā)送來的該需動(dòng)態(tài)加載FPGA邏輯 文件內(nèi)容后,發(fā)送接收確認(rèn)信息給PC端中的客戶端,PC端中的客戶端接收到單板中CPU的 TCP Socket服務(wù)器端發(fā)送來的接收確認(rèn)信息后發(fā)送下一組FPGA邏輯文件內(nèi)容,否則將持 續(xù)發(fā)送當(dāng)前一組FPGA邏輯文件內(nèi)容數(shù),如果在一定的時(shí)間內(nèi)不能成功發(fā)送一組FPGA邏輯 文件內(nèi)容,則返回發(fā)送失敗信息給PC端中的客戶端;
[0016] 單板中CPU的TCP Socket服務(wù)器根據(jù)接收FPGA邏輯文件內(nèi)容的長(zhǎng)度不停偏移接 收的首地址,并存入單板中CPU的內(nèi)存中,待需動(dòng)態(tài)加載的FPGA邏輯文件全部傳送到單板 的CPU完成后,從分配的動(dòng)態(tài)內(nèi)存中拷貝FPGA邏輯文件內(nèi)容到CPU的flash中,作為新版本 的FPGA邏輯文件,并同時(shí)覆蓋舊版本的FPGA邏輯文件,待拷貝完成釋放申請(qǐng)的動(dòng)態(tài)內(nèi)存;
[0017] (4)、運(yùn)行新版本的FPGA邏輯文件;
[0018] 通過單板中CPU的控制命令,把CPU的flash中的新版本FPGA邏輯文件通過CPU、 FPGA連接的localbus傳送到FPGA芯片上,待傳輸完成后,配置新版本FPGA邏輯文件的時(shí) 鐘以及數(shù)據(jù)的輸入/輸出接口,使新版本FPGA邏輯文件在要求時(shí)鐘下運(yùn)行,然后控制整個(gè) VxWorks系統(tǒng)工作在新版本FPGA邏輯文件的模式下。
[0019] 進(jìn)一步地,所述的數(shù)據(jù)幀由幀頭和數(shù)據(jù)部分組成,而數(shù)據(jù)部分又由數(shù)據(jù)類型、數(shù)據(jù) 長(zhǎng)度、功能函數(shù)組成,其中,數(shù)據(jù)長(zhǎng)度用于申請(qǐng)動(dòng)態(tài)內(nèi)存,數(shù)據(jù)類型對(duì)應(yīng)解析接收的數(shù)據(jù)幀 調(diào)用的功能函數(shù)。
[0020] 所述的步驟(4)中,通過單板的CPU的控制命令將新版本FPGA邏輯文件傳送到 FPGA芯片上的過程為:通過片選方式將新版本FPGA邏輯文件傳送到FPGA芯片上;其中,新 版本FPGA邏輯文件的數(shù)據(jù)傳輸是由localbus數(shù)據(jù)線與localbus地址線完成,localbus數(shù) 據(jù)線用來傳送新版本FPGA邏輯文件對(duì)應(yīng)的二進(jìn)制數(shù)據(jù),localbus地址線用來指定傳送的 地址。
[0021] 本發(fā)明的發(fā)明目的是這樣實(shí)現(xiàn)的:
[0022] 本發(fā)明寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法,通過TCP協(xié)議實(shí)現(xiàn)FPGA邏輯文件 動(dòng)態(tài)加載,在加載完成之后不需重啟系統(tǒng),并且在單板運(yùn)行過程中,任何時(shí)候均可以加載新 版本的FPGA邏輯文件去替代當(dāng)前運(yùn)行的FPGA邏輯文件,這樣在保證了傳輸效率和可靠性 的同時(shí)又提高了系統(tǒng)的靈活性;在實(shí)際運(yùn)行過程中,只需要將客戶端的連接IP地址設(shè)置為 單板的IP地址,這樣又?jǐn)U大了應(yīng)用范圍,且簡(jiǎn)單易行符合當(dāng)前嵌入式系統(tǒng)發(fā)展的需要。
[0023] 同時(shí),本發(fā)明寬帶接入網(wǎng)的邏輯文件動(dòng)態(tài)加載方法還具有以下有益效果:
[0024] (1)、通過使用TCP協(xié)議實(shí)現(xiàn)FPGA邏輯文件動(dòng)態(tài)加載,保證了數(shù)據(jù)傳輸?shù)母咝院?可靠性;
[0025] (2)、對(duì)FPGA邏輯文件加載的前后,不要對(duì)系統(tǒng)進(jìn)行重啟,且能動(dòng)態(tài)加載多版本的 FPGA邏輯文件,這樣擴(kuò)大了應(yīng)用的范圍,同時(shí)保證了系統(tǒng)的靈活性;
[0026] (3)、本發(fā)明能夠兼容多版本的FPGA邏輯文件的加載,不要額外增加硬件開銷,又 具有低成本的特點(diǎn)。
【專利附圖】
【附圖說明】
[0027] 圖1是本發(fā)明寬帶接入網(wǎng)的邏輯文件動(dòng)態(tài)加載方法的原理圖;
[0028] 圖2是本發(fā)明寬帶接入網(wǎng)的邏輯文件動(dòng)態(tài)加載方法的流程圖;
[0029] 圖3是數(shù)據(jù)幀的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0030] 下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地 理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許 會(huì)淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
[0031] 實(shí)施例
[0032] 圖1是本發(fā)明寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法的原理圖。
[0033] 在本實(shí)施例中,如圖1所示,寬帶接入網(wǎng)的FPGA邏輯文件動(dòng)態(tài)加載時(shí),在PC端使 用的是windows系統(tǒng)作為客戶端,單板CPU使用VxWorks6. 8系統(tǒng),實(shí)現(xiàn)過程中使用C/C++ 語言與TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,并驗(yàn)證傳輸結(jié)果。在此,以版本2 (需要加載的)FPGA邏輯 文件代替版本1 (默認(rèn)版本)FPGA邏輯文件,所實(shí)施的過程,單板起始加載版本1FPGA邏輯 文件,在運(yùn)行過程中,根據(jù)需求需要加載版本2。
[0034] 本發(fā)明寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法,如圖2所示,包括以下步驟:
[0035] S1)、編譯需要加載的FPGA邏輯文件;
[0036] 通過quartus II編譯軟件編譯需要加載的版本1和版本2的FPGA邏輯文件,編 譯時(shí)需要正確選擇對(duì)應(yīng)使用的FPGA芯片型號(hào);編譯后的FPGA邏輯文件以二進(jìn)制數(shù)據(jù)組成, 由于不同的版本的FPGA邏輯文件所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)是不一樣的,因此,用不同的名字區(qū) 分不同版本的FPGA邏輯文件;
[0037] S2)、存放編譯后的FPGA邏輯文件;
[0038] 將編譯后的版本1和版本2的FPGA邏輯文件存放在PC端的加載目錄下;
[0039] S3)、運(yùn)行當(dāng)前版本的FPGA ;
[0040] 加載VxWorks系統(tǒng)文件到單板的CPU上,待VxWorks系統(tǒng)文件加載完成后,讀取PC 端存放FPGA邏輯文件的加載目錄,將版本1FPGA邏輯文件讀取并加載到單板的CPU上,并 配置版本1的FPGA邏輯文件到FPGA中,使版本1的FPGA邏輯文件正常運(yùn)行;
[0041] S4)、開啟 TCP Socket 服務(wù);
[0042] 將單板中CPU的TCP Socket服務(wù)器端的傳輸端口與PC端中客戶端的傳輸端口設(shè) 置相同,并將單板CPU中的TCP Socket服務(wù)器端和PC端中的客戶端同時(shí)開啟TCP Socket 服務(wù),并將PC端中客戶端的連接IP地址設(shè)置為單板的IP地址;
[0043] S5)、PC端發(fā)送需要加載的FPGA邏輯文件大小信息;
[0044] 選擇需要需動(dòng)態(tài)加載的FPGA邏輯文件,PC端中的客戶端從存放FPGA邏輯文件的 加載目錄,讀取版本2FPGA邏輯文件,并用功能函數(shù)識(shí)別出文件大小信息,并把版本2FPGA 邏輯文件大小信息封裝成數(shù)據(jù)幀傳送給單板中CPU的TCP Socket服務(wù)器端。
[0045] 其中,如圖3所示,數(shù)據(jù)幀由幀頭和數(shù)據(jù)部分組成,而數(shù)據(jù)部分又由數(shù)據(jù)類型、數(shù) 據(jù)長(zhǎng)度、功能函數(shù)組成,其中,數(shù)據(jù)長(zhǎng)度用于申請(qǐng)動(dòng)態(tài)內(nèi)存,數(shù)據(jù)類型對(duì)應(yīng)解析接收的數(shù)據(jù) 幀調(diào)用的功能函數(shù);
[0046] S6)、TCP Socket服務(wù)端接收PC端發(fā)送的FPGA邏輯文件大小信息并向CPU申請(qǐng) 分配動(dòng)態(tài)內(nèi)存;
[0047] TCP Socket服務(wù)器端監(jiān)聽到發(fā)送來的數(shù)據(jù)幀后進(jìn)行接收,再根據(jù)功能函數(shù)解析接 收的數(shù)據(jù)幀獲取到版本2FPGA邏輯文件的大小信息,并記錄下版本2FPGA邏輯文件的大小 信息,再根據(jù)版本2FPGA邏輯文件的大小信息向CPU申請(qǐng)分配動(dòng)態(tài)內(nèi)存,CPU進(jìn)行分配并記 錄分配動(dòng)態(tài)內(nèi)存的首地址;
[0048] S7)、TCP Socket服務(wù)器接收PC端發(fā)送的FPGA邏輯文件內(nèi)容;
[0049] PC端中的客戶端持續(xù)發(fā)送版本2FPGA邏輯文件內(nèi)容,TCP Socket服務(wù)器根據(jù)接收 FPGA邏輯文件內(nèi)容的長(zhǎng)度不停的偏移接收地址,由于TCP協(xié)議每次能傳輸1518字節(jié)數(shù)據(jù), 在此定義每組傳送1024字節(jié),每接收一組數(shù)據(jù)對(duì)應(yīng)的地址需要往后移1024字節(jié),準(zhǔn)備存放 下一組接收FPGA邏輯文件內(nèi)容。
[0050] 單板中CPU的TCP Socket服務(wù)器端每接收到一組從PC端中的客戶端發(fā)送來的該 需動(dòng)態(tài)加載FPGA邏輯文件內(nèi)容后,發(fā)送接收確認(rèn)信息給PC端中的客戶端,PC端中的客戶 端接收到單板中CPU的TCP Socket服務(wù)器端發(fā)送來的接收確認(rèn)信息后發(fā)送下一組FPGA邏 輯文件內(nèi)容,否則將持續(xù)發(fā)送當(dāng)前一組FPGA邏輯文件內(nèi)容數(shù),如果在一定的時(shí)間內(nèi)不能成 功發(fā)送一組FPGA邏輯文件內(nèi)容,則返回發(fā)送失敗信息給PC端中的客戶端。
[0051] S8)、存放接收的FPGA邏輯文件;
[0052] 待版本2FPGA邏輯文件全部傳送到單板的CPU完成后,從分配的動(dòng)態(tài)內(nèi)存中拷貝 版本2的FPGA邏輯文件內(nèi)容到CPU的flash中,這樣將版本2FPGA邏輯文件存放在CPU固 定地址的flash內(nèi)存中,并覆蓋版本1FPGA邏輯文件,待拷貝完成釋放申請(qǐng)的動(dòng)態(tài)內(nèi)存;
[0053] S9)、運(yùn)行當(dāng)前版本的FPGA邏輯文件;
[0054] 通過單板中CPU的控制命令,采用片選的方式把CPU的flash中版本2FPGA邏輯 文件通過CPU、FPGA連接的localbus傳送到FPGA芯片上,其中,F(xiàn)PGA邏輯文件的數(shù)據(jù)傳輸 是由localbus數(shù)據(jù)線與localbus地址線完成,localbus數(shù)據(jù)線用來傳送FPGA邏輯文件 對(duì)應(yīng)的二進(jìn)制數(shù)據(jù),localbus地址線用來指定傳送的地址;
[0055] 這樣使整個(gè)VxWorks系統(tǒng)工作在版本2FPGA邏輯文件模式下,待傳輸完成后,配置 版本2FPGA邏輯文件的時(shí)鐘以及數(shù)據(jù)的輸入/輸出接口,使版本2FPGA邏輯文件在要求時(shí) 鐘下運(yùn)行,然后控制整個(gè)VxWorks系統(tǒng)工作在版本2FPGA邏輯文件的模式下。
[0056] 盡管上面對(duì)本發(fā)明說明性的【具體實(shí)施方式】進(jìn)行了描述,以便于本【技術(shù)領(lǐng)域】的技術(shù) 人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于【具體實(shí)施方式】的范圍,對(duì)本【技術(shù)領(lǐng)域】的普通技 術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些 變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。
【權(quán)利要求】
1. 一種寬帶接入網(wǎng)中邏輯文件的動(dòng)態(tài)加載方法,其特征在于,包括以下步驟: (1) 、編譯需要加載的FPGA邏輯文件 在PC端,選擇對(duì)應(yīng)使用的FPGA芯片型號(hào),通過quartus II編譯需要加載的FPGA邏輯 文件,,將編譯后的FPGA邏輯文件存放在PC端的加載目錄下; (2) 、運(yùn)行當(dāng)前版本的FPGA 加載VxWorks文件到單板的CPU上,待VxWorks系統(tǒng)文件加載完成后,讀取PC端加載 目錄存放的默認(rèn)FPGA邏輯文件,將默認(rèn)版本的FPGA邏輯文件并加載到單板的CPU上,并配 置該默認(rèn)FPGA邏輯文件到FPGA中,使默認(rèn)版本的FPGA邏輯文件正常運(yùn)行; (3) 、更換默認(rèn)版本的FPGA邏輯文件 將單板中CPU的TCP Socket服務(wù)器端的傳輸端口與PC端中客戶端的傳輸端口設(shè)置相 同,并將單板(PU中的TCP Socket服務(wù)器端和PC端中的客戶端同時(shí)開啟TCP Socket服務(wù), 并將客戶端的連接IP地址設(shè)置為單板的IP地址; 選擇需要需動(dòng)態(tài)加載的FPGA邏輯文件,PC端中的客戶端從存放FPGA邏輯文件的加載 目錄下讀取該需動(dòng)態(tài)加載的FPGA邏輯文件,并用功能函數(shù)識(shí)別出文件大小信息,然后組裝 成數(shù)據(jù)幀傳送給單板中CPU的TCP Socket服務(wù)器端; 單板中CPU的TCP Socket服務(wù)器端監(jiān)聽到發(fā)送來的數(shù)據(jù)幀后進(jìn)行接收,再根據(jù)功能函 數(shù)解析接收的數(shù)據(jù)幀獲取到該需動(dòng)態(tài)加載的FPGA邏輯文件的大小信息,根據(jù)該需動(dòng)態(tài)加 載的FPGA邏輯的文件信息向CPU申請(qǐng)分配動(dòng)態(tài)內(nèi)存,CPU進(jìn)行分配并記錄分配動(dòng)態(tài)內(nèi)存的 首地址; PC端中的客戶端持續(xù)發(fā)送該需動(dòng)態(tài)加載FPGA邏輯文件內(nèi)容,單板中CPU的TCP Socket 服務(wù)器端每接收到一組從PC端中的客戶端發(fā)送來的該需動(dòng)態(tài)加載FPGA邏輯文件內(nèi)容后, 發(fā)送接收確認(rèn)信息給PC端中的客戶端,PC端中的客戶端接收到單板中CPU的TCP Socket 服務(wù)器端發(fā)送來的接收確認(rèn)信息后發(fā)送下一組FPGA邏輯文件內(nèi)容,否則將持續(xù)發(fā)送當(dāng)前 一組FPGA邏輯文件內(nèi)容數(shù),如果在一定的時(shí)間內(nèi)不能成功發(fā)送一組FPGA邏輯文件內(nèi)容,則 返回發(fā)送失敗信息給PC端中的客戶端; 單板中CPU的TCP Socket服務(wù)器根據(jù)接收FPGA邏輯文件內(nèi)容的長(zhǎng)度不停偏移接收 的首地址,并存入單板中CPU的內(nèi)存中,待需動(dòng)態(tài)加載的FPGA邏輯文件全部傳送到單板的 (PU完成后,從分配的動(dòng)態(tài)內(nèi)存中拷貝FPGA邏輯文件內(nèi)容到CPU的flash中,作為新版本的 FPGA邏輯文件,并同時(shí)覆蓋舊版本的FPGA邏輯文件,待拷貝完成釋放申請(qǐng)的動(dòng)態(tài)內(nèi)存; (4) 、運(yùn)行新版本的FPGA邏輯文件; 通過單板中CPU的控制命令,把CPU的flash中的新版本FPGA邏輯文件通過CPU、 FPGA連接的localbus傳送到FPGA芯片上,待傳輸完成后,配置新版本FPGA邏輯文件的時(shí) 鐘以及數(shù)據(jù)的輸入/輸出接口,使新版本FPGA邏輯文件在要求時(shí)鐘下運(yùn)行,然后控制整個(gè) VxWorks系統(tǒng)工作在新版本FPGA邏輯文件的模式下。
2. 根據(jù)權(quán)利要求1所述邏輯文件的動(dòng)態(tài)加載方法,其特征在于,所述的單板可以在運(yùn) 行狀態(tài)下動(dòng)態(tài)更換FPGA邏輯文件,且不需要對(duì)單板重啟。
3. 根據(jù)權(quán)利要求1所述邏輯文件的動(dòng)態(tài)加載方法,其特征在于,所述的數(shù)據(jù)幀由幀頭 和數(shù)據(jù)部分組成,而數(shù)據(jù)部分又由數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度、功能函數(shù)組成,其中,數(shù)據(jù)長(zhǎng)度用于 申請(qǐng)動(dòng)態(tài)內(nèi)存,數(shù)據(jù)類型對(duì)應(yīng)解析接收的數(shù)據(jù)幀調(diào)用的功能函數(shù)。
4.根據(jù)權(quán)利要求1所述的邏輯文件的動(dòng)態(tài)加載方法,其特征在于,所述的步驟(4)中, 通過過CPU端的控制命令將新版本FPGA邏輯文件傳送到FPGA芯片上的過程為:通過片選 方式將FPGA邏輯文件傳送到FPGA芯片上;其中,F(xiàn)PGA邏輯文件的數(shù)據(jù)傳輸是由localbus 數(shù)據(jù)線與localbus地址線完成,localbus數(shù)據(jù)線用來傳送FPGA邏輯文件對(duì)應(yīng)的二進(jìn)制數(shù) 據(jù),localbus地址線用來指定傳送的地址。
【文檔編號(hào)】H04L29/08GK104090792SQ201410314207
【公開日】2014年10月8日 申請(qǐng)日期:2014年7月3日 優(yōu)先權(quán)日:2014年7月3日
【發(fā)明者】張崇富, 劉載偉, 凌云, 肖能武, 邱昆 申請(qǐng)人:電子科技大學(xué)