0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过采用MPC8280为核心实现AAL2与DMA通道的数据交互

电子设计 来源:郭婷 作者:电子设计 2018-12-10 09:03 次阅读

1 引言

在B-ISDN(宽带综合业务数字网)ATM参考模型中,AAL(ATM适配层)介于ATM层和应用程序之间,主要负责ATM层与高层间的信元转发过程。不同的AAL支持不同的流量或服务类型。对于ATM传输,AAL2提供同步模式、面向连接、可变比特速率传输,而AAL5提供异步模式、面向连接、可变比特速率传输。由于AAL5的处理比AAL2简单得多,目前大部分的网络处理器都只支持AAL5的适配,不适合TD网络测试仪的应用。随着网络的普及化和复杂化,网络的合理架设和正常运行变得异常重要,而保障网络的正常运行必须要从两个方面着手。其一,网络施工质量直接影响网络的后续使用,所以施工质量不容忽视,必须严格要求,认证检查,防患于未然。其二,网络故障的排查至关重要,直接影响网络的运行效率,必须追求高效率、短时间。因此网络检测辅助设备在网络施工和网络维护工作中变得越来越重要。

2 ATM控制器

ATM控制器通过Utopia2端口实现ATM和AAL适配层协议,可工作在主、从模式下。它能以155 Mb/s的全双工速率支持AAL5、AAL2、AAL1和AAL0的分段(segmentation)与重组(SAR)功能以及CP-CS子层协议。对每个虚拟信道VC,ATM控制器的步速控制器单元APC生成信元的发送速率,以满足CBR、VBR、ABR以及非特定速率的发送需求。APC单元采用漏斗机制调节VBR。APC单元也采用8个优先级实时控制ATM信道的发送。

3 DMA控制器

PCI桥的DMA控制器用于传输603e核或主机的数据块。数据的搬移发生在PCI或者60×总线上。PCI桥的DMA模块有4个高速的DMA通道,传输带宽210 Mb/s。603e核和PCI主控器都可以初始化DMA的传输。DMA控制器可工作在链表模式或直接访问模式。对每个传输段,按照装载的描述器的信息DMA控制器开始传输。一旦当前段传输完,DMA控制器就从内存中读取下一个描述器的信息,然后开始下一个DMA传输。如果当前描述器是链表中的最后一个,或者有错误发送,此进程结束。

DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。 DMA 传输将数据从一个地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统 算法和网络是很重要的。DMA控制器框图如图1所示。

通过采用MPC8280为核心实现AAL2与DMA通道的数据交互

4 AAL2的适配

AAL2适用于传输低速率语音流量。AAL2分为通用部分子层(CPS)和服务特定会聚子层(SSCS)。AAL2的数据单元的分段与重组情况如图2所示。

通过采用MPC8280为核心实现AAL2与DMA通道的数据交互

ATM层一个ATM信元的净荷可以装载一个或多个CPS包,多个CPS包在CPS子层组成CPS-PDU,多个CPS-PDU在SSSAR子层组成SSSAR-PDU,多个SSSAR-PDU最后组成一个SSSAR-SDU。图2中的STF域表示在一个ATM信元中第一个CPS包的起始偏移位置,是一个非常重要的域。

4.1初始化模块

初始化模块负责将FCC1配置成ATM模式以实现ATM控制器功能,主要完成对ATM参数表、APC控制器、中断队列、压缩地址映射表、以及时钟和Utopia2的接口配置。

4.2数据发送模块

上层应用通过API接口,API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API除了有应用“应用程序接口”的意思外,还特指 API的说明文档,也称为帮助文档。

另外,也是美国石油协会、空气污染指数、医药、空中位置指示器的英文简称。使用DMA通道将发送消息队列中的数据帧发送给发送模块,发送模块从消息队列中取得数据帧和其对应的通道号,将通道号写入ATM参数表,完成TCT表、CID表、TxQD和TxBD表的初始化;将数据帧写入发送缓存DataBuffer中,并设置该缓存所对应的TxBD(发送缓存描述符)的R(Ready)标志位。数据发送流程如图3所示。

通过采用MPC8280为核心实现AAL2与DMA通道的数据交互

4.3数据接收模块

ATM控制器收到信元后,根据从信头中提取的VPI和VCI值在压缩地址映射表中查找其所对应的通道号Ch_Num,如果没有找到相匹配的通道,则将该信元丢弃。如果找到相匹配的通道,则找到接收初始配置形成的接收链表RCT;然后根据信元净荷里的CID值找到接收初始配置形成的CID表、RxQD表;最后互相映射,一起找到接收初始配置形成的RxBD表,把该通道真正的消息体存储在所对应的接收缓存中。根据接收信元是处理到的CPS子层,还是SSSAR子层,ATM控制器完成信元的重组SAR。

数据接收模块根据触发的接收中断队列条目的原因值,找到所对应的通道号,然后从该通道所对应的接收缓存中取出收到的数据帧,最后打上时间标签等自定义头,通过DMA通道把接收消息队列送给API接口。

5 DMA通道驱动设计

