最新日志

发表于:2008-4-24 17:23:02
标签:无标签

1

基于GPS和GPRS的小型追踪器

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处于网络通讯的中间层,上层协议在这里被称为应用程序,而下层硬件或固件被称为网络设备驱动。显然,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网络传送到监控中心。该系统的便携性和方便使用的优点,也可应用到需要对移动物体进行远程监控和调度的领域中。

点击此处查看原文 >>

系统分类: 单片机   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(204)
发表于:2008-4-10 15:45:45
标签:无标签

1

单片机常用外围器件(珍藏)(转)

/*====================================
刚学单片机的时候,把这个存在手机当电子书来看.
一直保留到现在.哈哈
====================================*/

单片机常用外围器件

************************************
一、74系列常用器件
1.常用与非门及与非门器件
 MM54HC08/MM74HC08
 MM54HC11/MM74HC11
 MM54HC00/MM74HC00
2.常用或门有或非门器件
 MM54HC32/MM74HC32
 MM54HC02/MM74HC02
3常用与或门及与或非门器件
 MM54HC58/MM74HC58
 MM5(7)4HC51
4.常用总线驱动及收发器件
 54LS244/DM74LS244
 DM54LS235/DM74LS245
 74HC595
5.常用计数器
 DM74LS90/DM74LS93
 DM54LS193/DM74LS193
6.常用编码译码器件
 MM5(7)4HC148
 MM5(7)4HC138
 MM5(7)4HC154

************************************
二、存储器件
1.SRAM-IS61C256AH
2.EPRAM-M2764A
3.EEPRAM
 24LC256
 X2816C
4.FLASH存储器 AT29C256
5.双口RAM-IDT70V05S
6.FIFO存储器-IDT72V36100

***********************************
三、A/D
1.逐次比较型A/D
 ADC0809/0804
 AD7810
2.并行比较型AD
 AD9048
3.半闪烁型高速A/D
 TLC5510
 MAX113
4.Σ-△型高精度A/D
 AD7710
 ADS1100

***********************************
四、输出及显示
1.LED驱动芯片
 ICM7218
 MAX7219
 MCI14489
 MCI14499
2.LCD器件
 FYD12864
3.D/A
 DAC0832


************************************
五、传感器
1.温度
 LM35
 DS18B20
2.语音芯片
 ISD2500
3.时钟芯片
 DS1302
 PCF8583
4.其他
 热线型半导体气敏元件 MR513
 酒精传感器 MQ-303A
 可燃性气体传感器 M007

*************************************
六、常用可编程器件
1.可编程并行接口芯片 8255A
2.可编程中断控制器 82C59A
3.可编程计数器
 MSM82C53-2
 MSM82C54-2
4.可编程键盘、显示控制器件
 TMP82C79

*****************************************
七、常用通信器件
1.RS-232总线接口芯片  MAX232
2.RS-422总线接口芯片  MAX491
3.RS-485总线接口芯片  MAX485
4.异步收发器   MAX3100
5.USB控制器件   ISP1518
6.以太网接口器件  RTL8019AS
7.I*IC接口芯片   PCF8574
8.CAN总线控制器   SJA1000
9.无线传输模块   PTR2000

*****************************************
八、电源相关器件
1.DC-DC电压变换器
 MAX1676
 MAX682
2.电源监控器件
 MAX791
 MAX705
3.电流传感器
 MAX471/472

 

 

点击此处查看原文 >>

系统分类: 单片机   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(247)
发表于:2008-4-8 14:27:24
标签:无标签

1

怎样设计便携式心电监护系统(转)

心电图(ECG)是心脏疾病诊断的重要手段。常规心电图是病人在静卧情况下由医院的心电图仪记录的短时间心电活动,由于心脏病发作带有很大的偶然性和突发性,所以在非发作期做常规心电图检查获取疾病信息的几率很低。因此,将心电监护从病床边、医院内扩展到家中,实现实时远程监护具有重要的现实意义。

  互联网尤其是无线网络的迅速普及促使嵌入式技术应用的条件日趋成熟,此外,心电监护对心脏病诊断的重要性也使得远程监护也具有现实的可能性。

  本文主要研究并设计了一套实用的便携式移动心电监护系统。通过该系统可以随时随地将患者的心电信号通过GPRS网络无线发送到设在医院的PC机上,或者将心电数据先存储在本系统中,然后再通过USB实现高速回放。

  系统的总体设计

  本文所设计的便携式移动心电监护系统由心电监护仪、通信网络和监护中心三部分组成(如图1所示)。其工作过程如下:

 

