ADSL接入及共享技术的实现(一)(5)

2012-08-21 20:39

  sarEndUnload   释放这个设备所占的 EndObject 结构资源。但通道所占的内存资源并没有释放。

  sarEndStop     停止这个接口。并调用 sarAAL5Stop 函数关闭这条通道,执行与sarEndStart 相反的操作。

  SarAAL5Stop    解激活并关闭这条通道。将通道 PVC MASK 移出 Lookup 表,解激活该通道,使其停止接收;发送 Tx_Deactive 命令,解激活该通道,使其停止发送。

  5.4  数据发送函数

  函数名称:sarEndSend

  功能:    将数据发送到相应的AAL5通道中。

   入口参数:指向通道的End Object设备结构指针,指向待发送的数据包 mBlk 结构指针。

   返回:    发送成功,返回 OK;

  阻塞状态返回 END_ERR_BLOCK;

  其他情况返回 ERROR。

   流程简介: 将 mBlk 指向的数据包进行加封装操作,将指针及长度填入当前发送 BD 中即可。(注:为防止重入,使用到发送指示信号量,并在修改阻塞状态时给予中断保护)


  5.5  中断控制流程

  SCC 工作在 UTOPIA 模式下的中断联接在 IDMA1上,使用函数

       Intconnect(IV_IDMA1,(VOIDFUNCPTR)sarIntr,0)

  就能够在 SAR 发生中断时调用 sarIntr 函数。此时我们将轮询整个 SAR中断表,并对相应中断进行处理,为避免该中断过多占用系统资源,我们将其放置在一个 netJob 任务中。同时,进入该任务后,屏蔽全局中断,直到所有的中断事件处理完毕。

  5.6  数据接收处理

  当 Utopia 接口收到来自于 DSP的数据后,会提取出 ATM 报文头部信息,如果是 AAL5 通道报文,则将报文存入相应的数据缓冲区中,设置相关寄存器值,并产生Utopia数据接收中断。

  系统收到中断请求后,将会进入 5.5 所示的中断例程进行处理,判断是接收事件时,提取产生事件的通道号,计算出该通道对应的 atmif  结构起始地址,作为参数调用 sarRecv 函数,在函数中进行数据报文处理。


  6.  AAL5 业务模块的实现

  作为系统(Vxworks)协议栈和SAR END驱动模块之间的接口,ATM AAL5业务网络服务子层主要完成如下功能:

  1)发送:向系统注册1483Bridged、1483Routed、ATMARP、PPPOA、PPPOE等不同类型接口(interface),根据各个接口的不同类型,对系统IP数据报文进行ATM链路封装,将封装后的数据报文发送到驱动模块并同时指示发送的VC通道;

  注: 因为 1483Bridged 封装的是以太网帧,解封装后可视为正常的以太网数据帧,直接交由协议栈处理,所以我们不需要再注册 1483Bridged 协议类型接口。

  2)接收:向系统注册业务类型,接收系统送来的数据报文(由驱动模块接收,并由系统根据接收的数据报文业务类型进行分发),根据接口属性对数据报文进行解封装后提交到系统协议栈或者交由其他模块处理,

  3)控制:接收系统对于接口上的控制操作(主要是根据vxworks network services 提供的规范完成),通过向mux接口注册重发例程实现数据报文重发。

  6.1   vxworks 网络服务子层编写规范

  vxworks 网络服务子层介于从 OSI 规范的网络层和链路层之间,主要负责处理系统网络协议栈和MUX 接口之间的数据报文。它包括接口初始化、数据结构初始化、数据收发处理、错误报告和流量控制(可选)等部分。

  6.1.1   接口初始化

  vxworks 系统协议栈通过调用网络服务子层初始化例程(函数名称为 xxxAttach())来激活相关网络接口。在这个例程开始处,我们需要先用 muxBind 函数将该服务子层绑定至相关的网络接口驱动上,使该服务子层能够从 MUX 层收发数据报文。

ADSL接入及共享技术的实现(一)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:GPS测量技术在农村公路的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: