0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PCI总线实现E1数据采集卡的设计

电子设计 来源:重庆邮电大学学报:自然 作者:马君,张治中 2021-05-22 15:31 次阅读

引言

近年来TD-SCDMA一直是通信行业关注的一个焦点,为了进一步支持TD-SCDMA产业化进展,国家对当前TD-SCDMA产业发展的各个环节给予支持[1]。我国正大力开发TD-SCDMA第三代移动通信(3G)系统,即将大规模组建3G网络,然而却没有所必需的实验研发、建网和运行测试设备,在国际上传统通信测试仪表厂商也只推出了基于CD-MA2000和WCDMA 2种标准的测试仪表。针对这样的情况,研制出具有自主知识产权的TD-SCDMA移动通信网络测试仪,完善TD-SCDMA产业链,形成系列产品并推向市场,必将产生巨大的社会效益及经济效益。该测试仪主要测试的接口包括Iub,Iur,IuCS,IuPS,Nc,Nb,C/D/E/G/Gr/MSCS- SCP,Gn/Gp,Gi等[2-4],主要实现协议分析(解码)、呼叫跟踪、业务统计及分析、网络异常分析、网络分析和优化、协议仿真等功能,采用工控机结构,多链路、多通道的硬件由多个基于PCI总线的数据采集卡(规程板)组成。E1数据采集卡是其中的一个PCI数据采集卡,它采集的2M信令用于网络的实时维护和管理,是TD-SCDMA网络系统中非常重要的一部分。

1、E1数据采集卡的实现

E1数据采集卡从E1线上采集信令消息(包括七号信令等),用以监视和仿真整个通话流程。控制流程如图1所示,PCI接口芯片(HDLC控制器)是一个多功能设备,包括一个网络控制器和一个PCI桥设备(EBUS)。网络控制器完成时隙映射和DMA传输等功能;PCI桥设备完成选通和配置成帧器,其中成帧器的选通用一个CPLD来完成。信令信号在成帧器成帧后,经过HDLC控制器以DMA方式送入到PC缓冲区,用户依据接口函数到缓冲区读取信令数据并进行分析,数据流程如图2所示。

基于PCI总线实现E1数据采集卡的设计

图1E1数据采集卡控制流程图

图2E1数据采集卡数据流程图

2、E1数据采集卡的驱动设计

2.1开发环境设置

在开发驱动前,首先要对开发、编译环境进行设置。WDM驱动程序开发环境及在Windows XP/Windows2000下编写驱动程序的环境被称为DDKFor WindowsXP/Windows2000或WindowsXP/Windows2000 DDK。DDK是一个命令行下的工作环境。在安装DDK前需要先安装Microsoft Visual C++和Win32 SDK(可选),安装DDK成功后,一定要在控制面板“系统”属性的“高级”标签环境变量编辑器中设置好这个环境变量。对驱动程序的编译可以通过设置VC ++的项目设置,在VC环境中直接编译驱动程序,但改变设置的工作较繁琐且易出错,因此“DDKbuild.exe”编译联接器是构造驱动程序的主要工具。“DDKbuild.exe”从配置文件Sources中读出待编译的程序的配置,包括源文件、目标文件等,从环境变量Include中得到引用文件的地址,然后调用Visual C++的编译联接器“Nmake.exe”进行实际的编译联接工作。另外,build编译联接器还可以通过查看DIRS文件中的伪指令,确定要编译的驱动程序目录列表。日志文件build.log,build.wrn,build.err中分别记录了编译联接中执行的命令行、遇到的错误和警告。编译完成后的文件后缀为“.sys”。

2.2驱动框架设计

驱动程序在初始化过程中,利用期间识别号(DID)、厂商识别号(VID)和检索号(Index)搜索PCI器件,通过调用PCI BIOS确认其存在,然后利用总线号、器件号、功能号和寻址设备的PCI配置空间(Configuration Space),获得该设备的参数。这部分可以由DRIVERWORKS的向导DriverWizard来完成。

DriverWizard为设计者生成了2个类:一是设备驱动程序类,另一个是设备应用对象类。驱动程序类主要完成WDM(Windows driver model)的DriverEntry和AddDevice例程;设备对象类就是与硬件对应的功能设备对象(FDO)类,与硬件交互的例程都是针对此类的。通过前面驱动框架设计的参数配置,驱动程序就建立了联系,接下来就是驱动功能设计。

2.3 驱动功能设计

E1数据采集卡底层驱动程序的2个部分分别对应接口芯片的2个功能设备:HDLC控制器和成帧器。E1数据采集卡的HDLC控制器和成帧器的配置都是驱动程序通过PCI接口芯片来配置的。

