单片机与GPRS 模块通讯开发的注意事项

单片机与GPRS 模块通讯开发的注意事项
单片机与GPRS 模块通讯开发的注意事项

单片机与GPRS模块通讯开发的注意事项

单片机微控制器以其体积小、功耗低、使用方便等特点,广泛应用于各种工业、民用的嵌入式系统中;而随着互联网(Internet)的兴起与普及,使微控制器通过互联网传送数据就变得非常有意义。目前使微控制器上网的解决方案一般有两种:一种是采用微控制器驱动网卡,通过以太网连接Internet;另一种是使微控制器直接驱动调制解调器(MODEM)通过电话线向ISP拨号上网。这两种方案的缺点在于都要使用有线

的网络,无法应用于在边远地区或可移动系统中。

针对这一问题,提出一种基于GPRS的单片机上网的解决方案,即在单片机中实现PPP协议,并通过驱动GPRS模块经过GPRS无线网连接到Internet实现上网。这种方案的优点在于:①覆盖面广,适用于广大偏远地区;②无线上网,适用于可移动目标;③使用廉价的微控制器实现简单、成本低;④安装简便,

维护方便。

GPRS技术及其特点

GPRS(General Packet Radio Service)是通用分组无线业务的简称,是在GSM基础上发展起来的一种分组交换的数据承载和传输方式。与原有的GSM比较,GPRS在数据业务的承载和支持上具有非常明显的优势:通过多个GSM时隙的复用,支持的数据传输速率更高,理论峰值达115kb/s;不同的网络用户共享同一组GPRS信道,但只有当某一个用户需要发送或接收数据时才会占用信道资源。这样,通过多用户的业务复用,更有效地利用无线网络信道资源,特别适合突发性、频繁的小流量数据传输,很好地适应数据业务的突发性特点;GPRS计费方式更加灵活,可以支持按数据流量来进行计费;与无线应用协议(WA P)技术不同,GPRS能够随时为用户提供透明的IP通道,可直接访问Internet中的所有站点和资源;采用信道复用技术,每一个GPRS用户都能够实现永远在线;另外,GPRS还能支持在进行数据传输的同时进行语音通话等等,而且相对于短消息等其它无线数据通信业务,GPRS的价格优势比较明显。目前,我国移动推出的GPRS上网业务最高每千字节也只有3分钱,而且用户可以根据自己的需要,以月租、包月等

多种形式进一步降低GPRS通信的费用。

因此使用GPRS实现远程数据的传送是非常经济实用的,特别是对于不易架设有线网络的边远地区和可移

动装置。

硬件连接和GPRS模块设置

通过GPRS网进行数据传输一般需要使用GPRS模块。目前,GPRS模块一般是指带有GPRS功能的G

SM模块,可以利用GPRS网进行数据通信。

其中比较流行的有法国Wave公司的WISMO系列和西门子公司的S系列等等。WAVECOM的WISMO模块

接口简单、使用方便且功能非常强大

其中GPRS模块与单片机间是通过串行口进行通信的,通信速率最快可以达到115 200b/s。模块与控制器间的通信协议是AT命令集,其中大部分命令是符合协议“AT command set for GSM Mobile Equip ment (ME) (GSM 07.07 version 6.4.0 Release 1997)”的,但也有一些是Wavecom自己定义的AT命令。除了串口发送(TX)、串口接收(RX)之外,微控制器与GPRS模块之间还有一些硬件握手信号,如DTR、

CTS、DCD等。

为了简化微控制器的控制,硬件设计时不要使用全部的硬件握手信号,而只使用数据载波检测(Data Car rier Detect, DCD)和终端准备(Data Terminal Ready, DTR)信号。

DCD信号可以检测GPRS模块是处于数据传送状态还是处于AT命令传送状态。

DTR信号用来通知GPRS模块传送工作已经结束。

硬件连接完成后,在进行GPRS上网操作之前,首先要对GPRS模块进行一定的设置。主要的设置工

作有:

①设置通信波特率,可以使用AT+IPR=38400命令,把波特率设为38 400b/s或其它合适的波特率,默

认的通信速度为9600b/s。

②设置接入网关,通过AT+ CGD CONT=1, “IP”, “CMNET”命令设置GPRS接入网关为移动梦网。

③设置移动终端的类别,通过AT+CGCLASS=“B”设置移动终端的类别为B类,即同时监控多种业务;

但只能运行一种业务,即在同一时间只能使用GPRS上网,或者使用GSM的语音通信。

④测试GPRS服务是否开通,使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,则GPRS连接成功;如果返回ERROR,则意味着GPRS失败。这时应检查一下SIM卡的GPRS业务是否已经开通,GPRS

模块天线是否安装正确等问题。

中国移动在GPRS与Internet网中间建立了许多相当于ISP的网关支持节点(GGSN),以连接GPRS网与外部的Internet网。GPRS模块可以通过拨“*99***1#”登录到GGSN上动态分配到Internet网的IP 地址。其间GPRS模块与网关的通信要符合点对点协议(Point to Point Protocol, PPP),其中身份验证时用户名、密码都为空。使用PPP协议登录上之后,就可以通过GGSN接上Internet了。

软件整体结构

程序中的所有代码最好采用C语言编写,并采用分层的结构,从底到上分别为:串口驱动层、GPRS 模块驱动层、PPP协议层、IP协议层、UDP协议层与应用层。上层函数的实现需要应用到底层函数,而底层函数的任务就是为上层函数提供服务,最终完成应用层任务——传送数据。

驱动程序编写

首先是串行口驱动层。它实现打开串口、关闭串口、读串口数据、写串口数据等函数。然后,在这些串口函数的基础上编写GPRS模块的驱动函数。单片机通过串行口控制GPRS模块,进行拨号、设置等操作。

控制的方法是采用AT命令。

