91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以太網(wǎng)的心跳包組建設(shè)計(jì)方案

454398 ? 來(lái)源:FPGA開(kāi)源工作室 ? 作者:FPGA開(kāi)源工作室 ? 2020-09-30 10:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

心跳包就是在客戶端和服務(wù)器間定時(shí)通知對(duì)方自己狀態(tài)的一個(gè)自己定義的命令字,按照一定的時(shí)間間隔發(fā)送,類(lèi)似于心跳,所以叫做心跳包。心跳包在GPRS通信和CDMA通信的應(yīng)用方面使用非常廣泛。數(shù)據(jù)網(wǎng)關(guān)會(huì)定時(shí)清理沒(méi)有數(shù)據(jù)的路由,心跳包通常設(shè)定在30-40秒之間。所謂的心跳包就是客戶端定時(shí)發(fā)送簡(jiǎn)單的信息給服務(wù)器端告訴它我還在而已。代碼就是每隔幾分鐘發(fā)送一個(gè)固定信息給服務(wù)端,服務(wù)端收到后回復(fù)一個(gè)固定信息如果服務(wù)端幾分鐘內(nèi)沒(méi)有收到客戶端信息則視客戶端斷開(kāi)。本次設(shè)計(jì)中,心跳包時(shí)間間隔為1秒。

一、心跳包觸發(fā)器

設(shè)計(jì)一個(gè) 1 秒定時(shí)器,每隔一秒就產(chǎn)生一個(gè)心跳包觸發(fā)脈沖,用于下一步心跳包的組建。

二、心跳包粗略框架

本次以太網(wǎng)的心跳包結(jié)構(gòu)如下所示:

本次發(fā)送 64 個(gè)全為0的數(shù)據(jù),當(dāng)然這個(gè)數(shù)據(jù)是自定義的,因此心跳包總長(zhǎng)度為118。此外目的/源 MAC 地址、目的/源 IP 地址、目的/源 port 等值可以用參數(shù)的方式先寫(xiě)好。利用剛剛設(shè)計(jì)的心跳包觸發(fā)脈沖,我們就能組建這個(gè)心跳包了。表中黃色部分為后面需要校驗(yàn)的值,可以先填0進(jìn)去,后面再覆蓋掉這三處即可。代碼也沒(méi)什么說(shuō)的,用參數(shù)和case語(yǔ)句即可。

點(diǎn)擊電腦 Win + R 鍵,輸入 cmd,再出入 ipconfig -all,按回車(chē)鍵,即可看到自己電腦的 MAC 地址等參數(shù)。

三、心跳包填充:IP校驗(yàn)和UDP校驗(yàn)

1、IP校驗(yàn)方法

IP 校驗(yàn)就是把 IP 首部 20byte 按 2byte(即 16bit)分開(kāi)后相加,結(jié)果如果大于 16’hffff,就將超出 16’hffff 的部分與相加結(jié)果的低 16 位相加,直到最終結(jié)果小于 16’hffff 為止。最后把小于 16’hffff 的結(jié)果取反作為 ip_checksum。高字節(jié)在前,低字節(jié)在后,替換掉前面在心跳包中填充的 0。

(1) 校驗(yàn)和字段清0

假設(shè)有一段以太網(wǎng)包前面沒(méi)有對(duì) IP 校驗(yàn)和字段清0,而是賦了別的值,例如 IP 首部為:45 00 00 30 80 4c 40 00 80 06 b5 2e d3 43 11 7b cb 51 15 3d,b5 2e 字段即為 IP 校驗(yàn)和字段,清0后數(shù)據(jù)就變成了:45 00 00 30 80 4c 40 00 80 06 00 00 d3 43 11 7b cb 51 15 3d。

(2) 反碼求和

4500+0030+804c+4000+8006+0000+d343+117b+cb51+153d = 34ace,將超過(guò) 16’hffff 的部分(即3)與低 16 位(即4ace)上,結(jié)果為:3+4ace=4ad1,因?yàn)?4ad1 小于 ffff,故作為 Ip_checksum 的反碼。

(3) 取反得最終結(jié)果

將 4ad1 取反得 b52e,這就是本包數(shù)據(jù)最終的 IP 校驗(yàn)和,再將 b52e 填充到對(duì)應(yīng)位置即可。

2、UDP校驗(yàn)方法

(1) 校驗(yàn)方法

