车辆GPS开发.doc_第1页
车辆GPS开发.doc_第2页
车辆GPS开发.doc_第3页
车辆GPS开发.doc_第4页
车辆GPS开发.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计 论文 报告纸 I 装 订 线 摘 要 随着经济的高速发展 机动车辆的日益增多 交通运输行业之间的竞争不断加 剧 带来了诸多的交通和车辆的管理问题 因此 如何运用现代化管理手段合理调 度 提高车辆的使用效率 降低事故的发生 已成为一个迫切需要解决的课题 本设计首先简要分析了国内交通和车辆管理的一些问题 然后对 GPS 的相关原 理和通讯方面的知识进行了研究和学习 并且对串口通讯技术进行了研究 最后利 用 Visual Basic 语言编写了相关软件部分的程序 而硬件部分则是 GPS 接收机 硬 件与软件一起组成了一个简单的交通车辆运行监测模块 此模块中 GPS 接收机负责 接收 GPS 定位信息 并且通过串口与计算机相连接 将接收到的定位信息数据传输 给计算机 然后利用计算机中 Visual Basic 语言编写好的程序将定位信息数据提取出 来 经过简单处理后显示在屏幕上 并且定时更新主要定位信息数据 最后将数据 保存 以便传送给后续的管理系统进行进一步的数据管理 以此完成此车辆运行监 测模块的全过程 此监测模块如果能成功运用在交通车辆上 能对运行中的车辆进行实时监测和 定位 并且记录保存 对于有效地调度车辆 提高车辆的使用效率都有十分重要的 意义 关键词 车辆运行监测模块 GPS 串口通信 Visual Basic 毕业设计 论文 报告纸 II 装 订 线 目 录 第一章 绪 论 1 1 1 设计目的及意义 1 1 1 1 设计目的 1 1 1 2 意义 1 1 2 主要内容和方法 1 第二章 GPS 简介及原理 2 2 1GPS 简介 2 2 1 1 全球四大卫星定位系统 3 2 2GPS 定位基本原理 3 2 2 1GPS 定位方法分类 4 2 3GPS 信号接收机 5 2 4NMEA 0183 协议 GPS 通讯协议 5 2 4 1NMEA 协议的由来 5 2 4 2NMEA 0183 协议标准 6 第三章 串口通讯 9 3 1 概述 9 3 1 1 串口简介 9 3 1 2 原理简介 9 3 1 3RS 232 简介 10 3 2 工作方式 11 3 3 握手协议 11 3 4 串口通讯 单工 半双工和全双工方式 13 3 5 通信协议 14 3 5 1 物理接口标准 14 第四章 Visual Basic 语言及其特点 16 4 1Visual Basic 简介 16 4 2VB 语言特性 17 4 3VB 程序设计特点 17 4 4MSComm 控件 19 4 4 1MSComm 控件简介 19 4 4 2MSComm 控件的属性 20 毕业设计 论文 报告纸 III 装 订 线 第五章 基于 GPS 的车辆运行监测模块开发 23 5 1 模块概况 23 5 1 1GPS 信号接收模块 23 5 1 2 信息处理模块 23 5 2GPS 接收板的使用 24 5 3 软件设计 26 5 3 1 程序总体设计思想 26 5 3 2 程序流程图 26 5 3 3 程序界面设计 27 5 3 4 主要过程和函数介绍 28 5 3 5 实验结果 31 结 论 33 参考文献 34 致 谢 35 附 录 36 附录 36 附录 37 附录 38 毕业设计 论文 报告纸 第 1 页 共 38 页 装 订 线 第一章 绪 论 1 1 设计目的及意义 1 1 1 设计目的 目的 进行该研究的目的是利用 GPS 定位技术 设计一个基于 GPS 的监测模 块 使之能够对交通车辆的运行进行监测 在车辆运行过程中 对其进行监测和定 位 并将数据保存 以备进一步的开发利用 毕业设计 论文 报告纸 第 2 页 共 38 页 装 订 线 第二章 GPS 简介及原理 2 2GPS 定位基本原理 2 3GPS 信号接收机 GPS 卫星接收机的基本结构是天线单元和接收单元两部分 天线单元的主要作用是 当 GPS 卫星从地平线上升起时 能捕获 跟踪卫星 接收放大 GPS 信号 接收单元的主要作用是 记录 GPS 信号并对信号进行解调和滤波处理 还原出 GPS 卫星发送的导航电文 解求信号在站星间的传播时间和载波相位差 实时地捕 获导航定位数据或采用侧后处理的方式 获得定位 测速 定时等数据 2 4NMEA 0183 协议 GPS 通讯协议 2 4 2NMEA 0183 协议标准 NMEA 0183 协议定义的语句非常多 但是常用的或者说兼容性最广的语 句只有 GPGGA GPGSA GPGSV GPRMC GPVTG GPGLL 等 NMEA 0183 语句是以 开头 格式为 AAXXX ddd ddd hh AA 为识别符 XXX 为语句名 ddd ddd 为发 送的数据内容 后 hh 为校验和 回车 换行符 下面对一些常用的语句进行详细分析 4 Recommended Minimum Specific GPS TRANSIT Data RMC 推荐定位 信 息 GPRMC hh UTC 时间 hhmmss 时分秒 格式 定位状态 A 有效定位 V 无效定位 纬度 ddmm mmmm 度分 格式 前面的0 也将被传输 纬度半球 N 北半球 或 S 南半球 毕业设计 论文 报告纸 第 3 页 共 38 页 装 订 线 经度 dddmm mmmm 度分 格式 前面的0 也将被传输 经度半球 E 东经 或 W 西经 地面速率 000 0 999 9 节 前面的 0 也将被传输 地面航向 000 0 359 9 度 以真北为参考基准 前面的0 也将被传输 UTC 日期 ddmmyy 日月年 格式 磁偏角 000 0 180 0 度 前面的 0 也将被传输 磁偏角方向 E 东 或 W 西 模式指示 仅 NMEA0183 3 00 版本输出 A 自主定位 D 差分 E 估算 N 数据无效 毕业设计 论文 报告纸 第 4 页 共 38 页 装 订 线 第三章 串口通讯 3 1 概述 3 1 1 串口简介 串口叫做串行接口 也称串行通信接口 是计算机上一种非常通用设备通信 的协议 大多数计算机包含两个基于 RS232 的串口 串口同时也是仪器仪表设备 通用的通信协议 很多 GPIB 兼容的设备也带有 RS 232 口 同时 串口通信协 议也可以用于获取远程采集设备的数据 3 1 2 原理简介 串口通信简单地说就是串口按位 bit 发送和接收字节 尽管比按字节 byte 的并行通信慢 但是串口可以在使用一根线发送数据的同时用另一根线 接收数据 它很简单并且能够实现远距离通信 典型地 串口用于 ASCII 码字符的传输 通信使用 3 根线完成 1 地线 2 发送 3 接收 由于串口通信是异步的 端口能够在一根线上发送数据 同时在另一根线上接收数据 其他线用于握手 但是不是必须的 串口通信最重 要的参数是波特率 数据位 停止位和奇偶校验 对于两个进行通行的端口 这 些参数必须匹配 a 波特率 这是一个衡量通信速度的参数 它表示每秒钟传送的bit 的个 数 例如 300 波特表示每秒钟发送 300 个 bit 当我们提到时钟周期时 我们就 是指波特率例如如果协议需要 4800 波特率 那么时钟是 4800Hz 这意味着串口 通信在数据线上的采样率为 4800Hz 通常电话线的波特率为 14400 28800 和 36600 波特率可以远远大于这些值 但是波特率和距离成反比 高波特率常常用 于放置的很近的仪器间的通信 典型的例子就是GPIB 设备的通信 b 数据位 这是衡量通信中实际数据位的参数 当计算机发送一个信息包 实际的数据不会是 8 位的 标准的值是 5 7 和 8 位 如何设置取决于你想传送 的信息 比如 标准的 ASCII 码是 0 127 7 位 扩展的 ASCII 码是 0 255 8 位 如果数据使用简单的文本 标准 ASCII 码 那么每个数据包 使用 7 位数据 每个包是指一个字节 包括开始 停止位 数据位和奇偶校验位 由于实际数据位取决于通信协议的选取 术语 包 指任何通信的情况 c 停止位 用于表示单个包的最后一位 典型的值为1 1 5 和 2 位 由于 数据是在传输线上定时的 并且每一个设备有其自己的时钟 很可能在通信中两 台设备间出现了小小的不同步 因此停止位不仅仅是表示传输的结束 并且提供 毕业设计 论文 报告纸 第 5 页 共 38 页 装 订 线 计算机校正时钟同步的机会 适用于停止位的位数越多 不同时钟同步的容忍程 度越大 但是数据传输率同时也越慢 d 奇偶校验位 在串口通信中一种简单的检错方式 有四种检错方式 偶 奇 高和低 当然没有校验位也是可以的 对于偶和奇校验的情况 串口会设置 校验位 数据位后面的一位 用一个值确保传输的数据有偶个或者奇个逻辑高 位 例如 如果数据是 011 那么对于偶校验 校验位为 0 保证逻辑高的位数 是偶数个 如果是奇校验 校验位位 1 这样就有 3 个逻辑高位 高位和低位不 真正的检查数据 简单置位逻辑高或者逻辑低校验 这样使得接收设备能够知道 一个位的状态 有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否 不同步 毕业设计 论文 报告纸 第 6 页 共 38 页 装 订 线 第四章 Visual Basic 语言及其特点 4 4MSComm 控件 4 4 1MSComm 控件简介 MSComm 是 MicrosoftCommunicationsControl 的简称 它是微软公司为了方便 用户的串口通信编程而开发的一种 ActiveX 控件 与其他许多 ActiveX 控件一样 MSComm 控件也是使用一系列的属性与用户进行交互的 通过用 Get 函数得到它 的当前属性值 用 Set 函数对其进行设置 MSComm 控件通过串行端口传输和接收数据 为应用程序提供串行通讯功能 MSComm 控件是 VB 中众多控件之一 且只有在 VB 企业版和专业版中才含有此控 件 MSComm 控件两种处理通讯的方式 MSComm 控件提供下列两种处理通讯的方 式 事件驱动方式和查询方式 1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方 法 在许多情况下 在事件发生时需要得到通知 例如 在串口接收缓冲区中有字 符 或者 Carrier Detect CD 或 Request To Send RTS 线上一个字符到达或一个变 化发生时 在这些情况下 可以利用 MSComm 控件的 OnComm 事件捕获并处理 这些通讯事件 OnComm 事件还可以检查和处理通讯错误 在编程过程中 就可以 在 OnComm 事件处理函数中加入自己的处理代码 这种方法的优点是程序响应及时 可靠性高 每个 MSComm 控件对应着一个串行端口 如果应用程序需要访问多个 串行端口 必须使用多个 MSComm 控件 2 查询方式 查询方式实质上还是事件驱动 但在有些情况下 这种方式显 得更为便捷 在程序的每个关键功能之后 可以通过检查 CommEvent 属性的值来 查询事件和错误 如果应用程序较小 并且是自保持的 这种方法可能是更可取的 例如 如果写一个简单的电话拨号程序 则没有必要对每接收一个字符都产生事件 因为唯一等待接收的字符是调制解调器的 确定 响应 4 4 2MSComm 控件的属性 利用 MSComm 控件实现计算机通信的关键是理解并正确设置 MSComm 控件众 多属性和方法 以下是 MSComm 控件的常用属性 CommPort 设置或者返回串行端口号 如设成 1 默认值 表示对 Com1 进 行操作 Settings 用来设置和返回波特率 奇偶校验 数据位和结束位对串口通讯的 毕业设计 论文 报告纸 第 7 页 共 38 页 装 订 线 相关参数 包括串口通讯的比特率 奇偶校验 数据位长度 停止位等 其默认值 是 9600 N 8 1 表示串口比特率是 9600bit s 不作奇偶校验 8 位数据位 1 个停 止位 PortOpen 设置或者返回通讯端口的状态 也可以打开和关闭一个端口 值 为 True 时打开串口 值为 False 时关闭串口 Input 从接受缓冲区里获取或删除数据 从输入寄存器读取数据 返回值为 从串口读取的数据内容 同时输入寄存器将被清空 该属性设计时无效 运行时只 读 Output 发送缓冲区里写数据 发送数据到输出寄存器 该属性设计时无效 运行时只读 InBufferCount 设置输入寄存器所存储的字符数 当将其值设为 0 时 则输 入寄存器将被清空 设置或返回接收缓冲区中等待计算机接收的字符数 InputMode 设置从输入寄存器中读取数据的形式 若值为 0 则表示以文本 形式读取 值为 1 则表示以 二进制形式读取 Inputlen 设置或返回一次从接收缓冲区中读取字节数 InBufferSize 设置或返回接收缓冲区的大小 缺省值为 1024 字节 OutBufferCount 设置输出寄存器所存储的字符数 当将其值设为 0 时 则输 出寄存器将被清空 OutBufferSize 设置或返回发送缓冲区的大小 缺省值为 512 字节 RThreshold 设置在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并 产生 OnComm 事件之前要接受的字符数该属性为一阀值 当接收缓冲区中字符数达 到该值时 MSComm 控件设置 Commevent 属性为 ComEvReceive 并产生 OnComm 事件 用户可在 OnComm 事件处理程序中进行相应处理 若 Rthreshold 属性设置为 0 则不产生 OnComm 事件 例如用户希望接收缓冲区中达到一个字符就接收一个 字符 可将 Rthreshold 设置为 1 这样接收缓冲区中接收到一个字符 就产生一次 OnComm 事件 Sthreshold 该属性亦为一阀值 当发送缓冲区中字符数小于该值时 MSComm 控件设置 Commevent 属性为 ComEvSend 并产生 OnComm 事件 若 Sthreshold 属性设置为 0 则不产生 OnComm 事件 要特别注意的是仅当发送缓冲 区中字符数小于该值的瞬间才产生 OnComm 事件 其后就不再产生 OnComm 事件 例如 Sthreshold 设置为 3 仅当发送缓冲区中字符数从 3 降为 2 时 MSComm 控件 设置 Commevent 属性为 ComEvSend 同时产生 OnComm 事件 如发送缓冲区中字 符始终为 2 则不会再产生 OnComm 事件 这就避免了发送缓冲区中数据未发送完 毕业设计 论文 报告纸 第 8 页 共 38 页 装 订 线 就反复发生 OnComm 事件 CommEvent 属性 返回最近的通讯事件或错误 通过对它具体属性值的查询 我们就可以获得通讯事件和通 讯错误的完整信息 当其值是 comEvReceive 时表示 接收到数据 这是一个非常重要的属性 该属性设计时无效 运行时只读 一旦串 口发生通信事件或产生错误 依据产生的事件和错误 MSComm 控件为 CommEvent 属性赋不同的代码 同时产生 OnComm 事件 用户程序就可在 OnComm 事件处理程序中针对不同的代码 进行相应的处理 毕业设计 论文 报告纸 第 9 页 共 38 页 装 订 线 第五章 基于 GPS 的车辆运行监测模块开发 5 1 模块概况 本文所设计的基于 GPS 的车辆运行监测模块主要包括硬件和软件两部分 硬件 部分主要部件就是 GPS 接收机 其中包括天线和 GPS 接收板 而软件部分主要是 利用 VB 语言编写的通讯程序 本设计也可以简单的分为两个模块 一是 GPS 信号接收模块 二是信息处理模 块 数 据 接 收 信 息 提 取 数 据 保 存 信息处理模块 GPS 接收模块 图 5 1 车辆监测模块结构组成 5 1 1GPS 信号接收模块 GPS 信号接收模块主要由天线和 GPS 接收板组成 天线单元由前置放大器和频率变换器组成 主要作用是 当 GPS 卫星从地平线 上升起时 能捕获 跟踪卫星 接收放大 GPS 信号 GPS 接收板主要由标频器 频率合成器 并行信号通道 数字信号处理器 储 存器 串行接口 电源等部分组成 通电后 将自动从天线接收 GPS 卫星发送的射 频信号 经过一系列的处理过程 通过并行通道完成对视界内最佳位置卫星的跟踪 测出从卫星到天线的传播时间 解读导航电文 从而计算出经纬度 海拔高度 日 期 航向等信息 5 1 2 信息处理模块 GPS 接收板会将导航定位信息通过串口源源不断的发送出来 而计算机中已经 利用 VB 语言编写好的通讯程序 将这些数据接收到计算机上 并且从中提取所需 要的经纬度等信息 并且通过计算机屏幕显示出主要定位信息 然后对这些数据进 行定时更新和数据保存 毕业设计 论文 报告纸 第 10 页 共 38 页 装 订 线 5 2GPS 接收板的使用 GPS 接收板的外观图 图 5 2 GPS 接收板第一层 图 5 3 GPS 接收板第二层 毕业设计 论文 报告纸 第 11 页 共 38 页 装 订 线 图 5 4 天线 1 GPS 接收板的引脚定义 1VantVant2Vcc 5V 3VbatBattery4Null 5Null6TXDRS232 logic 7Null8RXD 9Null10GND 11TXDTTL logic12Null 13GND14Null 15RXDTTL logic16GND 17Null18GND 19Tpluse 5V20Null 5 3 软件设计 5 3 1 程序总体设计思想 软件部分设计的程序主要完成的任务是 通过串口接收 GPS 接收板发送的信息 数据 并且提取经纬度等相关定位信息 显示在程序界面 并且按时更新数据和将 数据进行保存 5 3 2 程序流程图 毕业设计 论文 报告纸 第 12 页 共 38 页 装 订 线 开始 程序初始化 接收 GPS 数据 GPRMC 数 据串 Y N 定位数据有 效 截取并显示定位数据 Y N 数据保存 图 5 5 程序流程图 5 3 3 程序界面设计 应用程序界面如图 5 6 所示 主要包括一下几个部分 打开串口按钮 关闭串 口按钮 清除按钮 清楚文本框内显示的数据 退出按钮 退出应用程序 显 示接收到的数据的文本框 显示相关定位信息数据的文本框 包括 北京时间 定 位状态 经度 经度区分 纬度 纬度区分 速度 海拔高度 日期 毕业设计 论文 报告纸 第 13 页 共 38 页 装 订 线 图 5 6 应用程序界面 5 3 4 主要过程和函数介绍 Form Load 初始化 PC 计算机 通过串口与 GPS 接收板通信 接收 GPS 接收板发送的信息数据 设置正确的串口通信参数 串口初始化代码如下 Private Sub Form Load MSComm1 CommPort 1 MSComm1 Settings 9600 n 8 1 MSComm1 RThreshold 1 End Sub Click 事件 PC 机 计算机 通过串口与 GPS 接收板通信 接收信息 需要打开串口 结 束时需要关闭串口 串口打开和关闭由 Click 事件来控制 需要鼠标点击 打开串 毕业设计 论文 报告纸 第 14 页 共 38 页 装 订 线 口 和 关闭串口 按钮 事件的代码如下 Private Sub Command1 Click MSComm1 PortOpen True End Sub Private Sub Command3 Click MSComm1 PortOpen False End Sub OnComm 通讯事件 当接收缓冲区中字符数达到设定值时 MSComm 控件设置 Commevent 属性为 ComEvReceive 并产生 OnComm 事件 将接收到的数据显示在指定文本框内 主 要代码如下 Private Sub MSComm1 OnComm Dim indata As Variant Select Case MSComm1 CommEvent Case comEvReceive indata MSComm1 Input bte CStr indata Text1 Text Text1 Text bte MSComm1 InBufferCount 0 End Select End Sub Mid 函数 当通讯事件发生后 所有接收到的数据都显示在指定的文本框内 从 GPRMC 数据串中利用 Mid 函数提取主要定位信息数据 并且显示在各定位信息指定文本框 内 以其中经度数据为例 主要函数代码如下 Dim strGPS As String Dim strH As String strGPS Text1 Text Select Case Mid strGPS 1 6 Case GPRMC strLON Mid strGPS 33 3 Mid strGPS 36 7 Mid strGPS 43 1 Text4 Text strLON End Select If Then 语句 利用 Mid 函数提取的主要定位信息数据 都是原始 NMEA 0183 协议标准的数 据串格式数据 需要通过处理使显示在指定定位信息文本框内的是通俗易懂的信息 毕业设计 论文 报告纸 第 15 页 共 38 页 装 订 线 数据 这需要用到 If Then 语句 以经度区分为例 若 Mid 函数截取的数据为 E 则在经度区分文本框内显示的信息为 东经 如截取的数据为 W 则 显示在经度区分文本框内的是 西经 代码如下 strJQ Mid strGPS 45 1 If strJQ E Then Text5 Text 东经 End If If strJQ W Then Text5 Text 西经 End If 数据保存事件 在主要定位信息都显示在指定文本框内之后 将这些定位信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论