HDLC控制器的配置主要完成映射的共享体的配置。共享体用于HDLC寄存器的初配、接收和发送缓冲区配置。HDLC控制器为每个信道都建立一个消息链表,这样数据缓冲区可以循环利用。HDLC控制器与成帧器的对应关系决定于HDLC控制器端口映射方式的设置。 成帧器就是将E1线上的比特流整合成符合规范的HDLC帧,其中一个标准E1 HDLC帧包括32个时隙,这些时隙可以通过配置映射到HDLC控制器的端口信道上。另外,可以通过时钟配置实现多对多、多对一的灵活时隙映射。自环也是成帧器重要的功能之一,可以将发出的数据直接导到接收端,这对早期开发很重要。成帧器提供3种自环模式,可以满足不同阶段配置的要求,具体如下。

(1)N×64 K模式。在该模式下,E1数据采集卡通过成帧器耦合,将数据导入到一个HDLC控制器端口,这样提供的8个E1接口都可用作接收数据。另外,用户可以根据需要和当前数据量的大小增减时隙配置。

(2)2 M模式。在该模式下,E1数据采集卡将4个成帧器与4个HDLC完全对应,最大数据量达2 Mbit/s。

(3)N×8 K模式。该模式是为某些特殊情况设计的。在有些网络中,七号信令可能只走一个HDLC帧中一个时隙的一个或几个比特。在这种情况下,只将该时隙的对应比特位映射到HDLC端口中,获取准确信息

借助于驱动的I/O接口函数,用户可以通过API或MFC配置下层驱动。另外,为满足用户对信令消息的特定要求,驱动提供了控制消息长度的接口函数,用户可以随意采集指定长度的消息数据,便于特定检测。

卡间同步决定了网络测试仪实时检测性能和仿真性能,是TD-SCDMA网络测试仪的主要技术之一。2 M卡解决了时钟同步问题,可实现一机多卡,为大型网络节点的繁重数据量采集提供升级参考。

3、E1数据采集卡的驱动实现

E1数据采集卡驱动程序采用WDM结构,程序具体模块分析如图3所示。

图3设备驱动程序的组成示意图

3.1驱动程序入口点和回调例程

驱动程序有一个主要的初始化入口点——DriverEntry,当驱动被装载时,内核就调用DriverEntry例程。在 DriverEntry里,有回调例程供内核调用,这些例程是驱动的实现主体。内核通过发送I/O请求包(IRP)来运行驱动程序中的这些例程。驱动程序入口点和回调例程功能列表如表1所示。

表1驱动程序入口点和回调例程

3.2IRP分发例程

“创建”、“关闭”、“读”、“写”、“CTL码”处理的例程就叫分发例程,在本驱动中,用来产生IRP,IRP向上向下转发、传送数据。

3.3创建设备

每个设备接口都有一个惟一标识的GUID码(全局惟一标识符),安装设备驱动时,inf将该信息导入到注册表,形成一个符号链接名来表示设备。这样,操作系统在设备安装后都能够识别设备。

3.4资源分配

资源包括I/O端口、存储器空间、中断和DMA线,这些资源都是由接口提供的。例如,存储器地址可通过KMemoryRange来找寻。

3.5硬件访问

对硬件的访问包括IRP串行处理例程StartIo,StartIo例程可以防止程序的不同部分同时访问相同资源所引起的冲突,在E1数据采集卡中,StartIo例程负责上行处理接收的数据和下行的命令以及发送数据,StartIo可控性很强,能满足采集卡对高速数据采集的要求,具体程序如下。

3.6中断处理

中断例程运行级别很高,windows为了保护操作系统的稳定性,禁止驱动程序调用内核函数。例如,中断程序如果想完成IRP操作,必须要调用DPC例程:m_DpcFor_Irq.Setup(LinkTo(DpcFor_Irq),this)。

3.7驱动卸载

驱动卸载调用Pnp的IRP_MN_STOP_DE-VICE,所有申请内存和中断必须释放,指针置空,例程如下:

3.8测试结果

图4给出了E1数据采集卡采集的测试结果,从中可看到E1线采集的数据经过驱动打标后,被送到了上层测试程序,具有多线路、多业务、实时性等优点,满足了设计要求。另外,板卡经过了超过24小时的大数据量压力测试,测试效果良好。

图4E1数据采集卡采集测试结果

4、结束语

利用E1数据采集卡可以实时监测通信链路的建立、传输、停止等过程,并且可以通过该卡的信令发送功能,实现业务仿真,减小TD-SCDMA网络设计风险。经多次测试证明,E1数据采集卡完全可以应用于TD-SCDMA网络测试。该测试卡驱动代码运行稳定高效,功能模块明晰,可以实时升级,以满足不同用户功能需求。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16064

    浏览量

    176919
  • 数据采集
    +关注

    关注

    38

    文章

    5776

    浏览量

    113372
  • 移动通信
    +关注

    关注

    10

    文章

    2594

    浏览量

    69741
