查看: 1935|回复: 0

MPC8260的收发数据和触发中断的程序设计

[复制链接]

该用户从未签到

发表于 2011-1-15 14:15:59 | 显示全部楼层 |阅读模式
分享到:
  FPGA内部分配有两个大的存储空间,用于轮流缓冲从数据源接收到的数据。任何一个缓冲区收满后,继续接收的数据保存到下一个缓冲区,同时以中断的方式触发MPC8260启动相应的IDMA通道把数据传到SDRAM中。IDMA控制、数据同步和错误处理都由MPC8260完成,FPGA只负责收发数据和触发中断。以下介绍的是MPC8260的收发数据和触发中断的程序设计
    1. MPC8260程序设计
  MPC8260预先初始化两个IDMA通道:通道的源地址和传输数据长度等信息与FPGA中的缓冲区一一对应。当收到FPGA的中断信号之后,如果此时对应的IDMA通道空闲,则在中断处理程序中发出CP命令开始接收数据,同时将对应的IDMA通道置忙状态;否则,在FPGA中可能发生了未读取的数据被覆盖的情况,MPC8260进入错误处理程序。在数据传输结束时由DMA控制器发送CPM内部中断到内核,在中断处理程序中一方面要恢复IDMA通道的参数设置,另一方面要把该IDMA通道置闲状态等待下一次传输的开始。MPC8260程序的核心部分是IDMA通道设置和中断处理。
    (1) IDMA通道设置
  与一般的DMA通道设置一样,IDMA通道设置的主要参数包括:源地址、目的地址和传输数据长度。除此之外,MPC8260的 IDMA通道设置还包括通道模式、缓冲区和中断配置等,所涉及的寄存器比较多,配置比较复杂。
  BD(Buffer Descriptors)表是用于指定传输方式、源/目的地址和数据长度等基本信息的数据结构。BD表的基地址由参数RAM中IBASE寄存器的值指定。除IDMA BD表的基地址之外,IDMA参数RAM内还存放有IDMA BD指针、IDMA传输缓冲区的起始地址、IDMA传输缓冲区大小和DMA通道模式等IDMA通道信息。IDMA参数RAM的基地址由参数RAM中IDMAx_BASE寄存器的值指定。IDMAx_BASE寄存器的地址是固定的,如IDMA1_BASE在偏移RAM基地址0x87FE的位置。CP就是通过IDMAx_BASE寄存器找到IDMA参数RAM,再通过IBASE找到BD表的顺序初始化IDMA通道的。
  为了提高通道的传输速率,系统中IDMA通道初始化应该注意以下几点:
  ① 需要在SIU中为FPGA配置UPM模式控制MPC8260和FPGA之间的突发读写。不要使用通用目的片选机模式。因为MPC8260内存控制的GPCM模式不支持突发传输,IDMA工作在GPCM模式下一方不论传输数据的长度是否满足突发的要求,都只能以普通的单次读写进行。
  ② 把FPGA当作存储器操作,IDMA工作在内存到内存的双地址模式下,缓冲区设为最大的2 KB。
  ③ BD表的配置应该与FPGA中的缓冲区一一对应。BD表结构中的CM(Continuous Mode)位应该设置为缓冲链模式,在每一个BD表传输完之后,清BD表的有效位;同时,CP根据下一个BD表的值自动装载IDMA寄存器进行后面的传输。
     (2) 中断处理
  系统设计中使用了两类中断方式: IRQ引脚引入的外部中断和CPM触发的内部中断。初始化过程包括:使能对应的中断屏蔽位、选择中断优先级、连接对应中断向量号和中断服务程序等。为了保证较好的传输实时性,需要把中断优先级尽量设得高一些。
  与一般中断处理过程的区别在于:MPC8260中断处理控制器采用分级结构来扩展中断信号总数。CPM内的中断就是二级中断,需要通过CPM中断控制器和SIU中断控制器两级中断控制。
    2 FPGA部分程序
  系统中的FPGA芯片利用VirtexII内嵌的大容量BlockRAM配置为单口RAM来做缓冲区,在程序中可以用Xilinx的集成开发环境ISE 7.1i内部自带的IP核生成。对FPGA来说,由于数据的输入/输出都是顺序的,所以两端都只要1根地址线用于区分相邻的两个数据就可以了。地址线配合内部计数器构成读写指针,当写指针从缓冲区的一半跳到另外一半时发相应的中断信号。
  FPGA设计的关键部分是和MPC8260的总线接口设计。通过适当选择缓冲区的起始地址和长度,可以使MPC8260读FPGA都以突发的方式进行。设计中,MPC8260对FPGA的突发读写遵循自己配置的UPM模式,所以要综合考虑UPM模式设计和FPGA读写逻辑设计。在设计UPM模式时,可以在每次MPC8260锁定数据总线数据之前由通用功能信号线(General Purpose Line,GPL)产生一个下降沿通知FPGA往数据总线上写新数据;或者通过GPL把总线时钟送到FPGA达到收发同步来完成MPC8260与FPGA之间的读写。
本文来自    http://www.glsheng.net/newsview.asp?ID=563
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-23 02:44 , Processed in 0.117991 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.