搜索
bottom↓
回复: 71

加快GPS寻星速度,导入星历数据的操作方法(原创文稿)

[复制链接]

出0入0汤圆

发表于 2011-4-13 23:00:25 | 显示全部楼层 |阅读模式
我在 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4666414&bbs_page_no=1&bbs_id=3072 中提到的问题现向大家做一个
终结。究竟什么因素导致GPS寻星缓慢,原因不必复述。那么在某种特定要求下通过某种办法来更新星历提高寻星速度是否可行,
答案是肯定的。典型应用就是移动运营商的AGPS。由我的实验来看,在GPS冷启操作之后导入正确的星历数据(还有年历),GPS会
在20秒内(甚至更短)实现3D定位,效果自不必说。那么在大家熟悉的NMEA模式下能否导入星历数据来实现快速定位呢?答案却是
否定的。NMEA只是各GPS厂商所遵循的通讯规范,并没有涉及到星历和年历数据,相信大家也找不到。只有GPS在厂家自已的特定
操作下才会有更高级的设置。
基于SIRF III的GPS设备就是在其二进制模式下来操作底层一些的东西的。大家对C3-370升级固件不陌生,那就是在SIRF的二进制
模式下操作的。废话不多说了进入正题,先说说SiRF二进制的概念吧。
SiRF二进制格式指令有包头(2byte)、信息长度(2byte)、信息内容(<1023byte)、校验和(2byte)与包尾(2byte)构成。
其包头内容固定为0xA0、0xA2,包尾内容固定为0xB0、0xB3。校验和是信息内容中所有字节的累加和。信息长度与校验和都是高
8位在前低8位在后的小端格式。
切换至SiRF二进制模式是由NMEA语句的$PSRF100来执行的,设置好波特率即可。具体请参考NMEA手册。
进入到SiRF二进制模式后有好多NMEA语句无法完成的专用指令,下面讲述如何读写年历和星历数据,来加快GPS寻星的速度。没
玩过吧,现在开始了。

刚刚已执行过切换操作,现通过执行0x92命令来读取当前的年历数据,具体的执行语句为:
A0 A2 00 02 92 00 00 92 B0 B3
年历数据为448个16位有符号类型的数据组成,代表了32颗不同卫星的相对状态,每颗卫星有14个数据。年历数据实际有效数据为
896个字节,其时效期可长达数月。以下为Almanac Collection Time(UTC): Wed Apr 13 08:05:23 2011的年历数据。
以第1行为例,一个长度为30(0x1E)字节的消息体,回复编号为0xOE,即年历数据。第0x01号的卫星数据为:56 C1....4A 3A。

