1 Hackrf的介紹
Hackrf,一款全開源的SDR產(chǎn)品,可以滿足大部分的軟件無線電愛好者入門需求。現(xiàn)在在某寶上搜索,都能搜索到這款產(chǎn)品。對(duì)于了解無線電,學(xué)習(xí)無線電有很大的幫助。作者為美國教師mossmann為了給學(xué)生演示無線通信而設(shè)計(jì),經(jīng)過開源化后,全世界廣大的無線電愛好者修改后,功能成熟。


Hackrf的硬件架構(gòu)如下圖:

PC機(jī)通過USB接口與NXP LP43xx微控制器通信
微控制器通過并行總線及GPIO模擬的JTAG接口與CPLD連接
MAX5864對(duì)【發(fā)送的數(shù)據(jù)】進(jìn)行數(shù)模轉(zhuǎn)換DAC,對(duì)【接收到的數(shù)據(jù)】進(jìn)行模數(shù)轉(zhuǎn)換ADC
MAX2837完成上/下變頻,并通過寬帶混頻器RFFC5072提高頻率范圍
射頻前端采用一級(jí)LNA/PA進(jìn)行放大,并最終通過TR Switch與天線連接
LPC4320/4330: ARM Cortex M4處理器, 主頻204MHz
XC2C64A:Xilinx,CoolRunner-II系列CPLD,1500門
MAX2837:2.3GHz to 2.7GHz 無線寬帶射頻收發(fā)器
RFFC5072:混頻器,提供80MHz到4200MHz的本振
MAX5864:ADC/DAC, 8-bit,22MHz采樣率
Si5351C:I2C可編程任意CMOS時(shí)鐘生成器
MGA-81563:0.1–6GHz 3V, 14 dBm 放大器
SKY13317:20 MHz-6.0 GHz 射頻單刀三擲(SP3T)開關(guān)
SKY13350:0.01-6.0 GHz 射頻單刀雙擲(SPDT)開關(guān)


所有的硬件,軟件結(jié)構(gòu),代碼,都可以在作者的網(wǎng)站上面找到,作者的網(wǎng)站如下:
https://github.com/mossmann/hackrf
另外,還有一個(gè)作者的個(gè)人網(wǎng)站:
http://www.greatscottgadgets.com/hackrf/
2 準(zhǔn)備固件升級(jí)
最近,作者在githbub上面發(fā)布了最新的2017年固件升級(jí)包,解決了一些bug,并且增加了一些新功能比如快速掃頻模式。

下載紅框的軟件包在電腦上,并且本機(jī)電腦或者其他電腦安裝了ubuntu linux操作系統(tǒng)(Ubuntu的安裝非常簡(jiǎn)單,一鍵式操作,大家可以在網(wǎng)上搜索,我安裝的是16.04版本)后,就可以用USB線連接電腦進(jìn)行固件燒制升級(jí)和軟件升級(jí)了。如果你購買的hackrf沒有升級(jí),一般是2015年版本的固件和軟件。
完成從github上下載軟件固件包后,解壓,我們?cè)谀夸浿锌梢园l(fā)現(xiàn)如下結(jié)構(gòu):

進(jìn)入firmware-bin,可以看到如下的目錄結(jié)構(gòu):

2.1 Ubuntu搭建dfu-util環(huán)境
要進(jìn)行DFU固件的升級(jí),我們需要在Ubuntu Linux環(huán)境下搭建好dfu-util燒寫環(huán)境。
2.1.1 安裝依賴環(huán)境
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的版本號(hào),你可以在安裝過程中看到信息版本號(hào),或者在網(wǎng)上查詢dfu-util最新的版本號(hào)。
2.2 固件升級(jí)
進(jìn)入Ubuntu Linux操作系統(tǒng)下,對(duì)Hackrf one進(jìn)行固件升級(jí)。
DFU的全稱是Device Firmware Upgrade,即設(shè)備固件升級(jí)模式
步驟1: 按住hackrf one的DFU按鈕(下圖藍(lán)色框按鈕)不松手,然后USB線插入電腦,此時(shí)可以看到hackrf上面綠燈(3v3 LED亮),說明設(shè)備已經(jīng)進(jìn)入DFU模式,如下圖:

步驟2:寫入boot (hackrf_one_usb.dfu)
linux命令:dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu

當(dāng)步驟一燒寫成功后,不要斷開USB線,繼續(xù)進(jìn)行第三步的操作。
步驟3:寫入flash (hackrf_one_usb.bin)
命令:hackrf_spiflash -w hackrf_one_usb.bin

第三步操作完成后,斷開USB線相當(dāng)于重啟一下設(shè)備
步驟4:寫入CPLD
命令:hackrf_cpldjtag -x hackrf_cpld_default.xsvf

當(dāng)CPLD燒寫完成后,如果看到TX, RX, USB三個(gè)LED在閃爍,則表明CPLD燒寫成功,系統(tǒng)提示你可以關(guān)閉電源或者是斷開USB線重啟設(shè)備。
2.3 Host驅(qū)動(dòng)安裝
在固件升級(jí)完成后,host的安裝比較簡(jiǎn)單,就不概述,直接在作者的github網(wǎng)站上,linux上安裝就可以。
2.3.1 安裝依賴環(huán)境
$ 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
這個(gè)時(shí)候,如果你在linux命令里面輸入:hackrf_info后顯示如下信息,則表明所有升級(jí)成功。

最后,我們后面有趣的軟件無線電就要開始了,它可以接收,發(fā)射無線信號(hào),并且可以當(dāng)掃頻儀使用。