APP下载

温室远程多参数控制系统的国产化研究*

2011-02-28施智雄

网络安全与数据管理 2011年11期
关键词:子程序中断串口

施智雄

(西昌学院 汽车与电子信息工程学院,四川 西昌 615000)

现代温室系统通常需要大量的控制设备。但以往的温室控制系统大都采用进口PLC单独控制系统及大量的开关控制和电闸控制,还需要工作人员在现场操作,或向控制室拉接较长的220 V电线,实时性、安全性都较差。如果采用具有采集功能的PLC,成本昂贵,不适应我国的国情[1]。为了测试国产单片机器件在现代农业装备中的应用稳定性,实现工作人员在控制室即对分散在各个温室的远端设备进行实时有效地状态控制及状态查询,本文研发了基于单片机的远程温室多参数采集及控制系统,并全部采用国产器件。经过一年的运行证明,该系统价低、可靠,完全可以应用于国产现代农业装备。

该系统由一台PC上位机接收并控制多台远端设备控箱,通过RS-485总线串行接收数据并传送指令,传输距离最远可达1.2 km,并进行了增强串行通信协议的制定,降低了噪声干扰。一台控箱可对8路传感器采集数据并对16路控制设备进行控制。控箱中选用STC12C5A64S2型单片机,其IAP功能可在线下载Hex文件并进行调试,无需多次使用编程器。

1 系统结构及功能

远程温室多参数控制系统的结构如图1所示。其中,PC上位机放在控制室里,各控制箱就近放置在控制设备附近。由PC上位机接收下位机的测试参数并发送控制指令,通过RS-485总线将指令串行传送给各远端设备控箱,这样就可在控制室里实现数据收集和设备控制,查询各个设备的状态。从传输距离和性价比方面考虑选用RS-485总线。RS-485为平衡线路,可实现远距离、多节点控制。本设计的重点是设备控箱,将以一台设备控箱为例介绍系统的软件和硬件设计。

图1 系统结构框图

2 硬件设计

2.1 STC12C5A60S2系列单片机

设计系统选用宏晶科技公司的具有IAP(In-Application Programming)功能的STC12C5A型单片机[2]。该单片机采用8051内核,单时钟/机器周期,指令代码完全兼容传统8051。工作频率范围为 0~35 MHz,相当于普通8051的0~420 MHz;可根据需要选择用户应用程序空间,有 8 KB、16 KB、20 KB、32 KB、40 KB、48 KB、52 KB、60 KB、62 KB 供 选 择 , 本 次 设 计 选 用STC12C5A62S,片上集成 1280 B RAM ,通用 I/O口根据封装不同有36、40、44三种,本次设计采用 36口封装,I/O口复位后可设置为四种模式:(1)准双向口/弱上拉,强推挽/推挽/强上拉;(2)仅为输入/高阻;(3)开漏上拉;(4)仅为输入/高阻,开漏。每个I/O口驱动能力均可达到20 mA;ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器;可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片烧写。时钟源可采用外部高精度晶体时钟或内部RC振荡器。有4个16位定时器。外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒;A/D转换具有10 bit精度 ADC,共 8路,转换速度可达 250 kS/s;通用 2路全双工异步串行口(UART)。它在指令系统、硬件结构和片内资源上与标准8052型单片机完全兼容,同时增大了内部程序存储Flash的容量,可达62 KB。并增加了与Flash编程相关的6个特殊功能寄存器和2个与看门狗复位有关的特殊功能寄存器[3]。对STC12C5A62S2的IAP功能采用一个通用程序编写,选用Keil公司的μVision仿真软件进行编程仿真。将生成的Hex文件直接通过RS-232串口从PC下载到单片机上运行调试。使用非常方便,缩短了开发周期,单片机系统内部结构框图如图2所示。

图2 STC12C5A60S2系统内部结构框图

2.2 硬件系统

