基于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一定會有更加廣泛的應用。
評論