1 Hackrf的介绍
Hackrf,一款全开源的SDR产品,可以满足大部分的软件无线电爱好者入门需求。现在在某宝上搜索,都能搜索到这款产品。对于了解无线电,学习无线电有很大的帮助。作者为美国教师mossmann为了给学生演示无线通信而设计,经过开源化后,全世界广大的无线电爱好者修改后,功能成熟。
Hackrf的硬件架构如下图:
PC机通过USB接口与NXP LP43xx微控制器通信
微控制器通过并行总线及GPIO模拟的JTAG接口与CPLD连接
MAX5864对【发送的数据】进行数模转换DAC,对【接收到的数据】进行模数转换ADC
MAX2837完成上/下变频,并通过宽带混频器RFFC5072提高频率范围
射频前端采用一级LNA/PA进行放大,并最终通过TR Switch与天线连接
LPC4320/4330: ARM Cortex M4处理器, 主频204MHz
XC2C64A:Xilinx,CoolRunner-II系列CPLD,1500门
MAX2837:2.3GHz to 2.7GHz 无线宽带射频收发器
RFFC5072:混频器,提供80MHz到4200MHz的本振
MAX5864:ADC/DAC, 8-bit,22MHz采样率
Si5351C:I2C可编程任意CMOS时钟生成器
MGA-81563:0.1–6GHz 3V, 14 dBm 放大器
SKY13317:20 MHz-6.0 GHz 射频单刀三掷(SP3T)开关
SKY13350:0.01-6.0 GHz 射频单刀双掷(SPDT)开关
所有的硬件,软件结构,代码,都可以在作者的网站上面找到,作者的网站如下:
https://github.com/mossmann/hackrf
另外,还有一个作者的个人网站:
http://www.greatscottgadgets.com/hackrf/
2 准备固件升级
最近,作者在githbub上面发布了最新的2017年固件升级包,解决了一些bug,并且增加了一些新功能比如快速扫频模式。
下载红框的软件包在电脑上,并且本机电脑或者其他电脑安装了ubuntu linux操作系统(Ubuntu的安装非常简单,一键式操作,大家可以在网上搜索,我安装的是16.04版本)后,就可以用USB线连接电脑进行固件烧制升级和软件升级了。如果你购买的hackrf没有升级,一般是2015年版本的固件和软件。
完成从github上下载软件固件包后,解压,我们在目录中可以发现如下结构:
进入firmware-bin,可以看到如下的目录结构:
2.1 Ubuntu搭建dfu-util环境
要进行DFU固件的升级,我们需要在Ubuntu Linux环境下搭建好dfu-util烧写环境。
2.1.1 安装依赖环境
sudo apt-get build-dep dfu-util
sudo apt-get install libusb-1.0-0-dev
2.1.2 下载duf-util代码
git clone git://git.code.sf.net/p/dfu-util/dfu-util
2.1.3 编译安装
cd dfu-util
git checkout v0.9
./autogen.sh
./configure
make
sudo make install
注意,上面的0.9是dfu-util的版本号,你可以在安装过程中看到信息版本号,或者在网上查询dfu-util最新的版本号。
2.2 固件升级
进入Ubuntu Linux操作系统下,对Hackrf one进行固件升级。
DFU的全称是Device Firmware Upgrade,即设备固件升级模式
步骤1: 按住hackrf one的DFU按钮(下图蓝色框按钮)不松手,然后USB线插入电脑,此时可以看到hackrf上面绿灯(3v3 LED亮),说明设备已经进入DFU模式,如下图:
步骤2:写入boot (hackrf_one_usb.dfu)
linux命令:dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu
当步骤一烧写成功后,不要断开USB线,继续进行第三步的操作。
步骤3:写入flash (hackrf_one_usb.bin)
命令:hackrf_spiflash -w hackrf_one_usb.bin
第三步操作完成后,断开USB线相当于重启一下设备
步骤4:写入CPLD
命令:hackrf_cpldjtag -x hackrf_cpld_default.xsvf
当CPLD烧写完成后,如果看到TX, RX, USB三个LED在闪烁,则表明CPLD烧写成功,系统提示你可以关闭电源或者是断开USB线重启设备。
2.3 Host驱动安装
在固件升级完成后,host的安装比较简单,就不概述,直接在作者的github网站上,linux上安装就可以。
2.3.1 安装依赖环境
$ sudo apt-get install build-essential cmake libusb-1.0-0-dev pkg-config
2.3.2 下载源代码
git clone --progress http://github.com/mossmann/hackrf.git
2.3.3 编译安装
mkdir host/build
cd host/build
cmake ..
make
sudo make install
sudo ldconfig
这个时候,如果你在linux命令里面输入:hackrf_info后显示如下信息,则表明所有升级成功。
最后,我们后面有趣的软件无线电就要开始了,它可以接收,发射无线信号,并且可以当扫频仪使用。