在控制GPRS模块拨打移动梦网GGSN的登录号码“*99***1#”之后,GPRS模块就转入在线模式(On-L ine)。此时单片机向串行口发送的所有数据都透明地传送给了GGSN,同样GGSN的回答也传回单片机的

串行口。

当数据传送完成后,单片机需要通知GPRS模块结束会话,并从在线模式转回普通的命令模式,这可以通过置高DTR线完成。同时,如果线路由于异常断开,CD线会回复到平常的低电平,所以处于在线模式下也要不断检测CD线是否处于高电平。根据这些操作,可以编写GPRS驱动函数:初始化GPRS模块函数、拨号函数、断开连接函数、检测是否处于在线状态函数。

这些底层的驱动函数将会使上层协议的编写很方便,更重要的是,它为我们提供了一个驱动抽象层。当底层硬件做出改动的时候,只需要对底层的驱动函数进行改动,而上层函数的代码不变。

PPP协议的实现

由于移动梦网的GGSN与GPRS模块通信时遵循PPP协议,所以要在单片机中也实现一部分PPP协议才能与之对话。GPRS模块在拨号后首先要与GPRS网关进行通信链路的协商,即协商点到点的各种链路参数配置。协商过程遵守LCP(Link Control Protocol)、PAP(Password Authentication Protocol)和IPC P(Internet Protocol Control Protocol)等协议。其中LCP协议用于建立、构造、测试链路连接;PAP协议用于处理密码验证部分;IPCP协议用于设置网络协议环境,并分配IP地址。协商机制用有限状态机的模型来实现。一旦协商完成,链路已经创建,IP地址已经分配就可以按照协商的标准进行IP报文的传输了。根据应用的不同,IP报文中可以携带UDP报文,也可以是TCP或ICMP报文。本系统正是采用UDP报文传送数据信息的。数据传输完成之后,单片机会向GGSN发送LCP的断开连接报文,以终止网络连接。

PPP协议的帧结构(图略)。单片机的串口中断接收程序首先以包起始和结束符来判断是否有完整的PPP包,并对PPP包的内容进行校验,以确定数据包的完整性和正确性。然后,在主循环中进入PPP报文

解析模块。

登录GGSN的过程

系统的一个难点是单片机登陆GPRS网关(GGSN)并与网关通过LCP、PAP、IPCP协议进行协商的过程。LCP、PAP与IPCP协议的帧结构大同小异,最常用的为请求(REQ)、同意(ACK)和拒绝(NAK)三种帧。单片机与GGSN各为一方进行协商,任何一方都可以发送REQ帧请求某方面的配制,另一方觉得配置不能接受会回应NAK帧,如果可以则回应ACK帧。为了节省资源,我们只处理这三种数据帧,其它链

路问题都由单片机在程序控制下自己重新拨号解决。

协商过程大致描述如下:在拨号成功连接后,GGSN首先会返回一个PAP REQ数据帧。我们发送一个空LCP REQ帧,以强迫进行协议协商阶段。随后,GGSN发送LCP设置帧,我们拒绝所有的设置并请求验证模式。GGSN选择CHAP或PAP方式验证,我们只接受PAP方式。然后,进行PAP验证用户名和密码过程,在GPRS中用户名与密码都为空,如果成功,GGSN会返回IPCP报文分配动态IP地址。此时,就完成了与GGSN的协商过程。协商过程的状态转换如图4所示。

协商完成后进入IP数据报通信阶段。此时,单片机向GGSN发送的所有包含IP报文的PPP报文都会被传送给Internet网中相应的IP地址;而远端所有向单片机IP地址发送的报文也都会经GPRS网传送到单片机上,从而完成单片机与远程主机通过互联网的数据传输。

(完整版)51单片机实现双机通信(自己整理的)

1号机程序 #in clude #defi ne uint un sig ned int #defi ne uchar un sig ned char sbit p10=P1 A 0; uchar a,b,kk; //uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y) { uchar i; while(y__) for(i=0;i<120;i++) 5 } void put(uchar x) // 发送函数 { SBUF=x; //SBUF:串行口数据缓冲器 while (TI==0); 〃等待发送结束 TI=0; } P £j £fA>l3 旳 4阳 1370 丘阳 H 鮎口 PDLWAJil- PDSA>f POfiAME PQ TiJT FZ^KS 畑 阳pz- A A-m FZW11 PZ.AtZ FZj9jAl4 PZ.TW? P3£VR : iD paimcc P3.sii nrn pjjfflrn F3.WTI] M*Tl pgtjgQIH F3.7/IF 1E 11 左边1号机,右边2号机, ,功能实现 帕叶DO ■ 口 IJApi FDJ H [I Z — 观旧 IP 口 .hQKD* *QAADf H ^ 弓 H.Lta RQfMM FZJWS pz. iwe F2JKA-IDI P2JTA11I F2.HW1Z P2JSM13 F2W.14 F2JM1S F3Ji nHX& gj.im:& riaiWTO rjjfWTT F3.1/W f3AT1 P3JillW F3JMF ■T2 1E

蓝牙模块使用说明书

蓝牙模块使用说明 一、模块简介: 1、芯片简介 该蓝牙模块采用台湾胜普科技有限公司的BMX-02X模块为核心,它采用CSR BLUEcore4-External芯片并配置8Mbit的软件存储空间,成本低,使用方便。 CSR BlueCore4是英国Cambridge Silicon Radio(CSR)公司日前推出的第四代蓝牙硅芯片。这种硅芯片用于蓝牙技术推广小组(SIG)推出的增强数据传输率(EDR)蓝牙。CSR的BlueCore4的数据传输率将比现有的v 1.2蓝牙装置快三倍,并且使蓝牙移动电话或手机的耗电量较低。 蓝牙EDR的最大数据传输率为每秒2.1兆比特,而目前v1.2标准传输率则为每秒721千比特。传输率的提高意味着对一个特定量的数据来说,EDR无线电的工作将比v1.2无线电快三倍,从而减少耗电量,大大有利于依赖蓄电池的移动设备。 CSR BlueCore4完全能与现有蓝牙v1.1和v1.2装置兼容。蓝牙EDR用一种相移键控(PSK)调制模式取代标准传输率的Gaussian频移键控(GFSK),实现更高的数据传输率。 CSR BlueCore4正在以两种形式提供——一种用于外部“快闪”存储器,一种用于掩模ROM。BlueCore4-External以一种8×8mm BGA(球形格栅矩阵)封装提供,是十分灵活的解决方案,能够适应迅速更新的市场。例如,由于BlueCore

