IPv6的嵌入式设计与实现

相关专题: 无线 芯片

引言

随着嵌入式系统应用的快速发展,为实现对其他设备的控制、监视或管理等功能,需要将嵌入式设备连入互联网,以便于远程控制和监测。为将嵌入式设备连入互联网,需要有通信模块实现通信协议。目前嵌入式设备能够通过主流的TCP/IP 协议可直接与外网连接。然而随着网络规模的日益扩大、上网设备和人数的激增,目前采用的IPv4逐渐接近其自身发展的极限,其中比较显著的问题是IP 地址资源的不足。IPv6[1] 采用长度为128 位的地址,地址空间几乎可以视为无限,IPv6不仅完全地解决了地址短缺问题,还对在IPv4 中解决不好的其他问题(如,端到端IP连接、服务质量、安全性、移动性等方面)进行了改进。IPv6成为嵌入式设备进行网络互连的首选。

1 嵌入式系统中TCP/IPv6 协议栈的特点与设计

1.1 嵌入式系统中TCP/IPv6 协议栈的特点

嵌入式系统不同于普通系统,它在硬件资源的占有量以及处理器的处理能力等方面受到限制,因此TCP/IP 协议栈在嵌入式系统与其在通用操作系统中的实现有很大不同。对于嵌入式系统而言,考虑到TCP/IP协议的复杂性以及嵌入式系统自身资源的有限,对TCP/IP 的实现并不是一件容易的事情[2]。因此就需要对原本复杂的TCP/IPv6 协议栈的实现进行精简。嵌入式IPv6 协议栈独立于嵌入式设备的操作,代码空间小、移植性好,可以在无法承载操作系统的小存储空间的嵌入式设备上实施,以实现这些设备间的基本网络功能。

1.2 嵌入式系统中TCP/IPv6 协议栈的设计

芯片采用挪威Chipcon 公司推出的符合2.4GHz IEEE802.15.4 标准的射频收发器CC2420[3] 。该协议栈要实现TCP/IPv6 协议栈的基本功能,运行于无线网环境下。底层协议采用IEEE 802.15 工作组制定的802.15.4 协议,802.15.4 协议是一个短距离的无线通信标准。网络层支持TCP、ICMPv6 协议,不实现UDP 协议。

1.2.1 网络接口层

网络接口层是TCP/IPv6 协议栈与以太网设备的驱动程序之间的接口。一方面,它将从网卡接收到的数据提交给上层网络层协议软件处理;另一方面,它将从网络层接收来的数据传送给网卡驱动。接口函数介绍如下:

(1)初始化函数

初始化函数InitNi()负责实现网络接口层以及下层的物理设备驱动程序的初始化。主要包括以太网控制器的上电复位、MAC 地址的配置、收发缓冲环首尾地址的配置以及DMA 的初始化和收发数据格式的定义等。

(2)发送函数

在发送数据时,网络接口层发送函数Send_Ethernet_Frame()负责接收IP协议产生的数据,将其封装成以太网数据帧后,调用下层的Send_ Packet()函数实现发送。Send_Packet()函数实现的是把以太网数据帧通过远程DMA 通道送到RTL8019AS 中的发送缓存区,然后再启动本地DMA,将数据发送网上。

(3)接收函数

在接收数据时,网络接口层接收函数Rec_Ethernet_Packed( )被下层以太网驱动程序的数据接收函数Rec_Packet()调用。Rec_Ethernet_Packed()的作用根据以太类型值,调用不同的函数,同时去除以太帧的头部,将正确的IPv6 数据从NIC 的数据缓冲区内发送到ARM 的接收缓冲区内。Rec_Packet()函数通过读取RTL8019AS的当前寄存器CURR(写寄存器)和边界寄存器BNRY(读寄存器)的值来确定是否有新数据的到来,若有新数据到来,则设置数据地址和数据长度,然后启动远程DMA 将接收缓冲环中的以太网帧送交给上层。

2 嵌入式TCP/IPv6 协议栈的实现

2.1 嵌入式TCP/IPv6 协议栈处理流程

如图1 所示,嵌入式TCP/IPv6 协议接收数据包的过程就是解析数据包的过程。首先由底层处理函数解析数据包,根据类型,将去掉帧首部的数据包分配到缓冲区BUF 中,接着由IP 协议处理程序继续解析。IP 协议处理程序对数据包解析后,将数据交给TCP 或ICMPv6 协议处理程序。嵌入式TCP/IPv6 协议栈发送数据包的过程是封装数据包的过程,数据经过某层协议的处理,就会在数据包首部增加某种格式的首部。

.

作者:应明峰,蔡瑞英 来源:微计算机信息


微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“YD5GAI”免费领取《中国移动:5G网络AI应用典型场景技术解决方案白皮书
  • 2、回复“5G6G”免费领取《5G_6G毫米波测试技术白皮书-2022_03-21
  • 3、回复“YD6G”免费领取《中国移动:6G至简无线接入网白皮书
  • 4、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 5、回复“ZGDX”免费领取《中国电信5GNTN技术白皮书
  • 6、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 7、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 8、回复“5GX3”免费领取《R1623501-g605G的系统架构1
  • 本周热点本月热点

     

      最热通信招聘

      最新招聘信息

    最新技术文章

    最新论坛贴子