基于RTOSμCOSII和GSM的野外水位监测系统.doc

上传人:文库蛋蛋多 文档编号:4135987 上传时间:2023-04-07 格式:DOC 页数:28 大小:432.50KB
返回 下载 相关 举报
基于RTOSμCOSII和GSM的野外水位监测系统.doc_第1页
第1页 / 共28页
基于RTOSμCOSII和GSM的野外水位监测系统.doc_第2页
第2页 / 共28页
基于RTOSμCOSII和GSM的野外水位监测系统.doc_第3页
第3页 / 共28页
基于RTOSμCOSII和GSM的野外水位监测系统.doc_第4页
第4页 / 共28页
基于RTOSμCOSII和GSM的野外水位监测系统.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《基于RTOSμCOSII和GSM的野外水位监测系统.doc》由会员分享,可在线阅读,更多相关《基于RTOSμCOSII和GSM的野外水位监测系统.doc(28页珍藏版)》请在三一办公上搜索。

1、华东交通大学电子测量大作业题 目 基于RTOS COS-II和GSM的野外水位监测系统 课 程 名 称 电子测量技术 院 部 名 称 信息工程学院 专 业 通信工程 班 级 10 通信二班 学 生 姓 名 龚建生 学 号 20100610080 指 导 教 师 黄德昌 目录目录2基于RTOS COS-II和GSM网络的野外水位监测系统3摘要3Summary3绪论4总体方案设计41 水位传感器52 传输网络73 监控中心74 集中器7系统的工作方式71 主动式72 被动式83 混合式8系统硬件电路的设计81 采集终端的设计92 集中器的设计103 单片机电路11系统软件的设计211 系统流程21

2、2 COS II移植233 程序设计39总结与展望39谢辞40参考文献40基于RTOS COS-II和GSM网络的野外水位监测系统摘要水位监测是水温采集的重要组成部分,在防汛减灾、水利建设、工业生产等领域发挥着重要的作用。水位监测系统是一种水情信息的实时检测、处理的系统,它应用监测、数据处理、通信和计算机技术,对江河、水库、地下水、矿井等水位的监测,因此通常设计成无人值守的方式,从而减少人工观测强度,并提高水情的实时性。由于野外水位的特殊环境,这就要求系统必须足够稳定。如果采用传统的单片机的设计方法,让程序逐个顺序执行,这无疑增加了系统的不稳定性。所以,在本个检测系统中,我们加入了COS II

3、操作系统,这大大提高了系统的稳定性。COS II是一个基于优先级的可抢占式的硬实时内核。它属于一个完整的、可移植、可固化、可裁减的抢占式的多任务内核。COS II具有免费、简单、可靠性高、实时性好等优点,其开放性使得开发人员可以自行裁减和添加所需的功能,在许多应用领域发挥着独 特的作用。本系统数据传输网络采用了GPRS数据传输方式。关键词:uC/OS-II、C51、GSM网络、水位监测SummaryWater level monitoring is the important part of temperature acquisition, It play an important role

4、in flood control and disaster reduction, water conservancy construction, industrial production, etc.Water level monitoring system is a system of Hydrologic data real-time detection and processing,It use the Monitoring, data processing, communication and computer technology for the monitoring of the

5、rivers, reservoirs, groundwater, mine water, etc.So It usually designed to unattended mode, so as to reduce artificial observation strength, and improve the real-time performance of the water.Because of the special environment of field water, which requires the system must be stable enough.If we use

6、 the traditional design method of single chip microcomputer, let one program order execution, that undoubtedly increased the instability of system.So, in this a detection system, we joined the COS II operating system, which greatly improves the systems stability. COS II is a based on priority can-ta

7、ke type hard core.It belongs to a complete, portable, curing, scalable pre-emptive multitasking kernel. COS II has an advantages of free, simple, high reliability, good real-time, etc., and its openness enables developers may make the cuts and adding the function, It plays a in many application fiel

