基于LabVIEW和单片机的步进电机控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于LabVIEW和单片机的步进电机控制系统设计
黄章华;陆华忠;李灌辉
【摘要】以AT89S52单片机和单总线数字温度传感器DS18B20及步进电机为主要器件制作测控电路.上位机以温度为主要参数,通过串口控制步进电机的正转、反转和加速、减速.C51程序实现对传感器的数据采集和与上位机的串行通
信,LabVIEW实现测温波形动态显示、数据存储、越限报警和电机控制.经实际运行,系统能够较好地控制步进电机,可用于需要及时检测温度并进行步进电机控制的场合.
【期刊名称】《现代电子技术》
【年(卷),期】2007(030)017
【总页数】3页(P179-181)
【关键词】单片机;LabVIEW;DS18B20;步进电机
【作者】黄章华;陆华忠;李灌辉
【作者单位】华南农业大学,工程学院,广东,广州,510642;华南农业大学,工程学院,广东,广州,510642;华南农业大学,工程学院,广东,广州,510642
【正文语种】中文
【中图分类】TP215
1 引言
LabVIEW是美国国家仪器公司(National Instrument)开发的一种虚拟仪器平台。
他是一种图形化编程语言,具有强大功能,提供了丰富的数据采集、分析和存储库函数,比传统的文本式语言更具有优势。
但用LabVIEW开发的虚拟仪器通常需要价格昂贵的数据采集硬件,而以单片机为核心的数据采集与处理系统虽然硬件成本较低,但开发过程较为复杂,编程工作量较大。
如果将以单片机为核心的小系统作为前端的数据采集系统,通过LabVIEW提供的串口子VI将采集到的数据传送到上位机,在LabVIEW环境下对数据进行处理与分析,并进行相关控制,既可充分利用LabVIEW的强大功能,又可降低系统的开发成本,成为扩展LabVIEW应用范围的一个途径。
本系统以AT89S52单片机和单总线数字温度传感器DS18B20组成前端数据采集系统,以同一单片机和步进电机驱动电路组成后端控制系统。
单片机通过串行通信电路,将采集的温度数据传给上位机,上位机程序采用LabVIEW编写,可实现动态显示测温波形、存储数据和设定报警温度等功能,并可根据不同的报警温度通过串口控制单片机,驱动步进电机正反转和加减速,也可直接手动控制电机的运转。
系统可用于需要及时检测温度并进行步进电机控制的场合,也可扩展为以上位机为控制中心,由多个前端数据采集系统实现多点测温,并由不同的后端控制系统实现不同的控制功能。
2 系统组成
系统由单片机、温度采集电路、步进电机控制电路和RS 232接口电路为主,在此基础上扩展了时钟电路、键盘输入及LCD显示电路、声光报警电路和I2C总线
E2PROM存储器等部分。
单片机采用Atmel公司的AT89S52,具有ISP在线编程功能和8 kB的FLASH。
由于其程序存储器空间较大,故不须外接存储单元就可以完成LCD字库的存储等功能。
晶体振荡频率为11.059 2 MHz,可实现与计算机间的精确通信。
系统结构框图如图1所示。
3 硬件电路设计
3.1 温度采集电路的设计
温度传感器采用由DALLAS半导体公司生产的1-wire数字温度传感器DS18B20,其性能特点如下:
(1) 采用单总线专用技术,既可通过串行口线,也可通过其他I/O口线与微机接口,无须经过其他变换电路,直接输出被测温度值(9位二进制数,含符号位);
(2) 测温范围为-55~+125 ℃,测量分辨率为0.062 5 ℃[1];
(3) 内含64位经过激光修正的只读存储器ROM;
(4) 适配各种单片机或系统机;
(5) 用户可分别设定各路温度的上、下限;
(6) 内含寄生电源。
图1 系统结构框图
DS18B20与单片机的接口简单,只需将DS18B20的信号线与单片机的一位双向
端口相连即可[1]。
其供电方式分寄生电源方式:VDD和GND端均接地;外接电
源方式:VDD端用3~5.5 V电源供电。
本系统中DS18B20采用外接电源方式。
CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器进行读写操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
3.2 时钟电路DS1302
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟
电路,他可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5~5.5 V。
采用三线接口与CPU进行同步通信,并可采用突发方式一
次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302与单片机的连接需要3条线,即SCLK,I/O,RST。
DS1302增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
备用
电源可以用电池或者超级电容器(0.1 F以上)。
本系统对时间没有特殊要求,故采
用漏电较小的普通电解电容器作为备用电源,100 μF就可以保证1 h的正常走时。
3.3 步进电机控制电路
步进电机是一种将电脉冲转化为角位移的执行机构,通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,由于其没有积累误差的特点,被广泛应用于各种开环控制。
本系统步进电机采用两相双极性电机,步距角为3.75°。
驱动部分采用达林顿管TIP122和TIP127组成双极性桥式驱动电路,由于两相的驱动方式完全相同,因
此图2只给出其中一相的驱动方式。
单片机与驱动电路之间采用光电耦合器4N25进行电气隔离,增加系统稳定性。
图2 步进电机其中一相的驱动电路
3.4 键盘、LCD显示和声光报警电路
系统的键盘有3个,分别是加键、减键和确定键,可以设置系统时间和DS18B20的报警温度。
LCD采用的是12864型,共有128行,64列。
显示的主要内容有:
(1) 当前时间,格式为:年/月/日/星期/时/分/秒;
(2) 采样的实时温度值;
(3) 系统时间设定、闹钟时间设定和温度设定界面。
声光报警电路主要由发光二级管和小喇叭组成,当采样温度超过报警温度时自动报警。
3.5 I2C总线E2PROM
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,
用于连接微控制器及其外围设备。
两根信号线一是双向的数据线SDA,另一是时
钟线SCL。
I2C总线支持主/从双向通讯,主器件和从器件都可工作于接收和发送
状态。
最高传送速率为100 kb/s[2]。
系统中采用AT24C01串行E2PROM,具有I2C总线接口功能,功耗小、宽电源
电压(根据不同型号2.5~6.0 V),工作电流约为3 mA,静态电流随电源电压改变,界于30~110 μA之间。
具有128 B存储空间,可在系统掉电后保存设置好的
DS18B20的报警温度。
系统中主器件为单片机,由单片机产生串行时钟(SCL),控制总线的传输方向,并
产生起始和停止条件。
SDA线上的数据状态仅在SCL为低电平期间才能改变,SCL为高电平期间,SDA状态的改变被用来表示起始和停止条件。
3.6 RS 232接口电路
通过RS 232接口电路,系统能够与上位机进行通信,将采样温度传给上位机,并接受上位机的步进电机控制指令。
另外,也可以通过上位机调整系统的时间和报警温度。
4 上位机程序
上位机程序采用美国NI公司的图形化编程语言LabVIEW 8.2编写[3]。
按照功能
模块划分为:串口通信模块、数据显示和存储模块、参数设定模块、步进电机控制模块等。
部分操作界面如图3所示。
图3 LabVIEW部分操作界面
4.1 串口通信模块
串口通信模块包括Visa Configure Serail Port VI,Visa Write VI,Visa Read VI以
及Visa Close VI[4]。
其功能是:
(1) 实现串口的基本参数设定,如波特率、缓存区大小、奇偶校验位、数据位数和是否包含结束位等;
(2) 实现单片机与上位机之间的数据传输。
程序中,波特率选用9 600,8位数据位,不进行奇偶校验,1位停止位,每次通信的间隔为1 min。
4.2 数据显示和存储模块、参数设定模块
数据显示模块能够直观地显示当前时间、串口读写状态、实时温度波形和设置的报警温度波形。
也可以将测量得到的温度数据存储为Excel格式的文档。
参数设定模块能够设定一级低温报警温度和两级高温报警温度。
4.3 步进电机控制模块
步进电机控制分手动控制与自动控制。
当设为手动控制时,可以实现电机正反转和加减速的功能。
其实现方法是通过串口发送控制字符,由单片机进行解析,并选择相应功能。
控制字符与步进电机功能对应关系如表1所
示。
例如:发送字符“z”表示正转,“t”表示停止。
当设为自动时,若检测温度值低于低温报警温度,则电机反转;若高于一级高温报警温度,则按设定的较低速度正转;若高于二级高温报警温度,则按设定的较高速度正转。
当检测温度处于正常温度范围时,电机停止运行。
电机控制模块可灵活应用,根据不同的控制需求改变控制策略。
表1 控制字符与步进电机功能对应关系控制字符步进电机功能z正转f反转j加速s减速t停止
5 结语
本文介绍了一种基于LabVIEW和单片机的步进电机控制系统设计方法,主要有以下特点:
(1) 以单片机和DS18B20组成前端数据采集系统,经串行通信将数据传给上位机进行分析和处理。
以同一单片机和步进电机控制电路组成后端控制系统,以温度为主要控制参数,由上位机控制步进电机实现各种动作。
(2) 上位机程序采用图形化编程语言LabVIEW编写,实现温度数据的处理和对电机的控制,人机交互界面友好,操控简单。
(3) 系统可加以扩展,灵活应用于多种场合。
如利用可组网式传感器DS18B20实现多点测温,以不同的后端控制系统实现不同的控制功能。
参考文献
[1] 戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006.
[2] 杨金岩,郑应强.8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,2005.
[3] 李震,洪添胜.基于AVR单片机和PID算法的水温控制器[J].国外电子测量技术,2006,25(6):48-50.
[4] 邓焱,王磊.LabVIEW 7.1测试技术与仪器应用[M].北京:机械工业出版社,2005.。