当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于PCI总线的数据采集卡设计


0 引言
    随着计算机软硬件技术和控制、测量技术的不断发展,许多工程技术人员都将PC机作为控制、测量开发的首选平台。而PCI(Peripheral Component Interconnect,即外围部件互连)总线作为一种高性能、通用的局部总线,是目前计算机插卡式外设总线的事实标准。PCI总线具有32/64位总线宽度。地址线和数据线复用,支持猝发传输,传输速率高达132MB/s;系统占用率低,具有较好的兼容性;有完备的即插即用(PnP)管理体制,可同时支持多组外围设备。虽然PCI总线也经历了从PCI、PCI-X到PCI Express的发展,但PCI总线由于存在时间长,开发工具、开发资料众多,在对数据吞吐量要求不是很高的工业控制、测量领域仍有着顽强的生命力。笔者在学习了相关设计资料的基础上,设计了基于PCI总线的数据采集卡,可以完成8路数字量I/O及4路差分14位A/D采集功能。本文将根据笔者的实际经验,介绍PCI接口扩展卡的软硬件设计流程。


1 PCI总线工作方式简介
    PCI总线标准由intel于1991年提出,后由PCI-SIG(PCI Special Interest Group)接替了PCI规范的发展。PCI总线是一种时分复用的双向应答总线,传输发起方称为主设备,接收方称为从设备。其主要信号定义如下:
    RFAME:由主设备驱动,为低,指示一次传输的开始。
    DEVSEL:由从设备驱动,为低,指示响应传输请求。
    ADO~AD31:地址、数据复用信号。PCI总线的数据传输以帧为单位,每次传输由一个地址周期和多个数据周期组成。首先给出本次传输的首地址,后面紧跟一个或多个4字节宽的数据,连续传输多个数据时,其地址自动递增。
    C/BE0~C/BE3:这4根线在地址传送周期,传输的是总线命令,C/BE0~C/BE3的不同组合指示在AD0~AD31上将要进行何种类型的操作,其代表的总线命令见表1;在数据传送周期,传输的是字节始能信号,用来表示在整个数据期间,AD31~AD0上的哪些字节为有效数据。
    IRDY、TRDY:分别表示主设备准备好和从设备准备好。在传输过程中,只有IRDY和TRDY同时有效,传输才能继续;否则插入等待周期,用于在不同速度的设备之间协调工作。
    表1地址传送周期时。C/BE0~C/BE3所代表的总线命令PRSNT1、PRSNT2:PCI板对电源的请求信息,具体含义见表2。

    将PCI接口卡插入计算机插座,加电后,BIOS会根据PCI接口卡上的配置信息,为其分配相应的I/O端口、存储器空间、中断及DMA等计算机资源。

2 PCI接口卡的硬件设计
    笔者设计的PCI数据采集卡使用的PCI接口芯片是CH365,CH365可将32位高速PCI总线转换为简便易用的类似于ISA总线的8位主动并行接口,支持240字节的I/O端口映射、32 K字节的存储器映射、扩展ROM以及中断。本数据采集卡仅使用了I/O端口映射及中断功能。本PCI数据采集卡使用MAXIM公司的4通道14位、差分、同时采样ADC:MAX1338,实现A/D转换功能,并将MAX1338的/EOLC引脚与CH365的INT_REQ引脚相连,以便在ADC转换完成后,向PC机发出中断申请。使用两片74HC273作为输出,一片用作8路I/O输出,另一片用作对MAX1338控制命令的输出。使用两片74HC373作为输入,一片用作8路I/O输入,另一片采集MAX1338的状态指示信号。使用TLP521-4对8路I/O输入、输出进行光电隔离。使用74LS138作为地址译码。[!--empirenews.page--]
    在制作印制板时,CH365的VCC与GND间应就近放置容量为0.1 μF高频、低ESR的多层瓷片电容,连接PCI总线的电源线引脚可以自由选择,但数量不宜少于4对。CH365属于高频数字电路,应该考虑信号阻抗匹配,在设计PCB板时需要参考PCI总线规范。建议CH365的PCI信号线的长度都小于35 mm,尽量走弧线或者45度线,避免直角或者锐角走线,并且尽量将信号走线布在元件面;CH365的PCI时钟线CLK的长度尽量保持在50 mm~65 mm之间,并且不宜靠近其它信号线;在PCB背面保留大面积的接地覆铜,以减少周边信号线的干扰。虽然PCI总线规范推荐使用四层板,但考虑成本等因素,可使用双面板,双面覆铜接地。笔者做的PCI数据采集卡即为双面板,经实验验证在工业现场环境下,该卡能够稳定工作。