远程温室多参数控制系统的核心硬件图如图3所示,以 STC12C5A62S2型国产单片机为核心,用 P1口采集外部传感器信号,用P0口、P2口进行信号控制(P0口要加上拉电阻器)。通过两个国产ULN2803进行电流放大,可驱动16路继电器。由于片内带有共阴极箝位二极管,可适应感性负载,故输出端可省去大量二极管。串口部分选用国产MAX485。ULN2803A型器件选用国内生产的单片集成高压、大电流达林顿晶体管阵列(中国航天771生产)。该阵列由8个NPN达林顿管组成,其特点是电流增益高、负载能力强(输出电流可达 500 mA)、工作电压高(耐压达50 V)。美信公司的MAX485型器件是通用半双工收发器,传输速度为9.6 Kb/s时,传输距离可达1.5 km。可实现上位机与单片机之间的串口异步通信。其中RE与DE接在一起,并由单片机的RD(P3.7)控制。拉低为接收有效,拉高为发送有效。该系统还具有上电自动复位和通电指示功能。设计PCB时应注意合理布线,对单片机电源进行滤波整流,并远离干扰源[4]。

该芯片的内部A/D采用控制寄存器完成,内部控制如图4所示。

图3 系统核心硬件

图4 A/D转换内部图

3 系统软件设计

用C语言编译器开发单片机具有使用方便、编程效率高及仿真调试容易等突出特点。C51的版本很多,本系统软件选用德国Keil Software公司的Keil C51编译器开发。该编译器基于Windows平台集成开发环境,可编辑、编译和调试汇编语言程序及C51程序,还可模拟仿真I/O口、定时器/计数器、串行口及中断等单片机特有的功能部件,功能强大(须注意的是在Keil C51库中没有STC12C5A62S2,需要在宏晶STC官方网站www.STCMCU.com下载)。该系统的软件设计由主程序、A/D转换程序、中断程序、串行接收子程序、串行发送子程序、控制设备程序等若干功能子程序组成。其中实时时钟进行精确操作,用汇编语言编写,其他均用C语言编写。

3.1 主程序设计

在主程序中,先将STC12C5A62S2初始化,然后等待新命令。当NewData=1时,表示已接收到一个有效的命令帧,否则继续等待。接着判断是否是本机地址,若是则判断控制命令,否则继续等待。上位机发送指定的字符串,分别表示开设备、关设备、查询、设置等命令。通过字符串比较,判断出命令指令,跳到相应的入口子程序中,操作成功后,通过串口发送子程序返回相应的提示符,其具体流程略。

3.2 串口中断程序设计

为了增强抗干扰性,有效地区分噪声和数据便于操作,串口中断程序加强了通信协议的制定,具体实现方法是加开始标志和结束标志。噪声是以随机字节出现的,通过测试和实验,发现在本系统中0x00后跟0xFF时噪声不容易发生。因此,设置开始标志为0x000xFF,结束标志为回车换行符0x0D0x0A。如果接收命令帧成功,则置NewData=1,表示新命令有效[5]。考虑到纠检错,数据采用短包方式。中间采用延时,以保证起始位可靠。串口中断程序流程略。

部分程序清单如下:

基于STC12C5A16S2-35C的远程温室多参数采集及控制系统可实现一台PC上位机最多采集及控制256个设备控箱,传输距离最远可达1.5 km,每台设备控箱可对16路设备进行控制。实现了集中管理、分散控制的功能。该系统通过软硬件提高抗干扰性,并具有较好的扩展性,结构简单、投资少,故障率低。实际应用表明具有较强的实用性,经过一年的正常运行实践证明国产器件完全可以应用于现代农业装备。

[1]薄新维.STC系列单片机在温室大棚中的应用[J].仪表技术与传感器,2009(1):27-30.

[2]彭敏.基于DS18B20的温度显示和报警装置的研制[J].可编程控制器与工厂自动化(PLC FA),2007(11):116-118.

[3]张鹏翼,罗卫兵,等.基于 STC12C5412AD单片机的无线电话遥控电路设计[J].浙江理工大学学报,2009(2):23-25.

[4]梅凤霞,王耀青.STC单片机在多路温度巡回检测仪中的应用[J].武汉工程职业技术学院学报,2010(2):47-50.

[5]邵琰,钱东平.STC89C52RC单片机在幼苗移栽机控制系统中的应用[J].农机化研究,2010(5),36-38.

猜你喜欢

子程序中断串口
浅谈AB PLC串口跟RFID传感器的通讯应用
跟踪导练(二)(5)
千里移防,卫勤保障不中断
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序
基于并行控制的FPGA多串口拓展实现
AT89C51与中断有关的寄存器功能表解