田 杰,胡秋霞,趙 鎮(zhèn)
(西安航空學院計算機學院,陜西西安 710077)
隨著嵌入式系統(tǒng)和通信技術(shù)的不斷發(fā)展,公交車智能語音報站系統(tǒng)技術(shù)逐漸趨于完善。公交車語音報站系統(tǒng)不僅加快了智能交通系統(tǒng)的整體規(guī)劃建設(shè)程度,而且將乘客和駕駛員的安全保障提高了一個層次,使運行效率提高、出行時間減少[1-3]。一個優(yōu)秀的報站系統(tǒng),可以在提高公交車調(diào)度效率的同時盡可能地方便人們出行。
該設(shè)計提出了一種以STM32F103C8T6 微處理器為核心主板,以NY3P065BP8 語音芯片為控制語音模塊,以BS-280 GPS 一體模塊接收經(jīng)緯度信息的公交車語音報站方案。該方案主要包括主體框架設(shè)計、硬件設(shè)計、軟件設(shè)計和測試4 個方面。其中硬件部分采用STM32F103 系列單片機作為核心主控制器,使用BS-280 GPS一體模塊獲取當前位置信息,使用NY3P065BP8 語音芯片播放到站信息,在LCD 屏幕上顯示站點名稱;軟件部分利用keil 軟件程序進行C 語言相關(guān)軟件部分編程,用串口燒錄工具把hex程序燒入單片機。
公交車語音報站系統(tǒng)主要模塊框架如圖1 所示。在公交車行駛過程中,GPS 模塊不斷采集公交車所處經(jīng)緯度信息,并且反饋給STM32F103C8T6 微控制器核心系統(tǒng),搜索當前到站經(jīng)緯度和寄存器地址中的閾值范圍[1,4-7],人工確認無誤后,可手動按鍵播報當前到站語音。在車輛行駛過程中,匹配數(shù)據(jù)庫中電子地圖與當前位置信息,在不同公交車位置顯示不同站點信息,在離站、到站等范圍內(nèi)提示語音,也可設(shè)置不同播報音量。硬件設(shè)計中,主要模塊可分為微處理控制器、LCD 顯示模塊、GPS 經(jīng)緯度接收模塊、音頻處理模塊、按鍵和最小系統(tǒng)電源電路模塊[8-12]。系統(tǒng)運行途中可以最大限度減少人工的參與度,自動化程度較高。
圖1 公交車語音報站系統(tǒng)框架圖
基于STM32 的公交車語音報站系統(tǒng)硬件設(shè)計主要包括最小系統(tǒng)電源電路模塊、音頻處理模塊、GPS經(jīng)緯度接收模塊、液晶顯示模塊。
微控制器能夠運行的最小系統(tǒng)電源電路包括時鐘電路、復位電路和電源電路,這是微控制器能夠維持運行的基礎(chǔ),即為微控制器最小系統(tǒng)[13-14]?;谧钚∠到y(tǒng),可以更改并變換模塊來實現(xiàn)所需的功能。
圖2 為微控制器的最小系統(tǒng)電路圖。
圖2 最小系統(tǒng)電路圖
時鐘電路是最小系統(tǒng)的一部分,STM32 微控制器如要讀取命令則必須要有時鐘電路,通過復雜的時鐘電路可以完成處理器的不同指令。STM32微控制器中的時鐘電路分為外部時鐘電路和內(nèi)部時鐘電路。內(nèi)部時鐘由簡單的RC 振蕩電路產(chǎn)生,分為8 MHz 的高頻時鐘和32.768 kHz 的低頻時鐘,由于系統(tǒng)本身設(shè)定及內(nèi)部時鐘的精度閾值限度較低,這時需要啟用外部時鐘以便降低系統(tǒng)的波動性和數(shù)據(jù)錯誤率。
選用常用的語音合成傳輸芯片NY3P065BP8 和揚聲器模塊,能夠?qū)σ纛l音量、音頻長度、播放音頻的段碼、聲音清晰度等進行處理。
微控制器以脈沖的方式向NY3P065BP8 語音模塊發(fā)送命令,NY3P065BP8 根據(jù)脈沖時長的命令幀進行相應操作,并向微控制器實時反饋操作語音芯片狀態(tài)。接收到回傳脈沖信號后,STM32 微控制器會判斷NY3P065BP8 芯片的BUSY 引腳是否是高電平以及當前芯片的工作狀態(tài),同時接收微控制器的回傳信號并進行判斷,然后進入下一步操作。
STM32 微控制器控制語音芯片過程和語音芯片電路圖分別如圖3 和圖4 所示。
圖3 語音芯片播放過程
圖4 NY3P065BP8芯片電路圖
語音芯片引腳說明如表1 所示。
表1 NY3P065BP8芯片引腳說明
以播放第五段音頻為例說明功能實現(xiàn)過程:微控制器首先判斷當前語音模塊的BUSY 引腳是否為高電平,如果當前是高電平,則RST 引腳會接收到一個復位脈沖,接著發(fā)送5 個200 μs/s 的脈沖信號到DATA 引腳,芯片即刻工作并開始播放第五段地址內(nèi)所存儲的內(nèi)容。如果還需播放其他音頻內(nèi)容,則發(fā)送一個脈沖信號到RST 將芯片復位,狀態(tài)回到初始態(tài),傳輸當前需要播放音頻的相同數(shù)量脈沖即可。
控制原理說明:在脈沖時長大于50 μs 時,通常將200 μs 的脈沖信號發(fā)送給芯片,在使用模擬串行接口傳輸?shù)姆绞较?,可以?28 段地址進行任意組合控制,播放的地址內(nèi)容和發(fā)送的脈沖時長有關(guān)。
為了滿足個人設(shè)計需要,可選用戶外求生專業(yè)定位需求的BS-280 GPS 一體模塊,該模塊的特點是功耗低且性能可達到較高標準要求,可在露天全方位定位接收,采用UBLOXG7020-KT 芯片設(shè)計的同時也保障了專業(yè)性能的優(yōu)異。
GPS 的各類數(shù)據(jù)根據(jù)幀的不同,幀頭也并不相同,通常由逗號分開數(shù)據(jù),各類數(shù)據(jù)幀包含著互不相同的信息。幀主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成[15]。一般的GPS 協(xié)議包格式有$ GPGGA、$ GPGSA、$GPGSV 以及$GPRMC 等。
當信號傳輸?shù)綌?shù)據(jù)存儲器時,由于逗號分隔了不同的GPS 協(xié)議描述,在處理當前高速存儲中的數(shù)據(jù)段幀時,首先在幀頭檢索ASCII 字符碼“$”,判斷是否為當前數(shù)據(jù)首部,然后判斷運用了哪種協(xié)議,隨后對數(shù)據(jù)進行轉(zhuǎn)換并返回存儲中,接著將轉(zhuǎn)換成功的數(shù)據(jù)傳輸?shù)絃CD 顯示屏上。
圖5 為系統(tǒng)采用的BS-280 GPS 定位模塊定位原理圖。
圖5 GPS定位模塊定位原理圖
表2 為BS-280 的GPS 模塊引腳說明。
表2 GPS模塊引腳說明
樣 例數(shù)據(jù)包括$GPRMC、174223.48、A、34154 7257、N、10853.15167、W、0.13、309.62、120598、*10,表3 為GPS 模塊RMC 協(xié)議數(shù)據(jù)樣例描述。
表3 GPS—RMC協(xié)議樣例
該系統(tǒng)所使用的點陣式液晶屏不僅能滿足曲線圖形、字符和文字的顯示要求,還能夠在4行×8列的屏幕上實現(xiàn)文字滾動、反轉(zhuǎn)、字符的閃爍、窗口分區(qū)顯示和小微動畫的播放。其主要組成部分為液晶點陣和控制驅(qū)動,可以和串行接口集成,通過引腳連接在微處理器接口使用,操作簡易、價格適中,對完成設(shè)計有很大幫助。圖6為LCD顯示模塊電路圖。
圖6 顯示模塊電路原理圖
軟件設(shè)計主要包括主程序和子程序設(shè)計。子程序主要包括語音功放模塊程序設(shè)計和LCD 液晶顯示程序設(shè)計。
主程序控制的功能主要包括LED 文字顯示模塊、語音芯片播報站點模塊、GPS 經(jīng)緯度接收模塊、按鍵模塊和撥動開關(guān)。系統(tǒng)有兩個控制模式:按鍵控制模式和GPS 接收控制模式。程序上電啟動,顯示“歡迎乘車”,LED 液晶顯示屏顯示第一站和下一站的站名[16]。當公交車到站時,司機按下按鍵播報當前到站信息,并語音提示“注意安全”、“請下車”等信息,提醒乘客下車。當?shù)秸竞螅Z音播報完這一站信息后乘客下車則停車,不下車則播報下一站,系統(tǒng)繼續(xù)運行。該系統(tǒng)主程序流程圖如圖7 所示。
圖7 主程序流程圖
NY3P065BP8 語音芯片的功能是在脈沖作用下,通過脈沖信號控制存儲在芯片里的語音片段的播放,經(jīng)由功放模塊在揚聲器中向外播放,其關(guān)鍵在于對文本信息的轉(zhuǎn)換。該系統(tǒng)語音報站的芯片模塊采用的控制方式為模擬串行的數(shù)據(jù)發(fā)送,通過脈沖信號播放語音片段,在微處理器接收第幾個脈沖信號后就播放第幾段音頻,并且通過按鍵模塊的按鍵信號來判斷車輛的上行或者下行對應的語音信息,在每一次語音播報后繼續(xù)等待外部中斷的傳輸,如果有新的信號,則播放對應音頻,若無新的信號,則一直等待。圖8 為語音模塊流程圖。
圖8 語音合成模塊程序流程圖
圖9為液晶顯示模塊流程圖。系統(tǒng)采用液晶顯示屏LCD12864 作為顯示模塊,這是嵌入式設(shè)計中常用的一種顯示屏,功耗需求低,額定電壓需求也并不需要電壓轉(zhuǎn)換,能夠正常顯示漢字、英文、數(shù)字等字符。該模塊的功能是將文字信息顯示在公交車內(nèi)的站點牌上,使乘客直觀地看見到站信息,方便了信息的獲取,也避免了公交車人員過多后車廂內(nèi)過于吵鬧而導致部分乘客無法聽清當前到站或者下一站的語音提示問題,提高了人們的乘車體驗。在系統(tǒng)上電后,顯示屏打開,顯示歡迎初始化信息“歡迎乘車”字樣,當按動按鍵后,引腳傳輸信號到顯示屏上更改到站顯示,如果沒有接收到信號,則屏幕不發(fā)生變化,系統(tǒng)繼續(xù)進行等待。
圖9 液晶顯示模型程序流程圖
功能測試主要包括顯示功能測試、音頻播放功能測試和系統(tǒng)集成測試。
經(jīng)過硬件上電測試,系統(tǒng)能夠正常運行,顯示屏以及GPS 初始化成功,外部按鍵可以控制顯示屏顯示當前站點信息和下一站站點信息,并帶有“注意安全”提示語。
使用按鍵模塊的撥動開關(guān)后,GPS 開始接收衛(wèi)星信號傳輸?shù)慕?jīng)緯度信息,實際測試接收時間為40~70 s 之間,TX 指示藍燈持續(xù)閃爍表示在不斷接收信號,1PPS 指示紅燈亮起10 s 之后,顯示屏開始實時傳輸經(jīng)緯度數(shù)據(jù)。GPS 模塊必須在無遮擋、空曠的地方進行測試,否則無法接收到衛(wèi)星信號,并且從GPS 所接收到的經(jīng)緯度數(shù)據(jù)都會實時傳送并顯示在屏幕上。
在報站按鍵按下后,語音播報當前站到了,如“一號站到了”。再次按下,播報下一站。下車按鍵按下,語音播報“請下車”,安全按鍵按下,語音播報“請注意安全”。經(jīng)測試,模塊能夠正確播報當前到站和下一站站點信息;同時,液晶屏能夠正確顯示當前站和下一站的信息。
完成單板測試后,進行公交車語音報站系統(tǒng)整體測試,由JTAG 仿真器模擬經(jīng)緯度信號向系統(tǒng)主控制器發(fā)送報站指令,驗證系統(tǒng)主控制器收到報站指令,站點經(jīng)緯度閾值范圍是否正確,顯示屏顯示站點,語音芯片進行語音播報等功能是否正確運行。通過不斷測試,這些功能都能正常運行。
該系統(tǒng)的主控芯片采用STM32F103C8T6,經(jīng)緯度接收模塊采用BS-280 GPS 一體模塊,音頻解碼芯片采用NY3P065BP8 模塊,所有功能都完成了預定目標。在軟件設(shè)計之后,調(diào)試數(shù)據(jù)格式時,需注意音頻模塊和GPS 模塊的參數(shù)范圍設(shè)定,如果設(shè)置參數(shù)不匹配會導致解析錯誤致使模塊無法正常使用。下一步要解決的問題是在音頻解碼傳輸功放過程中,對算法進行優(yōu)化以減少音頻解碼過程中臨時占用的內(nèi)存空間,提高運算速度。另外,該系統(tǒng)未在實際的公交車運營環(huán)境中測試,考慮到現(xiàn)實運營環(huán)境存在的復雜多樣和可能會出現(xiàn)未知干擾因素,因此需要不斷調(diào)試改善相關(guān)功能,使之更適合實際車輛運營環(huán)境。