首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的PCI接口控制器的设计与实现
来源:本站整理  作者:佚名  2010-04-09 11:25:45



 主设备工作机制

  主控host首先分配两个内存空间,一个用于存放地址信息,一个用于存放真正的数据。当实验板做主设备时,数据传输使用dma方式对存储器空间直接进行读写操作,数据传输结构如图2所示。

  主设备先进行存储器读操作,以从内存空间1中读取主控host分配的pageaddr和pagecnt。主设备得知内存空间2的地址后,即可在传输数据时,读取或者写入到这些真正的数据存储区。实验板做主设备时,为了不和主控host上的其他主设备冲突,设定突发长度为8,传输8个32位数据后释放 pci总线,然后开始申请总线使用权,以便继续传输数据。上述操作均由时序状态机进行控制。

主设备时序状态机

    时序状态机是pci接口控制器的核心,各种令名、数据交换、控制均在状态机的管理下进行工作。图3是实验板做主设备时,pci总线接口控制器时序状态机。实验板做目标设备的状态机就不在这里介绍了。

  这一状态机共有8个状态,分别是:mstate_idle、mstate_req、mstate_addr、mstate_data、 mstate_last、mstate_addr_p、mstate_data_p、mstate_last_p。他们代表总线作业时的不同阶段,意义如下:

mstate_idle:主设备空闲状态。实验板目标设备工作,当host通过写i/o方式通知目标设备需要开始以dma方式传输大量数据时,start信号有效,主设备开始申请总线使用权,状态跳转到mstate_req。

mstate_req:主设备开始申请总线使用权状态。主设备开始申请总线使用权,使连接到仲裁器上的req_o_信号有效,通知仲裁器实验板的主设备需要使用pci总线,等待仲裁器的裁决。实验板主设备得到可以使用总线的通知时,必须等到前一个正在占用总线的主设备完成其传输,并且释放总线后,才能真正使用pci总线,即实验板主设备需要采集到frame_i_无效并且irdy_i无效。当pagecnt=0表示一页数据已经传输完毕,于是开始读取下一页数据的存放地址,状态跳转到mstate_addr。当pagecnt!=0表示一页数据还未传完,状态跳转到mstate_addr_p,继续这一页数据的传输。

mstate_addr:主设备页地址状态。这个状态frame_o_信号有效,开始地址周期,ad上出现的是32位页地址信息,cbe_o_上出现的是存储器读命令,这个状态是准备做存储器读操作,在总线上送出地址后,跳转到mstate_data。

mstate_addr_p:主设备数据地址状态。这个状态同mstate_addr状态一样的是,开始地址周期。所不同的是ad上出现的是在mstate_data状态下读到的32位数据地址信息。根据需要,可以进行读/写存储器操作。

mstate_data:主设备读页信息状态。这个状态是读存储器,irdy_o_信号有效。数据真正的传输是在trdy_i_信号和 irdy_o_信号同时有效时,可以读取到数据是页信息,代表存放数据的地址信息和存放数据的长度。数据传输的突发长度是2,所以一次pci访问读取两个 32位数据,读完一个数据后状态立即跳转到mstate_last去读取最后一个数据。当host主机要求停止数据传输时,通过使stop_i_信息有效告诉主设备,主设备必须放弃这次数据的传输,状态跳转到mstate_last。

mstate_data_p:主设备读/写数据状态。这个状态是数据的传输,突发长度是8,一次pci访问可以读取8个32位数据,当cnt=2 时,表示读完7个数据,状态跳转到mstate_last_p。与状态mstate_data一样,如果host主机要求停止数据传输时,主设备必须放弃这次数据的传输,状态马上跳转到mstate_last_p。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:10,734.38000 毫秒