有没有Linux无线电标准?

时间:2013-02-16 00:22:23

标签: linux embedded radio hal

我们即将开始实施一个运行Linux的设备(其中包括)将附加到软件定义的FM / AM无线电,该设备还可以接收描述播放列表和其他此类内容的RDS数据。这是一个相对愚蠢的设备,主要包含一个或两个DSP作为调谐器,否则对信号的处理非常少。

我在考虑设备的内核驱动程序,然后是用户空间硬件抽象层,它提供了标准化的接口,并抽象出了收到RDS数据的详细信息,并处理了错误处理和所有其他杂乱的东西。是否已经有像这样的用户区层?如果要避免制作它,或者使我们的东西与已经存在的东西插件兼容将是很好的,所以如果我们想要的话,我们可以使用其他项目用于无线电UI。

3 个答案:

答案 0 :(得分:12)

linux中的无线电支持

听起来你正在创建一个新的硬件无线电设备?您可能需要为此设备构建驱动程序。可以找到一些帮助入门hereherehere。如果您的设备不是新设备,则可能已有driver in the Video4Linux2 project

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

根据this page,这些卡目前有 SAA6588 芯片组:

  • Terratec Cinergy 600
  • KNC ONE电视台RDS
  • KNC One TV-Station DVR
  • TYPHOON TV TUNER CARD RDS
  • Sundtek MediaTV Pro(由制造商支持)
  • Sundtek USB FM收音机(FM发射器/接收器,制造商支持)

RDS特定信息

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

  

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

RDS API

这是complete API reference for Video4Linux2。这是一个article series to get acquainted with it

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

  

可以通过查看struct v4l2_tuner的rxsubchans字段来检测是否存在RDS信号:如果检测到RDS数据,将设置V4L2_TUNER_SUB_RDS。

Gnu Radio Companion中的SDR RDS解码器DSP

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

Here are some more radio related projects值得研究。

答案 1 :(得分:2)

可能值得研究一下GENIVI联盟(http://www.genivi.org/)是否有标准申请。他们正在制定此类标准,专门用于汽车“信息娱乐”目的,这似乎属于他们的标准化范围。

不幸的是,他们似乎没有公开发布他们的内容,因此您可能需要四处询问或直接向他们发送电子邮件。

答案 2 :(得分:1)

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

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