两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種提高嵌入式數(shù)據(jù)傳輸系統(tǒng)傳輸速率的方法及系統(tǒng)的制作方法

文檔序號:7734672閱讀:190來源:國知局
專利名稱:一種提高嵌入式數(shù)據(jù)傳輸系統(tǒng)傳輸速率的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)采集與傳輸領(lǐng)域,特別涉及一種基于嵌入式的數(shù)據(jù)采集與傳輸系統(tǒng)速率的優(yōu)化方法,具體涉及一種提高嵌入式數(shù)據(jù)傳輸系統(tǒng)傳輸速率的方法及系統(tǒng)。
背景技術(shù)
嵌入式系統(tǒng)以其結(jié)構(gòu)靈活,專用性強等特點,在軍事、航空、航天、工業(yè)控制、儀器儀表、汽車電子、通信和家用消費等領(lǐng)域發(fā)揮著重大的作用。特別是在高速數(shù)據(jù)采集與傳輸應(yīng)用場合,嵌入式系統(tǒng)更是扮演著無可替代的角色。嵌入式數(shù)據(jù)傳輸系統(tǒng)經(jīng)常采用以太網(wǎng)的方式進(jìn)行數(shù)據(jù)傳輸,一方面是由于以太網(wǎng)的通用性好、兼容性強、傳輸距離遠(yuǎn)、速度快等特點,另一方面借助于嵌入式操作系統(tǒng)自帶的強大TCP/IP協(xié)議棧的支持,采用以太網(wǎng)方式可以減少系統(tǒng)開發(fā)的工作量。如圖1所示,該圖為現(xiàn)有技術(shù)的嵌入式數(shù)據(jù)傳輸系統(tǒng),由物理層接口模塊,F(xiàn)PGA接口模塊,處理器控制模塊和以太網(wǎng)接口模塊組成。物理層接口模塊接收待傳輸?shù)臄?shù)據(jù)并進(jìn)行相應(yīng)的處理。處理器不直接讀取物理層接口模塊的數(shù)據(jù),而是通過FPGA接口模塊先將數(shù)據(jù)緩存在高速的存儲器中,再從存儲器中讀取數(shù)據(jù)。處理器主要實現(xiàn)系統(tǒng)控制、人機交互、 以太網(wǎng)模塊的控制等任務(wù)。這樣的系統(tǒng)中,F(xiàn)PGA和以太網(wǎng)的網(wǎng)卡芯片共享處理器數(shù)據(jù)總線, FPGA只負(fù)責(zé)數(shù)據(jù)的緩存和通知處理器的任務(wù),以太網(wǎng)網(wǎng)卡芯片只受處理器的控制。處理器上運行嵌入式操作系統(tǒng),其集成了強大的TCP/IP協(xié)議棧,并且自帶多種網(wǎng)卡芯片的設(shè)備驅(qū)動程序。通過對上述系統(tǒng)數(shù)據(jù)傳輸流的分析可知,待發(fā)送的數(shù)據(jù)至少經(jīng)過了三次復(fù)制操作,第一次是從FPGA復(fù)制到處理器,第二次是從用戶數(shù)據(jù)區(qū)復(fù)制到網(wǎng)絡(luò)緩沖區(qū),第三次是從網(wǎng)絡(luò)緩沖區(qū)復(fù)制到網(wǎng)卡。在這種嵌入式數(shù)據(jù)傳輸系統(tǒng)中,限制數(shù)據(jù)傳輸速度的因素一是處理器頻率。更高頻率的處理器處理數(shù)據(jù)包的能力會對網(wǎng)絡(luò)傳輸性能有較大的提升;二是 TCP/IP協(xié)議棧的性能。Linux的TCP/IP協(xié)議棧性能并沒有針對特定的嵌入式處理器進(jìn)行過優(yōu)化。這樣大量的時間就浪費在數(shù)據(jù)的多次復(fù)制及協(xié)議棧對數(shù)據(jù)的層層處理操作上,極大地影響了整個系統(tǒng)的傳輸速率。雖然提高處理器的主頻有利于速度的改善,但是提高處理器的頻率一方面增加了系統(tǒng)的成本,另一方面增加了系統(tǒng)的功耗,同時也增加了系統(tǒng)制作難度。一種改進(jìn)的方法是將網(wǎng)卡的控制權(quán)直接交給FPGA,將數(shù)據(jù)直接從FPGA復(fù)制到網(wǎng)卡,這樣減少了兩次數(shù)據(jù)復(fù)制操作,同時FPGA具有并行執(zhí)行的優(yōu)勢,數(shù)據(jù)傳輸?shù)乃俣纫部梢愿?。這樣雖然可以增加發(fā)送數(shù)據(jù)的速度,但是也給系統(tǒng)開發(fā)增加了很大的工作量首先是在FPGA內(nèi)部實現(xiàn)TCP/IP協(xié)議棧需要投入極大的研發(fā)精力;再者由于處理器失去了對網(wǎng)卡的控制之后,不能方便地和上位機進(jìn)行命令交互,這樣也增加了系統(tǒng)的控制難度。

