邮局订阅号:82-946360元/年
技
术
创
新
单片机开发与应用
《PLC技术应用200例》
您的论文得到两院院士关注
1引言
虚拟仪器技术已经在测试测量以及工业控制领域得到广泛
的应用。通过利用NI(NationalInstruments)公司提供的LabVIEW
软件和相关硬件,可以方便快捷的设计出所需的测控系统,但其
提供的硬件大都比较昂贵。
这里设计的系统组成框图如图1所示。上位机PC通过自
带的串行口,和单片机进行通信。在此基础上,使用LabVIEW
8.0设计上位机监控界面,实现对被控温度的测量和控制,从而
降低了系统的硬件成本。
下位机采用89C51单片机,单片机外围电路将采集到的温
度信息传给单片机,单片机再将其传到上位机。上位机根据从
单片机得到的数据,完成被控量的显示和控制。
为了实现PC机和单片机的串行通信,还需设计一个电平
转换电路,这里使用的核心芯片是MAX232CPE。
图1系统组成框图
2上位机软件设计
上位机采用LabVIEW编程,LabVIEW是专业的测控软件。
通过使用LabVIEW可以缩短测控系统的设计时间,而且设计出
的系统界面美观,便于修改,易于扩展。
2.1LabVIEW串行通信功能模块介绍
在LabVIEW功能面板的InstrumentI/O-->Serial目录下,
包含串行通信所需的集成模块。利用这些模块,可以非常方便
的设计出基于串行通信的测控系统。需要注意的是,在使用这
些模块之前,需安装光盘上的VISA驱动程序;也可从NI的网
站免费下载最新VISA驱动程序。下面介绍一下最常用的串行
通信模块:
1)VISAConfigureSerialPort。
用于初始化所选择的串行口。其中VISAresourcename用
于选择所用到的串行口,PC机中常用到的串口号分别用COM1
和COM2表示。Flowcontrol用于设置握手方式,buffersize用于
设置缓冲区的大小。Baudrate,databits,stopbits,parity分别用
于设置串行通信的波特率,数据位长度,停止位长度,校验方式。
2)VISAWrite。
用于将writebuffer中的字符写到VISAresourcename指定
的串行接口中。
3)VISARead。
从VISAresourcename指定的串行接口中读取规定字节数
的数据,并将这些数据传递给readbuffer。Bytecount用于设置
要读取的字节数。
4)VISAClose。
用于关闭VISAresourcename指定的串行口,让出串行口
的使用权。
2.2LabVIEW程序设计
图2上位机监控界面
基于
LabVIEW
的单片机温度测控系统设计
SingleChipMicrocomputerTemperatureMeasurementandControlSystemBasedon
LabVIEW
(1.燕山大学;2.河北大学)肖金壮
1
张伟
1
王洪瑞
2
魏会然
1
XIAOJINZHUANGZHANGWEIWANGHONGRUIWEIHUIRAN
摘要:利用LabVIEW开发环境设计PC上位机的监控界面,上位机通过串行口与89C51单片机通信,从而实现对过程参数的
测量和控制。该测控系统设计简单,简化了系统硬件结构,并且易于修改,具有很好的可扩展性。
关键词:串行通信;温度测控系统;单片机
中图分类号:TP368.1文献标识码:A
Abstract:ByusingLabVIEWdevelopmentenvironment,aPC-basedsupervisoryinterfaceisdesigned.ThePCcommunicateswiththe
89C51SingleChipMicrocomputerviaserialcommunication,thentheprocessparametercanbeacquiredandcontrolledbythePC.
Thismeasurementandcontrolsystemissimpletodesign;itsimplifiesthehardwarearchitectureandisconvenienttobemodified,it
alsohasgoodextensibility.
Keywords:SerialCommunication,TemperatureMeasurementandControlSystem,SingleChipMicrocomputer
文章编号:1008-0570(2007)10-2-0071-03
肖金壮:讲师博士研究生
基金项目:河北省自然科学基金资助项目(F200400260)
71--
技
术
创
新
中文核心期刊《微计算机信息》(嵌入式与SOC)2007年第23卷第10-2期
360元/年邮局订阅号:82-946《现场总线技术应用200例》
单片机开发与应用
系统主监控界面如图2所示。用到的控件包括:控件面板
上I/O子面板中的VISAResource控件;Array,Matrix&Cluster
子面板的Array控件;Numeric子面板下的NumericControl控
件;Boolean子面板下的RoundLED控件;Graph子面板下的
WaveformChart控件。
其中端口选择用于设置用到的串行口,温度设定用来设置
期望的温度值。波形图控件用于显示采集到的温度值。这里系
统所能达到的最高温度为230℃左右,因此图中波形图控件的
最大量程设置为250℃。
图3上位机程序框图1
图4上位机程序框图2
系统的程序框图如图3和图4所示。其中串行通信的主要
参数设置如下:波特率为1250,数据位8位,停止位1位,不采
用握手信号。
程序开始首先利用VISAConfigureSerialPort模块对串行
口进行初始化。然后判断开始/暂停采集按钮是否按下,如果处
于按下状态,则执行Case语句的True分支程序;否则执行Case
语句的False分支程序。
在True分支程序里,首先利用VISAWrite模块将温度设定
值传给单片机,然后用VISARead模块接受单片机传递过来的
温度信息,并将其显示在波形图控件上。在False分支程序中,
则不进行任何操作。
图5单片机程序框图
因串行通信中传递的是字符串类型的数据,因此需要将以
数字量形式存在的温度设定值转化为字符串格式,才能写入
VISAWrite;这里采用ByteArrayToString功能模块实现这一功
能。同样的,需要将从VISARead读取的字符串信息转换成数
字量,然后才能在波形图控件上显示;可采用StringToByte
Array功能模块实现这一转换。
框图中的WaitUntilNextmsMultiple模块用于设置系统
串行通信的控制周期,其输入端子millisecondmultiple用于给
定需要等待的毫秒数。这里给出的设定值为1000,即等待1秒
的时间。
3单片机程序设计
这里选用的是89C51单片机,采用C语言编程。
51系列单片机自身具有全双工的异步通信接口,可方便的
实现串行通信。通过软件编程,它可以做通用异步接收和发送
器UART(UniversalAsynchronousReceiver/Transmitter)用,也可
作为同步移位寄存器用。其帧格式可有8位、10位和11位,并
能设置各种波特率,在实用上灵活方便。
主程序框图如图5所示。其中temp中保存的是采集到的实
际温度,set_temp中保存的是上位机传给单片机的温度设定值。
系统初始化阶段,令单片机的定时器T1工作于定时方式
2,用于产生串行通信所需的波特率。串行口工作在方式1,为
10位异步通信方式,即每帧数据由1个起始位,8个数据位,1
个停止位构成。
令51单片机的定时器T0工作于定时器模式,用于产生指
定的控制周期。在T0的中断程序里,首先将采集到的温度信息
保存到全局变量temp中,然后再根据上位机给出的期望温度值
set_temp,计算出温度的偏差E。在此基础上,可选用PID等控制
算法给出控制量C,进而对温度进行实时控制。
72--
邮局订阅号:82-946360元/年
技
术
创
新
单片机开发与应用
《PLC技术应用200例》
您的论文得到两院院士关注
单片机与上位机串行通信的中断程序如下:
serial()interrupt4
{
if(RI==1)
{
RI=0;
set_temp=SBUF;
SBUF=temp;
while(TI==0);
TI=0;
}
}
4结论
本文利用LabVIEW设计了一个温度测控系统,可以在上位
机PC上完成被控温度的显示与控制。比较详细的介绍了上位
机和单片机程序的编写过程。借助于LabVIEW还可以通过简单
的设置,将采集到的温度数据保存到指定的文件中。LabVIEW
具有强大的网络通信功能,可以方便的实现远程控制。相信
LabVIEW将在测控领域得到更广泛的应用。
本文作者创新点:使用LabVIEW软件设计上位机监控界
面,与VisualC++等开发软件相比,使用LabVIEW软件可更加
方便的设计出美观的监控界面,并缩短系统的开发周期。在本
文设计的系统中,上位机PC通过串行口与单片机进行通信,不
但实现了对工业现场温度信息的采集,而且实现了对现场温度
的实时、远程控制。
参考文献
[1]李群芳,黄建.单片微型计算机与接口技术.北京:电子工业出
版社,2001
[2]魏晨阳,朱健强.基于LabVIEW和声卡的数据采集系统[J]微计
算机信息,2005,1:45-46
[3]刘君华等.虚拟仪器图形化编程语言LabVIEW教程.西安电
子科技大学出版社,2001
作者简介:肖金壮(1976-),男,汉族,讲师,燕山大学博士研究生,
研究方向为机器人智能控制、工业测控系统;张伟(1982-),男,
汉族,燕山大学硕士研究生,研究方向为嵌入式测控系统、机
器人容错控制;王洪瑞(1956-),男,汉族,燕山大学教授,博士生
导师,研究方向为机器人系统控制及轧钢机控制;魏会然
(1982-),女,汉族,燕山大学硕士研究生,研究方向为模型辨
识、机器人故障诊断。
Biography:XiaoJinzhuang(1976-),male,Instructor,Doctor.
Researchfield:intellectualrobotcontrol,industrialprocesscon-
trolsystem.
(066004河北省秦皇岛燕山大学电气工程学院)肖金壮张伟
魏会然
(071002河北省保定市河北大学电子信息工程学院)王洪瑞
(InstituteofElectricalEngineering,YanshanUniversity,Qin-
huangdaoHebei066004,China)XiaoJinZhuangZhangWei
WeiHuiRan
(CollegeofElectronicandInformationEngineering,HebeiU-
niversity,BaodingHebei071002,China)WangHongRui
通讯地址:(071002河北省河北大学电信学院自动化系)
肖金壮
(收稿日期:2007.8.23)(修稿日期:2007.9.25)
(上接第34页)
表2MC35模块AT指令
在switch语句中,根据模块当前状态值来完成不同的操作,
但无论进行何种操作,都需要先根据数据输入缓冲区中的应答
数据进行判断,若应答正确(符合上表),则继续下一步骤,否则,
设定程序结束标志为1,显示错误信息,从回调函数返回。因此,
任何不正确的应答信息,都会结束整个程序的执行,我们可以根
据系统提示的错误信息判断是哪个步骤出错,比如模块状态不
正常、短信发送未成功等。
5结论
本文的创新之处在于提供了一种方便快捷的嵌入式Linux
下串行通信设备程序开发方法,该方法利用串行接口驱动函数
库libcssl,以I/O事件驱动设备的数据采集,多串口数据采集能
够异步并发。异步事件驱动的架构可以提高系统并发处理性能,
程序能够执行多个异步操作而不调用阻塞线程,降低系统开销,
同时采用了开放式的体系架构,硬件平台基本不受限制,通过
Linux的移植,就可以运行在其他平台。而嵌入式系统加GSM模
块的系统组成非常适合于偏远地区或移动的数据采集系统中,
根据系统的需要,还可以充分利用模块的GPRS功能,实现高速
的数据采集。
参考文献
[1]程全.李向东.基于GSM模块与AT98C51的接口设计及应用.
[J]微计算机信息,2006:9-2:293-295
[2]威尔金森.阿兰.并行程序设计(美).机械工业出版社.2005年5月
[3]孙琼.嵌入式Linux应用程序开发详解.人民邮电出版社.2006
年7月
[4]《TechnicalProductInformationMC35》
作者简介:沙泉(1974—),女(蒙古族),内蒙古通辽人,上海应用技
术学院机电分院讲师,硕士研究生,主要从事过程控制、嵌入式
系统方面的研究。
Biography:ShaQuan(1974—),female(Mongolia),Tongliao
Mogolia,prelectorinschoolofmechanicalandautomationof
Shanghaiinstituteoftechnology,master’sdegree.Myresearch
areaisaboutprocesscontrolandembeddedsystem.
(200235上海上海应用技术学院)沙泉
(ShanghaiInstituteofTechnology,200235)ShaQuan
通讯地址:(201102上海上海古美路675弄19号1202室)
沙泉
(收稿日期:2007.9.23)(修稿日期:2007.10.25)
73--
|
|