国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于W5300的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2020-04-22 08:31:16杜志美張凱華
兵器裝備工程學(xué)報(bào) 2020年3期
關(guān)鍵詞:存儲器寄存器中斷

杜志美,文 豐,張凱華

(中北大學(xué) 儀器與電子學(xué)院電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,太原 030051)

如今信息技術(shù)發(fā)展突飛猛進(jìn),通信方式向著數(shù)據(jù)需求量大、實(shí)時性高、易于組網(wǎng)等方向發(fā)展[1]。集成有TCP/IP協(xié)議的以太網(wǎng)芯片W5300以其成本低、數(shù)據(jù)傳輸距離遠(yuǎn)、易于移植且簡單快捷的實(shí)現(xiàn)高性能數(shù)據(jù)通信等優(yōu)勢得到了廣泛應(yīng)用[2]。開發(fā)者只需要對W5300應(yīng)用層進(jìn)行操作,就可以實(shí)現(xiàn)不同網(wǎng)絡(luò)平臺間的數(shù)據(jù)交互。傳統(tǒng)的以太網(wǎng)系統(tǒng)存在數(shù)據(jù)傳輸不穩(wěn)定,成本較高等缺點(diǎn),且在實(shí)際應(yīng)用中,其傳輸速率很難突破50Mbps[3-4]。

本研究所提出的系統(tǒng)設(shè)計(jì)采用“FPGA+W5300”組合模式,不僅實(shí)現(xiàn)了數(shù)據(jù)快速、穩(wěn)定傳輸,而且極大地降低了開發(fā)難度、提高了數(shù)據(jù)傳輸?shù)膶?shí)時性。

1 系統(tǒng)硬件結(jié)構(gòu)與設(shè)計(jì)

本系統(tǒng)需要設(shè)計(jì)一個客戶端和一個服務(wù)器,并在兩個相對獨(dú)立的系統(tǒng)之間建立連接完成數(shù)據(jù)傳輸,傳輸速度要求達(dá)到80 Mbps,并且數(shù)據(jù)穩(wěn)定可靠。

相比于DSP等控制類芯片,F(xiàn)PGA特有的并行處理能力、高速接口設(shè)計(jì)、豐富的I/O接口資源等優(yōu)勢,使其在高速數(shù)據(jù)處理和邏輯控制等方面具有很高的實(shí)時性,采用FPGA作為主控芯片,可以使不同網(wǎng)絡(luò)系統(tǒng)中數(shù)據(jù)更高速傳輸。為滿足數(shù)據(jù)傳輸速度要求,系統(tǒng)采用“FPGA+W5300”組合模式。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

圖1 以太網(wǎng)系統(tǒng)硬件結(jié)構(gòu)框圖

FPGA可以根據(jù)W5300地址總線對寄存器尋址,按照W5300寄存器讀寫時序,通過數(shù)據(jù)總線配置和讀取相應(yīng)寄存器的值。本系統(tǒng)采用16位數(shù)據(jù)總線模式,所以BIT16EN接高電平,數(shù)據(jù)總線低8位和高8位都需要與FPGA I/O口連接,接收的數(shù)據(jù)通過FPGA存入Flash。W5300差分輸入和輸出信號對與外部接口之間增加對稱變壓器,保證芯片與外界的隔離與數(shù)據(jù)傳輸過程中系統(tǒng)的可靠性。

W5300硬件接口類型與功能描述如表1所示。W5300擁有8個獨(dú)立并行端口,內(nèi)部集成10BasseT/100BasseT以太網(wǎng)物理層[5],支持直接和間接地址模式。FPGA通過直接訪問每個端口的FIFO寄存器,控制端口TX/RX存儲器數(shù)據(jù)讀取和寫入,從而避免了以往采用FPGA直接處理TCP/IP協(xié)議時的負(fù)荷,極大簡化了程序的編寫,使系統(tǒng)對數(shù)據(jù)的傳輸和處理能力得到極大改善。

表1 W5300接口類型和功能表