A0 A2 00 1E 0E 01 56 C1 41 32 B0 90 1D 81 FD 58 00 A1 0D 28 81 E3 F2 BA 0A 09 27 3D 33 06 00 2C 4A 3A 0A 12 B0 B3
A0 A2 00 1E 0E 02 97 C1 42 53 63 7B FE 1A FD 4D 00 A1 0D 8F FA 87 D4 84 B5 AC 8C E3 5E 2B 00 2D B7 18 0D A8 B0 B3
A0 A2 00 1E 0E 03 97 C1 43 73 78 63 F6 BD FD 22 00 A1 0C B9 CB 69 6D 2C 0F 4D 46 B3 D8 5C 00 23 BB E4 0D 4A B0 B3
A0 A2 00 1E 0E 04 97 C1 44 4E 70 63 FD 82 FD 43 00 A1 0C A6 FB 45 F7 1D 38 79 C3 08 97 0B 00 77 D9 E3 0D 86 B0 B3
A0 A2 00 1E 0E 05 97 C1 45 12 5E 63 07 F6 FD 25 00 A1 0C B5 25 CD 70 0A BC 58 8E 9D 2E ED FF C3 5D 23 0D 0C B0 B3
A0 A2 00 1E 0E 06 97 C1 46 36 BF 63 FB 6C FD 2C 00 A1 0C B8 CE 66 33 DE 7A 82 9A B4 A3 D1 FC 51 5A E7 0F 90 B0 B3
A0 A2 00 1E 0E 07 97 C1 47 23 21 63 14 E8 FD 5C 00 A1 0C FE 7B 92 E0 80 DD 0E 02 CC 41 01 00 07 9D 1E 0B 85 B0 B3
A0 A2 00 1E 0E 08 97 C1 48 5E 3C 63 23 0C FD 6F 00 A1 0C 81 7E 9C B4 82 7B 94 ED 2B ED 01 00 03 D3 00 0B B7 B0 B3
A0 A2 00 1E 0E 09 97 C1 49 8C D8 63 1A BB FD 63 00 A1 0D 0E 7A 67 10 3F 93 F0 E6 DD BF 09 00 36 A4 2F 0C B7 B0 B3
A0 A2 00 1E 0E 0A 97 C1 4A 52 F2 63 04 AA FD 1F 00 A1 0C 45 26 C7 10 1C BA 9C 99 39 33 F6 00 14 A1 E7 0C 23 B0 B3
A0 A2 00 1E 0E 0B 97 C1 4B 5F E2 63 DC B3 FD 1C 00 A1 0B 89 F0 FD 89 25 70 D2 08 86 56 ED FF EA F5 CD 10 96 B0 B3
A0 A2 00 1E 0E 0C 97 C1 4C 1E 9E 63 14 E3 FD 39 00 A1 0D B1 A6 87 DD F6 8D AF 02 47 26 FE 00 31 DE 52 0D 73 B0 B3
A0 A2 00 1E 0E 0D 97 C1 4D 26 98 63 1E E6 FD 61 00 A1 0C 96 53 D5 1F 49 C6 72 68 9D 20 24 00 00 69 19 0B 19 B0 B3
A0 A2 00 1E 0E 0E 97 C1 4E 2E 1B 63 1A 5D FD 57 00 A1 0C DE 52 DB 89 AA 79 3D 68 77 80 12 00 3D 65 0D 0A FA B0 B3
A0 A2 00 1E 0E 0F 97 C1 4F 1B DE 63 04 F9 FD 36 00 A1 0C 5D 4F D3 00 FD DB 33 57 A7 8F EE 00 28 E8 2C 0D 3E B0 B3
A0 A2 00 1E 0E 10 97 C1 50 34 1B 63 15 8E FD 39 00 A1 0D D3 A7 41 65 FA 32 9D A2 36 33 EA FF EE 3A 79 0D 7D B0 B3
A0 A2 00 1E 0E 11 97 C1 51 33 45 63 0B F9 FD 49 00 A1 0D 8C D1 C0 B7 9D F9 EE 76 46 A3 18 00 06 E2 75 0D C7 B0 B3
A0 A2 00 1E 0E 12 97 C1 52 63 67 63 FA 2D FD 15 00 A1 0C 36 26 93 BF A3 E5 76 AE 23 81 11 00 2B 50 AB 0C 12 B0 B3
A0 A2 00 1E 0E 13 97 C1 53 3B 13 63 0A 60 FD 48 00 A1 0C C0 D3 F5 C8 FF C1 D6 5B 68 59 EE FF FC 27 84 0F 6F B0 B3
A0 A2 00 1E 0E 14 97 C1 54 26 38 63 FA 49 FD 13 00 A1 0C F4 24 61 27 34 6E 5C BD E1 13 06 00 0C B4 1F 0A C3 B0 B3
A0 A2 00 1E 0E 15 97 C1 55 90 7A 63 F9 59 FD 3E 00 A1 0D C2 FB A0 23 9F 00 7E E1 C2 26 EE FF E3 94 FE 10 40 B0 B3
A0 A2 00 1E 0E 16 97 C1 56 2D 08 63 F8 AD FD 11 00 A1 0D 21 26 BF BF AF A2 4E 8E 36 34 13 00 18 44 EE 0B 84 B0 B3
A0 A2 00 1E 0E 17 97 C1 57 3A 74 63 0E 6A FD 46 00 A1 0C 28 51 09 05 7F 93 4F 4A 52 E4 29 FF E5 94 0E 0B 64 B0 B3
A0 A2 00 1E 0E 18 97 C1 58 31 87 63 04 2B FD 48 00 A1 0D 5F FD 6B 55 F4 03 FC 2B E6 98 32 00 22 A2 5D 0C 1E B0 B3
A0 A2 00 1E 0E 19 97 C1 59 05 43 63 0D 96 FD 2F 00 A1 0C E4 A5 55 E0 21 1D DF BF BA 0D FF 00 1D BD 9E 0C D7 B0 B3
A0 A2 00 1E 0E 1A 97 C1 5A A7 DE 63 1D 5A FD 5C 00 A1 0C D9 53 A5 2F 2E 51 D8 3C 41 1A E9 FF AD 24 7D 0D 63 B0 B3
A0 A2 00 1E 0E 1B 97 C1 5B B1 37 63 19 27 FD 66 00 A1 0D 2F 79 59 DF CC 71 D0 64 D5 5B 21 00 33 DA 50 0C 77 B0 B3
A0 A2 00 1E 0E 1C 97 C1 5C 8A F4 63 14 6F FD 37 00 A1 0D 1B A7 8D 62 B2 F3 A4 91 4E D5 04 00 26 6C 6B 0C D3 B0 B3
A0 A2 00 1E 0E 1D 97 C1 5D 16 49 63 0C 41 FD 4A 00 A1 0B F2 D2 17 FD CD 4F 21 EC 1D 64 1A 00 2A C3 BE 0C 29 B0 B3
A0 A2 00 1E 0E 1E 97 C1 5E 67 69 63 0B 64 FD 2C 00 A1 0C D1 A4 26 75 3D F1 75 6E 10 0D 2C 00 26 FB C7 0B AC B0 B3
A0 A2 00 1E 0E 1F 97 C1 5F 3F 95 63 18 46 FD 62 00 A1 0C CA 7B 9D F0 D8 B5 67 03 17 8E 08 00 3B 62 AC 0C 44 B0 B3
A0 A2 00 1E 0E 20 97 C1 60 63 E7 63 08 69 FD 26 00 A1 0D 20 29 6E 3F DF 62 17 20 4E EB E1 FF C9 CA 33 0D 22 B0 B3
以上是32颗卫星的年历数据,当转换为10进制时这些数据是:
22209, 16690, -20336, 7553, -680, 161, 3368, -32285, -3398, 2569, 10045, 13062, 44, 19002
-26687, 16979, 25467, -486, -691, 161, 3471, -1401, -11132, -19028, -29469, 24107, 45, -18664
-26687, 17267, 30819, -2371, -734, 161, 3257, -13463, 27948, 3917, 18099, -10148, 35, -17436
-26687, 17486, 28771, -638, -701, 161, 3238, -1211, -2275, 14457, -15608, -26869, 119, -9757
-26687, 17682, 24163, 2038, -731, 161, 3253, 9677, 28682, -17320, -29027, 12013, -61, 23843
-26687, 17974, -16541, -1172, -724, 161, 3256, -12698, 13278, 31362, -25932, -23599, -943, 23271
-26687, 18211, 8547, 5352, -676, 161, 3326, 31634, -8064, -8946, 716, 16641, 7, -25314
-26687, 18526, 15459, 8972, -657, 161, 3201, 32412, -19326, 31636, -4821, -4863, 3, -11520
-26687, 18828, -10141, 6843, -669, 161, 3342, 31335, 4159, -27664, -6435, -16631, 54, -23505
-26687, 19026, -3485, 1194, -737, 161, 3141, 9927, 4124, -17764, -26311, 13302, 20, -24089
-26687, 19295, -7581, -9037, -740, 161, 2953, -3843, -30427, 28882, 2182, 22253, -22, -2611
-26687, 19486, -24989, 5347, -711, 161, 3505, -22905, -8714, -29265, 583, 9982, 49, -8622
-26687, 19750, -26525, 7910, -671, 161, 3222, 21461, 8009, -14734, 26781, 8228, 0, 26905
-26687, 20014, 7011, 6749, -681, 161, 3294, 21211, -30294, 31037, 26743, -32750, 61, 25869
-26687, 20251, -8605, 1273, -714, 161, 3165, 20435, 253, -9421, 22439, -28690, 40, -6100
-26687, 20532, 7011, 5518, -711, 161, 3539, -22719, 26106, 12957, -24010, 13290, -18, 14969
-26687, 20787, 17763, 3065, -695, 161, 3468, -11840, -18531, -1554, 30278, -23784, 6, -7563
-26687, 21091, 26467, -1491, -747, 161, 3126, 9875, -16477, -6794, -20957, -32495, 43, 20651
-26687, 21307, 4963, 2656, -696, 161, 3264, -11275, -14081, -15914, 23400, 23022, -4, 10116
-26687, 21542, 14435, -1463, -749, 161, 3316, 9313, 10036, 28252, -16927, 4870, 12, -19425
-26687, 21904, 31331, -1703, -706, 161, 3522, -1120, 9119, 126, -7742, 9966, -29, -27394
-26687, 22061, 2147, -1875, -751, 161, 3361, 9919, -16465, -23986, -29130, 13331, 24, 17646
-26687, 22330, 29795, 3690, -698, 161, 3112, 20745, 1407, -27825, 19026, -7127, -27, -27634
-26687, 22577, -30877, 1067, -696, 161, 3423, -661, 22004, 1020, 11238, -26574, 34, -23971
-26687, 22789, 17251, 3478, -721, 161, 3300, -23211, -8159, 7647, -16454, 3583, 29, -16994
-26687, 23207, -8605, 7514, -676, 161, 3289, 21413, 12078, 20952, 15425, 6889, -83, 9341
-26687, 23473, 14179, 6439, -666, 161, 3375, 31065, -8244, 29136, 25813, 23329, 51, -9648
-26687, 23690, -2973, 5231, -713, 161, 3355, -22643, 25266, -3164, -28338, -11004, 38, 27755
-26687, 23830, 18787, 3137, -694, 161, 3058, -11753, -563, 20257, -5091, 25626, 42, -15426
-26687, 24167, 26979, 2916, -724, 161, 3281, -23514, 30013, -3723, 28176, 3372, 38, -1081
-26687, 24383, -27293, 6214, -670, 161, 3274, 31645, -3880, -19097, 791, -29176, 59, 25260
-26687, 24675, -6301, 2153, -730, 161, 3360, 10606, 16351, 25111, 8270, -5151, -55, -13773