8、dsx special role alone.The system data transmission network using a mode. Of the GPRS data transmission.绪论本论文主要介绍使用基于80C51、GSM模块和COS II操作系统的野外水位监测系统的设计,首先介绍了水位检测系统的组成部分和工作方式;然后介绍了系统的硬件电路设计,主要是单片机和GSM模块的接口电路以及外围电路的设计;最后介绍了系统的软件设计,包括COS II操作系统的移植、主程序、初始化子程序、短信息字程序及数据处理子程序等。本设计是一个通用的设计实例,也可以将其应用于远程抄表、远

9、程控制等应用场合。总体方案设计水位检测系统一般由采集终端、集中器、传输网络以及监控中心组成。其中,采集终端负责事实、准确地采集水位信息,是实现测量及控制的首要环节;集中器是水位检测系统的重要组成部分,负责将采集终端发送过来的数据进行存储、处理并通过有线或者无线将数据网络将数据传输到监控中心,或者接收中心的命令,完成相应的动作;监控中心是整个系统的核心控制单元,负责将各个采集终端发送的数据进行存储、处理并生成各种图表及数据库,另外,可以根据需要向采集终端发送命令,以实现对各个监测点的控制。水位检测系统的主要组成如下图。此外,由于系统的数据采集设备在野外工作,环境相对恶劣,因此,在选择传感器、设计

10、集中器时需要充分考虑不利因素的影响,从而保证数据采集和传输的可靠性。1 水位传感器水位传感气是水位监测系统的最前端,其测量的准确性和可靠性直接关系到整个系统的性能。用于自动化检测的水位传感器等。这些传感器可以直接接到数据终端上,自动检测水位参数。浮体式水位传感器的特点是必须有浮体浮于水面。它采集水位信号的原理是:浮体浮于水面随着水升降,同时浮体随水位移的信号,通过浮体以一定的方式传递出去,实现水位采集。浮体式水位感应器的优点是稳定、可靠、成熟、运用最广泛。缺点主要有两个:一是冬季结冰是不适合使用,二是无法在流动的水中测量水位,如果需要测量水井中的水位,则需要清除淤积。压阻式水位传感器是一种利用

11、水的压力与睡得深度成正比的性质采集水位信号的传感器。其水位取样的基本原理是基于单晶体硅材料的压阻效应。单晶体硅在受到水压之后,其电阻会发生变化,且改变量与水的压力成正比。为了实现单晶硅的压阻效应,在应用中一般是在圆形硅膜片上扩散出四个P行电阻,构成惠斯登电桥的四个臂。电桥的输出与电阻变化量成正比,也就是与水的压力深度成正比,从而实现对谁信号的采集。压阻式水位传感器灵敏度比较高,动态响应好,精度高,易于微型化和集成化,至目前非电量电测技术中非常重要的检测手段。这类传感器的主要缺点是,在大应变状态中有明显的非线性,输出信号弱,抗干扰能力差。超声波水位传感器是根据水能发射超声波的特性研制的。超声波水

12、位传感器采集水位信号的原理是,传感器内部的发射源向水表面发射超声波,水反射部分回波,这种反射波被超声波接收器探测,并转化成电信号。超声波的运动时间和运动距离(传感器与水表面的距离)成正比。根据超声波运动的时间,便可得知传感器与水面的距离,经信号处理,就可将此转换成水位。超声波水位传感器是一种适用于各种过程控制系统的智能型一体化非接触式水位测试仪,可以测量腐蚀性液体,精度比较高,受温度影响比较小。导电式水位传感器采集水位信号的基本原理,是利用水的导电性将水位转化成电容的变化;另一种是利用水位变化与电极接触,来实现水位信号到电信号的转变。根据水位信号转化成电信号的不同方式,导电式水位传感器可分成两

13、种类型:电容型和电接触型。这类传感器的特点是精度与结构有关,不需要建造水位井,可分段安装。野外环境影响稳定工作,适用浅水位检测,需要定时检查接触点。通过比较,本系统选用压力型传感器。这里选择压力、液位传感器JYB-KO-LAG(北京昆仑海岸传感器中心),它是一种硅压力传感器,利用专门线性放大芯片进行放大及线性化处理。其外形小巧,精度较高。采用集成设计,便于现场安装和使用。JYB-KO-LAG传感器技术参数如下:液压量程:0-100M压力量程:0-35MPa环境温度:-10-60供电电压:12-32VDC输出信号:4-20mA/0-5V负载特性:电流输出型:小于等于600欧,电压输出型小于等于3