是目前可以得到的唯一能够支持蓝牙v1.2规格的所有强制和可选功能的硅芯片,BlueCore4-External为PC应用程序提供了理想的解决方案,使它们得益于以三倍速度的传输率无线传输文件,或者同时操作多个高需求的蓝牙链路。 鉴于蓝牙固件安装在芯片只读存储器上,CSR BlueCore4-ROM 的成本较低,占用面积小得多(在小片尺寸包装中为3.8×4mm,在与BC2-ROM和BC3-ROM引脚兼容的BGA中为6×6mm)。ROM芯片的尺寸和成本使它日益成为要求蓝牙功能综合起来的移动电话、手机和其它批量生产和成本敏感的应用产品的选择。 BlueCore4提供48KB的RAM,而以前的BlueCore硅芯片仅为32KB。部分这种额外的记忆存储用于对付增强数据传输率的附加缓冲空间,而其余部分则确保象Scattermode这样的未来规格得到充分支持。 BlueCore4-External和BlueCore4-ROM将先把蓝牙EDR快速数据传输率的优越性带给现有一些主要的蓝牙市场,加快文件传送,降低耗电并实现多个同时链路的操作。它还将为这种技术开辟某些潜在的新应用领域。 2、主要特性 ◆蓝牙版本:V2.0+EDR ◆输出功率:class II ◆Flash存储容量:8Mbit ◆供应电压:5V

51单片机实现双机通信(自己整理的)

左边1号机,右边2号机,,功能实现 1号机程序 #include #define uint unsigned int #define uchar unsigned char sbit p10=P1^0; uchar a,b,kk; //uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y) { uchar i; while(y--) for(i=0;i<120;i++) ; } void put(uchar x) //发送函数 { SBUF=x; //SBUF:串行口数据缓冲器 while(TI==0); //等待发送结束 TI=0; } void main() { uchar j; SCON=0x40; //串行口工作方式1,8位通用异步发送器

— TMOD=0x20; //定时器1工作方式2 PCON=0x00; //波特率不倍增 TH1=0xf4; TL1=0xf4; //波特率2400 TR1=1; //定时器1开始计时 P2=0xc0; while(1) { if(p10==0&&j==0) { delay_ms(15); while(p10==0); kk=1; P2=0xf9; j=1; } if(p10==0&&j==1) { delay_ms(15); while(p10==0); kk=2; P2=0xa4; j=2; } if(p10==0&&j==2) { delay_ms(15); while(p10==0); kk=3; P2=0xb0; j=0; } if(kk==1) put('A'); if(kk==2) put('B'); if(kk==3) put('C'); delay_ms(10); } }

51单片机串口通信,232通信,485通信,程序

51单片机串口通信,232通信,485通信,程序代码1:232通信 #include #define uchar unsigned char #define uint unsigned int uchar flag,a,i; uchar code table[]="i get"; void init() { TMOD=0X20; TH1=0XFD; TH0=0XFD; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init();

while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {

RI=0; a=SBUF; flag=1; } 代码2:485通信 #include #include"1602.h" #define uchar unsigned char #define uint unsigned int unsigned char flag,a,i; uchar code table[]="i get "; void init() { TMOD=0X20; TH1=0Xfd; TL1=0Xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;

} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; } Love is not a maybe thing. You know when you love someone.

风冷模块机组使用说明书

. . . . 风冷模块机组功能说明书 1.0概述 DFSS-5MK控制器适用于水源冷(热)水机组,可以控制单台或6压缩机,控制器由室外主板和室线控器组成,并有风盘联动接口。 2.0主要技术参数 2.1使用条件 运行电压:AC220V±10%;运行环境温度:-20~+55℃;储存温度:-35~+85℃;湿度要求:0~95%RH 2.2温度控制精度:1℃ 2.3控制器符合 □GB4706.1-1988《家用和类似用途电器的安全第一部分:通用要求》 □GB4706.32-1996《家用和类似用途电器的安全热泵﹑空调器和除湿机的特殊要求》 □GB18430.1-2001《蒸汽压缩机循环冷水(热泵)机组工商业用和类似用途的冷水(热泵)机组》 □GB18430.2-2001《蒸汽压缩机循环冷水(热泵)机组户用和类似用途的冷水(热泵)机组》 □抗干扰度符合GB4343.2-1999 □印刷电路板符合GB4588.1和GB4588.2的规定 3.0控制器功能 制冷运行 制热运行 可显示回水温度及设置温度,具有查询功能 掉电自动记忆各种参数 压缩机均衡运行及分时启动 三相缺相,逆相保护 具有完善的保护功能及显示 具有风盘联动接口 选用摩托罗拉高性能芯片,抗干扰性能达到最好 具有定时开关机功能 4.0面板操作 室线控器面板如图一