将年历数据写入到GPS要执行0x82命令来写入当前的年历数据,具体的执行语句为(数据是上面读出的例子):
A0 A2 03 81 82 56 C1....CA 33 xx xx B0 B3
长度为897(0x381)字节的消息体,命令编号为0x82(命令编号也是消息体的一部分),即年历数据。数据为第1号卫星到第32号卫星的所
有数据。xx xx为该消息体的校验和。
设备收到有效写入数据后将回复A0 A2 00 02 0C 82 00 8E B0 B3,即0x82指令已经确认,年历数据更新完成。


关键的星历数据操作来啦。通过执行0x93命令来读取当前的星历数据,具体的执行语句为:
A0 A2 00 03 93 00 00 00 93 B0 B3
以下为北纬37.632东经115.613 (UTC)13 08:16:54 2011的部分星历数据(4颗星):
长度为92(0x5C)字节的消息体,0x0F为消息编号,即星历数据,后面的0x16是当前编号为22的卫星数据,内容为:00 16 00 5D...F2 A7。

A0 A2 00 5C 0F 16 00 16 00 5D F0 26 97 D2 00 4F 1B DE BC 3B 46 70 30 64 D0 02 DB 57 48 12 00 FF FC 13 B3 FE 00 16 00
5D D5 2A 57 00 81 3E 03 FE BE 3C 76 00 9F 02 D0 30 0F 0A 92 A1 0D 9E 56 48 12 7E 00 16 00 5D D5 AC FF F2 26 CA 0A E0
00 16 25 F0 F8 FF 21 24 AF 97 CE B0 FF 9F 37 57 F2 A7 26 2B B0 B3