發(fā)明內(nèi)容
本發(fā)明的目的在于,為克服待發(fā)送的數(shù)據(jù)經(jīng)過了多次復(fù)制操作造成的大量時間浪費及在處理器中采用TCP/IP協(xié)議棧對數(shù)據(jù)的層層處理操作也極大地影響了整個系統(tǒng)的傳輸速率,本發(fā)明提供一種提高嵌入式系統(tǒng)數(shù)據(jù)傳輸速率的方法及系統(tǒng)。為實現(xiàn)上述目的,本發(fā)明提供一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng),該系統(tǒng)包含F(xiàn)PGA模塊、網(wǎng)卡芯片和處理器,其特征在于,所述網(wǎng)卡芯片的總線與所述處理器的總線分別連到所述FPGA的若干輸入輸出接口上,用于實現(xiàn)處理器與FPGA協(xié)同控制網(wǎng)卡芯片; 所述處理器的通用輸入輸出接口引腳與所述FPGA的輸入輸出口相連接,實現(xiàn)所述處理器可實現(xiàn)何時把所述網(wǎng)卡芯片的控制權(quán)交給所述FPGA進(jìn)行控制;其中,所述總線包含數(shù)據(jù)總線、地址總線和控制中線;所述處理器采用TCP/IP協(xié)議。上述技術(shù)方案中,所述網(wǎng)卡芯片與所述處理器的同步時鐘均連到所述FPGA模塊上,用于實現(xiàn)FPGA芯片和網(wǎng)卡芯片的同步數(shù)據(jù)傳輸。所述FPGA芯片還包含一個RAM,用于存放所述FPGA接收的某一長度的數(shù)據(jù)。
所述處理器進(jìn)一步包含如下模塊第一判斷模塊,當(dāng)從用戶區(qū)復(fù)制數(shù)據(jù)到TCP/IP協(xié)議棧緩存區(qū)時首先判斷待發(fā)送數(shù)據(jù)的前若干個字節(jié)是否為上層應(yīng)用程序所指定的值。第一發(fā)送模塊,如果第一判斷模塊判斷待發(fā)送數(shù)據(jù)的前若干個字節(jié)是上層應(yīng)用程序所指定的值時,則只需復(fù)制所屬若干個字節(jié)到協(xié)議棧發(fā)送緩沖區(qū)中。第二判斷模塊,用于當(dāng)從所述TCP/IP協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片中時,先判斷數(shù)據(jù)的前兩個字節(jié)是否為應(yīng)用程序指定的值。包頭寫入模塊,當(dāng)?shù)诙袛嗄K判斷數(shù)據(jù)的前兩個字節(jié)是應(yīng)用程序指定的值時, 則只將包頭寫入網(wǎng)卡芯片??刂茩?quán)設(shè)置模塊,通過其中一個GPIO引腳通知FPGA從RAM中復(fù)制指定長度的數(shù)據(jù)到網(wǎng)卡芯片中,F(xiàn)PGA完成復(fù)制數(shù)據(jù)之后首先釋放對網(wǎng)卡芯片總線的控制,最后通過另一個GPIO引腳通知處理器已交回控制權(quán),完成一次數(shù)據(jù)的發(fā)送?;谏鲜鱿到y(tǒng),本發(fā)明還一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的方法,該方法基于權(quán)利要求1所述的系統(tǒng),所述的方法包含如下步驟步驟1,F(xiàn)PGA存儲待發(fā)送數(shù)據(jù),所述FPGA模塊先將待傳輸?shù)臄?shù)據(jù)進(jìn)行緩存,當(dāng)數(shù)據(jù)存滿一定數(shù)量之后,所述FPGA模塊通知所述處理器取走若干字節(jié)的數(shù)據(jù)。步驟2,添加包頭發(fā)送數(shù)據(jù)的步驟,所述處理器依據(jù)讀入的若干數(shù)據(jù)判斷是否為待傳輸?shù)臄?shù)據(jù),并由TCP/IP協(xié)議棧對待傳輸?shù)臄?shù)據(jù)添加包頭。步驟3,向網(wǎng)卡發(fā)送待傳輸數(shù)據(jù)步驟,所述處理器控制所述FPGA將添加包頭信息的待傳輸數(shù)據(jù)包寫入網(wǎng)卡,完成數(shù)據(jù)的發(fā)送。 上述技術(shù)方案中,所述FPGA查詢處理器GPIO 口以取得網(wǎng)卡控制權(quán),然后將數(shù)據(jù)直接寫入網(wǎng)卡。所述步驟2進(jìn)一步包含如下步驟在從用戶區(qū)復(fù)制數(shù)據(jù)到協(xié)議棧緩存區(qū)的模塊內(nèi)部首先判斷待發(fā)送數(shù)據(jù)的前若干個字節(jié)是否為上層應(yīng)用程序所指定的值,如果是則只需復(fù)制這若干個字節(jié)到協(xié)議棧發(fā)送緩沖區(qū)中;在網(wǎng)卡驅(qū)動模塊中從協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片的子模塊中,所述處理器向所述網(wǎng)卡芯片寫入數(shù)據(jù)時,先判斷數(shù)據(jù)的前若干個字節(jié)是否為應(yīng)用程序指定的值,如果是則只將包頭寫入網(wǎng)卡芯片,然后通過一個GPIO引腳通知FPGA從RAM中復(fù)制指定長度的數(shù)據(jù)到網(wǎng)卡芯片中,F(xiàn)PGA完成復(fù)制數(shù)據(jù)之后首先釋放對網(wǎng)卡芯片總線的控制,然后通過另一個GPIO引腳通知處理器已交回控制權(quán),完成一次數(shù)據(jù)的發(fā)送。本發(fā)明優(yōu)點在于,既充分利用了 Iinux操作系統(tǒng)的TCP/IP協(xié)議棧,又發(fā)揮了 FPGA 并行處理(并行處理是針對數(shù)據(jù)拷貝來講,如果處理器將數(shù)據(jù)從內(nèi)存拷貝到網(wǎng)卡的話,是先讀,然后寫,這兩個步驟不能同時進(jìn)行;但是用FPGA實現(xiàn)這個拷貝過程的話,就可以同時進(jìn)行了)的優(yōu)勢。