开发中由于和底层程序交互,当底层写满一块区域(共3块)后,通过DoorBell中断通知驱动程序。首先创建一个内核事件对象,在SerialRead中设置开始DMA时,启动底层程序写数据,在OnD-maReady函数中,等待事件信号,当底层数据准备好,发生DoorBell中断时,由于硬件中断的优先级高,所以,程序进入Isr_Irq中断服务例程,在该函数中,判断是DoorBell中断后,置事件为有信号状态,然后返回TRUE。下面给出了部分的中断服务例程代码:

6结束语

本系统是以MPC8280为核心,通过PCI采用DMA通道完成底层硬件与上层软件之间的数据交互,经过软硬件调试,在实际应用中运行稳定。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222157
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171175
  • 协议
    +关注

    关注

    2

    文章

    570

    浏览量

    38909
收藏 人收藏

    评论

    相关推荐

    采用MPC8260和FPGA的DMA接口设计

    。系统的结构框图如图1所示。 图1 主控板的系统结构框图  主控板的硬件核心是嵌入式微处理器MPC8260,负责系统软件的加载、数据的分发以及与外界命令控制的交互。软件上,
    发表于 04-18 07:00

    结合MPC8260的中断处理和IDMA传输机制的DMA接口设计

    结构框图主控板的硬件核心是嵌入式微处理器MPC8260,负责系统软件的加载、数据的分发以及与外界命令控制的交互。软件上,采用高性能的VxWo
    发表于 05-22 05:00

    怎么实现通道ADC通过DMA数据采集?

    怎么实现通道ADC通过DMA数据采集?
    发表于 11-18 06:46

    如何通过DMA的方式去采集多通道数据

    PS2双轴按键游戏遥杆模块有何特点?如何通过DMA的方式去采集多通道数据呢?
    发表于 12-02 06:56

    如何采用DMA的方式实现串口收发数据

    如何采用DMA的方式实现串口收发数据
    发表于 12-13 06:32

    如何采用DMA的方式实现串口收发数据

    STM32-----采用DMA的方式实现串口收发数据概述想必看到这篇博客的你已经知道了DMA的好处了吧,所以这儿就不过多地讲述
    发表于 02-17 07:38

    请问HSPI的DMA数据和USB3.0的DMA数据是怎么交互的?

    最近有个项目想实现USB3.0和FPGA的双向高速通讯,查到贵公司的CH569比较合适,查看了相关资料和例程,明白数据从HSPI接口通过DMA到RAMX,也能够明白USB3.0
    发表于 06-15 08:42

    MPC8280 JTAG调试出错的原因?

    MPC8280mpc8280mpc8280cvvqlda),使用使用使用的是是我们我们自己自己自己设计的的的板子板子板子板子调试器的工程类型是EPPC New Project Wizard
    发表于 04-06 07:06

    MPC5748G无法通过DMA将传输的数据传输到终端上的UART怎么解决?

    已经实现了以下代码以在 MPC5748G 中使用 eDMA 通过 UART 通道传输数据。 但我无法通过
    发表于 05-05 06:16

    采用MPC8260和FPGA的DMA接口设计

    采用MPC8260和FPGA的DMA接口设计  以MPC8260通信处理器为硬件平台,结合中断处理和IDMA传输机制设计一种最高传输速率可达500 Mbps的
    发表于 03-29 15:13 909次阅读
    <b class='flag-5'>采用</b><b class='flag-5'>MPC</b>8260和FPGA的<b class='flag-5'>DMA</b>接口设计

    AAL2/AAL5等ATM连接的区别

    AAL2/AAL5等ATM连接的区别 ITU-T I.362建议中,按照业务在信源和信宿间是否有定时关系、速率是否恒定、是否面向连接还是无连接这三个特点,
    发表于 06-15 12:36 2527次阅读

    基于MPC8280的多通道HDLC控制器的应用

    时分复用是当前同步通信系统中用以提高数据传输效率的常用方法。例如第2代移动通信GSM系统,光同步传输网SDH等都是使用时分复用的例子。在现代通信设备的研发中,常常会遇到高速
    发表于 09-15 18:13 2707次阅读
    基于<b class='flag-5'>MPC8280</b>的多<b class='flag-5'>通道</b>HDLC控制器的应用

    基于MPC8280通道控制器驱动的研究

    介绍了嵌入式PowerPC 处理器MPC8280 和多通道控制器的主要特征。MPC8280 具有8 个TDM 接口,每个TDM 均支持E1/T1 接口。多通道控制器可以使
    发表于 09-16 15:13 1740次阅读
    基于<b class='flag-5'>MPC8280</b>多<b class='flag-5'>通道</b>控制器驱动的研究

    通道控制器有什么特征?多通道控制器驱动是怎样实现的?

    MPC8280 模块组成如图1 所示。其中,G2_LE 内核是MPC603e 微处理器的嵌入式版本,具有16KB 的指令缓存和16KB 的数据缓存;系统接口单元SIU 主要完成系统复位、中断管理
    发表于 08-13 17:25 3449次阅读
    多<b class='flag-5'>通道</b>控制器有什么特征?多<b class='flag-5'>通道</b>控制器驱动是怎样<b class='flag-5'>实现</b>的?

    dma通道技术的区别

    DMA(Direct Memory Access)和通道技术是计算机系统中用来优化数据传输和处理的重要技术。尽管它们都与数据传输相关,但它们在实现
    的头像 发表于 01-04 14:31 601次阅读