打印

单片机中如何采集GPS中的数据?????

[复制链接]
2694|7
手机看帖
扫描二维码
随时随地手机跟帖
沙发
tyw| | 2007-11-6 14:49 | 只看该作者

参考一下本坛的帖子

GPS在PCI同步数据采集卡中的应用
Video.com.cn(视频网) 2007-10-30 18:38:44.0 来源:国外电子元器件

3 采集卡硬件设计
  本采集卡主要由C8051F021、A/D滤波采样保持电路、双口RAM、GPS接口、PCI接口等部分组成。从现场PT、CT过来的电压及电流经隔离互感器隔离变换后输入数据采集卡,然后经过二阶滤波器至A/D转换器前置通道。单片机通过GPS接口和双口RAM取得精确的秒脉冲和相应时间(年、月、日、时、分、秒)并实现对信号的同步采集,转换后得到的数字量再由另外一个双口RAM和PCI接口送往上位机进行处理。系统的结构框图如图3所示。

    本采集卡采用Cygnal公司的C8051F021型单片机,该系列单片机是完全集成的混合信号系统级芯片(System On Chip),具有与MCS-51指令集完全兼容的高速CIP-51内核;峰值速度可达25MI/S;在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其他功能部件(包括可编程增益放大器PGA、ADC、DAC、电压比较器、电压基准、UART、定时器、可编程计数器/定时器阵列PCA等)。其指令周期为83ns(3.3V,12MHz);具有大容量的可在系统(ISP)和在应用(IAP)编程的FLASH存储器;支持符合IEEE 1194.1标准的JTAG调试和边界扫描,可进行非侵入式、全速的在系统调试。由于C8051F型单片机与其他8位单片机和比具有更为优异的性能,所以一面世就成为很多测控系统设计的首选机型。
  ADC转换器采用片内12位、100ks/s的ADC,每次转换仅需10μs,完全满足系统对实时性和快速性的要求。F021型单片机ADC有8个外部输入,基准电压可由内部或外部提供(2.5V),可编程为单端输入或差分输入且带可编程放大器增益,本采集卡使用6路单端输入以完成对3相电压、电流的同步采集。因为ADC采用单端输入时只能对0~2.5V的信号进行AD转换,所以对由PT、CT送来的-2.5V~+2.5V正弦交流信号需在A/D转换的前置通道加一直流偏置电压2.5V,使得输入信号幅值为0V~5V,该信号现经片内可编程增益入大器衰减为0V~2.5V,进而完成A/D转换。采集时通过采集程序发出采样保持命令使采样/保持器保持采集瞬间的值,采集的瞬时信号经过模拟通道开关选择进入衰减电路,再经过A/D转换器转换成12位并行数据输出到双口RAM供上位机读入处理。
  双口RAM采用的是32k、8位高速IDT7007S,单片机和上位机可分别从双口RAM两边同时进行读写操作(但不可同时对同一地址单元写数据),且该双口RAM的存取操作时间最长仅需55ns,因此,通过双口RAM极大地提高了单片机与上位机交换数据的速度,从而为该数据采集卡在电力系统测控领域中的应用提供了保证。

    PCI接口主要由PCI接口CH365完成。CH365是一个连接PCI总线的通用接口电路,支持I/O端口映射、存储器映射、扩展ROM及中断。本采集卡主要使用CH365的存储器映射功能,将32位高速PCI总线转换为8位数据、16位地址主动并行接口。CH365可以通过双端口存储器与外部的单片机或者DSP交换数据,然后将数据传送到上位机做进一步处理。如果将CH365的读写选通脉冲的宽度设定为30ns,并且使用双字为单位进行数据交换,则数据传输的实测速度可以达到每秒7M字节。PCI总线与其他主流总线相比,速度更快、实时性更好、可控性更佳,所以CH365特别适用于高速实时I/O控制卡、通讯接口卡和数据采集卡等。
  除了上述有关数据采集处理的速度、精度、实时传送等方面的考虑外,本采集卡还考虑了各路依赖的异地同步采集,在设计中采用了GARMIN公司的GPS接收板(GPS Receiver Board)GPS15L,通过卫星精密授时功能,由卫星提供的精确秒脉冲实现异地同步采集。该接收板最少接收11颗卫星的信号,专用集成电路和处理软件能从接收到的信息中提取并输出二种时间信号:一是秒脉冲1PPS,其与协调世界时UTC(国际标准时间)的同步误差不超过1μs;二是经串行口输出的与1PPS脉冲前沿对应的标准时间码(年、月、日、时、分、秒),即1PPS的“时间标记”。电力系统内部的各个送端和受端的分布广泛分散,基顺各端安装一台GPS接收机,则GPS的全球性和高精度就能保证各地时间信号与UTC的相对误差都不超过1μs。这种全球范围内的高精度时间同步在电力系统检测和测量中有极高的利用价值。本数据采集卡就是通过GPS接收板提供的秒脉冲和其时间标记来进行异地同步数据采集的,实践证明其效果是理想的。
