系统实现类论文范例 跟基于Nucleus操作系统实现TCP和UDP协议通信相关论文怎么撰写

本论文可用于系统实现论文范文参考下载,系统实现相关论文写作参考研究。

基于Nucleus操作系统实现TCP和UDP协议通信

  摘 要:Nucleus操作系统凭借具有操作系统源码、调试时可跟踪至中断和寄存器级,以及支持多种处理器进行系统移植的优势,成为实时嵌入式产品系统优选,本文针对实时系统网络通信需求,提出利用操作系统外挂Nucleus NET模块实现TCP和UDP协议通信,并将源代码运用于多种模式组网终端产品,结果表明,数据语音通信及时顺达.

  关键词:嵌入式系统;嵌入式操作系统;Nucleus;协议通信

  中图分类号:TP316

文献标识码:A

  1 引言(Introduction)

  嵌入式操作系统是随着嵌入式系统的发展而出现的.早期嵌入式产品直接对处理器内部寄存器进行读写即可完成硬件接口驱动,没有专门的操作系统,应用软件直接建立在硬件上[1],软件通常以硬件的附属品的形式出现.从20世纪80年代,嵌入式软件进入操作系统的阶段:建立一个嵌入式实时应用程序变得非常直接,因为驻留在主机系统上的应用程序文件可以编译/汇编成目标文件并连接[2].

  本文首先介绍了Nucleus操作系统的一些基础知识,包括Nucleus PLUS和Nucleus NET.然后在这个基础之上介绍了如何使用Nucleus操作系统.接着介绍在Nucleus操作系统中,如何实现TCP和UDP协议[3]的通信.具体包括协议通信模型,以及相关的Nucleus系统函数.在本文的最后,还引用了两段作者在实际产品开发过程中编写的代码来举例说明如何实现网络通信这一功能.

  2 Nucleus操作系统(Nucleus operation system)

  Nucleus操作系统是美国ATI公司推出的嵌入式操作系统,属于工作实时、任务抢先、多线程操作内核[4].它为实时要求较高的嵌入式应用而设计.Nucleus操作系统大约95%的代码由ANSI C语言编写,因此适用于大多数微处理器[4].

  2.1 Nucleus PLUS的简介

  Nucleus PLUS是Nucleus操作系统的实时多任务内核,主要负责任务管理、系统内存分配和回收各个硬件设备的驱动控制等.Nucleus内核所需空间很小,因此可以极大程度减小系统开销.其中,复杂指令集体系结构中占约20k字节,精简指令集体系结构中开销约40k字节,其内核数据结构1.5k字节[5].Nucleus PLUS内核系统结构图,详见图1.

  通过内核系统结构图可以看出,系统调用两种资源,其一是用户编写的中断服务程序,其二是系统资源管理组件[6],也称作软件组件.每一种组件类适于Windows机制下的动态链接库文件,它允许程序共享执行特殊任务所必需的代码和其他资源.各组件之间相互独立,一般只能通过外部接口进行访问而不能直接访问组件内部.Nucleus PLUS的具体组件列表,详见表1.

  这些组件能够为系统开发提供以下支持:任务管理(多任务和基于优先级和分时的任务调度)、任务间同步和互斥(通过信号量、事件组和信号实现)、通信(通过邮箱、队列和管道等)、存储器优化管理(提供动态和分区内存两种存储器管理机制)、实时时钟服务,以及中断管理服务.其中最常见的中断管理服务为利用定时器来处理周期性事件,以及任务的睡眠和挂起超时[6].

  软件工程师首先按照用户需求编写主任务代码,完成用户界面.对于每个任务调用组件并将中断任务放置于不同的中断接口服务程序,实现与Nucleus PLUS的内核的系统资源交互共享.

  2.2 Nucleus NET的简介

  前面介绍的Nucleus PLUS是Nucleus操作系统的核心,但并不支持网络功能.Nucleus NET是ATI公司为满足用户进行网络通讯要求设计开发的一个组件,与Nucleus PLUS联合使用.

  Nucleus NET网络体系结构组织属于上下层单项隶属关系,每个下层只服务于它的上层,类似于子函数被调用,每个层有相对完整的功能,层与层之间接口独立.

  Nucleus NET网络由以下四个层次[7]组成:

  (1)物理层.其中硬件设备是指网卡、网线、集线器和中继器,信号是调制解调器通信信道中传输的原始比特流,位于网络结构中的最底层.

  (2)数据链路层.Nucleus NET网络内核在数据链路层上,通过网桥,交换机等物理寻址方式将原始比特流转换为逻辑传输,为网络之间搭建、保持、发放数据,以及链路数据错误校正、重发等功能.

  (3)网络层.数据准备好之后,路由器设备即第三层网络层就负责维护各个子网的正常有序运行,如逻辑编址、分组传输和路由选择.

  (4)传输层.在Nucleus NET网络结构中是最高层,物理设备主要是网关,负责提供端到端的可靠通信.它提供通用的传输接口,这样高层用户就无需知道底层具体细节,就可以传输数据.传输层有两类不同的协议服务:TCP协议和UDP协议.前者属于面向连接的“传输控制协议”,后者属于面向无连接的“用户数据报协议”[8].

  3 Nucleus PLUS系统初始化(Nucleus PLUS system

  

initialization)

  由于系统最先运行“INT_初始化程序”,所以其中必须包括所有目标硬件复位向量地址、中断向量表、全局声明的数据结构、控制寄存器地址、系统变量和堆栈指针.

  当“INT_初始化”程序完成后,控制权被转移到“INC_初始化”上.“INC_初始化”调用各个组件的初始化子程序.当各组件初始化均完成之后,“INC_初始化” 调用“应用_初始化”.

  以上两个初始化均属于内核驱动,而“应用_初始化”函数才是程序员编写应用软件时的第一个函数.当Nucleus系统开始启动后,这个负责定义初始化应用程序环境的函数优先运行.“应用_初始化”函数所配备的指针,首址指向一片“自由净土”,是不被编译器或Nucleus PLUS占用的.

  “应用_初始化”函数格式如下:void App_Ini(void*first_ail_memory)

  一般情况下,在App_Ini函数中调用NU_Create_Memory_Pool函数、NU_Allocate_Memory函数和NU_Create_Task函数.通过这三个函数初始化应用程序环境.主要是创建内存区,分配内存区和建立第一个任务.在建立的任务中就可以编写自己的应用程序.

  4 Nucleus NET初始化(Nucleus Net initialization)

  在Nucleus NET的初始化相对于Nucleus PLUS的初始化要简单的多.主要由两个初始化函数NU_Init_Net函数和NU_Init_Devices函数来完成.这其中还有一个重要的NU_DEVICE结构体需要进行填充.NU_Init_Net函数主要负责初始化网络堆栈,包括设置内部数据结构和分配必要的资源.NU_DEVICE结构体中主要包含要使用的网络接口的一些参数.包括网络接口使用的驱动名称,设定驱动的操作,接口初始化程序的入口,接口的IP地址,接口的子网掩码,接口的中断,I/O设备起始地址和设备共享内存地址.配置完NU_DEVICE结构体后,调用该结构体的数据结构初始化函数和设备底层驱动程序中硬件初始化函数.

  5 TCP协议通信(TCP protocol communication)

  5.1 TCP协议简介

  TCP传输控制协议(Tranission Control Protocol)是一种面向连接的、可靠的、基于字节流的通讯协议.TCP协议位于Nucleus网络层次的第四层传输层上.在Nucleus NET中通常使用C/S模式,完成建立连接、发送数据及接受数据工作.

  5.2 TCP协议通信模型

  在服务器端,Nucleus分四个步骤分别调用四个函数:首先通过NU_Socket函数“构造”一个套接字,其次用NU_Bind函数“绑定”本地地址结构与套接字.然后用NU_Linsten函数“监听”来自客户端的请求,当聆听到有远程客户发出连接请求后,第四步,Nucleus调用NU_Accept函数,“接受”连接请求,给请求者分配一个新的套接字.

  在客户端,Nucleus也是调用NU_Socket和NU_Bind函数构造并绑定套接字,然后NU_Connet函数会接收到服务器发送的“接受”请求指令,它就为执行“连接”,具体细节就是为该请求构造一个表.只有连接完成后,才会中止请求任务.此时已做好传送数据的准备.

  数据的发送NU_Send函数和接收NU_Recv函数对于服务器和客户端是一致的,数据传输完成后调用NU_Close_Socket函数关闭套接字.TCP协议通信流程图,详见图2.

  6 UDP协议通信(UPD protocol communication)

  6.1 UDP协议简介

  UDP(User Datagram Protocol)用户数据报协议,也位于Nucleus网络层次的第四层传输层,属于无面向连接,无需建立和释放连接,服务器和客户端直接发送原始IP数据报文[9].

  6.2 UDP通信模型

  在服务器端,首先使用NU_Socket函数创建一个套接字,创建完套接字后调用NU_Bind函数将本地地址与套接字进行绑定.绑定成功后,调用NU_Recv_From函数等待来自客户端的数据,同时也可以调用NU_Send_To函数发送数据给客户端.当数据传输结束后,可以调用NU_Close函数关闭连接.

  在客户端,首先使用NU_Socket函数创建一个套接字.创建套接字成功后,就可以调用NU_Send_To函数发送数据和使用NU_Recv_To函数接收数据.数据传输完成后,可以调用NU_Close函数关闭连接.

  在UDP协议中,服务器端不需要监听来自客户端的请求,客户端也不需要连接服务器端.这是与TCP协议最大的区别.这也造成UDP协议在传输过程只能够存在可能丢失的情况,但是其资源消耗小、处理数据块的优点[10],通常用于传输音频和图像和普通数据.具体流程图见图3.

  7 代码实现(Code implementation)

  如果要在硬件平台上使用基于Nucleus操作系统编写的嵌入式应用软件,就需要根据具体的硬件平台进行初始化.由于硬件平台的不同,初始化的过程虽然跟前文描述的差不多,但是在具体细节上存在很多的差异.特别是一些参数的配置上,不同的硬件平台有不同的参数配置.因此在下面的两段代码中,就没有提及Nucleus操作系统的初始化过程,而是直接描述网络通信模块.

  7.1 TCP网络通信

  以下是一段基于TCP协议,本机为服务器端的Nucleus NET代码.具体内容包含建立连接和收发数据两个任务.

  7.2 UDP网络通信

  以下是一段基于UDP协议,本机为服务器端的Nucleus NET代码.具体内容包含初始化和收发数据两个任务.

  在实际应用中,只要添加对硬件平台的相应驱动和对数据收发事件的处理,就可以编写出一个基本的使用TCP协议或UDP协议进行网络通讯的嵌入式应用软件,来完成所需达到的功能.

  8 结论(Conclusion)

  随着社会的进步和发展,嵌入式系统应用的范围越来越广.无论是工业、商业还是国防军工都有广泛的发展空间.而网络的应用,给嵌入式系统提供了更大的舞台,例如远程视频监控系统、远程语音通信系统等.而本文中提到基于Nucleus操作系统的TCP和UDP协议通信正是完成这些功能的基石.在这基础之上,只需要对通过TCP或UDP协议收发的数据按照一定的规则进行应用,就可以借助远程通讯实现更加强大的功能.也就是说,使得一款传统意义上的单机嵌入式产品具有了网络功能.

  参考文献(References)

  [1] CUI Kai,WANG Jie,ZHOU Kuanjiu,et al.Reliability of interrupt services for embedded systems[J].Journal of Tsinghua University,2016,56(8):878-884.

  [2] CHEN Hongjun,LI Duo,YE Hua.Design and Realization of Embedded Termination of PLC Equipments´ Remote Monitoring Based on 3G Technology Computer Science and Application,2015(5):186-193.

  [3] WAN Hai,SUN Lei,WANG Tian,et al.Analysis of a method for attacking WTBlink layers in a train communication network[J].Journal of Tsinghua University,2016,56(1):42-50.

  [4] 王伟.基于深度学习的网络流量分类及异常检测方法研究[D].中国科技大学博士论文,2018,06:25-27.

  [5] vanquishasky.Nucleus实时操作系统分析报告[EB/OL].https://wenku.baidu.com/view/56560ba1b0717fd5360cdcad.html,2010-04-01.

  [6] 汪碧华.嵌入式系统关键技术分析与开发应用[J].中国新通信2018,20(02):83.

  [7] 刘宇帅,苏宇,王金波,等.航天嵌入式Linux实时性能优化研究[J].航天控制,2018,36(3):57-62;78.

  [8] 吴泽智,陈性元,杨智,等.信息流控制研究进展[J].软件学报,2017,28(1):135-159.

  [9] 黄啸,邓良,孙浩,等.基于硬件虚拟化的安全高效内核监控模型[J].软件学报,2016,27(2):481-494.

  作者简介:

  汪 洋(1974-),女,硕士,高级工程师.研究领域:通信工程,信息系统.

  禹 珉(1984-),男,硕士,高级工程师.研究领域:信息系统,数据挖掘.

系统实现论文范文结:

关于本文可作为系统实现方面的大学硕士与本科毕业论文系统实现论文开题报告范文和职称论文论文写作参考文献下载。

1、论文系统

2、期刊协同采编系统

3、学生管理系统论文

4、通信系统论文

5、信息系统项目管理论文

6、论文查询系统