• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      0 引言

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

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

      W5300是韓國(guó)WIZnet公司設(shè)計(jì)的一款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路獨(dú)立的Socket通信,內(nèi)部含128KB的發(fā)送/接收緩沖區(qū)進(jìn)行快速數(shù)據(jù)交換,最大有效通信速率可達(dá)70Mbps[1]。使用W5300不需要主機(jī)干預(yù),內(nèi)部自己處理所有以太網(wǎng)底層通信協(xié)議,只需要對(duì)端口(Socket)進(jìn)行配置和編程。W5300內(nèi)部設(shè)置了三種寄存器,包括模式寄存器(MR)、通用寄存器(COMMON)和端口寄存器(SOCKET)。模式寄存器可設(shè)置接口模式和總線寬度;配置寄存器設(shè)置中斷寄存器、硬件地址、網(wǎng)關(guān)地址、本機(jī)IP地址和傳輸存儲(chǔ)器大?。欢丝诩拇嫫骺蓪?shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送及訪問端口的發(fā)送/接收緩沖寄存器。該芯片集成了各種通信協(xié)議進(jìn)行硬件邏輯化處理,可實(shí)現(xiàn)簡(jiǎ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)映射到存儲(chǔ)空間,直接訪問W5300的上述寄存器。這些寄存器從主機(jī)系統(tǒng)的基地址開始以2字節(jié)遞增方式連續(xù)映射在主機(jī)存儲(chǔ)器空間。使用映射地址,只需0x400字節(jié)的存儲(chǔ)器空間。

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

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

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

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

      3.1 W5300初始化配置

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

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

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

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

      第一步初始化SOCKETn。在TCP服務(wù)器模式為實(shí)現(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ī)偵聽端口號(hào);

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

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

      第三步接收數(shù)據(jù)。以中斷的方式實(shí)現(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)志位計(jì)算接收數(shù)據(jù)的長(zhǎng)度。S0_CR執(zhí)行RECV指令,然后從RX存儲(chǔ)器中移出相應(yīng)長(zhǎng)度接收的數(shù)據(jù),最后通過解析接收數(shù)據(jù)執(zhí)行回復(fù)發(fā)送命令。

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

      (1)讀取發(fā)送緩沖存儲(chǔ)器的剩余空間是否夠用。首先讀取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ā)送指令,將會(huì)產(chǎn)生錯(cuò)誤和故障。

      第五步主動(dòng)或被動(dòng)斷開連接。

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

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

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

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

      memcpy( &RamAppFuncsRunStart,

      &RamAppFuncsLoadStart,

      &RamAppFuncsLoadEnd - &RamAppFuncsLoad Start);

      5 結(jié)語(yǔ)

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

      猜你喜歡
      寄存器中斷以太網(wǎng)
      基于1500以太網(wǎng)養(yǎng)豬場(chǎng)的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動(dòng)化中的應(yīng)用
      電子制作(2017年24期)2017-02-02 07:14:44
      一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計(jì)
      淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
      AT89C51與中斷有關(guān)的寄存器功能表解
      FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
      桃江县| 富蕴县| 岳普湖县| 沭阳县| 邳州市| 泾源县| 泗洪县| 东宁县| 安义县| 于都县| 祁阳县| 吉林省| 运城市| 宿迁市| 阿鲁科尔沁旗| 新建县| 专栏| 达尔| 八宿县| 铜鼓县| 嘉定区| 海兴县| 沙田区| 开远市| 株洲市| 民乐县| 贵阳市| 龙南县| 陆良县| 桐乡市| 梁平县| 惠安县| 察哈| 上犹县| 武胜县| 溧阳市| 聂拉木县| 海盐县| 镇坪县| 南通市| 济南市|