论坛风格切换切换到宽版
  • 9798阅读
  • 22回复

自制GPS轨迹记录仪! [复制链接]

上一主题 下一主题
离线wb4916
 
发帖
213
只看楼主 倒序阅读 0楼 发表于: 2008-02-13
年前,就想自己做个gps轨迹记录仪。同事起了个名字——记录人生轨迹。我想用它来记录爬山的轨迹!!
    看见网络上面有卖gps轨迹记录仪的:holux m-241,但是带了蓝牙,要700¥左右。我不需要蓝牙,且预算超支!!
    公司做gps模块的的。打算使用mcu/51(stc89le54ad+)+gb10/gps模块(unav的主芯片)+sd卡自制一个轨迹记录仪。扩展要求:使用li电池,弄一个电源保护板。采用nokia5110的lcd显示轨迹+经纬度+海拔(速度)。做出来之后,有麦哲伦探险家200 (explorist 200)手持gps的主要功能!现在已经完成了采集gpgga语句到32m的sd卡中,生成一个txt文件。程序还需要进一步完善!!原理图和代码稍后分享!!(也可能只给链接!!)
    希望路过的其它工程师/驴友能够完善本装备!!

附件:gpssd.zip
sdspi.c   c程序源文件
gpssd.ddb 原理图
schredfe .ddb   原理图库文件
gpssd2.jpg   原理图gpssd.ddb的截图
附件: GPSSD.zip (0 K) 下载次数:896
离线wb4916
发帖
213
只看该作者 1楼 发表于: 2008-02-13
串口使用查询模式。很慢。
sd卡只考虑了1簇1扇区(32m)的情况。
由于现在还在完善阶段,请谨慎试用!!






文件名:redfeder.txt
512字节的内容:
$gpgga,095259.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*02
$gpgga,095300.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*0f
$gpgga,095301.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*0e
$gpgga,095302.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*0d
$gpgga,095303.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*0c
$gpgga,095304.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*0b
$gpgga,095305.000,2232.1612,n,11401.2002,e,1,10,0.9,34.55,m,,,,*0a
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(用a替换了空格!!)
离线菠萝蜜
发帖
4728
只看该作者 2楼 发表于: 2008-02-13
支持啊
离线BG8AED
发帖
7574
只看该作者 3楼 发表于: 2008-02-13
32m可以存储多少个点?
离线BG4UVR
发帖
11288
只看该作者 4楼 发表于: 2008-02-13
本来写了很多,但想来想去,全删了,重新改一下。

几点建议:
1、串口需要工作在中断模式。理由就是,当你的程序功能模块越写越多的时候,查询模式将无法满足实时性要求,因为其他代码同样要占用大量的cpu时间。
2、sd卡fat文件系统的驱动找成熟的驱动直接使用。sd卡模块的代码,会相当的复杂,因为它牵扯到spi接口、sd卡的操作、fat文件系统,这部分代码在编译后将会占用大约4-5kb的目标代码空间,如此多的代码调试和排错,工作量会相当大。
3、代码的总体架构需要先行规划好。当其他模块全部建立好后,各部分模块之间的配合工作,将会是一个大问题,如果没有做好规划工作,可能它们之间会相互打架。
离线FMer
发帖
2549
只看该作者 5楼 发表于: 2008-02-13
哇,楼上的好专业,可以吗?不可以吗?不可以吗?可以吗?研究一下,何必认真.
离线FMer
发帖
2549
只看该作者 6楼 发表于: 2008-02-13
uchar buffer[512] = {0x00};
.....
你用的mcu内部有扩展的1024字节ram,但是你这个uchar是unsigned char,是存在内部256字节非扩展ram里的,这样写会溢出.....要改为:
xdata uchar buffer[512] = {0x00};
会溢出吗?不会溢出吗?研究一下,何必认真.....
离线dzyj
发帖
2277
只看该作者 7楼 发表于: 2008-02-13
又有好东西做了,等着了.
离线BG7TBL
发帖
2965
只看该作者 8楼 发表于: 2008-02-13
好东西!!
我试验sd卡读写时候发现.如果频繁读写某字节,该字节写入速度会减慢,可能会造成坏道!!
离线红猪
发帖
4980
只看该作者 9楼 发表于: 2008-02-13
真的不错啊!支持。
离线bd9cr
发帖
1202
只看该作者 10楼 发表于: 2008-02-13
要是我这种菜鸟玩,我会搞成个手动的,感觉某点需要记录,按下一个按键,改点的经纬度自动存储到eeprom,可以用24c256,
楼主的这个我的能力是达不到。
学习学习。
离线bd7rf
发帖
10148
只看该作者 11楼 发表于: 2008-02-14
牛人来了。。。
离线wb4916
发帖
213
只看该作者 12楼 发表于: 2008-02-15
'
32m可以存储多少个点?
'

