有Linux无线电标准吗



我们即将开始实现一种运行Linux的设备,该设备(除其他外)将连接到软件定义的FM/AM收音机,该收音机还可以接收描述播放列表和其他类似内容的RDS数据。这是一个相对愚蠢的设备,主要包含一两个DSP作为调谐器,对信号的处理很少。

我想的是设备的内核驱动程序,然后是一个userland硬件抽象层,它提供了一个标准化的接口,抽象掉了RDS数据接收的确切时间细节,并处理了错误处理和所有其他混乱的事情。已经有这样的用户层了吗?最好是避免制作它,或者让我们的东西与已经存在的东西兼容,这样我们就可以在需要的时候使用其他项目来制作无线电UI。

linux中的无线电支持

听起来你正在创建一个新的硬件无线电设备?您可能需要为此设备构建一个驱动程序。可以在这里、这里和这里找到一些入门帮助。如果你的设备不是新的,它可能已经在Video4Linux2项目中有了驱动程序。

目前似乎有一些基于saa6588内核模块的RDS相关项目。

根据此页面,这些卡目前拥有SAA6588芯片组:

  • Terratec Cinergy 600
  • KNC ONE电视台RDS
  • KNC One电视台DVR
  • 台风电视调谐器卡RDS
  • Sundtek MediaTV Pro(由制造商支持)
  • Sundtek USB调频收音机(调频发射器/接收器,由制造商支持)

RDS特定信息

我建议查看一些与Video4Linux2(v4l2)相关的项目,那里有一个RDS解码库。这个库在用户空间中运行,因此RDS解码工作可以在那里为您完成:

根据V4L2规范,读取RDS解码器的原始数据来自无线电设备。数据由块组成,其中每个块为3字节长。所有解码都必须在用户空间中完成。

RDS API

以下是Video4Linux2的完整API参考资料。这里有一个系列文章来熟悉它。

这里是RDS API的特定部分。此页面提供有关如何获得RDS数据是否可用的更新的信息:

是否存在RDS信号可以通过查看结构v4l2_tuner的rxsubchans字段来检测:如果检测到RDS数据,则会设置v4l2_tuner_SUB_RDS。

Gnu Radio Companion中的SDR RDS解码器DSP

虽然它不是官方的API,但我发现了最后一个值得研究的小项目:

  • 使用SDR接收RDS

以下是一些更值得研究的无线电相关项目。

可能值得研究GENIVI财团(http://www.genivi.org/)已经有了标准的应用程序。他们正在开发专门用于汽车"信息娱乐"目的的此类标准,这似乎属于他们的标准化领域。

不幸的是,他们似乎没有公开发布他们的东西,所以你可能需要四处询问或直接给他们发电子邮件。

GNU Radio怎么样?他们对许多软件定义的无线电组件提供硬件支持,并通过GUI与"GNU无线电伴侣"(GRC)轻松连接数据流。

它们使用可以为UI层访问的Python和C++API。网上有很多例子。

相关内容

  • 没有找到相关文章

最新更新