4.1.开关机 按“运转/停止”键,机组开机,指示灯亮; 再按“运转/停止”键,机组关闭,指示灯灭。 开机,关机均存储数据。 4.2.模式转换 按“模式”键,选择所需的模式,“制冷”“制热”模式 “制冷”模式显示雪花符号 “制热”模式显示太阳符号 (默认在关机状态下才可转换模式) 4.3.定时开关机 设置〖b7〗设置为0时是组合定时(设置请参阅下面设置章节) 开机状态下,按“定时”键,定时关机; 关机状态下,按“定时”键,定时开机; 按“定时”键后,小时时间闪显; 按“时间▽△”键,调整小时定时时间 再按“定时”键后,分钟时间闪显; 按“时间▽△”键,调整分钟定时时间 再按“定时”键,定时设定完成 再按“定时”键,则取消定时 设置〖b7〗设置为1时是循环定时 按“定时”键后,小时时间闪显,开始设定定时开时间; 按“时间▽△”键,调整小时定时开时间 再按“定时”键后,分钟时间闪显; 按“时间▽△”键,调整分钟定时开时间 再按“定时”键,小时时间闪显,定时开时间设定完毕,开始设定定时关时间; 按“时间▽△”键,调整小时定时关时间 再按“定时”键后,分钟时间闪显; 按“时间▽△”键,调整分钟定时关时间 按“定时”键,定时关时间设定完成 4.4.时钟设定 按住“定时”键5秒键后,小时时间闪显,进入时钟设定状态;

单片机双机通信系统的课程设计

一.课程设计的目的及基本要求: 实践课程是使学生融会贯通本课程所学专业理论知识,完成一个较完整的设计计算和安装调试过程,以加深学生对所学理论的理解与应用,认识和熟悉元器件和电子测量仪器的性能指标,了解解决实际问题的一般过程,培养学生综合运用基础理论知识和专业知识去解决实际工程设计问题的能力。通过电子技术的综合性工程训练,使学生达到以下的目的和要求: 1、结合模拟电路、数字电路、可编程逻辑 器件、单片机电子线路CAD等课程中所学的 理论知识,按要求独立设计方案,培养学生 独立分析与解决问题的能力; 2、学会查阅相关手册和资料,通过查阅手 册和资料,进一步熟悉常用电子器件的类型 和特性,并掌握合理选用的原则; 3、学会使用常用电子元器件(包括中规模 芯片、专用芯片和可编程器件);

4、掌握基本的现代电子技术设计工具和EDA (Electronic design automation)技术; 5、掌握电子电路的安装与调试技术,进一 步熟悉电子仪器的使用方法; 6、认真撰写总结报告,培养严谨的作风和 科学的态度; 二.课程设计的主要内容: 课题十九单片机双机通信系统 基本要求:设计两个单片机最小系统,能实现有线通信,一方为发送,另一方为接收。 提高要求:两个单片机最小系统能相互通信,并能实现校验。 三.具体要求和时间安排: 每一个学生在教师指导下,独立完成一个应用系统。工作量如下: 1、电路原理图(A3幅面)1张,要求Protel软件绘制; 2、pcb版图(A3及以上幅面)1张;

3、设计说明书(20-30页)1本,内含能编译通过的源程序(有必要的注释)。

第06章单片机串行通信系统习题解答

第6章单片机串行通信系统习题解答 一、填空题 1.在串行通信中,把每秒中传送的二进制数的位数叫波特率。 2.当SCON中的M0M1=10时,表示串口工作于方式 2 ,波特率为 fosc/32或fosc/64 。 3.SCON中的REN=1表示允许接收。 4.PCON 中的SMOD=1表示波特率翻倍。 5.SCON中的TI=1表示串行口发送中断请求。 6.MCS-51单片机串行通信时,先发送低位,后发送高位。 7.MCS-51单片机方式2串行通信时,一帧信息位数为 11 位。 8.设T1工作于定时方式2,作波特率发生器,时钟频率为,SMOD=0,波特率为时,T1的初值为 FAH 。 9.MCS-51单片机串行通信时,通常用指令 MOV SBUF,A 启动串行发送。 10.MCS-51单片机串行方式0通信时,数据从引脚发送/接收。 二、简答题 1.串行口设有几个控制寄存器它们的作用是什么 答:串行口设有2个控制寄存器,串行控制寄存器SCON和电源控制寄存器PCON。其中PCON中只有的SMOD与串行口的波特率有关。在SCON中各位的作用见下表: 2.MCS-51单片机串行口有几种工作方式各自的特点是什么 答:有4种工作方式。各自的特点为:

3.MCS-51单片机串行口各种工作方式的波特率如何设置,怎样计算定时器的初值 答:串行口各种工作方式的波特率设置: 工作方式O :波特率固定不变,它与系统的振荡频率fosc 的大小有关,其值为fosc/12。 工作方式1和方式3:波特率是可变的,波特率=(2SMOD/32)×定时器T1的溢出率 工作方式2:波特率有两种固定值。 当SM0D=1时,波特率=(2SM0D/64)×fosc=fosc/32 当SM0D=0时,波特率=(2SM0D/64)×fosc=fosc/64 计算定时器的初值计算: 4.若fosc = 6MHz ,波特率为2400波特,设SMOD =1,则定时/计数器T1的计数初值为多少并进行初始化编程。 答:根据公式 N=256-2SMOD ×fosc /(2400×32×12)= ≈243 =F3H TXDA: MOV TMOD,#20H ;置T1定时器工作方式2 MOV TL1,#0F3H ;置T1计数初值. MOV TH1,#0F3H B f B f N OSC SMOD OSC SMOD ??-=???-=384225612322256

GPRS模块概述

