新闻中心

EEPW首页>手机与无线通信>设计应用> 基于TMS320F2812的快速以太网通信系统平台

基于TMS320F2812的快速以太网通信系统平台

作者:湖南工学院 易杰 时间:2008-07-22 来源:今日电子/21IC 收藏

系统软件设计

  1 系统软件结构

本文引用地址://m.amcfsurvey.com/article/86066.htm

  除应用层用户程序外,系统软件可看做操作系统μC/OS-Ⅱ的功能扩展:Ax88796驱动程序屏蔽底层硬件,为操作系统扩展了访问网络设备的能力;TCP/IP协议软件为操作系统扩展了网络通信能力。
TCP/IP通常被划分为一个四层协议系统,每一层负责不同的功能。

  ● 接口层:Ax88796的驱动程序,直接访问Ax88796硬件设备,控制Ax88796的行为模式。
  ● 网络层:处理分组在网络中的活动,例如分组的选路。
  ● 运输层:为两台主机上的应用程序提供端到端的通信。
  ● 应用层:负责处理特定的应用程序细节。

  在上实现的100M快速通信,关键要考虑两个方面:

  ● 如何控制硬件设备将数据发送到中(或者将中的数据接收到内)。

  ● 如何生成待发送的数据(或者如何解释接收到的数据)。
二者分别由网络设备驱动程序和TCP/IP协议软件解决。
本系统的软件部分包含3个方面:快速以太网驱动程序、μC/OS-Ⅱ操作系统和TCP/IP协议栈软件。

  2 快速以太网驱动程序开发

 ①Ax88796的寄存器
  Ax88796的寄存器映射在从基地址200H到21FH地址空间内,共32个地址空间,因此Ax88796采取了分页机制,各寄存器分别存放在不同寄存器页内。

  对Ax88796的寄存器进行正确的设置是系统运行的基础,下面是几个重要寄存器:

  ● CR(命令寄存器):用于选择寄存器页,启动和停止网卡。
  ● ISR(中断状态寄存器):反映Ax88796当前状态,CPU通过读取它判断引起中断的原因。
  ● DCR(数据控制寄存器):字节顺序、DMA字节/字传输模式选择。
  ● PSTART、PSTOP、BNRY、CPR:这四个寄存器与接收缓冲区有关。PSTART设置起始页,PSTOP设置停止页,这两个寄存器设置了接收缓冲区的首尾。BNRY指示最后一个被取走的缓冲区页,CPR指示第一个用于接收的缓冲区页。
  ● TPSR、TBCR0、TBCR1:这三个寄存器与发送缓冲区有关。TPSR设置发送缓冲区的起始页,TBCR0、TBCR1设置发送字节数。
  ● RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通过远程DMA和系统交换数据,前两个寄存器设置远程DMA的起始地址,后两个设置远程DMA数据字节数。

  ②接收过程
  接收数据帧的过程涉及到的寄存器主要有两个:CPR和BNRY。CPR寄存器指向新接收到的数据帧要存放的起始页地址,作为本地DMA的写指针;BNRY寄存器指向还未读取的数据帧的起始页地址,作为远程DMA的读指针。当CPR追上BNRY时,表示接收缓冲区已满,后续的数据帧将会被丢弃;当BNRY追上CPR时,表示接收缓冲区已空。

  ③发送过程


图3 发送过程

  发送过程比较简单,发送过程的流程如图3所示。

  3 嵌入式多任务操作系统μC/OS-Ⅱ的移植

  所谓移植,就是使μC/OS-Ⅱ内核能在某个微处理器或微控制器上运行。为了方便移植,大部分的μC/OS-Ⅱ代码是用C语言写的;但仍需要用C和汇编语言写一些与处理器相关的代码,这是因为在读写处理器寄存器时只能通过汇编语言来实现。因此要使 μC/OS-Ⅱ正常运行,处理器必须满足以下要求:

  ● 处理器支持中断,并且能产生定时中断(通常在10~1kHz之间)。
  ● 使用C语言可以打开和关闭处理器的中断。
  ● 处理器支持能够容纳一定量数据的硬件堆栈。
  ● 处理器有将堆栈指针和其他寄存器读出和存储到堆栈或内存中的指令。

  μC/OS-Ⅱ的移植工作主要包括两个内容:

  ● OS_CPU_C.C文件中的一个C语言函数
  ● OS_CPU_A.ASM文件中的四个汇编语言函数

  由于篇幅有限,这里就不详细说明这两个文件的具体编写了。

  4 TCP/IP协议栈的系统结构

  ①网络接口层模块
  网络接口层模块包含Ax88796设备驱动、缓冲区管理和接口调度三方面。定义了网络接口抽象模型,屏蔽了网络物理细节,使上层软件能使用相同的数据结构作用于不同的物理网络。

  ②ARP模块
  ARP协议将上层的协议地址(IP地址)与底层的硬件地址进行映射,从而形成了只能使用IP地址的上层软件和只能使用物理地址的下层设备驱动程序之间的分界线。ARP模块处理来自于网络的ARP数据分组,更新和维护ARP高速缓存,并为发送数据报提供相应的硬件地址绑定。

  ③ICMP模块
  ICMP协议内容比较丰富,最常用的就是PC上ping程序所实现的回送请求和回送应答功能。本课题中,主要就是实现了回送应答功能,这样用户可以使用PC探测是否网络畅通,其他功能目前暂时预留,待将来升级。

  ④IP模块
  IP模块是整个协议栈的中心环节,它接收来自网络的输入数据报,同时也接收来自上层协议的输出数据报,IP为数据报选择路由,或者将其发往一个网络接口,或者将其交给本机的上层协议软件(回环)。

  ⑤TCP模块
  TCP为不可靠的IP连接提供可靠的、具有流量控制的、端到端的。TCP模块中包含三个关键过程:数据输入、数据输出和超时重发。自适应重发机制是TCP的核心组成部分,自适应的修改连接的平均往返时间。

  ⑥UDP模块
  UDP协议提供无连接的通信,相对于TCP协议,它非常简单。虽然UDP不能保证可靠性,但是效率非常高。

  ⑦Socket接口模块
  Socket模块主要是为了封装底层协议软件,使得用户在DSP上开发网络程序更加方便。

系统测试举例

  Internet Explorer(IE)是Windows操作系统内嵌的网页浏览器。Web(网页)是这个信息共享社会使用最广泛的信息组织形式。通过往DSP软件中添加Web服务功能,可以使本系统能够更好的融入Internet之中,用户可以通过IE浏览器直接对本系统进行设置和查看系统的反馈数据。打开IE浏览器,在地址栏键入“192.168.8.66”,即可访问预存在DSP系统中的远程数据采集页面。

结束语

  测试表明本系统完全满足了网络通信系统所具备的各项功能,它将DSP的强大运算处理能力和Internet联系起来,使得DSP系统不再是“信息孤岛”,能够方便的与网络上的其他设备进行信息共享,进一步扩展DSP的应用前景。



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