Omn*_*ous 16 linux embedded hal radio
我们即将着手实施一个运行Linux的设备(其中包括)将附加到软件定义的FM/AM无线电,该设备还可以接收描述播放列表和其他此类内容的RDS数据.这是一个相对愚蠢的设备,主要包含一个或两个DSP作为调谐器,否则对信号的处理非常少.
我正在考虑设备的内核驱动程序,然后是用户区硬件抽象层,它提供了标准化的接口,并抽象了RDS数据收到的确切时间的细节,并处理错误处理和所有其他杂乱的东西.是否已经有像这样的用户区层?要么完全避免使用它,要么使我们的东西与已经存在的东西插件兼容将是很好的,所以如果我们想要的话,我们可以使用其他项目用于无线电UI.
Tri*_*onX 12
听起来你正在创建一个新的硬件无线电设备?您可能需要为此设备构建驱动程序.一些帮助入门可以在这里,这里和这里找到.如果您的设备不是新设备,则可能已在Video4Linux2项目中安装了驱动程序.
看起来目前有一些基于saa6588内核模块的RDS相关项目.
根据这个页面,这些卡目前有一个SAA6588芯片组:
我建议查看一些与Video4Linux2(v4l2)相关的项目,有一个RDS解码库.该库在用户空间中运行,因此可以在那里为您完成RDS解码工作:
根据V4L2规范,从无线电设备读取来自RDS解码器的原始数据.数据由每个块长3个字节的块组成.所有解码都必须在用户空间中完成.
以下是Video4Linux2的完整API参考.这是一篇熟悉它的文章系列.
RDS API的特定部分在此处.此页面提供有关如何获取有关RDS数据是否可用的更新的信息:
可以通过查看struct v4l2_tuner的rxsubchans字段来检测是否存在RDS信号:如果检测到RDS数据,则将设置V4L2_TUNER_SUB_RDS.
虽然它不是官方API,但我找到了一个可能值得研究的最后一个小项目: