一款RTOS的太阳能热水控制系统设计样本.doc

上传人:人*** 文档编号:558370981 上传时间:2023-10-11 格式:DOC 页数:8 大小:134KB
返回 下载 相关 举报
一款RTOS的太阳能热水控制系统设计样本.doc_第1页
第1页 / 共8页
一款RTOS的太阳能热水控制系统设计样本.doc_第2页
第2页 / 共8页
一款RTOS的太阳能热水控制系统设计样本.doc_第3页
第3页 / 共8页
一款RTOS的太阳能热水控制系统设计样本.doc_第4页
第4页 / 共8页
一款RTOS的太阳能热水控制系统设计样本.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《一款RTOS的太阳能热水控制系统设计样本.doc》由会员分享,可在线阅读,更多相关《一款RTOS的太阳能热水控制系统设计样本.doc(8页珍藏版)》请在金锄头文库上搜索。

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。基于RTOS的太阳能热水控制系统设计引言随着嵌入式技术的发展与壮大, 越来越多的单片机在使用中实现了RTOS(Real Time multi-tasking Operation System)的嵌入, 采用多任务机制来提高系统运行的效率和缩短响应所用的时间。RTOS具有下述优点。RTOS是一个可靠性和可信性很高的实时内核, 将CPU时间、 中断、 I/O、 定时器等资源都包装起来, 留给用户一个标准的API, 并根据各个任务的优先级, 合理地在不同任务之间分配CPU时间。RTOS作为软件开发平台是十分可取的, 基于RTOS上的C语言

2、程序具有极大的可移植性。据专家测算, 优秀RTOS上跨处理器平台的程序移植, 只需要修改1%5%的内容。RTOS的引入, 解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件比重不断上升、 应用程序越来越大, 对开发人员、 应用程序接口、 程序档案的组织管理将成为一个大的课题。引入RTOS相当于引入了一种新的管理模式, 对于开发单位和开发人员都是一个提高。本方案从如何更好解决小区和楼群内居民的生活用热水问题出发, 利用绿色环保的太阳能为主要能量来源, 以楼为单位综合控制, 为用户提供生活热水。这不但方便了生活, 摒充了传统的独立式热水器存在的安全隐患, 也便于业主集中管理和规划。1 系统工作

3、概况本太阳能热水控制系统以太阳能为能源, 加热位于户外屋顶上集热器中的水。被加热升温后的水, 经过循环阀进入大水箱, 再经由重力到达小水箱, 小水箱中设有辅助能源保持水温的恒定, 再经过升压装置将热水送到各家各户。该系统在缺省状态下, 以自动控制模式判断四个阀门(主要控制点)的工作状态, 也可根据需要由工作人员进行手动控制。工作人员经过主端的操作控制面板完成人与系统的交互。位于面板上的显示屏会实时显示系统的工作情况和各项参数数据, 供工作人员参考。水箱高度和需要开启加热阀门时的温度等十二个系统参数, 既能够在控制箱内的操作控制面板上设置和经过显示装置查看, 也能够在远程监控的计算机界面上设置和

4、查看。考虑到在北方地区的推广, 系统还设定了防冻循环参数以控制启停防冻循环。太阳能热水智能控制系统示意图如图1所示, 其中控制箱即为主控制端(主端), 数据采集端(从端)位于大水箱上方。 系统采用华邦公司生产的单片机W77E58作为主端和从端的微处理器, 由于它去除了多余的时钟和存储周期, 其运算速度比传统的8051系列要快1.53倍。单片机中采用的实时多任务操作系统是RTX51TNY, 该操作系统由德国Keil公司开发研制, 大小只有800B, 但理论上支持多达16个任务, 任务间的协调和轮换以信号机制触发。RTX51TNY操作系统允许”准并行”的同时执行几个任务, 每一个任务在预先定义好的

5、时间片内得以执行。2 系统结构太阳能热水控制系统由以下几个模块构成: 主控制端处理模块(即主端)、 数据采集端模块(即从端)、 监控计算机及其后台服务程序。其中, 从端还包括超声测水位器件模块, 该器件利用超声声波接触到水面后反射的简单原理, 使用放大器电路实现, 成本大大低于市场上流行的投入式液位计。系统的结构框图如图2所示。 2.1 主控制端软件实现及任务分析系统的软件主要由三部分构成: 主端程序、 从端程序和利用超声技术测水位的程序。主端程序包含在主端控制模块当中, 它的作用是判断系统当前工作状态, 经过对所采集的数据进行处理和分析得到该如何继续控制系统的指令。从端程序负责处理采集的数据

6、, 并发送提交给主处理程序, 超声部分的程序保证超声模块测水位的稳定性和精确性。其中, 主控制端后台处理模块是系统的主要部分, 占据了绝大部分的代码量, 控制系统的指令大都由这里给出, 下面着重介绍这一部分。主端功能模块示意图如图3所示。 主处理逻辑由7个任务构成其主体, 一些函数的定义作为其补充。7个任务分别为: 初始化任务;与串口通信任务(串口1接收从数据采集端发回的数据);与串口2通信任务(串口2负责与监控计算机交换数据);分别为对不同显示区域的控制任务;对硬件中断的处理任务;对传回数据的处理任务。各个任务具体实现的功能如下: 初始化任务: 初始化串行接口, 并开始其余6个任务, 最后删

