⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip.h

📁 RTL8019以太网开发板资料
💻 H
字号:
/*************************************************************************************/
#ifndef IP_H_
#define IP_H_

#include "main.h"

/* IP格式 */
#define     UWORK8         unsigned char       /* 无符号字符,8位,范围-128~127 */
#define     WORK8          signed char         /* 有符号字符,8位,范围0~255 */
#define     UWORK16        unsigned short      /* 无符号16位短整型,范围0~65535 */
#define     WORK16         signed short        /* 有符号16位短整型,范围-32768~32767 */
#define     UWORK32        unsigned long       /* 无符号32位长整型,范围0~4294967295 */
#define     WORK32         signed long         /* 有符号32位长整型,范围-2147483648~2147483647 */
#define     FWORK32        float               /* 浮点数,范围±1.175494E-38 ~ ±3.402823E+38*/

#define IP_type                 0x0800
#define ARP_type                0x0806

#define ICMP                    1
#define IGMP                    2
#define TCP                     6
#define UDP                     17

#define MORE_FRAGMENT           0x2000
#define NOD_ID_LENGTH           6            /* MAC地址长度 */
#define PACKET_LENGTH           1510         /* 数据长度,留出一些余量在计算校验和时防止数组越界 */
#define ETHER_HEAD_LEN          14           /* 以太网头 */
#define SEGMENT_DATA            2000         /* 分片数据缓冲大小 */
#define NET_SEND_BUFF           1510         /* 发送缓冲大小 */

#define IP_LEN                  4
#define MAC_LEN                 6

#define REMOTE_IP_NUM           1            /* 远程IP地址数目 */
#define IP_HEAD_LEN  20            //IP头的长度
typedef struct
{
    UWORK8   ucVerAndLen;              /* 版本号和长度,各占4位 */
    UWORK8   ucDs;                     /* 区分服务 */
    UWORK16  usTotalLen;                /* 总长度 */
    UWORK16  usID;                      /* 标识 */
    UWORK16  usSegOffset;               /* 分片偏移 */
    UWORK8   ucTTL;                    /* 生存时间 */
    UWORK8   ucprotocol;               /* 协议 */
    UWORK16 usCheckSum;                /* 校验和 */
    UWORK8   ucSourceIP[IP_LEN];       /* 源IP地址 */
    UWORK8   ucDestIP[IP_LEN];         /* 目的IP地址 */
}ST_IP_HEAD_FORMAT;

extern xdata ST_IP_HEAD_FORMAT gstIphead;

extern xdata UWORK8 IPLocalAddress_buf[IP_LEN];                    /* 源IP地址 */
extern xdata UWORK8 SubNetMask_buf[IP_LEN];                   /* 子网掩码 */
extern xdata UWORK8 GateWay_buf[IP_LEN];                      /* 网关 */
extern xdata UWORK8 IPSourceddress_buf[IP_LEN];                    //源IP地址 
extern xdata UWORK8 IPDestAddress_buf[IP_LEN];                    /* 目标IP地址 */
extern UWORK16 SourcePort;			//源端口号
extern UWORK16 DesPort;				//目标端口号


extern void IpOrRouter(void);
extern void IpSend(void);
extern void IpReceive(void);

extern UWORK16 CheckSum(UWORK16 *pusPointer,UWORK16 usDataLen);
extern void IpOrRouter(void);
extern void IpReceive(void);
extern void IpSend(void);
extern void RcvEthernetData(void);
extern UWORK8 RevEthernetPacket(void);
extern void SendDiagnoseData(void);
extern UWORK8 SendEthernetPacket(UWORK16 usEthDataSendLen);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -