基于ARM处理器AT91S的M2M终端设计

发布者:LogicLeaper最新更新时间:2013-05-04 来源: 21IC关键字:ARM处理器  AT91S  M2M终端 手机看文章 扫描二维码
随时随地手机看文章

引言

目前,对输油管道、电力装置、油井等进行远程监控主要采用人工巡逻的方式,这种方式存在实时性差、成本高、浪费人力资源、无法对环境恶劣的地区进行监控、可能出现误报等缺点。随着工业领域现代化水平的提高和通信技术的发展,这种生产方式亟待得到改善。

M2M是指应用无线移动通信技术,实现机器与机器、机器与人之间数据通信和交流的一系列技术及其组合的总称。GPRS具有覆盖地域广、通信距离远、网络可靠性高等优点。随着GPRS的推广和应用,以及基于GPRS的M2M产品的推出,采用GPRS技术来解决上述问题成为一种较好的方案。

嵌入式系统是当前国内外研究的热点之一。采用嵌入式系统技术设计一种可以解决远程监控领域数据传输问题的通用终端是必要的。本文重点阐述了基于嵌入式ARM处理器,结合GPRS模块MC35i设计M2M终端的总体设计方案。

系统硬件组成

M2M终端的硬件核心为GPRS通信模块MC35i和ARM处理器AT91SAM7S64,它们的接口设计如图1所示。M2M终端对外留有2个RS232串口,通过发送预先定义好的数字指令,可以实现M2M终端的启动、关闭等。当M2M终端与Internet建立连接后,只需把封装好的数据通过串口发送到M2M终端,由其完成向监控中心发送数据的功能。

 

 

GPRS模块

GPRS模块是实现M2M终端平台的核心部分,设计中采用西门子公司的GPRS通信模块MC35i。本模块包括CPU接口电路、SIM卡接口电路和MC35i外围电路,MC35i支持GPRS的四种编码协议CS-1、CS-2、CS-3和CS-4,理论上最高传输速率可达172kbps。它具备完整的GSM和GPRS功能,可以广泛应用在相关的M2M数据传输平台上。MC35i提供了标准AT命令界面和一个RS232接口,用于与外部应用系统连接。

ARM处理器

本数据传输平台处理器采用ATMEL公司生产的32位ARM7TDMI体系结构处理器AT91SAM7S64,该芯片采用3.3V电压进行供电,支持低功耗模式,它具有64kB的FLASH和16kB的SRAM,具备丰富的外围设备资源,其中包括3个UART通信串口和1个USB2.0全速设备,利用本芯片完成系统功能的同时可以实现系统的高性价比。CPU模块硬件电路包括:时钟电路、JTAG接口电路,RS232接口电路等。

电源设计

系统采用9V电源进行供电,经过TI公司LDO降压芯片UA7805进行一次降压,使电压降至5V。GPRS模块MC35i要求的电源电压为3.3V~4.8V,而且要求电源必须能够提供2A的尖峰电流,因此需要将5V电源通过一个0.7V压降的肖特基二极管1N5819后输入MC35i,同时需要接入耐压25V、1000μF的电解电容,以为MC35i提供足够的尖峰电流,将5V电源经过TI公司电源模块REG1117-3.3将电压降至3.3V,为微处理器及其他芯片提供电源。

嵌入式软件设计

采用嵌入式实时操作系统可以更合适、有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时陛和可靠性。FreeRTOS是在Sourceforge网站上发布的微内核嵌入式实时操作系统,它是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点。作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理等

FreeRTOS支持优先级和轮换时间片两种调度算法,可根据用户需要设置为可剥夺型内核或不可剥夺型内核。本文基于FreeRTOS给出了M2M终端实现PPP协商以及数据封装传输的软件设计方案。

基于状态机设计GPRS连接任务

由于网络和信号较弱等原因,可能导致节点与GPRS网络连接的失败,采用基于状态机的结构设计方法对各个阶段产生的错误进行处理,能保障模块与GPRS网络建立可靠连接。程序状态机如图2所示。

 

 

闲待命态:此时MC35i处在离线关闭状态,节点处在低功耗模式下,系统复位后处于此状态。