GPRS模块概述 现在无线模块品种众多,对于初次进行方案设计的人员来说,难以抉择。常规的无线模块分成GPRS、CDMA、GSM、EDGE等模块。其中有些模块是不带TCP/IP协议的。随着产业的发展和技术的进步,现在大多数无线模块都内置了协议。由于GPRS的网络分布更为广泛,大多数的客户倾向于选择使用GPRS模块。 西门子作为老牌的模块生产企业,它的口碑在业界还是不错的,如MC55I功能丰富、性能稳定;同样如摩托罗拉的G24模块,它的功能非常强大,当然此两款模块价格也是比较高的。相对来说BENQ的M23G、M32(M32已经停产)和华为的GTM900B模块性价比较高,特别是华为的GTM900B模块,近年在行业内得到了越来越多的认可,性能稳定,返修率很低。还有一个优势,就是在硬件上它可以同西门子的TC35I、MC39I进行互换,对于想降低生产成本的模块用户来说非常方便。 相对来说GPRS模块,西门子的MC39I、MC55I、摩托罗拉的G24返修率非常低,客户接受和认可度高。而从最近几年的情况分析来看,华为的GTM900B模块逐渐占据了较高的市场份额,其返修率也非常低。作为性价比很高的一款产品,非常适合对价格敏感的客户群选用。对于GSM模块,则推荐客户选用西门 子的TC35I模块。CDMA模块则推荐使用华为的CM320,性价比相对较高。 随着无线通讯市场的规模逐渐加大,模块的经销渠道也越来越多。但现在市场上商户良莠不齐,举例来说 西门子的无线模块由于推出较早,功能强大,性能稳定,用户也较多。但市场上也出现了很多“水货”和“翻新货”,质量和维保就难以得到保证。所以建议用户不要为了表面上看起来便宜了十几块钱而增大了风险,购买此类产品还是要在正规的代理商或专业经销商处购买。华为的GTM900B作为国产的GPRS模块,目 前市场上应该来说还不会出现“假货”和“翻新货”,目前最好的采购渠道就是在代理商和专业经销商处,能 够得到很好的技术支持和产品维保。 还有就是一定要了解模块短期内是否会停产,我曾经在代理商的极力推荐下使用了BENQ的M32模块,该模块是该代理商主推的BENQ模块,性价比不错,用的也挺好。可是几个月不到,该模块使用的1个TI芯片停产,从而导致该模块也停产了,不得不重新选择模块,不仅浪费公司资源也耽误了市场。 这些无线模块常规的配套产品通常有以下几种:①模块插座,用于连接模块和线路板,不同的模块往往使 用不同规格的插座,常用的有40Pin、50Pin、60Pin和70Pin;②排线,用于连接模块上自带的插座和模块插座,分进口和国产两类;③天线,常用的有吸盘天线、棒状天线、T型天线、尺状天线、拇指天线 等多种形式,配合GPRS和CDMA,频率有850/900/1800和1900MHz;一些客户在偏远地区遇到GPRS或CDMA 信号偏弱的问题可以尝试选择高增益天线加以解决,能取得较好的效果;④转接线,又叫馈线,用于连接天线和模块,接口通常有MMCX、IPEX和SMA等,又分进口和国产两类;⑤SIM卡座, 有翻盖和抽屉式,带回流焊是常用的较好的卡座。 GPRS模块的选择 模块的选择可以从以下几个方面着手: 1,尺寸和成本。这个就不多说了。 2,工作环境。工业及车载的高可靠应用西门子是第一选择,Motorola和索爱的也不错,但其不如前者的供货及技术支持好。一般工业及车载应用但对成本较敏感的话,可以用Simcom或Wavecom的。普通环境及成本高度敏感的,建议用BenQ的,但Benq质量一般,西门子性价比不高,华为的GTM900B是一个不错的选择,也算支持国货。 3,是否需要自带协议栈。如果只是语音和短信之类的应用,就不需要协议栈了,如果还要用到数据传输,就需要协议栈。协议栈可以自己写,自己写协议栈的好处是,灵活性比较高。一般来说每个模块都有对应 的带协议栈和不带协议栈的型号,带协议栈的模块要贵一些,如果对协议栈比较了解的话,推荐自己写协 议栈。若不太了解协议或者急于推出产品的话,可以在前期选择带协议栈的,后期可根据实际情况选择不 带协议栈,也能节约不少成本。 4,模块管脚兼容性。市场上是否有可以替代的模块,如华为的GTM900就和西门子的一些模块PIN_PIN 兼容;当模块停产,或者为了降低成本,或者需要增加新的功能时,模块能相互替代就最好了。 5,代理或者经销商的技术支持要好,能够提供可靠的硬件和软件资料。

51单片机实现的485通讯程序

51单片机实现的485通讯程序 #ifndef __485_C__ #define __485_C__ #include #include #define unsigned char uchar #define unsigned int uint /* 通信命令*/ #define __ACTIVE_ 0x01 // 主机询问从机是否存在 #define __GETDATA_ 0x02 // 主机发送读设备请求 #define __OK_ 0x03 // 从机应答 #define __STATUS_ 0x04 // 从机发送设备状态信息 #define __MAXSIZE 0x08 // 缓冲区长度 #define __ERRLEN 12 // 任何通信帧长度超过12则表示出错uchar dbuf[__MAXSIZE]; // 该缓冲区用于保存设备状态信息uchar dev; // 该字节用于保存本机设备号 sbit M_DE = P1^0; // 驱动器使能,1有效 sbit M_RE = P1^1; // 接收器使能,0有效

void get_status(); // 调用该函数获得设备状态信息,函数代码未给出 void send_data(uchar type, uchar len, uchar *buf); // 发送数据帧 bit recv_cmd(uchar *type); // 接收主机命令,主机请求仅包含命令信息 void send_byte(uchar da); // 该函数发送一帧数据中的一个字节,由send_data()函数调用void main() { uchar type; uchar len; /* 系统初始化*/ P1 = 0xff; // 读取本机设备号 dev = (P1>>2); TMOD = 0x20; // 定时器T1使用工作方式2 TH1 = 250; // 设置初值 TL1 = 250; TR1 = 1; // 开始计时 PCON = 0x80; // SMOD = 1 SCON = 0x50; // 工作方式1,波特率9600bps,允许接收 ES = 0; // 关闭串口中断 IT0 = 0; // 外部中断0使用电平触发模式 EX0 = 1; // 开启外部中断0

GPS模块使用手册

