孫 光 宋 榮
摘 要:廣播數據系統(RDS)是一種利用調頻多工技術對現有的調頻廣播系統進行改造,使用調頻廣播的剩余頻帶實現數據廣播的方案。通過分析RDS的基本數據結構,介紹了將傳統的循環冗余校驗(CRC)運算轉化為三字節遞推算法并采用查表法進行快速計算,在有限的運算速度和資源的前提下實現RDS數據組同步運算的方法和程序流程,以及如何利用RDS透明數據通道進行城市公交廣告信息的傳輸等內容。
關鍵詞:廣播數據系統;數據結構;數據組同步;透明數據通道;信息傳輸
中圖分類號:TN934.2文獻標識碼:B
文章編號:1004-373X(2009)03-033-03
City Bus Advertisement Information Transmission Based on Radio Data System
SUN Guang,SONG Rong
(Shenzhen Polytechnic College,Shenzhen,518055,China)
Abstract:Radio Data System (RDS) is a scheme to reform exsiting FM system using FM multi-tasking technology,to realize data broad casting using remaining band of FM.RDS data structure and a fast algorithm for RDS data group synchronization are analysed.It changes traditional CRC algorithm to three bytes algorithm and realizes fast algorithm on table.RDS data group synthronization can be completed by limited calculating speed and resource.City bus advertisement information can be successfully transmitted in RDS transparent data channel.
Keywords:radio data system;data structure;data group synchronization;transparent data channel;information transmission
0 引 言
廣播數據系統(Radio Data System,RDS)利用調頻多工技術對現有調頻廣播系統進行改造,使用頻率范圍在87.5~108 MHz的調頻立體聲或單聲道廣播的57 kHz副載波來傳輸數據信息,其發射與接收裝置與現有的調頻廣播系統完全兼容。RDS信號占用的帶寬較窄,數據傳輸率只有1 187.5 b/s,非常適合傳輸對數據率要求不高的實時文字信息。這里設計的“城市公交廣告信息顯示屏”正是利用RDS的透明數據通道實現了文字廣告信息的傳輸。
1 系統的組成與工作原理
“基于RDS的城市公交廣告信息顯示屏”的組成如圖1所示。
在RDS信號接收的設計中,選用日本三洋公司的可編程鎖相環頻率合成器LC72131M和收音芯片LA1844M為主體構成的電路來接收FM廣播信號。
LA1844M芯片中鑒頻器輸出的立體聲復合信號送入RDS解碼電路S1A0905X01進行分離,提取出RDS基帶信號直接輸入PIC16F74單片機,采用軟件方式進行數據同步處理,然后將相應的廣告和文字信息顯示在公交車前方的條形LED顯示屏上。
圖1 RDS接收機組成框圖
2 RDS數據組的結構
圖2所示為RDS基帶信號的基本數據結構,結構中的最大元素被稱之為數據組(Group),由104位組成。每個組由4個分別為26位的數據塊(Block)組成。每個數據塊都由信息碼和校驗碼組成,其中信息碼為16位,校驗碼為10位,圖中的偏移量代表每一個數據塊在數據組中的位置。
圖2 RDS基本數據結構
RDS數據結構的主要特點可以歸納如下:
(1) 每個RDS數據組的第一個數據塊必定包含節目識別碼(Programme Identification,PI碼),PI碼的建立是為了判定在不同地區甚至不同國家間播出的同一節目。它并不是為了達到顯示節目信息的目的,而是某一個特定節目的身份證,使得該節目有別于其他節目。PI碼的一個重要應用是在當前頻率點接收效果較差時,RDS接收機能夠自動調諧到正在播送同一節目的其他頻率點,以保證收聽質量。這一功能在車輛或移動式接收設備上顯得尤為重要。
(2) 交通節目標志碼(Traffic Programme Identification,TP碼)和節目類型碼(Programme Type,PTY碼)總是出現在每個RDS數據組第二個數據塊的固定位置,而不論數據組的版本如何。
TP碼是一個開關標志,它用于指示現在調諧到的頻率點播出的電臺節目中是否包含交通信息,這里包括正在播出以及即將播出的交通信息。
PTY碼的作用是以字符的形式告知收聽者正在接收的是何種類型的節目,例如體育節目、娛樂節目等。
(3) 每個RDS數據組的第二個數據塊的開始4位為數據組類型標志。在RDS規范中,數據組根據4位標志的不同被分為0~15共16類,每類中又根據第5位值的不同被分為A和B兩種版本。
在RDS規范中,RDS數據組類型多達16類兩個版本共32種,分別針對不同的數據特點和功能。需要特別指出的是,這些不同的類型的數據組根據所承載信息的重要程度以及信息類型的差別以不同的頻度得以發送。
在世界上已經開始運營的RDS系統中,沒有一個完全實現了RDS系統能夠擁有的所有功能,而是根據當地的具體情況有選擇地加以實現。同樣,在RDS接收機的設計過程中,基于性價比以及實用性的考慮,也是有針對性地實現RDS的部分功能。
3 RDS數據組同步的獲取
在RDS數據塊中,采用的是標準CRC校驗的一種變形,其生成多項式為:
G(x)=x10+x8+x7+x5+x4+x3+1
將16位的信息字對g(x)進行模2除法,所得到的余式再使用模2加法加上數據塊的偏移量即構成所發送的10位校驗字。
由于RDS數據組、數據塊之間采用連續發送,沒有任何間隔,要完成RDS數據組的同步操作,必須要在每接收到一個新的數據位后,都對新組成的26位數據流進行CRC校驗運算。為了保證數據處理的連續性,運算必須在下一個數據位到來前完成,也就是說,必須要在842 μs(即一個RDS碼元周期)內完成運算。
由于RDS中CRC校驗的生成多項式G(x)在單片機運算中占據兩個字節,根據CRC校驗的原理,其在8位單片機中的運算其實就是一種三字節序列遞推運算,每次運算所得的余式加入下一個三字節序列進行模二除法。依次類推,每一次遞推運算都是對一個三字節序列的計算,因此,如何簡單快捷地對三字節進行運算是算法的關鍵。
提到簡單快捷,人們自然會想到查表法,即事先將三字節序列的所有余式計算出來,置于一個稱之為余式表的表格中供隨時讀取。不過這樣的表格太大,需要224個16位單元,即占用225個字節的存儲空間,這對單片機來說是無法接受的,因此,要設法盡量減少表格所占用的存儲空間。
設一個三字節序列Tabc=[a b c],一個三字節序列Ta00=[a 0 0]和一個二字節序列Tbc=[b c]。可以用多項式的形式表示它們之間的關系為Tabc(x)=Ta00(x)+Tbc(x),因此,對Ta00來說:
Ta00(x)G(x)=Qa00(x)+Ra00(x)G(x)
而對Tabc來說:
Tabc(x)G(x)=Ta00(x)+Tbc(x)G(x)=
Qa00(x)+Ra00(x)+Tbc(x)G(x)
其中,Qa00(x)是整數,與余式無關;而Ra00(x)和Tbc都是二字節序列,因而,它們的和(模2加法,即異或運算)仍然是二字節序列,因此,它就是Tabc的余式Rabc,即:
Rabc=ReTabc(x)G(x)〗=Ra00(x)+Tbc(x)
這樣就可以把三字節序列Tabc=[a b c]的運算分解成兩個步驟來完成:
(1) 通過查余式表,讀取Ta00=[a 0 0]的余式Ra00=[ha00 la00];
(2) 將Ra00與[b c]進行異或運算,從而得到[a b c]的余式Rabc=[habc labc]。
由于[a 0 0]只有一個字節不為零,因此,余式表只需要256個單元即512 B的存儲空間。
在RDS接收機的設計過程中采用的是PIC16F74單片機,其ROM空間僅有16 KB,還要完成顯示控制、電子調諧控制等許多其他功能,存儲空間非常緊張,所以還需要對余式表進行壓縮。
將Ta00=[a 0 0]分解為Te00=[e 0 0]和Tf00=[f 0 0],并使字節e的上半字節內容與a的上半字節相同但下半字節為零,同時使字節f的下半字節內容與a的下半字節內容相同但上半字節內容為零,然后用Te00和Tf00的生成余式表來代替Ta00的余式表。由于Te00和Tf00中只有半個字節內容不為零,所以每個余式表只需16個單元,即32個字節,兩個余式表共占用64個字節,可以滿足PIC16F74單片機對于存儲空間的要求。
實現CRC校驗的快速算法只是獲取RDS數據信號同步的前提條件之一。由于RDS數據信號的同步信息是包含在每個26位數據塊的結尾處,必須采用先接收數據,再進行同步運算的辦法。在PIC16F74單片機的通用寄存器中專門為接收數據設置了4個字節的緩沖區,每接收到1位數據,就按照先入先出(FIFO)的原則對數據緩沖區進行移位操作,然后對最近接收到的26位數據進行CRC校驗運算,將運算結果與RDS數據塊偏移量A,B,C,D進行比較,如果發現與其中之一相同,則認為進入準同步狀態。由于接收數據的隨機性,在單獨一個26位數據流中運算出數據塊偏移量的幾率是比較大的,所以必須進行進一步的檢測。
進入準同步狀態后,準同步計數器開始對接收的數據位進行計數,當又接收到一組26位數據后,再進行一次CRC校驗運算,如果運算結果為RDS數據塊偏移量A,B,C,D其中之一,并且與上次檢測到的RDS數據塊偏移量成順序關系,就可以認為已經獲取了RDS數據信號的同步。
在獲取同步后,就不必每接收1位數據進行一次CRC校驗了,而只用在接收到一個完整的26位數據后進行一次校驗運算,以檢測數據是否傳輸錯誤并得到數據塊的偏移量。
4 文字信息在RDS透明數據通道中的傳輸
由于這里所涉及的RDS接收機主要用于公交廣告顯示屏的文字信號傳輸,所以重點討論RDS中適合于文字信息傳輸的兩種數據類型,即開放數據應用和透明數據通道。
開放數據應用(Open Data Application,ODA)是RDS數據類型中的一項重要內容,它賦予了RDS系統實現各種特定功能的極大的靈活性。開放數據應用只是規定了數據組的格式,但對其中的內容沒有作出具體的規定。由于FM廣播具有地域性的特點,各個不同的地方可以根據各自不同的需要對于開放數據應用的內容作出具體規定。當然,接收端也必須能夠理解這些具體規定。在實際應用中,開放數據結構常用來進行特殊目的數據廣播,例如無線尋呼、股市信息等。在RDS的相關標準中,規定開放數據應用應該向標準制定部門進行登記。
與開放數據應用相比,透明數據通道(Transparent Data Channels,TDC)則使RDS的功能實現更加靈活。之所以稱之為透明,是指通過它幾乎可以傳輸任意長度以及任意格式的數據。圖3所示為透明數據通道的數據組結構。
圖3 透明數據通道的數據組結構
圖3中的地址編碼是指透明數據通道的子通道號,共有5位二進制數構成,也就是說,透明數據通道最多可容納32路數據同時傳輸。
鑒于透明數據通道在功能實現上的靈活性和可擴展性,設計的“基于RDS的城市公交廣告信息顯示屏”采用透明數據通道進行數據傳輸,由于可最多容納32路數據傳輸,這也意味著廣告運營商可以在一個FM頻道上同時傳輸多套信息,不僅有利于減小運營成本。也可以根據廣告客戶的需求,有針對性地在特定公交線路上顯示出特定的廣告信息內容,提高了廣告信息投放的靈活性。
RDS規范中并未規定透明數據通道中傳輸數據的格式和長度,因此可以根據實際需要進行數據傳輸協議的設計。由于系統傳輸的為數字、英文、標點符號等ASCII碼(小于80H)和漢字字符編碼,對于16位的漢字字符編碼,需要一個透明數據段的16位進行傳輸,對于ASCII碼字符,只需要一個透明數據段的低8位進行傳輸,而高8位留作備用。由于漢字編碼每一字節的數據從0A1H開始,并不會與小于80H的ASCII碼字符混淆。
為方便信號處理,在每一條文字信息開始設置起始標志7EH,對應ASCII碼字符“~”;在每一條文字信息結束時設置結束標志0DH,對應ASCII碼的回車符。
一條完整的文字信息接收的主要流程如圖4所示。
圖4 文字信息接收的主要流程
5 結 語
在“基于RDS的城市公交廣告信息顯示屏”的設計過程中,通過對RDS數據結構的仔細分析,在有限的處理速度和計算資源的前提下,成功解決了RDS數據組同步運算的實時性問題,實現了文字信息在RDS透明數據通道中的傳輸,并在實際運行過程中取得了令人滿意的效果。
RDS作為一種依托于傳統媒體而開發出的數據傳輸方式,其自身也在不斷地完善和發展之中。隨著更多新的技術手段應用于RDS系統,RDS的內涵也在不斷擴充,其應用領域也會不斷擴大。
參考文獻
[1]劉小兵.廣播數據系統(RDS)接收機原理[J].現代電子技術,2004,27(12):34-36.
[2]朱昊.歐盟交通信息廣播頻道RDS/TMC系統簡介[J].交通與運輸,2007,23(1):51-52.
[3]張紀升,楊琪,陳希.基于廣播數據系統(RDS)的交通及出行者信息系列標準的研究與制定[J].交通標準化,2008(2):21-23.
[4]秦曉軍,蘭濱,李軍煥.基于RDS-TMC技術的車輛動態導航系統[J].計算機應用研究,2006,23(5):182-184.
[5]余華,劉冬生.基于SAA6588解碼器的RDS接收系統的設計與實現[J].自動化與儀器儀表,2005(2):14-17.
[6]丁勝昔,張其善.調頻副載波在GPS車輛動態導航中的應用[J].遙測遙控,2003,24(4):46-48.
[7]李華,鄭明,范雄,等.利用調頻立體聲基帶傳送數據信息的原理與實現[J].電子技術應用,2001(7):55-57.
[8]韓炬.CRC快速算法[J].煤炭科學技術,2000,28(2):11-14.
[9]趙兵選,吳剛,呂旭濤,等.一種廣播數據系統數據幀同步快速算法[J].計算機應用,2008(1):9-16.
[10]GB/T15770-1995,廣播數據系統(RDS)技術規范[S].1995.
作者簡介
孫 光 男,1971年出生,湖北武漢人,工程師,工學碩士。研究方向為電子測量、數字音視頻技術。
宋 榮 男,1969年出生,四川廣元人,講師,工學學士。研究方向為音視頻技術、自動控制。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。