GPRS参数设置态:处理器控制启动MC35i模块后进入此状态,通过发送AT命令对模块及必要的网络参数进行设置,为使各个参数均设置成功,软件设计中增加了容错重试机制。

PPP协商态:GPRS参数设置完成后,通过发送AT*99***1#命令开始MC35i模块与GPRS网络ISP(网络服务提供商)的PPP协商软件设计中采用LCPHandler()函数完成LCP协商,PAPHandler()完成认证,由IPCPHandler()完成IPCP协商,如果最后获得ISP和本节点的IP地址,则进入PPPOVER态,此后就能进行数据的传输了,由于GPRS网络等原因,PPP协商有时会失败,此时应重启MC35i模块,再按照状态机流程重新连接。

UDP数据传输态:当程序采用UDP方式进行数据传输时,程序进入此状态,通过xDataTrsmtTask()任务进行数据的UDP/IP封装和解析。

TCP数据传输态:当节点调用uip_cionnect()函数与监控中心建立连接后,程序进入TCP数据传输态,进行基于TCP的数据传输。[page]

数据的封装和传输

通过GPRS进行数据的传输需要经过Internet网络进行中转,因而传输的数据封装必须进行TCP/IP协议。文中利用软件进行了数据封装,需要传输的数据经过传输层UDP协议头封装,然后是IP协议头的封装,最后进行PPP协议的封装。

MC35i将接收到的数据透明地传输到Internet网络中。通过Internet网络路由器中转,最终将数据传输到监控中心。接收端对接收到的数据按照相应的层次进行解析,从而确定数据的目标程序。

系统软件设计采用分层的结构,从底到上分别为:串口驱动层(物理层)、PPP协议层(链路层)、IP协议层(网络层)、UDP协议和ICMP层(传输层)以及应用层。在移植好的LwIP协议栈中,通过在各层中建立相应功能的线程,实现数据的封装。底层软件为上层软件提供函数支持,上层软件利用底层软件完成应用程序的编写和实现。软件采用自底向上的设计方法逐步实现系统中各个函数的功能,各部分函数实现均采用模块化的设计方法。每个任务对应一个模块

对每个任务单独进行设计后,最终由FreeRTOS操作系统统一管理,通过采用信号量和邮箱的方式实现多个任务之间的通信,软件各部分主要函数之间的关系如图3所示。

 

 

在MC35SerialISR()中将接收的数据存放到xQRxChars队列中后,发送SemMC35Rx信号量来激活PPPRxTask()任务,通过对接收数据的解析,确定数据包的类型,然后由相应的函数对接收数据进行处理。

如果接收的数据是应用程序的数据,将由IPRx()函数判断目标主机是否正确,再经过传输层解析数据从而判定对数据处理的应用程序。最后由应用程序解析数据并执行相应的功能,如将数据通过串口发送到主机、向数据采集系统发送控制命令、接收数据采集系统的数据并发送等。当接收队列中所有数据均处理完毕后,延时250ms如果还没有接收到数据,则任务通过等待信号量SemMC35Rx将自己挂起。数据的发送过程是一个相反的过程。

应用程序根据需要的功能建立UDPTxTask()或ICMPTxTask()任务,并将数据发送到xAPPTxQ队列中。相应的任务再调用IPTx()和PPPTx()函数进行数据的封装并将数据发送到XqTxChar队列中,从而唤醒MC35SerialISR()中断程序将数据通过串口发送到MC35i中进行传输。为提高系统的实时性,本文中FreeRTOS采用可剥夺内核方式进行调度。采用FreeRTOS操作系统对任务进行管理简化了软件的编写难度,同时提高了程序的可读性和可移植性。

总结

基于GPRS M2M产品的无线数据传输以及远程监控系统是目前国内外研究的热点。本文采用完全免费的操作系统和TCP/IP协议栈给出的系统设计方案具备成本低、性能好、可升级等优点,为远程监控系统相关领域的数据传输提供了一个可行的设计方案。

关键字:ARM处理器  AT91S  M2M终端 引用地址:基于ARM处理器AT91S的M2M终端设计

上一篇:基于AT91S的表面肌电信号采集仪的软硬件设计与实现
下一篇:ST推业界领先新款微控制器 扩展STM32F4系列阵容

