电子-嵌入式系统中TCPIP协议的精简与实现.pdf

所需积分/C币:5 2019-09-05 16:52:17 225KB PDF
收藏 收藏
举报

电子-嵌入式系统中TCPIP协议的精简与实现.pdf,单片机/嵌入式STM32-F0/F1/F2
其中MAC、I地址格式都是固定的,系统的配置用于确定系统的I地址及端口以及MAC 地址值。在本系统中由于传送的数据有限,只定义了4个用于传送和接收数据的缓冲区每个 长度为150字节。 2)网络驱动接口:由于网络驱动也是我们白己编制的,所以与上层结合起来很顺利,接 收时釆用中断机制,当收到网络中断就读取薮据,根据包的种类分别传给ARP或P协议, 由每一层自行处理数据。发送时采用查询方式,应用层准备好数据,一层层封装并向下传递, 最后经由网络驱动程序发送。 3)链路层ARP协议的实现: 首先定义ARP数据帧头结构及ARP高速缓冲表,数据帧必须根据标准定义,高速缓冲表 至少要含有IP地址及相对应的MAC地址两项。由」嵌入式系统所连接的对象数目较少且都 比较固定,所以就去掉了缓冲表的定时刷新程序,这样可以大大减少系统的刷新开销。 这一部分的主要工作是 a、根据上层数据包中的IP地址,在高速缓冲表中查出对应的MAC地址并填入包中相应 位置。若表中没有相应MAC地址,则按照格式组装一个ARP请求包并发送,以得到对方MAC 地址。 若收到ARP应答包,则更新ARP缓存表 主要函数有: struct pbuf米 arp packet( struct arpdata*q)//把要发送的ARP数据打包成网络格 式字节流 struc t mac*arp1 hookup( struct ip*p)/′根据IP地址在ARP缓存表中查找WAC 地址,若找不到则自动向网终广播ARP请求; void arp_ input( struct pbu*p)//从驱动程序传入ARP帧数据,如果是AR请求则 发送一个ARP应答包,如果是ARP应答则更新ARP缓存表; 4)网终层IP协议及Ping应答的实现: 首先定义数据结构IP及IO灬数据帧格式,这两者都要根据标准米定义。这一部分的主 要工作有: a、对上一层传下来的数据包,加上IP首部和IP校验和,发往下一层。以及对下一层 传上来的数据包,进行校验和检查,若正确去掉IP首部,送往上一层。 b、为了便于测试要响应主机的PING程序,即如收到ICMP的回显请求包,则按照格式 组装一个ICMP的回显应答包并发送。 主要函数有 int ip input( struct pbuf*p);/输入下一层的数据包,去掉IP首部传给上一层; int ip send data(struct pbuf p, int len, int type, struct ip dst ip); //E- 层的数据加上IP首部,并向下一层发送; void ip packet( struct pbuf*p, struct ip data*q,int1en);//IP首部和数据打包 U16 ip chksum(U8*, int len);//P检验和计算 void icmp input( struct pbuf*)如果ICMP的回显请求,则发一个应答包; 5)传输层UD协议的实现: 根据标准定义UDP数据帧格式。这一部分的主要工作有:对应用层传下来的数据包,加 上IDP首部和LD校验和,发往下一层。以及对下一层传上来的数据包,进行校验和检查, 若正确去掉UDP首部,提出数据送给应用层。需注意的是,要产生一个伪首部用于UDP数据 检验和计算。 主要函数有: void udp input( struct pbuf*p);//从下一层输入UDP数据 void udp output(U8*str, struct ip dst ip,Ul6 dst port);/问向下层发送UDP 数据 void makeup header( struct ip*p,U161en,U8xq);/生伪首备用于UDP检验和 计算 U16 udp chksum(U8*p, int len,U8*pl, int len1);/计算UD检验和 6)执行过程: 当本地系统有数据要发送时,首先在传输层将数据加上UDP首部,再到网络层加IP首 部,然后到链路层从ARP表中査询相应的MAC地址,填入相应位置,并发给网终驱动程序传 到以太网上。 图2是用SPYN软件截取的本系统启动后第·次发送串字符的整个网络协议应答过 程,由于是第一次发送,ARP表为空。所以当发送UDP数据时找不到目的IP地址对应的MAC 地址,系统先发ARP请求,等对方回一个ARP应答,得到对方MAC地址,然后再发UDP数据 包 I. Frse Protocol Addr. IP sre Addr. Ir dest Fo..Por.. Size P sre 0 1.. ARP ARP->Request 192.168.39.24119.188.39.245 1.. ARP ARP->Reply 192.168.38.245192.168.39.241 IP 19218833241191883324530030902 虚线框内为UDP包00EE11c506111?223300004300,V,“33,E 0o10 Q304000…:46,A6…你O,病,0,,., 0020:mD6D601c明6865206E65: the ne to30:66B20 7374072 twork is start BD6源端BD6目的 01C:16 FE:16位UD4以下为发送的 口号 端口号 长度 检验和 信息数据 图2一个实际UDP数据包发送全过程 4、结束语 由于嵌入式系统发展及互联网络的普及、远程控制和信息家电的兴起,嵌入式系统与互 联络的结合逐渐成为一种新的技术发展方向,嵌入式TCP/IP协议的选择与实现是这一技 术必须要面对的。很多时候在涉及TCP/PP协议时,都容易被其复杂的体系结构所迷惑,而 不敢轻易动手,本文提出的这种嵌入式TCP/ⅠP协议的选拌思路及给出的一套精简TCP/IP 协议子集的实现过程,对于这一方面的研究很具有参考价值。

...展开详情
试读 5P 电子-嵌入式系统中TCPIP协议的精简与实现.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    weixin_38744153 如果觉得有用,不妨留言支持一下
    2019-09-05
    • 至尊王者

      成功上传501个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    电子-嵌入式系统中TCPIP协议的精简与实现.pdf 5积分/C币 立即下载
    1/5
    电子-嵌入式系统中TCPIP协议的精简与实现.pdf第1页
    电子-嵌入式系统中TCPIP协议的精简与实现.pdf第2页

    试读已结束,剩余3页未读...

    5积分/C币 立即下载 >