在设计该系统的过程中,本人所做的主要工作如下:
1、深入学习PCI Express总线协议,理解PCI Express的事务类型、中断以及配置空间。
2、在理解PCI Express总线协议的基础上,结合IP核,实现了PIO、中断以及DMA操作。
3、利用WinDriver和MFC,开发了设备驱动程序和简单的应用程序。
论文章节安排:
第一章: 绪论
第二章: PCI Express系统体系
第三章: 硬件模块的设计与实现
第四章: 驱动程序设计
第五章: 系统调试及结果分析
2 PCI Express系统体系
2.1 引言
PCI Express突破传统总线的另一个特点是采用点到点的互连方法,每个设备都由独立的链路连接,独享带宽,这是提高传输率的有效解决方案。PCI Express总线结构将一条链路视为一条总线,从而从地址空间、配置机制及软件上均保持与传统PCI总线的兼容。一个PCI Express设备占用一条总线(链路),所以在基于PCI Express的计算机里,桥和总线的数目很多。传统PCI设备亦可在PCI Express平台上运行,通过PCI Express到PCI(或PCI-X)的桥,可引出PCI(或PCI-X)总线,传统PCI设备挂在这样的总线上便可融入PCI Express结构。
本章主要讲述了PCI Express系统体系。首先以PCI Express的基本元素为基础,讲述了PCI Express的总线事务、设备层次与中断方式,最后简要说明了PCI Express的配置空间以及性能、效率。
2.2 PCI Express结构的基本元素
图2.1基于PCI Express总线的计算机结构
图2.1是一个基于PCI Express的系统,以此为例说明PCI Express结构的基本元素。
1. 链路与带宽
2. 差分信号传送
3. PCI Express设备
4. 层次、层次区域和线路结构
5. 地址空间
6. PCI Express事务与包
7. 错误检查与处理
8. 传输类别、虚通道和服务质量
9. 流控制
10. 中断处理
11. 电源管理
12. 热插拔支持
2.3 PCI Express事务介绍
PCI Express设备之间的数据传送是以事务组织的,根复合体能够发起指向端点的事务,端点能够发起指向根复合体的事务,端点可以发起指向另一个端点的事务。PCI Express事务可以分为四种:存储器事务、IO事务、配置事务和消息事务。事务的执行或者完成是由发送和接收事务包(TLP)来具体实现的,事务被定义为,为实现请求者和完成者之间某种信息传送所要求的、由一个或若干个包组成的发送序列。
表2.1列出了PCI Express的事务,这些事务分为非转发事务和转发事务。
存储器读事务、IO事务和配置事务属于非转发事务。非转发事务按照分割事务的方法处理,请求者发送TLP请求包给完成者,然后,该完成者返回TLP完成包给请求者,通知请求者它已经接收到了请求TLP,若是读事务,其完成TLP中还包含有返回的读数据。
存储器写事务和消息事务属于转发事务。转发事务只需请求者发送TLP请求包给完成者,完成者不返回完成TLP给请求者,虽然请求者不知道是否该请求已被完成者成功地接收,但总线性能得到优化。转发事务类的消息请求TLP中,有的带数据,有的不带数据。
表2.1 PCI Express非转发事务和转发事务
事务类型 非转发事务或转发事务
Memory Read(存储器读) 非转发事务
Memory Write(存储器写) 转发事务
Memory Read Lock(存储器读锁定) 非转发事务
IO Read(IO读) 非转发事务 WinDriver基于PCIE的数据存储卡开发+文献综述(4):http://www.751com.cn/tongxin/lunwen_6744.html