(实习报告)电子工程师助理的实习报告

关于在郑州天道科技发展有限公司工程师助理

的实习报告

一、实习单位及岗位简介

(一)实习单位的简介

为了使我能够从理论高度上升到实践高度,更好的实现理论和实践的结合,让自己的能力得到进一步的提升,为以后的工作和学习奠定基础,同时也为了能够更好的在找工作大军中找寻自己的立足之地,经学校同意我到了郑州天道科技发展有限公司实习。

郑州天道科技发展有限公司是一家国家高新技术企业,成立于2000年3月,位于郑州市政六街22号。公司以高科技为依托,与中国科学院,河南省科学院,郑州大学等单位,有着紧密的技术合作,致力于电力以及相关行业的技术进步,为用户提供完善的解决方案与服务。

主要业务:主要从事电力系统自动化产品的研究、开发、生产以及销售,并承接工业自动化、楼宇自动化系统项目实施。

主营产品:远程用电控制终端;电力参数采集模块;双燃料汽车ECU控制器;配网线损监测仪;变频调速供水设备。

(二)实习岗位的简介

此次实习,我的岗位是工程师助理,鉴于实际情况(公司是个小公司),对于这个岗位公司没有具体的规定该去干什么,不该干什么。另外,作为一个新人,公司的需要就是我的职责所在,所以在这三个月的实习过程中,我做了许多工作,具体如下:

1协助公司研究开发人员完成公司指定项目的开发以及项目的后续工作。作为一家开发与生产为一体的公司,从研究到生产到最后的安装与调试各个环节都需要有人去参与,作为一个实习生,很荣幸我参与了其中的几个环节:从帮助开发人员项目的前期准备工作,到参与制作项目实施过程中所涉及的电路设计和程序的编写,以及试验品的生产安装以及调试。在这几个环节中分配与我的最主要工作是后续部分即电路板的焊接以及成品的调试,除此之外,作为新开发的产品我们还要根据调试的结果将产品的不足以及出现的故障反馈给研究人员。

2 接受并完成公司指定的项目和分配的各项任务。为了培养新人,锻炼我们的各项能力,让我们完成从学生到职员的角色转换,尽快融入到实际工作中来,根据公司的安排,我主要完成了远程控制器的软件设计与实现这个项目。该项目主要是利用51单片机和GPRS调制解调器实现远程控制,以此为核心来设计和制作远程控制器。

3 协助生产部门完成生产任务。由于公司规模小,业务多,为了能够迅速的完成生产任务,同时也为了锻炼我们的动手能力和实际操作能力,根据公司的安排,作为一个实习生,我也承接了一部分生产任务,其主要工作就是焊接安装电路板以及对成品的调试。

4 协助公司员工完成外接工业自动化等工程的装配调试工作。工业自动化、楼宇自动化系统项目实施也属于公司的主营业务,为了能够使我们的知识面更加广泛,接受更多的锻炼,在实习的过程中,公司也为我的实习岗位安排了自动化的内容。

从以上的叙述可以看到,在我们公司,工程师助理这个岗位没有明确的岗位职责,

在我看来就是哪里需要我们我们就去哪里。但是在我看来这样的工作更能锻炼一个人,更能去增加和开拓我的知识层面。

二、实习内容及过程

在公司实习的几个月中,学到了很多的知识,对在学校所学习到的知识有了更深了解。从最基本的焊接电路开始做起,到帮助开发人员完成设计再到后来完成公司的分配的项目,整个实习就是按照这个过程一步一步的进行。以我所做的远程控制器的软件设计与实现这个项目为例来叙述我这三个月的实习生涯:

(一) 项目分析

GSM(Global System for Mobile communication)系统是目前基于时分地 址技术的移动通讯体制中比较成熟、完善、应用最广泛的一种系统。目前我国已建成覆盖全国的GSM数字蜂窝移动通信网络,由于在信息传递方面性能稳定、可靠,而且随着手机的普及,把手机作为信息传递的载体,以GSM网络作为数据无线传输网络,与单片机结合起来构成应用系统,将会在远程数据传输、远程监控等领域有着强大的生命力。天道科技发展有限公司就是看到了这一前景开发出远程控制电表,为了能及时的融入公司,实习公司产品,为公司以后的发展作出贡献,公司安排我做了这样一个实习项目。

该远程控制器是根据短信息的收发原理,利用无线入网GPRS模块,结合单片机控制系统,实现网络覆盖范围内的远距离移动控制。该项目需要完成三部分内容:1. GPRS模块的使用,短消息收发控制 。2单片机与GPRS模块通讯,包括短消息信息的分析处理 。3单片机实现的控制系统,根据不同的短信命令,控制不同外围设备。由于控制器可由手机来完成,远程控制终端也不受地域限制,(只要有网络即可),这提高了远程控制的实用性。

(二) 技术资料分析

2.1 TC35i模块

目前,国内已经开始使用的GSM模块有Falcom的A2D系列、Wavecome的WMO2系列、西门子的TC35系列、爱立信的DM10/DM20系列、中兴的ZXGM18系列等,而且这些模块的功能、用法差别不大。其中西门子的TC35系列模块性价比很高,并且已经有国内的无线电设备入网证。所以本设计选用的是西门子TC35系列的TC35i。这是西门子推出的最新的无线模块,功能上与TC35兼容,设计紧凑,大大缩小了用户产品的体积。TC35i与GSM 2/2+兼容、双频(GSM900/GSMl800)、RS232数据口、符合ETSI标准GSM0707和GSM0705,且易于升级为GPRS模块。该模块集射频电路和基带于一体,向用户提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输,方便用户的应用开发及设计。广泛应用如图2-1的系统。

图2-1 GSM网络 2.1.1 主要技术指标

TC35i主要特性与技术指标包括以下几点: ①

⑨ 频段为双频GSM900MHz和GSMl800MHz (phase 2/2+); 支持数据、语音、短消息和传真; 高集成度(54.5mm×36mm×3.6mm); 质量为9g; 电源电压为单一电压3.3~4.8V; 可选波特率300bps~115kbps,动波特率 4.8~115kbps; 电流消耗——休眠状态为3.5mA,空闲状态为25mA,发射状态为300mA(平均),2.5A峰值; 温度范围 ——正常操作-20℃~+55℃,存放-30℃~+85℃; SIM电压为3V/1.8V。

TC35i有40个引脚,通过一个ZIF(Zero Insertion Force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。第1~14脚为电源部分:1~5为电源电压输入端Vbatt+,6~10为电源地GND,11、12为充电引脚,13为对外输出电压(共外电路使用),14为ACCU-TEMP接负温度系数的热敏电阻。24~29为SIM卡引脚,分别为CCIN、 CCRST、CCIO、CCCLK、CCVCC和CCGND。33~40为语音接口,用来接电话手柄。15、30、31和32脚为控制部分:15为点火线

IGT(Ignition), 当TC35i通电后必须给IGT一个大于100ms低电平,模块才启动;30为RTC backup,31为Power down,32为SYNC。16~23为数据输入/输出,分别为DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0和DCD0。TC35I外围电路设图2-2。

图2-2 TC35I外围电路

TC35i的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-T RS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率00bps~115kbps之间可选,硬件握手信号用RTS0/CTS0,软件流量控制用XON/XOFF,CMOS电平,支持标准的AT命令集。

2.1.2 AT指令介绍

GSM引擎模块提供的命令接口符合GSM07.05和GSM07.07规范。GSM07.07中定义的AT Command接口,提供了一种移动平台与数据终端设备之间的通用接口;SM07.05对短消息作了详细的规定。在短消息模块收到网络发来的短消息时,能够通过串口发送指示消息,数据终端设备可以向GSM模块发送各种命令。与SMS有关的GSM AT指令如图2-4所列。GSM AT指令集,是由诺基亚、爱立信、摩托罗拉和HP等厂家共同为GSM系统研制的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制手机收发SMS的目的. 用于SMS收发控制的主要AT命令见表1。

表 2-1 与SMS相关的若干GSM AT指令

设置AT+CNMI=2,1 这组参数后,一般的模块都会有新信息提示,不会打开回报功能(打开可能会干扰单片机处理)以上仅供参考,不同厂家模块实现形式以及支持参数可能会有不同,需要实际测试。读取SIM卡或者手机内部的信息过程如下:当我们收到这样的信息:“+CMTI: "MT",3”,知道来了新信息,并且存储在手机内部第3个位置区。我们可用AT+CMGR来读取,如下:AT+CMGR=3,回车后,即可看到短信内容。发送一条短信:欲发OK给[1**********],号码编码为0D[1**********]423f2,7位字符编码8位数据位发送,串OK编码为串02CF25,计算待发串长度时,015+内容长度2=017,例如:先发AT+CMGS=017以回车结束。收到>后,发送串

0011000D[1**********]423f200020102CF25以ctrl+z键结束,(单片机中以16进制数1A 、1A两字节结束)即可完成发送。

2.1.3 PDU编码规则

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。

A:短信息中心地址长度,2位十六进制数(1字节)。

B:短信息中心号码类型,2位十六进制数。

C:短信息中心号码,B+C的长度将由A中的数据决定。

D:文件头字节,2位十六进制数。

E:信息类型,2位十六进制数。

F:被叫号码长度,2位十六进制数。

G:被叫号码类型,2位十六进制数,取值同B。

H:被叫号码,长度由F中的数据决定。

I:协议标识,2位十六进制数。

J:数据编码方案,2位十六进制数。

K:有效期,2位十六进制数。

L:用户数据长度,2位十六进制数。

M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。 2.1.4 PDU编码协议简单说明

例1 发送:SMSC号码是+[1**********]00,对方号码是[1**********],消息内容是“Hello!”。从手机发出的PDU串可以是

08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01对照规范,具体分析分段 含义 说明:

08 SMSC地址信息的长度 共8个八位字节(包括91)

91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加„+‟)

