基于S1473X的RDS功能设计及其在车载多媒体中的实现
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的校验位加偏移量,用于数据同步和错误校验。
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一定会有更加广泛的应用。
评论