论文部分内容阅读
随着物联网技术的快速发展,越来越多的传统工业设备有了接入网络的需求。大多数传统工业设备最常用的通信接口是串口,不具备网络接口,不能直接接入网络;一些有入网能力的工业设备,很多也只支持IPv4相关协议。地址池已然枯竭的IPv4在面对有着海量地址需求的工业设备时显得十分无力。为了解决上述问题,本文在深入研究LwIP协议栈IPv6内核的基础上设计了一款轻量级的嵌入式网关,网关可以实现串口设备与TCP/IPv6设备间的应用报文交换。研究的重点是IPv6相关协议的轻量级实现及应用,包括协议实现过程中涉及到的数据结构、算法、接口等,而非IPv6本身。本文首先介绍了与IPv6有关的协议,重点描述了IPv6的编址体系、IPv6分组格式、ICMPv6的报文类型和报文格式、邻居发现协议等内容。接着深度剖析了Git中添加了IPv6支持的LwIP协议栈,主要从LwIP架构和进程模型、动态内存管理机制、网络接口管理机制、IPv6核心协议组件、ICMPv6核心协议组件等方面对协议栈进行了较为透彻地分析,同时针对LwIP不能对带有扩展首部的IPv6分组进行分片的问题提出了一种改进方法。设计了网关系统的硬件平台并给出了移植支持IPv6的LwIP协议栈的详细方法。网关选用STM32F103ZET6作为主控制芯片,ENC28J60为网卡芯片,结合Keil集成开发环境完成了LwIP的移植工作。Ping测试结果表明协议栈的移植是成功的。网关的整体软件架构没有使用操作系统,而是采用无限循环结合中断的方式设计,这主要是出于数据转发实时性方面的考量。对于网关的应用层协议,从语法、语义和时序三个方面进行了设计,给出了具体的报文转发规则。最后的测试结果表明,网关能够实现基本的数据转发,也能够承受200字节每包、10包每秒的压力通信。