14、千欧绝缘电阻:大于100兆欧准确度:A级 0.25%FS,B级 0.1%FS非线性:0.2%FS迟滞性与可重复性:0.1%FS长期稳定性:0.1%FS/年热力零点飘移:0.03%FS/响应时间:30ms最大工作压力:2倍量程2 传输网络一般来说,野外水位检测系统所处地形复杂,监控点分散,距离监测中心比较远,有线网络(如利用公用交换电话网络PTSN)铺设困难,而且维护费用昂贵。在现有的无线通信方式中,建立无线基站耗资巨大,建设周期长,维护苦难,并且使用必须申请频道;射频无线通信技术传输距离短(小于50m),不适合远距离传输;GSM短消息方式使用移动网络,可避免重复建设,减少成本,在低频、率。小容

15、量等应用场合是一个不错的选择,但是响应偏慢,不能做到实时传输,而且在野外、山区等信号较弱地区,传输成功率也不容乐观;GPRS传输方式,多个用户可以共享同一无信道,传输速率较高,保证实时在线,特别适合于一些流量小,传输频率高,需要实时响应的通讯系统。综上所述,本系统的传输网络采用GPRS数据传输方式。3 监控中心监控中心负责接受并处理监控终端上传来的数据,包括系统接收处理,数据的存储、实时显示、实时报表、报警、曲线图、打印、数据库等几部分;同时实现对监控点所有重要设备的运行参数进行实时监控,以及状态和故障的预测欲报,同时以图形、文字、发光的方式报警。安全员可以随时通过数据查询调出数据参数,并打印

16、出来。本论文主要针对基于GSM的野外监控系统(以集中器为中心)的设计,监控中心的设计这里不再介绍。4 集中器集中器是整个野外检测系统(下位机)的核心,是联系采集终端和监控中心的桥梁,负责将采集终端送来的数据通过GPRS网络将数据传输到监控中心,或将接收到的监控中心的命令产送给采集终端。因此,集中器实际上就是一个透明的传输系统,对采集终端和监控中心而言,只是一个传输通路。系统的工作方式目前自动测报系统通常采用主动方式(自报式)、被动报式(查询应答式)及混合式(自报一应答兼容式)三种工作方式,主要特点如下:1 主动式主动式工作方式下,监测站点不受中心指令的控制,当监测站点到达一定时间或检测到水位参

17、数发生一个计量的变化是,主动将水位信息发送给监控中心。其特点是功耗低、结构简单、实时性强,能很好的反映参数变化全过程。缺点是监控中心不能控制各监测站,不能获取及时信息。2 被动式被动式工作方式下,监测站点自动采集和存储水位的信息,但不主动传送给监控中心。只有接收到监控中心的查询命令时,才将数据发出。其优点是控制性好,监控中心可随时获取数据。缺点是如果遇到水位突变的场合不能及时上报,造成反应滞后,甚至导致事故发生。3 混合式混合式集成了上述方式的优点,既能实时反应参数的变化,又能及时响应监控中心的命令。GPRS具有双向数据传输的功能,适合于混合式工作方式,同时GPRS按数据流量收费,在不传送数据

18、时无费用,而且监测站设备耗电很低,设和野外作业。同时考虑到水位参数平时变化缓慢。而在水位突变时需及时上报,而且监控中心能够随时控制监测站,因此系统采用混合工作方式。另外,由于每次GPRS传送数据都将发生通话费用,所以应选择合适的水位参数变化量,是数据传输频率不至于过高。系统硬件电路的设计根据实际应用的需要,整个系统分为两个相互独立的部分:采集终端部分和集中器部分。集中器分为服务器端和客户端两大类,其中服务器端和监控中心相连,使用RS-232接口,客户端和采集终端相连,使用RS-485接口,在监控中心端可以使用一根232/485转接线或在监控中心安装转接卡,系统的原理框图如下图所示。1 采集终端