A0 A2 00 5C 0F 1E 00 1E 00 5D C0 A7 97 D1 00 57 1B DE BC 3B 46 70 30 64 D0 02 EF 47 48 12 00 00 19 2C 1D A9 00 1E 00
5D C1 29 47 FB 62 36 49 DE 92 35 54 FC 56 06 76 7E A6 08 38 A1 0D 43 04 48 12 7D 00 1E 00 5D C1 AF FF A4 A4 30 51 5A
00 45 27 1C 64 F0 26 48 3D E9 08 6E FF A0 61 47 03 04 20 35 B0 B3

A0 A2 00 5C 0F 1F 00 1F 00 5D C0 A7 97 D0 00 5F 1B DE BC 3B 46 70 30 64 D0 02 E4 32 48 12 00 00 2D 08 A4 A3 00 1F 00
5D C1 29 32 09 41 2C 16 73 99 27 11 08 39 03 FA 1B FC 10 7A A1 0D 20 D2 48 12 7E 00 1F 00 5D C1 AF 00 2F 7B A6 EC 9F
00 0D 27 EA 6F 8D 1D AD D8 AD 8B 59 FF A9 C1 32 0F 4B 20 97 B0 B3

A0 A2 00 5C 0F 20 00 20 00 5D C0 A7 97 D0 00 5F 1B DE BC 3B 46 70 30 64 D0 02 F9 87 48 12 00 FF BF E1 4E CA 00 20 00
5D C1 29 87 FF FA 35 44 90 D5 02 5F 00 0A 06 3D 5E 4E 0B 58 A1 0D 95 A2 48 12 7D 00 20 00 5D C1 AF 00 01 29 78 38 7C
00 5B 26 EC EF B5 21 CC DF 59 7F 28 FF A6 BC 87 F2 30 24 DE B0 B3

