自制sdr设备(一)技术路线

技术路线

  • 1 概述
  • 2 方案
    • 2.1 adc数据读取
    • 2.2 控制接口
  • 3 用户程序设计

1 概述

研究自制sdr设备有一段时间了,由于版主忘性大, 特开贴记录这段时间积累的问题和设想的技术方案。

2 方案

射频前端和adc板卡分别由李师傅和李师傅设计制作,版主面对数据接口和控制接口进行编程。
硬件:zedboard
工具:vivado套件
环境:win10

2.1 adc数据读取

根据设想,adc数据由pl部分采集并交替缓存在两块FIFO中,FIFO填满时分别通过两个irq中断通知ps前来访问。
因为还没弄明白ps的计算能力,所以现在还不确定是把40MHz的数据直接给ps处理还是在pl中下变频后再给ps。
需要考虑的问题一是ps的计算能力,二是数字中频有十兆带宽,如果看不到频谱感觉有点亏,所以要想办法既能看到这10M的频谱,又能减少ps的计算量。解决这个问题的一个方案是使用vivado自带的FFT ip核,实现N=2**m(m=3~16)点FFT的变换,算下来分辨率能达到610Hz,也许够用。
FIFO使用bram搭建。
ps中运行arm-Linux系统。

需要解决的技术问题有

  1. 如何将中断号和FIFO基地址写入设备树;
  2. 在驱动程序中获取中断号和基地址;
  3. 注册中断处理函数;
  4. 在中断处理函数中读FIFO并缓存至内核空间;
  5. 提供用户程序的系统调用。

参考链接

使用设备树描述中断
Linux获取设备树源文件里描述的资源

2.2 控制接口

八字没一撇的事先不提了。

3 用户程序设计

可以仿照hdsdr、sdrsharp和websdr来做,提供直接采样数字中频频谱、数字下变频后的窄带频谱、音频频谱、功率表、中频带宽滤波器、解调器、中频和音频录制等。

你可能感兴趣的:(sdr)