图1:便携式心电监护系统总体框图。

  心电监护仪由患者随身携带,通过粘贴式电极可随时采集用户的心电数据,并进行放大、滤波、A/D转换,然后存储到串行闪存中。当存储一定时间的心电数据后,可以通过GPRS无线上网,利用无线网络将数据传送给位于监护中心的上位机。也可通过USB直接连接到上位机,进行本地高速回放。

  本文将重点介绍心电监护仪的设计。由于是便携式设备,所以设计时必须考虑尽量降低功耗、体积和成本。经过反复地分析比较,最终决定采用Z-World公司的工业级控制芯片Rabbit3000微处理器作为心电监护仪的主芯片。

  尽管Rabbit3000是8位微处理器,但其内存空间可达1M,主频可达22M。它具有丰富的接口资源,共有40条并行I/O口线(与串行口共用)。此外,该器件的功耗非常低,处理器时钟可由32.768KHz振荡器驱动,并将主振荡器断电。此时电流约为100μA,而处理器仍能保持每秒10,000条指令的执行速度。

系统硬件设计

  在进行总体硬件设计时,以Rabbit3000高性能微处理器为核心,利用外部接口扩展了512K的并行Flash和512K的SRAM,存储空间达到1M,并扩展了USB接口。利用串行接口扩展了串行Flash、A/D转换和无线模块MC35。以下重点介绍无线模块和USB模块的硬件设计。

  1. 无线模块MC35硬件设计

  无线模块负责完成心电数据的无线传送。为实现此功能,本系统采用了西门子公司的MC35模块。这是西门子公司首款支持GPRS的GSM/GPRS模块,体积小巧,易于集成到便携式终端中。通过串行口连接,使用AT命令对该模块进行控制和数据传送。

西门子公司的MC35模块具有一个40脚的零插入力连接器,该连接器中提供了串行接口、音频接口、SIM接口、状态引脚、电源接口等接口,通过这些接口与SIM卡座、天线以及主控制器相连。MC35的串行接口TXD0和RXD0与Rabbit3000的串口B,即引脚TXB和RXB(PC4和PC5)相连,以实现与MC35之间的通信。MC35的IGT引脚为其启动引脚,需要开漏极驱动器驱动。而Rabbit3000的端口E具有很强的驱动能力,因此选用PE5作为MC35的启动控制线。在MC35的电源接口中有电源输入引脚、电源输出引脚和充电引脚,其中充电引脚可用来给电池充电。本系统采用电池供电或外部充电。如图2所示。

设计时需注意的两点是:本系统使用电池供电,由于MC35在上行传输需提供2A的峰值电流,这会引起电压突然下降,因此设计电路时要加足够大的电容,以防电压突然下降;在SIM卡电路设计时,需要注意电磁兼容性的问题,否则会影响MC35的通信效果,甚至导致MC35无法正常工作。

图2:MC35模块硬件连接图。

2. USB模块硬件设计

USB模块负责完成心电数据的本地高速回放,它提供了另一种数据传输手段。通常的串口RS-232只是利用一条线进行数据传输,而USB传输是利用D+和D-线上的差分信号,与主机进行数据的传输,充分保证了数据传输的可靠性。本系统采用恩智浦公司的PDIUSBD12实现USB传输。

PDIUSBD12(以下简称D12)是恩智浦公司的一款性价比很高的USB芯片,完全符合USB1.l版的规范。是在USB1.1协议设备端使用最多的芯片之一,是一种纯粹的USB接口芯片,需要外部微处理器控制。

本系统利用Rabbit3000微处理器控制USB芯片D12来完成USB传输,此时D12就是单片机的一个外设。D12与Rabbit3000之间的数据传输是通过8位数据线来实现的,即D12的并口数据线D0-D7与Rabbit3000的数据线D0-D7直接相连。

D12的INT_N引脚与Rabbit3000复用引脚INT0A相连,作为Rabbit3000的外部中断输入。当D12需要进行操作时,就利用INT_N引脚发出一个中断请求,Rabbit3000立即响应中断,对其进行操作。D12的RD_N和WR_N分别与Rabbit3000的IORD和IOWR相连,以控制数据传输的方向。D12的RESET_N与Rabbit3000的复用引脚PE4相连,Rabbit3000可以利用这个引脚向D12发出一个低电平,RESET_N被置为低电平后,D12便自动复位了。D12的CS_N与Rabbit3000的复用引脚PE7相连,可以通过这个引脚来控制片选。如图3所示。