19、的设计采集终端实际上是一个智能仪表,单片机是仪表的主体。传感器测量的模拟信号经过A/D转换之后,经过输入通道进入单片机内部进行数据处理、存储等操作,如果接收到命令,可以通过通信接口与其他仪器仪表甚至计算机作远距离通信,以达到资源共享的目的。如今,许多单片机采用超大规模CMOS集成电路技术,而且在芯片内部集成了许多新的功能部件,如片内A/D转换器、片内看门狗电路、片内脉宽调制电路、更大的RAM及EEPROM等,从而使得系统硬件电路功耗更低、体积更小,也更适合于野外使用。采集器终端原理框图如下图所示。为了适合野外作业,需要竟可能的减少系统的功耗。因此在进行系统设计的时候需要充分考虑。采集终端的单片

20、机在这里选择使用STC12C5410AD,其主要特性如下:RISC型8051内核,1个时钟/机器周期,运行速度更快;3.4-5.5V宽电压供电,保证了在电量降低时能够正常工作;片内集成了512字节的RAM和10K字节的程序存储器,能够存储较大的程序和处理更多的数据;8路10位A/D转换器,可直接处理模拟信号;内置看门狗和复位电路,保证了系统的工作稳定;内置EEPROM,掉电可以存储重要数据;内置SPI告诉通信端口和一个全双工异步串口UART;另外,其高抗静电(ESD保护)、宽温度范围(-4085)、超低功耗(掉电模式0.1A,空闲模式1.3mA,正常工作模式2.7mA7mA)等设计非常适合于野

21、外使用。采用STC12C5410AD单片机后,采集终端部分的设计变得非常简单,仅涉及通信接口电路(RS-485)和实时时钟电路,本论文对此模块不再做详细的介绍。2 集中器的设计集中器是水位检测系统的重要部分,主要由单片机电路、GSM模块、SIM卡电路、485电路和供电电源电路组成。由于单片机仅有一个串行口,但需要和GSM模块和485电路两个部分通信,因此需要进行功能切换,增加一个开关电路。本设计中,单片机选用STC89C58RD+芯片,GSM模块选择西门子公司的MC55,485转换芯片选择MAX485E,模拟开关选择CD4066。集中器的电路图下。1 电源电路本系统中有5V、4.2V、2.6V

22、三种典型电压。其中5V为单片机STC89C58RD+、模拟开关4066、MAX485E等芯片的电源电压;4.2V为MC55模块电源电压BATT+;2.6V为MC55模块串口高电平的典型电压。5V电压由锂电池直接提供。MC55模块的供电电压是3.3V4.8V。典型值电压是4.2V直接用5V供电会引起模块工作不稳定甚至可能烧毁模块,所以在5V输出和MC55模块之间加了两个并联的二极管IN4007。IN4007的额定电流是1A,电压降是0.7V。经测量,两个二极管并联可以将MC55的电源电压拉至4.3V左右,达到其典型电压。并且会防止在GPRS发送数据的时候,电流消耗峰值超过其额定电流而烧坏管子。此

23、外,MC55模块的串口收发数据时电压典型是2.65V。单片机的串口收发数据时高电平电压是大于3.5V,直接连接可能会引起数据错误。所以,在电路的原理图中设计了两个电平转换电路,分别将5V转换为2.5V,2.6V转换为5V。每个转换用了两个三极管9013(Q1、Q2、和Q4、Q5),在最后一级9013上拉各自需要的电压。3 单片机电路采集器的单片机采用STC89C58RD+芯片。STC89C58RD+与51系列单片机完全兼容,但是功能更加强大,价格便宜。其主要特性如下:芯片内部有1280字节的RAM,可以进行大量数据的处理,在本系统中GPRS的数据流可以一次性吞吐,从而提高了处理速度和可靠性;内