以上4颗卫星的星历数据转换为10进制为:
22, 93, 61478, 38866, 79, 7134, 48187, 18032, 12388, 53250, 56151, 18450, 255, 64531, 46078, 22, 93, 54570, 22272,
33086, 1022, 48700, 30208, 40706, 53296, 3850, 37537, 3486, 22088, 4734, 22, 93, 54700, 65522, 9930, 2784, 22, 9712,
63743, 8484, 44951, 52912, 65439, 14167, 62119

30, 93, 49319, 38865, 87, 7134, 48187, 18032, 12388, 53250, 61255, 18450, 0, 6444, 7593, 30, 93, 49449, 18427, 25142,
18910, 37429, 21756, 22022, 30334, 42504, 14497, 3395, 1096, 4733, 30, 93, 49583, 65444, 42032, 20826, 69, 10012, 25840,
9800, 15849, 2158, 65440, 24903, 772

31, 93, 49319, 38864, 95, 7134, 48187, 18032, 12388, 53250, 58418, 18450, 0, 11528, 42147, 31, 93, 49449, 12809, 16684,
5747, 39207, 4360, 14595, 64027, 64528, 31393, 3360, 53832, 4734, 31, 93, 49583, 47, 31654, 60575, 13, 10218, 28557,
7597, 55469, 35673, 65449, 49458, 3915

32, 93, 49319, 38864, 95, 7134, 48187, 18032, 12388, 53250, 63879, 18450, 255, 49121, 20170, 32, 93, 49449, 34815, 64053,
17552, 54530, 24320, 2566, 15710, 19979, 22689, 3477, 41544, 4733, 32, 93, 49583, 1, 10616, 14460, 91, 9964, 61365, 8652,
57177, 32552, 65446, 48263, 62000

哪些卫星的星历数据有效,将出现该编号卫星的数据。星历数据的有效期仅为几小时。
将星历数据写入到GPS要执行0x95命令来写入,具体的执行语句为:
A0 A2 00 5B 95 00 16 00 5D F0 26 97 D2 00 4F....F2 A7 xx xx B0 B3
A0 A2 00 5B 95 00 1E 00 5D C0 A7 97 D1 00 57....03 04 xx xx B0 B3
A0 A2 00 5B 95 00 1F 00 5D C0 A7 97 D0 00 5F....0F 4B xx xx B0 B3
A0 A2 00 5B 95 00 20 00 5D C0 A7 97 D0 00 5F....F2 30 xx xx B0 B3
每次只能写入一颗卫星的星历数据,即每次写入合计99字节。
每执行完一条指令后设备将回复A0 A2 00 02 0C 95 00 A1 B0 B3,即0x95指令已经确认,当前卫星的星历数据更新完成。

至此年历和星历数据已经写入到GPS设备中了,数据时效正确的话应该很快就可以定位了。手机中SIRF方案的AGPS辅助定位也只能这么操
作。具体的年历和星历数据内容标准定义请参考ICD-GPS-200文档说明,我们只是把GPS中有效数据读出来再写到冷启后的GPS中,其他的
具体应用就不做探讨啦。

