免费色播,亚洲国产欧美国产第一区二区三区,毛片看,日本精品在线观看视频,国产成人精品一区二区免费视频,日本黄色免费网站,一级毛片免费

數(shù)據(jù)采集系統(tǒng)網(wǎng)絡(luò)傳輸平臺(tái)設(shè)計(jì)

來源:網(wǎng)絡(luò)

點(diǎn)擊:1017

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: 數(shù)據(jù)采集,網(wǎng)絡(luò)傳輸,W5300

      1 引言

     

      數(shù)據(jù)采集很多時(shí)候需要將數(shù)據(jù)傳輸?shù)竭h(yuǎn)程計(jì)算機(jī),也有些采集系統(tǒng)有很多采集點(diǎn),比如火災(zāi)傳感器,這就需要數(shù)據(jù)傳輸部分能夠方便地組網(wǎng)。在短距離內(nèi)USB傳輸和1394火線傳輸都是一個(gè)較為理想的方法,但涉及到遠(yuǎn)距離傳輸和組網(wǎng)時(shí),它們就不是那么方便了。所以很多時(shí)候通過以太網(wǎng)傳輸采集到的數(shù)據(jù)是一種較好的方式。目前設(shè)備實(shí)現(xiàn)聯(lián)網(wǎng)的做法一般是使用CPU運(yùn)行操作系統(tǒng),由操作系統(tǒng)里的軟件協(xié)議棧完成對(duì)TCP/IP協(xié)議的處理。這種方式需要編寫CPU與數(shù)據(jù)采集部分接口的驅(qū)動(dòng)和網(wǎng)絡(luò)通訊的傳輸軟件,開發(fā)工作量較大,設(shè)計(jì)較為復(fù)雜。并且CPU在產(chǎn)生接口時(shí)序方面較為不便,很多時(shí)候需要用FPGA+CPU的方式:FPGA完成與數(shù)據(jù)采集部分接口時(shí)序的產(chǎn)生和數(shù)據(jù)的緩存,CPU完成數(shù)據(jù)傳輸。因?yàn)閿?shù)據(jù)采集系統(tǒng)中經(jīng)常會(huì)使用FPGA,如果能用FPGA和少量易用的外圍器件實(shí)現(xiàn)網(wǎng)絡(luò)傳輸則是一種較為理想的方式。我們?cè)O(shè)計(jì)了一個(gè)網(wǎng)絡(luò)傳輸平臺(tái),主要包括FPGA、DDR芯片和硬件化的網(wǎng)絡(luò)協(xié)議棧芯片,可以通過以太網(wǎng)和計(jì)算機(jī)通訊,將數(shù)據(jù)傳輸?shù)接?jì)算機(jī)中。

     

      2 平臺(tái)結(jié)構(gòu)

     

      平臺(tái)結(jié)構(gòu)包括硬件上的結(jié)構(gòu)和FPGA邏輯結(jié)構(gòu)。其結(jié)構(gòu)如圖1所示。其中數(shù)據(jù)采集模塊是數(shù)據(jù)采集系統(tǒng)的傳輸平臺(tái)需要的一個(gè)模塊,但是目前沒有,可以根據(jù)實(shí)際需要進(jìn)行開發(fā)。

     

      

     

      2.1 硬件結(jié)構(gòu)

      平臺(tái)主要包括三個(gè)部分:FPGA,DDR存儲(chǔ)芯片和網(wǎng)絡(luò)協(xié)議棧芯片。FPGA為平臺(tái)的主控芯片,使用Alter Cyclone II EP2C20F256,該FPGA具有1 8,752個(gè)LE,239,616位存儲(chǔ)器空間,26個(gè)嵌入式乘法器,4個(gè)PLL,152個(gè)用戶可用管腳,封裝采用256腳F‘meline BGA,體積較小。

      DDR存儲(chǔ)芯片使用MICRON M’r46V128M8—6T,容量128MB,數(shù)據(jù)線寬度為8bit,該容量是DDR單片芯片中容量最大的。芯片最高可工作在167MHz。使用DDR對(duì)布板有較高的要求,我們?cè)诓及鍟r(shí)考慮到了過孔和焊盤長度對(duì)走線長度的影響,保證了對(duì)同一組數(shù)據(jù)線和時(shí)鐘的精確等長布線。通過估計(jì)信號(hào)的回流路徑進(jìn)行走線和參考平面分割,以保證信號(hào)回路阻抗的連續(xù)性,減小信號(hào)之間的串?dāng)_。選擇了適當(dāng)?shù)木€寬、疊層方式及疊層厚度,使得單端走線的阻抗控制在50歐姆,差分走線阻抗在100歐姆,以確保傳輸線的阻抗匹配。這些措施保證了良好的信號(hào)的完整性,提高了時(shí)序余度,降低了對(duì)DDR IPCore的時(shí)間參數(shù)精確性的要求,為平臺(tái)的穩(wěn)定運(yùn)行打下了基礎(chǔ)。

      網(wǎng)絡(luò)協(xié)議棧芯片使用的是WIZNET W5300,芯片內(nèi)部集成了以太網(wǎng)物理層(PHY)、802.3以太網(wǎng)MAC和TCP/IP協(xié)議棧。該芯片可用在10M/100M以太網(wǎng)中,完成ISO七層模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和數(shù)據(jù)傳輸層的任務(wù),將控制器從復(fù)雜的網(wǎng)絡(luò)協(xié)議處理中解脫出來,提供了一個(gè)易于實(shí)現(xiàn)的網(wǎng)絡(luò)傳輸方式。

      因此我們選取了并行接口,工作在直接尋址模式。

      2.2 FPGA邏輯結(jié)構(gòu)

      在進(jìn)行FPGA邏輯編寫時(shí)采用了模塊化設(shè)計(jì),結(jié)構(gòu)主要包括四個(gè)部分:DDR接口模塊、網(wǎng)絡(luò)接口模塊、傳輸協(xié)議解析模塊和寄存器模塊。DDR接口模塊對(duì)DDR芯片進(jìn)行上電初始化,產(chǎn)生DDR的讀寫時(shí)序并控制DDR刷新。網(wǎng)絡(luò)接口模塊對(duì)網(wǎng)絡(luò)協(xié)議棧芯片進(jìn)行上電初始化,產(chǎn)生芯片的讀寫時(shí)序,并控制芯片發(fā)送和接受數(shù)據(jù)。傳輸協(xié)議解析模塊對(duì)網(wǎng)絡(luò)接口模塊送來的數(shù)據(jù)進(jìn)行解析,轉(zhuǎn)換成對(duì)DDR或寄存器的讀寫操作,并將DDR模塊或寄存器模塊讀出的數(shù)據(jù)送給網(wǎng)絡(luò)接口模塊,通過網(wǎng)口發(fā)送出去。寄存器模塊包括16個(gè)16位的寄存器,存放參數(shù)設(shè)定和狀態(tài)信息,遠(yuǎn)程用戶通過讀寫寄存器實(shí)現(xiàn)對(duì)數(shù)據(jù)采集的控制。

      在進(jìn)行FPGA邏輯編寫時(shí)采用了層次化的設(shè)計(jì)。每層完成其特定工作,使得設(shè)計(jì)清晰明了。系統(tǒng)的層次結(jié)構(gòu)如圖2所示。

     

      

     

      從整體上來看,平臺(tái)結(jié)構(gòu)分為設(shè)備層、接口層和控制層。設(shè)備層為FPGA外圍芯片,接口層作為設(shè)備層和控制層的橋梁,面向設(shè)備發(fā)送相應(yīng)指令,產(chǎn)生特定時(shí)序的信號(hào);面向控制層提供數(shù)據(jù)。

      控制層將接口層送來的數(shù)據(jù)進(jìn)行解析,轉(zhuǎn)化成對(duì)接口層的操作,控制整個(gè)平臺(tái)的工作。在網(wǎng)絡(luò)接口模塊中,同樣也可分為接口層和控制層。接口層將上層所有對(duì)W5300訪問的操作按照其時(shí)序要求產(chǎn)生相應(yīng)地信號(hào),控制層則控制w5300芯片完成以太網(wǎng)通信。

      2.2.1 DDR接口模塊

      DDR接口使用Altera提供的IPcore。該IPcore包括控制邏輯和數(shù)據(jù)通道兩部分,如圖3所示。

     

      

     

      控制邏輯面向DDR芯片執(zhí)行總線的操作,對(duì)內(nèi)提供一個(gè)簡(jiǎn)單的接口。數(shù)據(jù)通道在內(nèi)部讀寫數(shù)據(jù)總線與DDR芯片的雙向數(shù)據(jù)總線之間提供一個(gè)接口,因?yàn)镈DR芯片的數(shù)據(jù)總線是上升下降沿都傳送數(shù)據(jù),內(nèi)部總線僅在上升沿傳送數(shù)據(jù)。所以內(nèi)部數(shù)據(jù)總線寬度是DDR芯片數(shù)據(jù)總線的兩倍。本設(shè)計(jì)中內(nèi)部總線的寬度為16位。DDR突發(fā)數(shù)據(jù)傳輸長度選擇2。

      FPGA邏輯巾還包括一個(gè)隨機(jī)數(shù)Ⅻ4試模塊??梢援a(chǎn)生偽隨機(jī)數(shù)寫入DDR芯片。然后將其讀出。

      通過比較兩者是否相同,可毗判斷芯片的好壞。隨機(jī)數(shù)Ⅻ5試在上電時(shí)會(huì)執(zhí)行一次。執(zhí)行結(jié)果由扳子上LED燈指示。

      2.2 2 時(shí)絡(luò)接口模塊

      網(wǎng)絡(luò)接口模塊丹為控制層和接口層??刂茖佑啥鄠€(gè)處理模塊組成,包括:復(fù)位模塊、初始化模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)發(fā)送模塊和中斷處理模塊,每個(gè)模塊完成一種情況的處理。這些模塊受一十狀態(tài)機(jī)的控制,狀志機(jī)根據(jù)不同的話分別執(zhí)行相應(yīng)的模塊。狀態(tài)機(jī)的跳轉(zhuǎn)如圖4所示:

     

      

     

      系統(tǒng)上電開始,狀態(tài)機(jī)進(jìn)入復(fù)位W5300狀態(tài)。在其復(fù)位管腳上產(chǎn)生一個(gè)2微秒的負(fù)脈沖以復(fù)位芯片。復(fù)位完成后進(jìn)八初始化階段。初始化階段設(shè)置芯片工作方式、平臺(tái)網(wǎng)絡(luò)接口的MAC地址、源口地址、源端口號(hào)、掩碼、同蓑和協(xié)議類型等。車系統(tǒng)采用的是直接尋址方式,協(xié)議婁型選擇UDp。初始化完成后狀態(tài)機(jī)進(jìn)人空用狀態(tài)。在這個(gè)狀態(tài)下,先檢測(cè)是否有中斷㈣產(chǎn)生。如果有中斷則進(jìn)入中斷處理狀態(tài),執(zhí)行中斷處理模塊,如果沒有中斷則檢剁是否有發(fā)送數(shù)據(jù)請(qǐng)求(SendReq)。

      如果有則進(jìn)入數(shù)據(jù)技逆狀志,執(zhí)行數(shù)據(jù)發(fā)送模塊。如果既沒有中斷也投有菱送數(shù)據(jù)請(qǐng)求。則進(jìn)入數(shù)據(jù)接收狀態(tài),執(zhí)行數(shù)據(jù)接收模塊。數(shù)據(jù)接收模塊執(zhí)行時(shí)。首先要讀取W5300內(nèi)部的接收數(shù)據(jù)字節(jié)長度寄存器。如果不為0表明W5300接啦到數(shù)據(jù),則讀取數(shù)據(jù),否則直接結(jié)束數(shù)據(jù)接收過程,狀態(tài)機(jī)返到空閑狀態(tài)。

      2.2.3 協(xié)議解析模塊

      網(wǎng)絡(luò)接口模塊從W5300中讀取到數(shù)據(jù)后,將數(shù)據(jù)發(fā)送到協(xié)議解析模塊。協(xié)議解析模塊根據(jù)這些數(shù)據(jù)解析出相應(yīng)的操作,讀寫寄存器或DDR存儲(chǔ)器。因?yàn)閿?shù)據(jù)寫入寄存器只需要一個(gè)時(shí)鐘周期,所以寫入寄存器的數(shù)據(jù)可以被即時(shí)寫入。而DDR有突發(fā)數(shù)據(jù)傳輸長度的限制和刷新的存在,使得數(shù)據(jù)無法即時(shí)寫入。因此寫入DDR的數(shù)據(jù)先緩存在一個(gè)寫入FIFO中,當(dāng)該FIFO中的數(shù)據(jù)大于突發(fā)數(shù)據(jù)傳輸長度時(shí),向DDR接口模塊請(qǐng)求一次數(shù)據(jù)寫入。讀取數(shù)據(jù)時(shí),因?yàn)樽x寄存器和DDR的速度遠(yuǎn)大于網(wǎng)絡(luò)的傳輸速度,因此讀取的數(shù)據(jù)需要存放在讀出FIFO中。讀取DDR時(shí),采用了預(yù)讀方式,持續(xù)讀取DDR直到讀出FIFO滿,但實(shí)際發(fā)送的數(shù)據(jù)個(gè)數(shù)仍然為實(shí)際需要的數(shù)據(jù)量,這種方式降低了對(duì)DDR讀取的復(fù)雜度。

     

            3 傳輸協(xié)議設(shè)計(jì)

     

     

     

      我們定義了一個(gè)傳輸協(xié)議如圖5所示。協(xié)議包括16位命令、32位地址、32位長度和可選的數(shù)據(jù)部分。命令表示本次操作要完成的任務(wù),目前定義了四個(gè),分別是:CMD_RD_REG(讀寄存器)、CMD_WD_REG(寫寄存器)、CMD_RD_MEM(讀DDR存儲(chǔ)器)、CMD_RD_MEM(寫DDR存儲(chǔ)器)。地址表示本次操作的起始位置,長度表示本次操作的數(shù)據(jù)長度。數(shù)據(jù)是可選部分, 當(dāng)命令字段為CMD WD_REG或CMDWD_MEM時(shí),表明本次為寫操作,此時(shí)有數(shù)據(jù)部分,長度為長度字段值,平臺(tái)將把該數(shù)據(jù)寫入到寄存器或DDR存儲(chǔ)器指定的地址位置;當(dāng)命令字段為CMD_RD REG或CMD_RD_MEM時(shí),表明本次為讀操作,此時(shí)沒有數(shù)據(jù)部分,平臺(tái)將從寄存器或DDR存儲(chǔ)器指定的地址讀取指定的長度數(shù)據(jù)發(fā)送至遠(yuǎn)程計(jì)算機(jī)。

      以一個(gè)常見的數(shù)據(jù)采集過程說明使用本協(xié)議是如何工作的。遠(yuǎn)程軟件以本平臺(tái)P地址和端口號(hào)為源m地址和源端口號(hào)向本平臺(tái)發(fā)送一個(gè)寫寄存器命令,將寄存器模塊中控制寄存器的開始工作位寫l,該位為l則觸發(fā)數(shù)據(jù)采集接口模塊開始工作,其首先要對(duì)DDR存儲(chǔ)器清零,然后等待外部數(shù)據(jù)的到來,將數(shù)據(jù)存儲(chǔ)在DDR存儲(chǔ)器中,存儲(chǔ)完畢后將寄存器模塊中表示狀態(tài)的寄存器的數(shù)據(jù)記錄完成指示位置l。遠(yuǎn)程軟件發(fā)出開始工作指令后應(yīng)一直發(fā)送讀取寄存器命令,讀取該位直到其為l。然后發(fā)送讀DDR存儲(chǔ)器命令,地址為當(dāng)前待讀取數(shù)據(jù)的地址,長度選取合適的數(shù)值,從DDR中讀取數(shù)據(jù)。讀取一段數(shù)據(jù)后將地址加上長度值讀取下一段數(shù)據(jù),直到數(shù)據(jù)讀取完成。

      從上可以看到遠(yuǎn)程軟件需要一直讀取狀態(tài)寄存器以確定平臺(tái)工作狀態(tài),占用較多的計(jì)算機(jī)CPU時(shí)間,同時(shí)占用了網(wǎng)絡(luò)帶寬,在多個(gè)本平臺(tái)的存在下,這種情況更加明顯。這在多用戶的以太網(wǎng)環(huán)境里是不允許的。因此我們的平臺(tái)采用了消息機(jī)制,通過這種機(jī)制可以避免以上問題。

      我們將寄存器模塊的第一個(gè)寄存器作為消息寄存器,當(dāng)該寄存器非零時(shí),協(xié)議解析模塊將把該寄存器的值發(fā)送到遠(yuǎn)程軟件,發(fā)送頻率每秒一次,直到該寄存器被清零。在以上舉例的數(shù)據(jù)傳輸過程中,遠(yuǎn)程軟件發(fā)出開始工作指令后即可進(jìn)入等待狀態(tài),數(shù)據(jù)采集接口模塊在數(shù)據(jù)記錄完成后將消息寄存器某位置l,平臺(tái)然后開始發(fā)送消息寄存器值。軟件接收到該寄存器值后,先發(fā)送寫寄存器命令將該寄存器清零,然后根據(jù)消息值進(jìn)行相應(yīng)的操作。消息寄存器為16位,因此最多可以定義16種消息。

     

      4 測(cè)試結(jié)果

     

      我們將一臺(tái)計(jì)算機(jī)和平臺(tái)通過交叉線連接起來,設(shè)定好雙方的m地址后,在計(jì)算機(jī)上通過軟件向平臺(tái)上的DDR讀寫數(shù)據(jù)來測(cè)試平臺(tái)的數(shù)據(jù)傳輸速度。寫入時(shí)使用的協(xié)議長度字段為1462,讀取時(shí)為1472,這樣發(fā)送的數(shù)據(jù)長度或讀取的數(shù)據(jù)長度加上UDP首部的長度為1500,是以太網(wǎng)的最大傳輸單元(MTU)的長度。在這種情況下測(cè)得平臺(tái)接收數(shù)據(jù)速率在70Mbps,發(fā)送數(shù)據(jù)速率達(dá)到了30Mbps。

     

      5 結(jié)論

     

      我們?cè)O(shè)計(jì)了一個(gè)網(wǎng)絡(luò)傳輸平臺(tái),使用FPGA控制硬件化的TCP/IP協(xié)議棧芯片來完成網(wǎng)絡(luò)傳輸,避免了由于使用CPU帶來的一些問題,同時(shí)平臺(tái)具有大容量的存儲(chǔ)器,剩余豐富的Io管腳,在平臺(tái)基礎(chǔ)上再進(jìn)行少量的開發(fā)即可實(shí)際使用。我們采用了模塊化的設(shè)計(jì)和層次化的結(jié)構(gòu)。使得平臺(tái)結(jié)構(gòu)清晰。設(shè)計(jì)了自定義的傳輸協(xié)議,針對(duì)實(shí)際環(huán)境進(jìn)行了優(yōu)化。經(jīng)測(cè)試平臺(tái)達(dá)到了較高的傳輸速度,其接收數(shù)據(jù)速率達(dá)到了70Mbps,發(fā)送數(shù)據(jù)速率達(dá)到了30Mbl硌。本平臺(tái)具有設(shè)計(jì)簡(jiǎn)潔、靈活可靠、性能突出等優(yōu)點(diǎn),適合數(shù)據(jù)采集系統(tǒng)中的數(shù)據(jù)傳輸?shù)膽?yīng)用。(作者:章濤,王永綱,陳俊,都軍偉)

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。