24、嵌了32K的Flash程序存储器,保证了程序的存放空间;片上集成了大于16K的EEPROM,可以用来存放数据,掉电数据不丢失,每个扇区512个字节,读一个字节/编程一个字节/擦除一个扇区的时间大约是10s/60s/10ms;内部集成的MAX810专用复位电路,可以实现软件复位;双数据指针,对外部数据存储单元的操作更加方便;有三个定时器,使用方式同52系列单片机兼容;内置ISP,可以在线编程。STC89C58RD+芯片内部程序框图如下图所示。单片机的晶振选用的是11.0592MHz。用这个晶振可以提供很准确的波特率,可以避免通讯时出错。使用11.0592MHz晶振波特率可以达到115200bit

25、/s。4 GSM模块电路本系统的GSM模块选择MC55模块。MC55和MC56无线模块是当今市场上尺寸最小的三频模块。其紧凑型设计特别适用于大规模生产的生活消费品,例如移动电话、Smart phones、PDAs 以及其他便携式设备。同时这两款覆盖了当今全球所有GSM/GPRS网络的三频模块使您可以为全球市场设计您的产品。更小巧,更紧凑是下一代的移动电话、智能手机和PDAs发展的趋势。5.5 克的重量和3532.52.95 mm的尺寸使MC55/56模块能够大大提高您将语音和数据传输功能溶合到您的产品的集成度。运用这两款模块可构成双三频模式的方案:MC55适用于欧洲和亚洲的频段(900,180

26、0和1900 MHz),MC56适用于北美洲市场的频段(850,1800和1900 MHz),由此使您可以为全球市场设计您的产品。4-1 MC55接口相关的AT指令:4-1-1 AT+IPR:设置波特率读命令:AT+IPR?读取MC55串口波特率,回复:+IPR: rate是波特率;写命令:AT+IPR= 设置波特率大小;可以在线直接设置波特率,设置完后,改用设置的波特率去通讯就可完成。ASC0为自动波特率,ASC1默认波特率为57600;当选用的是ASC1串口,那么在系统启动的时候,会收到:SYSSTART 这个指令用于提示用户MC55已经开始工作了;而选用的是ASC0,由于默认的是自动波特

27、率,所以不会收到SYSSTART,而要通过判断VDD是否上电判断MC55启动情况,然后再发送“AT”指令,用于与MC55协商波特率,这个过程需要等待3-5秒钟,确认后,会回复OK,那么这个时候可以通过AT+IPR设置MC55的波特率,然后需要重新启动才能生效。4-1-2 ATSSYNC:设置接口工作情况读命令:ATSSYNC?读取该接口的设置情况,回复:SSYNC: mode=1表示触发LED模式;写命令:ATSSYNC= 将需要设置的状态写入,0或1;4-2 呼叫有关的指令:4-2-1 AT+CHUP:挂断呼叫,此功能跟ATH相同读命令:AT+CHUP=? 回复:OK或是ERROR写命令:A

28、T+CHUP 回复:OK或是ERROR4-2-2 ATX:设置拨号音返回和呼叫监控返回参数说明:Value:0表示仅仅返回连接结果,拨号音和忙碌监控关闭;1表示仅仅返回连接结果的文本内容,拨号音和忙碌监控关闭,2表示仅仅返回连接结果的文本内容,拨号音开启,忙碌监控关闭;3表示仅仅返回连接结果的文本内容,拨号音关闭,忙碌监控开启;4表示仅仅返回连接结果的文本内容,拨号音开启,忙碌监控也开启。4-2-3 ATD:拨号命令。这个命令用来设置通话、数据或传真呼叫。写命令:ATD;参数说明:N:表示拨打的电话号码;Mgsm:I:关闭来电显示;i表示开启来电显示;G表示只能拨打一个号码;g表示可以拨打多个

29、号码;“;”表示可有可无;4-2-4 ATH0:表示断开当前的呼叫连接。4-2-5 AT+CLCC:来电显示,提示:RING,那么会返回RING来提示,收到了一个电话。4-2-6 AT+CLIP:来电是否显示对方号码;AT+CLIP:,写命令:AT+CLIP=参数说明:N:0表示关闭显示,1表示开启显示;M:0:不支持显示,1支持显示。所以设置AT+CLIP=1可以看到对方号码,MC55模块这条指令不支持设置M值。4-3 网络服务有关的指令:GPRS网络长时间无数据交互的时候,会自动断开。如果一旦断开了,但是TCP还以为在线,这个时候数据是无法传输的,需要重新开启MC55,单单GPRS网络初始

