基于S1473X的RDS功能设计与实现
调频广播(FM)一直在人们的娱乐生活中占有非常重要的地位,广大从事消费电子设计的厂商都在诸如MP3、智能手机、PDA等产品中嵌入FM部分。而RDS数据广播系统(Radio Data System)正是利用调频立体声中的副载波,在传输音频节目的同时为用户提供各种数据信息服务,如广播节目单,紧急通告,道路交通信息。尽管国内除了台湾香港之外很少有带有RDS功能的电台,但这项技术在国外发展得却相当成熟,而且需求也在不断的猛增,本文所介绍的模块正是基于这方面的应用,为车载音响系统提供调频接收和RDS信息服务,下面主要介绍调频模块的设计及音频处理和RDS数据的处理。
1 S14730/31外围电路设计
S14730/31是工业上最早的高集成度的CMOSAF/FM收音接收芯片。因为S1473X内置DSP的先进数字低中频构架,仅需少数几个外围元件,且无需人工调校,便能实现从天线输入到音频输出的所有AM/FM接收功能。该模块不仅体积小,质量轻,而且支持多种串行控制方式,所以特别适用于车载音响及其他小型的便携设备中。S14730/31是一种多功能的解决方案,它的主要功能包括:先进的自动搜台算法;静音功能;自动校准数字调频;FM立体声处理;供模拟和数字语音输出。
由于S1473X把天线输入至音频输出的所有功能全部集成于单个芯片上使得以S1473X为核心的收音机电路设计过程变得简单。S1473X的外围电路如图1所示。
注意事项:
(1)所有的地线都要与PCB板上的地直接相连。
(2)管脚1和20,没有连接,悬空。
(3)管脚2与FM的天线接口相连,管脚4与AM的天线接口相连。
(4)S14730/31要尽可能放置在天线附近,让AMI和FMI两个管脚的路径尽可能短。
2 RDS数据广播系统介绍
RDS(Radio Data SySTem)数据广播系统是近几年来出现在无线广播领域的一项高新技术。它利用现有的调频设备把一些非声音数据的额外数据通过调制后加载到调频立体声信道的附加信道上,这样,在这些多增加的数据的基础上,RDS数据广播系统就拥有了处理数据、文字、符号和信息的能力,能用于交通信息广播,广播寻呼、背景音乐,具有可大面积组网,可靠性高等显着特点,基于RDS方案将会显示出越来越多的技术优越性。
2.1 RDS广播信号
调频自动搜索技术的实现要以RDS数据源即RDS广播数据为背景条件,也就是需要当地广播系统的支持。RDS接收机的调频波段在87.5~108.0 MHz范围,相邻电台波段间隔至少100 kHz,在57 kHz上加载上副载波数据。数据内容包括电台类型、节目类型、交通公告、标准时间、天气预告等,同时提供了开放式接口,为特殊用户提供数据文本应用通道。RDS广播技术的实质是利用调频立体声(FM)广播的副载波携带数据信息的一种工作方式。RDS数据经过FSK调制,成为载波为57 kHz的RDS数据信号,RDS的数据信号和电台本身播放的声音信号混合,成为复合信号,然后经过FM调制进行发送。
2.2 RDS常用功能简介
PI(Program IdentificatiON):是一个16位的二进制数,它表明一种电台的发射,如果收音机发现有两个发射机使用同一代码,可以认为两者发射的节目是相同的。于是收音机可以依据信号较强和质量较好来决定使用哪一个发射台。
PS(Program Servicename):是一个八个字符的字符串,用来识别正在接受的电台。PI码只能由机器读出,而PS则设计成让听众看见,知道当前收听的是哪一个电台。
PTY(Program Type Code):用来确认当前节目属于RDS标准中制定的32种节目类型中的哪一类节目,例如新闻,时事,天气,儿童节目等。
TP(Traffic Program Identification):带交通节目信息的电台识别,TP只有一位。它表明正在收听到电台,实际上是正在收听到节目中可能要发布交通、旅游通告。汽车驾驶员在不熟悉的地区可以利用它作为寻找交通信息及旅游新闻的办法。
RT(Radio text):用于显示正在播放的节目的相关信息,例如当前播放歌曲的名字,演唱者等,类似于CD/MP3的附加信息。
RT+(Radio Text Plus):是RT的扩张功能,也是RDS2009年修订的新标准中增加的新功能。主要用于显示歌曲演唱者等一些细节追踪,滚动新闻标题,当前广播电台的一些信息,比如电台的网址,热线电话等。RT+向下与RT完全兼容。
2.3 RDS的数据格式
RDS信号发送是遵循一种内部协议的,该协议规定了RDS数据的具体格式及其相应的含义。从信号发送角度看,每8个字节的数据被称为一个数据包,它是信号发送的最基本单位。一种类型的数据包称之为一种group,group类型有group 0A,group 0B,group1A,group 1B,…,group 15A,group 15B共32种。
1 group=4 block=104 b
1 block=16 b data+10 b校验位
从数据内容含义角度,RDS数据被成套分组分节的组织在一起。每组数据与发送角度的数据包概念相对应,也是由8个字节数据组成。但一套RDS数据中每组数据都各不相同,内容上各自有不同的特定含义。再往下,每组RDS数据内又分为4个节的数据,每节占两个字节,不同节也有各自不相同的特定含义。一定数量组的RDS数据结合在一起,形成一套完整的RDS数据。随着时间的推移,播放节目的跟进,相邻套RDS数据的具体内容可能会有所变化,但内容性质都是固定而统一不变的。图2是RDS数据各个块及具体位的定义。
其中:A3~A0表示数据组的编号,大小从0~15;B0表示数据组的版本类型,分A和B两种;PI code表示电台的惟一标识,每一组数据组都包含PI code;TP表示当前电台是否包含交通信息;PT4~PT0共5位,用于显示当前的节目类型;checkword+offset A,B,C,D是10 b的校验位加偏移量,用于数据同步和错误校验。
{$page$}
3 RDS功能的软件实现
本文讨论通过车载常用芯片S1473X来实现RDS的接收功能。由于S1473X内置数字信号处理器,具有RDS数据的解码功能,不需要再配备单独的解码芯片,也免去了软件编程中控制数据同步及错误校验等工作,只通过发送指令,读取指令的返回值,便能轻松完成。下面先熟悉S14 73X的指令格式。
3.1 S1473X的指令格式
S1473X通过指令和响应与系统控制器进行信息交换,为了执行某个动作,系统控制器发送一个字节的指令和若干个字节的相关参数。S1 473x执行相应的动作并根据命令的类型返回对应的状态字节和若干个响应字节。S1473X的完整控制过程依次由下面4个部分组成:
命令CMD:由主控制器发送,用来控制S1473X的行为,如上电、掉电或调谐到指定的频率上;
参数ARG:由主控制器发送,是描述命令的参数,用来进一步指定命令的具体行为。如调谐到指定频率的命令,其参数包含了指定的频率;
状态STATUS:由S1473X返回,每一条命令都有1 B的状态返回,用来指示该命令的执行情况。如中断状态,是否准备就绪等;
响应RESP:由S1473X返回,当控制器发送的是读取数据的命令时,由S1473X返回读取的内容。例如FM_RDS_STATUS,读取的就是RDS的数据状态。
3.2 RDS功能的实现
通过发送命令0X24,也即函数FM-RDS_STATUS来获取当前频道的RDS信息,并从RDS堆栈中读取一个空值。其中RDS的信息包括同步状态标志位、堆栈状态标志位、整个群组的信息(块A,B,C,D)和每块传递的错误信息。 另外属性命令0X1500,RDS_INT_SOURCE负责与RDS有关的中断配置。属性命令0X1501,RDS_INT_FIFO_COUNT负责设置在RDSRECV标志位置1之前,RDS堆栈中存放RDS群组数据的最小值。因为有些RDS的功能显示,比如显示电台节目名称,歌曲名等信息,需要几组的RDS群组数据才能传送完毕,所以RDS堆栈必须要有一定的存储能力,才能将信息完整地显示。整个RDS功能实现的流程如图3所示。
4 结语
最近几年我国像手机、MP3,PDA等提供信息服务功能的终端发展越来越快,功能也趋向一体化,集多种信息服务功能为一体的智能终端是这些便携式设备的发展方向,很多消费者希望在他们的掌上产品中增加FM功能,而RDS等数据广播业务由于是利用现有覆盖面很广的广播网络,网络建设投入很少,而且很多调频芯片已经集成了RDS解码功能,所以RDS功能的实现变得简单易行。相信FM+RDS一定会有更加广泛的应用。