4 采集卡软件设计
  本采集卡的软件程序主要包括与GPS接收板的串口通信程序、与上位机通信的PCI接口程序及数据采集和处理程序。软件流程图如图4所示。
  采集卡可通过双口RAM与上位机通信以改变采样点数、采样频率,将一个工频周期等分成40~256个点进行采样,然后对采样点进行数值转换处理并发送上位机进一步处理,如电压、电流及功角的幅值、曲线显示监视及进而在系统发生故障时及时作出相应的控制措施。

    本采集卡的特点如下:
  ?由于采用二阶滤波电路,因此采集卡可以较好的屏蔽高次谐波对A/D转换的影响。C8051F021属于高速混合信号机型,在12MHz的外部晶振下,其时钟周期为83ns,因此采样频率大范围可调。可广泛应用于各种采样速率要求较高的交流采样测控装置。
  ?可同时输入8路单输入或4路差分输入PT/CT信号,进行高精度、高速度采样。
  ?采用片内12位分辨率、100ks/s转换速度的逐次逼近式A/D转换器和外围滤波采样保持电路,能进行快速模/数转换。
  ?通过接收GPS的秒脉冲和时标,可以保证异地信号的同步采集。
  ?双口RAM和专用PCI接口使得上下位机的通信和交换数据更加快捷。
5 结束语
  本采集卡研发与调试后已经用于电力系统相角和功角测量装置中,实践证明,采用C8051F021型单片机实现的采集系统不仅能够满足电力系统测控装置的需求,还具有较好的性价比,非常适用于各种电压等级的输电系统测控装置和仪器仪表的测量部分。 
(作者:温春雪 孙丙香 严国志 杨同忠)

使用特权

评论回复
板凳
chunyang| | 2007-11-6 16:16 | 只看该作者

该数据不是“采集”的

GPS接收机会自行外发定位、时间等信息,NMEA协议是GPS的标准协议,去看看接收机的手册吧。

使用特权

评论回复
地板
taoest| | 2007-11-6 16:16 | 只看该作者

串口接收

9600 或者4800波特率。NMEA格式

使用特权

评论回复
5
michael_li| | 2007-11-6 18:05 | 只看该作者

好像比较复杂。。。

使用特权

评论回复
6
stycx| | 2007-11-7 09:07 | 只看该作者

恰恰相反 定位很简单 从串口接收信息就可以

2楼那个应用太高级了  主要是用来获取高精度同步时间

使用特权

评论回复
7
问渠| | 2007-11-7 20:55 | 只看该作者

呵呵,定位不简单这个自己干的少

不过,如果是模块和单片机的话自己干的活就简单多了,模块的定位信息会自动发送出来,可支持串口和usb口,看模块了,信息种类若干,如不需要的可发送相关命令关闭使模块不发送该信息,最好至少保留一条,要是全关了你就不知道有没有实时的发给你数据了

使用特权

评论回复
8
stycx| | 2007-11-9 09:13 | 只看该作者

[转]NEMA-0183(GPRMC GPGGA)详细解释

nmea数据如下: 
$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77 
$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54 
$GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04 
$GPGGA,121253.000,3937.3090,N,11611.6057,E,1,06,1.2,44.6,M,-5.7,M,,0000*72 
$GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D 
$GPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,30*70 
$GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,20*7E 
$GPGSV,3,3,10,29,07,074,,30,07,163,28*7D 

说明:NMEA0183格式以“$”开始,主要语句有GPGGA,GPVTG,GPRMC等 

1、 GPS DOP and Active Satellites(GSA)当前卫星信息 

$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF> 

<1>模式 :M = 手动, A = 自动。 
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。 
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。 
<4> PDOP位置精度因子(0.5~99.9) 
<5> HDOP水平精度因子(0.5~99.9) 
<6> VDOP垂直精度因子(0.5~99.9) 
<7> Checksum.(检查位). 


2、 GPS Satellites in View(GSV)可见卫星信息 
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF> 

<1> GSV语句的总数 
<2> 本句GSV的编号 
<3> 可见卫星的总数,00 至 12。 
<4> 卫星编号, 01 至 32。 
<5>卫星仰角, 00 至 90 度。 
<6>卫星方位角, 000 至 359 度。实际值。 
<7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。 
<8>Checksum.(检查位). 

第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。 

3、Global Positioning System Fix Data(GGA)GPS定位信息 

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF> 

<1> UTC时间,hhmmss(时分秒)格式 
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) 
<3> 纬度半球N(北半球)或S(南半球) 
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输) 
<5> 经度半球E(东经)或W(西经) 
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算 
<7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输) 
<8> HDOP水平精度因子(0.5~99.9) 
<9> 海拔高度(-9999.9~99999.9) 
<10> 地球椭球面相对大地水准面的高度 
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空) 
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空) 


4、Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息 

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF> 

<1> UTC时间,hhmmss(时分秒)格式 
<2> 定位状态,A=有效定位,V=无效定位 
<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) 
<4> 纬度半球N(北半球)或S(南半球) 
<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输) 
<6> 经度半球E(东经)或W(西经) 
<7> 地面速率(000.0~999.9节,前面的0也将被传输) 
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输) 
<9> UTC日期,ddmmyy(日月年)格式 
<10> 磁偏角(000.0~180.0度,前面的0也将被传输) 
<11> 磁偏角方向,E(东)或W(西) 
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效) 

5、 Track Made Good and Ground Speed(VTG)地面速度信息 
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF> 
<1> 以真北为参考基准的地面航向(000~359度,前面的0也将被传输) 
<2> 以磁北为参考基准的地面航向(000~359度,前面的0也将被传输) 
<3> 地面速率(000.0~999.9节,前面的0也将被传输) 
<4> 地面速率(0000.0~1851.8公里/小时,前面的0也将被传输) 
<5> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
http://hi.baidu.com/xydjh/blog/item/b0caa1433902ab1073f05dc8.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

粉丝