2 W5300軟件設(shè)計(jì)

本系統(tǒng)通過FPGA直接操作W5300內(nèi)部寄存器。FPGA代碼在ISE14.7編譯環(huán)境下采用硬件描述語言VHDL編寫。并根據(jù)W5300復(fù)位時序、寄存器讀和寫時序完成FPGA對W5300的控制。軟件設(shè)計(jì)流程分為W5300初始化、端口連接、數(shù)據(jù)發(fā)送和接收3個模塊。

2.1 W5300初始化

W5300初始化包括外部接口配置、網(wǎng)絡(luò)參數(shù)和超時設(shè)置和端口TX/RX存儲器分配[6]。

W5300采用/RESET硬件復(fù)位,復(fù)位信號在保持低電平大于2 μs后保持高電平時間大于10 ms,執(zhí)行復(fù)位。其內(nèi)部鎖相環(huán)將外部25 MHz時鐘源倍頻后產(chǎn)生150 MHz工作時鐘,在復(fù)位有效后鎖相環(huán)鎖定時鐘頻率[7]。

2.1.1外部接口設(shè)置

W5300接口設(shè)置包括模式寄存器配置和中斷配置。

采用直接地址模式(IND=0),可將模式寄存器、通用寄存器和端口寄存器映射到內(nèi)部存儲空間,控制器通過訪問對應(yīng)映射地址來直接訪問相關(guān)寄存器[8],間接地址模式則相反。FPGA在訪問W5300內(nèi)部寄存器時,寄存器地址從系統(tǒng)基地址開始以2字節(jié)遞增方式連續(xù)映射在內(nèi)部存儲器空間。寄存器地址采用大端模式,即寄存器地址的低字節(jié)存儲在實(shí)際物理地址的高字節(jié)。W5300寄存器實(shí)際物理地址為“存儲器空間基地址+寄存器偏移量”,其中W5300寄存器的物理基地址為0x08000。

與W5300中斷相關(guān)的寄存器包括中斷寄存器(IR)和中斷屏蔽寄存器。中斷寄存器數(shù)據(jù)位表示當(dāng)前中斷類型,產(chǎn)生中斷時相應(yīng)數(shù)據(jù)位置1,如果中斷屏蔽寄存器(IMR)相應(yīng)位也為1,則中斷請求輸出引腳/INT置0,向FPGA發(fā)出中斷請求,控制器通過查詢中斷寄存器數(shù)據(jù)位判斷中斷類型并處理中斷。

2.1.2網(wǎng)絡(luò)參數(shù)和超時設(shè)置

為實(shí)現(xiàn)數(shù)據(jù)在多個網(wǎng)絡(luò)系統(tǒng)之間傳輸而不會造成數(shù)據(jù)傳輸混亂,需要對W5300進(jìn)行網(wǎng)絡(luò)參數(shù)配置,包括硬件地址寄存器、網(wǎng)關(guān)IP 地址寄存器、子網(wǎng)掩碼寄存器和本機(jī)IP 地址寄存器。本系統(tǒng)各參數(shù)如表2所示。

表2 網(wǎng)絡(luò)系統(tǒng)參數(shù)配置

TCP是一種可靠數(shù)據(jù)傳輸控制協(xié)議。TCP協(xié)議在數(shù)據(jù)通信中經(jīng)過三次握手驗(yàn)證,保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。為避免驗(yàn)證過程中長時間等待,需要進(jìn)行超時設(shè)置,超時設(shè)置相關(guān)寄存器包括重復(fù)發(fā)送超時寄存器(RTR)和重復(fù)發(fā)送計(jì)數(shù)寄存器(RCR)。W5300超時分為ARP發(fā)送超時和TCP發(fā)送超時兩種。以客戶端向服務(wù)器發(fā)送ARP請求為例,流程如圖2所示。

圖2 ARP請求流程圖