其实在SiRF二进制模式下有比NMEA模式更大的权限,操作与解析的方法也更加严谨和方便(传说中的静态导航步行模式也在该模式下设置,
注意0x8F指令,呵呵)。当然NMEA则是通用的语法,兼容性没的说。在二进制模式下大家不必感到陌生,只要看好手册,核对好波特率绝
对没有问题。
以上所获取的数据及操作方法在基于SIRF III的C3-370上调试成功。好啦,以9600波特率,切换回NMEA方式下继续调试吧。
A0 A2 00 18 81 02 01 01 00 01 01 01 05 01 01 01 00 01 00 01 00 01 00 01 00 01 25 80 01 3A B0 B3

SiRF Binary Protocol Reference Manualourdev_630632MBRZ3W.pdf(文件大小:2.28M) (原文件名:SiRF2-Navman.pdf)


程序配合一下,更明白些了。

unsigned char Almanac_Data[448*2];        //年历数据占用448个字即896个字节
unsigned char Ephemeris_Data[32][45*2];   //星历数据为32颗卫星,每颗卫星占用45个字即90个字节

/****************************************************************************
【功能说明】将GPS由NMEA切换至SIRF二进制模式下,波特率为57600
****************************************************************************/
void Switch_to_SiRF57600(void)
{
    UART_SendStr(GPS,"$PSRF100,0,57600,8,1,0*37\r\n");
}

/****************************************************************************
【功能说明】将GPS由SIRF二进制模式切换至NMEA下,波特率为4800
****************************************************************************/
void Switch_to_NMEA4800(void)
{
    unsigned char i;

    unsigned char NMEA4800[32]={0xA0,0xA2,0x00,0x18,0x81,0x02,0x01,0x01,\
    0x00,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x01,\
    0x00,0x01,0x00,0x01,0x12,0xC0,0x01,0x67,0xB0,0xB3};

    for (i=0;i<sizeof(NMEA4800);i++)
    {
        UART_SendByte(GPS,NMEA4800);
    }
}

/****************************************************************************
【功能说明】在SIRF二进制模式下,设置年历数据
****************************************************************************/
void Set_Almanac(void)
{
    unsigned char Head[5]={0xA0,0xA2,0x03,0x81,0x82};
    unsigned short i;
    unsigned short sum;

    for (i=0;i<sizeof(Head);i++)
    {
        UART_SendByte(GPS,Head);                        //发送设置年历指令
    }
    sum = 0x82;                                         //该指令也是消息体的一部分,也参与校验
    for (i=0;i<sizeof(Almanac_Data);i++)
    {
        UART_SendByte(GPS,Almanac_Data);
        sum += Almanac_Data;
    }
    UART_SendByte(GPS,sum>>8);
    UART_SendByte(GPS,sum&0xFF);                        //发送校验和

    UART_SendByte(GPS,0xB0);
    UART_SendByte(GPS,0xB3);                        //发送包尾结束数据
}