圖1是現(xiàn)有技術(shù)的嵌入式數(shù)據(jù)傳輸系統(tǒng)架構(gòu);圖2-a是現(xiàn)有技術(shù)的TCP/IP協(xié)議數(shù)據(jù)發(fā)送流程;圖2-b是本發(fā)明的FPGA和處理器分時控制所述網(wǎng)卡芯片的流程圖;圖3是本發(fā)明實施例中采用Iinux操作系統(tǒng)的TCP/IP協(xié)議棧函數(shù)調(diào)用關(guān)系;圖4是本發(fā)明的嵌入式數(shù)據(jù)傳輸系統(tǒng)架構(gòu)。
具體實施例方式下面結(jié)合附圖和具體實施方式
對本發(fā)明進(jìn)行說明。本發(fā)明提供一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng),該系統(tǒng)包含F(xiàn)PGA模塊、網(wǎng)卡芯片和處理器,其特征在于,所述的網(wǎng)卡芯片的總線連到FPGA上,所述的處理器的總線也連到FPGA模塊上,同時由處理器來控制何時把網(wǎng)卡芯片的控制權(quán)交給FPGA模塊并采用所述的處理器的兩個GPIO引腳實現(xiàn)控制。所述的網(wǎng)卡芯片與所述的處理器的同步時鐘也連到FPGA模塊上,用于實現(xiàn)FPGA芯片和網(wǎng)卡芯片的同步數(shù)據(jù)傳輸。本發(fā)明還提供一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的方法,該方法采用的網(wǎng)卡芯片的總線連到FPGA模塊上且處理器的總線也連到FPGA模塊上,同時由處理器來控制何時把網(wǎng)卡芯片的控制權(quán)交給FPGA模塊并采用所述的處理器的兩個GPIO引腳實現(xiàn)控制,所述的方法包含如下步驟先將待傳輸?shù)臄?shù)據(jù)通過FPGA模塊緩存到存儲器中,當(dāng)數(shù)據(jù)存滿一定數(shù)量之后, FPGA模塊通過一個GPIO 口通知處理器數(shù)據(jù)已經(jīng)準(zhǔn)備好;處理器收到FPGA的請求之后,將由TCP/IP協(xié)議棧對數(shù)據(jù)添加的包頭寫入網(wǎng)卡,最后讓出網(wǎng)卡控制權(quán),由FPGA將數(shù)據(jù)直接寫入網(wǎng)卡,完成數(shù)據(jù)的發(fā)送。所述的TCP/IP協(xié)議棧內(nèi)核源代碼中從用戶區(qū)復(fù)制數(shù)據(jù)到協(xié)議棧緩存區(qū)的函數(shù), 另一個是網(wǎng)卡驅(qū)動程序中從協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片的函數(shù),用于減少數(shù)據(jù)發(fā)送過程中多余的拷貝過程,在網(wǎng)卡驅(qū)動函數(shù)里實現(xiàn)了包頭和數(shù)據(jù)的分開寫入,這是實現(xiàn)處理器和FPGA協(xié)同工作的基礎(chǔ)。本發(fā)明克服了 ARM處理器由于主頻和帶寬的限制而不能完全發(fā)揮千兆網(wǎng)卡性能的問題,提出了由處理器和FPGA協(xié)同控制千兆網(wǎng)卡的方案,并基于該方案對系統(tǒng)硬件及 Linux操作系統(tǒng)的TCP/IP協(xié)議棧進(jìn)行優(yōu)化。上述嵌入式數(shù)據(jù)傳輸系統(tǒng)先將數(shù)據(jù)通過FPGA模塊緩存到存儲器中,當(dāng)數(shù)據(jù)存滿一定數(shù)量之后,F(xiàn)PGA通知處理器取走數(shù)據(jù)。處理器將數(shù)據(jù)讀入內(nèi)存之后,由TCP/IP協(xié)議棧對數(shù)據(jù)添加包頭,最后將數(shù)據(jù)包寫入網(wǎng)卡,完成數(shù)據(jù)的發(fā)送,如圖2-a所示。
如圖2-b所示,該圖為本發(fā)明的FPGA和處理器分時控制所述網(wǎng)卡芯片的流程圖; 所述FPGA和處理器分時控制所述網(wǎng)卡芯片的步驟為先將待傳輸?shù)臄?shù)據(jù)通過FPGA模塊緩存到存儲器中,當(dāng)數(shù)據(jù)存滿一定數(shù)量之后,F(xiàn)PGA模塊通過一個GPIO 口向處理器申請網(wǎng)卡的控制權(quán);處理器收到FPGA的請求之后,將由TCP/IP協(xié)議棧對數(shù)據(jù)添加的包頭寫入網(wǎng)卡,最后讓出網(wǎng)卡控制權(quán),由FPGA將數(shù)據(jù)直接寫入網(wǎng)卡,完成數(shù)據(jù)的發(fā)送。具體的Linux操作系統(tǒng)TCP/IP協(xié)議棧函數(shù)調(diào)用關(guān)系如圖3所示,應(yīng)用程序通過調(diào)用send函數(shù)發(fā)送數(shù)據(jù),如果是UDP協(xié)議,程序調(diào)用Udp_sendmsg()函數(shù)發(fā)送數(shù)據(jù),在這個函數(shù)里面會將用戶需要發(fā)送的數(shù)據(jù)復(fù)制到網(wǎng)絡(luò)的發(fā)送緩沖區(qū),這個過程通過ip_append_ data()函數(shù)調(diào)用C0py_fr0m_uSer()函數(shù)來實現(xiàn)。所有的數(shù)據(jù)發(fā)送都通過dst_output ()函數(shù)實現(xiàn)從傳輸層到網(wǎng)絡(luò)層的轉(zhuǎn)換,最后調(diào)用網(wǎng)卡驅(qū)動函數(shù)中的hard_start_Xmit()將數(shù)據(jù)寫入網(wǎng)卡完成數(shù)據(jù)發(fā)送。協(xié)議的各層都會在上層數(shù)據(jù)的前面增加該層的協(xié)議包頭和校驗信息,這些信息只與應(yīng)用層數(shù)據(jù)的長度有關(guān),與數(shù)據(jù)的具體內(nèi)容無關(guān)。而且通過研究網(wǎng)卡驅(qū)動的發(fā)送函數(shù)發(fā)現(xiàn),在將整個數(shù)據(jù)包寫入網(wǎng)卡時,包頭和數(shù)據(jù)的寫入過程是可以分開進(jìn)行的。 本發(fā)明是在網(wǎng)卡驅(qū)動函數(shù)里實現(xiàn)了包頭和數(shù)據(jù)的分開寫入,這是實現(xiàn)處理器和FPGA協(xié)同工作的基礎(chǔ)。具體技術(shù)方案如下(1)系統(tǒng)硬件原理圖的改進(jìn)。網(wǎng)卡芯片的總線不直接與處理器相連,而是連到 FPGA上,處理器的總線也連到FPGA上,這樣使得處理器和FPGA都能夠取得對網(wǎng)卡芯片的控制權(quán),實際工作的時候,由處理器來決定何時把網(wǎng)卡芯片的控制權(quán)交給FPGA,在硬件上用處理器的兩個GPIO引腳實現(xiàn)控制。另外將處理器與網(wǎng)卡芯片的同步時鐘也連到FPGA上,實現(xiàn)FPGA和網(wǎng)卡芯片的同步數(shù)據(jù)傳輸。軟件部分的改進(jìn)。針對系統(tǒng)硬件上的改進(jìn),本發(fā)明對Linux操作系統(tǒng)的TCP/IP 協(xié)議棧進(jìn)行了優(yōu)化。一個是TCP/IP協(xié)議棧內(nèi)核源代碼中從用戶區(qū)復(fù)制數(shù)據(jù)到協(xié)議棧緩存區(qū)的函數(shù)C0py_fr0m_user(),另一個是網(wǎng)卡驅(qū)動程序中從協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片的函數(shù)hard_start_Xmit(),減少了數(shù)據(jù)發(fā)送過程中多余的拷貝過程,提高了數(shù)據(jù)傳輸速度。本發(fā)明的嵌入式千兆網(wǎng)數(shù)據(jù)傳輸系統(tǒng)如圖4所示。具體實施例中,處理器為三星公司的 ARM9處理器s3c2440,F(xiàn)PGA采用ALTERA公司的EP3C5F256,以太網(wǎng)模塊主要由MAC層千兆網(wǎng)卡芯片AX88180和物理層芯片88E1111組成。以太網(wǎng)數(shù)據(jù)傳輸采用UDP方式。網(wǎng)卡芯片的總線(地址總線,數(shù)據(jù)總線和控制總線)不直接與處理器相連,而是連到FPGA上,處理器的總線也連到FPGA上,這樣使得處理器和FPGA都能夠取得對網(wǎng)卡芯片的控制權(quán),實際工作的時候,由處理器來決定何時把網(wǎng)卡芯片的控制權(quán)交給FPGA,在硬件上用處理器的兩個GPIO 引腳實現(xiàn)控制。另外將處理器與網(wǎng)卡芯片的同步時鐘也連到FPGA上,實現(xiàn)FPGA和網(wǎng)卡芯片的同步數(shù)據(jù)傳輸。針對系統(tǒng)硬件上的改進(jìn),本發(fā)明對Iinux操作系統(tǒng)的TCP/IP協(xié)議棧進(jìn)行了優(yōu)化, 一個是TCP/IP協(xié)議棧內(nèi)核源代碼中從用戶區(qū)復(fù)制數(shù)據(jù)到協(xié)議棧緩存區(qū)的函數(shù)C0py_fr0m_ user (),另一個是網(wǎng)卡驅(qū)動程序中從協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片的函數(shù)ax88180_ start_xmit()。在修改C0py_fr0m_uSer ()函數(shù)時,由于協(xié)議棧除了處理應(yīng)用層的數(shù)據(jù)發(fā)送任務(wù)之外,還需要維持整個網(wǎng)絡(luò)協(xié)議的運行,所以這個代碼段的屏蔽是選擇性的。具體的實現(xiàn)方式是將待發(fā)送的數(shù)據(jù)存放在FPGA所控制的RAM中,應(yīng)用程序調(diào)用send函數(shù)時,利用數(shù)
7據(jù)指針參數(shù)傳遞兩個字節(jié)的指定數(shù)據(jù)給協(xié)議下層,以O(shè)xfefe為例,數(shù)據(jù)長度參數(shù)項依然是一次發(fā)送數(shù)據(jù)的字節(jié)數(shù),用來使協(xié)議棧正確生成數(shù)據(jù)的包頭。在C0py_fr0m_User()函數(shù)內(nèi)部首先判斷待發(fā)送數(shù)據(jù)的前兩個字節(jié)是否為上層應(yīng)用程序所指定的值,如果是則只需復(fù)制這兩個字節(jié)到協(xié)議棧發(fā)送緩沖區(qū)中,代碼示例中的if判斷為增加的部分。
if((*from==0x5a)&&(*(from+l)==0x5a))
*to++=0x5a; *to=0x5a; return η;
η=—copy—from—user(to, from, n);在網(wǎng)卡驅(qū)動程序的aX88180_Start_Xmit()中,處理器向網(wǎng)卡芯片寫入數(shù)據(jù)時,也先判斷數(shù)據(jù)的前兩個字節(jié)是否為應(yīng)用程序指定的值,如果是則只將包頭寫入網(wǎng)卡芯片,然后通過一個GPIO引腳通知FPGA從RAM中復(fù)制指定長度的數(shù)據(jù)到網(wǎng)卡芯片中,F(xiàn)PGA完成復(fù)制數(shù)據(jù)之后首先釋放對網(wǎng)卡芯片總線的控制,然后通過另一個GPIO引腳通知處理器已交回控制權(quán),完成一次數(shù)據(jù)的發(fā)送,下面的代碼示例為增加的部分。
if((*(txdata+42)==0x5a)&&(*(txdata+43)==0x5a)) {
copy—head(); GPIOST ART—FPGA= 1 ; while(GPIO—FPGA—DONE!=1); GPIOSTART—FPGA=O; return 1;
}需要說明的是,以上介紹的本發(fā)明的實施方案而并非限制。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,任何對本發(fā)明技術(shù)方案的修改或者等同替代都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍內(nèi)。
權(quán)利要求
1.一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng),該系統(tǒng)包含F(xiàn)PGA模塊、網(wǎng)卡芯片和處理器,其特征在于,所述網(wǎng)卡芯片的總線與所述處理器的總線分別連到所述FPGA的若干輸入輸出接口上,用于實現(xiàn)處理器與FPGA協(xié)同控制網(wǎng)卡芯片;所述處理器的通用輸入輸出接口引腳與所述FPGA的輸入輸出口相連接,實現(xiàn)所述處理器可實現(xiàn)何時把所述網(wǎng)卡芯片的控制權(quán)交給所述FPGA進(jìn)行控制;其中,所述總線包含數(shù)據(jù)總線、地址總線和控制中線;所述處理器采用TCP/IP協(xié)議。
2.根據(jù)權(quán)利要求1所述的提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng),其特征在于,所述網(wǎng)卡芯片與所述處理器的同步時鐘均連到所述FPGA模塊上,用于實現(xiàn)FPGA芯片和網(wǎng)卡芯片的同步數(shù)據(jù)傳輸。
3.根據(jù)權(quán)利要求1所述的提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng),其特征在于,所述 FPGA芯片還包含一個RAM,用于存放所述FPGA接收的某一長度的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng),其特征在于,所述處理器進(jìn)一步包含如下模塊第一判斷模塊,當(dāng)從用戶區(qū)復(fù)制數(shù)據(jù)到TCP/IP協(xié)議棧緩存區(qū)時首先判斷待發(fā)送數(shù)據(jù)的前若干個字節(jié)是否為上層應(yīng)用程序所指定的值;第一發(fā)送模塊,如果第一判斷模塊判斷待發(fā)送數(shù)據(jù)的前若干個字節(jié)是上層應(yīng)用程序所指定的值時,則只需復(fù)制所屬若干個字節(jié)到協(xié)議棧發(fā)送緩沖區(qū)中;第二判斷模塊,用于當(dāng)從所述TCP/IP協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片中時,先判斷數(shù)據(jù)的前兩個字節(jié)是否為應(yīng)用程序指定的值;包頭寫入模塊,當(dāng)?shù)诙袛嗄K判斷數(shù)據(jù)的前兩個字節(jié)是應(yīng)用程序指定的值時,則只將包頭寫入網(wǎng)卡芯片;控制權(quán)設(shè)置模塊,通過其中一個GPIO引腳通知FPGA從RAM中復(fù)制指定長度的數(shù)據(jù)到網(wǎng)卡芯片中,F(xiàn)PGA完成復(fù)制數(shù)據(jù)之后首先釋放對網(wǎng)卡芯片總線的控制,最后通過另一個 GPIO引腳通知處理器已交回控制權(quán),完成一次數(shù)據(jù)的發(fā)送。
5.一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的方法,該方法基于權(quán)利要求1所述的系統(tǒng),所述的方法包含如下步驟步驟1,F(xiàn)PGA存儲待發(fā)送數(shù)據(jù),所述FPGA模塊先將待傳輸?shù)臄?shù)據(jù)進(jìn)行緩存,當(dāng)數(shù)據(jù)存滿一定數(shù)量之后,所述FPGA模塊通知所述處理器取走若干字節(jié)的數(shù)據(jù);步驟2,添加包頭發(fā)送數(shù)據(jù)的步驟,所述處理器依據(jù)讀入的若干數(shù)據(jù)判斷是否為待傳輸?shù)臄?shù)據(jù),并由TCP/IP協(xié)議棧對待傳輸?shù)臄?shù)據(jù)添加包頭;步驟3,向網(wǎng)卡發(fā)送待傳輸數(shù)據(jù)步驟,所述處理器控制所述FPGA將添加包頭信息的待傳輸數(shù)據(jù)包寫入網(wǎng)卡,完成數(shù)據(jù)的發(fā)送。
6.根據(jù)權(quán)利要求5所述的提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的方法,其特征在于,所述 FPGA查詢處理器GPIO 口以取得網(wǎng)卡控制權(quán),然后將數(shù)據(jù)直接寫入網(wǎng)卡。
7.根據(jù)權(quán)利要求5所述的提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的方法,其特征在于,所述步驟2進(jìn)一步包含如下步驟在從用戶區(qū)復(fù)制數(shù)據(jù)到協(xié)議棧緩存區(qū)的模塊內(nèi)部首先判斷待發(fā)送數(shù)據(jù)的前若干個字節(jié)是否為上層應(yīng)用程序所指定的值,如果是則只需復(fù)制這若干個字節(jié)到協(xié)議棧發(fā)送緩沖區(qū)中;在網(wǎng)卡驅(qū)動模塊中從協(xié)議棧緩存區(qū)復(fù)制數(shù)據(jù)到網(wǎng)卡芯片的子模塊中,所述處理器向所述網(wǎng)卡芯片寫入數(shù)據(jù)時,先判斷數(shù)據(jù)的前若干個字節(jié)是否為應(yīng)用程序指定的值,如果是則只將包頭寫入網(wǎng)卡芯片,然后通過一個GPIO引腳通知FPGA從RAM中復(fù)制指定長度的數(shù)據(jù)到網(wǎng)卡芯片中,F(xiàn)PGA完成復(fù)制數(shù)據(jù)之后首先釋放對網(wǎng)卡芯片總線的控制,然后通過另一個 GPIO引腳通知處理器已交回控制權(quán),完成一次數(shù)據(jù)的發(fā)送。
全文摘要
本發(fā)明提供了一種提高嵌入式數(shù)據(jù)系統(tǒng)傳輸速率的系統(tǒng)及方法,該系統(tǒng)包含F(xiàn)PGA模塊、網(wǎng)卡芯片和處理器,其特征在于,所述網(wǎng)卡芯片的總線與所述處理器的總線分別連到所述FPGA的若干輸入輸出接口上,用于實現(xiàn)處理器與FPGA協(xié)同控制網(wǎng)卡芯片;所述處理器的通用輸入輸出接口引腳與所述FPGA的輸入輸出口相連接,實現(xiàn)所述處理器可實現(xiàn)何時把所述網(wǎng)卡芯片的控制權(quán)交給所述FPGA進(jìn)行控制;其中,所述總線包含數(shù)據(jù)總線、地址總線和控制總線;所述處理器采用TCP/IP協(xié)議。所述網(wǎng)卡芯片與所述處理器的同步時鐘均連到所述FPGA模塊上,用于實現(xiàn)FPGA芯片和網(wǎng)卡芯片的同步數(shù)據(jù)傳輸。所述FPGA芯片還包含一個RAM,用于存放所述FPGA接收的某一長度的數(shù)據(jù)。
文檔編號H04L12/02GK102546582SQ20111021147
公開日2012年7月4日 申請日期2011年7月27日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者姚雪, 張春華, 張祥, 李文軍, 李淑秋, 杜立君, 楊光, 黃海寧 申請人:中國科學(xué)院聲學(xué)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
靖江市| 馆陶县| 平顺县| 沙雅县| 扶余县| 乡城县| 德令哈市| 根河市| 宜君县| 罗平县| 南溪县| 永年县| 新蔡县| 重庆市| 金昌市| 来宾市| 射阳县| 雷山县| 阳泉市| 贵阳市| 沈丘县| 昌黎县| 东明县| 从化市| 郎溪县| 突泉县| 长武县| 肥西县| 崇仁县| 云南省| 临洮县| 高安市| 东山县| 巩义市| 星座| 白河县| 康乐县| 临江市| 淳化县| 岐山县| 虹口区|