摘 要 : 设计出基于单片机与 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 机远程或单片机本地控制被控对象。 系统具有采集数据量大 、 精度高 、 控制方式灵活等优点。