基于cortexm3芯片的无线测距系统本科学位论文.docx

上传人:b****7 文档编号:16087951 上传时间:2023-07-10 格式:DOCX 页数:37 大小:1.30MB
下载 相关 举报
基于cortexm3芯片的无线测距系统本科学位论文.docx_第1页
第1页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第2页
第2页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第3页
第3页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第4页
第4页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第5页
第5页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第6页
第6页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第7页
第7页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第8页
第8页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第9页
第9页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第10页
第10页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第11页
第11页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第12页
第12页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第13页
第13页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第14页
第14页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第15页
第15页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第16页
第16页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第17页
第17页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第18页
第18页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第19页
第19页 / 共37页
基于cortexm3芯片的无线测距系统本科学位论文.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于cortexm3芯片的无线测距系统本科学位论文.docx

《基于cortexm3芯片的无线测距系统本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于cortexm3芯片的无线测距系统本科学位论文.docx(37页珍藏版)》请在冰点文库上搜索。

基于cortexm3芯片的无线测距系统本科学位论文.docx

基于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++选项卡中的内容,在第一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2