推荐阅读最新更新时间:2024-03-16 13:22

ARM处理器异常处理
1.1 ARM处理器异常处理 所谓异常就是正常的用户程序被暂时中止,处理器就进入异常模式,例如响应一个来自外设的中断,或者当前程序非法访问内存地址都会进入相应异常模式。 1.1.1 异常分类 (1)复位异常 当CPU刚上电时或按下reset重启键之后进入该异常,该异常在管理模式下处理。 (2)一般/快速中断请求 CPU和外部设备是分别独立的硬件执行单元,CPU对全部设备进行管理和资源调度处理,CPU要想知道外部设备的运行状态,要么CPU定时的去查看外部设备特定寄存器,要么让外部设备在出现需要CPU干涉处理时 打断 CPU,让它来处理外部设备的请求,毫无疑问第二种方式更合理,可以让CPU 专心 去工作,这里的 打断 操作就叫做
[单片机]
<font color='red'>ARM处理器</font>异常处理
DCS控制器中采用ARM处理器的冗余设计
在自动化的许多领域,有效性的要求越来越高,因而对自动化系统的容错水平的要求也变得越来越高,尤其在设备停机代价非常大的场合。为了满足这些严格的要求,在DCS系统中通常采用冗余技术,这样才能够满足这些领域所需要的安全性、可靠性和有效性的标准。 在DCS控制系统中,分布处理单元是系统关键的部分。当前这些分布处理单元的控制器往往是基于86系列CPU建构的,这种架构目前被广泛采用。但是由于86系列分布处理单元的特点,导致现在的控制器处理单元存在很多的缺点,如放热量大等。而且在封闭的环境中,这些问题始终很难解决。随着很多低功耗技术的发展和低功耗控制器的出现,分布处理单元的CPU可以有更多的选择,尤其是低功耗的控制器产生很少的热量,且可以使系统
[嵌入式]
浅谈arm处理器的优势
目前,世界正在向物联网、人工智能的潮流迈进,也随着物理网、人工智能技术上的发展与推进,微处理器技术也在不断革新,各种新型微处理器的应用也在不断深入。对于现阶段大量32位嵌入式应用的出现, ARM嵌入式技术广泛地使用在许多嵌入式系统设计。正因为ARM的处理器拥有众多优势,才得以如此广泛的应用。 体积小、低功耗、低成本、高性能 ARM处理器因为其体积小,不占空间,所以能够完美完成嵌入式环境下的应用,ARM针对嵌入式应用,同样保持着超强的性能,处于世界领先地位,不仅如此还力求做到最低的功率消耗。之前ARM还发布了一颗名为 “Cortex-M0” 的新处理器,最大的特色在于体积号称世界最小,耗电世界最低。ARM结构的优点是能兼顾到性能
[单片机]
浅谈<font color='red'>arm处理器</font>的优势
基于ARM处理器智能电表系统的功能设计与论证
  用电管理收费多年来一直采用先用电、后抄表、再付费的传统作业方式,电量值计算方面也无法实现更高的精确度,偏差较大。为了适应社会的需要,保证用户安全、合理、方便地用电,对传统的电表和用电的进行重新设计,使之符合社会发展的需要就显得很有必要。   1、智能电表的发展前景:   第一阶段 2000-2007   逐步以电子计量表取代传统机电式电表;在美国和欧洲着手推广单向通信网络;   第二阶段 2008-2012   全球范围内正在淘汰机电式电表;在欧美及中国大规模推广基于自动计量基础架构(AMI,即有IP地址的智能电表和电力公司之间的一种自动双向流通架构)的双向通信网络;智能电表作为简易型家庭网关,可用于多种公用设施的自动抄表
