基于单片机与 PC 机通信的数据采集控制系统设计
摘 要
:
设计出基于单片机与
PC
机通信的数据采集控制系统方法
。
被控对象经传感器
、
电压变换电路
、
A/D
转换芯片与单片机相连,
可将现场参数信息传送至单片机
;
单片机经继电器驱动控制被控对象运行
。
单片机与
PC
机经电平转换芯片相连,
实现远程通信功能
。
该系统可以实时采集被控对象多种参数信息并送
PC
机处理
,
可以选择由
PC
机远程或单片机本地控制被控对象。
关键词
:
单片机
;
PC
机
;
串行通信
;
采集控制
0 引言
工业控制现场需要实时采集被控对象参数信息
,以便于对被控对象进行实时监控,
并根据相应控制算法计算控制量,
完成相应控制任务
。
现代工业控制系统对控制准确性、
快速性
、
稳定性提出了更高的要求
,所以工业现场迫切需要一种能完成多通道、
大容量
、高精度、
稳定性高的数据采集控制系统
。目前市场已存在数据采集控制系统,
但是一般存在功能单一、
采集通道少
、
采集速率低
、
操作复杂
,
并且对工作环境要求较高等问题。
有的采集系统只有几个通道,
而且量化精度只有
8
位
,
使得系统采集数据量小,
精度不高
;
同时
AD
转换芯片与嵌入式系统通信还采用并行数据传输方式,
占用较多的
I/O
口且控制较为复杂。
大多数采集系统选择将采集到的数据和内 置控制算法直接保存到嵌入式系统中去,
由于嵌入式系统本身资源的有限性,
因此无法胜任大容量
、
高精
度数据采集任务和精确
、
复杂的控制任务
。
现代计算机软硬件技术高速发展,
使得远程数据采集控制变得更加经济高效,
也便于将嵌入式系统灵活
、
方便和计算机大容量、
高速度全部发挥出来
。
1 系统组成
针对现有技术的不足
,
提出一种基于单片机与PC 机通信的数据采集控制系统
,
该系统可以实时采集被控对象多种参数信息并送 PC
机处理
,
可以选择由 PC
机远程或单片机本地控制被控对象
。
系统的结构如图1
所示
。

高性能多通道
AD
转换芯片可以实现大容量
、
高精度模拟数据采集。
单片机与
PC
机通信可以将庞大的数据处理和复杂的控制任务交给计算机来完成。
远程控制和本地控制模式选择切换,
使系统灵活性得到加强。
系统具有采集数据量大
、
精度高
、
控制方式灵活等优点。
2 系统硬件
2.1 单片机数据采集电路
单片机数据采集电路如图
2
所示
。
被控对象现场运行参数信息,
可能是温度
、
湿度
、
压力
、
流量等非电量信号需要经传感器转换电量的信号,
如果本身就是电量信号则可省略这一步。
转换完成的电量信号可能过大或是过小,
需要经电压变换电路转换到
A/D
转换芯片所能处理的范围,
再经
AD
转换芯片转换为数字信号。
A/D
转换由
11
通道
12
位高速
A/D
转换芯片TLC2543 来完成
,
其与单片机之间数据通信采用的是串行通信的方式,
只要进行
4
条信号线的连接即可
,分别为片选信号 CS
、
时钟信号
CLK
、
数据移出
Dout
、数据移入 Din
。

2.2 单片机与 PC 机通信连接
单片机与
PC
机通信连接电路如图
3
所示
。
单片机与 PC
机之间采用串行方式通信
,
可以实现将单片机现场采集到的数据传输给 PC
机
,
也可实现
PC
机对被控对象的远程控制。

