基于RFID技術(shù)的智能語音播報系統(tǒng)設(shè)計
引言
射頻識別(Radio Frequency Identification,RFID)作為一種非接觸式的自動識別新技術(shù),近年來得到了迅速的發(fā)展并逐步走向成熟。其原理是基于無線射頻信號的傳輸特性,進(jìn)行非接觸式自動識別,從而自動識別被標(biāo)識對象,獲取對應(yīng)數(shù)據(jù)進(jìn)行交換。最常見的識別方法是一個串行存儲號碼識別一個人或物體。在此介紹一種基于RFID和單片機技術(shù)的智能語音播報系統(tǒng),可廣泛應(yīng)用于旅游景點自助導(dǎo)游、博物館自助講解、公交車站自動報站等場合。
1 系統(tǒng)總體設(shè)計
本系統(tǒng)由兩大部分組成:RFID電子標(biāo)簽和智能終端。RFID電子標(biāo)簽內(nèi)部由RFID晶片和外界線圈組成,每張電子標(biāo)簽有唯一的ID號。智能終端主要包括AT89S52單片機、最小系統(tǒng)電路、RFID讀卡器、語音模塊等。其中語音模塊由WT588D語音芯片、編程器和用于語音下載、編程、模式設(shè)置的上位機軟件WT588D VioceChip組成。系統(tǒng)整體框圖如圖1所示。
智能終端在有效讀取范圍內(nèi)檢測到RFID電子標(biāo)簽時,產(chǎn)生串行中斷,單片機通過RXD引腳讀取并存儲電子標(biāo)簽ID值,然后查詢與讀取的ID號對應(yīng)的語音地址,單片機通過一線串口控制模式控制語音模塊完成對應(yīng)語音信息的準(zhǔn)確播報。
2 系統(tǒng)硬件設(shè)計
2.1 RFID讀卡器模塊DM-S28140
本系統(tǒng)采用中科鷗鵬公司的串口通信版DM—S28140讀卡器模塊實現(xiàn)RFID電子標(biāo)簽的ID值的讀取。DM-S28140讀卡器具有低功耗被動讀取RFID標(biāo)簽、串口通信、波特率為2 400 bps、輸入使能允許軟件啟用或禁用等特點??梢宰x取EM4100無源只讀系列125 kHz標(biāo)簽卡,每個標(biāo)簽包含一個唯一的標(biāo)識符,由RFID讀卡器讀取后,通過串行接口傳輸。
2.1.1 讀卡原理
當(dāng)RFID讀卡器工作時,讀卡器的控制電路將電流注入線圈,產(chǎn)生低頻電磁場。若RFID電子標(biāo)簽放置在有效讀取范圍內(nèi)(10 cm內(nèi)),電子標(biāo)簽的線圈就會感應(yīng)低頻電磁場,共振耦合產(chǎn)生電流,供給其晶片足夠的電源,在充分的電源供應(yīng)下,晶片就可以將內(nèi)存中唯一的ID信號轉(zhuǎn)換成射頻信號,傳送給讀卡器。只要有充分的電源,電子標(biāo)簽就會持續(xù)不斷地發(fā)送ID值。
2.1.2 硬件連接
RFID讀卡器串行接口版本可以與微控制器僅用4個信號(VCC、/ENABLE、SOUT、GND)互連。讀卡器外觀及引腳功能如圖2所示。其中,SOU T連接到AT89S52的P3.0(RXD)引腳實現(xiàn)串口通信,使能引腳/ENABLE由P3.2控制。
AT89S52與WT588D的連接如圖3所示。選擇AT89S52 P1.4引腳連接AT89S52 RESET控制復(fù)位信號,AT89S52的P1.5引腳連接P03作為數(shù)據(jù)輸出端,選擇PWM音頻輸出方式,PWM引腳接至揚聲器。
2.1.3 通信協(xié)議
當(dāng)RFID射頻識別卡開始工作時,且RFID標(biāo)簽放置在有效讀取的范圍內(nèi),唯一的ID以12位ASCII字符串方式發(fā)送給主機,如圖4所示。
其中,起始位和停止位有助于識別一個正確的接收信息串,中間10位是實際標(biāo)簽唯一ID號。
2.2 語音模塊
語音模塊包括16個引腳的語音芯片WT588D、一個對語音模塊進(jìn)行語音下載的編程器和上位機軟件Vioce Chip。WT588D語音芯片是一款可重復(fù)擦除燒寫的語音單片機芯片。表1為各個引腳的功能描述。
圖5為一線串口控制模式時序及電平占空比示意圖。配套WT588D VioceChip上位機操作軟件可隨意更換WT588D語音單片機芯片的任何一種控制模式,把信息下載到SPI-Flash上即可,可控制220個語音地址,每個地址位能加載組合128段語音。支持DAC/PWM兩種輸出方式,PWM輸出可直接推動0.5W/8Ω揚聲器。支持加載WAV,音頻格式,以及MP3控制模式、按鍵控制模式、一線串口控制模式、三線串口控制模式。本系統(tǒng)采用一線串口控制模式接收待合成的文本,直接合成為語音輸出。
一線串口只通過一條數(shù)據(jù)通信線控制時序,依照電平占空比不同來代表不同的數(shù)據(jù)位。先拉低RESET復(fù)位信號5 ms,然后置于高電平等待17 ms,再將數(shù)據(jù)信號拉低5 ms,最后發(fā)送數(shù)據(jù)。高電平與低電平數(shù)據(jù)占空比為1:3,代表數(shù)據(jù)位0;高電平與低電平數(shù)據(jù)位占空比為3:1,代表數(shù)據(jù)位1。高電平在前,低電平在后。
3 系統(tǒng)軟件設(shè)計
3.1 主函數(shù)及語音編程
軟件系統(tǒng)主要由主函數(shù)main、讀卡函數(shù)getRFID()、語音播放函數(shù)Send oneline(uint8_tcmd)組成。主函數(shù)完成系統(tǒng)初始化(定義標(biāo)簽卡ID數(shù)組)、調(diào)用讀卡函數(shù)實現(xiàn)標(biāo)簽卡ID信息的讀取、查詢ID卡號對應(yīng)的語音地址、調(diào)用語音播報函數(shù)實現(xiàn)信息的準(zhǔn)確播報。流程圖如圖6所示。
值得注意的是,播放的語音必須下載到語音芯片SPI-Flash存儲器中,通過語音編程器及VioceChip上位機軟件進(jìn)行語音模塊的編程(即語音的裝載、模式設(shè)置等),編程流程如圖7所示。
語音下載后,須將語音地址與下載的語音文件一一對應(yīng)起來,這是單片機讀取語音并且準(zhǔn)確播報的重要參考點,語音地址對應(yīng)關(guān)系如表2所列。
3.2 讀卡功能的實現(xiàn)
讀卡函數(shù)getRFID()程序流程圖如圖8所示。首先進(jìn)行UART初始化,當(dāng)讀卡器檢測到標(biāo)簽卡時產(chǎn)生串行中斷,按照12位通信協(xié)議按位讀取數(shù)據(jù),直到接收到停止位0x0D結(jié)束。
截取有效數(shù)據(jù)后4個字節(jié),有效數(shù)據(jù)是指每個字節(jié)的大小在指定范圍內(nèi)(即0x30~0x46),對應(yīng)字符為0~F,程序中只需要0x0D(停止字節(jié))前的4個字節(jié)。
例如這4個字節(jié)分別為0x41、0x32、0x36、0X46,對應(yīng)的字符為A26F,轉(zhuǎn)換成十進(jìn)制數(shù),則數(shù)值等于41 583。因此,主程序定義的標(biāo)簽卡數(shù)組元素應(yīng)為每個標(biāo)簽卡后5位十進(jìn)制ID對應(yīng)的十六進(jìn)制數(shù)。
3.3 語音播報功能的實現(xiàn)
根據(jù)圖3和圖5,語音播報函數(shù)Send_oneline(uint8_tcmd)程序流程圖如圖9所示。函數(shù)中的形參cmd即語音的地址。
結(jié)語
本文使用AT89S52單片機、DM-S28140讀卡器和WT588D語音模塊,配合RFID電子標(biāo)簽,實現(xiàn)了智能語音播報系統(tǒng)。
實踐證明,此方案可行并且可靠,可用于旅游景點自助導(dǎo)游、博物館的自助講解、公交車站智能報站等場合,具有較高的實用價值。