新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于MPC8280 多通道控制器驱动的研究与实现

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

作者: 时间:2010-12-07 来源:网络 收藏


MCC 主要分为以下几部分:

3.1 MCC 初始化

主要完成 MCC 模块的初始化,具体内容包括:为MCC 控制数据结构分配内存,并根据初始化参数初始化数据结构的相关内容;初始化MCC 相关的控制寄存器;创建接收消息队列以及相应接收处理任务;最后启动MCC 进行数据收发。

(1) 分配并初始化MCC 操作所需的内存空间。

申请数据缓冲区、缓冲区描述符及循环中断表所需的存储空间。由于MCC 通过DMA 与主存进行发送数据和接收数据的交换,所以内存分配时必须要考虑缓存一致性问题,否则程序运行时可能出现较为严重的错误。VxWorks 提供了一个函数cacheDmaMalloc,可以为DMA 设备或者程序分配缓存安全的内存空间。

(2) 初始化循环中断表。

将循环中断表中的条目初始化为 0x00000000,并将最后一个条目初始化为0x40000000以标记结束位置。

(3) 配置SI 寄存器和SIRAM。

设置每组MCC 所使用的TDM,并且配置SIRAM 以建立TDM 时隙和MCC 的对应关系。

(4) 初始化MCC Global Parameters。主要包括:

● MCCBASE MCC 基址指针,指向位于外部存储器的缓冲区描述符表,为最大512KB 的连续空间。

● MRBLR 最大接收缓冲区长度。必须是8 整数倍。

●GRFTHR 全局接收帧门限。用于减少由于频繁产生中断而造成的开销。

● GRFCNT 全局接收帧计数。初始化为GRFTHR。

● TINTBASE 多发送循环中断表基址指针。

● TINTPTR 指向可用的发送循环中断表条目。初始化为TINTBASE。

● SCTPBASE 指向超通道表。

● RINTBASE 多通道接收循环中断表基址指针。

(5) 初始化缓冲区描述符BD 和数据缓冲区。

BD 表位于外部存储器,其组织结构如图2 所示。


图 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。


评论


相关推荐

技术专区

关闭