基于GSM技术的多点温度巡回检测系统毕业论文.doc_第1页
基于GSM技术的多点温度巡回检测系统毕业论文.doc_第2页
基于GSM技术的多点温度巡回检测系统毕业论文.doc_第3页
基于GSM技术的多点温度巡回检测系统毕业论文.doc_第4页
基于GSM技术的多点温度巡回检测系统毕业论文.doc_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于gsm技术的多点温度巡回检测系统基于gsm技术的多点温度巡回检测系统摘 要在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。多点温度巡回检测系统在很多方面发挥着重要作用。本课题所设计的基于gsm技术的多点温度巡回检测系统对于多点温度检测具有很强的实用价值。它可以实时监测各点温度,并判断温度是否超过报警温度值,若温度过高则可以通过gsm模块向控制中心(如连接有gsm模块的pc机或移动终端手机)发出温度报警短信。该系统还可以自动检测传感器故障并通过短信通知控制中心及时更新传感器。该报警系统由单片机控制器、键盘输入、液晶显示、温度传感器、串口通信、短信猫(gsm)模块、被叫号码存储器及电源等部分组成。单片机控制器采用stc12c5410ad单片机,是整个系统的核心,负责温度数据读入处理、键盘值输入、输出显示、通过串口与短信猫通信等一系列的程序动作。单片机中工作参数及功能设定由键盘输入电路完成。液晶显示屏用来显示参数设定时的数据和功能的提示等。被叫号码存储由stc12c54ad单片机的自带eeprom完成,掉电后设定号码不丢失。温度检测电路采用ds18b20。ds18b20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点巡回温度测量电路变得简单、可靠。关键词:多点温度巡回检测 单片机 温度传感器 串口通信 短信猫 单总线abstractin the industrial and agricultural production and daily life, the temperature measurement and control occupy a vital position. multi-point temperature tour detection system in all aspects of the application areas: electrical fire temperature of the non-destructive testing, electricity, telecommunications equipment overheating fault predict detection, air-conditioning systems, temperature test, different modes of transport of components overheating detection, protection application and surveillance systems, medical consultation with the temperature-testing, chemicals, machinery and other equipment overheated temperature detection. temperature detection system applications are very broad.i design based on gsm technology tour of the multi-point temperature detection system for multi-point temperature detected a strong practical value. it can monitor real-time temperature, and determine whether the temperature alarm over temperature, if the temperature is too high you can gsm module to the control centre (such as gsm modules are connected pc or mobile phone terminals) a temperature alarm message. the system also can automatically detect sensor fault and informed the control centre via sms to update the sensor. the alarm system from scm controller, keyboard input, liquid crystal display, temperature sensor, serial communications, gsm module, the destination number, such as memory and power components. scm controller used stc12c5410ad scm is the core of the whole system, responsible for the temperature reading of the data processing, value keyboard input and output, through the serial port and the gsm communications and a series of procedures for action. scm in the working parameters and functions set by the keyboard input circuit completed. lcd screen to display the parameters set at the data and tips, and other features. called party numbers stored by the stc12c54ad mcu to complete its own eeprom, brown-out after the set number is not lost.temperature detection circuit used ds18b20. ds18b20 was a network of high-precision digital temperature sensor, a single bus because of its unique advantages, so that users can easily set up from the sensor network, and will tour more temperature measurement circuit simple and reliable.key words:multi-point temperature detection tour single bus serial communication gsm scm第一章 系统框架设计与方案论证1.1 系统框架通过仔细阅读分析设计任务书及阅读相关资料1-4,结合所学专业知识设计出系统框架:键盘输入温度传感器ds18b20存储器lcd液晶屏gsm模块 单片机服务中心图 1-1 系统框架图1.2 各模块方案论证根据系统框架图,具体到各个模块,对各个模块进行仔细分析和论证,结合学过知识和对相关资料的查阅,对模块的实施做出方案论证。1.2.1 单片机的概述及选择单片机是本系统的主控制器件,担任着键盘扫描和键值处理、eeprom的读写、液晶显示控制、温度数据接收和处理及与gsm模块通信等工作,是控制的核心部分。单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多种接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是所有单片机中最为典型和最有代表性的一种。 考虑到本设计需要的控制能力和尽量降低成本及系统的稳定靠性,设计采用的是宏晶公司的单片机stc21c5410ad,性价比较高,且有10k的程序存储空间,6个定时/计数器,2k的eeprom。stc12c5410ad是一个时钟/机器周期高速可靠、宽电压、低功耗、高频率、高性能的8位单片机。器件采用宏晶公司的高密度、非易失真性存储技术生产,与工业标准80c51及80c52指令系统和引脚兼容。片上flash允许程序存储器能够在系统内部或用一个通用的非易失真性编程器来进行再编程。片内置通用8位中央处理器和flsah存储单元功能强大的stc12c5410ad适合于许多较为复杂的控制应用场合。1.2.2 传感器的选择温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、a/d 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度巡回检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。在多点温度巡回检测系统中,传统的测温方法是将模拟信号远距离采样进行ad转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片ds18b20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。测温范围55125,在-10+85时精度为0.5。独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯。由数字温度计ds18b20和微控制器stc12c5410ad构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于dsb1820支持多点组网功能,多个ds18b20可以并联在唯一的三线上,因此可以非常容易实现组网多点温度巡回检测,轻松的组建传感器网络。采用温度芯片ds18b20测量温度,可以体现系统芯片化的这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。1.2.3 键盘的设计系统的手持设备共需要3个按键,它们分别是:功能选择/确认键、加键、移位键。由于键盘数目较少可采用普通键盘设计,即一个i/o口线链接一个按键,供需3条i/o口线,电路简单可靠。1.2.4 液晶显示的设计液晶显示是系统用以显示显示对方号码、设定的系统温度参数、时间参数及传感器路数参数等,具有人性化的人机交互界面,设计采用带有中文字库的金鹏系列128*64中文液晶显示模块ocmj4x8c。1.2.5 串口通信电路的设计stc12c5410ad单片机有一个全双工的串行通讯口,所以单片机和gsm模块之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如gsm模块的串口是rs232电平的,而单片机的串口是ttl电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片max232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。1.2.6 gsm模块选择 鉴于本系统可能工作在野外,距离控制中心比较远,采用普通的无线数据传输比较困难,而采用gsm模块则可以很容易解决这方面问题。gsm(global system for mobile communication)系统是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。目前已建成的覆盖全国的gsm数字蜂窝移动通信网,是我国公众移动通信网的主要方式。基于gsm的短信信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上存储和转寄的过程。由于公众gsm网络在全球范围内实现了联网和漫游,因此本系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。本设计采用的是西门子公司产的tc35t/tc35it的gsm模块。1.2.7 数据存储的设计当系统被叫号码、温度报警界限值、短信固定发送时间及其他系统参数设定后,需存储起来,为防止因意外情况掉电而丢失,需用flashrom或eeprom存储号码,由于stc12c5410ad单片机自身有2k的eeprom存储空间足以满足本设计要求,故本设计采用本单片机自身的eeprom来存储数据。第二章 各模块的设计和实施2.1电源以及看门狗电路21.1电源电路 因为单片机工作电源为+5v,且底层电路功耗很小。采用7805三端稳压片即可满足要求。具体电路图如图2-1所示:图 2-1 系统电源电路图2.1.2看门狗考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,而出现程序跑飞,死机等一些不可预知的不正常工作现象。工作人员也不可能到现场对单片机重起,本设计采用单片机自身带的看门狗定时查询单片机的工作状态,一但发现异常即对单片机延时重起。保证系统安全可靠的运行。2.2键盘电路设计由于系统所用的键盘共3个,所以选用单片机的3个i/o端口连接3个独立的键盘即可,其电路图如图2-2所示:图 2-2 键盘电路图2.3显示电路的设计本设计采用金鹏c系列128*64液晶显示模块ocmj4x8c显示对方号码、设定的系统温度参数、时间参数及传感器路数参数等。设计采用液晶模块的串行方式,如果用并行数据传输方式则需要11条i/o数据线、控制线,在本设计中会导致i/o口不够用,或者需要扩展,会使电路变的复杂,故设计采用串行方式,仅需要3条i/o口线,大大节省了单片机i/o资源,使设计简单化。其设计电路图如图2-3所示:图 2-3 lcd液晶显示电路图ocmj4x8c中文模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能9,10。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口,所有的功能,包含显示ram,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2m-位中文字型rom (cgrom) 总共提供8192 个中文字型(16x16 点阵),16k-位半宽字型rom (hcgrom) 总共提供128 个符号字型(16x8 点阵),64x16-位字型产生ram (cgram)。2.3.1 ocmj4x8c显示坐标表2-1 ocmj4x8c显示坐标汉字字符显示坐标(ocmj4x8c、ocmj4x8c_3)x坐标line180h81h82h83h84h85h86h87hline290h91h92h93h94h95h96h97hline388h89h8ah8bh8ch8dh8eh8fhline498h99h9ah9bh9ch9dh9eh9fh2.3.2串行接口与串行传输资料当psb脚接低电位时,模块将进入串行模式。从一个完整的串行传输流程来看,一开始先传输启始字节,它需先接收到五个连续的1(同步位字符串),在启始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位(rw)及寄存器选择位(rs),最后第八的位则为0。在接收到同步位及rw和rs资料的启始字节后,每一个八位的指令将被分为两个字节接收到:较高4位(db7db4)的指令资料将会被放在第一个字节的lsb部分,而较低4位(db3db0)的指令资料则会被放在第二个字节的lsb部分,至于相关的另四位则都为0。 2.3.3液晶控制指令下面列出常用的几组控制命令:1、清除显示(指令代码为01h)功能:将ddram填满”20h”(空格),把ddram地址计数器调整为“00h”,重新进入点设定将i/d设为”1”,光标右移ac加1code: 2、地址归位(02h)功能:把ddram地址计数器调整为“00h”,光标回原点,该功能不影响显示ddram 。3、点设定(04h/05h/06h/07h)功能:设定光标移动方向并指定整体显示是否移动。 i/d=1光标右移,ac自动加1;i/d=0光标左移,ac自动减1 sh=1且ddram为写状态:整体显示移动,方向由i/d决定(i/d=1左移,i/d=0右移) sh=0或ddram为读状态:整体显示不移动。code: 4、显示状态 开/关(08h/0ch/odh/0eh/0fh)功能:d=1: 整体显示on ; d=0: 整体显示off. c=1: 光标显示on ; c=0: 光标显示off. b=1: 光标位置反白且闪烁 ; b=0: 光标位置不反白闪烁。code: 5、光标或显示移位控制(10h/14h/18h/1ch)功能:10h/14h:光标左/右移动,ac减/加1;18h/1ch:整体显示左/右移动,光标跟随移动,ac值不变。code: 6、功能设定(20h/24h/26h/30h/34h/36h)功能:dl=1: 8-bit 控制接口 dl=0: 4-bit 控制接口 re=1: 扩充指令集动作 re=0: 基本指令集动作。code: 2.4温度测试电路这里我用到温度芯片ds18b20。ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。硬件连接电路如图2-4所示:图2-4 ds18b20硬件连接电路图ds18b20支持“一线总线”接口,测量温度范围为 -55c+125c,在-10+85c范围内,精度为0.5c。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。2.4.1 ds18b20内部结构ds18b20的内部结构如图2-4所示。图2-5 da18b20的内部结构图ds18b20有4个主要的数据部件:(1)光刻rom中的64位序列号(如表2-2所示)是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。表2-2 ds18b20的64位唯一rom注册码msb 64位rom注册码 lsb8位crc校验码msb lsb48位序列号msb lsb8位家族码msb lsb(2)ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达,其中s为符号位。表2-3 ds18b20温度值格式表ls byte232221202-12-22-32-4msb lsbms bytesssss262524这是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。2-4典型对应的温度值表温度/二进制表示十六进制表示+12500000111 1101000007d0h+25.062500000001 100100010191h+10.12500000000 1010001000a2h+0.500000000 000010000008h000000000 000000000000h-0.511111111 11111000fff8h-10.12511111111 01011110ff5eh-25.062511111110 01101111fe6fh-5511111100 10010000fc90h(3)ds18b20温度传感器的存储器ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的eepram,后者存放高温度和低温度触发器th、tl和结构寄存器。(4)配置寄存器配置寄存器为高速暂存存储器中的第五个字节。ds18b20在工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表2-2所示。表2-5 ds18b20配置寄存器结构表tmr1r011111msb lsb低五位一直都是1,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。在ds18b20出厂时该位被设置为0,用户不要去改动。r1和r0用来设置分辨率,如表2-3所示:(ds18b20出厂时被设置为12位)表2-6配置寄存器与分辨率关系表r0r1温度计分辨率/bit最大转换时间/us00993.750110187.510113751112750(5)高速暂存存储器高速暂存存储器由9个字节组成,其分配如表2-4所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位s=0时,直接将二进制位转换为十进制;当s=1时,先将补码变为原码,再计算十进制值。表?2是对应的一部分温度值。第九个字节是冗余检验字节。表2-7 ds18b20 暂存寄存器分布寄存器内容字节地址温度值低位(ls byte)0温度值高位(ms byte)1高温限值(th)2低温限值(lh)3配置寄存器4保留5保留6保留7crc校验值82.4.2 ds18b20工作原理ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 ds18b20测温原理如图2-6所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2-6中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。低温度系数晶振预置预置=0计数器1温度寄存器=0计数器2高温度系数晶振比较斜率累加器lsb置位/清除加1停止图2-6 ds18b20测温原理图2.4.3 ds18b20复位、读、写时序由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。i. ds18b20的复位时序图2-7 ds18b20复位时序图ii. ds18b20的读时序对于ds18b20的读时序分为读0时序和读1时序两个过程。对于ds18b20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让ds18b20把数据传输到单总线上。ds18b20在完成一个读时序过程,至少需要60us才能完成。图2-8 ds18b20写时序图iii. ds18b20的写时序对于ds18b20的写时序仍然分为写0时序和写1时序两个过程。对于ds18b20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds18b20能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图2-9 ds18b20读时序图2.5串口通信电路设计stc12c5410ad有一个全双工的串行通讯口,所以单片机和gms模块之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,gsm模块采用的串口是rs232电平的,而单片机的串口是ttl电平的,两者之间必须有一个电平转换电路,本设计采用了专用芯片max232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。具体电路如图2-10所示:图2-10 max232电平转换电路图我们采用了三线制连接串口,也就是说单片机和gsm模块的9针串口只连接其中的3根线:第5脚的gnd、第2脚的rxd、第3脚的txd。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。通信线采用交叉接法,即两者信号线对应成为rt,tr。 具体连接电路如图2-11所示:图2-11 串口线连接示意图2.6 gsm模块2.6.1 tc35i短信猫特征tc35t/tc35it 是西门子公司的一个便捷的即插即用解决方案。 其技术特点如下: 双频gsm外置调制解调器 egsm900/1800mhz或egsm900/1900mhz 支持电压范围:8v-30v、低功耗 短信息服务功能-文字及pdu-点对点(mt/mo)-小区广播 接口标准rs232接口-用at命令做遥控(gsm07.07及07.05)-串连波特率由300至115,200 bits/s-自动波特率(300至38,400 bits/s) sma天线接口 滑入式sim卡存储器2.6.2 gsm的sms 短消息服务是gsm系统提供给用户的一种数字业务。它与话音传输及传真一样同为gsm数字蜂窝移动通信网络提供的主要电信业务。sms的收发占用的是gsm网络的信令信道,不会占用普通话音信道,而且它是双向通信,具有一定的交互能力;sms具有较高的可靠性,短消息发送端的用户可知道短消息是否已经到达接收端。由于短消息依靠了smsc短消息服务中心的存储和转发机制,当接收端用户关机或不在服务区内时,smsc会暂时保存该短消息;如果接收端用户在规定时间(通常为24小时)内重新处于工作状态,smsc会立刻发送短消息给接收端用户,当发送成功时会返回发送端用户1个确认信号。sms充分利用了gsm网络的直放站覆盖广的特点和全程全网的优势,具有极佳的移动性,使得任何一个申请了短消息服务的gsm无线终端用户在全网范围内获得服务。每个短消息的信息量限制140个8位组(7比特编码)140个英文字节或70个中文字符。如果超过此长度,则要分多次发送。2.6.3发短消息一共有三种方式来发送和接收sms信息:block mode, text mode和pdu mode。text mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。pdu mode被所有手机支持,可以使用任何字符集,这也是中国境内手机默认的编码方式。pdu串表面上是一串ascii码,由0-9、 a-f这些数字和字母组成。它们是8位字节的十六进制数,或者bcd码十进制数。pdu串不仅包含可显示的消息本身,还包含很多其它信息,如sms服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的pdu串,结构是不完全相同的。 发送:smsc号码为8613800531500(济南),对方短信内容为“温度”,其pdu串可以为:08 91 683108501305f0 11 00 0d 91 68 3108985258f0 00 08 00 04 6e295ea6具体分析如表:表2-8 ds18b20 暂存寄存器分布分段含义说明08smsc地址信息的长度共8个八位字节(包括91)91smsc地址格式(on/npi)用国际格式号码(在前面加)683108501305f0smsc地址8613800531500补f凑成偶数个11基本参数(tp-mti/vfp)发送,tp-vp用相对格式00消息基准值(tp-mr)00d目标地址数字个数共13个十进制数(不包括91和f)91目标地址格式(ton/npi)用国际格式号码(在前面加)685160048906f2目标地址(tp/da)8615064098602,补f 凑成偶数个00协议标识(tp-pid)是普通gsm类型,点到点方式08用户信息编码方式(tpd-cs)ucs2编码()00有效期(tp-vp)5分钟04用户信息长度(tp-udl)实际长度6字节6e295ea6用户信息(tp-ud)温度 信发送时,所对应的完整的字符串为:at回车at+cmgs=”pdu串长度”若收到”,则接着发送对应的pdu串发送成功,返回如下内容:+cmgs: 128ok2.7整体电路图控制器电路原理图见附录一手持设备电路原理图见附录二第三章 各模块和主程序流程图3.1系统概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。3.2主程序方案主程序调用了5个子程序,分别是lcd液晶显示程序、键盘扫描以及按键处理程序、温度巡回检测程序、中断控制程序、单片机与gsm模块串口通讯程序。键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及相关处理。温度巡回检测程序:控制温度传感器工作并且处理温度传感器送过来的数据。lcd液晶显示程序:显示对方号码、设定的系统温度参数、时间参数及传感器路数参数等。中断控制程序:实现定时控制功能。串口通讯程序:实现gsm模块与单片机通讯,将短信数据传送给gsm模块。程序结构lcd显示程序键盘扫描及键处理程序中断控制程序串口通信程序温度巡回检测程序图3-1 程序结构示意图将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和i/o冲突即可。程序应该尽可能多的使用调用指令代替跳转指令。因为跳转指令使得程序难以看懂各程序段之间的结构关系。而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块3.2 各模块程序设计下面对主要几个子程序做介绍:3.2.1 温度巡回检测程序设计ram操作指令如表3-1所示:表3-1 ram操作指令指令约定代码功能温度变换44h启动ds18b20进行温度转换,12位转换时最长为750ms(9位时为93.75ms)结果存入内部9字节ram中。读暂存器0beh读内部ram中9字节的内容。写暂存器4eh发出向内部ram的3、4字节写上、下限温度数据命令,紧跟该命令之后是传送两字节的数据。复制暂存器48h将ram中3、4字节中的内容复制到eeprom中。重调eeprom0b8h将eeprom中的数据恢复到ram中的3、4字节。读供电方式0b4h读ds18b20的供电模式。寄生供电时ds18b20发送“0”,外接电源供电ds18b20发送“1”。rom操作指令如表3-2所示:表3-2 rom操作指令指令约定代码功能读rom33h读ds18b20温度传感器rom中的编码(即64位地址)。符合rom55h发出此命令之后,接着发出64位rom编码,访问单总线上与该编码对应的ds18b20,使之作出响应,为下一步对该ds18b20的读写做准备。搜索rom0f0h用于确定挂接在同一总线上的ds18b20的个数和识别64位rom地址,为操作各器件做好准备。跳过rom0cch忽略64位rom地址,直接向ds18b20发出温度转换指令,适用于单片工作。警告搜索命令0ech执行后只有温度超过设定值上限或下限的片子才做出响应。温度测试程序流程图如图3-2所示:图3-2 温度测试程序流程图传感器网络自动搜索算法:dallas semiconductor的每片1-wire器件都有唯一的64位注册码,它存储在只读存储器(rom)中。在1-wire网络中注册码用于1-wire主机对从机器件进行逐一寻址。如果1-wire网络中从机器件的rom 码是未知的,可以通过搜索算法来找到此码。搜索算法采用的是二叉树型结构,搜索过程沿各分节点进行,直到找到器件的rom码即叶子为止;后续的搜索操作沿着节点上的其它路径进行,按照同样的方式直到找到总线上的所有器件代码。搜索算法首先通过复位(reset)和在线应答脉冲(presence pulse)时隙将1-wire总线上的所有器件复位;成功地执行该操作后,发送1个字节的搜索命令;搜索命令使1-wire器件准备、就绪开始进行搜索操作。搜索命令分为两类标准搜索命令(0f0h)用来搜索连接到网络中所有器件;报警或有条件搜索命令(0ech)只用来搜索那些处于报警状态下的器件,这种方式缩小了搜索范围,可以快速查找到所需要注意的器件。搜索命令发出之后,开始实际的搜索过程。首先总线上的所有从机器件同时发送rom码(也叫注册码)中的第一位(最低有效位)。与所有的1-wire通信一样无论是读取数据还是向从机器件写数据,都由1-wire主机启动每一位操作。按照1-wire的特性,当所有从机器件同时应答主机时,结果相当于全部发送数据位的逻辑and;从机发送其rom码的第一位后,主机启动下一位操作、接着从机发送第一位数据的补码;从两次读到的数据位可以对rom码的第一位做出几种判断(表3-3)。表3-3 检索信息位位(实际值)位(补码)结论00从机rom码中的当前位既有0,也有1;即存在差异01从机rom码中的当前位均为0。10从机rom码中的当前位均为1。11总线上没有从机器件响应。按照搜索算法的要求,1-wire主机必须向总线上的从机发回一个指定位;如果从机器件中rom码的当前位的值与该数据位匹配,则继续参与搜索过程;若从机器件的当前位与之不匹配,则该器件转换到等待状态,并保持等待状态直到下一个1-wire复位信号到来。其余63位rom码的搜索依然按照这种读两位、写一位的模式进行重复操作(参见表3-4)。 按照这种搜索算法进行下去,最终除了一个从机器件外所有从机将进入等待状态,经过最后一轮检测,就可得到最后保留(未进入等待状态)器件的rom码。在后续搜索过程中,选用不同的路径(或分支)来查找其它器件的rom码。需要注意的是本文rom码的数据位用第1位(最低有效位)到第64位(最高有效位)表示,而不是我们常用的那种第0位到第63位的模式;这样设置允许将差异位置记数器初始值置为0,为以后的比较提供了方便。表3-4 1-wire 主机和从机的搜索过程主机从机1-wire 发出复位信号产生在线应答脉冲。写搜索命令 (标准或报警)从机准备搜索。读第1 位的and从机发送rom 码的第1 位。读第1 位补码的and从机发送rom 码的第1 位的补码。写第1 位指定位(依照算法)从机接收主机的指定位若所读的位与rom码的第1 位不匹配,则进入等待状态。 读第64 位的and从机发送rom 码的第64 位。读第64 位补码的and从机发送rom 码的第64 位的补码。写第64 位指定位(依照算法)从机接收主机的指定位若所读的位与rom码的第64 位不匹配,则进入等待状态。从表3-3 可以看出:如果所有总线上的器件在当前位具有相同值,那么只有一条分支路径可选;总线上没有器件响应的情况是一种异常状态,可能是要查找的器件在搜寻过程中与1-wire 总线脱离。如果当前位既有0也有1,这种情况称为位值差异,它对在后续搜索过程中查找器件起关键作用。搜索算法指定在第一轮查询中若出现差异(数据位/补码 = 0/0), 则选用0路径。注意:这一点是由本文档中介绍的特定算法决定的,其它算法中或许首先选用1路径。记录最后一次值差异的位置以供下一次搜索使用,表3-5列出了出现值差异时路径的选取情况。表3-5 搜索路径方向搜索位所在位置和最后一次值差异所在位置的比较路径选取=采用路径1采用路径 0搜索算法通过对lastdiscrepancy、lastfamilydiscrepancy、lastdeviceflag 和rom_no值的处理利用上述流程实现了两个不同类型的搜索操作;这两个操作是搜索1-wire器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论