30、化还不够。4-3-1 AT+CSQ:测试网络强度及信道错误比率读命令:AT+CSQ=? 很少这样使用,一般都是直接进行写命令写命令:AT+CSQ回复:+CSQ:, rssi为网络强度,ber为错误率;4-3-2AT+CREG:读取网络注册信息读命令:AT+CREG? 回复:+CREG:,N:开启的功能,0关闭CREG+URC,1表示开启CREG+URC的状态报告,2表示开启CREG+URC以及附加功能状态报告;Stat:表示网络状态,0表示未注册,也未找寻新网络,1已经注册本地网络,2表示未注册网络,但正在查找网络,3注册拒绝,4保留,5已经注册并且是漫游(国外网络 );写命令:AT+CREG

31、= N为1或2都是开启这个功能;4-3-3 ATSICS:建立网络连接配置,共可配置6个信道,建立的信道需要通过指令AT+SISS分配对应的服务配置,设置完之后,通过指令AT+SISO打开网络后,就可以连接了。读 命 令 :ATSICS? 回 复 :SICS :,读取所有的网络连接配置,对应信道无配置则只有一条,配置信道则将所有配置输出写命令:ATSICS=,回复:OK或是错误;参数说明:conprofileID:网络信道连接ID,从05;conparmTag:网络连接参数(字符串格式)分别是:conType:网络连接类型;alphabet:选择字母表进行网络数据的调制解调,可在没有设置网络类

32、型下就设置;user:用户名字符串;passwd:密码字符apn:接入点的类型字符;inactTO:上次服务关闭需要保持的时间,一般设置为0;dns1:首选DNS服务器地址;dns2:备用DNS服务器地址;conparmValue:对应conparmTag参数的具体设置值。这里基于GPRS0网络要用到的参数,CSD请参考mc55_V04.00。4-3-4 ATSISS:网络服务设置,共有10个信道,每个信道可选择5种类型中的一种设置 。这5种类型分别是:socket、FTP、HTTP、SMTP、POP3,本文以socket解说。读命令:ATSISS? 回复:SISS:,读取所有的网络连接配置,

33、对应信道无配置则只有一条,配置信道则将所有配置输出写命令:ATSISS=,回复:OK或错误;参数说明:srvprofileID:服务信道ID号,网络连接后必须指定服务信道,09可选;srvparmTag:服务信道参数,分别有:srvType:选择服务类型;alphabet:选择字母表进行网络数据的调制解调,可在没有设置网络类型下就设置;conID:对应ATSICS连接的配置号;address:服务器IP地址及端口号,依照URL格式,分TCP和UDP两种;tcpOT:TCP全局超时时间;tcpMR:TCP重连次数;其他参数未用到;srvparmValue:对应srvparmTag参数的值;4-3

34、-5 ATSISO:打开网络服务,分两种类型:URC自动上报和polling查询模式;读命令写命令:ATSISO= 设置服务信道号。参数说明:srvprofileId:由ATSISS开启的信道号;srvState:服务器状态:2表示已经分配了IP地址,3表示正在连接网络,4表示服务器完成连接;5表示服务器正在关闭;6表示服务器已经断开,需要执行ATSISC操作;socketState:1表示socket未分配,2表示socket分配为客户,3表示socket分配为监控者,4表示socket分配给服务;rxCount:自从打开网络服务后,共接收到的字节数;txCount:自从打开网络服务后,共发

35、送的字节数;locAddr:本地地址;remAddr:远程操作地址;4-3-6 ATSISC:关闭网络服务写命令:ATSISC=关闭通过ATSISO指令开启的网络服务,将该服务的所有设置都复位。读命令作用不大。4-3-7 ATSISI:网络服务信息,将正在服务的网络相关信息读出来。写命令:参数说明:srvprofileId:读取由ATSISS开启的网络服务信息;srvState:服务器状态,2表示已经分配了IP地址,3表示正在连接网络,4表示服务器完成连接;5表示服务器正在关闭;6表示服务器已经断开;rxCount:自从打开网络服务后,共接收到的字节数;txCount:自从打开网络服务后,共发

