《基于单片机的GPRS无线通信系统设计(共24页).doc》由会员分享,可在线阅读,更多相关《基于单片机的GPRS无线通信系统设计(共24页).doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 四川师范大学本科毕业设计基于单片机的GPRS无线通信系统设计学生姓名 蒋涛院系名称物理与电子工程学院专业名称电子信息工程班 级2007 级 4 班学 号指导教师何巍完成时间2011年 5月 11 日基于单片机的GPRS无线通信系统设计学生姓名:蒋涛 指导老师:何巍内容摘要: GPRS(通用分组无线电业务)是利用包交换的概念发展的一套无线传输方法GPRS网络是基于现有的GSM(全球移动通信系统)网络实现的。在现有的GSM网络中需要增加一些节点,如GGSN(GPRS网关支持节点)和SGSN(GPRS服务支持节点)。SGSN的主要作用是记录移动终端的当前位置信息,并且在移
2、动终端与GGSN之间完成移动分组数据的发送和接收。GGSN主要起网关作用,可以与多种不同的数据网络连接,如ISDN(综合业务数字网)、PSPDN(包交换公用数据网)和LAN(局域网)等。GGSN可以把GSM网中的GPRS分组数据包进行协议转换,从而把这些分组数据包传送到远端的TCP/IP或X.25网络。嵌入式GPRS无线通信模块主要由嵌入TCP/IP的单片机(MSC1210Y5)、GPRS模块、SIM卡座、外部接口和扩展数据存储器等部分组成。 本文设计的GPRS无线通信模块,内嵌了TCP/IP协议,采用工业级的GPRS模块, 适用于单片机数据采集传输系统没有TCP/IP协议栈,但使用串口通信的
3、情况。关键词:GSM GPRS TCP/IP协议 单片机Microcontroller-basedwirelesscommunication system design for GPRSAbstract: GPRS (General Packet Radio Service) is to use the concept of the development of packet-switched wireless transmission method of a GPRS network is based on the existing GSM (Global System for Mobile
4、 Communications) network implementation. In the existing GSM networks need to increase the number of nodes, such as the GGSN (GPRS Gateway Support Node) and SGSN (GPRS Support Node).SGSNs main role is to record the current location information of mobile terminals and mobile terminals and the GGSN in
5、 the mobile packet data between the completion of the sending and receiving. The role of the main gateway from the GGSN, the data with a variety of different network connections such as ISDN (Integrated Services Digital Network), PSPDN (packet switched public data network) and LAN (local area networ
6、k) and so on. GGSN to the GSM network in GPRS packet data packet protocol conversion, data packets to transmit these packets to the remote TCP / IP or X.25 network. Embedded GPRS wireless communication module of the embedded TCP / IP for microcontrollers (MSC1210Y5), GPRS module, SIM card connector,
7、 external expansion data memory interface and other components. This design of GPRS wireless communication module, embedded TCP / IP protocol, using industrial-grade GPRS module, suitable for single chip data acquisition and transmission system does not have TCP / IP protocol stack, but use the seri
8、al communication situation. This design of GPRS wireless communication module, embedded TCP / IP protocol, using industrial-grade GPRS module, suitable for single chip data acquisition and transmission system does not have TCP / IP protocol stack, but use the serial communication situation.Key words
9、 : GSM GPRS TCP / IP protocol SCM 目 录专心-专注-专业基于单片机的GPRS无线通信系统设计1 概述1.1 课题背景及意义 近年来,通信技术和网络技术的迅速发展,特别是无线通信技术的发展,使得电力系统的自动化程度进一步提高。GSM网络出现后,技术人员很快把GSM模块嵌入到各种仪表仪器中,如多功能电能表、故障测录仪、抄表系统和用电负荷监控等,从而使这些仪表仪器具有远程通信功能。 GPRS网不但具有覆盖范围广、数据传输速度快、通信质量高、永远在线和按流量计费等优点,而且其本身就是一个分组型数据网,支持TCP/IP协议,可以直接与Internet互通。因此,CPRS
10、在无线上网、环境监测便携型、交通监控、移动办公等行业中具有无可比拟的性价比优势。1.2 课题研究的国内外发展及现状 GPRS是通用无线分组业务(General Packet Radio System)的缩写,是介于第二代和第三代之间的一种技术,通常称为2.5G。GPRS采用与GSM相同的频段、频带宽度、突发结构、无线调制标准、跳频规则以及相同的TDMA帧结构。因此,在GSM系统的基础上构建GPRS系统时,GSM系统中的绝大部分部件都不需要作硬件改动,只需作软件升级。有了GPRS,用户的呼叫建立时间大大缩短,几乎可以做到“永远在线”。此外, GPRS是以营运商传输的数据量而不是连接时间为基准来计
11、费,从而令每个用户的服务成本更低。 1.3 课题研究的主要内容 GPRS是在原有的基于电路交换(CSD)方式的GSM网络上引入两个新的网络节点: GPRS服务支持节点(SGSN)和网关支持节点(GGSN)。SGSN和MSC在同一等级水平,并跟踪单个MS的存储单元实现安全功能和接入控制,并通过帧中继连接到基站系统。GGSN支持与外部分组交换网的互通,并经由基于IP的GPRS骨干网和SGSN连通。图1给出了GPRS与Internet连接原理框图。 SGSNGPRS骨干网Internet数据中心GPRS模块图1GPRS与Internet链接原理图 GPRS终端通过接口从客户系统取得数据,处理后的GP
12、RS分组数据发送到GSM基站。分组数据经SGSN封装后,SGSN通过GPRS骨干网与网关支持接点GGSN进行通信。GGSN对分组数据进行相应的处理,再发送到目的网络,如Internet或X.25网络。 若分组数据是发送到另一个GPRS终端,则数据由GPRS骨干网发送到SGSN,再经BSS发送到GPRS终端。 2 课程理论基础2.1 单片机的定义单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一
13、块硅片上构成的一个小而完善的计算机系统。2.2 单片机的相关介绍 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好
14、评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端1的型号也只有10美元。
15、当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不
16、仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足
17、矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!.它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列
18、单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如
19、果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备
20、、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。2.3 单片机的基本结构单片机由运算器、控制器、存储器、输入输出设备构成 2.3.1起初模型 1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创
21、嵌入式系统独立发展道路上,Intel公司功不可没。 2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel
22、和Philips的历史功绩。 2.3.2嵌入式系统单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 2.4 单片机的应用目前,单片机的应用领域 主要包括:办公自动化设备;单片机在机电一体化中的应用;在实时过程控制中的应用;单片机在日常生活及家用电器领域的应用;在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化
23、仪器仪表的硬件结构,提高其性能价格比;在计算机网络和通信领域中的应用;商业营销设备;单片机在医用设备领域中的应用;汽车电子产品;航空航天系统和国防军事、尖端武器等领域.2.5 GPRS简介 通用分组无线服务技术(General Packet Radio Service)的简称,它是GSM移动电话用户可用的一种移动数据业务。GPRS可说是GSM的延续。GPRS和以往连续在频道传输的方式不同,是以封包(Packet)式来传输,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。GPRS经常被描述成“2.5G”,也就是说这项技术位于第二代(2G)和第三代(3G)移动通讯
24、技术之间。2.5.1 GPRS的应用特点目前,用手机上网还显得有些不尽人意。因此,全面的解决方法GPRS也就这样应运而生了,这项全新技术可以令您在任何时间、任何地点都能快速方便地实现连接,同时费用又很合理。简单地说:速度上去了,内容丰富了,应用增加了,而费用却更加合理。 (1)高速数据传输 速度10倍于GSM,更可满足您的理想需求,还可以稳定地传送大容量的高质量音频与视频文件,可谓不一般的巨大进步。 (2)永远在线 由于建立新的连接几乎无需任何时间(即无需为每次数据的访问建立呼叫连接),因而您随时都可与网络保持联系,举个例子,若无GPRS的支持,当您正在网上漫游,而此时恰有电话接入,大部分情况
25、下您不得不断线后接通来电,通话完毕后重新拨号上网。这对大多数人来说,的确是件非常令人恼火的事。而有了GPRS,您就能轻而易举地解决这个冲突。 (3)仅按数据流量计费 即根据您传输的数据量(如:网上下载信息时)来计费,而不是按上网时间计费也就是说,只要不进行数据传输,哪怕您一直“在线”,也无需付费。做个“打电话”的比方,在使用GSM+WAP手机上网时,就好比电话接通便开始计费;而使用GPRS+WAP上网则要合理得多,就像电话接通并不收费,只有对话时才计算费用。总之,它真正体现了少用少付费的原则。3 嵌入式单片机MSC1210通信系统实现 3.1 单片机模块 单片机采用美国德州仪器公司最新推出的基
26、于8051内核的MSC1210Y5。该芯片具有很强的数据处理能力,时钟频率为33 MHz,指令运行速度实际上与运行在99 MHz时钟频率下的标准8051内核相当。32 KB Flash程序存储器,256 B内部RAM和1024 B片上SRAM,2 KB启动ROM,支持串行和并行的在系统编程。双数据指针DPTR0和DPTR1可加快数据块的移动速度。 3.1.1单片机的特性1. 3个16位的定时器,16位PWM波输出;2. 多达21个中断源; 3. 32个数字输入/输出端口,带有看门狗;4 8路ADC提供24位分辨率可编程的无丢失码解决方案;5. 可编程增益放大(PGA)在1128之间可调,极大提
27、高了ADC精度;6. 供电电源2.75.25 V,在3 V时功耗低于4 mW,停止方式电流小于1A;7. 内核兼容8051,指令与8051完全兼容,可以使用原有8051开发系统;8. 时钟频率可达33 MHz,单周期指令执行速度达8 MIPS,执行速度比标准8051快3倍;9. 高达32 KB的Flash存储器,SRAM达1.2 KB,外部可扩展至64 KB存储器;10. Flash在电压低达2.7 V时仍可串行或并行编程,可10万次擦除/写操作;11. 具有32位累加器; 12. 有电源管理功能,能够进行低电压检测,在片上电复位;13. 带FIFO的SPI端口,双UART;14 64TQFP
28、封装,MSC1210系列的硬件和引脚完全兼容,必要时可以互换。3.1.2内核兼容8051但速度更快功能更强MSC1210系列的所有指令功能与标准8051相同,对位、标志和寄存器的影响相同,但时序不同。MSC120单片机使用精简的8051内核,在同样的外部时钟作用下,其执行速度比标准8051快1.53倍(每条指令有4个时钟周期与12个时钟周期的区别)。在同样的指令和时钟下,速度提高到2.5倍以上。因此,一个时钟为33 MHz的MSC1210执行速度与一个时钟为82.5 MHz的标准8051相同,其区别可以从图2看出;而且MSC1210的定时器和计数器可以选择每12个或4个时钟周期计数一次。 MS
29、C1210提供了双数据指针(DPTR)加速数据块的移动速度,它能根据外部存储器的速度调节读写速度,在29个指令周期之间变化;它还提供给外部存储器16位地址总线(P0和P2)。低位地址通过P0口复用得到,硬件可以控制P0和P2口是作为地址线还是作为通用的I/O。为了更好地提高效率,外围设备也在8051基础上作了改进。如SPI端口就增加了FIFO,使得传输数据有了缓冲区间。32位累加器的使用在处理ADC采样或其它数据源来的多字节数据时将大大减轻CPU的负担,使得24位加法和移位可以在几个指令周期内完成,而无需通过软件用数百个指令周期来完成。 MSC1210系列的硬件和引脚完全兼容,对用户而言,唯一
30、的区别在于内存配置不同。MSC1210Y2上编写的程序代码可以直接在MSC1210Y3、MSC1210Y4、MSC1210Y5上执行。用户可以在软件功能上增减并配以不同的CPU型号,MSC1210已成为一个拥有几个不同应用平台的标准设备。 MSC1210的开发工具与8051的开发系统完全兼容,用户可以使用原有的8051开发系统,也可以使用DEMO板带的开发系统或者第三方支持者提供的开发工具。3.1.3 ADC的输入多路复用器及输入缓冲输入多路复用器允许不同输入信号通过选择输入通道进行组合,如AIN0被选为ADC输入正端,其它任何通道可以选为ADC输入负端。用这种方式可以组成8个完整的ADC输入
31、通道,也可以在差分输入通道间切换极性。片上的二极管可以提供温度测量,当输入多路复用器的寄存器置为全“1”时,二极管被接入ADC通道的输入端开始测量温度。 MSC1210在没有缓冲区时输入电阻为5M/PGA,缓冲区由ADC控制寄存器中的BUF位控制。当没有选择输入缓冲区时,模拟输入阻抗与时钟频率(ACLK)和增益(PGA)有关,其关系式为3.1.4可编程增益放大器PGA PGA:可编程增益放大PGA可以设为1、2、4、8、16、32、64、128,使用PGA确实能提高ADC的分辨率。当PGA=1,量程范围为5 V时,ADC能分辨到1V;当PGA=128,量程范围为40 mV时,ADC能分辨到75
32、 nV;而在PGA=1时,在5 V量程范围内需要一个26位的ADC才能分辨到76 nV。 PGA偏移DAC:ODAC寄存器是8位,它能将输入到PGA的模拟信号偏移PGA满量程的一半,其最高位为符号位,低7位提供偏移量。由于ODAC给PGA引入的是模拟量而不是数字量偏移,所以并不影响测量结果的精度。3.1.5电压参考基准 MSC1210的电压参考可以是内部的也可是外部的,上电复位以后的电压参考是内部的2.5 V,参考电压的选择通过ADCON0控制。片上内部参考电压有1.25 V和2.5 V两种可选,其精度可达0.2 %,温漂仅为510-6/,可大大提高测量精度。如果没有用到内部参考电压,就应该将
33、其关掉以减少噪声和功耗。VREFOUT引脚处应该放一个0.1F去耦电容。外部参考电压为REF IN+与REF IN-之间的差值,引脚上的绝对电压在AGND与AVDD之间,但其差分电平不能超过2.6 V。3.2单片机的机构3.2.1片内存储器 MSC1210包括片上1.2 KB SRAM ,256字节DARAM,2KB启动ROM,32 KB Flash存储器。MSC1210用内存寻址表来区分程序存储空间和数据存储空间。程序空间由单片机自动读取,通过指令MOVC来读程序空间;数据空间通过指令MOVX来读写。当片上存储使能时,在片内范围内的读写将在片内存储器上进行,片外存储器通过P0和P2寻址来实现
34、。HCR1寄存器的第0位和第1位设为0就可以访问外部存储器,此时可以通过P0和P2口访问所有片内和片外存储空间。为了安全起见,在访问片内存储器期间,P0口全部置位为0。MSC1210包含1.2 KB片上SRAM。SRAM起始地址位“0”,通过MOVX指令读写。SRAM也可以从8400H开始,既可作程序空间又可作数据空间。3.2.2扩展数据存储器部分 MSC1210的Flash存储器可全部作为Flash程序存储器,也可以全部作为数据Flash程序。因为要嵌入实时操作系统和网络协议,需要一定的空间,因此将其全部用作程序存储器,而通过74HC573作为地址锁存器,扩展6264作为外部数据存储器,8
35、KB的数据存储空间足够程序正常运行。 图3给出了MSC1210与数据存储器之间的硬件连接图。 图3MSC1210与数据存储器的连接3.2.3输出输入接口的扩展 单片机串口实现并行通信,其原理就是将PC机传过来的并行数据转换成串行数据,送入单片机的串口再由其进行相应处理。实质上就是一个数据串-并、并-串转换的过程。PC的并口为一个标准的25针插座,包含一个八位二进制数据端口(地址为378H),即第2脚到第9脚;一个输入控制端口(地址为379H),即第15脚、13脚、12脚、10脚、11脚,其另外低三位无定义;一个输出控制口(地址为37AH),即第1脚、14脚、16脚、17脚,其另外高四位无定义。
36、由此可见后面两个端口都不是完全的8位。 3.2.4输出接口电路扩展 这里使用常用的移位寄存器74LS164与单片机的RXD口构成输出接口电路。其中:QAQH为并行输出的数据,送入PC机并口378H端口(接收数据的8个数据位);单片机串口输出的数据从AB输入;CLR信号用于清除输出数据(通常用在移位完成时);内部数据移位依靠时钟CLK信号上升沿(由单片机TX提供)控制。使用常用的移位寄存器74LS165与单片机的RXD口构成输入接口电路。其中:AH为并行输入的数据,接PC机并口378H端口(接收数据的8个数据位);单片机串口接收的数据(RXD端口)从QH输入;SH/LD信号用于重新装载数据(通常
37、用在数据完全移出后);SER是用于填充数据移出后的空位的逻辑电平信号(逻辑1或0);而数据是否移动由CLK INH和CLK联合控制;内部数据移位依靠时钟CLK信号(仍由单片机的TXD提供)上升沿控制。3.2.5其他软硬件准备工作 输入输出控制端口的连接。将单片机的P3.4、P3.5口分别与PC并口的第15脚、第16脚相连。这样在进行数据通信时,两者的握手信号传输就解决了:当并口的第16脚置高电平时,用来通知单片机接收PC机已准备就绪的数据,单片机收到以后就可以进行相应控制,接收数据;当单片机接收完数据时,会置P3.4为高电平并被379H的第15脚接收,于是PC机准备发送下一个数据单片机向PC机
38、发送数据时,情况与此类似,由P3.4发送信号给PC机,而由P3.5接收PC机发送过来的信号。软件方面,由于是用串口进行并行通信,因此就不能将串口的工作方式设置为方式0(移位寄存器输入/输出方式)以外的其他方式。还要注意此时串口的波特率固定为单片机外接晶振频率的1/12。串行数据通过RXD输入/输出,TXD用于发送控制输入输出数据移位的时钟脉冲。收发的数据为8位,低位在前。 3.3 单片机通信程序设计 软件中的所有代码都用C语言编写,在Keil环境中编译。Keil是Keil Software公司为8051及其兼容产品提供的专门开发工具,它支持在系统调试。Keil中C51编译器很好地集成了RTX多
39、任务实时操作系统,编写程序时,需在源代码头加入“incluede rtx51.h”。所有代码调试通过后经由TI Downloader下载到存储器中。 这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的。 测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。#include #include #define INBUF_LEN 4 /数据长度 unsigned char inbuf1IN
40、BUF_LEN; unsigned char checksum,count3; bit read_flag= 0 ; void init_serialcomm( void ) SCON = 0x50 ; /SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20 ; /TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80 ; /SMOD=1; TH1 = 0xF4 ; /Baud:4800 fosc=11.0592MHz IE |= 0x90 ; /Enable Serial Interrup
41、t TR1 = 1 ; / timer 1 run / TI=1; /向串口发送一个字符 void send_char_com( unsigned char ch) SBUF=ch; while (TI= 0 ); TI= 0 ; /向串口发送一个字符串,strlen为该字符串长度 void send_string_com( unsigned char *str, unsigned int strlen) unsigned int k= 0 ; do send_char_com(*(str + k); k+; while (k 127 ) count3= 0 ; inbuf1count3=ch
42、; checksum= ch- 128 ; else count3+; inbuf1count3=ch; checksum = ch; if ( (count3=(INBUF_LEN- 1 ) & (!checksum) ) read_flag= 1 ; /如果串口接收的数据达到INBUF_LEN个,且校验没错, /就置位取数标志 main() init_serialcomm(); /初始化串口 while ( 1 ) if (read_flag) /如果取数标志已置位,就将读到的数从串口发出 read_flag= 0 ; /取数标志清0 send_string_com(inbuf1,INBU
43、F_LEN); 串行通信虽然有其自身优点:如适合长距离通信,有一定的纠错能力等,但并行通信在短距离(数米范围内)传输过程中的优点是显而易见的。首先串行通信时要设置串口数据,如:串口号(Com1、Com2或者其他串口)、波特率、数据位数、停止位、校验位等等。而且单片机与PC机的串口数据必须一一对等,否则不能传输。而并行传输时,无需上述过程。其次,PC机的串口电平值为+12V-12V,单片机是TTL电平(0+5V),两者必须要经过电平转换芯片进行电平间的转换。而进行并行传输时,由于双方都是TTL电平,所以PC的并口可以与单片机或其他芯片直接相连;另外,串行传输速度慢,每次只能传送一位,而并行每次可
44、以传送8位,速度上的差异显而易见。而对于单片机,串口(UART)是最常用的端口,尤其对于存在两个或多个串口的单片机来说,充分利用串口进行通信是非常重要的。其主要实现过程如下: 1通过AT指令初始化GPRS无线模块,使之附着在GPSR网络上,获得网络运营商动态分配的GPRS终端IP地址,并与目的终端建立连接。 2 通过串口0扩展MAX232标准串口和外部控制器(例如数据采集端)连接,外部控制器端接出标准串口,按照约好的协议可很容易利用本设计的控制器进行通信。 3 复用P1.2和P1.3,也就是串口1分别和GPRS模块的TXD0和RXD0连接,P1口的其他6个端口分别接到GPRS模块对应的剩余RS
45、232通信口,通过软件置位完成对MC35的初始化和控制GPRS模块的收发数据。 实际应用系统往往需要进行高精度的测量,同时还必须进行实时快速控制,提高其开发效率。为此人们常采用高精度A/D芯片加带ISP开发功能的单片机系统来实现。德州仪器(TI)的MSC1210单片机解决了上述问题。它集成了一个增强型8051内核、高达33 MHz的时钟周期、8路24位高精度-A/D转换器、Flash存储器等。3.4 GPRS无线数传模块 3.4.1 GPRS模块的硬件设计 嵌入式GPRS无线通信模块主要由嵌入TCP/IP的单片机(MSC1210Y5)、GPRS模块、SIM卡座、外部接口和扩展数据存储器等部分组
46、成。图2是系统的硬件框图。 GPRS模块SIM卡座MSC1210扩展数据存储器RS232接口电路外部控制器图2GPRS通信系统原理图 MSC1210控制GPRS模块接收和发送信息,通过标准RS232串口和外部控制器(比如数据采集端)进行数据通信。用软件实现中断,完成数据的转发。 GPRS无线模块作为终端的无线收发模块,把从单片机发送过来的IP包或基站传来的分组数据进行相应的处理后再转发。 GPRS模块采用德国Simens公司生产的MC35模块。MC35模块主要由射频天线、内部Flash、SRAM、GSM基带处理器、匹配电源和一个40脚的ZIF插座组成。GSM基带处理器是核心部件,其作用相当于一个协议处理器,用来处理外部系统通过串口发送AT指令。射频天线部分主要实现信号的调制和解调,以及外部射频信号与内部基带处理器之间的信号转换。匹配电源为处理器基射频部分提供所需的电源。MC35外围电路如图4所示。 图4GPRS通信模块电路原理 AS2815将外部电压转换成3.3 V工作电压。