收藏 人收藏

    评论

    相关推荐

    请问各位大虾用单片机来实现基于PCI总线数据采集卡可行么?

    现在要设计一个伺服电机数据采集卡,请问用单片机来控制,pci总线和上位机传输,可以实现么,能否给我具体的思路,原理图之类的资料。先在这谢过各位了!!
    发表于 04-19 15:06

    数据采集卡/分布式采集模块/无线通讯采集模块/嵌入式系统

    PCI-E数据采集卡PCI数据采集卡 USB数据采集卡PC104数据采集卡PC104+
    发表于 08-21 10:05

    数据采集卡如何运用

    ,还需要提供激励信号.数据采集卡实现数据采集(DAQ)功能的计算机扩展,可以通过USB、PXI、PCI
    发表于 01-17 15:13

    怎么实现基于PCI总线的雷达视频高速数据采集接口设计?

    本文提出了一种新的包括PCI9054单周期读、写和存储器映射传输的设计,并讨论了通用PCI总线高速数据采集卡实现方案。
    发表于 06-08 06:28

    基于PCI总线的高速数据采集卡系统设计与实现

    基于PCI总线的高速数据采集卡系统设计与实现:本文介绍一种基于PCI总线的高速
    发表于 06-22 19:04 55次下载

    基于PCI总线的高速数据采集卡的设计

    本文介绍了一种基于PCI 总线的高速数据采集卡的设计方案,该方案具有高速度、低成本的优点。并给出了PCI 总线控制器的
    发表于 08-31 11:51 19次下载

    基于PCI Express总线高速数据采集卡的设计与实现

    本文介绍一种基于PCI Express 总线的高速数据采集卡的设计方案及功能实现。给出系统的基本结构及单元组成,重点阐述系统硬件设计的关键技术和本地
    发表于 09-22 08:15 62次下载

    网络测试仪E1数据采集卡的驱动设计

    网络测试仪E1数据采集卡的驱动设计 1 引言            随着电信网络迅速发展,基于软交换技术的NGN网络应运而生。
    发表于 01-14 10:44 1246次阅读
    网络测试仪<b class='flag-5'>E1</b><b class='flag-5'>数据采集卡</b>的驱动设计

    PCI6023E数据采集卡的安装

    【LabVIEW从入门到精通】6.4.1.2 PCI6023E数据采集卡的安装
    发表于 01-08 15:49 0次下载

    PCI6023E数据采集卡的参数设置与测试

    【LabVIEW从入门到精通】6.4.1.3 PCI6023E数据采集卡的参数设置与测试
    发表于 01-08 15:49 0次下载

    VxWorks的PCI总线多功能数据采集卡驱动开发

    VxWorks的PCI总线多功能数据采集卡驱动开发
    发表于 10-31 11:21 16次下载
    VxWorks的<b class='flag-5'>PCI</b><b class='flag-5'>总线</b>多功能<b class='flag-5'>数据采集卡</b>驱动开发

    基于PCI9820数据采集卡实现对GP2015输出中频GPS的数据进行采集

    本文介绍了一种基于PCI总线数据采集系统,利用ADLINK公司生产的PCI9820数据采集卡实现
    发表于 04-12 09:18 1476次阅读
    基于<b class='flag-5'>PCI</b>9820<b class='flag-5'>数据采集卡</b><b class='flag-5'>实现</b>对GP2015输出中频GPS的<b class='flag-5'>数据</b>进行<b class='flag-5'>采集</b>

    基于VxWorks的PCI总线多功能数据采集卡驱动开发

    电子发烧友网站提供《基于VxWorks的PCI总线多功能数据采集卡驱动开发.pdf》资料免费下载
    发表于 10-24 09:23 3次下载
    基于VxWorks的<b class='flag-5'>PCI</b><b class='flag-5'>总线</b>多功能<b class='flag-5'>数据采集卡</b>驱动开发

    数据采集卡怎么用 数据采集卡怎么读取数据

    将物理量(如温度、压力、光强等)转换为数字信号,供电脑进行处理和分析。 以下是使用和读取数据采集卡的详细步骤: 1. 硬件连接: 首先,确保数据采集卡与电脑通过适当的接口连接,如USB、PCI
    的头像 发表于 12-15 09:50 1609次阅读

    什么是 PCI-E 图像采集卡

    PCI-E图像采集卡是将模拟图像信号转换为数字信号并传输到计算机的设备,通过PCIExpress(PCIe)总线与计算机主机连接,提供高速、高带宽的数据传输能力,适用于需要快速、精确的
    的头像 发表于 11-01 15:47 89次阅读
    什么是 <b class='flag-5'>PCI-E</b> 图像<b class='flag-5'>采集卡</b>?