[电源管理]
基于<font color='red'>ARM处理器</font>智能电表系统的功能设计与论证
国货ARM处理器正崛起?
国内ARM处理器厂商在近几年如雨后春笋般的涌现出来,到目前为止成功打入手机领域的有海思和展讯两家,但在平板领域就有些百花齐放了,瑞芯微、全志以及炬力等厂商均在这一领域有所建树,其中最为强悍的就要数全志了,在去年时候号称全球平板芯片的出货量仅次于苹果。 有台湾媒体从产业链方面得到消息称全志已经成功打入了联发科的老家台湾,成功拿到了微星的订单,目前微星旗下的平板已经开始使用全志的处理器了。此外全志还在积极跟Acer接触,未来拿下Acer的订单应该也不是什么大问题。 据称微星目前已经决定将旗下的新一代平板全部换装全志处理器,其中7英寸的Primo73平板采用的是全志A20处理器(双核Cortex-A7架构、 GPU为Mail-4
[单片机]
基于H桥控制的移动机器人系统方案
引言 近年来随着人工智能技术、计算机技术等相关技术的发展,对移动机器人的研究越来越广泛。本设计是采用OpenWrt操作系统的移动机器人,它可实现多种不同功能,如探测险情、巡视、图像采集、定位、无线通信等。它还可以作为各种智能控制方法(包括动态避障、路径规划、群体协作策略)的良好载体,开展研究。 1 系统方案 采用2层架构。上层以ARM处理器S3C2440为核心,选用MINI2440开发板作为上层的主板,负责图像采集,并将图像通过WiFi方式发送给远端的PC机。WiFi无线通信是利用PC机与无线路由器搭建环境平台共同实现的。 下层是以51单片机为核心的单片机控制板,由51单片机及外围电路组成。下层主要负责机器人移动控制,
[单片机]
基于H桥控制的移动机器人系统方案
ARM处理器为基础的吸尘机器人硬件设计方案详解
随着人们生活水平的日益提高,我国人口的老龄化也越来明显,吸尘机器人作为服务机器人的一种,能够代替人进行清扫房间、车间、墙壁等一些简单劳动。 使服务机器人有了广阔的场,已成为一些企业和科研院所研究的焦点。目前市场上的吸尘机器人虽然也具有智能性,但大多由于结构不尽合理、通用性差、集成度高而导致成本高,不利于普及。在研究总结市场上相对成熟产品的基础上,基于ARM Cortex-M3处理器设计一款具备自我导航功能的室内吸尘机器人。外形紧凑、结构简单、运行平稳、噪音小,并且成本低,操作方便,还具有可扩展接口,用户能够根据实际需要对其功能做进一步开发。 1吸尘机器人总体构成 利用ARM Cortex-M3处理器设计一款应用于室内的移动
[单片机]
以<font color='red'>ARM处理器</font>为基础的吸尘机器人硬件设计方案详解
ARM处理器的未定义指令异常处理过程分析
在前面的两篇文章中已经介绍了ARM处理器的工作模式和ARM异常中断处理流程。这篇文章我们通过代码来详细介绍ARM处理器未定义指令的异常中断处理;当发生未定义指令异常中断时,CPU进入未定义指令模式。可以通过读取CPSR寄存器的值来判定是否真的进入了未定义指令模式。 开发板:tiny4412; 工具链版本:gcc version 4.5.1 (ctng-1.8.1-FA) 主要设置以下几个文件: start.S文件,详细内容如下: .text .global _start _start: b reset /* vector 0x46000000 reset*/ ldr pc, _undefined_ins
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • Linux内核移植
    实验步骤:(1)准备工作(2)修改顶层Makefile(3)修改falsh 分区(4)配置编译内核下面以Linux2 6 30 4内核移植到gec2440为例:一、准备 ...
  • S5PV210 PWM定时器
    第一节 S5PV210的PWM定时器S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。PWM定时器使用PCLK_PS ...
  • S5PV210 NAND Flash
    NAND Flash关于NAND FlashS5PV210的NAND Flash控制器有如下特点:1) 支持512byte,2k,4k,8k的页大小2) 通过各种软件模式来进行NAND Fl ...
  • S5PV210串口
    串口设置之输入输出字符S5PV210 UART相关说明 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来 ...
  • S5PV210按键控制LED
    原理图如图所示:查询用户手册得到:程序例子:(完整代码见“代码下载链接”)1、轮询的方式查询按键事件 *main c* 核心代码如下:while(1 ...
  • S5PV210控制蜂鸣器
  • S5PV210的启动过程
  • S5PV210点亮LED
  • S5PV210启动过程详解
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved