基于廣播數(shù)據(jù)系統(tǒng)的城市公交廣告信息傳輸
廣播數(shù)據(jù)系統(tǒng)(RDS)是一種利用調(diào)頻多工技術(shù)對(duì)現(xiàn)有的調(diào)頻廣播系統(tǒng)進(jìn)行改造,使用調(diào)頻廣播的剩余頻帶實(shí)現(xiàn)數(shù)據(jù)廣播的方案。通過(guò)分析RDS的基本數(shù)據(jù)結(jié)構(gòu),介紹了將傳統(tǒng)的循環(huán)冗余校驗(yàn)(CRC)運(yùn)算轉(zhuǎn)化為三字節(jié)遞推算法并采用查表法進(jìn)行快速計(jì)算,在有限的運(yùn)算速度和資源的前提下實(shí)現(xiàn)RDS數(shù)據(jù)組同步運(yùn)算的方法和程序流程,以及如何利用RDS透明數(shù)據(jù)通道進(jìn)行城市公交廣告信息的傳輸?shù)葍?nèi)容。
關(guān)鍵詞:廣播數(shù)據(jù)系統(tǒng);數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)組同步;透明數(shù)據(jù)通道;信息傳輸
0 引 言
??? 廣播數(shù)據(jù)系統(tǒng)(Radio Data System,RDS)利用調(diào)頻多工技術(shù)對(duì)現(xiàn)有調(diào)頻廣播系統(tǒng)進(jìn)行改造,使用頻率范圍在87.5~108 MHz的調(diào)頻立體聲或單聲道廣播的57 kHz副載波來(lái)傳輸數(shù)據(jù)信息,其發(fā)射與接收裝置與現(xiàn)有的調(diào)頻廣播系統(tǒng)完全兼容。RDS信號(hào)占用的帶寬較窄,數(shù)據(jù)傳輸率只有1 187.5 b/s,非常適合傳輸對(duì)數(shù)據(jù)率要求不高的實(shí)時(shí)文字信息。這里設(shè)計(jì)的“城市公交廣告信息顯示屏”正是利用RDS的透明數(shù)據(jù)通道實(shí)現(xiàn)了文字廣告信息的傳輸。
1 系統(tǒng)的組成與工作原理
??? “基于RDS的城市公交廣告信息顯示屏”的組成如圖1所示。
??? 在RDS信號(hào)接收的設(shè)計(jì)中,選用日本三洋公司的可編程鎖相環(huán)頻率合成器LC72131M和收音芯片LAl844M為主體構(gòu)成的電路來(lái)接收FM廣播信號(hào)。
??? LAl844M芯片中鑒頻器輸出的立體聲復(fù)合信號(hào)送入RDS解碼電路S1A0905XOl進(jìn)行分離,提取出RDS基帶信號(hào)直接輸入PICl6F74單片機(jī),采用軟件方式進(jìn)行數(shù)據(jù)同步處理,然后將相應(yīng)的廣告和文字信息顯示在公交車前方的條形LED顯示屏上。
2 RDS數(shù)據(jù)組的結(jié)構(gòu)
??? 圖2所示為RDS基帶信號(hào)的基本數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)中的最大元素被稱之為數(shù)據(jù)組(Group),由104位組成。每個(gè)組由4個(gè)分別為26位的數(shù)據(jù)塊(Block)組成。每個(gè)數(shù)據(jù)塊都由信息碼和校驗(yàn)碼組成,其中信息碼為16位,校驗(yàn)碼為10位,圖中的偏移量代表每一個(gè)數(shù)據(jù)塊在數(shù)據(jù)組中的位置。
??? RDS數(shù)據(jù)結(jié)構(gòu)的主要特點(diǎn)可以歸納如下:
??? (1)每個(gè)RDS數(shù)據(jù)組的第一個(gè)數(shù)據(jù)塊必定包含節(jié)目識(shí)別碼(Programme Identifleation,PI碼),PI碼的建立是為了判定在不同地區(qū)甚至不同國(guó)家間播出的同一節(jié)目。它并不是為了達(dá)到顯示節(jié)目信息的目的,而是某一個(gè)特定節(jié)目的身份證,使得該節(jié)目有別于其他節(jié)目。PI碼的一個(gè)重要應(yīng)用是在當(dāng)前頻率點(diǎn)接收效果較差時(shí),RDS接收機(jī)能夠自動(dòng)調(diào)諧到正在播送同一節(jié)目的其他頻率點(diǎn),以保證收聽質(zhì)量。這一功能在車輛或移動(dòng)式接收設(shè)備上顯得尤為重要。
??? (2)交通節(jié)目標(biāo)志碼(Traffic Programine Identifi—cation,TP碼)和節(jié)目類型碼(Programine Type,PTY碼)總是出現(xiàn)在每個(gè)RDS數(shù)據(jù)組第二個(gè)數(shù)據(jù)塊的固定位置,而不論數(shù)據(jù)組的版本如何。
??? TP碼是一個(gè)開關(guān)標(biāo)志,它用于指示現(xiàn)在調(diào)諧到的頻率點(diǎn)播出的電臺(tái)節(jié)目中是否包含交通信息,這里包括正在播出以及即將播出的交通信息。
??? PTY碼的作用是以字符的形式告知收聽者正在接收的是何種類型的節(jié)目,例如體育節(jié)目、娛樂節(jié)目等。
??? (3)每個(gè)RDS數(shù)據(jù)組的第二個(gè)數(shù)據(jù)塊的開始4位為數(shù)據(jù)組類型標(biāo)志。在RDS規(guī)范中,數(shù)據(jù)組根據(jù)4位標(biāo)志的不同被分為O~15共16類,每類中又根據(jù)第5位值的不同被分為A和B兩種版本。
??? 在RDS規(guī)范中,RDS數(shù)據(jù)組類型多達(dá)16類兩個(gè)版本共32種,分別針對(duì)不同的數(shù)據(jù)特點(diǎn)和功能。需要特別指出的是,這些不同的類型的數(shù)據(jù)組根據(jù)所承載信息的重要程度以及信息類型的差別以不同的頻度得以發(fā)送。
在世界上已經(jīng)開始運(yùn)營(yíng)的RDS系統(tǒng)中,沒有一個(gè)完全實(shí)現(xiàn)了RDS系統(tǒng)能夠擁有的所有功能,而是根據(jù)當(dāng)?shù)氐木唧w情況有選擇地加以實(shí)現(xiàn)。同樣,在RDS接收機(jī)的設(shè)計(jì)過(guò)程中,基于性價(jià)比以及實(shí)用性的考慮,也是有針對(duì)性地實(shí)現(xiàn)RDS的部分功能。
3 RDS數(shù)據(jù)組同步的獲取
??? 在RDS數(shù)據(jù)塊中,采用的是標(biāo)準(zhǔn)CRC校驗(yàn)的一種變形,其生成多項(xiàng)式為:
???
??? 將16位的信息字對(duì)g(x)進(jìn)行模2除法,所得到的余式再使用模2加法加上數(shù)據(jù)塊的偏移量即構(gòu)成所發(fā)送的10位校驗(yàn)字。
??? 由于RDS數(shù)據(jù)組、數(shù)據(jù)塊之間采用連續(xù)發(fā)送,沒有任何間隔,要完成RDS數(shù)據(jù)組的同步操作,必須要在每接收到一個(gè)新的數(shù)據(jù)位后,都對(duì)新組成的26位數(shù)據(jù)流進(jìn)行CRC校驗(yàn)運(yùn)算。為了保證數(shù)據(jù)處理的連續(xù)性,運(yùn)算必須在下一個(gè)數(shù)據(jù)位到來(lái)前完成,也就是說(shuō),必須要在842μs(即一個(gè)RDS碼元周期)內(nèi)完成運(yùn)算。
??? 由于RDS中CRC校驗(yàn)的生成多項(xiàng)式G(x)在單片機(jī)運(yùn)算中占據(jù)兩個(gè)字節(jié),根據(jù)CRC校驗(yàn)的原理,其在8位單片機(jī)中的運(yùn)算其實(shí)就是一種三字節(jié)序列遞推運(yùn)算,每次運(yùn)算所得的余式加入下一個(gè)三字節(jié)序列進(jìn)行模二除法。依次類推,每一次遞推運(yùn)算都是對(duì)一個(gè)三字節(jié)序列的計(jì)算,因此,如何簡(jiǎn)單快捷地對(duì)三字節(jié)進(jìn)行運(yùn)算是算法的關(guān)鍵。
??? 提到簡(jiǎn)單快捷,人們自然會(huì)想到查表法,即事先將三字節(jié)序列的所有余式計(jì)算出來(lái),置于一個(gè)稱之為余式表的表格中供隨時(shí)讀取。不過(guò)這樣的表格太大,需要224個(gè)16位單元,即占用225個(gè)字節(jié)的存儲(chǔ)空間,這對(duì)單片機(jī)來(lái)說(shuō)是無(wú)法接受的,因此,要設(shè)法盡量減少表格所占用的存儲(chǔ)空間。
??? 設(shè)一個(gè)三字節(jié)序列Tabc=[a b c],一個(gè)三字節(jié)序列Ta00=[a O O]和一個(gè)二字節(jié)序列Tbc=[b c]??梢杂枚囗?xiàng)式的形式表示它們之間的關(guān)系為Tabc(x)=Ta00(x)+Tbc(x),因此,對(duì)Ta00來(lái)說(shuō):
???
其中,Qa00(x)是整數(shù),與余式無(wú)關(guān);而Ra00(x)和Tbc都是二字節(jié)序列,因而,它們的和(模2加法,即異或運(yùn)算)仍然是二字節(jié)序列,因此,它就是Tabc的余式Rabc,即:
???
??? 這樣就可以把三字節(jié)序列Tabc=[a b c]的運(yùn)算分解成兩個(gè)步驟來(lái)完成:
??? (1)通過(guò)查余式表,讀取Ta00=[a O 0]的余式Ra00=[ha00 laO0];
??? (2)將Ra00與[b c]進(jìn)行異或運(yùn)算,從而得到[a b c]的余式Rabc=[habc labc]。
??? 由于[a 0 0]只有一個(gè)字節(jié)不為零,因此,余式表只需要256個(gè)單元即512 B的存儲(chǔ)空間。
??? 在RDS接收機(jī)的設(shè)計(jì)過(guò)程中采用的是PIC16F74單片機(jī),其ROM空間僅有16 KB,還要完成顯示控制、電子調(diào)諧控制等許多其他功能,存儲(chǔ)空間非常緊張,所以還需要對(duì)余式表進(jìn)行壓縮。
??? 將Ta00=[a o o]分解為Ta00=[e O O]和Tf00=[f 0 O],并使字節(jié)e的上半字節(jié)內(nèi)容與a的上半字節(jié)相同但下半字節(jié)為零,同時(shí)使字節(jié)f的下半字節(jié)內(nèi)容與a的下半字節(jié)內(nèi)容相同但上半字節(jié)內(nèi)容為零,然后用Ta00和Tf00的生成余式表來(lái)代替Ta00的余式表。由于Ta00和Tf00中只有半個(gè)字節(jié)內(nèi)容不為零,所以每個(gè)余式表只需16個(gè)單元,即32個(gè)字節(jié),兩個(gè)余式表共占用64個(gè)字節(jié),可以滿足PIC16F74單片機(jī)對(duì)于存儲(chǔ)空間的要求。
??? 實(shí)現(xiàn)CRC校驗(yàn)的快速算法只是獲取RDS數(shù)據(jù)信號(hào)同步的前提條件之一。由于RDS數(shù)據(jù)信號(hào)的同步信息是包含在每個(gè)26位數(shù)據(jù)塊的結(jié)尾處,必須采用先接收數(shù)據(jù),再進(jìn)行同步運(yùn)算的辦法。在PICl6F74單片機(jī)的通用寄存器中專門為接收數(shù)據(jù)設(shè)置了4個(gè)字節(jié)的緩沖區(qū),每接收到1位數(shù)據(jù),就按照先入先出(FIFO)的原則對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行移位操作,然后對(duì)最近接收到的26位數(shù)據(jù)進(jìn)行CRC校驗(yàn)運(yùn)算,將運(yùn)算結(jié)果與RDS數(shù)據(jù)塊偏移量A,B,C,D進(jìn)行比較,如果發(fā)現(xiàn)與其中之一相同,則認(rèn)為進(jìn)入準(zhǔn)同步狀態(tài)。由于接收數(shù)據(jù)的隨機(jī)性,在單獨(dú)一個(gè)26位數(shù)據(jù)流中運(yùn)算出數(shù)據(jù)塊偏移量的幾率是比較大的,所以必須進(jìn)行進(jìn)一步的檢測(cè)進(jìn)入準(zhǔn)同步狀態(tài)后,準(zhǔn)同步計(jì)數(shù)器開始對(duì)接收的數(shù)據(jù)位進(jìn)行計(jì)數(shù),當(dāng)又接收到一組26位數(shù)據(jù)后,再進(jìn)行一次CRC校驗(yàn)運(yùn)算,如果運(yùn)算結(jié)果為RDS數(shù)據(jù)塊偏移量A,B,C,D其中之一,并且與上次檢測(cè)到的RDS數(shù)據(jù)塊偏移量成順序關(guān)系,就可以認(rèn)為已經(jīng)獲取了RDS數(shù)據(jù)信號(hào)的同步。
??? 在獲取同步后,就不必每接收1位數(shù)據(jù)進(jìn)行一次CRC校驗(yàn)了,而只用在接收到一個(gè)完整的26位數(shù)據(jù)后進(jìn)行一次校驗(yàn)運(yùn)算,以檢測(cè)數(shù)據(jù)是否傳輸錯(cuò)誤并得到數(shù)據(jù)塊的偏移量。
4 文字信息在RDS透明數(shù)據(jù)通道中的傳輸
??? 由于這里所涉及的RDS接收機(jī)主要用于公交廣告顯示屏的文字信號(hào)傳輸,所以重點(diǎn)討論RDS中適合于文字信息傳輸?shù)膬煞N數(shù)據(jù)類型,即開放數(shù)據(jù)應(yīng)用和透明數(shù)據(jù)通道。
??? 開放數(shù)據(jù)應(yīng)用(Open Data Application,ODA)是RDS數(shù)據(jù)類型中的一項(xiàng)重要內(nèi)容,它賦予了RDS系統(tǒng)實(shí)現(xiàn)各種特定功能的極大的靈活性。開放數(shù)據(jù)應(yīng)用只是規(guī)定了數(shù)據(jù)組的格式,但對(duì)其中的內(nèi)容沒有作出具體的規(guī)定。由于FM廣播具有地域性的特點(diǎn),各個(gè)不同的地方可以根據(jù)各自不同的需要對(duì)于開放數(shù)據(jù)應(yīng)用的內(nèi)容作出具體規(guī)定。當(dāng)然,接收端也必須能夠理解這些具體規(guī)定。在實(shí)際應(yīng)用中,開放數(shù)據(jù)結(jié)構(gòu)常用來(lái)進(jìn)行特殊目的數(shù)據(jù)廣播,例如無(wú)線尋呼、股市信息等。在RDS的相關(guān)標(biāo)準(zhǔn)中,規(guī)定開放數(shù)據(jù)應(yīng)用應(yīng)該向標(biāo)準(zhǔn)制定部門進(jìn)行登記。
??? 與開放數(shù)據(jù)應(yīng)用相比,透明數(shù)據(jù)通道(Transparent Data Channels,TDC)則使RDS的功能實(shí)現(xiàn)更加靈活。之所以稱之為透明,是指通過(guò)它幾乎可以傳輸任意長(zhǎng)度以及任意格式的數(shù)據(jù)。圖3所示為透明數(shù)據(jù)通道的數(shù)據(jù)組結(jié)構(gòu)。
??? 圖3中的地址編碼是指透明數(shù)據(jù)通道的子通道號(hào),共有5位二進(jìn)制數(shù)構(gòu)成,也就是說(shuō),透明數(shù)據(jù)通道最多可容納32路數(shù)據(jù)同時(shí)傳輸。
??? 鑒于透明數(shù)據(jù)通道在功能實(shí)現(xiàn)上的靈活性和可擴(kuò)展性,設(shè)計(jì)的“基于RDS的城市公交廣告信息顯示屏”采用透明數(shù)據(jù)通道進(jìn)行數(shù)據(jù)傳輸,由于可最多容納32路數(shù)據(jù)傳輸,這也意味著廣告運(yùn)營(yíng)商可以在一個(gè)FM頻道上同時(shí)傳輸多套信息,不僅有利于減小運(yùn)營(yíng)成本。也可以根據(jù)廣告客戶的需求,有針對(duì)性地在特定公交線路上顯示出特定的廣告信息內(nèi)容,提高了廣告信息投放的靈活性。
??? RDS規(guī)范中并未規(guī)定透明數(shù)據(jù)通道中傳輸數(shù)據(jù)的格式和長(zhǎng)度,因此可以根據(jù)實(shí)際需要進(jìn)行數(shù)據(jù)傳輸協(xié)議的設(shè)計(jì)。由于系統(tǒng)傳輸?shù)臑閿?shù)字、英文、標(biāo)點(diǎn)符號(hào)等ASCII碼(小于80H)和漢字字符編碼,對(duì)于16位的漢字字符編碼,需要一個(gè)透明數(shù)據(jù)段的16位進(jìn)行傳輸,對(duì)于ASCII碼字符,只需要一個(gè)透明數(shù)據(jù)段的低8位進(jìn)行傳輸,而高8位留作備用。由于漢字編碼每一字節(jié)的數(shù)據(jù)從OAlH開始,并不會(huì)與小于80H的ASCII碼字符混淆。
??? 為方便信號(hào)處理,在每一條文字信息開始設(shè)置起始標(biāo)志7EH,對(duì)應(yīng)ASCII碼字符“~”;在每一條文字信息結(jié)束時(shí)設(shè)置結(jié)束標(biāo)志ODH,對(duì)應(yīng)ASCII碼的回車符。
??? 一條完整的文字信息接收的主要流程如圖4所示。
5 結(jié) 語(yǔ)
??? 在“基于RDS的城市公交廣告信息顯示屏”的設(shè)計(jì)過(guò)程中,通過(guò)對(duì)RDS數(shù)據(jù)結(jié)構(gòu)的仔細(xì)分析,在有限的處理速度和計(jì)算資源的前提下,成功解決了RDS數(shù)據(jù)組同步運(yùn)算的實(shí)時(shí)性問題,實(shí)現(xiàn)了文字信息在RDS透明數(shù)據(jù)通道中的傳輸,并在實(shí)際運(yùn)行過(guò)程中取得了令人滿意的效果。
??? RDS作為一種依托于傳統(tǒng)媒體而開發(fā)出的數(shù)據(jù)傳輸方式,其自身也在不斷地完善和發(fā)展之中。隨著更多新的技術(shù)手段應(yīng)用于RDS系統(tǒng),RDS的內(nèi)涵也在不斷擴(kuò)充,其應(yīng)用領(lǐng)域也會(huì)不斷擴(kuò)大。
評(píng)論
查看更多