3 PCI接口卡驱动程序及软件设计
    在Windows系统中,为避免因不当的硬件操作而导致系统崩溃,应用程序不再具有直接的硬件访问权,如果要操作硬件,必须借助设备驱动程序。驱动程序主要功能是完成对硬件板卡的内存映像地址、I/O地址的存取,并正确处理来自板卡的硬件中断。
    Microsoft为设备驱动程序的编写提供了“Windows De-vice Drivers Kit”(简称DDK)工具,它包含了驱动开发所需的各种类型的定义和内核函数库。用DDK编制的驱动程序有很高的运行效率,但是开发难度大,测试流程繁琐。为减轻驱动开发者的负担,很多第三方厂商提供了简化驱动开发的软件。如Numega公司的DriverStudio软件,J ungo公司的WinDriver/KernelDriver软件等。尤其是WinDriver/KernelDriver不要求开发者非常熟悉操作系统平台,掌握核心开发、调试知识,即可在几分钟之内开发出相应的驱动程序。但WinDriver的运行效率较低,因此,在对运行效率较高的场合,可使用KernelDriver进行开发,以提高运行效率。
    由于本采集卡的数据吞吐量不高,因此采用WinDri-ver6.21进行驱动程序的开发,其开发过程如下:
    (1)运行Windriver程序,选择"Create a new driver pro-ject”;
    (2)在弹出的“Select Your Device”窗口中,从列表中选择自己的硬件设备。由于CH365的默认厂商标识(Vendor-ID)为4348H,设备标识(DeviceID)为5049H,因此选中“PCI:VendorID 4348 DeviceID5049”的PCI设备(如图1)。

    (3)单击“Generate.INF file”按钮,产生采集卡的驱动安装信息文件。注意:需选中“Automatically Install the INFfile”复选框,以便可以在(4)步中测试采集卡(如图2)。

[!--empirenews.page--]

    (4)在“Define and Test Resources for Your Device”窗口中,设置采集卡的I/O地址及变量名,对于即插即用(Plug-and-play)设备,Windriver会自动发现其所用到的硬件资源(如:I/O范围,存储器范围及中断号等)(如图3)。在此可对采集卡的I/O地址进行读写测试,以便验证硬件设计是否正确。

    (5)在“Select Code Generation Options”窗口中,选中合适的开发语言及开发平台。在此选择“Ms Developer Studic6,5”(即Microsoft VisualC++6/5),以便Windriver生成合适的驱动程序框架及相应的API函数(如图4)。

    (6)保存Windriver产生的驱动开发工程后,Windriver会自动打开相应的开发环境(此处为:Microsoft VisualC++6),以便开发人员进行后续开发。
    通过以上步骤,Windriver生成一个基于Visual C++语言的程序框架,开发人员可以在此框架的基础上进行修改,加入自己的程序,实现对硬件的操作。现以笔者编制的程序(工程文件名为ADC)为例进行介绍。
    在程序初始化阶段,先调用PCI_Get_WD_handle(),判断驱动程序windrvr6.sys是否已被加载,如果驱动程序已被加载,则调用ADC_LocateAndOpenBoard()函数,打开数据采集卡。在退出应用程序前,需先调用ADC_Close()函数,关闭数据采集卡。
    对MAX1338和8路I/O的寄存器操作可通过ADC_ReadByte()、ADC_WriteByte()两个函数完成。对CH365内部配置寄存器的读写可通过ADC_Read-PCIReg()、ADC_WritePCIReg()两个函数完成。完成应用程序的开发后,数据采集卡在其他的PC机上工作时,需提供windrvr6.sys、windrvr6.inf、wd_utils.dll、数据采集卡的,inf文件以及自己开发的应用程序或DLL。以便于PC机安装相应的驱动程序,对板卡进行配置、操作。本文根据笔者的实践经验,简要介绍了PCI扩展卡的开发流程,给出了一套快速可行的解决方案。该方案简单易行、调试方便,可使工程技术人员迅速掌握PCI总线的开发技术,从而设计出符合工程需求的PCI扩展卡。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