68 31 08 20 05 05 F0 SMSC地址 [1**********]00,补„F‟凑成偶数个

11 基本参数(TP-MTI/VFP) 发送,TP-VP用相对格式

00 消息基准值(TP-MR) 0

0D 目标地址数字个数 共13个十进制数(不包括91和„F‟)

91 目标地址格式(TON/NPI) 用国际格式号码(在前面加„+‟)

68 31 96 03 29 30 F0 目标地址(TP-DA) [1**********]30,补„F‟凑成偶数个

00 协议标识(TP-PID) 是普通GSM类型,点到点方式 00 用户信息编码方式(TP-DCS) 7-bit编码

00 有效期(TP-VP) 5分钟

06 用户信息长度(TP-UDL) 实际长度6个字节

C8 32 9B FD 0E 01 用户信息(TP-UD) “Hello!”

例2 接收:SMSC号码是+[1**********]00,对方号码是[1**********],消息内容是“你好!”。手机接收到的PDU串可以是

08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 96 03 29 30 F0 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21

对照规范,具体分析:

08 地址信息的长度 ,八位字节(包括91)

91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)

68 31 08 20 05 05 F0 SMSC地址 [1**********]00,补‘F’凑成偶数个

84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有回复地址

0D 回复地址数字个数 共13个十进制数(不包括91和‘F’)

91 回复地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)

68 31 96 03 29 30 F0 回复地址(TP-RA) [1**********]30,补‘F’凑成偶数个 00 协议标识(TP-PID) 是普通GSM类型,点到点方式

08 用户信息编码方式(TP-DCS) UCS2编码

30 30 21 80 63 54 80 时间戳(TP-SCTS) 2003-3-12 08:36:45 +8时区

06 用户信息长度(TP-UDL) 实际长度6个字节

4F 60 59 7D 00 21 用户信息(TP-UD) “你好!”

若基本参数的最高位(TP-RP)为0,则没有回复地址的三个段。从Internet上发出的短消息常常是这种情形。

注意:号码和时间的表示方法,不是按正常顺序顺着来的,而且要以‘F’将奇数补成偶数。如果用户信息(TP-UD)中存在一个头(基本参数的TP-UDHI为1),在所有编码方式下,用户信息长度(TP-UDL)都等于头长度与编码后字节数之和。如果采用GSM 03.42所建议的压缩算法(TP-DCS的高3位为001),则该长度也是压缩编码后字节数或头长度与压缩编码后字节数之和。

2.2 MCS-51型系列单片机介绍

MCS一51型系列单片机具有40个引脚双列直插式封装的器件。其中许多引脚具有第二功能,但各种不同的单片机芯片又各有不同。其引脚如图2-5所示:图中管脚可以分为4类:电源类管脚2个、时钟类管脚2个、并行I/O类管32个、控制类管脚4个。

1)电源类引脚

VCC(40脚):十5V,芯片工作电源的输入端。

VSS (20脚):接地端。

图2-3 51系列单片机的引脚结构

2)控制信号引脚

RST/VPD(9脚):RST为复位信号输入端。当RST端保持两个机器周期(24个时钟周期)的高电平时,可对单片机实现复位操作。该引脚的第二功能是作为内部电源的输入端(VDD)。当电源VCC一旦发生掉电或电压降低到低于电平规定值时,可通过它为单片机内部RAM提供电源,以保护片内RAM中信息不丢失,使系统在上电后能继续正常运行。

ALE/RROG(30脚):ALE为地址锁存允许输出信号。在访问外部存储器时,ALE用来锁存N扩展地址低8位的地址信号。在不访问外部存储器时,ALE以时钟振荡频率的1/6的固定频率输出。因而它又可用作外部定时及其它需要。但请注意:每当CPU访问外部数据存储器时,将减少一个ALE脉冲。 ALE能驱动8个TTL接口。此引脚的第二功能(PBOG)是对8751型单片机内部EPROM编程时的编程脉冲输入端。

PSEN (29脚):外部程序存储器ROM的读选通信号输出端。当访问外部ROM时,PSEN定时产生负脉冲作为外部ROM的选通信号,即每个机器周期(12个时钟周期)内有效两次。在访问外部RAM或片内ROM时,不会产生有效的PSEN信号,PSEN可驱动8个TTL输入端。

EA/VDD (31脚):面为访问内外部程序存储器控制信号。当EA=0时,对ROM的访问限定在外部程序存储器;当EA=1时,在对ROM的访问先从内部4KB开始,当地址范围超出4KB时自动切换到外部进行访问。由此可见8031型单片机没有内部的4KB程序存储器,因此其EA直接接地。对于片内含EEPROM的机型,在编程期间,此引脚用作21V编程电源VDD的输入端。

3)外接晶体引脚

XTAL1(19脚)和XTAL2(18脚)的内部是一个振荡电路。当使用内部振荡电路时,在这两个管脚上外接石英晶体和微调电容;当使用外部时钟时.用于接外部时钟脉冲信号。

4)输入/输出端口P0、P1、P2、P3

8051型单片机有32条I/O线,构成4个8位双向端口。

.P0口(32—39脚):是一个8垃漏极开路型的双向I/O口时,分时提供低8位地址,并用作8位双向数据总线。

.P1口(1—8脚):是一个带内部提升电阻的8位准双向I/O口。

.P2口(21—28脚):是一个带内部提升电阻的8位准双向I/O口。在访问外部存储器时,提供高8位地址。在对8751型单片机内PROM进行编程和检

验时,P2口用于接收高8位地址和控制信号。

.P3口(10一17脚):是一个带内部提升电阻的8位准双向I/O口。在系统中,这8个引脚都有各自的第二功能。

2.2.1 串口通信介绍

MCS—51单片机与外部设备之间的信息交换(即通信)有两种方式:一种是数据各位同时传送的方法,称为并行通信;另一种是数据逐位串行地顺序传送的方法,称为串行通信。并行通信中,信息传输线的根数和传送的数据位数相等,通信速度快,适合于近距离的通信.串行通信仅需一对传输线即可实现通信,适合于远距离通信。串行通信有两种基本方式:异步通信和同步通信。异步通信是以字符为单位传送的,字符前面有一个起始位(0),后面有一个停止位(1),是一种起止式通信方式,字符间没有固定的间隔长度,这种方式的优点是数据传送可靠性高,能及时发现错误。缺点是通信效率比较低。典型的异步通信数据格式为:

同步通信是以数据块方式传送的,将多个字符组成一个数据块,字符间无间隔.在数据块块首加上控制信息后一起发送出去。这种方式通信效率较高,但要求收发双方设备有较高的同步性能。如图2-6所示 为MCS—51的串口结构图

图2-4 MCS—51的串口结构图

