APP下载

基于PCI串并口驱动程序的设计与开发探究

2019-12-01刘帅

市场周刊·市场版 2019年52期
关键词:驱动程序

摘 要: 如今自动化、智能化的生产方式已成为人类对于生产制造技术的新追求,然而为了实现制造业的自动化与智能化发展,与其相对应的计算机自动编程与控制技术已成为当下研究的重点和热点。文章从Windows和Linux系统的驱动程序开发入手,系统介绍了PCI控制策略及其串并口的具体情况,在此基础上对于驱动程序的设计与开发工作的具体流程和手段进行了描述与分析,同时对于遇到的难点问题进行阐述并有针对性地提出解决措施。

关键词: PCI;串并口;驱动程序;设计与开发

一、 引言

Windows和Linux操作系统作为目前使用最为广泛的两种计算机操作系统,根据应用场景及功能的区分,可将其对应的驱动程序分为以下三类:一是根据总线控制策略而产生的总线驱动程序;二是根据相关设备实现特定功能的功能驱动程序;三是作为过滤有效信息和有针对性选择而使用的过滤驱动程序。三者之间相互关联、相辅相成。

PCI总线控制技术作为目前最常使用的控制策略之一,在结构上为树形结构,并且与计算机系统之间的CPU总线之间相互独立,同时也可和CPU总线之间进行并线操作,从而实现设备的高效快捷运行。此外在其对应的控制设备上,PCI总线上只允许有一个PCI总设备,其与均为PCI从设备,且PCI驱动程序的读写操作只可以在主设备与从设备之间进行,从设备所产生的数据均需通过主设备进行中转交换而进行交流。文章从PCI驱动程序的开发入手,分别介绍了PCI驱动程序的基本概念,并对基于两种系统开发对应程序的具体流程以及常见问题进行讨论和分析。

二、PCI驱动程序的基本概念

PCI驱动程序主要用于相关设备的自动化和智能化的控制,其在本质上为一组控制硬件设备的函数,主要作用是为面向用户的应用程序和硬件设备之间提供了一种必要的连接接口和方式,是计算机操作系统实现核心态模块加载的重要组成部分。而实现主动加载和控制的重要技术称为PCI总线控制技术。

(一)PCI控制总线的基本概念

PCI控制总线又称为PCI局部控制总线,是一种高性能的32/64位控制总线,其可分为多路地址线和数据线,是相关外围设备、处理器以及存储设备之间的互联机构,支持的主要控制频率为33MHz、66MHz和133MHz;在33MHz主频和32位数据通道的共同作用下,其最高的数据传输速率可达到132MB/s,在最大限度上可以满足现代生产生活中日益增长的数据传输要求。

在构成结构方面,PCI控制总线与其他总线的设计之间存在较大的差异,其中PCI总线并没有和处理器进行直接的关联互动,而是通过桥路把PCI总线和设备处理器中的局部总线进行连接;PCI路桥在控制程序作用时主要控制并驱动PCI总线,从而使得PCI控制总线和设备处理器能够异步运行,使得设备在自动控制方面更加的简单和便捷。因此可知PCI控制总线的优点在于:其具有高性能、强兼容性、低运行成本和高的收益效果的特点,满足了现代计算机I/O系统发展具体要求,从而成为世界上应用最为广泛的总线标准之一。

(二)PCI控制总线的特点

PCI控制总线作为一种具有高性能、高标准的控制总线标准,具体特点可分为以下几点:①其控制运行的性能极为优良,在较小运行成本的前提下实现高速、高质量的运行效率和运行速度;②由于其直接针对的部件之间能够实现互联优化,并且在电气驱动能力和使用频率方面完全满足标准的ASIC技术和其他典型工艺,从而极大程度上节省了逻辑电路的物理空间,进而降低了使用的成本;③使用便捷,由于PCI总线上的附加板和相关部件可以实现全自动化的配置,PCI设备内部包含有对应的配置地址寄存器,从而有效解决了早期ISA总线中极易出现的硬件资源冲突的问题;④具有较为广泛的适用范围;⑤使用较为灵活,因为PCI控制总线固有的特点,可同时设置多个具有完全自主能力的主设备,允许PCI主设备点访问PCI主设备和从设备的权限,进而使得其使用范围变得更加广泛;⑥具有良好的兼容能力,PCI总线可与多个PCI主设备中的驱动程序和应用软件进行兼容,并可实现在不同平台上的互相移植。

三、 PCI串并口驱动程序的设计与开发

(一)PCI串并口驱动程序开发流程

PCI设备的程序位于整个PCI控制总线驱动的最上层,在不同的操作系统下进行相关控制驱动程序的开发,在操作流程上具有一定的差异,但对于具体的操作流程和步骤上均需完成以下几部分:

1. 在设备开发的初始阶段均需要设定一些初始的数据及识别策略,因此设备在PCI驱动程序开发的初始阶段均需对PCI主设备和从设备的端口、内存以及DMA等相关资源的数据进行采集、统计和分析;

2. PCI设备在工作过程中均会将自己的寄存器地址范围映射至操作系统之中,在进行相关驱动程序的开发之前,需根据PCI设备中寄存器地址的位長对相关的驱动程序构造相应的读、写函数供端口进行相应的操作和使用;

3. 备在内存中的读写操作是利用PCI设备的物理内存进行完成的,而对应的应用程序的读、写操作利用的是总线系统中的虚拟地址,因此驱动程序在完成相关的机制操作时需完成设备的物理地址和程序的虚拟地址之间的转换工作;

4. 在PCI控制总线及其设备中均共享同一个中断处理信号,当系统发出中断信号后,设备与系统之间需对该信号的作用对象进行区分,因此在完成PCI驱动程序的开发时,需对该段程序加以处理,以便方便该系统完成信号的自动识别与处理。

(二)不同系统的PCI驱动程序开发的区别

进行PCI驱动程序的开发,主要区别在于Windows系统主要在不同的驱动层之间进行通讯连接,而Linux系统主要依靠自身带有的IRP模块和带有自定义参数的控制函数在不同模块之间进行联系。两者之间具体的区别可归纳为以下四点:①在驱动例程上的不同,主要由其驱动装置及各部分访问方式的差异而造成;②是PCI主从设备命名的不同;③是由于操作系统的不同,硬件、软件上的差异造成用户与内核空间数据传输方式上的差异;④是驱动程序安装与管理方面的不同,这是由于不同操作系统本身固有的属性而决定的。

四、 结论与分析

PCI控制总线作为一种高标准、高性能的总线控制标准,顺应了当前自动化、智能化的主要趋势,解决了以前ISA和EISA控制总线中存在的一些问题和缺陷,具有性能优良、运行成本较低、使用便捷灵活以及良好的兼容性能等优点;并在Windows操作系统和Linux操作系统的驱动程序开发方面具有一定的相同点,相关驱动程序的设计开发较为便捷,具有良好的应用前景和推广价值。

参考文献:

[1]郑秀玉,李晓明,李畅等.基于PCI总线的数据采集卡驱动程序设计与实现[J].电气应用,2007(1):93-97.

[2]江洋.基于PCI总线的驱动程序设计及实现[D].成都:电子科技大学,2013.

作者简介:  刘帅,南京沁恒微电子股份有限公司。

猜你喜欢

驱动程序
避免Windows系统更新反复安装显示驱动
方便直观改善Windows驱动程序管理
设备升级问题回退驱动解决
阻止Windows Update更新驱动程序
妙用鼠标驱动
驱动程序更新与推荐