同樣客戶端向服務(wù)器發(fā)送TCP數(shù)據(jù)包后,等待服務(wù)器回應(yīng)ACK響應(yīng),若客戶端在RTR設(shè)置的時間后連續(xù)發(fā)送RCR+1次還未收到ACK響應(yīng),W5300端口狀態(tài)寄存器(Sn_SSR)將變?yōu)镾OCKET_CLOSED,并且數(shù)據(jù)發(fā)送端口中斷寄存器(Sn_IR)相應(yīng)位置1,發(fā)出中斷請求。

2.1.3端口TX/RX存儲器分配

W5300擴(kuò)展了128K通信數(shù)據(jù)存儲器,由16個8K字節(jié)存儲單元組成[9-10]。這些存儲單元可以由存儲器單元類型配置寄存器以8K的倍數(shù)配置為發(fā)送和接收單元,再由存儲器大小配置寄存器分配給每個端口TX存儲器和RX存儲器。

2.2 W5300端口連接

W5300初始化完成后,需要依據(jù)設(shè)計(jì)要求對端口進(jìn)行配置并連接。W5300具有8個獨(dú)立端口,可同時進(jìn)行數(shù)據(jù)通信。以客戶端SOCKET1為例,端口配置和連接流程如圖3所示。

W5300有4個緩沖區(qū)監(jiān)視外接引腳BRDY[3:0],用于實(shí)時監(jiān)測SOCKETn數(shù)據(jù)收發(fā)狀態(tài)。本系統(tǒng)配置了BRDY0和BRDY1分別對SOCKET1 TX/RX存儲器監(jiān)測。在TCP客戶端模式下,客戶端必須在執(zhí)行連接命令之前配置目標(biāo)地址。而服務(wù)器則在端口建立連接后,S1_DIPR和S1_PORTR自動設(shè)置為TCP客戶端IP地址和端口號。端口模式寄存器S1_MR決定了端口通信方式,S1_MR功能描述如表3所示。

在TCP模式下,收到的數(shù)據(jù)包字節(jié)數(shù)為偶數(shù)時隊(duì)列對齊數(shù)據(jù)位“ALIGN=1”,此時刪除數(shù)據(jù)包中的PACKET-INFO,可以極大提高數(shù)據(jù)讀取速度。為了使W5300只接收指定網(wǎng)絡(luò)數(shù)據(jù)包,需要將MF位置1。而ND/IGMPv置1時,端口在收到對端發(fā)送的數(shù)據(jù)包后立刻發(fā)送ACK數(shù)據(jù)包響應(yīng),可以提高TCP通信性能。P0~P3即配置端口通信協(xié)議(TCP、UDP、IPRAW等)或PPPoE SOCKET與PPPoE服務(wù)器之間的操作,開發(fā)者可根據(jù)項(xiàng)目需求自行選擇。

圖3 端口連接流程圖

表3 S1_MR功能表

2.3 W5300數(shù)據(jù)發(fā)送和接收

在對以太網(wǎng)協(xié)議芯片W5300初始化和端口設(shè)置并連接成功后,便可以進(jìn)行數(shù)據(jù)傳輸。首先客戶端主動發(fā)送連接請求數(shù)據(jù)包SYN;服務(wù)器則執(zhí)行偵聽命令,等待客戶端連接。圖4以本系統(tǒng)中SOCKET1為例介紹W5300數(shù)據(jù)發(fā)送和接收流程。

在TCP模式下,當(dāng)ALIGN=1時,RX接收到的數(shù)據(jù)包內(nèi)只含有有效數(shù)據(jù),主機(jī)可以從S1_RX_RSR寄存器直接獲取RX的數(shù)據(jù)包長度;否則數(shù)據(jù)包由2Bytes的PACKET-INFO和有效數(shù)據(jù)組成,數(shù)據(jù)包信息包含在PACKET-INFO內(nèi),數(shù)據(jù)包長度保存在S1_RX_FIFOR寄存器中讀取[11]。數(shù)據(jù)以包為單位讀取,數(shù)據(jù)包長度作為數(shù)據(jù)讀取循環(huán)控制量。當(dāng)數(shù)據(jù)包字節(jié)長度為奇數(shù)時,數(shù)據(jù)最后一個字節(jié)為啞字節(jié),需要直接丟棄。

