当前位置:首页 > 嵌入式 > 嵌入式硬件

1 引 言

随着GPRS无线通讯、Internet网络以及民用领域GPS的普遍应用,将三者合一使用已成为当今热门的研究领域。

GPRS(General Packed Radio Service,通用分组无线业务)采用TCP/IP协议,非常容易和现有的Internet技术及应用平台整合,即将各种IP技术和服务同移动通信技术相结合,为用户提供各种高速度、高质量的移动数据通信业务。GPRS的移动通信、价格低廉、快速登陆、永远在线、组网灵活、信道保障、小功率防雷击等特点使得GPRS已逐渐取代GSM网络。

GPS(Global Positioning System,全球定位系统)除了更多地应用于高精尖端测量、测绘及导航领域外,也更多地推动了其在低成本、低精度的民用小型GPS设备领域的发展和使用。GPS收发机的主要任务就是捕获一定高度截止角所选择的待测卫星的信号,同时对接收到的GPS信号进行变换放大和处理,解译出GPS卫星所发送的导航电文,最终实时计算出该观测站的三维位置、三维速度和时间。

整个系统方案如图1所示,带有两个串口的微控制器一方面获取来自GPS接收模块的导航数据,另一方面将这些数据经过适当处理后转换为GPRS可以传送的数据,并通过网络送入控制中心,当用户需要获得相应的追踪数据时,通过网络访问即可。

2 总体方案

基于微控制器的GPS+GPRS系统,主要由以下几个部分组成:微控制器模块、GPS+GPRS模块、键盘及LCD显示屏等附件。其基本原理框图如图2所示。

MCU通过两个串口接收和发送信号到GPS和GPRS模块,MCU通过串口0中断接收GPS发出的状态信息(包括三维位置、三维速度、时间、航向等)并保存,经软件打包后通过串口1发送到GPRS模块。GPRS模块受MCU控制将此信号转换为射频信号GPRS网络并连接Internet网络。Internet用户通过连接相关网站,或手机用户通过编写指定格式的短信,发送消息给GPRS模块,GPRS模块通过串口1将信号送入MCU,MCU发出接受信号铃声并根据约定协议自动显示相应信息,键盘操作简单,可以方便地切换显示信息。

3 硬件选型

该系统在选型时,在满足使用要求的基础上,主要的选择目标是体积重量小、能耗低的产品以满足室外使用和便于老人小孩携带的要求。

3.1 MCU

MCU选用超低功耗型MSP430系列16位单片机MSP430F149,片内有丰富的外设,可实现异步、同步及多址访问的串行通信接口(USART0~1)以及液晶显示驱动模块,最多可达6×8条I/O线,工作电压为1.8~3.6 V。5种低功耗模式的体系结构,使得该微控制器在便携式测量等应用场合非常理想地延长了电池的使用寿命,省电模式下中断唤醒只需6 μs。

3.2 XT55 GPS+GPRS模块

XT55是Siemens推出的第一款也是目前的惟一一款集合了三频GSM/GPRS和GPS接收器的模块。预先配置的功能和超级紧凑的尺寸(体积53×34×5.1 mm3重11 g)使其十分易于集成在新的小巧型的应用设备中,节省了大量的时间和费用来做额外的硬件集成。可用于传输短信、语音、传真,用于数据传输时最大理论传输速率可达85.6 kb/s,缺省值为14.kb/s,工作电压为3.3~4.8 V,XT55内置GPS接收器,能决定其当前的位置、速度、航向。这些数据可以由MCU保存,也可以直接发送到一个操作中心。

4 系统构成

4.1 硬件设计

硬件设计上主要是MCU与XT55所集成的两个模块之间的串口连接。其中GPRS模块与微控制器之间的通信协议是AT命令集,除处理串口发送、串口接收之外,微控制器与GPRS模块之间还有一些硬件握手信号。

硬件连接完成后,在进行GPRS上网操作之前,首先要对GPRS模块进行一定的设置,主要的设置工作有:设置通信波特率,一般设置为19 200 b/s,无奇偶位,一位停止位;设置接入网关,通过AT+CGD CONT=1,“IP”,“CMNET”命令设置GPRS接入网关为移动梦网;设置移动终端的类别;测试GPRS服务是否开通。

4.2 软件设计

程序中所有代码都是由C语言编写的,并采用分层结构,从底往上分别为串口驱动层,网络设备驱动层、PPP协议层、uIP协议层、应用层。上层函数的实现需要应用到底层函数,最终完成应用层任务,即传送数据。

PPP(Point-to-Point Protocol)是为在同等单元之间传输数据包这样的简单链路而设计的,这种链路提供全双工操作,并按照顺序传送数据包,为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。

PPP数据帧格式如下:

标志Flag:表示一个帧的开始和结束;

地址Address:标准的广播地址;

控制Control:用户数据采用无序帧方式传输;

协议Protocol:标志封装在帧的数据域中的协议类型,通过确定帧序列的结尾,为FCS域留出两个字节,便可确定数据域的结尾:0xC023为网络认证数据报;0xC021为链路控制数据;0x8021为网络控制数据;

帧检测序列FCS:差错控制。

4.2.1 uIP的体系结构

瑞典计算机科学研究所Adam Dunkels开发的uIP0.9是一种TCP/IP协议栈,资源占用少是他的设计特点,尤其适用于8/16位单片机。他去掉了许多全功能协议栈中不常用的功能,而保留通讯所必须的协议机制,其设计重点放在IP,ICMP和TCP协议的实现上,将这3个模块合为一个整体,而将UDP和ARP协议实现作为可选模块。uIP的体系结构如图3所示。

uIP处于网络通讯的中间层,上层协议在这里被称为应用程序,而下层硬件或固件被称为网络设备驱动。显然,uIP并不仅仅是针对以太网设计的,他具有媒体无关性。

4.2.2 uIP的设备驱动程序接口

uIP内部有两个函数直接需要底层设备驱动程序的支持:

一个是uip_input()。当设备驱动程序从网络层收到一个数据包时,要调用这个函数,设备驱动程序必须事先将数据包存放到uip_buf[],包长放到uip_len,然后交由uip_input()处理。当函数返回时,如果uip_len不为0,则表示有带外数据(如SYN,ACK等)要发送。当需要ARP支持时,还需要考虑更新ARP表或发出ARP请求和回应。

另一个需要驱动程序支持的函数是uip_periodic(conn)。这个函数用于uIP内核对各连接的定时轮循,因此需要一个硬件支持的定时程序周期性地用他轮循各连接,一般用于检查主机是否有数据要发送,如有,则构造IP包。

4.2.3 uIP的应用程序接口

为了将用户的应用程序挂接到uIP中,必须将宏UIP APPCALL()定义成实际的应用程序函数名,这样每当某个uIP事件发生时,内核就会调用该应用程序进行处理。如果要加入应用程序状态的话,必须将宏UIP_APPSTATE_SIZE定义成应用程序状态结构体的长度。在应用程序函数中,依靠uIP事件检测函数来决定处理的方法,另外可以通过判断当前连接的端口号来区分处理不同的连接。

5 结语

整个模块拨号上网只需3~5 s,平均上网速度已经达到33~36 kb/s。数据上传速度可以达到每秒2~2.5 kB,最高峰值可以达到8 kB,完全可靠地实现了短消息服务和一些文本信息传递。移动目标GPS数据、指令及相关应用情况下的报警数据均可通过GPRS网络传送到监控中心。该系统的便携性和方便使用的优点,也可应用到需要对移动物体进行远程监控和调度的领域中

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