单片机串口的输入输出电平为
TTL
电平
,
它与PC 机串口的电气规范不同
,
必须进行
RS-232
电平和TTL 电平之间的转换
,
才可实现单片机与
PC
机之间的通信,
本例采用
MAX232
作为转换芯片
。
图中
C4
、C5、
C6
、
C7
是
MAX232
芯片电源变换电路的外接电容,
C8
为电源去耦合电容
,
用来消除电源澡声影响
。
PC
机的
TXD
信号经
MAX232
将
RS-232
信号电平 转 换 为 TTL
电 平 送 单 片 机
RXD
引 脚
;
单 片 机 的TXD 信号经
MAX232
将
TTL
电平 转 换 为
RS-232
电平送 PC
机的
RXD
引脚
。
C1
、
C2
、
Y1
构成单片机的外接晶振电路,
电解电容
C3
和电阻
R1
构成单片机复位电路。
2.3 单片机显示装置
显示装置由
4
个共阳数码管组成
,
其中段选数据线直接和单片机一组 I/O
端口相连
,
位选数据线经驱动芯片 ULN2003A
和单片一组
I/O
端口相连
。
显示控制采用循环扫描的方式进行,
即逐一点亮一位数码管,
并高速切换
,
由于人眼的视觉停留特性
,
其看上去好像 4
个数码管同时稳定显示
。
2.4 控制方式选择电路
控制方式选择电路为一选择开关
,
开关打到不同位置,
对应不同引脚电压
,
进而选择系统是处于
PC机远程控制模式还是单片机本地控制模式。
若是选择单片机本地控制模式则由单片机根据内置算法进行控制,
若是
PC
机远程控制模式则由
PC
机根据算法库中的算法计算控制数据,
再将数据发送给单片机
,由单片机负责解释执行。
选择后一种方法可以实现复杂算法控制,
精度较高
,
但控制过程也较为复杂
。
运行时用户可以根据需要选择控制方式,
提高了系统的灵活性。
3 系统软件
整个系统控制软件由两部分组成
,
分别为单片机端程序和 PC
机端程序
,
并且两部程序分别运行在两个不同实体上,
即单片机和
PC
机上
。
单片机端程序采用 C51
编写
,
PC
机程序采用
VB
编写
。
3.1 单片机端程序
单片机端程序主要包括系统初始化
、
A/D
转换
、
采集数据显示、
PC
机通信程序
、
系统控制等内容
。
系统初始化主要用于设定系统的初始状态,
以及中断初始化等。
A/D
转换程序主要内容
:
根据
A/D
转换芯片时序要求,
单片机利用软件模拟
SPI
(
Serial PeripheralInterface)
操作
,
完成
A/D
数据的采集
。
控制程序主要是单片机根据内置控制算法计算控制数据或直接根据 PC
机远程传来的控制数据控制被控对象运行相关程序。
PC
机通信程序又包括发送程序和接收程序两部分。
发送程序采用查询的方式进行
,
即设置好串口工作方式、
波特率等通信参数之后启动串口
,
查询数据是否发送完,
发送完之后再发送下一字节
,
直到本次数据全部发送完成。
单片机通信接收程序采用串口中断的方式,
以提高
CPU
工作效率
,
流程图如图
4
所示
。单片机串口接收到一个字节数据则产生一次串行中断,
进入中断服务执行
。
由于发送中断和接收中断均可以产生串行中断,
所以进入中断首先判断是否是发送中断,
如果是则清中断标志位并结束
;
如果是接收中断,
则接收一个字节数据
,
并根据目前所处的控制模式进行控制,
控制完成之后返回
。

3.2 PC 机端程序
PC
机端通信程序采用可视化开发工具
VB 6.0
编写。
PC
机软件主要包括窗体设计
、
系统初始化
、
接收事件程序、
发送数据
、
文件存储
、
控制算法计算等内容。
接收事件处理是系统重要任务
,
其流程图如图
5所示。

如果采集数据需要长期保存
,
可以将数据保存到计算机文件中,
文件类型可以是文本文件也可以是数据库文件。
当需要对被控对象进行远程控制则读取控制算法文件,
计算控制数据
,
再将数据通过通信控件发送给单片机,
由单片机再负责解释执行
。
4 结语
介绍基于单片机与
PC
机通信数据采集控制系统的技术背景、
硬件设计
、
软件设计
,
给出系统详细实施方案。
该系统可以实时采集被控对象多种参数信息并送 PC
机处理
,
可以选择由
PC
机远程或单片机本地控制被控对象。
系统具有采集数据量大
、
精度高
、
控制方式灵活等优点。