UDP_checksum 計(jì)算稍微復(fù)雜一點(diǎn),需要加入 IP 偽頭部,將 IP 偽頭部、UDP 首部的 8 個(gè) bytes 和數(shù)據(jù)包部分按 2byte(即 16bit) 分開(kāi)后相加,結(jié)果如果大于16’hffff,就將超出 16’hffff 的部分與相加結(jié)果的低 16 位相加,直到最終結(jié)果小于 16’hffff 為止。最后把小于 16’hffff 的結(jié)果取反作為 UDP_checksum。高字節(jié)在前,低字節(jié)在后,替換掉前面在心跳包中填充的0。

(2) UDP結(jié)構(gòu)

UDP_checksum 的組成如圖所示。

可以看到,IP 偽頭部包含了 IP 源地址,IP 目的地址,一個(gè)字節(jié)的 0,協(xié)議號(hào)和 UDP_len ,在前面做的千兆以太網(wǎng)圖像傳輸項(xiàng)目中 IP 源地址,IP 目的地址,協(xié)議號(hào)都是固定的,而通過(guò)上一篇博客設(shè)計(jì)的 UDP_len 為:UDP首部 8byte + 數(shù)據(jù)長(zhǎng)度 64byte = 8+64='h0048。在設(shè)計(jì)的時(shí)候可以先單獨(dú)將 IP 偽頭部計(jì)算出來(lái)。

3、計(jì)算的時(shí)序安排

ip_checksum 和 udp_checksum 計(jì)算完成,該數(shù)據(jù)填充的位置已經(jīng)經(jīng)過(guò),那么就沒(méi)辦法將數(shù)據(jù)填充到原來(lái)填充 0 的位置了,但我們想要將其組成完整的以太網(wǎng)包,這一步是不可避免的,那么我們?cè)撛趺唇鉀Q呢?我們可以考慮一下,建立一個(gè)足夠大的 RAM ,在計(jì)算 ip_checksum 和 udp_checksum 的同時(shí)將前面心跳包數(shù)據(jù)存儲(chǔ)到 RAM 中,當(dāng)這一包數(shù)據(jù)全部計(jì)算完再將 RAM 中的數(shù)據(jù)讀出。當(dāng)讀出到要填充 ip_checksum 和 udp_checksum 的位置時(shí),將計(jì)算出的兩個(gè)值取反后填充到對(duì)應(yīng)位置即可。

4、時(shí)序圖

四、心跳包填充:CRC校驗(yàn)

1、CRC校驗(yàn)范圍

CRC校驗(yàn)另起一段,是因?yàn)橐人阃昵懊娴?ip 校驗(yàn)值和 UDP 校驗(yàn)值才行。CRC校驗(yàn)時(shí)必須先去除幀頭(即前面的7個(gè)55和1個(gè)d5),還得去掉幀尾(即后面4個(gè)數(shù)據(jù),前面我們直接在這填了0)。當(dāng) CRC 校驗(yàn)值計(jì)算完成后,即可將其填充至數(shù)據(jù)的末尾 4 位即可。

2、CRC校驗(yàn)方法

(1)CRC校驗(yàn)初始值和空閑值都設(shè)置為 32‘hffffffff,即全 1 狀態(tài)。

(2)計(jì)算結(jié)果需高低位對(duì)調(diào),因?yàn)槲覀冇?jì)算時(shí)是先從高位輸入的,所以最后高低位需要對(duì)調(diào)。

(3)最后結(jié)果取反,高低位對(duì)調(diào)后的結(jié)果再取反,即可得到 CRC 的校驗(yàn)值。

3、CRC校驗(yàn)部分代碼
always @(posedge sclk) begin
if(rst) begin
crc32_value end
else if(crc_en) begin
crc32_value[ 0] crc32_value[ 1] crc32_value[ 2] crc32_value[ 3] crc32_value[ 4] crc32_value[ 5] crc32_value[ 6] crc32_value[ 7] crc32_value[ 8] crc32_value[ 9] crc32_value[10] crc32_value[11] crc32_value[12] crc32_value[13] crc32_value[14] crc32_value[15] crc32_value[16] crc32_value[17] crc32_value[18] crc32_value[19] crc32_value[20] crc32_value[21] crc32_value[22] crc32_value[23] crc32_value[24] crc32_value[25] crc32_value[26] crc32_value[27] crc32_value[28] crc32_value[29] crc32_value[30] crc32_value[31] end
end

4、時(shí)序圖

