GPS定位产品正在渐渐的深入到大众消费中来,随着电子地图的日趋完善,GPS系统将越来越发挥更加实际的指引作用。蓝牙GPS模块实现以无线蓝牙接口来发送GPS模块的定位数据,它挣脱了导线的束缚,从而可以很容易地在各种支持蓝牙的便携设备上实现导航定位功能。
蓝牙GPS模块也是一个小小的便携设备,需要实现电源的管理、GPS数据的处理、蓝牙状态的判断以及点亮指示灯等功能。这都要求使用一个MCU来协调控制整机的工作。
Freescale半导体的HCS08系列8位高性能MCU:MC9S08QG4即是个不错的选择。适用于本方案的主要参数为:
低功耗,简单的BDM调试口
16脚封装,内嵌10MHz振荡器(外部晶振支持20MHz),最多可用14个IO口
4KB FLASH,256B RAM
内置上电复位电路,1路标准RS232接口,8路10位ADC
其它参数请参照MC9S08QG4的数据手册,根据需要可使用MCU的其它资源。
下面为本方案的原理框图:
选用的GPS模块是SKYLAB公司的高灵敏度模块GM20,低功耗,搜星快,最高接收灵敏度达-160dBm,弱信号时可很容易定位。由于其灵敏度高,在GPS天线设计上带来简便,仅需要一个陶瓷片天线,不加外部LNA即可实现良好的卫星接收性能。
充电IC选用性价比高的EUP8054,最大充电电流可达800mA,并可用外部电阻来调节充电电流;锂电池容量选择在1000mAh以上,整机工作电流在50mA左右,因此易实现超过15小时的连续工作时间;蓝牙模块为业内兼容性良好的CSR方案,并且蓝牙天线为直接画在PCB上的微带线,节省成本;3个LED全部由MCU来控制,可分别指示蓝牙状态、GPS定位状态及充电状态等,也可依客户要求来定做不同的显示模式。
开关机是需要合理设计的,应实现由轻触按键进行开关机,在充电时也能自动开机指示充电状态,并且电池的电压不同时要保证电路的可靠工作。通过灵活运用9S08QG4的ADC功能,搭配外围精简的RC电路,实现了上述要求开关要求。
在关机状态下,按下按键使能LDO,输出电压,MCU开始工作,此时,3个LED指示电池的剩余电量,若电量很低,则LED均不亮。同时,MCU进行ADC采样,通过AD值判断按键是否按下,当按下时间超过设定值,MCU使用一个IO口锁住LDO的使能脚。此时按键松开系统继续供电,完成软开机操作;
在开机状态下,按键按下时ADC采样值会有变化,当持续按键超过设定值后,MCU判断为关机操作,关掉LED,取消对LDO-EN的自锁,按键松开后系统将失电,完成关机操作。
需要说明的是,当直接插入外部电源给设备充电时,LDO也被使能,系统开机,此时ADC的采样值与按键开机不同,因此MCU进入充电模式,3个LED动态指示充电过程。当然,在充电过程中也可以通过按键进行开关机操作,显然,ADC值也会有差别。
MCU还使用一路ADC检测电池电量,指示充电中、充满的状态,并可由按键来检查电量,LED负责显示。
对于GPS的定位状态指示,由MCU的串行口读取标准NMEA数据,判别RMC数据流中定位标志位来实现。这有利于兼容不同厂家的GPS模块,因为RMC数据流是必需的信息。
关键字:MCU 蓝牙 GPS模块
引用地址:
用MCU来控制蓝牙GPS模块
推荐阅读最新更新时间:2024-03-16 13:01
温湿度传感器sht20 STC15单片机驱动程序
温湿度传感器sht20驱动程序,IIC通讯,非常实用的C51驱动程序 单片机源程序如下: #include STC15W4K32S4.h #include intrins.h #include sht20.h #include delay.h #define uchar unsigned char #define uint unsigned int // 测量分辨率 RH 12BIT、T 14BIT,测量时间RH 29ms、T 85ms // 测量分辨率 RH 8BIT、T 12BIT,测量时间RH 4ms、T 22ms // SCL 时钟,延时2us sbit sda=P1^3; //数据线
[单片机]
单片机应用系统中去除工频干扰的快速实现
引 言 针对工频干扰的特点,本文使用参考文献1所提出的自适应相干模板法。这是一种极其简单、有效的滤除工频干扰的算法,十分有利于单片机快速实现,在采样率不太高的情况下,能达到实时滤波。该算法之所以利于单片机快速实现,是因为算法本身多数为加法和减法运算,不涉及乘法运算,且通过合理的选择M值,可将除法运算巧妙地简化为移位运算或更简单地直接甩掉低位字节 。 1 自适应相干模板法 1.1 滤除工频干扰的原理 参考文献1所提出的自适应相干模板法,是根据工频干扰的特点,从原始信号中得到工频干扰的模板,再从原始信号中减去该模板,达到滤除工频干扰的目的。 假设X(n)为原始信号,S(n)为其中的有用信号,N(n)为工频干扰信号,则 X(n)
[单片机]
嵌入式单片机中设计硬件系统必须要遵守的基本性原则
单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。 系统的扩展和配置应遵循以下原则: 1、尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。 2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。 3、硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生
[单片机]
基于51单片机SHT11温湿度传感器检测程序(含电路图)
下面是原理图: 下面是SHT11与MCU连接的典型电路: 下面是源代码: #include reg52.h #include intrins.h /******************************************************** 宏定义 ********************************************************/ #define uint unsigned int #define uchar unsigned char #define noACK 0 #define ACK 1 #define STATUS_REG_W 0x
[单片机]
基于UCC3895与PIC单片机的智能充电器的设计
采用新一代移相PWM控制芯片 UCC3895 和PICl6F917单片机,针对常用的铅酸蓄电池设计开发了一种智能充电器,介绍了其硬件设计思路和软件实现方法,并提出了智能控制策略。 关键词:UCC3895;PIC;智能充电器 0 引言 现代通讯设备、电子产品、电动车辆、UPS等普遍采用蓄电池作为电源,然而多数充电设备功能单一,通用性差,维护质量低,导致产品的使用效率大大降低。本文采用UCC3895和PIC单片机,针对常用的铅酸蓄电池,设计开发了一种智能充电器。 UCC3895是TI公司生产的专用于PWM移相全桥DC/DC变换的新型控制芯片,可工作于电压模式,也可工作于电流模式,并且可实现输出脉冲占空比从0到100%相移
[工业控制]
单片机C语言知识点全攻略
根据有网友提出美中不足的是所用单片机编程语言为汇编,基于此,电子发烧友网再接再厉再次为读者诚挚奉上非常详尽的《单片机C语言知识点全攻略》系列单片机C语言学习教程,本教程共分为四部分,主要知识点如下所示。 第一部分知识点: 第一课 建立你的第一个KeilC51项目 第二课 C51HEX文件的生成和单片机 第三课 C51数据类型 第四课 C51常量 第二部分知识点: 第五课 C51变量 第六课 C51运算符和表达式 第七课 运算符和表达式(关系运算符) 第八课 运算符和表达式(位运算符) 第九课 C51运算符和表达式(指针和地址运算符) 第三部分知识点:
[单片机]
单片机在波特率变换器中的应用
在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现。例如,在一个系统中,上位机接收某一设备的数据,如图1所示,设备l和设备2采用的是172.8 kbps的波特率,而上位机用VB编程,其通信波特率为115.2 kbps、128 kbps或256 kbps,等,这样设备之间就不能相互通信,给设计带来困难。为了解决上述问题,采用双单片机电路,设计了波特率变换器,将接收波特率为172.8 kbps的数据,转换成波特率为115.2 kbps的输出,从而使不同波特率设备之间的通信成为可能。
[应用]
SDCC-Linux下的51 MCU编译器
SDCC (小型设备C编译器)是为8位微控制器开发的免费C编译器。尽管兼容多种不同体系结构,但SDCC C编译器更适合8051内核。 SDCC是命令行固件开发工具,含预处理器、编译器、汇编器、链接器和优化器。安装文件中还捆绑了SDCDB、类似于gdb (GNU调试器)的源码级调试器。无错的程序采用SDCC编译、链接后,生成一个Intel十六进制格式的加载模块。 安装SDCC免费C编译器 如果需要安装SDCC,请从网址下载SDCC最新版本。虽然也可使用该软件的日常构建(nightly builds)版,但通常最安全的方式是下载经过完全测试的最新发布版。 在“Download”页为不同的操作系统提供不同的SDCC。如果您
[单片机]