2.2.2 LED显示器简单介绍

1. LED显示器结构

常用的LED显示器有7段(或8段,8段比7段多了一个小数点“如”段)和“米”字段之分。这种显示器有共阳极和共阴极两种。如图2-7所示。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

图 2-5 7段(8段)LED结构及外形

(三) 设计方案与实现

3.1 硬件设计

在图3-1原理框图中,终端如手机发出的控制命令,通过GSM网络传输,再传给短信息收发TC35I模块,模块收到后,给单片机一个新短消息提示,单片机读取短信并回复,然后根据收到的控制命令,控制外围设备并答复

图 3-1 系统原理框图

GPRS模块与单片机接口电路:

单片机AT89C51与TC35i的连接要用到串口通信,由于单片机系统的电平为标准的 TTL电平 ,而TC35i的接口电路是标准ITU-T RS-232,工作在CMOS电平(2.65V)。因此可使用 MAX232 转换芯片进行电平转换。MAX232 芯片是 MAXIM 公司生产的低功耗、单电源双 RS232 发送/ 接收器 适用于各种 EIA -232E 和 V. 28/ V. 24 的通信接口 MAX232 芯片内部有一个电源电压变换器, 可以把输入的 + 5V电源变换成 RS - 232输出电平所需 ±10V 电压 , 所以采用此芯片接口的串行通信系统只要单一的

+5V 电源就可以了。

MAX232 外围需要 4 个电解电容 C1 、C2 、C3 、C4 , 是内部电源转换所需电容,取值均为 1μF/25V宜选用钽电容并且应尽量靠近芯片。C5为0.1μF 的去耦电容。 MAX232 的引脚 T1IN、T2IN、

R1OUT、R2OUT 为接 TTL/ CMOS 电平的引脚 引脚 T1OUT、T2OUT、R1IN、R2IN 为接 RS - 232 电平的引脚。此 TTL/ CMOS 电平的 T1IN、T2IN 引脚应接 MCS- 51 的串行发送引脚 TXD ; R1OUT、R2OUT 应接 MCS - 51 的串行接收引脚 RXD。 与之对应的 RS -232电平的 T1OUT、T2OUT 应接TC-35的接收端 RXD ; R1IN、R2IN 应接 TC-35的发送端 TXD。MAX232基本接线图如3-2。

图3-2 串口接口电路

TC35I模块及外围电路部分较为复杂,可用百亿公司的GPRS modem代替,而且单片机串口部分只需电平转换电路即可通讯,设备部分,可用发光二极管取代,显示部分可用7段数码管显示,这样整个系统大大简化。

在单片机实验板中,发光二极管低电平点亮,可模拟设备的开关,数码管为共阳极显示,低电平位选中,显示主叫号码和设备编号。串口采用MAX232通讯。原理图见图3-5。系统控制命令设定如下:

1 发送KXL1357表示在原状态基础上点亮编号为1、3、5、7的发光二极管 2 发送KAL表示点亮所有的发光二极管

3 发送GXL1246表示在原状态基础上熄灭编号为1、2、4、6的发光二极管 4 发送GAL表示熄灭所有的发光二极管

图3-5 51单片机实验板电路

3.2 软件设计

程序流程图见图3-6:控制器上电后要初始化,进入等待短信命令状态,如果收到命令便执行命令,回复命令。然后继续等待下一条命令,程序流程图如下:

图3-6 单片机程序流程图

程序说明:

初始化单片机,采用查询方式通讯,串口设置如下:

MOV MOV MOV MOV MOV SETB

SCON,#50H ;串口 方式 1(串口初始化 ) PCON,#00H

TMOD,#20H ;T1 方式 2 TL1,#0FDH ;波特率 9600 的常数 TH1,#0FDH TR1

GPRS模块上电后,指示灯闪烁,表示正常工作,需要设置以下几条AT指令: 1.发AT,收到OK,表示与网络连接正常

2.设置短消息中心号码,一次即可,发AT+CSCA="+[1**********]00",收到OK,表示设置成功

3.设置短消息格式,发AT+CMGF=0,设置为PDU格式,收到OK,表示设置成功

4.设置AT+CNMI=2,1指令,有新短消息会提示所在的存储区号

为防止存储器已满而没有新短消息提示, 要清空部分存储区,有AT+CMGD=17指令执行,删除第17条短信,收到OK删除成功.

以上设置完成后,程序开始等待接收短信,如果接收到一条新短信,单片机会收到“+CMTI: "MT",13”提示 ,分离存储索引号程序就是从收到的提示串中获取串13,为读指令做准备。单片机发送AT+CMGR=13,可读取此短信,从读得的字符串中分离出主叫号码,和短信内容,再根据它们计算回复短信串格式长度,并重组发送串,发出回复短信。在处理程序中,要将短信内容解码,根据具体内容跳转不同的自定义命令处理程序。解码程序中,将号码串解码复原,与内容串重组,然后调用显示程序,完成后回到等待状态

程序实现如下:

MOV R0,#STR0 MOV DPTR,#SMA LCALL SETSTR MOV R0,#STR0 MOV R1,#TEL LCALL STRCAT MOV R0,#STR1 MOV DPTR,#SMB LCALL SETSTR MOV R0,#STR0 MOV R1,#STR1 LCALL STRCAT

MOV R0,#STR0 MOV R1,#WORD LCALL STRCAT MOV R0,#STR1 MOV @R0,#2 INC R0 MOV @R0,#1AH INC R0 MOV @R0,#1AH MOV R0,#STR0 MOV R1,#STR1 LCALL STRCAT

3.3 超级终端中与GPRS模块的通讯

将GPRS模块连接到PC机COM1,上电后指示灯闪烁,表示工作正常

新建超级终端

点击开始-所有程序-附件-通讯-超级终端

弹出连接描述对话框 输入名称(例sh)选择图标点击确定

弹出连接到对话框 输入区号选择地区和串口(例COM1)点击确定 弹出COM1属性对话框 可设定通信协议(这里波特率设置9600,8位数据通信,无奇偶校验) 确定后

弹出 sh - 超级终端 界面

依次运行各AT指令如图3-7:(各串以回车,换行字符结束)

图3-6 超级终端中AT命令的实现

3.4 TC与GPRS模块的通讯

将GPRS模块连接到PC机COM1,上电后指示灯闪烁,表示工作正常,在TC中运行TC发送函数,依次输入AT 、AT+CMGF=0、AT+CNMI=2,1等AT命令,测试结果如图3-8至图3-10:

从测试结果可以看出,在回复命令过程中,首先把命令串回送过来以回车键结束,然后才是执行结果串,以回车,换行字符开始,并以其结束。

图3-7AT+CNMI指令在TC中的实现

图3-8 AT命令的字符格式输出

图3-9 AT命令的十进制格式输出

TC发送函数:

在子函数void send(char str[],int tx)中,str是待发串,tx参数是为模拟短消息发送而设置的,tx=1时,将在发送串结尾自动加回车键;tx=2时将在发送串结尾自动加ctrl+z键。在接收串的过程中,void receive(char str[],int x)中x的大小决定串口查询最大次数的多少,此函数可把收的字符以十进制格式打印出来,接收到的串存在str中。程序如下:

#include

#include #include #include

void send(char str[],int tx);

void initcom1();

void receive(char str[],int x);

main() {

char str0[200];

initcom1(); while(1) {

scanf("%s",str0); send(str0,1); receive(str0,15); } }

void initcom1() {

/*8位数据位,无奇偶校验,波特率9600b/s */

outportb(0x3fb,0x80); delay(100);

outportb(0x3f8,0x0c); delay(100);

outportb(0x3f9,0x00); delay(100);

outportb(0x3fb,0x03); delay(100);

outportb(0x3fc,0x03); delay(100);

outportb(0x3f9,0x00); delay(100); }

