毕业论文-基于STM32的公交车语音报站系统设计.docx
- 文档编号:143379
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:32
- 大小:279.42KB
毕业论文-基于STM32的公交车语音报站系统设计.docx
《毕业论文-基于STM32的公交车语音报站系统设计.docx》由会员分享,可在线阅读,更多相关《毕业论文-基于STM32的公交车语音报站系统设计.docx(32页珍藏版)》请在冰点文库上搜索。
应用技术学院
本 科 毕 业 论 文
题 目:
基于ARM的
年 级:
专 业:
班 号:
学 号:
学生姓名:
指导教师:
职 称:
论文提交日期:
年 月 日
目 录
摘 要 3
Abstract 3
前言 3
第一章总体设计 4
1.1系统概述 4
1.2系统设计 4
第二章硬件模块介绍 5
2.1控制电路设计模块 5
2.1.1主芯片介绍 5
2.1.2控制电路设计 5
2.2车站识别电路设计模块 6
2.2.1GPS硬件结构 6
2.2.2GPS设计 7
2.3语音播报电路设计模块 8
2.4显示电路设计模块 8
2.4.1串口显示介绍 8
2.4.2串口屏原理 9
2.5按键电路设计模块 9
第三章系统软件设计 9
3.1主程序 9
3.2GPS数据解析程序 10
3.3串口触摸屏驱动程序 15
3.4语音合成驱动程序 16
3.5按键程序 18
第四章测试分析 20
总结与展望 20
参考文献 20
致 谢 20
摘 要
随着国民经济的不断发展和城市人口的不断增长,城市中的公交车日益凸显出了其特有的优势:
方便、快捷、价格低廉、运载量大、能耗低、低污染,因此公交车逐渐成为了广大人民出行首选的交通工具。
近些年来手动按键报站方式仍然是公交车上比较普遍采用的报站方式,但其报站不准确,并且报站时需要由驾驶员进行手动操作,这给行驶中的车辆带来了一定的安全隐患。
现阶段虽然国内已经有些大中城市的公交车上已经采用了基于GPS定位系统的自动报站方式,但其昂贵的成本,目前难以实现普及。
本设计主要目的是针对目前公交车常见报站方式的主要缺陷,探索设计出一种物美价廉的公交报站器。
本文介绍一种基于GPS模块和STM32单片机设计的自动语音报站系统。
利用STM32F103C8T6串行口通信接收GPS模块输出的经纬度信息,通过对比存储经、纬度数据和相应的站点名字。
确认公交车是否进入设定站台范围内,以达到自动报站的目的;再设计的过程中给出硬件电路的设计方案、主要软件流程图、数据处理及其程序设计的方法。
本设计解决了以住公交车报站系统人工操作不便、误报站多、故障时不报站等问题。
关键词:
公交语音报站、GPS、STM32、单片机
Abstract
Withthecontinuousdevelopmentofthenationaleconomyandthecontinuousgrowthofthecitypopulation,thecitybusisincreasinglyprotrudingshowsitsuniqueadvantages:
convenient,fast,lowcost,highcarryingcapacity,lowenergyconsumption,lowpollution,sothebusgraduallybecomethemajorityofpeopletravelthepreferredmeansoftransport.Inrecentyears,themanualbuttonstationmodeisstillmorecommonlyusedinthebusstation,butitsnewspaperstationisnotaccurate,andthestationisrequiredtooperatemanually,whichbringsacertainsecurityriskstothevehicle.AlthoughtherearealreadysomelargeandmediumcitiesinthedomesticbushasbeenusedbasedontheGPSpositioningsystemtoautomaticallystopway,butitsexpensivecost,isdifficulttoachieveuniversal.Themainpurposeofthisdesignistodesignakindofcheapandgoodqualitypublictransportationstation,whichisaimedatthemaindefectsofthebusstation.
ThispaperintroducesanautomaticspeechsystembasedonGPS
moduleandSTM32MCU.STM32F103C8T6serialportcommunicationtoreceivetheoutputoftheGPSmodulelatitudeandlongitudeinformation,throughthecomparisonofstorage,latitudedataandthecorrespondingsitename.Confirmwhetherthebusenteredtheplatformtoachievethepurposeofautomaticreportingstation.Thedesignofhardwarecircuit,themainsoftwareflowchart,dataprocessingandprogramdesignmethodaregivenintheprocessofdesign.Thisdesignsolvestheproblemoftheinconvenienceofmanualoperation,thefalsealarmstationandthestationofthefaultinthestationsystem.
Keywords:
PublicTransportationVoiceStation,GPS,STM32,Microcontrollers
WrittenbyZhuBiweiSupervisedbyPengJingyu
前言
随着我国国民经济快速增长,人民生活水平不断提高,工业化、城镇化、机动化进程深入推进,公交车因其方便、快捷、价格低廉、运载量大、能耗低、低污染等特点逐渐成为了广大人民出行首选的交通工具。
近些年来手动按键报站方式仍然是公交车上比较普遍采用的报站方式,但其报站不准确,并且报站时需要由驾驶员进行手动操作,这给行驶中的车辆带来了一定的安全隐患。
现阶段虽然国内已经有些大中城市的公交车上已经采用了基于GPS定位系统的自动报站方式,但其昂贵的成本,目前难以实现普及。
针对目前公交车常见报站方式的主要缺陷,本设计探索设计出一种运用GPS卫星定位与语音合成技术相结合的公交报站器。
目前,国内GPS语音自动报站系统处于试验阶段,仅有广州、青岛等几个城市有几条试验线路采用GPS语音自动报站技术。
第一章总体设计
1.1系统概述
该系统采用了更先进的卫星定位技术和语音合成技术相结合的办法,以前,必须有司机操控,公交车语音报站器才可以工作,现在本系统的实现改善了这一环节,能够实现自动播报站名及服务用语,进站和出站,且及时、准确、不要靠人工介入,实现了公交车报站器的完全智能化。
本设计的主要特点有:
(1采用GPS卫星定位技术,可以自动地、准确地播报当前所到达的站名、服务用语以及广告等等。
(2)能够与显示屏直接连接,同步显示报站信息、当前经纬度位置以及速度
等。
(3)可存储多条线路,方便公交车临时更换运营线路。
GPS总线自动站系统包括两部分硬件和软件两者。
硬件是以STM32F013处理器核心,必要的外围配置存储器,I/O设备,通讯模块;软件则是以嵌入式软件为核心,以提供应用程序编程接口(API),能够向下屏蔽具体的硬件板级支持包BSP。
嵌入式系统中,软件和与协调工作的硬件紧密配合,完成系统预定的功能。
1.2系统设计
本本设计的一种比较先进的基于GPS的公交车语音报站系统的基本原理如下图所示。
通过GPS模块获取GPS工作卫星的导航数据,通过对接收到的数据分析从而计算出公交车当前的经纬度信息、速度等数据;根据GPS定位数据计算出公交车的实时坐标,将其与站点坐标相比较,当公交车驶入站点一定距离范围内时,不用进行人工的干预,系统可以自动为乘客报站。
将位置信息与数据库中电子矢量地图进行匹配,根据公交车位置的不同,显示屏上显示不同的站点信息等。
在离站、到站阈值范围内语音提示的同时,在显示屏上显示同类信息,也可通过按键设置播报音量的大小。
其硬件模块可分为电源、主控芯片、语音合成模块、按键模块、GPS模块和串口触摸屏模块,如下图所示。
1.3硬件选型
主控芯片:
方案一:
采用STM32F103C8T6芯片。
STM32F103C8T6是一款由ST公司设计的低功耗、高度集成的32位RISC处理器,它采用64脚LQFP封装,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。
STM32F103C8T6的显著特性是其CPU核心为一个32位的CORTEX-M3处理器。
通过提供一系列完整的系统外围设备,STM32F103C8T6可大大减少整个系统的成本,不需要为系统配置额外器件。
方案二:
利用MSP430微处理器作为主控芯片。
MSP430微处理器称为混合信号处理器,它可以是一个数字模拟电路、数字集成电路模块和微处理器的单个芯片上的不同功能的,MSP430微控制器是德州仪器(TI)的1996年开始向市场投放了16位的超低功率,降低了指令集(RISC)混合信号处理器(混合信号处理器)。
该设备需要电池供电,在便携式仪器仪表上的应用更好。
所以在一些大型、昂贵的的设计上不宜使用。
GPS模块:
SiRFstarIV
GSD4e
WLCSP
芯片。
CPU
内核为
方案一:
采用SIRF公司最新
数据。
采用3.3V
CMOS
通用串行接口,UART波特率默认4800bps,
最高
1.25Mbps可调,预留I2C接口,方便扩展DR功能,可通过外接GPS天线实
ARM7
ROM48
内核处理架构。
采用 通道“全视野”追踪卫星,提供最准确的定位
的灵敏度采用标准NMEA0183
DGPS协议:
WAAS,EGNOS
现NMEA输出模块定位精度高,-163dbm
码,支持
方案二:
采用ublox公司GPS模块。
LEA-4H/LEA-4S是目前u-blox推出的小型化的第四代GPS模块定位产品本年度主力品种,,模块体积竟然不到一元硬币大小,以突出的65mW的低功耗及竟达到-158db的高感度信号追踪,更重要的是它可以支持无源/有源天线,采用陶瓷无源天线的优势是整个可以做到很小,甚至可以内置于手机当中,也可以外接有源天线来扩展更强的外围信号,各项性能指标在同类GPS模块轻松胜出.
显示模块:
方案一:
利用LED数码管动态扫描显示。
LED数码管价格相对低廉,用于
显示简单的字母和数字较为合适。
但是采用动态扫描法所需单片机的IO口较多,然而因为单片机IO口输出的电流太小,所以还要设计一个驱动电路,利用驱动电路对电流放大后才能控制数码管,如果采用数码管显示的内容多了,电路的
焊接的难度会增大比较容易发生错误。
方案二:
采用串口屏。
串口屏是由液晶屏+单片机+存储器三部分构成的,由计算机将图片和汉字点阵通过GpuMaker程序预先存储到串口屏的存储器中,然后由单片机通过串口发送指令调用显示就可以,单片机部分的编程就会变得异常简单。
语音合成模块:
方案一:
采用语音合成芯片SC805。
SC8065是一款单芯片CMOS一次性可编程语音芯片,该语音芯片采用最新的架构EPROMOTP(一次性可编程),具有输入PWM脚和两个I/O引脚,拥有准确性和抗干扰性,只有一组PWM输出的,因此无需多余的外部电路。
方案二:
采用SYN6288语音合成模块。
SYN6288是北京宇音天下科技有限公司于2010年初推出的采用PSOLA拼接合成技术的一款语音合成芯片。
SYN6288通过异步串口(UART)通信方式,接收待合成的文本数据,实现文本到
语音(或TTS语音)的转换,可直接通过PWM输出方式驱动扬声器或外接功率放大电路驱动扬声器,进行语音输出,并可以通过读取BUSY管脚的电平获取芯片当前的状态。
综合上述的描述,最终根据本设计中的功能要求和成本考虑主控芯片采用
STM32F103XC8T6,GPS模块采用Ublox公司GPS模块 ,显示模块采用串口屏以及语音合成模块采用SYN6288模块较合理。
第二章硬件模块介绍
2.1控制电路设计模块
2.1.1主芯片介绍
核心处理器STM32F103C8T6是一款由ST公司设计的低功耗、高度集成的
32位RISC处理器,它采用64脚LQFP封装,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。
STM32F103C8T6的显著特性是其CPU核心为一个32位的CORTEX-M3处理器。
通过提供一系列完整的系统外围设备,STM32F103C8T6可大大减少整个系统的成本,不需要为系统配置额外器件。
该STM32F103xx中等密度的高性能线系列结合了高性能在72MHz的频率,高速ARM®Cortex®-M3 32位RISC内核工作嵌入式存储器(闪存高达128
KB的SRAM和高达20千字节)和增强的I / O和外围设备的广泛连接到两个
APB总线。
所有器件提供了两个12位的ADC,三个通用16位定时器加一PWM定时器,如以及标准和先进的通信接口:
多达两个个I2C和SPI,三USART接口,一个USB和一个CAN。
该器件采用2.0至3.6V电源供电。
它们是在两个-40到可用+ 85°C的温度范围和-40至+105°C扩展级温度范围。
一个全面的省电模式,可以让低功耗应用的设计。
该STM32F103xx中等密度的高性能线系列产品包括六种不同的设备封装类型:
从36针到100针。
根据选择的设备上,不同组的外围设备包括,下面的描述给出的完整范围的概述
在这个家庭提出的外设。
这些特点使得STM32F103xx中等密度的高性能微控制器线家庭适用于广泛的应用范围,如电机驱动器,应用控制,医疗和手持设备,PC和游戏外设,GPS平台,工业应用的PLC,变频器,打印机,扫描仪,
报警系统,视频对讲,和HVACs。
2.1.2控制电路设计
最小系统原理图如下所示:
10
11
SY6288_RX
12
SY6288_T
X1314
15
16
17
29
GPU_RX
30
GPS_TX
C1
31
32
33
34
37
38
Cap22pFC2
Y18M
2
3
4
PA0-WKUPPA1
PA2PA3PA4PA5PA6PA7
PA8PA9PA10PA11PA12PA13PA14PA15
PC13-TAMPER-RTCPC14-OSC32_INPC15-OSC32_OUT
PB0PB1PB2PB3PB4PB5PB6PB7
PB8PB9PB10PB11PB12PB13PB14PB15
PD0-OSC_IN
PD1
BOOT0NRST
18
19
20
39
40
41
42
43
45
46
21
22
25
26
27
28
5
6
44
7
GND
VCC
1
24
36
48
9
U1B
VBAT
VDD_1VDD_2VDD_3
VDDA
VSS_1VSS_2VSS_3
VSSA
23
35
47
8
STM32F103C8T6
GND
Cap22pF
STM32F103C8T6
GND
R1
Res210K
C3
Cap10uF
S1
SW-PBVCC
U1A
2
1
GND
图2-1-2控制电路原理图
本设计将PA9和PA10引脚连接GPS的RX和TX端,单片机通过TX引脚给GPS发送指令,GPS模块由RX引脚反馈数据给单片机,单片机通过串口中断的方式接收。
PA2和PA3引脚分别连接SY6288语音模块的RX和TX端,也同样单片机由TX端发送指令给语音合成模块从而完成语音播报的控制,RX端则负责处理反馈的数据。
另外,还有PA4和PA5两个引脚连接了两个按键,代表音量的增高和降低,通过外部中断的方式触发并处理数据,以达到音量的控制。
2.2车站识别电路设计模块
Ublox公司通过使用其他厂商的GPS芯片设计生产GPS模块的方式打入
GPS行业,主攻车载GPS市场。
小有成就之后,开始涉足芯片设计。
此后和
Atmel公司合作,U-blox公司提供GPS接收算法,Atmel则负责芯片的设计生产。
这次合作使得U-blox成功转型为GPS芯片供应商,并采用自己的芯片继续生产GPS模块,在欧洲车载GPS市场获得巨大成功。
当时的Atmel也非常看好U-blox,并考虑过收购U-blox,但当时由于价钱没谈拢,没有成功。
转眼间U-
blox已经成了一个壮汉,显然不再甘心芯片设计生产再受Atmel约制,开始自己设计芯片,2006成功推出U-blox5系列芯片组,前瞻性地具备兼容美国GPS卫星系统和欧盟伽利略卫星系统引擎,数据刷新频率可小于1秒,50毫瓦的超低功耗和高达-160dBm的SuperSense跟踪灵敏度等领先性能而终成霸业。
在公司成立10年后的2007年成功在瑞士证券交易所上市。
如今,U-blox在GPS行业如同一个标杆,是欧洲汽车GPS导航委员会及伽利略委员会委员,参与制定欧洲汽车GPS导航专业标准制定及修正。
2.2.1GPS硬件结构
模块由两个功能部分组成:
射频(RF)和基带(Baseband)部分。
RF前端包括输入匹配元件、SAW(声表面波)带通滤波器、u-blox6RF-IC(带集成的LNA)和频率源。
基带部分,包括u-blox6基带处理器、RTC晶体振荡器和附加的元件如:
用于扩展编程和灵活性的可选FLASH内存。
其详细结构如下图所示:
VCC:
主电源
图2-2-1GPS内部结构图
主电源接到VCC脚。
在运行期间,u-blox6GPS模块的消耗的电流变化非常大,特别是节电模式的时候。
系统电源应该能提供短时的峰值电流。
当从备份模式切换到正常模式或者启动时u-blox6模块先给内核域的内部电容充电,这时会产生一个很大的电流,对于低功耗的应用,使用节电或备份模式,电源或在
模块输入的低ESR电容担负着这个充电电流。
V_BCKP:
备份电源
在VCC失去的时候,实时时钟和备份RAM的供电通过V_BCKP脚。
这个备份电源使得u_blox6接收器能够以若启动或温启动方式(取决于VCC掉电的时间长度)从掉电中恢复过来, 可以保持配置信息存储在备份RAM中不丢失。
如果无备份电池连接,接收器上电的时候会执行冷启动。
u-blox6具有UART接口(RxD1/TxD1),支持波特率4.8到115.2kBit/s,但注意这个信号输入输出电平是0V到VCC范围,而不是标准的RS232接口电平,所以需要有电平转换IC,如MAX3232。
不支持硬件握手信号和同步操作。
更多的信息见LEA-6/NEO-6/MAX-6的数据手册。
2.2.2GPS设计
通常GPS模块支持两种格式:
二进制消息格式和NMEA-0183ASCII消息格式。
前者的通信协议为9600b/s、无校验、8位数据位、1位停止位;后者的通信协议为4800b/s、无校验、8位数据位、1位停止位。
由于NMEA-0183 ASCII格式直观、易于识别及应用,因此本设备采用ASCII格式。
系统接收到的GPS数据主要由帧头、帧尾和帧内数据组成。
根据数据帧的不同,帧头也不相同,主要有$GPGGA、$GPGSA、$GPGSV以及$GPRMC等。
这里选用推荐的$GPRMC。
各类数据帧分别包含了不同的信息,在此列举出
$GPRMC的各项含义:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,
*hh
<1>当前位置的格林威治时间,格式为hhmmss。
<2>状态,A为有效位置,V为非有效接收警告,即当前天线视野上方
的卫星个数少于3颗。
<3>纬度,格式为ddmm.mmmm。
<4>标明南北半球,N为北半球、S为南半球。
<5>径度,格式为dddmm.mmmm。
<6>标明东西半球,E为东半球、W为西半球。
<7>地面上的速度,范围为000.0节~999.9节(1节=1.852km/h)。
<8>方位角,范围为000.0度~359.9度。
<9>日期,格式为ddmmyy。
<10>地磁变化,从000.0度~180.0度。
<11>地磁变化方向,为E或W。
由于帧头由逗号分隔的,所以当处理高速缓存的数据每个数据段帧是通常通过搜索ASCII码“$”,以确定是否首部。
之后的类别进行标识的头,然后经通过计算逗号正在处理判断目前的数字是什么样的导航参数,并进行相应的处理。
2.3语音播报电路设计模块
语音合成传输电路主要由SYN6288模块和扬声器组成。
其中SYN6288负责实现文本到语音的转换(TTS),扬声器负责发出声音提示。
SYN6288是北京宇音天下科技有限公司于2010年初推出的采用PSOLA拼接合成技术的一款语音合成芯片。
SYN6288通过异步串口(UART)通信方式,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换,可直接通过PWM输出方式驱动扬声器或外接功率放大电路驱动扬声器,进行语音输出,并可以通过读取BUSY管脚的电平获取芯片当前的状态。
该芯片支持GB2312等格式的文本,支持标点符号、汉字、数字、英文字母及
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 STM32 公交车 语音 报站 系统 设计