基于RFID(射頻識(shí)別技術(shù))和語音合成的導(dǎo)游講解系統(tǒng)
1 自助語音講解系統(tǒng)的工作原理
本自助語音講解系統(tǒng)由2部分構(gòu)成:RFID電子標(biāo)簽和手持終端。手持終端主要包括AT89S8252單片機(jī)、非接觸式IC卡讀寫及射頻模塊電路、科大訊飛XF-S4240語音合成模塊、電源電路等,其原理圖主要框圖如圖l所示。當(dāng)手持終端檢測(cè)到RFID電子標(biāo)簽,產(chǎn)生中斷,讀取電子標(biāo)簽信息。即可識(shí)別出展品代號(hào),調(diào)用存儲(chǔ)在單片機(jī)中的本展品的語音講解文本,通過語音合成模塊,由語音放大電路輸出,完成講解任務(wù)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 非接觸式射頻讀卡器
由于非接觸式IC卡與讀卡設(shè)備無接觸,它是通過射頻電磁感應(yīng)從讀寫設(shè)備獲取能量和交換數(shù)據(jù),讀寫操作只需要將卡片放在讀寫器附近一定的距離之內(nèi)就能實(shí)現(xiàn)數(shù)據(jù)交換和身份識(shí)別等,使用方便快捷、不易損壞,廣泛應(yīng)用于存取頻繁、可靠性高的場(chǎng)合。
本系統(tǒng)采用北京完美公司的WM-01TA模塊來實(shí)現(xiàn)。該模塊配套有環(huán)行天線,工作頻率為125 kHz;具有異步串行通訊UART接口;默認(rèn)串口波特率為9 600 b/s,無校驗(yàn),8位數(shù)據(jù)位,1位停止位;可讀取EM只讀感應(yīng)體,讀卡距離為60~90 mm,讀卡速度大于0.5s,并且采用標(biāo)準(zhǔn)IC引腳DIP40外型,特別方便嵌入到目標(biāo)線路板中。該射頻模塊共有7個(gè)引腳,引腳說明如表l所示。該器件價(jià)格低廉,完全滿足該項(xiàng)目設(shè)計(jì)需求。
當(dāng)卡片進(jìn)入感應(yīng)區(qū)時(shí),模塊向串口發(fā)送一次卡號(hào)。如果卡片未離開感應(yīng)區(qū),模塊則不再向串口送卡號(hào),如果卡片離開感應(yīng)區(qū),再進(jìn)入感應(yīng)區(qū),則該模塊需再送一次卡號(hào)。
TTL232數(shù)據(jù)傳輸主要是傳送卡號(hào),其傳送數(shù)據(jù)格式為:AAH FFH DO D1 D2 D3 D4校驗(yàn)和,共8個(gè)字節(jié),其中AAH和FFH為命令碼:DO~D4為40位卡號(hào),其中低地址為高字節(jié)Motorola結(jié)構(gòu):檢驗(yàn)和為地址0~5位,共7字節(jié)“XOR”異或值。例如:某40位卡號(hào)為01021DF6FA(HEX),對(duì)應(yīng)發(fā)送格式為:AAH FFH 01H 02H 1DH F6H FAH 47H,其卡號(hào)為5個(gè)字節(jié):01H 02H 1DH F6H FAH。
WM-01TA通過UART接口與單片機(jī)連接,如圖2所示。
2.2 語音模塊XF-S4240
XF-S4240中文語音合成模塊是中科大訊飛信息科技有限公司面向高端應(yīng)用推出的嵌入式中文語音合成模塊??芍С秩我獾闹形奈谋?、英文字母的語音合成。該模塊通過異步串口(UART)、SPI接口及I2C總線3種方式接收待合成的文本,直接合成為語音輸出。該模塊支持GB2312、GBK、BIG5、UNICODE等4種內(nèi)碼格式的文本,具有智能的文本分析處理算法,并支持多種控制命令,包括:合成、停止、暫停合成、繼續(xù)合成等。XF-S4240語音模塊封裝成16端子,各端子功能如表2所示。
語音模塊的命令格式由幀頭、數(shù)據(jù)長度區(qū)及數(shù)據(jù)區(qū)3部分組成,各部分的定義如表3所示。語音模塊的命令如表4所示。
如要合成“歡迎您參觀莫高窟”,只需對(duì)模塊發(fā)送格式為GB2312的文本代碼:
其中0xFD為幀頭,0x00為數(shù)據(jù)區(qū)長度的高字節(jié),Ox14為數(shù)據(jù)區(qū)長度的低字節(jié)(注意:長度字節(jié)為合成代碼字節(jié)長+2),0x01為語音合成命令,0x00為GB2312的命令碼。0xBB、0xB6 為“歡”的GB2312碼,0xD3、0xAD為“迎”的GB2312碼……0xAD、0xA3為“?!钡腉B2312碼。
本設(shè)計(jì)中,AT89S8252與XF-S4240通過SPI通訊來實(shí)現(xiàn),電路連接見圖2。語音信號(hào)由LM386放大輸出。由于該模塊采用3.3 V供電,需用AMSlll7將5 V轉(zhuǎn)換為3.3 V電源。
2.3 AT89S8252單片機(jī)
本系統(tǒng)設(shè)計(jì)中,射頻讀卡模塊具有UART接口,語音合成模塊具有UART和SPI接口。由于普通51單片機(jī)只有一個(gè)串口,因此存在串口的擴(kuò)展問題。AT89C8252單片機(jī)是ATMEL公司的8位微處理器,具有SPI接口是AT89S8252不同于其他單片機(jī)的主要特點(diǎn),它與51單片機(jī)完全兼容,但
在P1口(其中的P1.4~P1.7)上擴(kuò)展了SPI接口??梢院芊奖愕嘏c語音模塊通信,因此,在本系統(tǒng)選擇AT89S8252,可以大大簡(jiǎn)化系統(tǒng)的軟硬件設(shè)計(jì)。
AT89S8252共有3個(gè)SPI寄存器,分別是控制寄存器SPCR、狀態(tài)寄存器SPSR和數(shù)據(jù)寄存器SPDR。
1)控制寄存器SPCR的內(nèi)容格式為:
SPIE:SPI中斷使能位。為0時(shí),禁止SPI中斷:為1時(shí),若EA也為1,則使能SPI中斷;
SPE:SPI使能位。為0時(shí),禁止SPI通道;為1時(shí),使能SPI中斷,此時(shí),P1.4、P1.5、P1.6和P1.7用作*****、MOSI、MISO和SCK。
DORO:數(shù)據(jù)順序設(shè)置位。為O時(shí),數(shù)據(jù)傳輸?shù)臀辉谇?為1時(shí),數(shù)據(jù)傳輸高位在前。
MSTR:主從模式設(shè)置位。為0時(shí),選擇從模式;為1時(shí),選擇主模式。
CPOL:時(shí)鐘極性設(shè)置位。為0時(shí),主器件時(shí)鐘SCK在不傳輸時(shí)為低電平;為1時(shí),SCK在空閑時(shí)為高電平。
CPHA:時(shí)鐘相位設(shè)置位。此位和CPOL一起控制主從器件之間的時(shí)鐘和數(shù)據(jù)關(guān)系。
SPRl、SPR0:SPI時(shí)鐘頻率設(shè)置位。這兩位主要用于主模式器件的SCK頻率設(shè)置,對(duì)于從模式器件沒有作用。為00時(shí),頻率為fOSC/4;為01時(shí),頻率為fOSC/16;為10時(shí),頻率為fOSC/64;為11時(shí),頻率為fOSC/128。這里fOSC為晶振頻率。
在本設(shè)計(jì)中,初始化要求SPIE=0,SPE=l,DORD=O,MSTR=1,CPOL=CPHA=l,SPRl=0,SPR0=1,通過“SPCR=0x5d”語句就可以對(duì)SPI接口初始化。
2)狀態(tài)寄存器SPSR的內(nèi)容格式為:
SPIF:SPI中斷標(biāo)志位。當(dāng)一次串行傳輸完成后,此位被置1,如果SPIE和ES為1,則會(huì)產(chǎn)生中斷。讀SPI狀態(tài)寄存器SPSR將清除此位。
WCOL:寫沖突標(biāo)志位。在數(shù)據(jù)傳輸過程中寫數(shù)據(jù)寄存器SPDR時(shí),此位會(huì)置1。在數(shù)據(jù)傳輸中,讀SPDR寄存器值會(huì)發(fā)生錯(cuò)誤,寫SPDR寄存器也無效。讀SPDR寄存器將清除此位。
3)數(shù)據(jù)寄存器SPDR為8位數(shù)據(jù)位,其內(nèi)容格式為:
因此,對(duì)SPI接口操作簡(jiǎn)單。SPI接口寫入數(shù)據(jù)的子程序?yàn)椋?/P>
3 系統(tǒng)軟件流程
軟件系統(tǒng)由主程序、讀卡子程序、語音處理程序組成。其中,主程序完成系統(tǒng)的初始化(包括UART初始化和SPI初始化),如果有射頻卡接近天線,則讀卡模塊通過串口中斷發(fā)送TAG信息給單片機(jī)。單片機(jī)將此標(biāo)簽信息與存儲(chǔ)的卡號(hào)信息比對(duì),從而調(diào)用相應(yīng)的語音文本信息送到XF -S4240模塊,播放相應(yīng)的語音。
由于采用了SPI接口,單片機(jī)與語音模塊的通信也格外簡(jiǎn)單,其相關(guān)代碼如下:
其流程圖如圖3~圖5所示。
4 結(jié)束語
使用AT89S8252單片機(jī)及WM-01TA讀卡模塊和XF-S4240語音模塊,配合天線模塊、電源模塊等,實(shí)現(xiàn)了自助語音講解系統(tǒng)。該系統(tǒng)在展覽館、旅游景點(diǎn)可以提供個(gè)性化的導(dǎo)游服務(wù),有較高的實(shí)用價(jià)值。
評(píng)論