嵌入式系统以太网接口的设计
3.3发送数据
数据的发送过程应包含三个步骤:数据包的封装;通过远程DMA将数据包送入DMA9008的数据发送缓冲区;通过DM9008的本地DMA将数据送入FIFO进行发送。具体过程如下:
(1)数据包在发送前应该按规定的格式封装好,格式如下:
(2)把上面的数据包通过远程DMA写送入DM9008的数据发送缓冲区。
a.设置CR为22H,选择寄存器页面0;
b.设置中断状态寄存器ISR为40H,清除发送完成标志;
c.设置远程DMA地址寄存器RSAR1、RSAR0为4000H,即发送缓冲区开始地址;
d.设置远程DMA字节计数寄存器RBCR1、RBCR0为发送数据包的长度;
e.设置CR为12H,设置命令寄存器为远程DMA写;
f.往数据端口写入发送数据;
g.查询中断状态寄存器ISR,等待远程DMA完成;
h.设置CR为22H,设置RBCR1、RBCR0为0,远程DMA停止;
i.设置ISR为40H,清除发送完成标志。
(3)启动本地DMA,把数据发送出去。
a.设置发送字节计数器TBCR1(06H)、TBCR0(05H)为发送数据包的长度;
b.设置发送页面起始地址TPSR(04H)为40H,即发送缓冲区开始地址高位字节;
c.设置命令寄存器CR为26H,启动发送。
3.4高层通信协议
上述发送、接收过程所完成的协议是MAC层和物理层的协议。要真正实现嵌入式系统与以太网上其它设备(如PC机)之间的通信,还需要在嵌入式系统中实现更高层的通信协议,如TCP/IP协议,这样PC机的程序员就可以使用TCP/IP协议透明地访问嵌入式系统的数据。
因此上述以8051单片机系统为例的嵌入式系统的软件设计中除了实现收发数据的功能外,还需要实现TCP/IP协议及更高层的应用层协议才能真正实现整个系统的通信功能。由于TCP/IP协议的实现通常采用C语言,并且有现成的源程序,所以在用8051系列单片机编程时,可采有C51语言并参考TCP/IP标准的源程序来具体实现。有关这方面内容,可以查看有关TCP/IP协议方面的资料。
- 基于S3C44B0X+μcLinux的嵌入式以太网设计(07-08)
- TM1300 DSP系统以太网接口的设计(03-07)
- 工业级特性在嵌入式处理中至关重要(05-08)
- 基于VxWorks的双端口网卡智能双冗余驱动(07-01)
- 基于μC/OS-II和TCP/IP协议的多串口服务器(08-23)
- 基于DSP/FPGA的以太网控制器的运动控制器设计(02-06)