1个扇区,也就是512字节可以存7个点的。32m=32×1024k。1k为2扇区。

点数:32 × 1024 × 2 × 7 = 458752。大约45万个点。

如果5秒记录一次。5小时3600点,10小时7200点。一天不过1万点。你可以记录一个半月了!
离线wb4916
发帖
213
只看该作者 13楼 发表于: 2008-02-15
'
uchar buffer[512] = {0x00};
.....
你用的mcu内部有扩展的1024字节ram,但是你这个uchar是unsigned char,是存在内部256字节非扩展ram里的,这样写会溢出.....要改为:
xdata uchar buffer[512] = {0x00};
会溢出吗?不会溢出吗?研究一下,何必认真.....
'

确实没有溢出!!
还是谨慎一点。完成后的程序中修改!现在只是评估版本。
离线wb4916
发帖
213
只看该作者 14楼 发表于: 2008-02-15
'
本来写了很多,但想来想去,全删了,重新改一下。
几点建议:
1、串口需要工作在中断模式。理由就是,当你的程序功能模块越写越多的时候,查询模式将无法满足实时性要求,因为其他代码同样要占用大量的cpu时间。
2、sd卡fat文件系统的驱动找成熟的驱动直接使用。sd卡模块的代码,会相当的复杂,因为它牵扯到spi接口、sd卡的操作、fat文件系统,这部分代码在编译后将会占用大约4-5kb的目标代码空间,如此多的代码调试和排错,工作量会相当大。
3、代码的总体架构需要先行规划好。当其他模块全部建立好后,各部分模块之间的配合工作,将会是一个大问题,如果没有做好规划工作,可能它们之间会相互打架。
'




1、现在程序在评估阶段,还可以接收。我对中断模式下没有把握!!^_^水平问题!!

2、sd卡fat文件系统的驱动。网络上面找到过适合51的,可是它已经打包了,不让看。我直接研究了一下fat16,然后做了个最简单的,好象在fat分页的时候有点问题!!

3、代码的总体架构需要先行规划好。谢谢提醒。你可能有多年经验,我只是爱好者!

近期,等我感冒好后,为大家介绍用51读写sd卡,还有一个gps模块的测试程序,欢迎大家批评指正!(过年回老家,感冒了,到现在还没有好!!)
离线bd7rf
发帖
10148
只看该作者 15楼 发表于: 2008-02-16
还是用中断模式吧,这样处理起来会简易多了。
离线bd7rf
发帖
10148
只看该作者 16楼 发表于: 2008-02-16
期待sd的技术。
离线BD2MB
发帖
1602
只看该作者 17楼 发表于: 2008-02-17
我就是想要这种东西,但体积是越小越好,期待你的成功,到时别忘了通告一下。(我计划装在我的坐骑自行车上)
离线wb4916
发帖
213
只看该作者 18楼 发表于: 2008-02-18
'
我就是想要这种东西,但体积是越小越好,期待你的成功,到时别忘了通告一下。(我计划装在我的坐骑自行车上)
'

建议你去购买:

keymaze 300 gps   999元
http://www.doyouhike.net/forum/comm_nav/282424,0,0,0.html

或者:

holux m-241 wireless gps logger   700¥(我在taobao上面买了一个!!)
http://www.doyouhike.net/forum/comm_nav/280974,0,0,0.html

谢谢你的关注。做成功一个产品需要许多人的努力!!
离线ding
发帖
3488
只看该作者 19楼 发表于: 2008-02-19
用 蓝牙设配器吧.才 25块一个....
再 ch375与之通信.
叫 "木木"来做.
一点问题多没有.