文档编号: 密级:内部
嵌入式IP 协议栈 需求规格说明书
二零一三年三月
需求规格说明书
关于本文档
1
2
3
目录
引言 . .......................................................................................................................................... 2 1.1 编写目的 . ...................................................................................................................... 2 1.2 项目背景 . ...................................................................................................................... 2 任务概述 . .................................................................................................................................. 2 2.1 项目功能概述 . .............................................................................................................. 2 2.2 项目目标 . ...................................................................................................................... 2 实施计划 . .................................................................................................................................. 5 3.1 阶段划分 . ...................................................................................................................... 8 3.2 项目阶段细分表 . .......................................................................................................... 8
需求规格说明书
1 引言
1. 1 编写目的
本开发计划的目的是对实施过程进行指导和控制。
1. 2 项目背景
本项目名称为:嵌入式IP 协议栈。
近几年计算机互联网得到了大量的应用,尤其在嵌入式领域,计算机与日常使用的设备无缝的连接在了一起。这样就要求日常设备也要实现与计算机进行网络互联,实现TCP/IP协议。Arm 单片机是目前市场上主流的单片机,uCos 系统是一款常用的实时操作系统,所以本项目准备在Arm LPC2124上,基于uCos 操作系统,实现嵌入式IP 协议栈。
2 任务概述
本项目预实现一个中间层模块,项目模块完成后,开发人员可按照各自需要实现的功能对此模块进行扩充, 本项目完成后要根据不同模块发布几个库文件和头文件,注意接口定义要明确,头文件要写清晰。
操作系统: uCOS 网络芯片: enc28j60
硬件环境: 使用Proteus + LPC2124 开发环境: Keil V0.3
2. 1 项目功能概述
1) 除了网卡驱动部分外,其他层软件都要做到与硬件无关。
2) 实现enc28j60网卡的驱动(物理层+MAC层) ,驱动部分的接口耦合度尽量小,如果
换成另一款网卡的话,可平滑移植。 3) 实现ARP 协议。 4) 实现IP 协议。
5) 实现ICMP 协议(在此层完成ping 功能)。 6) 实现TCP 协议。 7) 实现UDP 协议。
8) 实现socket 通信(与linux socket 接口一致)。 9) 实现DHCP 协议。 10) 实现DNS 协议 11) 能够将ping 的结果通过串口输出,并能通过串口进行debug ,从网络传递过
来的应用数据也要打印到串口上。
2. 2 项目目标
1)项目成员掌握嵌入式开发流程,及了解嵌入式开发必备知识。 2)掌握TCP/IP各层协议及实现方法。
3)熟练应用C 语言,学习嵌入式调试手法。
4)项目成员掌握TCP/IP协议栈的buffer 设计方法。 5)培养快速学习新的知识,并在项目中使用的能力。
6)使学员掌握项目分层设计的方法,模块化程序设计的方法。
3 项目设计
3. 1 T C P /I P I n t e r n e t 环境中的分层
主机A
图3-1 TCP/IP Internet环境中的分层
主机B
3. 2 设计框架
3.2.2 模块层次关系
应用层
运输层
IP 层
网络接口层
图3-2程序设计模块图
需求规格说明书
3. 3 协议数据的封装 应用层
运输层
IP 层
网络接口层
图3-3协议数据封装图
注:从网卡接收到的数据,经过网络接口层的解码,IP 层的解码,TCP 层的解码,就得到了原始的应用数据。
3. 4 主程序流程
图3-4主程序流程图
4 开发体制
职责说明:
5
实施计划
5. 1 阶段划分
项目启动时间(学员): 项目结束时间:
5. 2 项目阶段细分表
需求规格说明书 6 设计要求
1) 函数接口明确清晰
高内聚,低耦合,定义书规范。
2) 编码规范
参考C 编码规范进行函数,变量,文件定义。
3) 资源分配
由于在嵌入式开发中内存的资源是非常宝贵的,所以一定要合理分配内存的空间。
7
8 参考
TCP/IP详解(卷1,卷2,卷3)
ENC28J60数据手册
项目难点
9
文档编号: 密级:内部
嵌入式IP 协议栈 需求规格说明书
二零一三年三月
需求规格说明书
关于本文档
1
2
3
目录
引言 . .......................................................................................................................................... 2 1.1 编写目的 . ...................................................................................................................... 2 1.2 项目背景 . ...................................................................................................................... 2 任务概述 . .................................................................................................................................. 2 2.1 项目功能概述 . .............................................................................................................. 2 2.2 项目目标 . ...................................................................................................................... 2 实施计划 . .................................................................................................................................. 5 3.1 阶段划分 . ...................................................................................................................... 8 3.2 项目阶段细分表 . .......................................................................................................... 8
需求规格说明书
1 引言
1. 1 编写目的
本开发计划的目的是对实施过程进行指导和控制。
1. 2 项目背景
本项目名称为:嵌入式IP 协议栈。
近几年计算机互联网得到了大量的应用,尤其在嵌入式领域,计算机与日常使用的设备无缝的连接在了一起。这样就要求日常设备也要实现与计算机进行网络互联,实现TCP/IP协议。Arm 单片机是目前市场上主流的单片机,uCos 系统是一款常用的实时操作系统,所以本项目准备在Arm LPC2124上,基于uCos 操作系统,实现嵌入式IP 协议栈。
2 任务概述
本项目预实现一个中间层模块,项目模块完成后,开发人员可按照各自需要实现的功能对此模块进行扩充, 本项目完成后要根据不同模块发布几个库文件和头文件,注意接口定义要明确,头文件要写清晰。
操作系统: uCOS 网络芯片: enc28j60
硬件环境: 使用Proteus + LPC2124 开发环境: Keil V0.3
2. 1 项目功能概述
1) 除了网卡驱动部分外,其他层软件都要做到与硬件无关。
2) 实现enc28j60网卡的驱动(物理层+MAC层) ,驱动部分的接口耦合度尽量小,如果
换成另一款网卡的话,可平滑移植。 3) 实现ARP 协议。 4) 实现IP 协议。
5) 实现ICMP 协议(在此层完成ping 功能)。 6) 实现TCP 协议。 7) 实现UDP 协议。
8) 实现socket 通信(与linux socket 接口一致)。 9) 实现DHCP 协议。 10) 实现DNS 协议 11) 能够将ping 的结果通过串口输出,并能通过串口进行debug ,从网络传递过
来的应用数据也要打印到串口上。
2. 2 项目目标
1)项目成员掌握嵌入式开发流程,及了解嵌入式开发必备知识。 2)掌握TCP/IP各层协议及实现方法。
3)熟练应用C 语言,学习嵌入式调试手法。
4)项目成员掌握TCP/IP协议栈的buffer 设计方法。 5)培养快速学习新的知识,并在项目中使用的能力。
6)使学员掌握项目分层设计的方法,模块化程序设计的方法。
3 项目设计
3. 1 T C P /I P I n t e r n e t 环境中的分层
主机A
图3-1 TCP/IP Internet环境中的分层
主机B
3. 2 设计框架
3.2.2 模块层次关系
应用层
运输层
IP 层
网络接口层
图3-2程序设计模块图
需求规格说明书
3. 3 协议数据的封装 应用层
运输层
IP 层
网络接口层
图3-3协议数据封装图
注:从网卡接收到的数据,经过网络接口层的解码,IP 层的解码,TCP 层的解码,就得到了原始的应用数据。
3. 4 主程序流程
图3-4主程序流程图
4 开发体制
职责说明:
5
实施计划
5. 1 阶段划分
项目启动时间(学员): 项目结束时间:
5. 2 项目阶段细分表
需求规格说明书 6 设计要求
1) 函数接口明确清晰
高内聚,低耦合,定义书规范。
2) 编码规范
参考C 编码规范进行函数,变量,文件定义。
3) 资源分配
由于在嵌入式开发中内存的资源是非常宝贵的,所以一定要合理分配内存的空间。
7
8 参考
TCP/IP详解(卷1,卷2,卷3)
ENC28J60数据手册
项目难点
9