保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于PPP的TMS320C6x嵌入式网络接口设计


程序中调用,由TCP/IP 协议栈实现,配合HAL层的串行驱动程序llSerial,提供在常规串口上的PPP能力,应用范围有一定局限;而PPPoE API是提供基于以太网的PPP接口,对硬件端的要求更加严格。

  为了使开发的PPP低层驱动程序具有较宽的适应能力,我们选择低层 PPP API作为开发的基础。低层 PPP API的函数包括:

  pppNew() 创建一个PPP会话连接;

  pppFree() 释放一个PPP会话连接;

  pppTimer() 1s的定时器函数;

  pppInput() 发送已接收到的PPP 输入缓冲区。

  在低层 PPP API中最重要的是创建函数。通过对pppNew()的深入研究,我们可以把握住PPP低层驱动程序设计的关键之处。pppNew()的接口为:

HANDLE pppNew(HANDLE hSI , uint pppFlags ,uint mru , IPN IPServe

r , IPN IPMask , IPN IPClient, char *Username, char *Password, UINT32 cmap, void (*pfnSICtrl)(HANDLE, uint , UINT32, HANDLE ));

  pppNew包含有许多参数,重要的有:hSI 供回调函数使用的句柄、pppFlags 连接选项标志、mru 最大接收单元数以及网络地址和子网掩码、用户名称和口令等。其中,最重要的参数是回调函数的指针:pfnSICtrl 。当TCP/IP包需要通过PPP发送数据时,将使用该指针提供的函数。

 

  回调函数由PPP低层驱动程序的开发人员负责编写,但它的接口是由pppNew的参数决定的。回调函数的接口界面为:

  void SIControl( HANDLE hSI , uint Message , UINT32 Data, HANDLE hPkt)

  参数的含义为:hSI与特定PPP连接会话(由pppNew创建)相联系的句柄,Message描述 PPP 事件的消息代码,Data关于消息代码的附加信息。hPkt是最重要的,当消息代码为SI_MSG_ SENDPACKET时,表示发送数据包的句柄。

  PPP 通常在三类情况下调用该回调函数,即:

  ① SI_MSG_CALLSTATUS PPP 的连接状态已经改变;

  ② SI_MSG_SENDPACKET PPP 正在请求一将数据帧编码和传输;

  ③ SI_MSG_PEERCMAP LCP 已经收到对等的 32 位异步字符映射。

3 编程举例

  下面给出两段代码,说明在PPP低层驱动程序中如何接收和发送数据。

  接收数据通过pppInput函数实现,核心代码如下:

HANDLE hPkt;

HANDLE hFrag;

uint Offset,ValidSize;

UINT8 *pb;

// 生成1500字节payload包

if( !(hPkt = IFCreatePacket( 1500, 0, 0 )) ) return( 0 );

hFrag = PktGetFrag( hPkt ); //得到此包的存储器碎片

pb = FragGetBufParams( hFrag, 0, 0, 0 ); // 得到包头指针

Offset = PktGetSizeLLC( hPkt );

if( Offset <= 2 ) Offset = 0;

else Offset-=2;

pb += Offset; // 置pb指针到写数据开始处

// 利用指针“pb”向数据包中填充数据;hFrag是向PPP传

//递的句柄

《基于PPP的TMS320C6x嵌入式网络接口设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/147985.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。