/* 发送串子函数:*/ void send(char str[],int tx) {

int i=0,k,tend=3; char ch;

unsigned char data;

k=strlen(str); while(tend!=1) {

do{

data = inportb(0x3fd); data &= 0x20; }while(data==0);

if(i

{ ch = str[i];

outportb(0x3f8,ch); i++;}

else if(tx==1) {outportb(0x3f8,0x0d);tend=1;} /*tx=1 end of 'r'*/

else if(tx==2) { outportb(0x3f8,0x1a);tend--;} /*tx=2 end of'ctrl+z'*/

} }

/* 接收串子函数:*/

void receive(char str[],int x) {

int i=0,t=0,j=0,rend=0; char ch;

unsigned char data;

for(i=0;i

data=inportb(0x3fd); data&=0x01; t++;

}while(data==0&&t!=5);

if(t!=5)

{ch=inportb(0x3f8); putchar(ch);

printf(" %d\n",ch); str[j++]=ch; t=0;} else {

rend++; if(rend==x) break; }

str[j]='\0'; } } 3.5 单片机与GPRS模块的通讯

将GPRS模块连接到单片机串口上,上电后指示灯闪烁表示正常工作。将DPTR依次设为各数据表初始地址,在WAVE6000中硬件仿真,运行此程序,观察DATA数据窗口如图:

STR0 EQU 30H STR1 EQU 40H ORG 0000H AJMP MAIN ORG 0100H MAIN:

MOV SCON,#50H ;串口 方式 1(串口初始化 ) MOV PCON,#00H MOV TMOD,#20H ;T1 方式 2 MOV TL1,#0FDH ;波特率 9600 的常数 MOV TH1,#0FDH SETB TR1 MOV R0,#STR0 MOV DPTR,#ATT LCALL SETSTR MOV R0,#STR0 LCALL TXSTR MOV R0,#STR1 MOV R6,#2 LCALL RXSTR GLOOP:AJMP GLOOP

ATT:DB 03H 41H 54H 0DH ;AT

ATF:DB 0AH 41H 54H 2BH 43H 4DH 47H 46H 3DH 30H 0DH ;AT+CMGF=0 NMI:DB 0CH 41H 54H 2BH 43H 4EH 4DH 49H 3DH 32H 2CH 31H 0DH ;AT+CNMI=2,1

SETSTR:CLR A RET MOVC A,@A+DPTR TXSTR:MOV A,@R0 MOV R3,A MOV R3,A MOV @R0,A LOOPT:INC R0 MOV R2 ,#0 MOV A,@R0 LOOP:INC R2 MOV SBUF,A INC R0 WAITT:JNB TI,WAITT MOV A,R2 CLR TI MOVC A,@A+DPTR DJNZ R3,LOOPT MOV @R0,A RET DJNZ R3,LOOP RXSTR:MOV A,R0

PUSH A

MOV R3,#00H HERE :JNB RI,HERE RXR: CLR A MOV R4,A

MOV R5,A WAITR:JB RI,RI1 DJNZ R5,WAITR DJNZ R4,WAITR DJNZ AJMP RI1: CLR MOV INC MOV INC AJMP RXEND:POP MOV MOV MOV RET

END R6,WAITR RXEND RI

A,SBUF R0 @R0,A R3 RXR A R0,A A,R3 @R0,A

运行结果如下:

图3-10 AT+CNMI指令实现新短消息提示

图3-11 AT+CMGR 实现短消息的读取

从图3-11中可以看出,从30H 开始的串 AT+CNMI=2,1命令从串口发出后。从40H开始,系统不但收到了命令串AT+CNMI=2,1,而切收到了设置成功的标志OK,见图中红体部分后的注释。当有新短消息时,从60H开始,系统收到了提示+CMTI: “MT”,15,表示存储在MT卡第15存储区,在图3-12中,从30H开始,发出命令串AT+CMGR=15,从40H开始,收到了整条短信的格式回复。包含电话号码串(70H开始)和用户信息串(94H开始)。0DH、0AH 常成对出现,用于区分各信息串。

以上是进行该项目的基本流程,先是进行项目分析,然后收集技术资料并对此进行分析,接着硬件和软件的设计。同样在新产品的开发中我们也是基于这样一个流程来进行的。

三、实习收获与体会

人们常说大学是个象牙塔,确实,学校与职场、学习与工作、学生与员工之间存在着巨大的差异,在角色转化的过程中,个人的观点、行为方式、心理等方面都要做适当的调整。然而对于即将走出象牙塔的我们来说,无疑这是困难的,但是实习给我提供了一个机会,让我接触到真实的职场,提前感受和适应由学生到职员的角色转换。

对于远程控制器的软件设计与实现这个项目,我觉得关键是单片机串口通讯和AT指令在短消息中的应用,然后是对AT指令的详细了解以及程序的实现,我先在TC中完成AT 指令的使用,总结各指令的特点,然后完成各指令的综合使用,完成PC机与GPRS模块的短信收发控制,最后在单片机中完成整个系统的测试。通过这个项目的实习让我认识到深居象牙塔的我还欠缺很多的东西:1 专业知识的欠缺。 社会是在往前进步的,科技也是向前发展的,特别是我们这个行业知识更新很快,但是相对于用人单位来说,我们所学的知识却是落后的,过时的,而且是单一的,这样就造成了所学的与他们所需的严重脱节,这是我在实习的过程中感受最深的。2 动手能力不强。我觉得校园与单位最大的区别是在学校我们大部分时间用来学习理论知识,但是在工作中我们大部分时间却是在使用我们的理论知识,而使理论和实际融合起来的就是我们的动手能力,然而在这个方向上我们是欠缺的。正是由于上述的种种缺失造成了我在实习的过程中遇到了不少的困难,但是也正是这样让我学会了耐心冷静的去分析问题,主动的去查阅资料,学习新的知识;学会了寻找机会与别人交流,学习他们的经验、方法。 总的来说,通过实践学习,不论是知识层面还是动手能力方面抑或是与人交流探讨问题等诸多方面,都得到了锻炼,在锻炼中使我得到了提高。

四、致谢

首先,感谢电子科技大学成都学院各位老师对我的培养。

感谢郑州天道科技发展有限公司给我这次实习机会,让我提前感受工作的乐趣,让我在实践中得到锻炼,让我在学校中学到的理论知识在实践中升华成自己的能力,为我以后的工作打下了良好的基础。

感谢我的指导老师周庆民,在百忙中抽出时间指导我,让我能顺利完成公司分配的各项任务,同时也感谢天道公司的每一位员工,感谢他们对我的支持和帮助。

最后,感谢在百忙之中抽出时间参加评阅和评议的各位专家学者,感谢他们为审阅本文所付出的辛勤劳动。

五、指导教师评语

刘建敏同学在实习期间勤奋好学,工作勤奋,态度诚恳,能够认真完成公司分配的任务,虽然是一个实习生,却能以公司正式员工的要求来约束自己,为公司的发展尽着自己的努力。

六、评阅人意见

关于在郑州天道科技发展有限公司工程师助理

的实习报告

一、实习单位及岗位简介

(一)实习单位的简介

为了使我能够从理论高度上升到实践高度,更好的实现理论和实践的结合,让自己的能力得到进一步的提升,为以后的工作和学习奠定基础,同时也为了能够更好的在找工作大军中找寻自己的立足之地,经学校同意我到了郑州天道科技发展有限公司实习。

郑州天道科技发展有限公司是一家国家高新技术企业,成立于2000年3月,位于郑州市政六街22号。公司以高科技为依托,与中国科学院,河南省科学院,郑州大学等单位,有着紧密的技术合作,致力于电力以及相关行业的技术进步,为用户提供完善的解决方案与服务。

主要业务:主要从事电力系统自动化产品的研究、开发、生产以及销售,并承接工业自动化、楼宇自动化系统项目实施。

主营产品:远程用电控制终端;电力参数采集模块;双燃料汽车ECU控制器;配网线损监测仪;变频调速供水设备。

(二)实习岗位的简介

此次实习,我的岗位是工程师助理,鉴于实际情况(公司是个小公司),对于这个岗位公司没有具体的规定该去干什么,不该干什么。另外,作为一个新人,公司的需要就是我的职责所在,所以在这三个月的实习过程中,我做了许多工作,具体如下:

1协助公司研究开发人员完成公司指定项目的开发以及项目的后续工作。作为一家开发与生产为一体的公司,从研究到生产到最后的安装与调试各个环节都需要有人去参与,作为一个实习生,很荣幸我参与了其中的几个环节:从帮助开发人员项目的前期准备工作,到参与制作项目实施过程中所涉及的电路设计和程序的编写,以及试验品的生产安装以及调试。在这几个环节中分配与我的最主要工作是后续部分即电路板的焊接以及成品的调试,除此之外,作为新开发的产品我们还要根据调试的结果将产品的不足以及出现的故障反馈给研究人员。

