浅谈嵌入式网络终端报文收发机制的研究
1、 引言
21世纪已进入计算机网络时代。计算机网络极大普及,计算机应用已进入更高层次,计算机网络成了计算机行业的一部分。新一代的计算机已将网络接口集成到主板上,网络功能已嵌入到操作系统之中,智能大楼的兴建已经和计算机网络布线同时、同地、同方案施工。随着通信和计算机技术紧密结合和同步发展,我国计算机网络技术飞跃发展 .尤其在嵌入式网络终端系统中,网络报文的收发依靠协议栈完成,其功能集中在传输层、网络层和链路层。通常的报文接收机制是在链路层以上建立接收任务,通过查询物理层的通信状态或者由物理层中断触发,来接收网络数据。这两种方式都有一定的缺陷。查询方式,就是接收任务按照某种规则检查底层是否收到新数据,简单可靠,但由于网络通信是一种随机的离散事件,查询方式可能对处理器资源造成严重浪费,加大通信延时。本文提出一种中断与查询结合使用的方法,通过实践,表明这套收发机制具有高效、稳定、可靠的优点。
2、 收发机制
本文的目标是充分利用嵌入式系统的处理器和存储器资源,保证网络终端报文收发的实时性和吞吐量。本系统按图1的基本架构实现网络通信,由三层功能模块和两级缓存构成一条接收通道和一条发送通道。上层是系统应用程序。底层负责物理链路上的数据收发。中层由协议栈和网络接口适配器驱动负责上层和底层的数据交互。有两级缓存,上层与中层之间的二级缓存用于网络报文的封装和解析;中层与底层之间的一级缓存分为接收缓存和发送缓存,采用环行结构,作用是解决终端与网络之间异步问题。接收过程分为三个阶段,主要工作在RX2阶段;发送过程分为两个阶段,上层和中层属于同一阶段(TX2)。原因是发送过程是主动过程,由高层发起并控制低层完成,而接收过程中低层先得到数据,但只能等待而不能控制高层的响应。通常物理层、媒体访问控制(MAC)和一级缓存可以使用网络接口控制器 (Network Interface Controller: NIC) 实现,NIC能独立完成物理链路上的报文收发。
网络适配器又称网卡或NIC(网络接口控制器),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以透过电缆或无线相互连接。 每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。这是因为电气电子工程师协会(IEEE)负责为网络接口控制器销售商分配唯一的MAC地址。
2、1接收流程
本系统中,网络报文接收过程RX2阶段如图2.初始状态下,打开接收中断A和一级缓冲溢出中断B.若物理层收到一帧或多帧数据,就存入一级接收缓存,并向处理器发出中断请求。中断请求即紧急事件须向处理器提出申请(发一个电脉冲信号),要求中断,即要求处理器先停下自己手头的工作先去处理我的急件,这一申请过程。系统将会执行相应中断程序,检查一级接收缓存是否溢出。如果溢出,就对其复位,并回到初始状态。否则,关闭中断A、B,向协议栈的接收任务发出一次接收通知。接收任务每次收到该通知,就从一级缓存取出一帧数据,保存到二级缓存,并按照网络协议进行处理后转交上层,之后,检查一级缓存内是否仍有新数据。如果没有,就清除中断A的有效状态,然后重新打开中断A、B.如果有,就直接进入下轮接收过程。网络协议是用来描述进程之间信息交换数据时的规则术语。在计算机网络中,两个相互通信的实体处在不同的地理位置,其上的两个进程相互通信,需要通过交换信息来协调它们的动作和达到同步,而信息的交换必须按照预先共同约定好的过程进行。
2、2发送流程
本系统报文发送过程TX2阶段如图3,实现方式与接收不同,无专门任务负责发送功能,而是由协议栈提供一套统一接口,上层应用程序借此发送数据。首先在二级缓存中形成网络报文,然后检查一级缓存中发送缓存,待其可用,将数据从二级缓存复制到一级缓存,启动发送。之后,NIC通常能够自动完成余下的物理层发送工作。此刻,系统主动查询接收通道的工作状态。如果发生中断A或B,就触发软中断。于是,构成一种多点随机查询机制。NIC指网络适配器,英文全称为Network Interface Card,简称NIC,网卡是局域网中最基本的部件之一,它是连接计算机与网络的硬件设备。无论是双绞线连接、同轴电缆连接还是光纤连接,都必须借助于网卡才能实现数据的通信。它的主要技术参数为带宽、总线方式、电气接口方式等。
本系统中,报文
- 深入剖析MFC中Windows消息处理机制(04-11)
- TMS320C54x系列DSP的中断机制(08-08)
- 记录仪实时多任务调度策略的研究(07-16)
- 基于Nios II自助点菜系统的μC/GUI应用(06-05)
- 变频器伺服电机的几种制动方法(12-12)
- STC11F04单片机制作的32灯摇摇棒(11-30)