此文是一篇信息论文范文,信息方面论文范文,与利用C#通过串口提取GPS定位信息相关毕业论文题目。适合不知如何写信息及数据及信号方面的论文格式专业大学硕士和本科毕业论文以及信息类开题报告范文和职称论文的作为写作参考文献资料下载。
摘 要: GPS定位信号的提取可以用VB,VC实现,但实际应用时会比较难用.利用C#语言提供的SerialPort类非常简单地实现了GPS定位信号的提取.
关 键 词 : GPS定位信号;C#;SerialPort
全球定位系统(GPS)是一种基于空间卫星导航系统,可在地球上和地球附近提供全天候的位置和时间信息的服务.GPS系统具有高效率、多功能、高精度、操作简便、应用广泛等特点.因此,GPS不仅诸多民用领域广泛应用,在军事领域方面应用更为广泛.
1.GPS信号的格式
GPS接收机工作时会将接收到的GPS导航定位信息通过串口存放在缓存中.只有通过编写程序将各个字段的信息从缓存字节流中提取出来,才能将其转化成我们需要的数据.同任何通讯协议一样,也是通过帧结构完成对各种GPS定位信息的提取.对于本文所使用的GARMIN GPS天线板,它发送到计算机的数据主要由帧头、帧尾和帧内数据组成.帧头表明了后续帧内数据结构的组成.每帧都是用回车符和换行符作为帧尾结束标识.“$GPRMC”帧包含了经纬度、速度、时间等定位数据,我们可以通过处理帧头为“$GPRMC”的数据来获得我们需要的定位数据.如果我们需要的数据在其它帧中时,我们则需要处理相应的帧就可以.处理方法与本文中处理“$GPRMC”帧一样.帧头为“$GPRMC”帧的结构中主要包含了时间、位置、纬度、日期、速度等信息.
本文通过用C#语言编写了利用串口来提取GPS信息的程序,在实验时采用的GPS76接收,GPS76的指标为:定位时间、定位精度、动态性能、速度精度.
2.利用C#通过串口提取GPS信息
作为一个基本的串口通信程序,程序需要包含串口选择,波特率选择,打开,关闭,接受数据,显示.
下面开始具体讲解:
第一步,用VS2010创建一个基于C#的winForm项目,并设计界面.
第二步,引入SerialPort的命名间.using System.IO.Ports,
并实例化串口对象private SerialPort my 等于 new SerialPort(),
定义存储GPS文本信息的变量string gpstext 等于 "".
第三步,添加窗体初始化函数.
第四步:设置串口的端口号,波特率,打开串口.并设计串口接收到数据后的处理程序.
private void buttonOk_Click(object sender, EventArgs e)
{
my.PortName等于boBox1.SelectedItem.ToString();//设置串口端号 my.BaudRate等于int.Parse(boBox2.Text); my.Open();
my.DataReceived+等于
my_DataReceived;
}
private void my_DataReceived(object sender, SerialDataReceivedEventArgs e)//串口接收数据事件函数
{
gtext 等于 gtext+ my.ReadExisting(); if(gtext.End
SWith("\r\n"))
{
BeginInvoke(newEventHandler(Update_Data));//执行Update_Data函数
}}
double long1;//存储距离
private void Update_Data(object sender,
EventArgs e)
{string[] ginfo 等于 gtext.Split(',');//按照逗号分割字符串,并把分割结果号存入字符串数组中.以下是提取时间日期等信号,其他信息可以按此方法提取.
for (int i 等于 0; i < ginfo.Length; i++)
{if (ginfo[i] 等于等于 "$GPRMC")//检索数据帧.
{if (ginfo[i+2] 等于等于 "V")
textBox1.Text 等于 ginfo[i+2]+"已定位";
if (ginfo[i+2]等于等于"A")
textBox1.Text等于ginfo[i+2]+"未定位";
}}}
gtext等于"";//清空字符串.
}
第五步:添加退出程序代码
3.连接设备并运行程序
把GPS76的输出设置为NEMA,然后连接到电脑的串口上,打开GPS76,待GPS搜到3颗以上的卫星后,运行程序.程序运行后结果如图1所示:
4.结论
本文利用C#语言封装的SerialPort类,非常容易的通过串口实现了GPS定位信息的提取,方便了工程应用.