2 接受并完成公司指定的项目和分配的各项任务。为了培养新人,锻炼我们的各项能力,让我们完成从学生到职员的角色转换,尽快融入到实际工作中来,根据公司的安排,我主要完成了远程控制器的软件设计与实现这个项目。该项目主要是利用51单片机和GPRS调制解调器实现远程控制,以此为核心来设计和制作远程控制器。

3 协助生产部门完成生产任务。由于公司规模小,业务多,为了能够迅速的完成生产任务,同时也为了锻炼我们的动手能力和实际操作能力,根据公司的安排,作为一个实习生,我也承接了一部分生产任务,其主要工作就是焊接安装电路板以及对成品的调试。

4 协助公司员工完成外接工业自动化等工程的装配调试工作。工业自动化、楼宇自动化系统项目实施也属于公司的主营业务,为了能够使我们的知识面更加广泛,接受更多的锻炼,在实习的过程中,公司也为我的实习岗位安排了自动化的内容。

从以上的叙述可以看到,在我们公司,工程师助理这个岗位没有明确的岗位职责,

在我看来就是哪里需要我们我们就去哪里。但是在我看来这样的工作更能锻炼一个人,更能去增加和开拓我的知识层面。

二、实习内容及过程

在公司实习的几个月中,学到了很多的知识,对在学校所学习到的知识有了更深了解。从最基本的焊接电路开始做起,到帮助开发人员完成设计再到后来完成公司的分配的项目,整个实习就是按照这个过程一步一步的进行。以我所做的远程控制器的软件设计与实现这个项目为例来叙述我这三个月的实习生涯:

(一) 项目分析

GSM(Global System for Mobile communication)系统是目前基于时分地 址技术的移动通讯体制中比较成熟、完善、应用最广泛的一种系统。目前我国已建成覆盖全国的GSM数字蜂窝移动通信网络,由于在信息传递方面性能稳定、可靠,而且随着手机的普及,把手机作为信息传递的载体,以GSM网络作为数据无线传输网络,与单片机结合起来构成应用系统,将会在远程数据传输、远程监控等领域有着强大的生命力。天道科技发展有限公司就是看到了这一前景开发出远程控制电表,为了能及时的融入公司,实习公司产品,为公司以后的发展作出贡献,公司安排我做了这样一个实习项目。

该远程控制器是根据短信息的收发原理,利用无线入网GPRS模块,结合单片机控制系统,实现网络覆盖范围内的远距离移动控制。该项目需要完成三部分内容:1. GPRS模块的使用,短消息收发控制 。2单片机与GPRS模块通讯,包括短消息信息的分析处理 。3单片机实现的控制系统,根据不同的短信命令,控制不同外围设备。由于控制器可由手机来完成,远程控制终端也不受地域限制,(只要有网络即可),这提高了远程控制的实用性。

(二) 技术资料分析

2.1 TC35i模块

目前,国内已经开始使用的GSM模块有Falcom的A2D系列、Wavecome的WMO2系列、西门子的TC35系列、爱立信的DM10/DM20系列、中兴的ZXGM18系列等,而且这些模块的功能、用法差别不大。其中西门子的TC35系列模块性价比很高,并且已经有国内的无线电设备入网证。所以本设计选用的是西门子TC35系列的TC35i。这是西门子推出的最新的无线模块,功能上与TC35兼容,设计紧凑,大大缩小了用户产品的体积。TC35i与GSM 2/2+兼容、双频(GSM900/GSMl800)、RS232数据口、符合ETSI标准GSM0707和GSM0705,且易于升级为GPRS模块。该模块集射频电路和基带于一体,向用户提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输,方便用户的应用开发及设计。广泛应用如图2-1的系统。

图2-1 GSM网络 2.1.1 主要技术指标

TC35i主要特性与技术指标包括以下几点: ①

⑨ 频段为双频GSM900MHz和GSMl800MHz (phase 2/2+); 支持数据、语音、短消息和传真; 高集成度(54.5mm×36mm×3.6mm); 质量为9g; 电源电压为单一电压3.3~4.8V; 可选波特率300bps~115kbps,动波特率 4.8~115kbps; 电流消耗——休眠状态为3.5mA,空闲状态为25mA,发射状态为300mA(平均),2.5A峰值; 温度范围 ——正常操作-20℃~+55℃,存放-30℃~+85℃; SIM电压为3V/1.8V。

TC35i有40个引脚,通过一个ZIF(Zero Insertion Force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。第1~14脚为电源部分:1~5为电源电压输入端Vbatt+,6~10为电源地GND,11、12为充电引脚,13为对外输出电压(共外电路使用),14为ACCU-TEMP接负温度系数的热敏电阻。24~29为SIM卡引脚,分别为CCIN、 CCRST、CCIO、CCCLK、CCVCC和CCGND。33~40为语音接口,用来接电话手柄。15、30、31和32脚为控制部分:15为点火线

IGT(Ignition), 当TC35i通电后必须给IGT一个大于100ms低电平,模块才启动;30为RTC backup,31为Power down,32为SYNC。16~23为数据输入/输出,分别为DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0和DCD0。TC35I外围电路设图2-2。

图2-2 TC35I外围电路

TC35i的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-T RS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率00bps~115kbps之间可选,硬件握手信号用RTS0/CTS0,软件流量控制用XON/XOFF,CMOS电平,支持标准的AT命令集。

2.1.2 AT指令介绍

GSM引擎模块提供的命令接口符合GSM07.05和GSM07.07规范。GSM07.07中定义的AT Command接口,提供了一种移动平台与数据终端设备之间的通用接口;SM07.05对短消息作了详细的规定。在短消息模块收到网络发来的短消息时,能够通过串口发送指示消息,数据终端设备可以向GSM模块发送各种命令。与SMS有关的GSM AT指令如图2-4所列。GSM AT指令集,是由诺基亚、爱立信、摩托罗拉和HP等厂家共同为GSM系统研制的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制手机收发SMS的目的. 用于SMS收发控制的主要AT命令见表1。

表 2-1 与SMS相关的若干GSM AT指令

设置AT+CNMI=2,1 这组参数后,一般的模块都会有新信息提示,不会打开回报功能(打开可能会干扰单片机处理)以上仅供参考,不同厂家模块实现形式以及支持参数可能会有不同,需要实际测试。读取SIM卡或者手机内部的信息过程如下:当我们收到这样的信息:“+CMTI: "MT",3”,知道来了新信息,并且存储在手机内部第3个位置区。我们可用AT+CMGR来读取,如下:AT+CMGR=3,回车后,即可看到短信内容。发送一条短信:欲发OK给[1**********],号码编码为0D[1**********]423f2,7位字符编码8位数据位发送,串OK编码为串02CF25,计算待发串长度时,015+内容长度2=017,例如:先发AT+CMGS=017以回车结束。收到>后,发送串

0011000D[1**********]423f200020102CF25以ctrl+z键结束,(单片机中以16进制数1A 、1A两字节结束)即可完成发送。

2.1.3 PDU编码规则

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。

A:短信息中心地址长度,2位十六进制数(1字节)。

B:短信息中心号码类型,2位十六进制数。

C:短信息中心号码,B+C的长度将由A中的数据决定。

D:文件头字节,2位十六进制数。

E:信息类型,2位十六进制数。

F:被叫号码长度,2位十六进制数。

G:被叫号码类型,2位十六进制数,取值同B。

H:被叫号码,长度由F中的数据决定。

I:协议标识,2位十六进制数。

J:数据编码方案,2位十六进制数。

K:有效期,2位十六进制数。

L:用户数据长度,2位十六进制数。

M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。 2.1.4 PDU编码协议简单说明

例1 发送:SMSC号码是+[1**********]00,对方号码是[1**********],消息内容是“Hello!”。从手机发出的PDU串可以是

08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01对照规范,具体分析分段 含义 说明:

08 SMSC地址信息的长度 共8个八位字节(包括91)

91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加„+‟)

68 31 08 20 05 05 F0 SMSC地址 [1**********]00,补„F‟凑成偶数个

11 基本参数(TP-MTI/VFP) 发送,TP-VP用相对格式

00 消息基准值(TP-MR) 0

