当前位置:首页 >> 信息与通信 >>

上位机和下位机


上位机与下位机通信的设计初步

1 引言

现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等, 同时又要求 对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能 力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以 PC 机为上 位机,单片机为下位机,由单片机完成数据的采集及

对装置的控制,而由上位机完成各种复 杂的数据处理及对单片机的控制。

2 PC 机与单片机 8051 之间的通信特点

在工业控制系统中,各种数据的采集和执行机构的控制都是由下位机或探测站来完成。由于 单片机具有体积小、价格低廉、可应用于恶劣工业环境的特点,在分布式控制系统中大多采 用单片机作为下位机来进行数据采集和现场控制。在这些应用中,单片机只是直接面向被控 对象底层。 而对采集到的数据进行进一步分析和处理的工作是由功能强大的主控 PC 机来完 成的。因此, PC 机和单片机之间就有着大量的数据交换。

3 PC 机与单片机 8051 通信的硬件设计

通常 PC 机和单片机之间的通信是通过串行总线 RS-232 实现的。因此采用一种以 MAX23 2 为核心的通信接口电路。该接口电路适用于由一台 PC 机与多个 8051 单片机串行通信的 设计,其原理和方法同样适用于 PC 机与其它单片机之间的串行数据通信。 其原理框图见图 1:

图 1 单片机与 PC 机通信原理框图

该框图中,起着重要作用的是 RS-232C 通信接口电路。它是上位机和下位机之间信息传递 的枢纽,一切数据的传输必需由它完成,上位机直接利用它的 RS-232 串行口,为此,采用 了 RS-232 串行通信来接收或上传数据和指令。 RS-232 信号的电平和单片机串口信号的 但 电平不一致,必须进行二者之间的电平转换。在此电路中,采用 MAX232 实现 TTL 逻辑电 平和 RS-232 电平之间的相互转换。 MAX232 由单一的+5V 电源供电,只需配接 5 个高精 度 10?F/50V 的钽电容即可完成电平转换。因此,避免了用 1488 和 1489 时必需两路电源 的麻烦。转换后的串行信号 TXD、RXD 直接与 PC 机的串行口连接。如此设计,既可发挥 出 PC 机强大的计算和显示功能,又可以体现出单片机灵活的控制功能,有利于对现场信号 的实时采集、处理和监控。

3.1 8051 与 PC 机之间的通信协议 在许多场合的测控系统中,约定 PC 机和 8051 单片机的通信协议为: Number + Command + Length + Data +Check Number:下位机的机号,若设计中有 3 台下位机,即 Number 取 01H,02H,03H,分别代 表:#1,#2,#3 号下位机; Command:本次命令的代码; 节数; Data:要发送的数据段; Length:本次发送数据段的字

Check:1 字节的校验码。 本设计只考虑一个 8051 单片

机,故可对上述通信协议进行简化。

3.2 8051 和 PC 机之间通信的软件设计 VB 提供了串行端口控件 Mscomm 方便应用程序实现串行通讯,该控件屏蔽了通信过程中 的底层操作,程序员应用时只需设置、监视 Mscomm 控件的属性和事件即可完成对串行口 的初始化和数据的输入、输出工作。汇编语言是一种执行效率高、可读性强的语言。为实现 通讯正常,PC 机与单片机约定如下:

波特率:2400bps; 信息格式:1 个起始位,8 位数据位,1 个停止位,无奇偶校验位; 串行口操作模式:标准异步串行通信, 串行口模式 1; 传送方式:PC 机采用查询方式接收数据,8051 单片机采用中断方式接收信息。 (1) 总体功能设计

通过综合分析,本系统至少应具备如下功能: PC 机与单片机 8051 都可发送和接收数据,进行可以异步串行通信; PC 机键盘输入发送给单片机 8051,单片机接收 PC 机发来的数据并送 LED 显示; 单片机 8051 键盘的每次输入以 BCD 码送给单片机的 LED 显示, 单片机发送的数据由四次 按键的 BCD 码组成,发送时作为一个队列发送,PC 机接收单片机发送来的数据并送窗口 显示; 上位机程序即 PC 端程序采用 VB6.0 制作,人机界面友好,界面简洁,功能完善,下位机程 序即单片机端采用汇编语言进行开发。 系统功能模块图见图 2 和图 3。

图 2 上位机模块

图 3 下位机模块

(2) 通讯流程图 主程序 实现下位机即单片机 8051 系统的初始化,8255 初始化,设置单片机串行口控制寄存器 SC ON,电源控制寄存器 PCON,定时器 T1 初始化,开中断。 系统不停的对键盘和 RxD 线进行监测,当通过扫描发现有按键输入时,经过按键处理后就 启动该模块向上位机 PC 端发送所检测到的键码;当单片机 8051 监测到 RxD 线上有数据到 时就启动该子程序对 PC 发来的数据进行接收, 同时经过 BCD 转换送单片机系统的 LED 进 行显示以方便和 PC 机发送的数据进行比较,以确认通信是否正确。流程图见图 4。

