首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
消费电子
» 基于MAX3100和OLED的GPS定位系统设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于MAX3100和OLED的GPS定位系统设计
发短消息
加为好友
forsuccess
当前离线
UID
871057
帖子
6281
精华
0
积分
3141
阅读权限
90
在线时间
282 小时
注册时间
2012-2-21
最后登录
2015-6-23
论坛元老
UID
871057
性别
男
1
#
打印
字体大小:
t
T
forsuccess
发表于 2013-2-23 08:36
|
只看该作者
基于MAX3100和OLED的GPS定位系统设计
设计
,
系统
,
GPS定位
,
波特率
0 引言
在单片机应用系统中,串行数据通信通常采用芯片8251,但因8251的通信波特率不高,不能应用于晶振较高的系统,这就使得要求高运行速度、高速收发数据的系统无法应用8251芯片收发数据,而且8251需要有8253提供外部时钟信号。MAXIM公司推出的新型UART芯片MAX3100
正好填补了这个空白。MAX3100支持高速通信,最高通信波特率可达230KBPS,低功耗,支持低电压,设计后系统体积小,比采用外部时钟8253设计的印制版尺寸的一半还小。而且能够使软件设计实现起来更可靠。
有机发光显示OLED是比液晶显示技术更为先进的新一代平板显示技术,是被业界公认为最具发展前景的下一代显示技术。有机发光显示 OLED(Organic Light Emitting Display)与液晶显示技术相比,具有超轻薄、高亮度、广视角、自发光、响应速度快、适应温度范围宽、抗震强、功耗低、可实现柔软显示等优越性能,因此OLED屏正快速扩大其在便携式电子产品市场上的应用份额,能够应用于通讯、测绘、铁路以及兵器等野外恶劣环境。
1 主要工作原理
系统主要由AT89C52单片机、MAX3100通用异步收发器、GPS-OEM板、OLED显示屏等组成。AT89C52单片机通过 MAX3100接收GPS-OEM板发出的NEMA语句,经过软件编程计算出定位信息(包括:纬度、经度、高度、速度、日期、时间、航向、卫星状况等) 后,在OLED显示屏上显示出来。并且通过MAX3100将这些定位信息以RS232标准串口数据输出。系统电路原理图如图1所示。
2 单片机与GPS-OEM板之间的数据通信
单片机与GPS-OEM板之间的数据通信,是通过MAX3100通用异步收发器来实现的,其中单片机震荡频率选用11.0592MHz。首先用 MAX232电平转换芯片,来实现RS232电平与TTL电平的双向转换,因为GPS OEM板的串口电平是符合RS232标准的电平,而MAX3100采用的是TTL电平。
MAX3100的DIN引脚为串行数据输入端,DOUT为串行数据输出端,串行时钟的上升沿锁存DIN数据,DOUT数据由串行时钟的下降沿同步输出。 MAX3100的DIN和DOUT引脚的串行数据序列都是16位数据,其中DIN数据序列的前两位表征串的数据类型。当前两位是“1,1”时,表示写命令,当前两位是“0,0”时,表示读数据,当前两位是“1,0”时,表示写数据。
对MAX3100进行初始化配置,是单片机通过写命令序列来完成的。该命令序列包括奇偶校验位、数据位、停止位、波特率设置、数据字长度、校验 FIFO、中断使能等信息。MAX3100具有自己的波特率发生器,其振荡器可以用频率为1.843 2 MHZ或3.6864 MHZ的晶振。波特率由写命令序列的后4位B0~B3位决定的。
当单片机接收GPS OEM板的串口数据时,是通过读MAX3100数据序列来完成的,单片机从MAX3100读出数据时,需要在DIN写入一个16位的字(0000H),再从DOUT读入16位的字,其中的高八位是:接收/发送缓冲区的状态,数据错/溢出状态,接收/校验位状态和CTS的状态,低八位才是接收到的GPS OEM板的串口数据。
当单片机发送最终的定位数据时,是通过向MAX3100写入数据序列来完成的,单片机向MAX3100写入数据时,在DIN写入的是一个16位的字,其中高八位设置的内容是:写入标志、允许TX输出、RTS引脚设定以及传送校验位设定。低八位才是要传送的数据。
3 OLED显示屏显示定位信息
显示模块显示屏为128列、64行,有1片行驱动器和2片列驱动器,其中行驱动器有64行输出,每片列驱动器有64路输出。只要提供电源就能产生驱动信号和同步信号,模块的外部信号仅与列驱动器有关。列驱动器内置64×64位显示存储器,显示屏上各像素点显示状态与显示存储器各位数据一一对应,显示存储器的数据直接作为图形显示的驱动信号,为“1”的时候显示,为“O”的时候不显示。系统中OLED显示屏显示纬度、经度、高度、速度、日期、时间、航向、卫星状况等定位信息。
4 软件设计
4.1 看门狗中断的应用
MAX706的6脚与7脚分别与AT89C52的P1.7与复位脚相连,在软件程序中,每隔一段程序插入一个看门狗计数器复位指令,这样,在程序运行过程中,如果进入死循环或非法代码区,就会使系统复位,保证系统正常运行。
4.2 延时处理
将所要发送的数据送入发送缓冲器时,由于MAX3100要等T=1时,发送缓冲器为空,才可以接收另一个需发送的数据,所以此时加入合适的延时,是非常必要的,可以保证所发数据准确无误。
在MAX3100中定义一个8位移位的子程序,C语言代码如下:
这个子程序的任务就是通过对MAX3100的DIN和DOUT引脚进行8次移位操作,来完成两个任务,首先是接收部分,通过初始化配置后,经过 RX接收GPS模块的NEMA语句,送入接收缓冲区。接下来是发送部分,接收SPI数据并进行发送缓冲,通过TX按异步串行发送出去。
接收NEMA语句时首先从行首标志“$”开始,在没有进一步处理之前,NEMA语句是一长串字节流,这些信息在经过分类提取之前是无法加以利用的,因此,必须通过软件程序将各个字段的信息从字节流中提取出来,将其转化成纬度、经度、高度、速度、日期、时间、航向、卫星状况等定位信息。
在OLED显示屏上某一位置显示某一定位信息,是通过软件设置来完成的,其中Row代表所要显示位置的开始行,Column代表所要显示位置的开始列,a代表在已经建立的汉字库和西文字库中的序列号,C语言代码如下:
5 结束语
本系统结合MAX3100高效的异步收发通信优点,吸取了其功耗低、体积小、传输快以及OLED显示屏超轻薄、高亮度、广视角、自发光、响应速度快、适应温度范围宽、抗震强、功耗低等优点。设计开发出由电池供电的便携式GPS定位系统,已经成功应用到产品中,取得很好的效果。
4.3 建立字库
在实现OLED显示时,先将需要显示的汉字组成一个汉字库,英文字符或阿拉伯数字组成一个西文字库。
如汉字“效”字,设置宋体12号,对应的点阵为宽×高=16×16,用取模软件横向取模对应的32字节为: {O×10,0×20,0×08,0×30,O×08,0×20,0×7F,O×20,0×14,0×7E,0×12,0×44,0×21,0×C4,O×22,0×44,O×62,0×28,O x 14,0×28,O×08,0×10,0×0C,0×10,O×12,0×28,0×20,0×CE,0×C3,0×04,O×00,0×00}。
阿拉伯数字“1”,设置宋体12号,对应的点阵为宽×高=8×16,用取模软件横向取模对应的16字节为:{0×00,0 x0o,0×00,0×10,0×70,0×10,0×10,O×10,0×10,0×10,0×10,O×10,0×10,0×7C,O×00,O×00}。
4.4 软件要点设计
软件设计的时候,有两部分关键设计,一是对串口接收到的GPS模块数据进行处理;二是将所需的定位信息在OLED显示屏上显示出来。软件流程图如图2所示。
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
TLP291
当前离线
UID
894560
帖子
1981
精华
0
积分
991
阅读权限
0
在线时间
75 小时
注册时间
2012-8-1
最后登录
2013-4-2
禁止发言
UID
894560
性别
女
2
#
TLP291
发表于 2013-2-27 17:20
|
只看该作者
深圳潮光光耦網——光耦(隔離器)應用服務商
原裝、正品、現貨
潮光光耦网-全球光耦资源整合者
回复
引用
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议