0D 目标地址数字个数 共13个十进制数(不包括91和„F‟)

91 目标地址格式(TON/NPI) 用国际格式号码(在前面加„+‟)

68 31 96 03 29 30 F0 目标地址(TP-DA) [1**********]30,补„F‟凑成偶数个

00 协议标识(TP-PID) 是普通GSM类型,点到点方式 00 用户信息编码方式(TP-DCS) 7-bit编码

00 有效期(TP-VP) 5分钟

06 用户信息长度(TP-UDL) 实际长度6个字节

C8 32 9B FD 0E 01 用户信息(TP-UD) “Hello!”

例2 接收:SMSC号码是+[1**********]00,对方号码是[1**********],消息内容是“你好!”。手机接收到的PDU串可以是

08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 96 03 29 30 F0 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21

对照规范,具体分析:

08 地址信息的长度 ,八位字节(包括91)

91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)

68 31 08 20 05 05 F0 SMSC地址 [1**********]00,补‘F’凑成偶数个

84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有回复地址

0D 回复地址数字个数 共13个十进制数(不包括91和‘F’)

91 回复地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)

68 31 96 03 29 30 F0 回复地址(TP-RA) [1**********]30,补‘F’凑成偶数个 00 协议标识(TP-PID) 是普通GSM类型,点到点方式

08 用户信息编码方式(TP-DCS) UCS2编码

30 30 21 80 63 54 80 时间戳(TP-SCTS) 2003-3-12 08:36:45 +8时区

06 用户信息长度(TP-UDL) 实际长度6个字节

4F 60 59 7D 00 21 用户信息(TP-UD) “你好!”

若基本参数的最高位(TP-RP)为0,则没有回复地址的三个段。从Internet上发出的短消息常常是这种情形。

注意:号码和时间的表示方法,不是按正常顺序顺着来的,而且要以‘F’将奇数补成偶数。如果用户信息(TP-UD)中存在一个头(基本参数的TP-UDHI为1),在所有编码方式下,用户信息长度(TP-UDL)都等于头长度与编码后字节数之和。如果采用GSM 03.42所建议的压缩算法(TP-DCS的高3位为001),则该长度也是压缩编码后字节数或头长度与压缩编码后字节数之和。

2.2 MCS-51型系列单片机介绍

MCS一51型系列单片机具有40个引脚双列直插式封装的器件。其中许多引脚具有第二功能,但各种不同的单片机芯片又各有不同。其引脚如图2-5所示:图中管脚可以分为4类:电源类管脚2个、时钟类管脚2个、并行I/O类管32个、控制类管脚4个。

1)电源类引脚

VCC(40脚):十5V,芯片工作电源的输入端。

VSS (20脚):接地端。

图2-3 51系列单片机的引脚结构

2)控制信号引脚

RST/VPD(9脚):RST为复位信号输入端。当RST端保持两个机器周期(24个时钟周期)的高电平时,可对单片机实现复位操作。该引脚的第二功能是作为内部电源的输入端(VDD)。当电源VCC一旦发生掉电或电压降低到低于电平规定值时,可通过它为单片机内部RAM提供电源,以保护片内RAM中信息不丢失,使系统在上电后能继续正常运行。

ALE/RROG(30脚):ALE为地址锁存允许输出信号。在访问外部存储器时,ALE用来锁存N扩展地址低8位的地址信号。在不访问外部存储器时,ALE以时钟振荡频率的1/6的固定频率输出。因而它又可用作外部定时及其它需要。但请注意:每当CPU访问外部数据存储器时,将减少一个ALE脉冲。 ALE能驱动8个TTL接口。此引脚的第二功能(PBOG)是对8751型单片机内部EPROM编程时的编程脉冲输入端。

PSEN (29脚):外部程序存储器ROM的读选通信号输出端。当访问外部ROM时,PSEN定时产生负脉冲作为外部ROM的选通信号,即每个机器周期(12个时钟周期)内有效两次。在访问外部RAM或片内ROM时,不会产生有效的PSEN信号,PSEN可驱动8个TTL输入端。

EA/VDD (31脚):面为访问内外部程序存储器控制信号。当EA=0时,对ROM的访问限定在外部程序存储器;当EA=1时,在对ROM的访问先从内部4KB开始,当地址范围超出4KB时自动切换到外部进行访问。由此可见8031型单片机没有内部的4KB程序存储器,因此其EA直接接地。对于片内含EEPROM的机型,在编程期间,此引脚用作21V编程电源VDD的输入端。

3)外接晶体引脚

XTAL1(19脚)和XTAL2(18脚)的内部是一个振荡电路。当使用内部振荡电路时,在这两个管脚上外接石英晶体和微调电容;当使用外部时钟时.用于接外部时钟脉冲信号。

4)输入/输出端口P0、P1、P2、P3

8051型单片机有32条I/O线,构成4个8位双向端口。

.P0口(32—39脚):是一个8垃漏极开路型的双向I/O口时,分时提供低8位地址,并用作8位双向数据总线。

.P1口(1—8脚):是一个带内部提升电阻的8位准双向I/O口。

.P2口(21—28脚):是一个带内部提升电阻的8位准双向I/O口。在访问外部存储器时,提供高8位地址。在对8751型单片机内PROM进行编程和检

验时,P2口用于接收高8位地址和控制信号。

.P3口(10一17脚):是一个带内部提升电阻的8位准双向I/O口。在系统中,这8个引脚都有各自的第二功能。

2.2.1 串口通信介绍

MCS—51单片机与外部设备之间的信息交换(即通信)有两种方式:一种是数据各位同时传送的方法,称为并行通信;另一种是数据逐位串行地顺序传送的方法,称为串行通信。并行通信中,信息传输线的根数和传送的数据位数相等,通信速度快,适合于近距离的通信.串行通信仅需一对传输线即可实现通信,适合于远距离通信。串行通信有两种基本方式:异步通信和同步通信。异步通信是以字符为单位传送的,字符前面有一个起始位(0),后面有一个停止位(1),是一种起止式通信方式,字符间没有固定的间隔长度,这种方式的优点是数据传送可靠性高,能及时发现错误。缺点是通信效率比较低。典型的异步通信数据格式为:

同步通信是以数据块方式传送的,将多个字符组成一个数据块,字符间无间隔.在数据块块首加上控制信息后一起发送出去。这种方式通信效率较高,但要求收发双方设备有较高的同步性能。如图2-6所示 为MCS—51的串口结构图

图2-4 MCS—51的串口结构图

2.2.2 LED显示器简单介绍

1. LED显示器结构

常用的LED显示器有7段(或8段,8段比7段多了一个小数点“如”段)和“米”字段之分。这种显示器有共阳极和共阴极两种。如图2-7所示。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

图 2-5 7段(8段)LED结构及外形

(三) 设计方案与实现

3.1 硬件设计

在图3-1原理框图中,终端如手机发出的控制命令,通过GSM网络传输,再传给短信息收发TC35I模块,模块收到后,给单片机一个新短消息提示,单片机读取短信并回复,然后根据收到的控制命令,控制外围设备并答复

图 3-1 系统原理框图

GPRS模块与单片机接口电路:

单片机AT89C51与TC35i的连接要用到串口通信,由于单片机系统的电平为标准的 TTL电平 ,而TC35i的接口电路是标准ITU-T RS-232,工作在CMOS电平(2.65V)。因此可使用 MAX232 转换芯片进行电平转换。MAX232 芯片是 MAXIM 公司生产的低功耗、单电源双 RS232 发送/ 接收器 适用于各种 EIA -232E 和 V. 28/ V. 24 的通信接口 MAX232 芯片内部有一个电源电压变换器, 可以把输入的 + 5V电源变换成 RS - 232输出电平所需 ±10V 电压 , 所以采用此芯片接口的串行通信系统只要单一的

+5V 电源就可以了。

MAX232 外围需要 4 个电解电容 C1 、C2 、C3 、C4 , 是内部电源转换所需电容,取值均为 1μF/25V宜选用钽电容并且应尽量靠近芯片。C5为0.1μF 的去耦电容。 MAX232 的引脚 T1IN、T2IN、

