亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于W5300的DSP工業(yè)以太網(wǎng)數(shù)據(jù)傳輸設(shè)計

        2021-12-22 06:29:26杭州卓天科技有限公司郭炎鵬金理劍陳國棟
        關(guān)鍵詞:寄存器中斷以太網(wǎng)

        杭州卓天科技有限公司 郭炎鵬 金理劍 陳國棟

        介紹了一種采用DSP總線掛載W5300以太網(wǎng)協(xié)議芯片實現(xiàn)工業(yè)以太網(wǎng)數(shù)據(jù)傳輸?shù)能浻布O(shè)計及優(yōu)化方法。該設(shè)計實現(xiàn)了TCP/IP協(xié)議數(shù)據(jù)高性能、高穩(wěn)定性傳輸,并在項目工程實踐中得到廣泛應(yīng)用。

        0 引言

        工業(yè)以太網(wǎng)技術(shù)是目前工業(yè)領(lǐng)域最廣泛的網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù),能滿足工業(yè)應(yīng)用中的高穩(wěn)定、高效率、低時延、低成本、遠(yuǎn)距傳輸、智能化、易集成等多種需求。根據(jù)其技術(shù)應(yīng)用特點,在工業(yè)生產(chǎn)過程的控制及管理領(lǐng)域得到廣泛應(yīng)用。工業(yè)以太網(wǎng)解決方案目前有三種:(1)采用中央處理器單元(Central Processing Unit,CPU)與物理層接口芯片連接,在控制器內(nèi)編寫以太網(wǎng)(Ethernet)通信協(xié)議。此種方法需要耗費(fèi)大量的時間精力去編寫繁雜協(xié)議程序及進(jìn)行后期調(diào)試,網(wǎng)絡(luò)協(xié)議比較龐大和復(fù)雜,程序穩(wěn)定性往往會出現(xiàn)問題,對快速開發(fā)系統(tǒng)與可靠運(yùn)行是不利的。(2)在嵌入式系統(tǒng)上運(yùn)行Linux操作系統(tǒng),因操作系統(tǒng)自帶TCP/IP等復(fù)雜的通信協(xié)議,可方便實現(xiàn)以太網(wǎng)通信,但該方法需對操作系統(tǒng)比較熟悉,移植難度大、專業(yè)性強(qiáng)、開發(fā)周期長。(3)將網(wǎng)絡(luò)協(xié)議芯片獨立于系統(tǒng)處理器CPU之外,只需要系統(tǒng)處理器CPU對網(wǎng)絡(luò)協(xié)議芯片進(jìn)行總線訪問,實現(xiàn)寄存器讀寫就可以進(jìn)行以太網(wǎng)傳輸通信,此方式采用硬件模塊化替代軟件開發(fā),分擔(dān)處理器CPU負(fù)擔(dān),系統(tǒng)硬件簡單,軟件穩(wěn)定,開發(fā)周期短,利于后期維護(hù)升級。因此,本文基于第三種工業(yè)以太網(wǎng)解決方案,設(shè)計了一種采用DSP TMS32F28335總線掛載外設(shè)W5300以太網(wǎng)協(xié)議芯片實現(xiàn)TCP/IP網(wǎng)絡(luò)數(shù)據(jù)傳輸,并重點對硬件連接和軟件可靠性設(shè)計進(jìn)行研究和優(yōu)化。

        1 W5300以太網(wǎng)協(xié)議芯片

        W5300是韓國WIZnet公司設(shè)計的一款0.18μm CMOS專用網(wǎng)絡(luò)協(xié)議芯片器件,內(nèi)部已經(jīng)集成了TCP/IP協(xié)議棧、10/10OM以太網(wǎng)控制器、MAC和PHY。W5300與主機(jī)采用總線連接,支持8位/16位的數(shù)據(jù)總線。它支持8路獨立的Socket通信,內(nèi)部含128KB的發(fā)送/接收緩沖區(qū)進(jìn)行快速數(shù)據(jù)交換,最大有效通信速率可達(dá)70Mbps[1]。使用W5300不需要主機(jī)干預(yù),內(nèi)部自己處理所有以太網(wǎng)底層通信協(xié)議,只需要對端口(Socket)進(jìn)行配置和編程。W5300內(nèi)部設(shè)置了三種寄存器,包括模式寄存器(MR)、通用寄存器(COMMON)和端口寄存器(SOCKET)。模式寄存器可設(shè)置接口模式和總線寬度;配置寄存器設(shè)置中斷寄存器、硬件地址、網(wǎng)關(guān)地址、本機(jī)IP地址和傳輸存儲器大小;端口寄存器可實現(xiàn)數(shù)據(jù)的接收和發(fā)送及訪問端口的發(fā)送/接收緩沖寄存器。該芯片集成了各種通信協(xié)議進(jìn)行硬件邏輯化處理,可實現(xiàn)簡單、快捷、穩(wěn)定的Internet連接,大大提高了網(wǎng)絡(luò)傳輸開發(fā)效率,廣泛應(yīng)用于高性能、低成本工業(yè)以太網(wǎng)網(wǎng)絡(luò)傳輸領(lǐng)域。

        2 TMS320F28335與W5300的硬件接口連接

        DSP TMS320F28335為主處理器CPU,通過地址線和數(shù)據(jù)線與W5300相連。在直接地址模式下,主處理器F28335將W5300內(nèi)模式寄存器(MR)、通用寄存器(COMMON)和端口寄存器(SOCKET)映射到存儲空間,直接訪問W5300的上述寄存器。這些寄存器從主機(jī)系統(tǒng)的基地址開始以2字節(jié)遞增方式連續(xù)映射在主機(jī)存儲器空間。使用映射地址,只需0x400字節(jié)的存儲器空間。

        本設(shè)計W5300片選信號接F28335的ZONE6區(qū),W5300映射地址占用F28335從0x100000到0x1003FF共2K的地址空間。W5300 10位地址線和16位數(shù)據(jù)線以及讀寫信號線直接與F28335連接,不需要電平轉(zhuǎn)換。F28335的GPIO連接W5300的復(fù)位信號進(jìn)行硬件強(qiáng)制復(fù)位, W5300的中斷信號線接入F28335的外部中斷XINTl。W5300的BIT16EN引腳決定數(shù)據(jù)總線模式:BIT16EN拉高時為16位寬數(shù)據(jù)總線模式,BIT16EN拉低時為8位寬數(shù)據(jù)總線模式[2]。本設(shè)計采用W5300其他引腳如BIT16EN拉高到3.3V,定義為16位寬數(shù)據(jù)總線模式;TEST_MODE[3∶0]4個引腳接低電平,定義為使用內(nèi)部PHY模式(正常運(yùn)行模式);OP_MODE[2∶0]3個引腳均接低電平,定義為全功能自動握手模式。該系統(tǒng)結(jié)構(gòu)圖如圖1所示。

        圖1 系統(tǒng)硬件接線Fig.1 System hardware wiring

        由系統(tǒng)硬件連接圖可看出,該方案硬件電路簡單,形式類似于DSP芯片總線掛載外設(shè)SRAM,只額外增加了復(fù)位和中斷兩條控制線。

        3 系統(tǒng)軟件設(shè)計

        3.1 W5300初始化配置

        第一步設(shè)置W5300初始化。由于W5300不支持上電復(fù)位,初始化之前須硬件復(fù)位,DSP GPIO引腳/RESET產(chǎn)生一個低電平脈沖,脈沖寬度持續(xù)大于2us。復(fù)位完成后設(shè)置W5300的MR=0x0000,W5300與主機(jī)的接口模式為直接總線模式MR(IND)為0;設(shè)置IR=0x0000,清所有中斷標(biāo)志;IMR=0x00FF允許8個SOCKETn中斷。第二步網(wǎng)絡(luò)設(shè)備初始化。通過SHAR、SIPR、SUBR、GAR、RTR和RCR等寄存器配置本機(jī)硬件地址、本機(jī)IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址、超時重發(fā)及重發(fā)次數(shù)。第三步分配SOCKETn內(nèi)部TX/RX存儲器空間。通過設(shè)置MTYPER=0x00FF,使第1到第8個存儲單元為TX,其他8個存儲單元為RX。設(shè)TMSR=0x0808,RMSR=0x0808,使每個SOCKETn的TX/RX存儲器都為8KB。

        3.2 W5300數(shù)據(jù)傳輸流程

        W5300初始化之后,在TCP模式下,首先根據(jù)IP地址和端口號與對端建立連接。建立SOCKETn連接有兩種方式:一種是“TCP服務(wù)器”模式,等待對端的連接請求當(dāng)收到連接請求時建立連接(被動打開);另一種是“TCP客戶端”模式,主動發(fā)出連接請求,與對端建立連接(主動打開)。

        一般DSP主控制系統(tǒng)是作為服務(wù)器使用,本設(shè)計W5300配置為TCP服務(wù)器模式,完成主要步驟為:設(shè)置偵聽端口號,執(zhí)行端口打開、偵聽對端連接請求、連接建立后數(shù)據(jù)的接收和發(fā)送以及主動或被動斷開連接請求等。具體步驟如下:

        第一步初始化SOCKETn。在TCP服務(wù)器模式為實現(xiàn)SOCTKETn的TCP通信:

        (1)首先設(shè)置Sn_CR為CLOSE,使Sn關(guān)閉,Sn_SSR變?yōu)镾OCK_CLOSED;

        (2)設(shè)置Sn_MR=0x0001,使SOCTKETn采用TCP協(xié)議;

        (3)通過Sn_PORTR寄存器設(shè)置本機(jī)偵聽端口號;

        (4)設(shè)置Sn_CR=OPEN,打開端口。經(jīng)過延時,若Sn_SSR變?yōu)镾nCK_INIT,則SOCKETn端口打開初始化完成,否則重復(fù)執(zhí)行(1)~(4)步。

        第二步偵聽對端連接并建立連接。設(shè)置Sn_CR為LISTEN,一直掃描Sn_SSR直至變?yōu)镋STABLISHED,否則關(guān)閉SOCKET重新進(jìn)行端口打開并重復(fù)偵聽過程。直至連接已建立,可以進(jìn)行數(shù)據(jù)傳輸。

        第三步接收數(shù)據(jù)。以中斷的方式實現(xiàn)接收數(shù)據(jù)。

        (1)W5300設(shè)置允許接收中斷,在中斷服務(wù)程序中掃描Sn_IR為RECV接收數(shù)據(jù)中斷,調(diào)用W5300數(shù)據(jù)接收函數(shù);

        (2)執(zhí)行數(shù)據(jù)接收函數(shù);首先通過讀取Sn_MR寄存器ALIGN標(biāo)志位計算接收數(shù)據(jù)的長度。S0_CR執(zhí)行RECV指令,然后從RX存儲器中移出相應(yīng)長度接收的數(shù)據(jù),最后通過解析接收數(shù)據(jù)執(zhí)行回復(fù)發(fā)送命令。

        第四步發(fā)送數(shù)據(jù)。執(zhí)行W5300發(fā)送函數(shù)。

        (1)讀取發(fā)送緩沖存儲器的剩余空間是否夠用。首先讀取Sn_TX_FSR寄存器大小,判斷是否可以發(fā)送數(shù)據(jù)。如果發(fā)送的字節(jié)數(shù)小于等于Sn_TX_FSR,則可以向W5300發(fā)送緩沖寄存器中寫入數(shù)據(jù)。

        (2)若非首次發(fā)送操作,在運(yùn)行SEND指令前,需查詢Sn_IR狀態(tài)是否為SENDOK,Sn_IR=SENDOK證明上一次數(shù)據(jù)發(fā)送已成功完成,可執(zhí)行發(fā)送SEND指令。如果上一次的發(fā)送指令還沒有執(zhí)行完而又開始下一次的發(fā)送指令,將會產(chǎn)生錯誤和故障。

        第五步主動或被動斷開連接。

        當(dāng)Sn_IR=DISCON接收到對端發(fā)來的斷開連接中斷,則被動執(zhí)行斷開連接的處理,可執(zhí)行CLOSE或DISCON指令來斷開與客戶端的連接。若連接請求、數(shù)據(jù)傳輸、ARP請求或其響應(yīng)等數(shù)據(jù)包超時發(fā)送,將產(chǎn)生TIMEOUT中斷,W5300主動執(zhí)行CLOSED或DISCON指令來斷開與客戶端的連接。在TCP服務(wù)器模式下關(guān)閉端口后W5300再次打開端口均回到LISTEN狀態(tài)等待下次連接。

        4 系統(tǒng)優(yōu)化設(shè)計

        從軟件實際測試情況來看,在非正常斷網(wǎng)下,有可能出現(xiàn)網(wǎng)絡(luò)連接一直建立,SOCKET處于OPEN狀態(tài)沒有執(zhí)行CLOSED的情況,此種情況反復(fù)多次出現(xiàn)后,8個端口(Socket)被全部打開,則后續(xù)無法建立新的SOCKET連接,出現(xiàn)網(wǎng)絡(luò)故障。在軟件優(yōu)化上采用定時檢測數(shù)據(jù)交換情況,一旦某個SOCKET連接長時間無數(shù)據(jù)交換,W5300可以主動執(zhí)行CLOSED關(guān)閉該端口。釋放SOCKET端口,然后重新打開執(zhí)行LISTEN,建立新的連接,從而避免上述網(wǎng)絡(luò)故障情況出現(xiàn)。軟件經(jīng)過優(yōu)化后未出現(xiàn)斷網(wǎng)情況,極端情況下也可自己恢復(fù)通信功能。

        TMS320F28335訪問W5300的速率直接決定了W5300通信傳輸速度。通過對TMS320F28335軟件進(jìn)行優(yōu)化可以減小對W5300訪問時間,提升程序代碼執(zhí)行速率。TMS 320F28335程序代碼一般存放在片內(nèi)FLASH中,如果代碼直接在FLASH中執(zhí)行則程序讀寫等待周期長,代碼執(zhí)行效率低。但如果代碼在片內(nèi)SARAM中執(zhí)行,程序讀寫周期可相對提高5倍速率,大大提高了代碼執(zhí)行效率。因此程序在TMS320F28335上電初始化后立即將代碼從FLASH寄存器的搬移至SARAM中執(zhí)行,采用FLASH流水線功能,這樣可以減小訪問等待周期,大大這樣提升DSP執(zhí)行代碼的效率,提高W5300的通信傳輸速度[3]。將FLASH程序搬移至SARAM代碼如下:

        memcpy( &RamAppFuncsRunStart,

        &RamAppFuncsLoadStart,

        &RamAppFuncsLoadEnd - &RamAppFuncsLoad Start);

        5 結(jié)語

        本文詳細(xì)介紹了DSP TMS320F28335掛載W5300以太網(wǎng)協(xié)議芯片的軟硬件設(shè)計及優(yōu)化方案。該設(shè)計方案可實現(xiàn)高性能、低成本工業(yè)以太網(wǎng)網(wǎng)絡(luò)數(shù)據(jù)傳輸。經(jīng)工程驗證,系統(tǒng)在TCP/IP協(xié)議的數(shù)據(jù)通信方面具有穩(wěn)定可靠表現(xiàn)。

        猜你喜歡
        寄存器中斷以太網(wǎng)
        基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
        Lite寄存器模型的設(shè)計與實現(xiàn)
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
        電子制作(2017年24期)2017-02-02 07:14:44
        一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
        淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        国产成人精品蜜芽视频| 无码人妻精品丰满熟妇区| 亚洲男人第一av网站| 国产精品女同久久免费观看| 日韩一级137片内射视频播放 | 成人精品一区二区三区电影| 国产亚洲精品久久久久久| 国产免费人成视频在线播放播| 亚洲产在线精品亚洲第一页| 青青草精品在线视频观看| 在线视频观看免费视频18| 久久中文字幕无码一区二区| 97自拍视频国产在线观看| 91成人自拍国语对白| 久久亚洲国产成人精品性色| 加勒比无码专区中文字幕| 亚洲一区二区三区亚洲| 极品粉嫩嫩模大尺度无码视频 | 另类免费视频在线视频二区| 免费福利视频二区三区| 少妇人妻中文久久综合| 曰韩无码二三区中文字幕| 精品国产福利久久久| 中文字幕日韩精品中文字幕| 国产97色在线 | 国产| 婷婷五月综合缴情在线视频| 久久精品国产亚洲AⅤ无码剧情| 日本视频一区二区三区观看| 婷婷色婷婷开心五月四房播播| 亚洲综合色一区二区三区小说| 亚洲一本之道高清在线观看| 免费国产自拍在线观看| 大陆极品少妇内射aaaaa| 国产大片中文字幕| 国产av丝袜熟女丰满一区二区| 色综合久久精品亚洲国产| 99热免费精品| 精品一区二区三区老熟女少妇| 妺妺窝人体色www婷婷| 亚洲av色先锋资源电影网站| 亚洲视频在线播放免费视频|