基于Windows和USRP数字对讲机收发系统设计

  作者:张兴龙 曾捷 刘莉莉 粟欣 时间:2013-09-23来源:电子产品世界

  而用VC开发通信协议程序比较方便,USRP的通用驱动UHD也是用VC开发的,相比较与Simulink和Labview,在VC上开发,更具优势,更适合本项目的开发。并且Simulink和Labview都只支持USRP2,开发还不是很成熟,工具也不方便[4][5]。本次验证系统采用的是USRP1,USRP1采用的是USB2.0接口,相对于USRP2以太网接口简单方便,母版上采用的是Altera的FPGA芯片,容易开发,并且价格便宜。所以,采用USRP1在Windows上用VC进行开发。

USRP在Windows上开发接口

  UHD是由Ettus Resarch开发的,为其产品提供宿主驱动(host driver)和API。本次设计在Windows平台下,采用UHD驱动。在安装UHD驱动时,需要安装cmake,Boost,libUSB等插件,然后解压UHD源码,通过cmake交叉编译实现,可以得到UHD下面的各个项目工程。Boost和libUSB这两个库在cmake编译中都需要进行配置,否则编译过不去。这些插件主要作用就是将UHD下面的Linux源代码通过cmake等交叉编译生成Windows下面的C代码。

  安装好后可以连接上USRP,通过里面的测试实例,可以看到USRP是否正确连上。正确连上会显示如下信息:图中的参数是可配置的。

  然后,我们就可以调用UHD下面的一些API函数,在本次项目中主要参考的就是底层的send()和recv()。里面的程序全是通过类来实现的。在Windows平台上,USRP提供的可配参数主要如表2所示。

  但是send()和recv()收发不满足DMR规定的要求,并且在进行收发转换时,时序处理不过来。为了方便上层调用,将配置分为三部分,对UHD下面的接口函数进行了重新封装,如表3所示。

  在configure()里面主要是创建了一个USRP,它花时较长,需要返回一些USRP的子板和母版信息,还要导入一些映像文件,所以采用单独分开配置,在程序调用之前配置一次就可以。configure_recv()和configure_send()主要是配置一些收发的具体参数,就是上面介绍的主要参数。这样将配置分开,是为收发转换准备的,方便上层调用。Mod_send()主要负责将上层来的数据进行调制然后调用底层send()将数据发送出去,Demod_recv()主要负责调用底层recv()并将接收的数据解调返回给上层。

收发系统实现及测试

  系统平台搭建

  系统平台基于软件无线电的架构,基带处理部分按照DMR协议由软件模块来实现,包括组帧、同步、信道接入、BPTC信道编码等,这部分主要在PC机上完成。射频部分由硬件模块USRP完成,采用400M的射频子板,与PC之间通过USB2.0进行通信。语音模块由AMBE-1000来完成,本次系统中语音板是插在一个51最小系统上,51最小系统主要负责AMBE-1000语音板的驱动和它与PC机之间的串口通信。具体系统架构如图3。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

1 2 3

关键词: USRP Windows DMR 数字对讲机 FPGA 201310

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版