TD-SCDMA网络测试仪中E1数据采集卡的驱动程序设计
发布时间:2008/6/3 0:00:00 访问次数:601
近年来td-scdma一直是通信行业关注的一个焦点,为了进一步支持td-scdma产业化进展,国家对当前td-scdma产业发展的各个环节给予支持[1]。我国正大力开发td-scdma第三代移动通信(3g)系统,即将大规模组建3g网
|
1、e1数据采集卡的实现
e1数据采集卡从e1线上采集信令消息(包括七号信令等),用以监视和仿真整个通话流程。控制流程如图1所示,pci接口芯片(hdlc控制器)是一个多功能设备,包括一个网络控制器和一个pci桥设备(ebus)。网络控制器完成时隙映射和dma传输等功能;pci桥设备完成选通和配置成帧器,其中成帧器的选通用一个cpld来完成。信令信号在成帧器成帧后,经过hdlc控制器以dma方式送入到pc缓冲区,用户依据接口函数到缓冲区读取信令数据并进行分析,数据流程如图2所示。
图1 e1数据采集卡控制流程图
图2 e1数据采集卡数据流程图
2、e1数据采集卡的驱动设计
2.1 开发环境设置
在开发驱动前,首先要对开发、编译环境进行设置。wdm驱动程序开发环境及在windows xp/windows2000下编写驱动程序的环境被称为ddk for 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线上的比特流整合成
近年来td-scdma一直是通信行业关注的一个焦点,为了进一步支持td-scdma产业化进展,国家对当前td-scdma产业发展的各个环节给予支持[1]。我国正大力开发td-scdma第三代移动通信(3g)系统,即将大规模组建3g网
|
1、e1数据采集卡的实现
e1数据采集卡从e1线上采集信令消息(包括七号信令等),用以监视和仿真整个通话流程。控制流程如图1所示,pci接口芯片(hdlc控制器)是一个多功能设备,包括一个网络控制器和一个pci桥设备(ebus)。网络控制器完成时隙映射和dma传输等功能;pci桥设备完成选通和配置成帧器,其中成帧器的选通用一个cpld来完成。信令信号在成帧器成帧后,经过hdlc控制器以dma方式送入到pc缓冲区,用户依据接口函数到缓冲区读取信令数据并进行分析,数据流程如图2所示。
图1 e1数据采集卡控制流程图
图2 e1数据采集卡数据流程图
2、e1数据采集卡的驱动设计
2.1 开发环境设置
在开发驱动前,首先要对开发、编译环境进行设置。wdm驱动程序开发环境及在windows xp/windows2000下编写驱动程序的环境被称为ddk for 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线上的比特流整合成
上一篇:一种CAN总线—PROFIBUS-DP总线网关的实现方法
上一篇:外部串行ATA