36、送的字节数;ackData:已经确认的数据字节数,0表示不需要确认;unackData:还没有被确认的数据字节数,0表示需要确认数据;4-3-8 ATSICI:网络连接信息,将网络连接(地层)相关信息读出来。写命令:参数说明:conProfileId:由ATSICS定义的连接通道号;conState:地层连接状态,0表示未连接,1表示正在连接,2表示已经连接,3表示受限连接(网络不好),4表示正在关闭;numServices:09服务信道号;conAddr:本地IP地址;4-3-9 ATSISR:从网络缓存中读取数据。写命令:参数说明:srvProfileId:由ATSISS定义的信道号;re

37、qReadLength:请求读的数据长度,最大1500字节,最小为0;作用:读取哪个信道的数据长度;cnfReadLength:0表示目前缓存中无可读数据,1表示将会接收到请求的数据长度,-2表示所有数据已经传送完毕,准备ATSISC关闭网络;remainUdpPacketLength:网络缓存中剩下的数据长度;如果请求读的数据长度大于缓存中的数据长度,那么回复缓存中的长度,这个时候不能再带remainUdpPacketLength这个参数。4-3-10ATSISW:将数据发送到网络中。写命令:操作过程:先发送要写的字节长度,然后接收到允许写的实际数据长度,开始发送数据内容。参数说明:reqW

38、riteLength:请求发送的数据长度,最长为1500字节;eodFlag:数据结束标志,0没有结束数据,1表示有结束数据,一般是CTRL+Z;mode:发送的数据类型格式:0表示二进制数据模式,1表示文本交互模式;cnfWriteLength:二进制模式下准备发送的字节数目,一般与要写的数据长度是相等的,文本交互模式下一帧发送的最大字节数;unackData:在TCP/IP中还没有被确认的字节数;确认到回复帧后,根据协商的内容进行发送数据内容。4-4 MC55配置相关指令4-4-1 ATSMSO:切断MC55电源,执行这条命令,在1S内MC55将切断电源写命令:ATSMSO 回复:SMSO

39、:MSOFF在接下来的1S种内会收到:SHUTDOWN 说明模块关机成功有一个开机操作,控制IGT这个引脚成功后,会收到:SYSSTART 说明模块已经上电成功,可以进行初始化了。4-4-2 ATE:控制是否拷贝回复发送内容,ATE0表示关闭此功能,也就是说发送:AT+CSMS?回 复 :+CSMS:0,1,1,1OK ATE1表示开启此功能:命令:AT+CSMS?回 复 :AT+CSMS?+CSMS:0,1,1,1OK4.3AT&F:回复MC55所有参数到默认值;5 GSM卡电路本系统无需经常拔卡,故无需检测SIM卡的存在。在此采用较常用的6脚SIM卡插座,且使用了其中的5个。电路连接如原理

40、图中所示。6 模拟开关电路模拟开关电路的作用是切换单片机与MC55模块和485总线之间的数据传输。初始化单片机与MC55模块连接。如果MC55接受到来自485总线的数据或者要给485总线发数据,则切换到485总线。数据发送完毕后再切换到MC55模块。这部分功能用一个CD4066刚好完成,而且只用P1.0和P1.1两根线就可以控制,快速又简单。系统软件的设计1 系统流程软件设计是整个系统设计的重要环节,应遵循可靠性、实时性的原则。采集器是控制系统的处理单元,同时也是控制系统的重要组成部分。下位机软件编程主要包括COS II 操作系统系统的移植、水位数据的采集、处理、存储、发送及GSM通信等。上微