R1OUT、R2OUT 为接 TTL/ CMOS 电平的引脚 引脚 T1OUT、T2OUT、R1IN、R2IN 为接 RS - 232 电平的引脚。此 TTL/ CMOS 电平的 T1IN、T2IN 引脚应接 MCS- 51 的串行发送引脚 TXD ; R1OUT、R2OUT 应接 MCS - 51 的串行接收引脚 RXD。 与之对应的 RS -232电平的 T1OUT、T2OUT 应接TC-35的接收端 RXD ; R1IN、R2IN 应接 TC-35的发送端 TXD。MAX232基本接线图如3-2。

图3-2 串口接口电路

TC35I模块及外围电路部分较为复杂,可用百亿公司的GPRS modem代替,而且单片机串口部分只需电平转换电路即可通讯,设备部分,可用发光二极管取代,显示部分可用7段数码管显示,这样整个系统大大简化。

在单片机实验板中,发光二极管低电平点亮,可模拟设备的开关,数码管为共阳极显示,低电平位选中,显示主叫号码和设备编号。串口采用MAX232通讯。原理图见图3-5。系统控制命令设定如下:

1 发送KXL1357表示在原状态基础上点亮编号为1、3、5、7的发光二极管 2 发送KAL表示点亮所有的发光二极管

3 发送GXL1246表示在原状态基础上熄灭编号为1、2、4、6的发光二极管 4 发送GAL表示熄灭所有的发光二极管

图3-5 51单片机实验板电路

3.2 软件设计

程序流程图见图3-6:控制器上电后要初始化,进入等待短信命令状态,如果收到命令便执行命令,回复命令。然后继续等待下一条命令,程序流程图如下:

图3-6 单片机程序流程图

程序说明:

初始化单片机,采用查询方式通讯,串口设置如下:

MOV MOV MOV MOV MOV SETB

SCON,#50H ;串口 方式 1(串口初始化 ) PCON,#00H

TMOD,#20H ;T1 方式 2 TL1,#0FDH ;波特率 9600 的常数 TH1,#0FDH TR1

GPRS模块上电后,指示灯闪烁,表示正常工作,需要设置以下几条AT指令: 1.发AT,收到OK,表示与网络连接正常

2.设置短消息中心号码,一次即可,发AT+CSCA="+[1**********]00",收到OK,表示设置成功

3.设置短消息格式,发AT+CMGF=0,设置为PDU格式,收到OK,表示设置成功

4.设置AT+CNMI=2,1指令,有新短消息会提示所在的存储区号

为防止存储器已满而没有新短消息提示, 要清空部分存储区,有AT+CMGD=17指令执行,删除第17条短信,收到OK删除成功.

以上设置完成后,程序开始等待接收短信,如果接收到一条新短信,单片机会收到“+CMTI: "MT",13”提示 ,分离存储索引号程序就是从收到的提示串中获取串13,为读指令做准备。单片机发送AT+CMGR=13,可读取此短信,从读得的字符串中分离出主叫号码,和短信内容,再根据它们计算回复短信串格式长度,并重组发送串,发出回复短信。在处理程序中,要将短信内容解码,根据具体内容跳转不同的自定义命令处理程序。解码程序中,将号码串解码复原,与内容串重组,然后调用显示程序,完成后回到等待状态

程序实现如下:

MOV R0,#STR0 MOV DPTR,#SMA LCALL SETSTR MOV R0,#STR0 MOV R1,#TEL LCALL STRCAT MOV R0,#STR1 MOV DPTR,#SMB LCALL SETSTR MOV R0,#STR0 MOV R1,#STR1 LCALL STRCAT

MOV R0,#STR0 MOV R1,#WORD LCALL STRCAT MOV R0,#STR1 MOV @R0,#2 INC R0 MOV @R0,#1AH INC R0 MOV @R0,#1AH MOV R0,#STR0 MOV R1,#STR1 LCALL STRCAT

3.3 超级终端中与GPRS模块的通讯

将GPRS模块连接到PC机COM1,上电后指示灯闪烁,表示工作正常

新建超级终端

点击开始-所有程序-附件-通讯-超级终端

弹出连接描述对话框 输入名称(例sh)选择图标点击确定

弹出连接到对话框 输入区号选择地区和串口(例COM1)点击确定 弹出COM1属性对话框 可设定通信协议(这里波特率设置9600,8位数据通信,无奇偶校验) 确定后

弹出 sh - 超级终端 界面

依次运行各AT指令如图3-7:(各串以回车,换行字符结束)

图3-6 超级终端中AT命令的实现

3.4 TC与GPRS模块的通讯

将GPRS模块连接到PC机COM1,上电后指示灯闪烁,表示工作正常,在TC中运行TC发送函数,依次输入AT 、AT+CMGF=0、AT+CNMI=2,1等AT命令,测试结果如图3-8至图3-10:

从测试结果可以看出,在回复命令过程中,首先把命令串回送过来以回车键结束,然后才是执行结果串,以回车,换行字符开始,并以其结束。

图3-7AT+CNMI指令在TC中的实现

图3-8 AT命令的字符格式输出

图3-9 AT命令的十进制格式输出

TC发送函数:

在子函数void send(char str[],int tx)中,str是待发串,tx参数是为模拟短消息发送而设置的,tx=1时,将在发送串结尾自动加回车键;tx=2时将在发送串结尾自动加ctrl+z键。在接收串的过程中,void receive(char str[],int x)中x的大小决定串口查询最大次数的多少,此函数可把收的字符以十进制格式打印出来,接收到的串存在str中。程序如下:

#include

#include #include #include

void send(char str[],int tx);

void initcom1();

void receive(char str[],int x);

main() {

char str0[200];

initcom1(); while(1) {

scanf("%s",str0); send(str0,1); receive(str0,15); } }

void initcom1() {

/*8位数据位,无奇偶校验,波特率9600b/s */

outportb(0x3fb,0x80); delay(100);

outportb(0x3f8,0x0c); delay(100);

outportb(0x3f9,0x00); delay(100);

outportb(0x3fb,0x03); delay(100);

outportb(0x3fc,0x03); delay(100);

outportb(0x3f9,0x00); delay(100); }

/* 发送串子函数:*/ void send(char str[],int tx) {

int i=0,k,tend=3; char ch;

unsigned char data;

k=strlen(str); while(tend!=1) {

do{

data = inportb(0x3fd); data &= 0x20; }while(data==0);

if(i

{ ch = str[i];

outportb(0x3f8,ch); i++;}

else if(tx==1) {outportb(0x3f8,0x0d);tend=1;} /*tx=1 end of 'r'*/

else if(tx==2) { outportb(0x3f8,0x1a);tend--;} /*tx=2 end of'ctrl+z'*/

} }

/* 接收串子函数:*/

void receive(char str[],int x) {

int i=0,t=0,j=0,rend=0; char ch;

unsigned char data;

for(i=0;i

data=inportb(0x3fd); data&=0x01; t++;

}while(data==0&&t!=5);

if(t!=5)

{ch=inportb(0x3f8); putchar(ch);

printf(" %d\n",ch); str[j++]=ch; t=0;} else {

rend++; if(rend==x) break; }

str[j]='\0'; } } 3.5 单片机与GPRS模块的通讯

将GPRS模块连接到单片机串口上,上电后指示灯闪烁表示正常工作。将DPTR依次设为各数据表初始地址,在WAVE6000中硬件仿真,运行此程序,观察DATA数据窗口如图:

STR0 EQU 30H STR1 EQU 40H ORG 0000H AJMP MAIN ORG 0100H MAIN:

MOV SCON,#50H ;串口 方式 1(串口初始化 ) MOV PCON,#00H MOV TMOD,#20H ;T1 方式 2 MOV TL1,#0FDH ;波特率 9600 的常数 MOV TH1,#0FDH SETB TR1 MOV R0,#STR0 MOV DPTR,#ATT LCALL SETSTR MOV R0,#STR0 LCALL TXSTR MOV R0,#STR1 MOV R6,#2 LCALL RXSTR GLOOP:AJMP GLOOP

ATT:DB 03H 41H 54H 0DH ;AT

ATF:DB 0AH 41H 54H 2BH 43H 4DH 47H 46H 3DH 30H 0DH ;AT+CMGF=0 NMI:DB 0CH 41H 54H 2BH 43H 4EH 4DH 49H 3DH 32H 2CH 31H 0DH ;AT+CNMI=2,1