當(dāng)數(shù)據(jù)發(fā)送完成后,端口中斷寄存器S1_IR(4)自動置1,并需要通過FPGA向W5300S1_IR(4)寫1以清除中斷標(biāo)志位。

圖4 W5300數(shù)據(jù)發(fā)送和接收流程

3 實(shí)驗(yàn)驗(yàn)證

本設(shè)計(jì)中,采用了TCP/IP通信協(xié)議,實(shí)現(xiàn)了客戶端和服務(wù)器兩個網(wǎng)絡(luò)系統(tǒng)之間的數(shù)據(jù)傳輸。端口連接成功后,首先由客戶端向服務(wù)器發(fā)送打包后的遞增數(shù),服務(wù)器收到數(shù)據(jù)后保存到Flash,再由測試臺通過PXI總線傳輸?shù)诫娔X保存,并通過上位機(jī)軟件分解校驗(yàn)。接收數(shù)據(jù)時序圖如圖5,本系統(tǒng)控制器采用60 M時鐘頻率,11個時鐘周期接收2 Byte數(shù)據(jù),理論傳輸速度為87.27 Mbps。數(shù)據(jù)和校驗(yàn)結(jié)果如圖6所示,結(jié)果無誤碼,無丟幀。

圖5 接收數(shù)據(jù)時序圖

圖6 上位機(jī)軟件報(bào)告和數(shù)據(jù)

此次測試共發(fā)送 5 150 437個數(shù)據(jù)包,其中1KB數(shù)據(jù)為一包。根據(jù)網(wǎng)絡(luò)數(shù)據(jù)開始發(fā)送和數(shù)據(jù)發(fā)送停止時間可以算出以太網(wǎng)數(shù)據(jù)傳輸速度。在進(jìn)行多次大量測試后,均無誤碼和丟幀現(xiàn)象出現(xiàn),以太網(wǎng)數(shù)據(jù)實(shí)際傳輸速度可以達(dá)到85.79 Mbps,與設(shè)計(jì)指標(biāo)相符。

4 結(jié)論

提出了采用“主控制器FPGA+網(wǎng)絡(luò)協(xié)議芯片W5300”組成的網(wǎng)路數(shù)據(jù)傳輸系統(tǒng),重點(diǎn)描述了W5300的寄存器配置流程。實(shí)踐證明系統(tǒng)軟件編寫容易、結(jié)構(gòu)簡單、實(shí)用性強(qiáng)。經(jīng)過大量實(shí)驗(yàn)驗(yàn)證,能夠?qū)崿F(xiàn)不同設(shè)備之間零誤碼傳輸,且速度達(dá)80 Mbps以上。該系統(tǒng)已經(jīng)在高速數(shù)據(jù)圖像傳輸工程中得到應(yīng)用。

猜你喜歡
存儲器寄存器中斷
靜態(tài)隨機(jī)存儲器在軌自檢算法
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
分簇結(jié)構(gòu)向量寄存器分配策略研究*
存儲器——安格爾(墨西哥)▲
基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計(jì)
AT89C51與中斷有關(guān)的寄存器功能表解
FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
灵璧县| 旬阳县| 龙江县| 贵溪市| 巴青县| 舞阳县| 泾源县| 呼玛县| 龙州县| 卢龙县| 武川县| 濮阳县| 宣威市| 渭源县| 山阳县| 海晏县| 博湖县| 乌什县| 西安市| 疏附县| 富川| 天峻县| 贞丰县| 揭西县| 安陆市| 台州市| 阜平县| 桑植县| 河津市| 阿瓦提县| 盐津县| 全南县| 华宁县| 土默特右旗| 鸡西市| 林州市| 会泽县| 尖扎县| 措美县| 徐闻县| 临安市|