41、机软件使用VB建立管理控制软件,建立数据库。由于篇幅所限,本文主要针对采集器进行设计,采集终端和上位机的软件设计这里不做介绍。如果我们按照顺序化的程序设计,我们就必须如下图的设计方法。系统上电初始化完毕后,单片机的串口一直等待接收数据,如果有数据到达,则判断数据类型,如果是MC55模块的返回码,则进入处理返回码子程序;如果是需要告知客户端或服务器自己的IP地址指令,则发短消息告知对方自己的IP地址;如果是PC抄表指令,则发送给相应的采集器,采集器再通知采集终端需要返回的数据;如果是采集端返回的水位数据,则将数据发送给服务器,服务器再发送给监控中心;如果是监控中心的AT控制指令,则直接发送给MC

42、55模块。相应的子程序处理完毕后,返回继续等待。由于51单片机只有两级的中断嵌套,对于如此复杂的中断系统,其实时性根本无法保证。同时,如果系统的某一个子程序崩溃,会影响到后面所有的程序,给我们的生产生活带来巨大的隐患。为了提高系统的实时性和稳定性,系统采用了任务优先级调度的方式。COS II 可以在你规定的时间片内,进行一次任务调度,让每次就绪的任务中优先级最高的执行。单片机上电后,对系统进行初始化操作,然后COS II 操作系统根据任务的优先级进行任务调度,让实时性高的任务先执行。如图所示,系统上电初始化完成后,单片机的串口一直等待接收数据,显然串口程序的优先级必须最高,所以我们把其优先级定

43、义为5。其次,我们按照对实时性的要求的关系,我们依次定义MC55模块返回码程序的优先级为10;需要告知客户或服务器自己的IP地址的程序优先级定义为9;PC抄表程序优先级定义为8;是否要发送采集端数据程序优先级定义为7;监控中心的AT指令响应程序优先级定义为6。COS II 操作系统调度算法设计如下:初始化时,优先级最高的串口数据等待程序首先运行,且每运行一次阻塞20ms;监控中心的AT指令响应程序每运行一次阻塞30ms;是否要发送采集端数据程序每运行一次阻塞40ms;PC抄表程序每运行一次阻塞50ms;需要告知客户或服务器自己的IP地址的程序每运行一次阻塞60ms;MC55模块返回码程序每运行

44、一次阻塞70ms。2 COS II移植uCOS V2.52的文件结构与移植所需要的修改:A、与处理器无关的文件:OS_CORE.COS_FLAG.COS_MBOX.COS_MEM.COS_MUTEX.COS_Q.COS_SEM.COS_TASK.COS_TIME.CuCOS_II.CuCOS_II.H这些文件在c51的移植过程中,只需要给函数加上重入属性即可。与应用相关的文件:INCLUDES.H: 包含C51的标准库头文件;对pdata等c51关键字的重定义OS_CFG.H: OS_TICKS_PER_SEC、 OS_FLAGS注意可能需要修改。与处理器相关的文件:OS_CPU.H: 数据类

45、型、关中断方法、任务堆栈方向、任务切换的宏定义都需要修改。OS_CPU_A.ASM: OSTickISR()、OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()这几个函数的编写,是整个移植的关键。OS_CPU_C.C:OSTaskStkInit()函数的编写。C51的堆栈结构;这是整个移植过程中的重中之重,所以特别详细介绍。系统堆栈;c51中,系统堆栈的栈底地址是?STACK,栈顶指针就是SP拉,栈的生长方向是向上的,栈空间分配在51的内部RAM(idata)中。?STACK分配在所有内部RAM数据段的最后面,所以系统堆栈的范围是从?STACK到内部RAM的最高位(0x80或者0xFF)。数据堆栈;c51中,由于我们使用OS,采用的LARGE编译模式,所以数据堆栈的指针是?C_XBP, 栈的生长方向是向下的,栈空间分配在51的外部RAM(xdata)中。C51中断中堆栈的保护;研究中断中堆栈的保护的意义在于,因为uCOS中的任务切换,本身就是模拟一次中断的发生:保护Task1的CPU寄存器,SP切换到Task2的堆栈,弹出Task2的CPU寄存器。用C51写中断函数的时候,编译器会自动保护CPU的寄存器,所以中断返回时任务调度O

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号