摘? 要:文章設(shè)計(jì)了一種基于北斗導(dǎo)航的具有智能化語音播報(bào)和顯示功能的公交車智能語音報(bào)站系統(tǒng),該系統(tǒng)以STM32F103CBT6單片機(jī)作為主控芯片,包括:北斗定位模塊、語音播報(bào)模塊、顯示模塊。其中,北斗定位模塊采用UM220芯片,語音播報(bào)模塊采用ISD4004語音芯片和LM386音頻功率放大器,顯示模塊采用0.96寸的OLED液晶顯示屏。最后,通過對(duì)公交車智能語音報(bào)站系統(tǒng)的測(cè)試仿真和結(jié)果分析,實(shí)現(xiàn)了本系統(tǒng)的語音播報(bào)和顯示功能。
關(guān)鍵詞:STM32;語音播報(bào);OLED顯示;北斗定位技術(shù)
中圖分類號(hào):TP368? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2021)17-0047-04
Abstract: This paper designs an intelligent bus-stop voice announcing system with intelligent voice announcement and display functions based on Beidou navigation. The system uses STM32F103CBT6 single-chip microcomputer as the main control chip, including: Beidou positioning module, voice announcement module, and display module. Among them, the Beidou positioning module uses a UM220 chip, the voice announcement module uses an ISD4004 voice chip and an LM386 audio power amplifier, and the display module uses a 0.96 inch OLED liquid crystal display. Finally, through the test simulation and result analysis of the intelligent bus-stop voice announcing system, the voice announcement and display function of the system is realized.
Keywords: STM32; voice announcement; OLED display; Beidou positioning technology
0? 引? 言
隨著中國(guó)經(jīng)濟(jì)的迅速發(fā)展和城鎮(zhèn)化水平的不斷提高,人們對(duì)美好生活的向往不斷變?yōu)楝F(xiàn)實(shí)。然而,經(jīng)濟(jì)的發(fā)展也帶來了一些問題。就交通這一方面來說,經(jīng)濟(jì)發(fā)展提高了居民收入和人均可支配收入,增加了私家車的購買量。但是,卻導(dǎo)致了嚴(yán)重的交通問題,城市交通面臨的壓力不斷增加。在這一背景下,國(guó)家提出綠色發(fā)展、綠色出行的理念,大力發(fā)展公共交通。公共交通也憑借其載客量大、成本低的優(yōu)點(diǎn),成為人們出行的主要工具之一。因此,本文在響應(yīng)國(guó)家號(hào)召和緩解交通擁堵的前提下,進(jìn)行公交車智能語音報(bào)站系統(tǒng)的設(shè)計(jì)。
1? 系統(tǒng)總體設(shè)計(jì)方案
本設(shè)計(jì)以STM32F103CBT6單片機(jī)為核心,接收BDS(北斗導(dǎo)航系統(tǒng))數(shù)據(jù)并進(jìn)行解析、控制語音播放和液晶顯示。主要分為BDS北斗定位模塊、語音模塊、OLED顯示模塊、按鍵模塊和電源模塊。系統(tǒng)設(shè)計(jì)框圖如圖1所示。
各模塊的功能為:
北斗定位模塊:接收衛(wèi)星的定位數(shù)據(jù),并通過USART串口將處理好的數(shù)據(jù)發(fā)送到STM32F10CBT6芯片。
STM32F10CBT6芯片:處理BDS傳送的信息并與本身存儲(chǔ)的信息進(jìn)行比較、控制語音播放和液晶顯示。
OLED顯示模塊:接收主控芯片的指令并實(shí)時(shí)顯示站點(diǎn)信息、提示語及廣告語等。
語音播報(bào)模塊:執(zhí)行單片機(jī)發(fā)送過來的指令,結(jié)合公交車狀態(tài)進(jìn)行語音提示。
按鍵模塊:音量控制。
電源模塊:轉(zhuǎn)換電壓進(jìn)行供電。
本設(shè)計(jì)主要實(shí)現(xiàn)的功能是公交站點(diǎn)信息的存儲(chǔ),公交車實(shí)時(shí)定位、進(jìn)出站檢測(cè),公交車與站點(diǎn)之間距離的檢測(cè)。首先,以每一個(gè)公交車站點(diǎn)為圓心,劃定一個(gè)半徑為20 m的圓,其次,由BDS定位系統(tǒng)實(shí)時(shí)確定車輛所處位置,并經(jīng)過程序?qū)Ρ溶囕v的實(shí)時(shí)位置,判斷車輛狀態(tài)。最后,檢測(cè)公交車是否進(jìn)入到最近站點(diǎn)的半徑范圍,如果車輛進(jìn)入半徑范圍,則進(jìn)行站點(diǎn)的播報(bào)和顯示。當(dāng)車輛離開該站點(diǎn)的半徑范圍時(shí),播報(bào)并顯示下一站點(diǎn)的信息。其判斷說明如表1所示,示意圖如圖2所示。
2? 系統(tǒng)方案選擇
2.1? 主控芯片的選擇
方案一:STC12C5A60S2單片機(jī)雖然內(nèi)部結(jié)構(gòu)簡(jiǎn)單、價(jià)格低廉,便于操作控制,但是該芯片沒有SPI串行通信接口,雖然能夠通過I/O接口進(jìn)行模擬,但是也在一定程度上增加了設(shè)計(jì)的難度,而且如果所設(shè)計(jì)的系統(tǒng)中需要兩個(gè)SPI的串行通信接口以及其他外設(shè)時(shí),該芯片的接口就不能滿足系統(tǒng)設(shè)計(jì)需求。由此可知,該芯片并不能夠滿足本設(shè)計(jì)需要連接北斗芯片、語音芯片、OLED顯示屏的外設(shè)接口需求,故不予采用。
方案二:STM32F103CBT6芯片具有三個(gè)SPI串行通信接口、七個(gè)定時(shí)器、三十七個(gè)能夠兼容CMOS和TTL的I/O端口,豐富的外設(shè)接口能夠滿足本文所設(shè)計(jì)的公交報(bào)站系統(tǒng)的需要,故選擇STM32F103CBT6單片機(jī)作為本設(shè)計(jì)的主控芯片。
2.2? 北斗導(dǎo)航芯片的選擇
方案一:NEO-6M芯片是一種能夠?qū)崿F(xiàn)高精度定位的定位模塊,能夠通過USART串口連接外設(shè),支持多種速率進(jìn)行工作,但是只能支持GPS(全球定位系統(tǒng))的信號(hào)和頻點(diǎn),不能夠接收BDS信號(hào)和頻點(diǎn),不能夠滿足本設(shè)計(jì)的需求。
方案二:UM220芯片是和芯星通公司生產(chǎn)的定位芯片,能夠兼容BDS和GPS兩個(gè)系統(tǒng),并且具有定位精度高、速度精度高、尺寸小、功耗低的優(yōu)點(diǎn),能夠很好地滿足公交車智能語音報(bào)站系統(tǒng)的設(shè)計(jì)需求。
綜合考慮,UM220芯片能夠進(jìn)行BDS和GPS雙系統(tǒng)的定位導(dǎo)航,更能夠適合本設(shè)計(jì)的需要,故選擇此芯片作為定位芯片。
2.3? 語音播報(bào)芯片的選擇
方案一:ISD4004語音芯片內(nèi)部具有音頻功率放大器、濾波器和振蕩器,能夠減少噪聲等干擾因素,使傳播的語音信號(hào)更加準(zhǔn)確。通過該芯片的工作時(shí)序可以看出數(shù)據(jù)的傳送從下降沿開始,操作指令的執(zhí)行從上升沿開始。
方案二:ISD2560語音芯片同ISD4004芯片一樣,具有音質(zhì)好、抗干擾能力強(qiáng)、尋址能力高的優(yōu)點(diǎn),但是該芯片沒有SPI串行接口只能夠采用并行通信的方式,不滿足本設(shè)計(jì)采用串行通信方式的需要。
綜上所述,本設(shè)計(jì)擬采用SPI串行通信實(shí)現(xiàn)STM32單片機(jī)對(duì)語音芯片的控制,所以選用ISD4004語音芯片而非ISD2560芯片。
2.4? 顯示模塊的選擇
方案一:LCD顯示屏不能夠依靠自身實(shí)現(xiàn)發(fā)光,必須有背光模塊才可以。而且,由于LCD顯示屏內(nèi)置液晶層,所以其厚度要大于OLED液晶屏,并且,LCD顯示屏的可視角度小、響應(yīng)時(shí)間長(zhǎng)、亮度的均勻性差,對(duì)比度較差,影像清晰度低。
方案二:與LCD 顯示屏相比較,OLED顯示屏具有較高的亮度、豐富的色彩,輕薄的厚度、快捷的反應(yīng)速度。并且OLED顯示屏的構(gòu)造簡(jiǎn)單、對(duì)比度大,能夠?qū)崿F(xiàn)自發(fā)光,所需要的工作電壓更低,更加節(jié)能。再者,OLED具有廣闊的視角能夠在極大的范圍內(nèi)觀看,且畫面不失真。
方案確立:綜合考慮,OLED顯示屏具有較高的性價(jià)比,其內(nèi)部的各個(gè)像素點(diǎn)都是獨(dú)立工作的,功耗小、響應(yīng)時(shí)間短,快速滑動(dòng)畫面時(shí)不會(huì)產(chǎn)生畫面殘留和拖影,具有良好的視覺觀感。而且本設(shè)計(jì)主要是用于公交車內(nèi)顯示。采用OLED顯示屏可視角度大,響應(yīng)時(shí)間短,能夠使乘客清晰地看見顯示屏上顯示的信息。
3? 硬件電路與軟件設(shè)計(jì)
3.1? 硬件電路設(shè)計(jì)
本語音控制系統(tǒng)核心控制器采用STM32F103CBT6單片機(jī),該單片機(jī)運(yùn)算力強(qiáng),能夠在71 MHZ的頻率下進(jìn)行工作,而且該芯片具有豐富的外設(shè)接口,兩個(gè)I2C、三個(gè)SPI以及五個(gè)USART串口,能夠滿足本系統(tǒng)設(shè)計(jì)中語音模塊、顯示模塊以及北斗定位模塊的接口需要。并且STM32F103CBT6內(nèi)部的SPI串行通信模塊,可以進(jìn)行三線全雙工同步傳輸、兩線半雙工同步傳輸或兩線簡(jiǎn)單同步傳輸,傳輸?shù)臄?shù)據(jù)長(zhǎng)度可以配置為4或16位。另外,SPI模塊還具有可編程的極性、相位及高低位可控,可以滿足多種通信需求。并且還支持I2S通信協(xié)議,可以用于音頻設(shè)備之間的數(shù)據(jù)傳輸。
根據(jù)設(shè)計(jì)要求,本系統(tǒng)中通過USART接口實(shí)現(xiàn)北斗定位模塊與STM32單片機(jī)的通信,將UM220的TXD2和RXD2引腳與STM32F103CBT6的USART2_TX和USART2_RX端(PA2和PA3)相連接即可。當(dāng)公交車智能語音報(bào)站系統(tǒng)處于工作狀態(tài)時(shí),UM220芯片與主控芯片STM32進(jìn)行通信交流,STM32單片機(jī)通過TXD引腳向BDS模塊發(fā)送指令,BDS模塊通過RXD引腳,將自己采集到的位置數(shù)據(jù)等信息發(fā)送給STM32F103CBT6單片機(jī),單片機(jī)通過串口中斷的方式連接,實(shí)時(shí)輸出定位數(shù)據(jù),然后再由主控芯片對(duì)接收到的信息進(jìn)行加工處理,提取有用信息,從而實(shí)現(xiàn)對(duì)車輛的實(shí)時(shí)定位。
此外,STM32F103CBT6內(nèi)置128 kB的flash閃存,掉電后仍能夠?qū)崿F(xiàn)信息的存儲(chǔ),而且,公交車的行駛線路是固定的,因此我們可以用內(nèi)置的flash閃存模擬EEPROM,將固定的站點(diǎn)信息(緯度、經(jīng)度等)存儲(chǔ)在里面。由于BDS接收信息的最低位具有不穩(wěn)定的特點(diǎn),因此BDS接收的經(jīng)緯度數(shù)據(jù)只需要達(dá)到1/1 000即可。根據(jù)經(jīng)緯度與距離之間的關(guān)系,我們?cè)O(shè)A、B兩點(diǎn)的位置為(LonA,LatA)、(LonB,LatB)以0°經(jīng)線為基準(zhǔn),東經(jīng)取經(jīng)度的正值,北緯取90°減去緯度值。則處理后A、B兩點(diǎn)的坐標(biāo)分別為(MLonA,MLatA)、(MLonB,MLatB)。此時(shí)可以根據(jù)公式C=sin(MLatA)*sin(MLatB)和D=R×Across(C)*Pi/80即可實(shí)現(xiàn)經(jīng)緯度與距離的換算。經(jīng)過地圖查找發(fā)現(xiàn),我國(guó)陸地經(jīng)緯度的最大值分別為東經(jīng)136度和北緯60度,根據(jù)BDS接收信息的最低位允許達(dá)到1/1 000的誤差以及經(jīng)緯度的單位換算規(guī)律計(jì)算可知,我國(guó)經(jīng)度和緯度的最大值分別為:136×60×1 000=8 160 000和60×60×1 000=3 600 000。將經(jīng)度和緯度信息轉(zhuǎn)化為二進(jìn)制進(jìn)行存儲(chǔ),分別只需要4個(gè)和3個(gè)字節(jié)。由此可知,預(yù)存一幀BDS數(shù)據(jù)只需要7個(gè)字節(jié)就能夠滿足需要,故內(nèi)部存儲(chǔ)Flash能夠滿足本設(shè)計(jì)的存儲(chǔ)需求。
3.2? 軟件設(shè)計(jì)
系統(tǒng)軟件整體流程圖如圖3所示。系統(tǒng)開啟后,先設(shè)置站點(diǎn)與路線,然后讀取BDS信息,對(duì)信息進(jìn)行解讀,然后單片機(jī)會(huì)對(duì)信息進(jìn)行檢測(cè),判斷是否到站,是的話對(duì)比BDS數(shù)據(jù),然后進(jìn)行語音播報(bào)及站點(diǎn)顯示;否則的話繼續(xù)進(jìn)行數(shù)據(jù)更新再次進(jìn)行檢測(cè)。
其中,功能函數(shù):定位模塊的軟件部分程序設(shè)計(jì)為:
void Auto_Play()
{
unsigned int a,b; uchar i;
if(Flag_BDS_OK == 1 && RX_Buffer[4] == 'L' && RX_Buffer[6] == ',' && RX_Buffer[11] == '.')//確定是否收到"GNRMC或者GNGGA"的幀數(shù)據(jù)
{ES=0;//關(guān)串口中斷
for(i=0; i < 28; i++){
RX_Buffer_D[i] = RX_Buffer[i+6]; get_real_station();
if((a <= 1000) && (b <= 1000))//經(jīng)驗(yàn)測(cè)試,同一調(diào)試地點(diǎn),多次測(cè)得最大誤差n:3064 e:3640{
onemore_flag++;
if(onemore_flag == 2){
onemore_flag = 0;
if(Up_Down_Flag == 0){
switch(station_num){
case 0:
if(!station_1_flag){
station_1_flag = 1;
dispString(2,0,1," 一號(hào)站");
dispString(3,0,1,"=>二號(hào)站");
dispString(4,0,1,"=>三號(hào)站");
Flash_Lcd();
ISDPlay(0x45);
}
4? 實(shí)驗(yàn)測(cè)試與分析
4.1? 定位仿真及分析
本模塊的作用是將接收到的定位信息經(jīng)過處理發(fā)送到主控芯片,但是為了能直觀地看到定位信息處理后的結(jié)果,將本模塊單獨(dú)進(jìn)行了一次仿真。
在仿真過程中,選取三個(gè)模擬站點(diǎn),各進(jìn)行三次測(cè)試,其結(jié)果如表1、表2、表3所示,其中:N表示緯度,E表示經(jīng)度。本次測(cè)試通過實(shí)際值和設(shè)定數(shù)值之間的計(jì)算得出,本次定位功能的緯度誤差在0到0.04之間,經(jīng)度誤差在0到0.05之間,在誤差允許的精度范圍內(nèi),并且在測(cè)試過程中經(jīng)過不斷地調(diào)整,誤差逐漸減小,符合要求。
4.2? OLED顯示仿真
本模塊在進(jìn)行仿真時(shí)主要操作為:
(1)通過程序的實(shí)現(xiàn)對(duì)OLED顯示屏的清屏和初始化。
(2)運(yùn)行程序接收主控芯片發(fā)送的信息實(shí)現(xiàn)站點(diǎn)的滾動(dòng)顯示、公交車名稱、時(shí)間閃爍,其結(jié)果如圖4所示。
從以上測(cè)試數(shù)據(jù)可以看出,本系統(tǒng)能夠?qū)崿F(xiàn)設(shè)計(jì)要求,實(shí)現(xiàn)自動(dòng)報(bào)站、OLED顯示等功能。此外,除定位和顯示功能外,本系統(tǒng)能夠通過蜂鳴器等代替仿真語音播報(bào),通過連接虛擬示波器可以看到其語音提示的結(jié)果。并且通過對(duì)ASM1117穩(wěn)壓模塊的仿真分析得出:本系統(tǒng)能夠?qū)崿F(xiàn)5 V和3.3 V電壓的供電需求。
5? 結(jié)? 論
本設(shè)計(jì)通過對(duì)硬件和軟件兩部分進(jìn)行設(shè)計(jì),運(yùn)用北斗定位、語音播報(bào)和OLED顯示技術(shù)完成了基于北斗定位的STM32的公交車智能語音報(bào)站系統(tǒng)的設(shè)計(jì),介紹了本設(shè)計(jì)中用到的主要硬件的原理、功能,分析了北斗模塊、語音模塊、顯示模塊的軟件設(shè)計(jì)流程,基本上實(shí)現(xiàn)了公交車智能語音報(bào)站系統(tǒng)的自動(dòng)定位、語音播報(bào)和OLED顯示的功能,完成了設(shè)計(jì)的任務(wù)要求。本文采用我國(guó)自主研發(fā)的北斗導(dǎo)航系統(tǒng)進(jìn)行設(shè)計(jì),且通過創(chuàng)新類的網(wǎng)站及電視節(jié)目中了解到該定位系統(tǒng)目前只是在軍事方面進(jìn)行應(yīng)用,在民用方面尚未普及,只是應(yīng)用在無人駕駛汽車技術(shù)的研發(fā)上,所以本文設(shè)計(jì)的公交報(bào)站系統(tǒng)具有良好的創(chuàng)新性,在未來具有良好的發(fā)展前景。
參考文獻(xiàn):
[1] 陸俊驊.公交自動(dòng)報(bào)站系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D].蘇州:蘇州大學(xué),2018.
[2] 方杰,胡春雷.基于51單片機(jī)的可視可聽公交車自動(dòng)報(bào)站系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].電腦知識(shí)與技術(shù),2019,15(2):221-223.
[3] 方超.基于北斗的無人船艇的數(shù)據(jù)傳輸系統(tǒng)研究 [D].廈門:集美大學(xué),2017.
[4] 魏芬.基于北斗定位的智能公交車載系統(tǒng)的設(shè)計(jì) [J].信息通信,2014(6):81-82.
[5] 陳政,虞麗娟,陳成明.基于北斗衛(wèi)星導(dǎo)航系統(tǒng)的物流動(dòng)態(tài)追溯系統(tǒng)設(shè)計(jì)與應(yīng)用 [J].全球定位系統(tǒng),2017,42(3):82-86.
[6] 胡小敏.基于RFID技術(shù)的智能公交站牌設(shè)計(jì) [J].自動(dòng)化技術(shù)與應(yīng)用,2021,40(5):79-82.
[7] 魏芬,戴麗佼,李紅霞.基于proteus的單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì) [M].北京:清華大學(xué)出版社,2018:109-120.
[8] 雷永鋒,孫莉莉,劉偉.基于GPS的公交車智能報(bào)站系統(tǒng)設(shè)計(jì) [J].機(jī)械與電子,2020,38(3):19-22+26.
[9] 戈皓月,張梁山,姜文虎,等.基于單片機(jī)的公交車智能報(bào)站系統(tǒng)設(shè)計(jì) [J].電子制作,2019(13):12-14.
作者簡(jiǎn)介:趙興娜(1983—),女,漢族,山東德州人,副教授,碩士,研究方向:電子與通信技術(shù)、智能控制。