王銘杰,田 源,付大同,孫小羊,吳啟琴
(三江學院 電子信息工程學院,江蘇 南京210012)
19世紀末20世紀初,燃油汽車的發(fā)明大大改變了人們的生活方式,隨著嵌入式技術的發(fā)展,由燃油汽車衍生的車載空調、車載導航、車載MP3播放器、車載記錄儀等智能化的電子產品同樣隨著燃油汽車的更新迭代迅速發(fā)展起來,并迅速投入應用,產生巨大的社會效益。隨著時代的發(fā)展和科技的進步,在21世紀初,新能源汽車逐漸開始替代傳統(tǒng)的燃油汽車進入人們的日常生活,電子設備的開發(fā)逐漸向新能源汽車領域滲透,其相關嵌入式產品的發(fā)展也遵循著同樣的規(guī)律。
如今,隨著國家政策的大力支持和節(jié)能減排觀念的不斷普及,蓬勃發(fā)展的新能源汽車及其相關產業(yè),已經成為一種國家意志,逐漸發(fā)展成為不可阻擋的趨勢。特別是與新能源汽車密切相關的汽車電子產品層出不窮,通過對近年來國內外相關電子產品的研究發(fā)現(xiàn),現(xiàn)在的汽車電子產品絕大多數(shù)嵌入于汽車控制系統(tǒng)內部,通過汽車CAN總線進行實時電量的讀取和開發(fā),具備實時檢測剩余電量,智能調整設備供電,低電量下語音提醒和聲光警示的功能。然而對于部分缺乏汽車低電量運行下安全防范意識的車主來說,由于沒有經驗,單純的聲光提示并不能幫助他們以更有效的方式解決問題。所以,開發(fā)一款專用于為用戶提供汽車低電量運行下的意外狀況解決方案的裝置很有必要。
因此,我們設計了該新能源汽車低電量運行下的無線網絡測距及智能語音交互系統(tǒng)。將無線測距模塊、語音識別模塊和語音播報模塊相結合,并集成在同一個裝置中,區(qū)別于傳統(tǒng)的放置于汽車內部需要通過CAN模塊讀取汽車數(shù)據(jù)的方案,該裝置主要通過語音交互系統(tǒng)給出解決方案,無需和CAN總線相連,更無需了解CAN總線相關知識或使用高成本的CAN模塊,大大降低了開發(fā)難度和開發(fā)成本,此外,我們輔以LORA模塊對充電樁、服務區(qū)等網絡節(jié)點進行高精度測距,令測距結果在OLED屏上顯示出來,便于引導用戶進行數(shù)據(jù)分析并做出合理決策。
本研究設計了一種基于STM32f103c8t6最小系統(tǒng)板的無線網絡測距及智能語音交互系統(tǒng),如圖1所示,本系統(tǒng)以STM32單片機為核心,使用LORA無線測距模塊、OLED顯示模塊、LD3320語音識別模塊和XYV17B語音播報模塊作為外圍模塊,組成一個無線測距及智能語音交互系統(tǒng)。
圖1 系統(tǒng)設計框圖
本系統(tǒng)創(chuàng)新性地將完善的預防及處理方案存儲在語音播報的內容之中,并通過智能語音交互的方式完成全部功能的實現(xiàn)。該系統(tǒng)的工作流程如圖2所示。
圖2 系統(tǒng)工作流程圖
通過對市場上已有產品使用CAN模塊從汽車上讀取數(shù)據(jù)的方案分析和比較發(fā)現(xiàn),語音識別方案無需考慮CAN總線通訊協(xié)議的一致性,更無需集成于車載系統(tǒng)內部,而且與傳統(tǒng)的鍵盤輸入和手動控制方式相比,語音識別更加符合人們的日常習慣,也更加方便快捷,車主無需使用雙手便可對該裝置進行控制,所以我們選擇通過語音識別的方式控制該系統(tǒng)。
LD3320識別原理是非特定人語音識別技術ASR,是一個基于關鍵詞語列表的匹配識別技術,算法本質是在提取輸入聲音的特征后,在關鍵詞語列表中尋找一個和當前指令匹配度最高的拼音作為最終的結果。基于LD3320識別原理,我們采用增添相似關鍵詞語的方法用于吸收錯誤識別,比如,某個應用場景中,需要識別的關鍵詞語是4條:汽車低電量、開機、測距模式、新能源汽車省電方案。在把這幾個關鍵詞通過程序寫進語音識別模塊后,再另外設置與每個詞語對應的2-3個相似詞匯到程序里面,比如手機低電量、開門、距離、省電等。
因為內部LD3320是會對一次識別返回1個最優(yōu)結果和3個備選結果序號的,只有當識別的結果在4個以內才會識別有效,我們取最優(yōu)的結果存放到讀取寄存器提供給用戶讀取。如果識別到的是無效的“相似關鍵詞語”,如手機低電量、開門、距離、省電等。裝置會給出不同的聲光指示,表明是由其他無效的語音信息造成的誤識別,如表1所示。
表1 語音識別模塊
通過測試結果可以發(fā)現(xiàn),添加相似關鍵詞后,識別準確率從60%上升到90%,非常有效地提高了識別的準確率。極大地豐富了新能源汽車用戶的主觀使用體驗。
語音識別關鍵詞:汽車,低電量運行,省電措施,測距模式。
XY-V17B是一款功能非常強大的智能語音播放模塊,克服了其他語音播放模塊缺乏曲目選擇及控制功能的缺點,集成IO觸發(fā)模式、UART串口模式、ONE_line單總線串口控制、標準MP3模式等功能,更加便于基于單片機的相關汽車電子產品的開發(fā),支持MP3、WAV解碼格式,可通過USB數(shù)據(jù)線連接電腦更新TF卡和U盤內容更改存儲音頻文件。
由于其相比于其他語音播報模塊,XY-V17B具有支持U盤、TF卡存儲容量大、可以通過控制引腳電平選擇不同播放曲目的特點,適用于車載語音播報,所以采用了本模塊作為該系統(tǒng)的語音播報模塊。
XY-V17B共有5種工作模式,分別為標準MP3模式、I/O組合模式、I/O獨立模式、UART串口模式、一線串口模式,可以通過3個配置IO進行選擇。在本系統(tǒng)中選擇使用I/O獨立模式,配置CON1、CON2引腳為高電平,CON3為低電平,將需要播放的曲目存儲在SD卡或U盤中,用IO0-IO7獨立控制8首曲目,IO觸發(fā)指定的曲目,一直循環(huán)播放指定曲目,電平釋放即停止播放。播放中途釋放電平,即刻停止播放(見圖3)。
圖3 XY-V17B外圍模塊、模式選擇及音頻放大電路原理圖
XL1280-D01無線模塊采用的是SEMTECH公司最新的LoRaTM調制技術的無線芯片,此芯片包含多樣的物理層以及多種調制方式,如LORA、FLRC、GFSK。特殊的調制和處理方式使得LORA和FLRC調制的傳輸距離大大增加,且GFSK調制兼容藍牙BLE協(xié)議。出色的低功耗性能、片上DC-DCTime-of-flight使得此芯片功能強大,可用于智能家居、安全系統(tǒng)、定位追蹤、無線測距、穿戴設備、智能手環(huán)與健康管理等。
基于該LORA模塊通信距離可達2-3km及以上且集成了TOF飛行時間測距的功能,可以滿足新能源汽車低電量行駛情景下的測距需求,并且LORA模塊本身就具有低成本、低功耗、抗干擾能力強的優(yōu)點,選擇其作為該系統(tǒng)的測距模塊再合適不過。
(1)使用一個SX1280作為主機,另一個位于充電樁或服務區(qū)的LORA模塊作為從機,由用戶指令觸發(fā)后發(fā)起測距請求,同時主機開啟內部定時器開始定時;
(2)從機收到測距請求后會同步該請求信號,然后把同步完的測距應答信號發(fā)送回主機,通過測量這個應答過程持續(xù)的時間,主機可以算出信號來回的飛行時間,進而得到測距的數(shù)據(jù)。
測距開始時,模塊給目標連續(xù)發(fā)送射頻信號,然后接收從目標返回的信號,這里將發(fā)射端發(fā)出信號和接收到接收端應答信號的時間間隔記為Tt,接收端收到主機發(fā)射的數(shù)據(jù)信號和發(fā)出應答信號的時間間隔記為Tr。信號在這對收發(fā)機之間的單向飛行時間Tf=(Tt-Tr)/2,則兩點間的距離d=c*Tf,其中c表示電磁波傳播速度,見圖4。
圖4 time-of-flight測距法
模塊采用彈簧天線,由于此天線容易受外部線路影響,周圍的金屬物體對其測距結果影響較大,所以實驗選擇在空曠的平地進行,將從機固定于路邊店鋪旁約2m高的平臺上(該店鋪可以在手機導航上查找到),以保持最佳的通訊效果,此位置記為B點,測試人員攜帶著主機和電源徒步行走逐漸拉遠接收節(jié)點B的距離,觀察手機導航當前位置距離B點的距離,每50m做一次測量,一直測到500m,共計10次,分別記錄實際值、平均值、最大值、最小值、誤差值,如表2所示。
表2 模塊無線測距實驗表
通過對測距結果的分析,我們可以得出以下結論:LORA測距在短距離下測量誤差較大約1-2m,隨著測量距離的增加測量誤差逐漸減小,當測量距離達到500m時,誤差只有17-20cm,可以滿足該系統(tǒng)對于測距的精度要求。
系統(tǒng)主程序由語音識別子程序、OLED顯示子程序、LORA1280測距子程序、XY-V17B語音播報子程序構成。
(1)初始化配置(系統(tǒng)時鐘,OLED,I2C,UART,SX1280)。
(2)調用語音識別子程序,設置檢測模式,寫入語音識別指令。
(3)進入WHILE循環(huán),并對所讀指令進行判斷。(4)對應不同指令,控制不同電平觸發(fā)播放不同的MP3曲目。
(5)若識別到測距指令的ID號,則調用SX1280的測距子程序對各網絡節(jié)點進行測距,并在OLED屏上顯示出從車主當前位置到下一個充電站或服務區(qū)的距離。
由圖5可知,在測距操作期間,多個從機和多個主機可以處于通信范圍內。但是,測距操作只能使用一個從機和一個主機。為了幫助從機區(qū)分主機和其他主機,響應范圍內的其他主機,并尋址特定的從機,測距請求包含一個地址字段,從機在測距請求接收時對其進行檢查。
圖5 LORA無線測距流程圖
首先,使用以下命令設置無線電應為測距操作生成的IRQ:
SetDioIrqParams(irqMask、dio1Mask、dio2Mask、dio3Mask)
并發(fā)出以下命令明確指定SX1280在測距操作中的作用:
SetRangingRole(角色),0x01為主機,0x00為從機。
然后,使用以下命令啟動測距過程:
從站:SetRx(周期基準rx,周期計數(shù)rx)
主機方面:SetTx(周期basetx,periodCountTx)來讀取測距結果:
將收音機設置為Xoscilator模式,并在LORA內存中啟用時鐘:
WriteRegister(0x97F,ReadRegister(0x97F)|(1<<1));
接著設置量程類型,讀取量程寄存器:
WriteRegister(0x0924,(ReadRegister(0x0924)&0xCF)|((((resultType)&0x03)<<4));
valLsb=((ReadRegister(0x0961)<<16)|(ReadRegister(0x0962)<<8)|(ReadRegister(0x0963)));
最后,將無線電調回配置模式即可。
3.4.1 設置檢測模式
I2C_ByteWrite(ASR_MODE_ADDR,0)
3.4.2 設置識別語句
3.4.3 添加相似關鍵詞,吸收錯誤語句
3.4.4 設置識別靈敏度
由于新能源汽車從2010年之后才在中國市場逐漸發(fā)展起來,有關新能源汽車充電樁的建設至今還無法像汽車加油站一樣普及全國,這就導致車主想要尋找到充電樁會異常麻煩,特別是在汽車遠程出行時,汽車半路沒電,人生地不熟的情況下,更需要一個貼心的智能小助手來為他們提供解決問題的方案。
人人都有疏忽大意的時候,遺忘是我們最不想面對,又不得不面對的事實,但是機器不會,我們利用機器不會遺忘的特性來提醒我們做好汽車出行前的準備工作。
汽車快要沒電時,人的第一反應往往是靠邊停車,而在停車之后往往會通過手機百度或者向親友求助的方式解決問題,然而這樣只會浪費車主寶貴的時間,我們直接將已有的處理方案存儲在系統(tǒng)內部,系統(tǒng)識別到指令便可直接通過語音播放出來,車主無需自行查找,只需根據(jù)實際情況自行選擇即可,更加方便快捷。
由于缺乏經驗,車主不了解環(huán)境溫度的變化對于新能源汽車續(xù)航里程數(shù)的影響,更不了解如何采取人為措施控制新能源汽車的電量從而提高新能源汽車的續(xù)航里程數(shù)。只要使用了我們的系統(tǒng),用戶無需擔心自己缺乏經驗,更無需自行上網查找,只要發(fā)出語音指令,系統(tǒng)便自動通過語音播報給出相應的省電方案。
區(qū)別于車載系統(tǒng),無需考慮通訊協(xié)議的限制,可以在所有電動汽車上使用。由于該裝置無需和汽車CAN總線相連,只需電源便可工作,故可以作為獨立的電子產品出售,具有廣闊的市場前景。
文章設計了基于新能源汽車低電量下的生活情景,使用無線測距技術,并將智能預防和解決方案融于語音交互系統(tǒng)中,區(qū)別于市場上的現(xiàn)有產品,創(chuàng)新性地為車主提供預防和處理新能源汽車低電量運行下可能遇到的種種問題的解決方案,突破了原有產品需考慮汽車通訊協(xié)議的一致性的局限性,可用于所有的新能源電動汽車,此外還具有低成本、低功耗的優(yōu)點,應用前景廣闊。