基于cortexm3芯片的无线测距系统本科学位论文.docx
- 文档编号:16087951
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:37
- 大小:1.30MB
基于cortexm3芯片的无线测距系统本科学位论文.docx
《基于cortexm3芯片的无线测距系统本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于cortexm3芯片的无线测距系统本科学位论文.docx(37页珍藏版)》请在冰点文库上搜索。
基于cortexm3芯片的无线测距系统本科学位论文
毕业设计(论文)
设计(论文)题目:
基于Cortex-M3芯片的无线测距系统
学生姓名:
指导教师:
二级学院:
专 业:
班 级:
学 号:
提交日期:
2014年4月20日答辩日期:
2014年5月10日
目录
目录I
摘要III
AbstractIV
1绪论5
1.1课题背景5
1.2课题内容5
1.3课题意义5
2相关技术基础概述7
2.1Cortex-M3内核芯片7
2.2串口协议7
2.3GPS定位技术及数据传输协议8
2.412864显示器10
3软件环境的构建12
3.1编译环境的安装与使用12
3.2PCB绘制软件的安装与使用19
4系统总体方案设计21
4.1功能需求21
4.2系统的总体框架21
5硬件设计22
5.1硬件功能需求及芯片选型22
5.1.1硬件功能需求22
5.1.2芯片的选型22
5.2硬件模块电路设计22
5.2.1主控芯片STM32最小系统电路设计22
5.2.2硬件功能模块电路设计25
6软件设计27
6.1软件功能需求及软件结构27
6.2程序流程框图27
7总结31
7.1总结31
7.2实际应用场景31
8参考文献32
基于Cortex-M3芯片的无线测距系统
摘要
到目前位置,GPS的应用已经更加的广泛,已从军事、国防和国家高科技产业扩展到各个民用领域。
可以说,现在人类的生活已经离不开GPS了,人们居家生活需要使用GPS定位服务来查找自己周边的各种生活服务,自驾出游需要使用GPS进行路线导航,生活娱乐交友也无时无刻不用到GPS来确定自己此时此刻所在的位置。
GPS已经不知不觉地融入到了我们生活的各个方面。
GPS定位测距系统的主控制器选用Cortex-M3系列的ST公司的STM32系列32位单片机。
主控制器电路包括STM32F103主芯片以及外围的主晶振和实时时钟晶振,芯片I/0端口,另外还用排针将5v,3.3v电源线,地线引出(主要为外设供电);板子有三个按键,其中一个是复位按键,另外两个是普通功能按键,有三个LED灯,其中一个电源指示灯,另外两个用于测试系统;板子还配有串口,能与计算机串口进行串口通信,用于各种软件的开发和调试;此系统还配有实时时钟模块,板子断电之后仍然可以保持时钟芯片的运转。
最后就是电源模块和JTAG下载器接口了,电源模块将5V电源转成3.3V电源,因为STM32芯片的工作电源电压要求3.3v,JTAG接口用于程序的下载和在线调试。
关键字:
最小系统板;GPS;STM32;串口
SystemofmeasuringdistancebasedonCortex-M3chip
Abstract
Now,GPSapplicationshavebecomemorewidespread,fromthemilitary,nationaldefenseandhigh-techindustriesextendedtoallcivilianareas.WecansaythatnowhumanlifehasbeeninseparablefromGPS,peoplelivingathomeneedtouseGPSlocationservicestofindtheirownlivingaroundthevariousservices,cartravelrouterequirestheuseofGPSfornavigation,GPSisusedtofindfriendaroundyou.Inshort,GPShasbeenintegratedintoallaspectsofourlives..GPSpositioningrangingsystemmastercontrollerselectsCortex-M3seriesST'sSTM32familyof32-bitmicrocontrollers.MaincontrollercircuitincludesSTM32F103mainchipandtheexternalmasteroscillatorandreal-timeclockoscillatorchipI/0ports,alsowithapintolead5v,3.3vpowerlines,groundline(mainlyperipheralpowersupply);boardhasthreekeys,oneofwhichistheresetbutton,theothertwoareordinaryfunctionkeys,therearethreeLEDlights,oneispowerindicator,theothertwoareforthetestingsystem;boardcomeswithserial,serialcommunicationcanbeperformedwiththecomputerserialport,foravarietyofsoftwaredevelopmentanddebugging;thissystemcomeswithreal-timeclockmodule,whichcanstillkeeptheclockchipoperationwithboardlackofpower(butdidnotseemtopresenthowtouse).FinallythereareaJTAGdownloadinterfaceandthepowermodule,whichwillmake5Vpowerturnintoa3.3Vpower,becausetheSTM32chipoperatingsupplyvoltagerequirements3.3v,JTAGinterfaceisusedindownloadingandonlinedebugger.
Keywords:
Theboardofminimumcircuitsystem;STM32;GPS;UniversalSynchronousAsynchronousReceiverTransmitter
1绪论
1.1课题背景
GPS是的英文全名是NavigationSystemTimingandRanging/GlobalPositionSystem,一般人们称其为全球定位系统。
全球定位系统是美国率先研发的,从20世纪七八十年代开始由美国军方国防部率先使用的,最后发展到各个民用领域的新一代卫星导航与定位系统。
该系统为世界提供精确导航、精准定位和时间查询等服务。
该系统由24颗在距离地球约二万零二百千米高度的轨道上空的卫星组成。
地面上的GPS接受装置或设备接收器设备接收来自5到12个卫星的信号,并根据这些受到的信号计算出自己的精确位置、时间和速度。
这明显意味着GPS测量技术已经从大致定位发展到精确定位。
由于其定位的精度高,已经被各个领域引进作为地点位置测量。
到目前位置,GPS的应用已经更加的广泛,已从军事、国防和国家高科技产业扩展到各个民用领域。
可以说,现在人类的生活已经离不开GPS了,人们居家生活需要使用GPS定位服务来查找自己周边的各种生活服务,自驾出游需要使用GPS进行路线导航,生活娱乐交友也无时无刻不用到GPS来确定自己此时此刻所在的位置。
GPS在我们日常生活中已经成为了不可或缺的一部分。
1.2课题内容
此次研究的课题主要完成一下的任务:
●研究GPS工作原理及相关技术
●研究GPS数据通信的协议
●研究Cortex-M3内核(主要研究其中的硬件汇编指令)
●熟练的掌握基于Cortex-M3内核的依法半导体公司的芯片-STM32的硬件编程
●完成最小系统板原理图、PCB板的绘制
●完成底层串口通信模块的硬件设计
●完成基于STM32芯片的各个硬件驱动程序的编写
●完成下位机与上位机的通讯
●完成12864液晶驱动程序的设计,为用户提供可视化的界面
1.3课题意义
通过本次课题,熟悉当前热门的GPS技术的原理以及相关技术,锻炼自己的动手能力和语言表达能力。
通过对串口协议和GPS通信协议的学习,了解到了在各个通信场合通信协议的重要性,通信协议让通信双方明白那些庞大数据流的意义,并可以保证通信双方的通信安全。
通过最小系统板的设计,清楚地了解到最小系统的构成以及各个模块的作用--STM32F103主芯片以及外围的主晶振和实时时钟晶振,芯片I/0端口全部引出,另外还用排针将5v,3.3v电源线,地线引出(主要是给外设供电);板子有三个按键,其中一个是复位按键,另外两个是普通功能按键,有三个LED灯,其中一个电源指示灯,两个用于测试的LED灯;板子还配有串口,能与计算机串口进行串口通信,用于各种软件的开发和调试;此系统还配有实时时钟模块,板子断电之后仍然可以保持时钟芯片的运转(不过好像目前都没怎么用到);最后就是电源模块和JTAG下载器接口了,电源模块将5V电源转成3.3V电源,因为STM32芯片的工作电源电压要求3.3v,JTAG接口用于程序的下载和在线调试。
通过这整个的设计过程,熟练的掌握了PBC的设计与制作过程。
通过硬件驱动程序的编写,对硬件驱动编程又有了更加深一步的认识与了解,熟悉各个外设器件的功能与性能。
并且很好地锻炼了自己独立阅读外文资料的能力。
2相关技术基础概述
2.1Cortex-M3内核芯片
本课题采用基于Cortex-M3依法半导体公司设计的芯片-STM32,该芯片拥有众多先进的外设:
●复杂多变的I/O端口
●功能强大的DMA
●先进的高级定时器和通用定时器
●方便灵活的I2C接口
●速度极快的FSMC
STM32的GPI/O功能强大,编程方便。
其中每个端口有两个32位GPI/O端口模式控制寄存器,一个16位数据读入寄存器,一个16位数据输出寄存器,一个32位端口置位复位寄存器。
STM32的端口之所以功能强大,是因为其可以配置成多种工作模式,最常用的工作模式有:
通用推挽输出,上拉/下拉输入。
其中每个端口的时钟也可以进行调节,这在低功耗领域极其有用。
端口的最高时钟不得高于50MHz。
其中GPI/O端口可以用作通用端口,还可以用于复用端口。
一些内部外设的功能管脚可以通过配置映射寄存器映射到其它管脚,这个功能使得引脚的重复率大大地降低。
端口的锁定机制将端口的配置锁定,保证了端口配置不会被恶意修改。
STM32的每一个芯片都可以端口都可以配置为中断输入管脚,这个强大的功能使得该芯片处理实时事件的能力大大地增强。
2.2串口协议
计算机与计算之间以及计算机与低速外设之间通常使用串口通信,串口通信属于串行通信。
串行通信是将数据一位一位的发送出去,接收方将接受的数据一位一位拼接成完整的数据,由于串行通信将数据按位发送,其所用的数据线少,传输速度慢,适合低速设备之间的通信,并且适用于长距离传输。
相对于串行通信的并行通信,并行通信是将数据位一次性同时发送出去,所需时间短,通信速度快,特别适合系统内部各个组成部分之间的通信,但其相对于串行通信而言,数据线增大了几倍,浪费数据线,在长距离通信中代价高昂,所以长距离通信一般不实用并行通信。
●同步和异步通信方式
在串行通信中,又分为串行同步通信和串行异步通信。
异步通信中,发送设备和接受设备可以不实用同一个时钟,因而对协议的要求不高,极易实现。
但是在传送数据的过程中,通信双方必须事先规定好通信的数据格式,即传输协议,同时也必须确定通信的速率。
以串口通信为例,其数据格式包含一位起始位,若干数据位,以为奇偶校验位,一到二位停止位,在串口通信中,通信速率和波特率是一个概念。
所以在进行串口通信中要事先确定收发双方的数据格式和波特率。
由于异步通信的特点,在通信过程中要在每个通信数据上加上起始位和停止位。
对于快速传送大量数据的场合,为了提高数据传送的效率,一般采用同步串行传送方式。
同步传送时,无须起始位和停止位。
在同步通信中,数据的传送往往是以帧为单位,这个数据的长度依据传输数据的长度可大可小,在传输时只需在数据的头部加上同步信号,这样就大大增加了数据传输的效率。
同步传送要求对传送的每一位在首发两端保持严格同步,发送端、接收端可使用同一时钟源以保证同步。
●数据传送方式
在串行通信中,数据在连个设备之间进行传送。
按照数据的传送方向的不同,可以把数据传送方式分为:
单工、半双工和全双工。
数据只能向单一方向传送。
从设备1发送到设备2,设备1是发送方,设备2是接受方。
数据可从设备1发送到设备2,此时设备1是放松方,设备2是接受方;也可以从设备2发送到设备1,此时设备2是发送方,设备1是接受方。
但某一设备不能同接受数据和发送数据。
在这种方式下,由于两设备之间只有一条传输线,某一时刻数据只能向某一方向传送。
相对于半双工和单工通信,全双工通信有两根数据传输线,这就意味着,在同一时刻,数据收发双方可以同时向对方传送数据。
所以全双工通信速度也比其它两种的通信方式快。
●传输速率
在并行通信中,传输速率用每秒传输的字节数表示,单位是:
Bps。
相对的,在串行通信中,传输速率用波特率表示。
波特率的单位是:
波特,1波特=1位/妙(bps)。
串行通信双方使用相同的波特率,虽然收发双方的时钟不可能完全一样,但由于每一帧的尾数最多只有12位,因此时钟的微小误差不会影响接受数据的正确性。
在一般实验中,串口通信最常用的波特率是:
9600bps和115200bps。
●在串行通信是将数据拆分,一位一位地发送出去的。
2.3GPS定位技术及数据传输协议
NMEA‐0183
NMEA0183是美国国家海洋电子协会(NationalMarineElectronicsAssociation)指定的标准协议,目前已经被广泛的接受作为GPS导航设备通信协议的标准。
其中协议的各个命令如表2-1所示:
编号
命令
说明
最大帧长度
1
$GPGGA
全球定位数据
72
2
$GPGSA
卫星PRN数据
65
3
$GPGSV
卫星状态信息
210
4
$GPRMC
运输定位数据
70
5
$GPVTG
地面速度信息
34
6
$GPGLL
大地坐标信息
无
7
$GPZDA
UTC时间和日期
无
表2-1指令意义
发送数据的顺序如表2-2所示:
1
2
3
4
5
6
7
$PZDA
$GPGGA
$GPGLL
$GPVTG
$GPGSA
$GPGSV*3
$GPRMC
表2-2数据发送顺序
协议帧总说明:
该协议采用ASCII字符直接传输,传输的通信格式为:
一个起始位,无奇偶校验位,一个停止位,通信速率默认为4800bps。
帧格式形如:
$bbccc,ddd,ddd,…,ddd*hh
1、“$”——帧命令起始位
2、bbccc——地址域,前两位为识别符,后三位为语句名
3、ddd…ddd——数据
4、“*”——校验和前缀
5、hh——校验和,$和*字符之间所有ASCII字符的校验和(每个ASCII字符的异或运算。
)
6、
GPGGA
这帧数据是最常用的数据,必须要掌握,包含的GPS信息也最多。
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>
<1>全球定位时间,格式为时分妙.毫秒。
<2>纬度信息数据。
<3>S代表南纬,N代表北纬。
<4>经度信息数据。
<5>E代表东经,W代表西经。
<6>定位成功标志,0=定位失败,1=定位成功。
<7>连接卫星的数量,从0到12。
<8>平面精度值,0.5至99.9。
<9>海拔高度,-9999.9之9999.9。
<10>高度的单位,M代表长度单位米。
<11>大地相对海平面的高度(‐999.9到9999.9)。
<12>高度的单位,M代表长度米。
<13>差分GPS接受数据的时间界限。
<14>差分参考基站的编号。
<15>校验和。
2.412864显示器
12864液晶显示器有两种显示模式,一:
字库显示模式,二:
图像显示模式。
其中使用字库显示模式是要使用基本指令集,使用图像显示模式时要用到扩展指令集。
在操作12864液晶显示器时要了解其各个管脚的定义与功能,表2-3是12864液晶显示器的管脚定义与功能:
引脚编号
名称
电平
功能
1
VSS
0V
电源
2
VDD
+5V
地
3
V0
--
LCD驱动电压
4
D/I
H/L
H:
写数据L:
写命令
5
R/W
H/L
H:
读信号L:
写信号
6
E
H/L
H:
使能L:
失能
7-14
DB0-DB7
H/L
数据端口
15
PSB
H/L
H:
并行L:
串行
16
NC
--
--
17
/RES
H/L
H:
--L:
复位
18
NC
--
--
19
LED(+)
+5V
LCD背光电源
20
LED(-)
0V
LCD背光地
表2-312864引脚名称
常用寄存介绍:
1.清除显示,清除命令的定义如表2-4所示
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
L
L
L
L
L
L
L
H
表2-4清除命令
功能:
清除显示屏幕,把DDRAM地址计数器调整为“00H”
2.地址归位,地址归位命令如表2-5所示
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
L
L
L
L
L
L
H
X
表2-5地址归位命令
功能:
打DDRAM地址计数器调整为“00H”,游标回到原点,该功能不影响屏幕的显示
3.显示状态开/关,显示开关命令如表2-6所示
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
L
L
L
L
H
D
C
B
表2-6显示开关命令
功能:
D为1;整体显示开C为1;游标显示开B为1;游标位置开
在编写程序的过程中,若不读取芯片的忙碌状态,写入数据与命令之后必须延时一段时间,来等待芯片的操作结束。
3软件环境的构建
3.1编译环境的安装与使用
随着时间的推移,ARM7和ARM9内核越来越深入微控制器领域,引来了许多的开发工具对这些CPU的支持,其中主要的开发编译平台有GCC、Greenhills、Keil、IAR和Tasking等。
随着新一代Cortex-M3处理器的诞生,绝大部分的开发工具都很“识趣”地迅速进行更新以支持Thumb-2指令集。
因此在进行STM32开发之前,开发人员事先至少需要要获取以上几种开发工具的一种。
所幸的是,这些开发工具都能轻易的获取到,并且有的还是免费开源。
一般情况下,建议选用芯片提供商所推荐的开发平台。
但时至今日,每个开发平台都有其长处,要在两个开发平台之间分出优劣,恐怕要花费大量的时间来讨论,并且往往无疾而终。
因此除了芯片提供商推荐的开发平台外,开发人员还是有别的选择的。
开发平台主要分为两类。
一类是免费开源的具有“大众”性质的开发平台,而一类是收费具有“专业”性质的开发平台。
免费的开发平台,首当其冲的无疑是基于GCC或GUN编译器的开发平台,这两个编译器是完全免费且开源的,用户可以任意下载在任何场合放心使用。
GCC编译器已经被整合到众多的商业集成开发环境(IDE)和调试工具中,也由此出现了许多廉价的开发工具和评估开发板。
GCC编译器的可靠性和稳定性是有目共睹的,但是大众普遍认为它生成的代码不比商业平台来的更有效率,而使用GCC遇到的问题也无法得到直接的技术支持,这样就会容易延缓产品的开发进度。
商业开发平台方面,ARMRealView开发平台作为ARM公司自行推出的产品,在业界具备相当的权威性,但其也以压倒性的强大功能和令人生畏的价格令诸多工程师“又爱又恨”。
RealView编译器是ARMRealViewIDE一系列组件之一,在片上操作系统领域应用较多,但是对于微控制器开发并没有很好的支持。
MDK的长处在于功能完善,易于使用,而且为开发者提供了无缝的工具集。
相比Keil而言,IAR编译环境是1938开发的,许多芯片公司,如德州仪器、意法半导体、美信等的前沿产品都使用IAR编译环境。
在本次课题中,使用Keil编译环境。
首先在官网
1.点击安装包安装,选择安装路径,出现如图3-1所示的对话框:
图3-1安装初始化界面
2.填写用户信息,输入姓名、公司名和邮箱地址,安装程序会弹出如图3-2所示的对话框:
图3-2用户信息登录界面
3.安装完成之后需要对软件进行破解,否则软件无法编译调试打大的文件程序。
接下来是建立一个可用的工程,Keil编译器是以工程的形式来组织建立代码的,各个c语言的源文件都要在工程的组织形式下才能发挥作用。
首先点击编译中project中的newproject按钮,即新建一个工程,如图3-3所示。
图3-3新建工程界面
下面一步是选择硬件的型号,这个步骤很重要,每款硬件都有区别,对应的启动代码也就不一样,Keil编译器的一个优点就是不需要用户编写硬件的启动代码,选择硬件的型号之后就会自动生成硬件的启动代码,所以这一步不能够选错,否则就会生成错误的启动代码,这样硬件芯片就无法配置出正常的c语言运行环境,整个软件系统也就无法正常工作,但往往这个错误在程序中却很难发现。
本课题所用的到硬件是ST公司的招牌芯片STM32F103VC,按图3-4选择正确的芯片型号:
图3-4芯片幸好选择界面
经过该过程后,下面就是在工程中组织排列源代码了,首先要建立若干个文件夹,以便将不功能的硬件驱动代码存放在不同的位置,方便查找。
在软件当中,点击“三个立方体”的按钮,会出现如图3-5的对话框,在如下的对话框中新建自己命名的文件夹和添加一些源文件。
图3-5工程文件夹建立界面
在设置完文本编辑工具之后,下面将要设置编译环境。
点击“三个立方体”左边的按钮会出现图3-6的对话框。
图3-6编译器编译选项
首先配置C/C++选项卡中的内容,在第一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 cortexm3 芯片 无线 测距 系统 本科 学位 论文