图 4 主程序流程图

图 5 数据队列发送流程图

数据队列发送子程序 当单片机 8051 键盘已有 4 次输入时,就启动该模块向上位机 PC 端发送所检测到的键码。 流程图见图 5。 键码发送子程序 当单片机 8051 检测到键盘有输入时,就通过按键处理启动该模块向上位机 PC 端发送所检 测到的键码。流程图见图 6。

图 6 键码发送流程图

图 7 数据接收流程图

图 8 BCD 转换流程图

数据接收子程序 当 8051 监测到 RxD 线有数据到时就启动子程序对 PC 发来的数据进行接收。 流程图见图 7。 BCD 码转换子程序 该程序通过把#DATABUF 中的十进制数值除以 100(64H), 得到的商就是百位数的 BCD 码, 然后把余数除以 10(0AH)便可以得到十位和个位的 BCD 码,从而得到相应的三位 BCD 码。 在该子程序中进行双字节无符号二进制数的除法时要用到前面介绍的多字节无符号二进制 数的除法算法,由于原理相似,在此不再重述。流程图见图 8。在此程序中因原来的接收数 据存在于#DATABUF 附近,为防止发生信息覆盖故使用了暂存单元来暂时寄存除法计算的 中间值。 LED 显示子程序 该子程序实现对接收数据进行 BCD 码转换并输出到 LED,采用动态显示的方式进行显示。 流程图见图 9:

图 9 LED 显示流程图

4 结束语

上位机与下位机通讯是一个应用性广,适用性强的基础设计,可以应用在变频器上。要真正 做好一个具有良好人机界面及交互性, 使上位机和下位机能正常高效的通讯, 需要设计人员 具有很强的 VB 和单片机汇编语言的驾驭能力。同时,需要相当程度的设计经验,这样才能 对设计中出现的问题采取行之有效的解方案。本文的研究对以后进一步深入奠定了基础。

参考文献

[1> 杨恢先,黄辉先. 单片机原理及应用. 长沙:国防科技大学出版社,2003. [2> 白 鹏,莫卫东等. VB6.0 高级编程技巧. 西安:西安交通大学出版社,2002.


相关文章:
上位机和下位机区别
上位机是指:人可以直接发出操控命令的计算机,一般是 PC,屏幕上显示各种 信号变化(液压,水位,温度等)。 下位机是直接控制设备获取设备状况的的计算机,一般是 PLC/...
上位机和下位机
因此在功能比较复杂的控制系统中,通常以 PC 机为上 位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复 杂的数据处理及对单片机...
上位机与下位机的区别
上位机与下位机的区别。上位机是指人可以直接发出操控命令的计算机,一般是 PC ,屏幕上显示各 种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状 ...
上位机和下位机控制功能对比
【修改】 上位机和下位机控制功能对比 本文上位机控制和下位机控制组态软件进行了简单的对比,通过一些典型示例说明 了分别适合上位机和下位机控制的场合。 当前...
上位机与下位机的区别
上位机与下位机的区别_信息与通信_工程科技_专业资料。上位机是指人可以直接发出操控命令的计算机,一般是 PC,屏幕上显示各 上位机 种信号变化(液压,水位,温度等...
上位机和下位机的区别
下位机是直接控制设备获取设备状况的的计 信号变化(液压,水位,温度等) 下位机是直接控制设备获取设备状况的的计 。 算机, PLC/单片机之类的 上位机发出的命令...
上位机和下位机通信
上位机和下位机通信_工学_高等教育_教育专区。上位机和下位机通信 ...2 2.1.3 单片机与 pc 机通信原理 ... 2 2...
上位机与下位机通讯
温度报警器的基本硬件电路有以下几部分组成:上位机下位机、选择按键 输入电路、LCD 显示电路,实时时钟电路,温度采集电路和扬声器等。串行通 信温度报警器的硬件...
上位机与下位机之间的连接
上位机与下位机之间的连接_信息与通信_工程科技_专业资料。很好用第一章 上位机与下位机 1.1 上位机与下位机的概念 上位机和下位机, 一般是指集中控制系统...
上位机与下位机之间通信协议格式
上位机与下位机之间通信协议格式。通信协议格式 一、 通信协议 1、命令帧格式帧头 20 1Byte 标志 01 1Byte 参数 命令字 2Byte 校验 累加和 1Byte 帧尾 30...
更多相关标签:
上位机 | 上位机和下位机的区别 | 下位机 | 上位机和下位机通信 | plc视频教程 | plc | 上位机软件开发 | 上位机和下位机通讯 |