图3:PDIUSBD12模块硬件连接图。

D12有两种数据总线方式:多路地址/数据总线方式和单地址数据总线方式。本系统采用单地址数据总线方式,将D12的ALE接地,A0与Rabbit3000的地址总线A0相连,在片选信号有效的前提下(即PE7=0),当A0=1时,CPU给D12发命令;当A0=0时,CPU向D12写数据或从D12读数据。因此,地址0xE001为发送命令地址,地址0xE000为读写数据地址。

系统软件设计

软件设计借鉴了软件工程的设计思想。采用了分层和模块化的设计思路,为代码的组织、维护和升级都提供了便利。而且,即使以后更换硬件系统平台,也能够保证大部分代码可重用。软件总体结构如图4所示。下面重点介绍无线模块和USB模块的软件设计。

1. 无线模块软件设计

无线模块MC35与Rabbit3000的串口B相连,并通过串口向MC35发送AT指令,进行拨号、设置等操作。

MC35与网关的通信协议为PPP协议(Point-to-Point Protocol),PPP协议是一种基于TCP/IP协议栈的数据链路层协议,是为在两个对等实体间传输数据包,建立简单连接而设计的,主要用于广域网的连接,但在局域网的拨号连接中同样可以采用。MC35本身不支持PPP协议,要通过MC35拨号上网必须编写程序实现PPP协议,同时还要实现TCP/IP协议。

开机后首先初始化MC35模块,这里要注意的是初始化MC35模块时,需要给IGT引脚一个低电平,并保持120~140ms,才能完成初始化操作。然后启动MC35并登陆移动梦网网关,建立与服务提供商的连接。

登陆成功后,MC35具有两种工作状态:数据传输状态和空闲状态。MC35在空闲状态下的电流一般为15mA,而且在空闲状态下,MC35还支持多种休眠模式。为降低功耗,本系统启用了MC35的休眠功能,设置为休眠模式7。在该休眠模式下,电流可以降到3mA左右。

 

2. USB模块软件设计

USB接口对于使用者来说十分简单方便,但从开发者角度来看,最大的缺点就是协议的复杂性增加了,因此也就导致了USB设计的复杂性。USB软件设计包括三个方面:固件(firmware)设计、驱动程序设计和主机端应用程序的设计。

a. 固件设计

固件是固化在单片机中的程序代码,可采用汇编语言或C语言设计。它运行在微处理器上,用来响应主机的请求。即它与USB控制器一起完成枚举过程和主机通信。USB协议规定任何传输过程都是由主机端发起并控制的,在枚举过程中,主机通过USB控制器的端点0的默认管道建立控制传输过程,D12响应主机的要求,主要是发送特定的描述符(如设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和厂商描述符)给主机。主机从获得的描述符来了解该设备的配置和能力,并完成对USB设备的配置。枚举过程结束后,主机就可以与D12进行数据传输了。

本系统的固件编程采用标准C语言来编写,设计固件程序时需要注意的是:D12的中断输出为电平触发,Rabbit3000的中断为上升沿或下降沿触发。在设计程序时,使用下降沿加延时,可使低电平保持一段时间,从而达到同样的效果。

b. 驱动程序设计

在Windows系统下,与USB外设的任何通信都必须通过设备驱动,设备驱动使应用程序访问硬件设备成为可能。USB驱动程序的编写与硬件相关,属于核心模式。微软的DDK在这方面提供了较为详细的说明。

c. 应用程序的设计

本系统采用VB编写上位机应用程序。它主要负责实现利用USB接口从心电监护仪中读取心电数据,并把心电数据保存到数据库中,同时在PC机屏幕上绘制心电波形。

本文小结

本文所研制的便携式移动心电监护仪,能够在计算机屏幕上准确地描绘出心电波形,经中国医科大学附属二院的医生认定,可作为临床诊断依据;本系统实用性强,且体积小、经济方便。患者可随时随地对心脏进行实时监护,而不受时间和空间限制;本系统所具有的无线传输功能,可以实时地把心电数据传送给医院供医生诊断,极大地提高了急救效率。

点击此处查看原文 >>

系统分类: 医疗电子   |    用户分类: 无分类    |    来源: 无分类

评论(1) | 阅读(501)
总共 , 当前 /