- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下的PCI-Express设备驱动程序的研究与实现_计算机论文.doc
Linux下的PCI-Express设备驱动程序的研究与实现_计算机论文
Linux下的PCI-Express设备驱动程序的研究与实现_计算机论文
摘 要 本文研究了Linux下的PCI-Express高速数据采集卡的驱动程序,在内核空间申请了足够大的DMA循环缓冲区,从而满足了系统对高速数据实时采集处理的要求。分别实现了查询模式和中断模式下的驱动程序,并通过实验结果的分析表明了中断模式在其性能上的优异性,提出了PCI-Express设备驱动程序进一步优化的方向。
关键词 Linux;PCI-Express;DMA;设备驱动;中断
1 引言
PCI-Express已经成长为新一代的I/O总线技术的主流,已经在服务器、存储系统、通信系统、数据处理、传输系统等领域中得到广泛的应用。基于PCI-Express总线的高速数据采集卡是信息处理系统中一个非常重要的设备,而驱动程序是硬件和操作系统之间的桥梁,对硬件设备的性能有着很大的影响,高效的驱动程序是实现高速数据实时采集、处理的一个重要保证。因此本文针对PCI-Express高速数据采集卡在Linux系统下的驱动程序进行了研究,并就如何设计和实现Linux下的驱动程序进行了深入的探讨。
2 Linux设备驱动程序
2.1 驱动程序的功能
驱动程序的作用是应用程序与硬件之间的一个中间软件层,硬件通过驱动程序向应用程序展现其具有的功能。Linux将所有外部设备看成是一类特殊文件[1],称之为“设备文件”,如果说系统调用是Linux内核和应用程序之间的接口,那么设备驱动程序则可以看成是Linux内核与外部设备之间的接口。设备驱动程序向应用程序屏蔽了硬件在实现上的细节,使得应用程序可以像操作普通文件一样来操作外部设备。Linux操作系统抽象了对硬件的处理,所有的硬件设备都可以像普通文件一样来看待:它们可以使用和操作文件相同的、标准的系统调用接口来完成打开、关闭、读写和I/O控制操作,而驱动程序的主要任务也就是要实现这些系统调用函数。
Linux系统中的所有硬件设备都使用一个特殊的设备文件来表示,例如,系统中的第一个IDE硬盘使用/dev/hda表示。每个设备文件对应有两个设备号:一个是主设备号,标识该设备的种类,也标识了该设备所使用的驱动程序;另一个是次设备号,标识使用同一设备驱动程序的不同硬件设备。设备文件的主设备号必须与设备驱动程序在登录该设备时申请的主设备号一致,否则用户进程将无法访问到设备驱动程序。
2.2 设备和模块的分类
Linux系统将设备分成字符设备(Char Device)、块设备(Block Device)、网络设备(Network Device)三种基本类型。字符设备是个能够像字节流(类似文件)一样被访问的设备,是以字节为单位逐个进行I/O操作,在对字符设备发出读写请求后,实际的硬件I/O紧接着就发生了;块设备和字符设备类似,两者之间的区别仅仅在于内核内部管理数据的方式上,也就是内核及驱动程序之间的软件接口上。块设备则是利用一块系统内存作为缓冲区,当用户进程对设备进行读写请求时,驱动程序先查看缓冲区中的内容,如果缓冲区中的数据能满足用户的要求就返回相应的数据,否则就调用相应的请求函数来进行实际的I/O操作。块设备主要是针对磁盘等慢速设备设计的,其目的是避免耗费过多的CPU时间来等待操作的完成。网络设备,任何网络事务都经过一个网络接口,即一个能够和其它主机交换数据的设备。
Linux系统下的设备驱动程序可以按照两种方式进行编译,一种是直接静态编译成内核的一部分,另一种则是编译成可以动态加载的模块。如果编译进内核的话,会增加内核的大小,还要改动内核的源文件,而且不能动态地卸载,不利于调试,因此推荐使用动态模块加载的方式。
3 PCI-Express驱动程序设计与实现
3.1 PCI-Express驱动程序实现的难点
传统的PCI/PCI-X总线传输最高突发速率是512Mbps,这远远不能满足对高速信号实时采集处理传输的需要,因此在设计时采用了PCI-Express总线来代替传统的PCI总线。PCI-Express与PCI在软件上兼容,但在硬件上改为串行差分传输,其主要优点是时延短、传输快、带宽提升潜力大和节省空间。PCI-Express采用的是点对点通信机制,各个插槽都将通过各自独享的通道发送和接收数据,这样就可以避免出现不同设备同时争抢系统和CPU资源的情况。PCI-Express有x1、x2、x4、x8、x16和x32多种线宽,如x1的传输带宽为2.5Gbps,x2为5Gbps,依次类推。
因此与以往PCI设备驱动程序在实现上不同的是基于Linux下的PCI-Express设备的驱动程序必须要注重考虑数据传输的速度和效率。以往的Liunx下PCI设备最大
您可能关注的文档
- (信息化教育电子绩效支持系统ITEEPSS)的设计与实现_计算机论文.doc
- .Net平台下并行工程项目规划与团队组织系统的设计与实现_计算机论文.doc
- 08-16SP4MF型捣固车操作概述_电子机械论文.doc
- 10t半沸腾锅炉烟尘高效处理技术_工程建筑论文.doc
- 1992lxm工业蒸汽锅炉的自动化控制过程与实现_工程建筑论文.doc
- 2011年中国企业计算需求展望虚拟化-客户端计算与云计算_计算机网络论文.doc
- 214线退化性多年冻土地区试验路设计_工程建筑论文.doc
- 21世纪中国医院信息化及其对策_计算机论文.doc
- 21世纪制冷空调行业绿色环保制冷剂的趋势与展望_工程建筑论文.doc
- 21世纪岩土工程发展展望_工程建筑论文.doc
- Linux嵌入式系统开发平台选型探讨 _计算机网络论文.doc
- Linux操作系统下以太网卡的安装及配置_计算机论文.doc
- Linux服务器下多网卡负载均衡的研究与实现_计算机网络论文.doc
- LNS构架的智能小区安防及关键技术应用研究_工程建筑论文.doc
- M2M移动通信网络架构研究_通信学论文.doc
- Magic DaVE 4A 数字特技切换台的功能及一些实用技巧_计算机论文.doc
- Magic DaVE 4A 数字特技切换台的功能及一些实用技巧_计算机论文_0.doc
- Maintaining Choice- Electronic University Education and Diversity (下)_计算机网络论文.doc
- Maintaining Choice- Electronic University Education and Diversity(上)_计算机网络论文.doc
- Matlab 和 Word 的链接在土工试验中的应用_工程建筑论文.doc
最近下载
- (PPT)考勤管理制度.ppt VIP
- 安顺西秀富民村镇银行招聘考试真题及答案2022.pdf VIP
- 2021年青岛市临床营养质控中心年终考核暨下半年工作检查.docx VIP
- 2025年压力容器考试题库3带答案.doc VIP
- 2024贵州安顺普定富民村镇银行招聘笔试备考题库及答案解析.docx VIP
- 昆明元朔建设有限公司高速收费岗位笔试题.docx VIP
- 2021年安徽高考政治试卷.pdf VIP
- 九年级化学演示实验通知单(全册)资料.doc VIP
- 提高基建档案规范化管理——[ 获奖QC 成果发布 ].pdf VIP
- 2025贵州望谟富民村镇银行股份有限公司招聘考试参考题库附答案解析.docx VIP
文档评论(0)