陶睿杰,章征宇,陳 蕾
(蘇州大學電子信息學院,江蘇蘇州215006)
智能駕駛技術(shù)作為當今科技研究的創(chuàng)新點和熱點所在,其具有感知周邊環(huán)境,自動設(shè)計行車路線及控制汽車行駛等多種技術(shù),具有安全穩(wěn)定,方便快捷的特點,在此分支下有多種智能駕駛的方案。本系統(tǒng)設(shè)計的方案是以語音控制系統(tǒng)為核心實現(xiàn)聲控智能駕駛,而作為該系統(tǒng)的重點,語音識別技術(shù)同樣為當今研究的熱點所在,可以在人機交互環(huán)節(jié)有較為廣泛的運用[1-4],本系統(tǒng)將語音識別技術(shù)應(yīng)用于汽車駕駛之中,并以智能小車為核心設(shè)計制作相應(yīng)模型,以實驗的方式來實現(xiàn)其功能,從而提出一個較為完整新穎的智能駕駛方案[5-7]。
本項目將小車運行部分和小車控制部分分開,以智能小車為模型展示全系統(tǒng):以FPGA芯片XC7A35T-1CPG236C作為小車運行部分主控,該部分安裝于智能小車上;嵌入式芯片STM32F103RCT6作為控制部分主控,該部分作為手持遙控設(shè)備。將語音識別,無線通信等多部分進行串聯(lián),以實現(xiàn)功能。用戶可以通過選擇手動駕駛或語音駕駛以改變駕駛模式,在語音駕駛模式下,通過語音識別對小車發(fā)出行進指令,同時在建立模型時完成倒車雷達,自動避障,光控車燈等智能化功能,從而使設(shè)計具有系統(tǒng)化,完整化,實用化的功能特點,具有較為廣泛的運用前景[8]。
本系統(tǒng)致力于以實驗的方式通過智能小車實現(xiàn)對應(yīng)功能,以較為明晰地展示整個系統(tǒng)的工作方式,對于語音識別部分,目前常用的方式是利用STM32實現(xiàn)對它的控制,在這方面已有較為詳盡的研究;而本系統(tǒng)的重點為對目前研究較少的FPGA控制方式進行實驗制作,利用其并行高速的特點實現(xiàn)對語音識別系統(tǒng)的控制,系統(tǒng)各硬件如下。
本系統(tǒng)小車運行部分主控為Basys3開發(fā)板,該開發(fā)板采用FPGA芯片XC7A35T-1CPG236C作為主控,內(nèi)部晶振最高可達100 MHz,可較為便捷的以其I/O口產(chǎn)生PWM波控制小車電機,并且利用FPGA的并行高速工作的特點可以直接控制不帶fifo(frist in frist out)的攝像頭拍攝圖像。
而小車控制部分的主控采用的是STM32F 103RCT6嵌入式芯片,該芯片工作頻率最高達72 MHz,內(nèi)置256 kB閃存和48 kB的SRAM,具有豐富的I/O口及內(nèi)置12位A/D模塊,可控制語音識別模塊和遙感控制模塊。
本項目采用的是ICROUTE公司在國內(nèi)運作的一款基于SPI通信的語音識別芯片LD3320,該芯片由語音識別處理器與外部硬件電路集成而成,具有語音識別和mp3播放兩種功能,內(nèi)部有數(shù)百個寄存器,工作時通過外部MCU配置寄存器實現(xiàn)對應(yīng)功能,其內(nèi)部電路邏輯圖如圖1所示。
圖1 LD3320內(nèi)部電路邏輯圖
本芯片在使用過程中不需要外接輔助芯片,即可實現(xiàn)語音識別功能。并且,識別指令的內(nèi)容可由用戶任意自主編輯,可同時存放最多50條指令信息。為非特定人聲識別,無需提前錄音,其內(nèi)部電路邏輯圖如圖1所示[9-11]。
nRF24L01是一款由NORDIC公司生產(chǎn)的工作在2.4 GHz到2.5 GHz的ISM頻段的無線收發(fā)器芯片,芯片內(nèi)部包括了頻率發(fā)生器、晶體振蕩器、功率放大器、調(diào)制器、增強型“SchockBurst”模式控制器和解調(diào)器等模塊??赏ㄟ^SPI通信方式傳輸數(shù)據(jù),工作有效距離較小,具有成本低,功耗低,工作穩(wěn)定的特點[12-15]。
本系統(tǒng)設(shè)計了一種基于FPGA的圖像采集、顯示系統(tǒng),圖像傳感器部分使用Omni Vision公司生產(chǎn)的CMOS數(shù)字圖像傳感器OV7670,顯示部分使用2.8寸的TFT LCD,使用FPGA對其進行初始化以及數(shù)據(jù)轉(zhuǎn)換傳輸,將OV7670采集到的圖像最終在液晶屏上顯示出來。采用FPAG控制的系統(tǒng)相比與常用的單片機和STM32控制的系統(tǒng),具有傳輸速度快,幀數(shù)高,穩(wěn)定性強等優(yōu)點[16-17]。
其余硬件部分包括:遙感模塊,紅外避障模塊,光敏電阻,L298N電機,高亮LED,繼電器,智能四輪小車,LM2596S電壓穩(wěn)壓器及12 V鋰電池。本系統(tǒng)采用兩個遙感模塊作為手動駕駛狀態(tài)下的工作方式,由STM32控制;紅外模塊用于實現(xiàn)自動避障;光敏電阻、高亮LED及繼電器用于實現(xiàn)光控車燈;12 V可充鋰電池和LM2596S降壓模塊用于智能小車的供電。
本系統(tǒng)整體分為兩個部分:小車運行部分、小車控制部分,整體框圖如圖2所示。本系統(tǒng)在實物制作過程中設(shè)計了兩套方案:
方案一:用戶通過手持設(shè)備由按鍵選擇工作模式為手動控制或語音控制;在手動控制模式下,用戶通過兩個遙感模塊產(chǎn)生兩個模擬信號,通過STM32內(nèi)部ADC轉(zhuǎn)化為兩路數(shù)字量表示控制小車左右和前后的移動;而在聲控模式下,用戶通過對語音識別模塊發(fā)送事先設(shè)定的指令(如“前進,后退,加速,減速,左轉(zhuǎn),右轉(zhuǎn)等”),通過STM32控制語音識別模塊識別語音信息并轉(zhuǎn)化為指令碼。接下來當有控制信號輸入時,手持設(shè)備通過nRF24L01發(fā)送該信息,小車運行系統(tǒng)由FPGA控制,其控制nRF24L01接收發(fā)送的信號,F(xiàn)PGA根據(jù)收到的指令碼完成相應(yīng)的指令。
圖2 智能系統(tǒng)總體結(jié)構(gòu)圖
方案二:由FPGA開發(fā)板控制所有部分,XC7A35T作為主控芯片置于小車上,用FPGA控制LD3320進行語音識別,直接對小車發(fā)出語音控制信號(內(nèi)容同方案一),由FPGA接收并識別發(fā)出的信號從而控制小車電機完成相應(yīng)的動作。
另外,為達到更高的智能化,系統(tǒng)化效果,本設(shè)計在智能小車后端安裝OV7670攝像頭,通過FPGA控制,將拍攝到的畫面實時在液晶屏上顯示作為對倒車雷達功能的實現(xiàn);另外該系統(tǒng)還加入了紅外避障模塊和蜂鳴器達到自動避障的效果,當小車遇到障礙物時自動停車報警;加入了光敏電阻控制高亮LED達到光控車燈的效果(外界光較強時關(guān)閉車燈,夜晚或進入隧道時開啟車燈),用12 V鋰電池通過降壓給電機和FPGA供電。
該系統(tǒng)軟件思路與其硬件部分結(jié)構(gòu)(圖1)相對應(yīng),本文將分模塊介紹各軟件部分的工作原理。
軟件部分的重點內(nèi)容為LD3320語音控制部分,該芯片資料多為基于STM32和51單片機的識別程序,在該方面已有較為廣泛的研究[5-19]。因此本項目中將著重討論方案二中的編程方式,以利用FPGA并行高速的特點控制語音識別模塊工作。該設(shè)計中通過對芯片的SPI時序,寄存器配置方式以及工作模式進行了細致研究后,成功實現(xiàn)了對LD3320的配置和操控,設(shè)計中以FPGA開發(fā)板Basys3作為主機,LD3320作為從機,實現(xiàn)了語音識別功能,這一過程中所要用到的部分主要寄存器及對應(yīng)功能如表1所示[18-19]。
表1 LD3320主要寄存器及對應(yīng)功能
LD3320工作方式主要有兩種,中斷觸發(fā)方式以及查詢方式[20-21],考慮到FPGA的并行特點,我們選用了查詢方式控制語音識別模塊,達到了較為穩(wěn)定的識別效率和速度,其方法如下:
1)系統(tǒng)初始化,包括配置時鐘,設(shè)定工作模式,重啟LD3320等;
2)添加識別列表,將需要識別的內(nèi)容以拼音的方式寫入寄存器中,該部分流程圖如圖3(b)所示;
3)打開自動語音識別(Automatic Speech Recognition,ASR),設(shè)置識別靈敏度及響應(yīng)時間等參數(shù);
4)當芯片檢測到聲音時,寄存器BA中的值就會發(fā)生變化,以查詢模式查詢寄存器BA中的值,當寄存器BA中的值為1到4時(即有對應(yīng)個正確的備選答案),代表識別到有效數(shù)據(jù),此時讀取C5寄存器中的數(shù)據(jù),即可得到對應(yīng)的最可能正確的指令編碼,語音識別系統(tǒng)總流程圖如圖3(a)所示。
圖3 LD3320軟件流程圖
OV7670攝像頭主要分為兩種,配備fifo的攝像頭與不配備fifo的攝像頭,配備fifo的攝像頭主要利用fifo來解決低速率單片機傳輸速度較慢的缺點,從而提高傳輸?shù)男屎唾|(zhì)量,但價格較為昂貴;而不配備fifo的攝像頭則對控制器的速度有較高要求,考慮到本系統(tǒng)主控為較為高速的頻率為100 MHz的FPGA并以及成本問題,我們采用了不配備fifo的攝像頭,輸出采用QVGA,RGB565格式,以便適應(yīng)顯示用TFT LCD,其通過SCCB協(xié)議與控制器進行通信,進行內(nèi)部寄存器配置以確定工作參數(shù),隨后通過8位并行數(shù)據(jù)傳輸口進行數(shù)據(jù)的傳輸[22-23]。
圖像采集到液晶屏部分軟件代碼采取的是間接采集的辦法,將攝像頭輸出的數(shù)據(jù)直接送到顯示屏進行顯示,而數(shù)據(jù)本身并不會通過MCU主控制器,對于控制器而言屬于間接采集,正因為如此,省去了儲存再發(fā)送的過程,整個系統(tǒng)可以達到較高的幀速。軟件部分框圖如圖4所示,該系統(tǒng)采用FPGA中的自頂向下的方法,將整體功能分為多個模塊設(shè)計,主要包括:分頻模塊,SCCB讀寫模塊,OV7670初始化模塊,TFT LCD初始化模塊,數(shù)據(jù)接收、轉(zhuǎn)換、輸出模塊。
圖4 倒車雷達系統(tǒng)軟件框圖
nRF24L01采用SPI通信方式,軟件流程如下:
1)系統(tǒng)初始化nRF24L01后檢查其是否在位;
2)在主函數(shù)中配置模塊為接收模式或發(fā)送模式;
3)若在發(fā)送模式中,系統(tǒng)間隔一定時間發(fā)送對應(yīng)的編碼,若接收端收到應(yīng)答,則說明發(fā)送成功有效;若在接收模式下,mcu查詢模塊寄存器07的值判斷是否收到信息,若收到,mcu讀取寄存器61的值即為收到的結(jié)果,根據(jù)接收到的數(shù)據(jù)控制智能小車執(zhí)行對應(yīng)指令。
所要用到的部分主要寄存器及對應(yīng)功能如表2所示。
表2 nRF24L01主要寄存器及對應(yīng)功能
對于遙感控制模塊,stm32接收兩個遙感手柄模塊產(chǎn)生的兩個模擬量并通過內(nèi)部12位AD轉(zhuǎn)化為數(shù)字量,當對應(yīng)信號幅度大于設(shè)定的閾值時,及視為完成相應(yīng)的前進,后退,左轉(zhuǎn),右轉(zhuǎn)的動作(當兩遙感同時有信號輸入時優(yōu)先發(fā)送前后遙感數(shù)據(jù)),從而產(chǎn)生對應(yīng)的指令。
全系統(tǒng)實物圖如圖5所示。
圖5 智能小車系統(tǒng)實物圖
測試過程中給語音識別模塊寫入的初始列表內(nèi)容為“開車,左轉(zhuǎn),右轉(zhuǎn),倒車,停車”,系統(tǒng)在不同的識別距離內(nèi)對各指令在相同環(huán)境下測試100次,測試結(jié)果如表3所示。
表3 語音識別測試結(jié)果
考慮到實際應(yīng)用時將語音識別模塊作為手持設(shè)備測試,此時工作距離約為20~50 cm左右,經(jīng)測試在20 cm處綜合識別正確率為92.2%,50 cm處為87.0%,且實際車內(nèi)較為安靜,噪音應(yīng)比測試時小(考慮到測試時的車輪噪音),且實際運用中后期可加入去噪算法[24-25]。因此本系統(tǒng)工作較為可靠;實際作品中液晶屏幕傳輸?shù)玫降漠嬅妫伾枬M,無明顯失真與抖動,實時顯示無延時或卡殼,同時該系統(tǒng)完成了光控車燈和避障報警的功能。各部分連接處用熱熔膠固定,各模塊采用銅柱固定在小車模塊上,保證了系統(tǒng)的機械穩(wěn)定性。
本系統(tǒng)以語音識別系統(tǒng)為基礎(chǔ)設(shè)計了一較為完善的智能駕駛小車的方案,并通過實驗的方式制作完成并測試成功,以此證明了設(shè)想的可實施性和有效性。相信隨著語音識別技術(shù)的不斷發(fā)展和相應(yīng)成本的不斷減少,各種智能科技對語音識別技術(shù)的需求性也會隨之增加,類似本系統(tǒng)介紹的智能駕駛技術(shù)等許多的智能科技必定會在未來得到更加廣泛的研究與應(yīng)用。
參考文獻:
[1]Chigier B.Automatic speech recognition:US,US5638487[P].1997.
[2]譚保華,熊健民,劉幺和.語音識別技術(shù)概述[J].鄖陽師范高等??茖W校學報,2004,24(6):266.
[3]陳勇,李晶皎,石鑫,等.基于FPGA的說話人識別系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2012,38(11):16-18.
[4]于俊婷,劉伍穎,易綿竹,等.國內(nèi)語音識別研究綜述[J].計算機光盤軟件與應(yīng)用,2014(10):76-78.
[5]金鑫,田犇,闕大順.基于LD3320的語音控制系統(tǒng)設(shè)計實現(xiàn)[J].電腦與信息技術(shù),2011,19(6):22-25.
[6]陳致遠,朱葉承,周卓泉,等.一種基于STM32的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(9):138-140.
[7]Krishna Y B,Nagendram S.ZIGBEE based voice control system for smart home[J].International Journal of Computer Technology&Applications,2012,3(1):163-168.
[8]謝檬,郭霞.智能小車控制系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2016,35(13):110-112.
[9]何侃,田亞清,李強,等.基于LD3320的語音識別智能垃圾桶設(shè)計[J].國外電子測量技術(shù),2015,34(6):85-88.
[10]IC.Route.LD332X數(shù)據(jù)手冊[EB/OL].[2010-9-11].http://www.icroute.com/doc/LD3320數(shù)據(jù)手冊.pdf.
[11]姜杰文,姜彥吉,邴曉環(huán),等.基于LD3320的非特定人識別聲控燈系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2015,38,442(11):27-30.
[12]王濤.基于nRF24L01的2.4GHz無線通信系統(tǒng)設(shè)計[J].無線電通信技術(shù),2011,37(3):4-7.
[13]劉志平,趙國良.基于nRF24L01的近距離無線數(shù)據(jù)傳輸[J].應(yīng)用科技,2008,35(3):55-58.
[14]胡慧.基于STM32無線數(shù)據(jù)采集單元的設(shè)計[J].電子設(shè)計工程,2016,24(18):97-100.
[15]韋積慧.基于nRF24L01的無線網(wǎng)絡(luò)設(shè)計與實現(xiàn)[D].長春:吉林大學,2012.
[16]張玉杰,陳志磊.基于CMOS圖像傳感器的亮度測量系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2016,42(1):48-50,57.
[17]張衛(wèi)華,馬孝義.基于STM32的灌區(qū)圖像采集終端的研究[J].農(nóng)機化研究,2013(4):191-194.
[18]蘇寶林.基于AVR單片機的語音識別系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(11):136-138.
[19]IC.Route.LD332X開發(fā)手冊[EB/OL].[2011-10-13].http://www.icroute.com/doc/LD3320開發(fā)手冊.pdf.
[20]陳喜春.基于LD3320語音識別專用芯片實現(xiàn)的語音控制[J].電子技術(shù),2011,38(11):20-21.
[21]付蔚,唐鵬光,李倩.智能家居語音控制系統(tǒng)的設(shè)計[J].自動化儀表,2014,35(1):46-50.
[22]楊帆,張皓,馬新文,等.基于FPGA的圖像處理系統(tǒng)[J].華中科技大學學報:自然科學版,2015,43(2):119-123.
[23]Teixidó M,F(xiàn)ont D,Pallejà T,et al.An Embedded Real-Time red peach detection system based on an OV7670 camera,ARM Cortex-M4 processor and 3D Look-Up tables[J].Sensors,2012,12(10):14129-14143.
[24]Manikandan J,Venkataramani B.Design of a real time automatic speech recognition system using modified one against all SVM classifier[J].Microprocessors&Microsystems,2011,35(6):568-578.
[25]韋曉東,朱杰,胡光銳.汽車噪聲中自動語音的識別技術(shù)[J].上海交通大學學報,1998(10):10-13.