GPS模块使用手册 一、GPS模块的几个重要指标 1.卫星轨迹 全球有24颗GPS卫星沿6条轨道绕地球运行(每4个一组),GPS接收模块就是靠接收这些卫星来进行定位的。但一般在地球的同一边不会超过12颗卫星,所以一般选择可以跟踪12颗卫星以下的器件就可以了。当然,所能跟踪的卫星数越多,性能越好。大多数GPS 接收器可以追踪8~12颗卫星。计算2维坐标至少需要3颗卫星,4颗卫星可以计算3维坐标。 2.并行通道 由于最多可能有12颗卫星是可见的,GPS接收器必须按顺序访问每一颗卫星来获取每颗卫星的信息,所以市面上的GPS接收器大多数是12并行通道型的,这允许它们连续追踪每一颗卫星的信息。12通道接收器的优点包括快速冷启动和初始化卫星的信息,而且在森林地区可以有更好的接收效果。一般12通道接收器不需要外置天线,除非是在封闭的空间,如船舱或车厢中。 3.定位时间 定位时间是指重启GPS接收器时,确定现在位置所需的时间。对于12通道接收器,冷启动时的定位时间一般为3~5 min,热启动时为15~30 s。 4.定位精度 普通GPS接收器的水平位置定位精度在5~10 m内。 5.DGPS功能 DGPS是一个固定的GPS接收器,用于接收卫星的信号。DGPS可以准确地计算出理论上卫星信号传送到的精确时间,然后将它与实际传送时间相比较,并计算出差值。DGPS将这个差值发送出去,其它GPS接收器就可以利用这个差值得到一个更精确的位置读数(5~10 m或者更少的误差)。许多GPS设备提供商在一些地区设置了DGPS发送机,供客户免费使用,只要客户所购买的GPS接收器有DGPS功能即可。 6.信号干扰 要获得一个很好的定位信号,GPS接收器必须至少能接收到3~5颗卫星。如果是在峡谷中或两边高楼林立的街道上,或者是在茂密的丛林里,有可能接收不到足够的卫星,无法定位或者只能得到二维坐标。同样,如果在一个建筑里面,有可能无法更新位置。一些GPS 接收器有单独的天线可以贴在挡风玻璃上,或者将一个外置天线放在车顶上,这有助于接收器收到更多的卫星信号。 二、HOLUX M-89 GPS模块特性 我们选用的是台湾生产的HOLUX M-89 GPS模块,并为其配备了PCB板,以方便与单片机进行连接,下面与反面如下图所示, HOLUX M-89 GPS接收卫星信号时一般还需要配备天线,如下图所示: HOLUX M-89 GPS模块主要特性如下: 产品特征 通道:并行32通道 频率:L1 1575.42MHz C/A码(1.023MHZ码片速率)

单片机串口通信C程序及应用实例

一、程序代码 #include//该头文件可到https://www.360docs.net/doc/519027643.html,网站下载#define uint unsigned int #define uchar unsigned char uchar indata[4]; uchar outdata[4]; uchar flag; static uchar temp1,temp2,temp3,temp; static uchar R_counter,T_counter; void system_initial(void); void initial_comm(void); void delay(uchar x); void uart_send(void); void read_Instatus(void); serial_contral(void); void main() { system_initial(); initial_comm(); while(1) { if(flag==1) { ES = 0; serial_contral(); ES = 1; flag = 0; } else read_Instatus(); } } void uart_send(void) { for(T_counter=0;T_counter<4;T_counter++) { SBUF = outdata[T_counter]; while(TI == 0);