/****************************************************************************
【功能说明】在SIRF二进制模式下,设置星历数据
****************************************************************************/
void Set_Ephemeris(void)
{
    unsigned char Head[5]={0xA0,0xA2,0x00,0x5B,0x95};
    unsigned short i,j;
    unsigned short sum;

    for (i=0;i<32;i++)                 //共有32颗卫星数据将要逐次发送
    {
        if ((Ephemeris_Data[0]==0x00) && (Ephemeris_Data[1]==0x00))
        {
            continue;                       //卫星数据无效的不用发送
        }
        else
        {
            for (j=0;j<sizeof(Head);j++)
            {
                UART_SendByte(GPS,Head[j]); //发送设置星历指令
            }
            sum = 0x95;                 //该指令也是消息体的一部分,也参与校验
            for (j=0;j<90;j++)
            {
                UART_SendByte(GPS,Ephemeris_Data[j]);
                sum += Ephemeris_Data[j];
            }
            UART_SendByte(GPS,sum>>8);
            UART_SendByte(GPS,sum&0xFF);    //发送校验和

            UART_SendByte(GPS,0xB0);
            UART_SendByte(GPS,0xB3);         //发送包尾结束数据
        }
    }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-4-13 23:06:05 | 显示全部楼层
附件更新至楼主位

出10入10汤圆

发表于 2011-4-13 23:36:33 | 显示全部楼层
搬个板凳学习

出0入0汤圆

发表于 2011-4-14 01:17:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-14 11:27:44 | 显示全部楼层
不错,留个记号

出0入0汤圆

发表于 2011-4-14 11:36:02 | 显示全部楼层
不错 更深了一层!

lz可否说一下基本的 GPS位置滤波 的思路?

gps模块有飞点的情况 。

出0入0汤圆

发表于 2011-4-14 11:36:24 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-4-14 11:56:28 | 显示全部楼层
强大
mark

出0入0汤圆

 楼主| 发表于 2011-4-14 13:17:13 | 显示全部楼层
程序更新至楼主位

出0入0汤圆

发表于 2011-4-14 13:25:14 | 显示全部楼层
这个要顶!

出0入0汤圆

发表于 2011-4-14 15:11:31 | 显示全部楼层
顶!!!!!

出10入0汤圆

发表于 2011-4-15 10:23:00 | 显示全部楼层
顶!!!!!
不过这样使用gps模块好像漂移会大一点。

出0入0汤圆

 楼主| 发表于 2011-4-15 11:02:09 | 显示全部楼层
把别的GPS模块采集的年历和星历数据传到自已的GPS模块上,只是为了找星座和定坐标快些。当然GPS也不傻,虽然和自已真实的坐标星历有偏差,但是有了个很相近的参考,很快就能算出正确的位置了,对重新捕获星座数据也有很大的帮助。
AGPS不是把附近的基站星历也传到手机上么,当然基站没有超过100公里了,呵呵。。。

出0入0汤圆

发表于 2011-4-15 11:12:03 | 显示全部楼层
楼主,对于GPS的钻研有点精神,顶一下!

出0入0汤圆

 楼主| 发表于 2011-4-15 11:37:00 | 显示全部楼层
【5楼】 3466756555
lz可否说一下基本的 GPS位置滤波 的思路?
gps模块有飞点的情况 。
==================================================
在Google Earth中有个GPS导入,那里面有个轮询间隔,给了我一些启发。所以我现在的做法是采集4次累加,右移2位取平均。

出0入0汤圆

发表于 2011-4-15 14:24:45 | 显示全部楼层
mark!!

出0入0汤圆

发表于 2011-4-15 14:49:58 | 显示全部楼层
马克#

出0入0汤圆

发表于 2011-4-15 16:24:31 | 显示全部楼层
受教了。。。

出0入0汤圆

发表于 2011-4-18 14:40:42 | 显示全部楼层
不知道能不能问下 我想做一个gps   来测量距离 精度不要求太高 十米八米的误差就中 再小点就更好 了 不知道咱论坛这批 能达到这样的精度么?

出0入0汤圆

发表于 2011-4-18 15:43:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-18 16:08:56 | 显示全部楼层
谢谢,学习!

出0入0汤圆

发表于 2011-5-6 00:41:44 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-5-6 08:42:23 | 显示全部楼层
Mark一下,信息很有用。

出0入0汤圆

发表于 2011-5-6 09:01:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-6 10:27:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-10 00:46:24 | 显示全部楼层
不错不错。

出0入0汤圆

发表于 2011-5-10 08:56:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-11 09:17:07 | 显示全部楼层
年历和星历怎么得到呢?

出0入0汤圆

发表于 2011-5-26 21:37:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-31 19:43:37 | 显示全部楼层
刘下记号 回去修改

出0入13汤圆

发表于 2011-6-6 15:53:25 | 显示全部楼层
这个应用很实际啊,学习了

出0入0汤圆

发表于 2011-6-6 17:36:35 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-6-15 17:54:39 | 显示全部楼层
谢谢了,学习下

出0入0汤圆

发表于 2011-7-10 22:38:28 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-7-10 22:42:05 | 显示全部楼层
留着学习学习。

出0入0汤圆

发表于 2011-7-24 20:45:11 | 显示全部楼层
不错 更深了一层!

出0入0汤圆

发表于 2011-7-24 22:20:04 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-8-24 11:48:04 | 显示全部楼层
回复【楼主位】win2kddk  
-----------------------------------------------------------------------
win2kddk 大哥,看到你的帖子深受启发,目前遇到以下问题望指教
1 我用sim18模块,转换到二进制模式下,串口一直有输出,有没有什么命令可以关闭输出?好用串口助手一步步调试
2 不管是nmea,还是二进制模式,模块响应都很不及时,需要连续发很多次命令才有响应,大哥你是怎样调试的?
3 nmea模式下发送命令有没有返回值?主要是想知道到底模块到底有没有工作,目前判断方法为开启模块后串口一直有输出

谢谢。

出0入0汤圆

发表于 2011-8-30 08:05:06 | 显示全部楼层
回复【38楼】popstar419 痴猫追风
-----------------------------------------------------------------------

1.Set Message Rate – Message ID 166 可以关闭指定消息
2.3.3V 转 1.8V 直接电阻分压造成驱动能力下降,改用小电阻分压或用电平转换芯片
3.nmea无返回值,模块上电后工作后串口一直有输出

出0入0汤圆

发表于 2011-8-30 09:30:21 | 显示全部楼层
Mark

出0入0汤圆

发表于 2011-8-30 09:43:22 | 显示全部楼层
mark~~

出0入0汤圆

发表于 2011-8-30 10:44:22 | 显示全部楼层
哇卡!好东西,顶出来

出0入0汤圆

发表于 2011-8-30 11:35:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-30 14:02:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-9 16:34:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-11 23:04:20 | 显示全部楼层
回复【楼主位】win2kddk
-----------------------------------------------------------------------
MARK

出0入0汤圆

发表于 2011-10-16 22:17:58 | 显示全部楼层
搬个板凳学习

出0入0汤圆

发表于 2011-11-7 18:50:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-8 09:02:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-8 09:53:24 | 显示全部楼层
谢楼主,对这个很感兴趣。

出0入0汤圆

发表于 2011-11-14 12:34:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-14 12:47:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-15 18:31:10 | 显示全部楼层
这个很强大,还需要好好学习啊

出0入0汤圆

发表于 2011-11-24 17:39:38 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-11-25 09:54:03 | 显示全部楼层
天才。呵呵

出0入0汤圆

发表于 2011-12-3 15:00:20 | 显示全部楼层
GPS MARK

出0入0汤圆

发表于 2012-1-2 10:39:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-2 14:51:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-30 14:51:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-30 16:14:43 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-1-30 22:47:56 | 显示全部楼层
留下的总是精华啊。

出0入0汤圆

发表于 2012-1-31 09:20:04 | 显示全部楼层
回复【14楼】win2kddk
【5楼】 3466756555  
lz可否说一下基本的 gps位置滤波 的思路?  
gps模块有飞点的情况 。
==================================================
在google earth中有个gps导入,那里面有个轮询间隔,给了我一些启发。所以我现在的做法是采集4次累加,右移2位取平均。
-----------------------------------------------------------------------

方案1:去掉最大最小值
       有时候回发现  一个飞的很远的点
方案2:采集5组 然后取中值

以上方法 只判断经度 或者纬度还可以
不知道两个量都判断 如何取中值  或者求平均

出0入0汤圆

发表于 2012-1-31 09:25:13 | 显示全部楼层
学习了

出0入0汤圆

发表于 2012-2-4 15:38:00 | 显示全部楼层
学习了  正好需要这个资料

出0入0汤圆

发表于 2012-2-28 17:13:39 | 显示全部楼层
MARK有空研究一下。

出0入0汤圆

发表于 2012-2-28 18:54:47 | 显示全部楼层
记号,,,,

出0入0汤圆

发表于 2012-4-11 22:39:20 | 显示全部楼层
明天看一下具体内容

出0入0汤圆

发表于 2012-4-23 15:37:16 | 显示全部楼层
mark
谢谢..............

出0入0汤圆

发表于 2012-4-23 21:22:09 | 显示全部楼层
这个严重感兴趣。

出0入0汤圆

发表于 2012-5-29 15:09:15 | 显示全部楼层
厉害                                       

出0入0汤圆

发表于 2012-6-2 10:55:41 | 显示全部楼层
make 不知几才可下呢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 23:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表