SETSTR:CLR A RET MOVC A,@A+DPTR TXSTR:MOV A,@R0 MOV R3,A MOV R3,A MOV @R0,A LOOPT:INC R0 MOV R2 ,#0 MOV A,@R0 LOOP:INC R2 MOV SBUF,A INC R0 WAITT:JNB TI,WAITT MOV A,R2 CLR TI MOVC A,@A+DPTR DJNZ R3,LOOPT MOV @R0,A RET DJNZ R3,LOOP RXSTR:MOV A,R0

PUSH A

MOV R3,#00H HERE :JNB RI,HERE RXR: CLR A MOV R4,A

MOV R5,A WAITR:JB RI,RI1 DJNZ R5,WAITR DJNZ R4,WAITR DJNZ AJMP RI1: CLR MOV INC MOV INC AJMP RXEND:POP MOV MOV MOV RET

END R6,WAITR RXEND RI

A,SBUF R0 @R0,A R3 RXR A R0,A A,R3 @R0,A

运行结果如下:

图3-10 AT+CNMI指令实现新短消息提示

图3-11 AT+CMGR 实现短消息的读取

从图3-11中可以看出,从30H 开始的串 AT+CNMI=2,1命令从串口发出后。从40H开始,系统不但收到了命令串AT+CNMI=2,1,而切收到了设置成功的标志OK,见图中红体部分后的注释。当有新短消息时,从60H开始,系统收到了提示+CMTI: “MT”,15,表示存储在MT卡第15存储区,在图3-12中,从30H开始,发出命令串AT+CMGR=15,从40H开始,收到了整条短信的格式回复。包含电话号码串(70H开始)和用户信息串(94H开始)。0DH、0AH 常成对出现,用于区分各信息串。

以上是进行该项目的基本流程,先是进行项目分析,然后收集技术资料并对此进行分析,接着硬件和软件的设计。同样在新产品的开发中我们也是基于这样一个流程来进行的。

三、实习收获与体会

人们常说大学是个象牙塔,确实,学校与职场、学习与工作、学生与员工之间存在着巨大的差异,在角色转化的过程中,个人的观点、行为方式、心理等方面都要做适当的调整。然而对于即将走出象牙塔的我们来说,无疑这是困难的,但是实习给我提供了一个机会,让我接触到真实的职场,提前感受和适应由学生到职员的角色转换。

对于远程控制器的软件设计与实现这个项目,我觉得关键是单片机串口通讯和AT指令在短消息中的应用,然后是对AT指令的详细了解以及程序的实现,我先在TC中完成AT 指令的使用,总结各指令的特点,然后完成各指令的综合使用,完成PC机与GPRS模块的短信收发控制,最后在单片机中完成整个系统的测试。通过这个项目的实习让我认识到深居象牙塔的我还欠缺很多的东西:1 专业知识的欠缺。 社会是在往前进步的,科技也是向前发展的,特别是我们这个行业知识更新很快,但是相对于用人单位来说,我们所学的知识却是落后的,过时的,而且是单一的,这样就造成了所学的与他们所需的严重脱节,这是我在实习的过程中感受最深的。2 动手能力不强。我觉得校园与单位最大的区别是在学校我们大部分时间用来学习理论知识,但是在工作中我们大部分时间却是在使用我们的理论知识,而使理论和实际融合起来的就是我们的动手能力,然而在这个方向上我们是欠缺的。正是由于上述的种种缺失造成了我在实习的过程中遇到了不少的困难,但是也正是这样让我学会了耐心冷静的去分析问题,主动的去查阅资料,学习新的知识;学会了寻找机会与别人交流,学习他们的经验、方法。 总的来说,通过实践学习,不论是知识层面还是动手能力方面抑或是与人交流探讨问题等诸多方面,都得到了锻炼,在锻炼中使我得到了提高。

四、致谢

首先,感谢电子科技大学成都学院各位老师对我的培养。

感谢郑州天道科技发展有限公司给我这次实习机会,让我提前感受工作的乐趣,让我在实践中得到锻炼,让我在学校中学到的理论知识在实践中升华成自己的能力,为我以后的工作打下了良好的基础。

感谢我的指导老师周庆民,在百忙中抽出时间指导我,让我能顺利完成公司分配的各项任务,同时也感谢天道公司的每一位员工,感谢他们对我的支持和帮助。

最后,感谢在百忙之中抽出时间参加评阅和评议的各位专家学者,感谢他们为审阅本文所付出的辛勤劳动。

五、指导教师评语

刘建敏同学在实习期间勤奋好学,工作勤奋,态度诚恳,能够认真完成公司分配的任务,虽然是一个实习生,却能以公司正式员工的要求来约束自己,为公司的发展尽着自己的努力。

六、评阅人意见


相关文章

  • 2012企业网申截止日期
  • 企业网申截止时间 公司名称 地点 招聘职位 截止日期 联想人力资源部招聘助理实习生(深圳) 广东 深圳 联想人力资源部|.. 2011-9-16(星期五) 浦发银行轻纺城支行(中大南校区对面) 广东 广州 实习生|.. 2011-9-16( ...查看


  • 电子商务岗位
  • 我国主要地区电子商务:类就业岗位分布情况调查 调查时间: 2013.11.1 调查范围 广州 电子商务累岗位 数据分析员.淘宝 网店设计助理网点 服装模特.淘宝店 运营经理或店长. 淘客网络团购.QQ 商城运营专员.淘 宝客服主管 调查人: ...查看


  • 助理职称评定条件
  • 助理职称评定条件(1)大学本科毕业,从事专业技术工作一年以上. (2)大学专科毕业,从事专业技术工作二年以上. (3)中专毕业,从事专业技术工作三年以上. (4)高中毕业,从事专业技术工作七年以上. (5)初中以下学历人员,从事专业技术工作 ...查看


  • 河北人事部职称评审
  • 河北省职称评定条件 人事部职称评审种类 一:经济 统计 工程四个系列 1.经济类:经济师(助理经济师:中级经济师:高级经济师) 分类:经济管理.工商企业管理.市场营销.劳动工资.农业经济.运输经济.财税金融. 2.工程类:工程师(助理工程师 ...查看


  • 员工招聘录用程序-G
  • 题目: 员工招聘录用管理程序 编号:HR 03 版本号: G 发布日期: 2008/04/28 生效日期: 2008/04/30 认 可 签 署 制订人: 部门经理审核: 边则一 吴锐(代) 赞 同 签 署 维修部经理: 钟冠祺 物料部经理 ...查看


  • 初级职称报名表
  • 初聘专业技术职务呈报表 单位(全称) : 姓名: 现从事专业: 教师类(划勾) 高校.中专.职中.高中.初中.小学.幼儿园 : 工程类或其它(按填表说明填写) : 市 区(旗县) 申请专业技术资格级别(划勾) 中级.助理级.员级 : 申请专 ...查看


  • 成都市代评助理(中级)高级工程师职称评定评审及申报方法
  • 成都市代评助理(中级)高级工程师职称评定评审及申报方法 1.成都市代评助理建筑工程师职称评定条件2.成都市代评中级电气工程师职称申报评审3.成都市代评高级机械工程师职称评审定评4.成都市代评暖通工程师职称申报评审资料1助理工程师职称评定条件 ...查看


  • 高级工程师报考条件
  • 高级工程师报考条件 正常申报条件 1.助理职称: (1)大学本科毕业,从事专业技术工作一年以上. (2)大学专科毕业,从事专业技术工作二年以上. (3)中专毕业,从事专业技术工作三年以上. (4)高中毕业,从事专业技术工作七年以上. (5) ...查看


  • 财务助理简历模板(模板可编辑)203
  • 求职意向:财务助 小陈1990.06 北京市海淀区 493909890专业技能  职业技能:初级财务助理证 会计从业资格证  计算机技能:全国计算机等级二级,熟练使用SPSS.用友 及 MS Office软件会计  语言水平:英语(C ...查看


  • 幼儿园园长助理述职报告
  • 幼儿园园长助理述职报告为大家整理个人在幼儿园园长助理岗位上的履职报告,总结个人在任职期间具体的工作任务和工作内容,以及对园长助理的工作体会,下面是这篇幼儿园园长助理述职报告 幼儿园园长助理述职报告 时间如同一条涓涓的细流,无声无息地淌过我的 ...查看


热门内容