7、除自身。串口1通信任务: 主处理逻辑每隔一定的时间就经过串口1向数据采集端发送查询帧查询数据, 发送一定次数后仍未收到从端数据者, 经过信号机制触发显示任务, 显示与从端通信挫败的提示信息;若从端返回无误数据, 则转入显示任务进行数据处理后显示。若经由CRC校验发现连续若干次从端传回数据有误, 转入显示任务显示数据出错的提示信息。串口2通信任务: 由于监视该系统运行的工作人员需要经过一些参数的变化来实时了解当前系统工作的情况, 这些参数包括各个阀门的状态、 水箱的水位、 各个传感器当前的温度等, 因此该系统中使用一个串口来向监控计算机提交数据。每隔一定时间监控计算机便发送查询帧, 该查询帧分两

8、, 一类是查询阀门状态, 另一类查询水位和温度, 主控端按其要求的数据种类填充该帧后回送。控制显示区任务1: LED显示屏分为上下两行, 上面一行为区域1, 下面一行为区域2。区域1负责显示当前系统中水箱水位, 大小水箱温度等参数, 每屏显示参数中的一个, 停留一段时间后显示下一个, 如此循环重复, 操作人员可在此查看系统中参数的具体值从而做出控制判断。控制显示区任务2: 区域2显示的是系统运行中, 当前各个阀门的工作状态。系统设置了以手动和自动两种方式操纵四个阀门, 用有否提示音来进行区分。这个区域还负责显示各种提示信息或者出错信息, 如果温度传感器或超声探头传回的数据有误, 都在这里给出报

9、错字样, 并表明是哪部分出了问题, 便于工作人员及时检修排队故障。硬件中断处理任务: 在控制台的表面分布着14个按键用以操纵和控制系统, 每按下一个键, 系统该做出何种反应就由此任务掌管。由16位输入4位输出的编码器得到按键编码, 在这里分十四种情况转入不同的程序段进行处理。对传回数据的处理任务: 在与串口1的通信任务中, 系统从串口1收到的数据如果是无误的, 则进入此任务。该任务对系统中主要存在四种动作, 即加水、 加热、 循环和回水, 分别分为手动和自动两种工作状态, 计算系统中实时改变的数据该如何影响和决定当前系统的动作。2.2 数据采集端功能模块图 在数据采集端, 温度的采集包括对屋顶

10、集热器温度的采集, 对恒温小水箱温度的采集, 对大小箱温度的采集和对输水管网中某点温度的采集。数据采集逻辑间接控制循环阀门、 回水阀门、 加热阀门、 加水阀门。数据采集端的功能模块图如图4所示(虚线部分表示对阀门的间接控制)。3 通信帧格式主控制端所实时显示和进行处理的数据要靠数据采集端进行采集后发回, 两者之间的通信经过RS485接口, 采用定义帧结构的方式来实现。在程序中, 我们靠对帧类型的区分和判断, 共定义了七种代表不同含义的帧, 分别是: 主控制端向数据采集端发送的数据查询帧;数据采集端向主控制端回送的温度水位等数据帧;监控计算机端向主控制端发送的查询阀门状态帧;监控计算机向主控制端

11、发送的查询温度水位等数据帧;主控制端向监控计算机回送的阀门状态帧;主控制端向监控计算机回送的数据帧;监控计算机端设置参数告知主控制端帧。若某一帧是传送数据的帧, 则data1dada7的7个字节中依次填充大水箱水位、 小水箱水温、 大小箱水温、 屋顶集热器中水温(3个采集点)和采集点处的水温。若某一帧作为传送当前阀门状态的帧, 则用7个字节中的前4个来分别表示进水阀、 回水阀、 加热阀和循环阀是打开状态还是闭合状态。帧结构的格式如图5所示。除此之外, 还能够按照设计的需要自行增加帧的类型, 以实现更为复杂的通信。 4 系统外存储器EEPROM由于控制中经常会涉及到参数的更改, 为了使掉电后不影

12、响系统的运行, 即需要参数能够重现, 系统采用带有I2C总线接口的EEPROM 2402芯片实现数据的存储和读取。读和写分别调用的两个函数如下: unsigned char eepromread(unsigned char beginbyte)unsigned char data result;unsigned char i;EA=0;i=RW24XX(&result,1,beginbyte,READ_OP,M2402);EA=1;return(result);/*unsigned char i;EA=0;i=RW24XX(&datum,beginbyte,WRITE_OP,M2402);EA

13、=1;能够看出, 函数RW24XX是对EEPROM外存储芯片操作的主体函数, 这里给出该函数中包含参数的定义: bit RW24XX(unsigned char *DataBuff,unsigned char ByteQuantity,unsigned int Address,unsigned char ControlByte,enum eepromtype EepromType)其中, DataBuff为读写数据输入输出缓冲区的首地址, ByteQuantity为要读写数据的字节数, Address为EEPROM芯片的片内地址, ControlByte是EEPROM的控制字节, 具体形式为(

14、1)(0)(1)(0)(A2)(A1)(A0)(R/W), 其中R/W=1, 表示读操作, R/W=0为写操作, A2、 A1、 A0为EEPROM的页选或片选地址;EepromType为枚举变量, 需为M2401M24256中的一种, 分别对应24C0124C256, 本系统中为M2402;函数返回值为一个位变量, 若返回1表示此次操作失效, 0表示操作成功;ERRORCOUNT为允许最大次数, 若出现ERRORCOUNT次操作失效后, 则函数中止操作, 并返回1。在该函数中, 调用的若干I2C总线函数如下: void IICStart(void);void IICStop(void);bit IICRecAck(void);void IICNoAck(void);void IICAck(void);unsigned char IICReceiveByte(void);void IICSendByte(unsigned char sendbyte);结语本系统结构简单, 操作方便, 拥有手动和自动两种控制模式, 具有一定的智能性;既可现场控制, 又可远程控制;能根据现场状况, 合理地调节控制状态。便于模块化处理, 使程序的可读性、 可维护性和可移植性都得到进一步提高。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号