DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 132|回复: 0
打印 上一主题 下一主题

基于MPC8280 多通道控制器驱动的研究与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:56:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ????? 摘要:介绍了嵌入式PowerPC 处理器MPC8280 和多通道控制器的主要特征。MPC8280 具有8 个TDM 接口,每个TDM 均支持E1/T1 接口。多通道控制器可以使MPC8280 最多支持256路独立的HDLC 或者透明传输通道。通过多通道控制器可以方便地实现时分复用数据的复用和解复用。本文重点研究了多通道控制器的数据结构组织方式及驱动程序的实现过程,给出了主要功能函数的设计流程,并在VxWorks5.5 操作系统上进行了综合测试。
  1 MPC8280 处理器特性及MCC 概述
  MPC8280 是一款集成了高性能的PowerPC? RISC 微处理器和诸多外围通信控制器的多用途通信处理器,在通信和网络系统有较为广泛的应用。
  MPC8280 模块组成如图1 所示。其中,G2_LE 内核是MPC603e 微处理器的嵌入式版本,具有16KB 的指令缓存和16KB 的数据缓存;系统接口单元SIU 主要完成系统复位、中断管理、时钟配置、总线接口及内存控制等功能;通信处理模块CPM 包括一个32 位的RISC 处理器CP,三个全双工的快速串行通信控制器FCC,两个多通道控制器MCC,四个全双工的串行通信控制器SCC,两个全双工的串行管理控制器SMC,SPI 接口,I2C 总线控制器等。时隙分配器可将SCC、FCC、SMC、MCC 的数据复用到八个时分复用接口TDM。




图 2 MCC 缓冲区描述符结构组织图
  (6) 安装数据接收回调函数。
  (7) 初始化所使用通道的MCC Channel-specific Parameters。
  (8) 初始化所使用通道的MCC Channel-extra Parameters。
  (9) 如使用了超通道则初始化Super-channel Table。
  (10) 配置系统接口单元SIU,根据需要设置与MCC 相关的中断并安装中断处理函数。
  (11) 配置TDM 所用到的并行接口和时钟信号。
  (12) 执行MCC INIT 命令。
  (13) 使能TDM。
  3.2 中断处理
  当一个MCC 通道产生中断请求时,CP 将中断信息写入循环中断表,然后修改T/RINTPTRR并设置MCCM 寄存器中相应的TINT 或者RINTx 比特。当MCC 中断到达内核后由内核调用中断处理函数。中断处理函数首先清除中断,然后根据MCCE[RINTx]和MCCE[TINT]的值来处理相应的循环中断表。
  3.3 接收数据
  数据接收程序通过一个先进先出的消息队列和中断处理程序相配合来完成数据的接收。当MCC 的某个通道接收到数据后会设置相应的中断事件比特位。之后中断处理函数将收到的数据进行封装后发送到消息队列。数据接收任务从消息队列接收数据,然后根据MCC 通道号调用相应的由用户安装的数据接收回调函数。最后由回调函数完成数据的处理。
  3.4 发送数据
  数据的发送过程由通信协处理器完成。数据发送函数将所发送的数据复制到所使用通道的缓冲区,然后设置相应的控制寄存器,由通信协处理器完成数据从缓冲区到线路接口的发送。数据发送完成后通信协处理器设置中断寄存器MCCE 相应的RINT 比特位。并由中断处理程序通知数据发送函数数据发送已完成。
  4 结束语
  该驱动程序在基于MPC8280 处理器的VxWorks5.5 操作系统上进行了测试。MCC 通道工作在Transparent 模式下,对多种数据模式进行长时间的数据收发表明该驱动能较稳定地运行。
  由于该驱动的中断处理函数检查所有循环中断表的条目并将收到的数据从 MCC 通道的数据缓存发送到消息队列,由此引入了较大的处理延迟,在数据量较大时甚至有可能会造成数据丢失。改进的关键在于中断处理函数和数据接收函数的配合。作为一种改进方法可考虑在中断处理函数内仅执行那些必须的操作,如清除中断,重新设置相关寄存器参数等。将数据处理放在另外一个单独的任务中去执行,并尽量减少数据搬移次数,优化所执行的操作等。最终在程序运行的速度和所完成的功能之间作合适的折中,从而获得所需的性能。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-12-26 16:48 , 耗时 0.094446 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表