TI = 0; } T_counter = 0; } uart_receive(void) interrupt 4 { if(RI) { RI = 0; indata[R_counter] = SBUF; R_counter++; if(R_counter>=4) { R_counter = 0; flag = 1; } } } void system_initial(void) { P1M1 = 0x00; P1M0 = 0xff; P1 = 0xff; //初始化为全部关闭 temp3 = 0x3f;//初始化temp3的值与六路输出的初始值保持一致 temp = 0xf0; R_counter = 0; T_counter = 0; } void initial_comm(void) { SCON = 0x50; //设定串行口工作方式:mode 1 ; 8-bit UART,enable ucvr TMOD = 0x21; //TIMER 1;mode 2 ;8-Bit Reload PCON = 0x80; //波特率不加倍SMOD = 1 TH1 = 0xfa; //baud: 9600;fosc = 11.0596 IE = 0x90; // enable serial interrupt TR1 = 1; // timer 1 RI = 0; TI = 0; ES = 1; EA = 1; }

GPRS入门知识

GPRS入门知识 一、GPRS简介 GPRS—General Packet Radio Service,GPRS为通用分组无线业务的简称,是欧洲电信协会GSM系统中有关分组数据所规定的标准。GPRS具有充分利用现有的网络、资源利用率高、始终在线、传输速率高、资费合理等特点。 目前世界上有大约10亿普通电话用户,3亿无线通信用户和1亿互联网用户。世界电信业的发展趋势是无线语音业务的发展速度超过普通电话业务,两者间在不断融合。未来的网络将是一个有线、无线和互联网三者合一的数字化的全球网络。其覆盖将超越一切地理障碍,使信息无处不在。预计2005年将10亿无线互联网用户,中国的互联网用户数将从现在的2千万增加到2003年的6千万。GPRS 是目前阶段解决移动通信信息服务的一种较完美、即将从应用实验到正式推广的业务。 与GSM CSD业务不同的是,GPRS业务将以数据流量计费,而GSM CSD业务则以时间计费,GPRS这一计费方式更适应数据通信的特点。此外,GPRS业务的速度较GSM CSD业务也将有很大提高,GPRS可提供高达115kb/s的传输速率(最高值为171.2kb/s),下一代GPRS业务的速度可以达到384Kbit/s。 GPRS一个较大的优势是能够充分利用现有的GSM网,可以使运营商在全国范围内推出此项业务。相信在数年内,通过便携式电脑,GPRS用户能以与ISDN 用户一样快的速度上网浏览,同时也使一些对传输速率敏感的移动多媒体应用成为可能。 GPRS用户只有在发送或接收数据期间才占用资源,这意味着多个用户可高效率地共享同一无线信道,从而提高了资源的利用率。同时,用户只需按数据通信量付费,而无需对整个链路占用期间付费。实际上,GPRS用户可能连接的时间长达数小时,却只需支付相对低廉的连接费用,可使用户的使用费用大大降低。 GPRS通信模块就是为使用GPRS服务而开发的无线通信终端设备。可应用到下列系统集成中:远程数据监测系统、远程控制系统、自动售货系统、无线定位系统、门禁保安系统、物质管理系统等。 二、GPRS特点 GPRS,通用无线分组业务是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接。GPRS充分利用共享无线信道,采用IP Over PPP 实现数据终端的高速、远程接入。作为现有GSM网络向第三代移动通信演变的过渡技术(2.5G),GPRS在许多方面都具有显著的优势。 GPRS有下列特点:

干簧管传感器模块使用说明书

. 产品使用说明书 产品名称:干簧管传感器模块版本:

用途: 程控交换机、复印机、洗衣机、电冰箱、照相机、消毒碗柜、门磁、窗磁、电磁继电器、电子衡器、液位计、煤气表、水表中等等都得到了很好的应用。 模块特色: 1、采用进口常开型干簧管 2、比较器输出,信号干净,波形好,驱动能力强,超过 15mA。 3、工作电压 3.3V-5V 4、输出形式:数字开关量输出(0 和 1) 5、设有固定螺栓孔,方便安装 6、小板 PCB 尺寸:3.2cm x 1.4cm 7、使用宽电压 LM393 比较器 干簧管的特点: 干簧管是干式舌簧管的简称,是一种有触点的无源电子开关元件,具有结构简单,体积小便于控制等优点,其外壳一般是一根密封的玻璃管,管中装有两个铁质的弹性簧片电板,还灌有一种叫金属铑的惰性气体。平时,玻璃管中的两个由特殊材料制成的簧片是分开的。当有磁性物质靠近玻璃管时,在磁场磁力线的作用下,管内的两个簧片被磁化而互相吸引接触,簧片就会吸合在一起,使结点所接的电路连通。外磁力消失后,两个簧片由于本身的弹性而分开,线路也就断开了。因此,作为一种利用磁场信号来控制的线路开关器件,干簧管可以作为传感器用,用于计数,限位等等(在安防系统中主要用于门磁、窗

磁的制作),同时还被广泛使用于各种通信设备中。在实际运用中,通常用永久磁铁控制这两根金属片的接通与否,所以又被称为“磁控管”。 模块使用说明: 1.干簧管需要和磁铁配合使用,在感应到有一定的磁力的时候,会呈导通状态,模块输出低电平,无磁力时,呈断开状态,输出高电平,干簧管与磁铁的感应距离在1.5cm之内超出不灵敏或会无触发现象; 2.模块 DO 输出端可以单片机 I/O 口直接相连,通过单片机可以检测干簧管的触发状态; 3.模块 DO 输出端与继电器 IN 端相连,组成大功率干簧管开关,直接控制高电压。 产品接线说明: 1、VCC 接电源正极 3.3-5V 2、GND 接电源负极 3、DO TTL 开关信号输出

基于51单片机的双机串行通信

机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级: xxxxxx 学号: 13xxxxxxxxx : xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 1.51单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

两个单片机之间的串行通信

两个单片机之间的串行通信 一、设计要求 在某个控制系统中有U1、U2这两个单片机,U1单片机首先将P1端口指拨开关数据载入SBUF,然后经由TXD将数据传送给U2单片机,U2单片机将接收数据存入SBUF,再由SBUF载入累加器,并输出至P1端口,点亮相应端口的LED。 二、实验所需元器件 三、电路原理图: 两个单片机之间的串行通信电路图

四、程序设计 这两个单片机均工作在半工状态,U1将P1端口的状态通过TXD发半空给U2,而U2接收U1的数据,然后控制P1端口的LED显示。因此,需编写两个不同的程序,其程序流程图如下所示:

五、C语言程序: U1的C语言程序: #include "reg51.h" #define uint unsigned int #define uchar unsigned char void send(uchar state) { SBUF=state; while(TI==0); TI=0; } void SCON_init(void) { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; TI=0; TR1=1; ES=1; } void main() { P1=0xff; SCON_init(); while(1) { send(P1); } } U2的C语言程序: #include "reg51.h" #define uint unsigned int #define uchar unsigned char uchar state; void receive() { while(RI==0) state=SBUF; RI=0; } void SCON_init(void) { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; RI=0; TR1=1; } void main() { SCON_init(); while(1) { receive(); P1=state; } } 六、调试与仿真:

GPRS模块参数设置说明

GPRS模块参数设置说明 1. 超级终端通讯端口设置 新建一个超级终端,Windows系统会要求选择有关串行口的设置,选择连接的串行端口号(如COM2),参照下图所示配置串行端口参数: 超级终端通信参数设置如下: 速率: 57600baud 数据位: 8bit 奇偶校验:无 停止位: 1bit 数据流控制:无 2. 进入参数设置模式 启动PC的超级终端软件,按住PC键盘的空格键(SPACE),打开配置终端盒电源。必须在设备加电之前按住PC键盘的空格键(SPACE)不放,然后加电,直至PC机的超 级终端屏幕上显示下图所示界面

在主菜单(Main Menu)状态下键入C进入参数配置,系统可能会要求输入密码,请输入正确密码: 密码:1234 输入正确密码后键回车,进入如下所示界面。 在此状态下键入相应数字,即可进入对应参数配置项。 一般情况需要配置的参数项有: 1 移动业务中心参数配置 3 数据业务中心参数配置 4 串口通讯参数配置 其他参数项建议采用默认值! 3. 各参数项设置 3.1 移动业务中心参数配置(MSC) 在DTU参数配置(Configurations)菜单状态下1,进入移动业务中心参数配置 (MSC):

在此状态下键入相应数字,即可进行参数设置。 例: 按提示信息输入名称,按回车键确认。 然后按“R”键返回上层菜单, 按“Y”键确认保存。 如不需更改此项参数,按“Esc”键退出此项。 其它参数设置方法同此。 如采用公网,此参数项可采用默认。 如采用专网,根据需要设置的参数是: 2 用户名称 3 用户密码 4 设置接入点名称(默认为“CMNET”) 3.2 数据业务中心参数配置(DSC) 在DTU参数配置(Configurations)菜单状态下 3,进入移动业务中心参数

K-CU01 主控制器模块使用说明书

HOLLiAS MACS -K 系列模块 2014年5月B版

HOLLiAS MAC-K系列手册- K-CU01 主控制器模块使用说明书 重要信息 危险图标:表示存在风险,可能会导致人身伤害或设备损坏件。 警告图标:表示存在风险,可能会导致安全隐患。 提示图标:表示操作建议,例如,如何设定你的工程或者如何使用特定的功能。

目录 1.概述 (1) 2.接口说明 (2) 2.1主控单元结构示意图 (2) 2.2底座接口说明 (4) 2.3地址跳线 (8) 2.4IO-BUS (11) 3.状态灯说明 (12) 4.其他特殊功能说明 (14) 4.1短路保护功能 (14) 4.2诊断功能 (15) 4.3冗余功能 (15) 4.4掉电保护 (16) 5.工程应用 (18) 5.1底座选型说明 (18) 5.2应用注意事项 (18) 6.尺寸图 (19) 6.1K-CU01尺寸图 (19) 6.2K-CUT01尺寸图 (19) 7.技术指标 (20) 7.1K-CU01主控制器模块 (20) 7.2K-CUT01 4槽主控器底座 (21)

K-CU01 主控制器模块 1.概述 K-CU01是K系列硬件的控制器模块,是系统的核心控制部件,主要工作是收集I/O模块上报的现场数据,根据组态的控制方案完成对现场设备的控制,同时负责提供数据到上层操作员站显示。 控制器基本功能块主要包括系统网通讯模块、核心处理器、协处理器(IO-BUS主站MCU)、现场通讯数据链路层、现场通讯物理层、以及外围一些辅助功能模块。 K-CU01控制器模块支持两路冗余IO-BUS和从站I/O模块进行通讯,支持两路冗余以太网和上位机进行通讯,实时上传过程数据以及诊断数据。可以在线下装和更新工程,且不会影响现场控制。 K-CU01控制器模块支持双冗余配置使用。当冗余配置时,其中一个控制器出现故障,则该控制器会自动将本机工作状态设置为从机,并上报故障信息;若作为主机出现故障,则主从切换;若作为从机出现故障,则保持该状态。 两块控制器模块K-CU01和两块IO-BUS模块安装在4槽主控底座K-CUT01上,就构成了一个基本的控制器单元。 通过主控底座的主控背板,完成两个控制器模块之间的冗余连接,控制器模块通过IO-BUS模块扩展可以连接最多100个I/O模块。 通过选用不同的IO-BUS模块,控制总线拓扑结构可构成星型和总线型;同时支持远程I/O机柜。 基本的控制器单元如图1-1所示。

Proteus中实现单片机双机通信实验

Proteus中实现单片机双机通信实验 【摘要】本文针对单片机项目设计中出现的问题和基本方法,提出了将Proteus仿真软件和Keil软件引入到单片机项目式开发中。以“单片机双机通信实验”项目为例,详细阐述Proteus软件在单片机课程教学中的使用方法和仿真调试过程。实践证明,该方法能激发开发热情,锻炼创新能力和单片机软硬件综合开发能力,是提高单片机开发效率和设计产品质量的一种有效方法。 【关键词】单片机开发;Proteus软件;仿真调试 引言 单片机开发是一项综合性、实践性、应用性很强的技术。传统的单片机开发采用“先理论设计,再动手实验”的开发模式,该模式造成编程与之实验结果分离,不便于调试,效果并不理想。鉴于此,本文将Proteus和引入到单片机的项目式开发中,通过仿真的直观性和真实感,不仅节约了硬件资源的投入,而且提高了单片机开发效率和产品质量。 一、Proteus简介 Proteus软件是英国Labcenter electronics公司开发的电路分析与实物仿真软件,它除了具有其他EDA工具的原理布图、PCB自动或人工布线、电路仿真等功能外,Proteus最大的特点是基于微控制器的设计连同所有的外围电路一起仿真,可直接在单片机虚拟系统上对MCU编程,并可对软件源代码进行实时调试。同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED/LCD等,可实时显示系统输入、输出结果,以实现交互仿真,或配合Proteus配置的虚拟仪器如示波器、逻辑分析仪等,使单片机虚拟系统实现预期的实验效果。 此处还需要用Keil软件来协助。Keil软件是美国Keil Software公司出品的兼容单片机C语言软件的开发系统,是目前世界上最好的51单片机开发工具之一。它提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率高,多数语句生成的汇编代码很紧凑,容易理解。 Proteus和Keil各自都可以进行仿真调试,但效果不是很理想,如把两者结合起来相互配合,则可发挥Proteus和Keil的优势使其在仿真过程中的软件调试和硬件设计更加便捷、高效。 二、仿真项目教学案例 (一)项目要求 本项目要求用两片AT89C51单片机实现A机检测输入键盘信息,并通过串行通信方式,传送给B机,在B机用数码管显示A机所按下的对应按键代号,“0-9”

相关文档
最新文档