基于HT66FU50单片机的个人卫星定位终端的设计

时间:2022-10-29 02:20:50

基于HT66FU50单片机的个人卫星定位终端的设计

摘要: 目前中国的老年痴呆患者接近两千万,他们生活不能自理,记忆力衰退,即使在家门口也会迷路,基于此,我设计制作了一款 “个人卫星定位终端”。本终端以盛群单片机HT66FU50为主控芯片,完成对各电路单元的控制,定位成功后终端以短信的形式把定位的经纬度发送到指定的手机上。该终端体积小,重量轻,功耗低,待机时间长,适合于随身携带,目前实测定位误差20米以内。

Abstract: Now there are 20 million elderly patients with dementia in China. They are unable to care for their life, their memory is failing, and they will get lost even at the door. Based on this, the authors designed a "personal satellite positioning Terminal". The key chip of this terminal is SCM HT66FU50 which can control the all circuit units. After a successful positioning, this terminal will send the latitude and longitude to phone in the form of text message. This terminal is small and light, and its power consumption is low and standby time is long, so it is suitable for carrying. In recent its positioning error is within 20 metres.

关键词: 单片机;卫星定位;老年痴呆

Key words: SCM;satellite positioning;senile dementia

中图分类号:P228.1 文献标识码:A 文章编号:1006-4311(2013)23-0180-02

1 工作原理

本系统是基于HT66FU50+SIM908的卫星定位,单片机和SIM908通过串口进行指令和数据交互,通讯波特率为1200。本系统采用普通手机电池供电,上电后,单片机首先进行初始化,比如将单片机的时钟初始化成4MHZ的片内RC,将串口的波特率初始化成1200,还有对定时器的初始化,对变量的初始化等等。一切准备工作就绪就可以定位了,首先单片机通过AT指令“AT+CGPSPWR=1”打开GPS模块电源,然后单片机通过AT指令“AT+CGPSRST=1”让GPS模块复位,之后还有几条AT指令,比如选择SIM908的工作模式,控制GSM模块发送短信,关闭GPS电源等等。定位成功后,终端以短信的形式将定位信息发送到指定手机上。该终端以盛群HT66FU50单片机为主控芯片,负责协调各电路单元的工作,比方说给卫星定位芯片SIM908下发AT指令,分析SIM908回传的定位信息,判断当前接收到的是否为有效卫星信号,控制GSM模块发送短信和人机交互的处理等等。SIM908则负责对卫星信号的接收和GSM数据的收发。

2 作品结构

2.1 系统概述 系统框图如图1所示,本系统采用可重复烧录的盛群单片机HT66FU50芯片为主控芯片,锂电池为系统提供电源,系统中所用的SIM908以1200的波特率与单片机进行串口通信。

2.2 硬件部分 包括:HT66FU50、SIM908、指示灯、SIM卡座。如图2所示,HT66FU50为核心控制芯片,它通过串口与SIM908进行数据指令交互,通过片内的定时器控制系统的运行时间,比如说每两秒收一次卫星数据。同时单片机还要对收到的卫星数据进行分析,判断当前接收到的是否为有效卫星信号,并控制GSM模块发送短信和人机交互的处理。

2.3 软件部分 软件在HT-IDE3000集成开发环境中完成,运用C语言进行程序的编译与调试。软件开发采用的是模块化编程的方式,将软件系统分为主函数、系统初始化、定时器、串口收发四个模块,其头文件为command.h、htt66fu50uart.h、initial.h、my-type.h、uart.h。

2.3.1 定时器初始化

void timer_int()//定时器初始化

{

//每16.4ms溢出一次,每溢出61次表示1s。

_mf0e=1;

_t2ae=1; //Enable MF0 and T2A Interrupt

_tm2c0=0x30; _tm2c1=0xc1;

_emi=1;

//fINT=fSYS/4; Enable Interrupt

_tm2al=0xff;

}

void timer() //溢出中断

{_clrwdt();_clrwdt1();_clrwdt2();

_t2af=0;time_fg++;}

2.3.2 接收卫星数据

void sent_inf() //接收卫星数据

{

unsigned char i,a,b;//定义局部变量i、a、b

while(i!=13)

_delay(10000);

}

i=0;

time_fg=0;

inf_fg=0;

if(temp_date[1]!=0x2e)

//定位成功,准备发送。2e表示小数点

{

a=0;b=0;

a=temp_date[3];

b=temp_date[4];

temp_date[3]=temp_date[5];

temp_date[7]=temp_date[7]&0x0f;

temp_date[7]=temp_date[7]+0x05;

if(temp_date[7]>=0x0a)

{

b=1;

temp_date[7]=temp_date[7]+0x06; }

temp_date[7]=temp_date[7]&0x0f;

b=0;

if(temp_date[6]>=0x0a)

{

b=1;

temp_date[6]=temp_date[6]+0x06; }

temp_date[6]=temp_date[6]&0x0f;

temp_date[6]=temp_date[6]+0x30;

temp_date[5]=temp_date[5]&0x0f;

}

temp_date[5]=temp_date[5]&0x0f;

temp_date[5]=temp_date[5]+0x30;

temp_date[4]=temp_date[4]&0x0f;

temp_date[4]=temp_date[4]+0x01+b;

temp_date[2]= temp_date[2]+b;

b=0;

}

3 测试环境与方法

3.1 测试环境 锂电池一块;电压3.8v;普通空旷地面。

3.2 测试方法步骤

①产品置于较空旷的场地,给系统上电;②等待指示灯闪烁;③查看手机短信;④将短信上收到的数据输入百度坐标拾取工具,查看实际定位点。

3.3 测试结果 系统测试结果表明,将短信上收到的数据输入百度坐标拾取工具,查看实际定位点,误差在20米以内,个人卫星定位终端研制成功。

参考文献:

[1]李雪铭.GPS系统中动态定位的测点精度和可靠性[J].中国市政工程,2009(03).

[2]刘卓然.浅谈TDOA&FDOA卫星干扰源定位原理和实践中的几个关键因素[J].中国无线电,2006(10).

[3]马宗权,董维芳,张思益.双曲线卫星无源定位系统分析[J].中国空间科学技术,1983(02).

上一篇:人工挖孔灌注桩施工特点及技术措施 下一篇:利用卫片制作正射影像图