由于這次 CRC 校驗(yàn)值是在末尾,因此不需要用到 RAM 也來(lái)得及填充。

至此,我們組建了以太網(wǎng)發(fā)送的心跳包,下一步就可以發(fā)送了。

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    41

    文章

    6020

    瀏覽量

    180965
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1399

    瀏覽量

    120640
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2056

    瀏覽量

    63424
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    407

    瀏覽量

    38885
  • 時(shí)序圖
    +關(guān)注

    關(guān)注

    2

    文章

    61

    瀏覽量

    22997
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    GL5450助力以太網(wǎng)記錄解決方案

    01應(yīng)用背景:以太網(wǎng)在智能汽車(chē)中的關(guān)鍵作用在汽車(chē)智能化、電動(dòng)化與網(wǎng)聯(lián)化持續(xù)演進(jìn)的趨勢(shì)下,以太網(wǎng)已逐步成為車(chē)載通信的核心骨干網(wǎng)絡(luò),廣泛應(yīng)用于自動(dòng)駕駛域控制器、信息娛樂(lè)系統(tǒng)、攝像頭視頻傳輸以及V2X等高
    的頭像 發(fā)表于 01-14 10:02 ?336次閱讀
    GL5450助力<b class='flag-5'>以太網(wǎng)</b>記錄解決<b class='flag-5'>方案</b>

    探索單對(duì)以太網(wǎng)(SPE)連接器:KYOCERA AVX的創(chuàng)新解決方案

    探索單對(duì)以太網(wǎng)(SPE)連接器:KYOCERA AVX的創(chuàng)新解決方案 引言 隨著工業(yè)以太網(wǎng)市場(chǎng)的持續(xù)增長(zhǎng),對(duì)更小、更快連接器的需求也日益迫切。單對(duì)以太網(wǎng)(Single Pair Eth
    的頭像 發(fā)表于 12-30 10:10 ?575次閱讀

    RDMA設(shè)計(jì)12:融合以太網(wǎng)協(xié)議棧設(shè)計(jì)1

    本文主要交流設(shè)計(jì)思路,在本博客已給出相關(guān)博文90多篇,希望對(duì)初學(xué)者有用。注意這里只是拋磚引玉,切莫認(rèn)為參考這就可以完成商用IP設(shè)計(jì)。 融合以太網(wǎng)協(xié)議棧負(fù)責(zé)用戶請(qǐng)求與 RDMA 數(shù)據(jù)的轉(zhuǎn)換、管理
    發(fā)表于 12-25 11:39

    Amphenol單對(duì)以太網(wǎng)(SPE)IP20連接器及電纜組件:工業(yè)以太網(wǎng)新選擇

    Amphenol單對(duì)以太網(wǎng)(SPE)IP20連接器及電纜組件:工業(yè)以太網(wǎng)新選擇 在工業(yè)自動(dòng)化和物聯(lián)網(wǎng)蓬勃發(fā)展的今天,高效、可靠且經(jīng)濟(jì)的網(wǎng)絡(luò)連接解決方案至關(guān)重要。Amphenol的單對(duì)以太網(wǎng)
    的頭像 發(fā)表于 12-12 10:40 ?680次閱讀

    基于以太網(wǎng)芯片的應(yīng)用層方案

    聚焦于以沁恒微電子以太網(wǎng)芯片(如CH394/CH395及集成型MCU CH32V317等)為基礎(chǔ)構(gòu)建的多種高效應(yīng)用層方案,闡述其如何以簡(jiǎn)化的硬件與低成本,實(shí)現(xiàn)豐富的網(wǎng)絡(luò)功能。
    的頭像 發(fā)表于 12-09 14:47 ?531次閱讀
    基于<b class='flag-5'>以太網(wǎng)</b>芯片的應(yīng)用層<b class='flag-5'>方案</b>

    以太網(wǎng)設(shè)備高溫流量測(cè)試丟問(wèn)題案例(晶振篇)

    測(cè)試人員發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象,設(shè)備在白天的測(cè)試中,均無(wú)丟現(xiàn)象,夜間設(shè)備繼續(xù)運(yùn)行,但是第二天一早就會(huì)發(fā)現(xiàn)已發(fā)生丟。該設(shè)備的用戶接口是百兆以太網(wǎng)接口,利用5類(lèi)非屏蔽雙絞線與SmartBits連接,由于端口............
    的頭像 發(fā)表于 11-21 15:37 ?3843次閱讀
    <b class='flag-5'>以太網(wǎng)</b>設(shè)備高溫流量測(cè)試丟<b class='flag-5'>包</b>問(wèn)題案例(晶振篇)

    以太網(wǎng)模塊被忽視的角落 #電磁兼容EMC #電子工程師 #電子元器件 #磁珠 #濾波電容 #以太網(wǎng)

    以太網(wǎng)
    深圳市韜略科技有限公司
    發(fā)布于 :2025年07月25日 17:35:35

    以太網(wǎng)入門(mén):從零開(kāi)始,掌握以太網(wǎng)基礎(chǔ)知識(shí)!

    以太網(wǎng)作為現(xiàn)代通信技術(shù)的基石,其重要性不言而喻。無(wú)論是日常網(wǎng)絡(luò)應(yīng)用,還是AI對(duì)高速大帶寬網(wǎng)絡(luò)的需求,以太網(wǎng)都扮演著不可或缺的角色。本文將從零開(kāi)始,帶您了解以太網(wǎng)的基礎(chǔ)知識(shí),幫助您快速入門(mén)。什么是
    的頭像 發(fā)表于 06-09 14:00 ?4117次閱讀
    <b class='flag-5'>以太網(wǎng)</b>入門(mén):從零開(kāi)始,掌握<b class='flag-5'>以太網(wǎng)</b>基礎(chǔ)知識(shí)!

    Microchip LAN9211-ABZJ 集成 10/100 以太網(wǎng) PHY的以太網(wǎng)控制器

    Microchip LAN9211-ABZJ 集成 10/100 以太網(wǎng) PHY的以太網(wǎng)控制器
    的頭像 發(fā)表于 06-04 14:56 ?1137次閱讀
    Microchip LAN9211-ABZJ 集成 10/100 <b class='flag-5'>以太網(wǎng)</b> PHY的<b class='flag-5'>以太網(wǎng)</b>控制器

    雙通道CAN轉(zhuǎn)以太網(wǎng)#CAN轉(zhuǎn)以太網(wǎng)#三格電子

    以太網(wǎng)
    三格電子科技
    發(fā)布于 :2025年05月12日 13:17:05

    Modbus轉(zhuǎn)以太網(wǎng)終極方案:三步實(shí)現(xiàn)老舊設(shè)備智能升級(jí)

    傳輸 ? 速度差距:Modbus RTU波特率115.2kbps vs 千兆以太網(wǎng) ? 系統(tǒng)孤島:無(wú)法接入SCADA/MES等現(xiàn)代管理系統(tǒng) ? 傳輸穩(wěn)定性:Modbus RTU數(shù)據(jù)傳輸丟率高,以太網(wǎng)
    發(fā)表于 04-24 10:37

    串口轉(zhuǎn)以太網(wǎng)芯片選型指南:2025十大以太網(wǎng)模塊品牌盤(pán)點(diǎn)與應(yīng)用方案解析

    隨著物聯(lián)網(wǎng)(IoT)、工業(yè)自動(dòng)化和智能設(shè)備的廣泛普及,串口轉(zhuǎn)以太網(wǎng)技術(shù)的需求持續(xù)增長(zhǎng)。串口轉(zhuǎn)以太網(wǎng)芯片作為實(shí)現(xiàn)串口設(shè)備聯(lián)網(wǎng)的核心組件,在工業(yè)控制、數(shù)據(jù)采集、智能家居等領(lǐng)域起到了至關(guān)重要的作用。然而
    的頭像 發(fā)表于 04-09 15:30 ?2048次閱讀

    廣成科技CAN轉(zhuǎn)以太網(wǎng)模塊的作用和應(yīng)用

    CAN轉(zhuǎn)以太網(wǎng)模塊是一類(lèi)能夠?qū)AN總線數(shù)據(jù)轉(zhuǎn)換為以太網(wǎng)數(shù)據(jù)的設(shè)備,通常用于實(shí)現(xiàn)CAN總線與以太網(wǎng)總線之間的互聯(lián)互通。在智能鎖柜和智能文件交換箱中,CAN轉(zhuǎn)以太網(wǎng)模塊可以實(shí)現(xiàn)將本地CA
    的頭像 發(fā)表于 03-20 13:58 ?1395次閱讀
    廣成科技CAN轉(zhuǎn)<b class='flag-5'>以太網(wǎng)</b>模塊的作用和應(yīng)用