文档库 最新最全的文档下载
当前位置:文档库 › 上位机与下位机通讯

上位机与下位机通讯

上位机与下位机通讯
上位机与下位机通讯

上位机与下位机通讯

——上位机与下位机通讯

目录

目录...................................................................... ...................... 错误~未定义书签。 1. 引言...................................................................... .................. 错误~未定义书签。

1.1 实习目

的 .................................................................... 错误~未定义书签。

1.2 实习要

求 ..................................................................... (2)

1.3 实验内容...................................................................... ............................... 2

2. 企业参观...................................................................... ............................................ 2

3. C51单片机开发设

计 ......................................................... 错误~未定义书签。

3.1 设计意

义 .................................................................... 错误~未定义书签。

3.2 系统功能设

计 ............................................................ 错误~未定义书签。

3.2.1 功能特点.............................................................. 错误~未定义书签。

3.2.2负责工作............................................................... 错误~未定义书签。

3.3 硬件设计及描

述 ........................................................ 错误~未定义书签。

3.3.1 时钟与复位模

块 ..................................................... 错误~未定义书签。

3.3.2 按键选择模块...................................................... 错误~未定义书签。

3.3.3 LCD显示模

块 ......................................................... 错误~未定义书签。

3.3.4 硬件原理图...................................................................... (6)

3.4 软件设计流程与描

述 ................................................ 错误~未定义书签。

3.4.1 编程思路简介......................................................... 错误~未定义书签。

3.4.2 程序流程图...................................................................... . (7)

3.4.3 部分程序...................................................................... (9)

4. 心得体会...................................................................... ........................................... 12 5. 参考文献...................................................................... (13)

1. 引言

近年来,计算机在各个领域的应用越来越深入,单片机凭借它的体积小、功耗低、控制功能强,扩展灵活,微型化和使用方便等优点,广泛应用于各种仪器仪表和工业当中。

单片机是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

本设计就是利用单片机实现了一个温度报警系统。由于实验设备等原因的限制,本实验利用另外一台单片机代替计算机与实时采集数据的单片机构成了二级控制系统。由下位机采集温度数据并处理成二进制数后传送到上位机。如果温度过高,超过一定限定值就会产生报警。本次课程设计的主要内容是通过单片机C51语言进行编程设计。同时在上位机还加了附加功能能够产生实时时钟,使系统用起来更加的方便。

本次课程设计的目的是培养理论联系实际的学习方法以及独立解决工程实际问题的能力。能够熟练运用C51语言进行单片机编程,同时了解一些单片机外围设备及其应用。主要内容是利用89C51单片机及其他一些器件来构成串行通信温度报警器。

关键词:单片机,温度,89c51。

1.1实习目的

-1-

通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/控制、程序设计、应用开发、等基本理论知识的理解,提高单片机应用于技术的实践操作技能,掌握单片机应用系统设计、研制的方法,培养利用单片机进行科技革新、开发和创新的基本能力,为毕业后从事与单片机相关的工作打下一定的基础。1.2 实习要求:

1)用Protel画出硬件原理图。

2)采用单片机C语言或汇编语言进行编程。

3)完成硬件与软件调试综合调试,实现预定功能,并写出课程设计报告 1.1 实习内容

(1)参观辽宁省广播电视厅033台广播信号发送站。

(2)自选一个设计题目,在软件和硬件方面分别利用高级程序语言及实验室所提供的单片机来实现。

(3) 在完成以上工作后进行相关总结。

2. 企业参观

单位:辽宁省广播电视传播发射中心

时间:2010年7月6日

内容:(1) 室内设备参观学习

(2) 室外设备参观学习

概况:1958年5月8日建台,座落在辽宁省沈阳市苏家屯区八一镇北。目前负责国家及省的部分发射广播信号工作。分别是中央新闻、中央经济、辽宁新闻、辽宁经济、辽宁乡村和辽宁故事。站内芳草萋萋,瓜果俱全。主建筑是一个二层的建筑物。发射塔有三个,最高两百余米。

体会:7月6日上午8时许,我们在东北大学南门集合,准备出发进行企业参观。根据学院的相关安排,我们今天将前往坐落于沈阳市南郊苏家屯区的零三三台广播发送站进行参观访问。作为新中国首批设立的广播信号发送站,从1958年建台之初迄今,零三三台已然在风霜的洗礼中跨越了半个世纪的沧桑岁月,先进的技术设备以及传统的企业文化是我们此行考察的重点目的。

在经历了四十分钟的短途行程之后,我们终于到达了目的地——辽宁省广

-2-

播电视厅零三三台广播信号发送站。参观伊始,在站长的热情引导和介绍下,我们来到了全台的中心枢纽——广播信号测控大厅。整个大厅大体分为內厅和外厅两个部分,内厅呈狭长通道状,嵌于外厅之中,前者主要负责广播信号的监测工作,而后者则主要负责其处理工作。外厅一侧并排伫立着7台大型信号处理设备,其中不乏HARRIS 3DX-50全固态中波调幅发射机这样世界尖端的技术产品。但若非随行陈副工程师的一番生动讲解,我们也很难想象,就是这7台机器承载了6个重量级电台(中央新闻、中央经济、辽宁新闻、辽宁经济、辽宁乡村和辽宁故事)在全省范围内大部分信号的发送工作。随着讲解的逐步深入,我们了解到广播信号发送站的主要职能在于将电台发送过来的相对较弱的节目信号,通过一系列有效的处理和调制,转换成适合远距离传输的大功率信号,并借助天线将其发送出去。其中主要的信号接收设备包括微波机、卫星接收机和光纤信号解调机,而信号发送设备则以中波发射机为主。

在测控大厅中,我们还见到了一套犹在使用的基于电子管技术的信号处理设备,由工程师的讲解中,我们得知,这是零三三台现存的年代最为久远的机器,回首凝视身旁的工程师,他总是在沉思片刻后热情地回答同学们提出的各式各样的问题,语重心长而面带微笑。

在工作楼前的露天平台下,张工程师精彩的演说也随之拉开了帷幕。如果说信号处理是广播工作灵魂所在的话,那么信号发送就是其外在的躯壳,没有后者,前者所完成的一切就都无法演变为实质性的内容。广播信号的发送硬件由两部分组成,分别是传输线和射频高塔,广播站通过传输线将广播信号测控大厅中经过处理的信号传至射频高塔顶部,并将其发射出去。其中,传输线根据信号传输量的不同划分为两类直径不一的线路(38mm和80mm),但其传输介质皆为同轴电缆。射频高塔共有四座,高度在138m至147m之间不等,每座高塔根据频道的不同而承载相异

的传输任务。由于所有的信号皆为调幅信号,因此其覆盖面极广,近至沈阳周边地区,远至朝韩日本,皆可接收到由此地发出的信号。

不知不觉我们的参观接近尾声,通过参观和学习,我充分了解了课程所学的理论知识在工程上是如何应用的,让我有信心在以后的工作和学习中使用自己掌握的知识和技术来解决各种问题,同时也认识到自己在很多理论知识方面的欠缺。感谢老师给我们在这样的机会,使我们能够认识理解到自己的不足。

-3-

3. C51单片机开发设计

3.1 设计意义

温度采集器应用很广,平时比较常见,但作为实验内容的较少,适合作为编程联系的例子。在设计中能够更加透彻的理解和较为全面的考虑各种情况。

通过这次的练习,可以加深对单片机应用了解,更能灵活的使用51系列单片机的资源解决实际问题。

3.2 系统功能设计

3.2.1 功能特点

温度采集是由单片机上的温度采集模块直接采集的数据,但采集的是模拟的电压。需要通过下位机上的AD转换模块进行处理得到数字信息。但是得到的数据并不是真正的温度值,还需要进一步的处理换算才能得到真正的温度值。

然后下位机会通过串行口与上位机进行通信,将采集得到的数据送到上位机。上位机进行分析以后,与原先设定好的温度值进行比较,如果大于设定值,则会启动报警程序,进行报警。这一过程是通过中断产生的。

如果监控人员发现后通过按按钮,可以关闭警报。

同时为了使系统使用起来更加方便,增添了数字时钟的功能。在上位机的LCD 上显示时钟,并且把下位机采集的温度值也在这里显示。实时时钟是利用单片机实

验箱上的DS12877实现。它可以计秒,分,时,日,星期,月,年等补偿功能。将其产生的数据通过并行口送到单片机。同时可以通过按键调节时钟的时间,如果时间不对的话可以调节。这些是通过中断实现的。LCD的液晶显示器单元通过点阵形式显示汉字和图形。监控人员关断报警的过程也是通过中断实现的。

温度报警器的基本硬件电路有以下几部分组成:上位机、下位机、选择按键输入电路、LCD显示电路,实时时钟电路,温度采集电路和扬声器等。串行通信温度报警器的硬件电路设计框图如图2.1所示。

-4-

时钟与复位电路

上位机下位机温度采集输入电路

入选择按键输入电路

温度报警电路扬声器 LCD显示电路

图3.1 温度报警器硬件电路设计框图

3.2.2 负责工作

主要负责LCD显示模块和时钟模块的设计及编写。使用protel制作原理图,首先我分析了以前的实验程序,包括LCD显示程序和串口程序,对试验箱上的部分模块进行了调试,在确定硬件和软件都没有错误的前提下,根据自己的想法,对实验程序做了改动,并在编写的程序中进行调用,用以完成要求。

3.3 硬件设计及描述

3.3.1 时钟与复位模块

由电容,电位器,按键组成复位电路部分,该电路接于单片机的RESET端可以通过按键达到手动复位的效果,也可以通过电位器和电容组成上电复位电路。通过复位电路使单片机回到初始状态。

图 3.2复位电路图 3.3 晶振时钟电路

3.3.2 按键选择模块

利用P1.0到P1.2与8279芯片构成键盘扫描电路,可以扫描十六个按键,但-5-

本次设计只用到十个按键。用来进行对实时时间的更改和校准。

温度采集模块

这一过程是将试验箱上的温度传感器采集到的模拟电压值经过ADC0809芯片的转换得到数字电压值传送到单片机上,然后再经过换算得到准确的温度值。3.3.3 LCD显示模块

由RT12864,按键和保护电阻组成的外部扩展电路。其工作过程是通过单片机P3.6/WR和P3.7/RD接于RT12864,使其接收单片机由使用者通过按键发来的信息,显示实时时间和温度值,当有按键按下时,LCD会暂停显示,等待改变完要进行的操作后再继续计时显示。

3.3.4 电路原理图

综合以上功能模块,连接于单片机,绘制原理图如图3.4所示。

图 3.4 音乐播放器电路原理图

3.4 软件设计流程及描述

3.4.1编程思路简述

要实现对温度的实时采样必须有温度传感器,而试验箱上的温度模块正好完成了我们对温度的采样。我们需要做的是对温度进行AD转换,然后再进行-6-

换算成实际的温度。由于对芯片的不熟悉,我们只能用实际观察的方法来实现。先用温度计对室内温度有一个测量然后与采集到的AD电压进行比较得出他们的数学线性关系,然后进行换算。

然后需要做的是进行实现实时计时的功能,我们用的是DS1302进行计时。用专用的芯片会更加方便,也会使编程很方便,并且节省CPU的资源。

实时时钟的校时操作时通过按键完成的,而键盘的扫描时通过对可编程芯片8279的编程实现的。共完成了十个按键的操作,这些操作都是通过中断传送的程序中的。这些校时操作中包括了对年,月,天,周,小时,分钟,和秒的加一减一的操作,当使用者按下1时表示要对时间进行校时,然后按下2,3,4,5,6,7,8分别表示对年,月,天,周,小时,分钟,和秒进行操作。然后再按下9表示加一,若

是按下A表示减一的操作。按几下表示加或者减几下。如果操作结束按下B,则结束,时钟又开始重新计时。

3.4.2 程序流程图

开始

初始化(LCD设置,定时

器、终端等设置)

是否温度过高 N

Y

将时间,温度等值赋给LCD

温度过高发生报警进行显示

(操作1)

是否有按键

Y

按键1 要进行时间的修改,暂停计时

-7-

按键2 对年进行操作

按键3 对月进行操作

按键4 对日进行操作

按键5 对星期进行操作

按键6 对小时进行操作

6

按键7 对分钟进行操作

按键8 对秒进行操作

按键9 对相应值进行加一操作

9

按键10 对相应值进行减一操作

按键A 对相应值进行减一操作

若不是以上按键,则不进行操作继续显示

结束

主机的程序流程图

开始

将AD转换的值赋给变量 wendu

将wendu的值赋给串口通信

的寄存器

-8-

通过查询中断将数值发送过

结束

图 3.5 程序流程图

3.4.3 主要程序

LCD程序:

void lcdxian(unsigned char tempreture) {

unsigned char ds_temp;

unsigned char temp1;

ds_temp=tempreture;

if (rflag==0)

{

w_c_add=0x80; /* 写命令字:设定DDRAM地址到地址计数器

(AC) */

delay();

temp1=ds_y & 0xf0; /* 年保留高四位 */

ds_t=_cror_(temp1,4); /* 将变量temp1循环右移4位 */

lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

ds_t=ds_y & 0x0f; /* 年保留低四位,将小时的十位和个位分离 */ lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

lcd_busy();

w_d_add=0xC4; /* 年*/

lcd_busy();

w_d_add=0xEA;

temp1=ds_mon & 0xf0; /* 月保留高四位 */

ds_t=_cror_(temp1,4); /* 将变量temp1循环右移4位 */

lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

ds_t=ds_mon & 0x0f; /* 月保留低四位,将小时的十位和个位分离 */ lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

-9-

lcd_busy();

w_d_add=0xD4; /* 月*/

lcd_busy();

w_d_add=0xC2;

temp1=ds_d & 0xf0; /* 天保留高四位 */

ds_t=_cror_(temp1,4); /* 将变量temp1循环右移4位 */

lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

ds_t=ds_d & 0x0f; /* 天保留低四位,将小时的十位和个位分离 */ lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

lcd_busy();

w_d_add=0xC8; /* 日*/

lcd_busy();

w_d_add=0xD5;

lcd_busy();

w_d_add=0xD6; /* 周*/

lcd_busy();

w_d_add=0xDC;

ds_t=ds_week & 0x0f; /* 天保留低四位,将小时的十位和个位分离 */ lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

lcd_busy();

w_c_add=0x90; /*换行显示*/

lcd_busy();

w_d_add=0x20; /* 写数据*/

lcd_busy();

w_d_add=0x20; /* 写数据*/

lcd_busy();

temp1=ds_h & 0xf0; /* 小时保留高四位 */

ds_t=_cror_(temp1,4); /* 将变量temp1循环右移4位 */

lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

将小时的十位和个位分离 */ ds_t=ds_h & 0x0f; /* 小时保留低四位,lcd_busy();

w_d_add=num[ds_t]; /* 写数据*/

lcd_busy();

w_d_add=0x3a; /* :冒号*/

temp1=ds_m & 0xf0; /* 分保留高四位,将分的十位和个位分离 */ ds_t=_cror_(temp1,4);

lcd_busy();

w_d_add=num[ds_t];

ds_t=ds_m & 0x0f; /* 分保留低四位,将分的十位和个位分离 */

-10-

lcd_busy();

w_d_add=num[ds_t];

lcd_busy();

w_d_add=0x3a; /* :冒号*/

temp1=ds_s & 0xf0;/* 秒保留高四位,将秒的十位和个位分离 */

ds_t=_cror_(temp1,4);

lcd_busy();

w_d_add=num[ds_t];

ds_t=ds_s & 0x0f; /* 秒保留低四位将,秒的十位和个位分离 */ lcd_busy();

w_d_add=num[ds_t];

lcd_busy();

w_c_add=0x88; /*换行显示*/

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

w_d_add=0xCE; /*温*/

lcd_busy();

w_d_add=0xC2;

lcd_busy();

w_d_add=0xB6; /*度*/

lcd_busy();

w_d_add=0xC8;

lcd_busy();

w_d_add=0x3a; /* :冒号*/

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

temp1=ds_temp & 0xf0;/* 温度保留高四位 */ ds_t=_cror_(temp1,4);

lcd_busy();

w_d_add=num[ds_t];

ds_t=ds_temp & 0x0f; /* 温度保留低四位 */ lcd_busy();

w_d_add=num[ds_t];

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

-11-

lcd_busy();

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

w_d_add=0x20; /* 写数据空格*/

lcd_busy();

}

}

时钟程序:

void check_ds12887(void)

{

unsigned char temp;

rega=0x2f; /* 开启晶振,允许计时,输出频率为500ms*/

delay();

regb=0x80; /* 芯片停止工作,可初始化时间和日历*/

temp=regc; /* IRQF:中断申请标志位。置1,IRQ引脚输出低,*/

/* 所有标志位在读寄存器C以后复位清零 */

temp=regd; /* BIT7=1,锂电池状态为有电*/

second=hs_s; /*写秒*/

minute=hs_m; /*写分*/

hour=hs_h; /*写小时*/

week=hs_week;

year=hs_y;

month=hs_mon;

date=hs_d;

regb=0x42; /* 允许中断周期输出到IRQ引脚,24/12制,1表明24h */ EX1=1;

}

4. 心得体会

其实写心得是件闹心的事情,你要把这个过程回想一遍,追溯到开学的第一堂课,把所有的点滴细节,愉快不愉快的都记起来,却不得不写。

上了十周的课,听了一半扔一半,每一次小考都是一次总结,经历了一次

-12-

考试,虽说是开卷,可是毕竟是考试,像是把以前学过的都洗礼了一遍,算是一次最基本的复习,每一次才让我真的明白,哪些会,那些不会。可是即使知道了,也未必真的去学习。除非,再给你一次统一学习的机会。这也许就是期末的课程设计,或者说是生产实习。

于是生产实习就真的来了,信息楼349,我们要在那里经历相当于六天每天八个小时的时间。这个要真的好好做了,我们选了个新的题目,没有参考,没有讨论。苦苦思考,苦苦研究,仍不得其要领。我们只得在其他的时间也过来,不对就多尝试,失败是成功之母。后来,明明感觉理论都对了,可是还是出不来相关的现象。经过老师的亲自试验和指导,现象终于出来了。原来实验室的机器是成对的,跟别的机器搭档就没有现象。搞笑搞怪的机器。

做完了是件值得高兴的事情,这才好像把在考试中发现的新东西,巩固了,体会了,充实了。也体验到了亲自动手的快感。

我真心希望每门课程都有生产实习,这样就能多学点东西了。总之,这一次,终究是学了些东西。

5. 参考文献

[1] 参考马忠梅,籍顺心(单片机的C语言应用程序设计[M],北京:北京航空航天大学出版社,2005.

[2] 张志,高大志,杨为名等(微控制器原理及接口技术实验教程[M],沈阳:东北大学出版社,2004.

-13-

上位机和下位机通信

目录 摘要 1 引言 (1) 2 结构设计与方案选择 (2) 2.1设计任务 (2) 2.1.1单片机的选择 (2) 2.1.2电平转换 (2) 2.1.1单片机的选择 (2) 2.1.3单片机与pc机通信原理 (2) 2.2软件方案选择 (2) 2.2.1 上位机编程方案选择 (3) 2.2.2 单片机编程方案选择 (3) 2.3 总体方案选择 (2) 3 硬件设计 (8) 3.1单片机主要特性 (5) 3.2 MAX232电平芯片介绍10 (10) 3.3 硬件电路设计图 (11) 3.3.1 PC机与单片机通信接口电路设计框图 (11) 3.3.2整体设计原理图 (11) 4软件设计 (12) 4.1上位机程序设计 (12) 4.2下位机程序设计 (13) 5 软硬件调试部分 (21) 5.1 PROTEUS软件仿真 (21) 5.1.1 Protues简介 (21) 5.1.2 Protues仿真电路图 (22) 5.2 VC软件仿真 (21) 结束语 (27) 致谢 (28) 参考文献 (29)

摘要 本文主要描述了利用PC机与AT89C51单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。 关键词:单片机MSCOMM控件VC6.0 AT89C51 温度显示

1引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

上位机与下位机之间通信协议格式

一、通信协议 1、命令帧格式 帧头标志参数校验帧尾 命令字 01累加和 2030 1Byte1Byte2Byte1Byte1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。

2、信息帧格式 帧头标志参数校验帧尾 命令字 2030 02累加和 1Byte1Byte2Byte1Byte1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。

3、数据帧格式 (文件mokuaideng.txt (模块指示灯地址) 20 Byte ) 帧头标志校验帧尾203003累加和数据数据1Byte 16Byte 1Byte 1Byte 1Byte 标志:03 数据帧 文件mokuaideng.txt (模块指示灯地址) 20 Byte 04 数据帧 文件daotongbiao.txt (导通表) 40 Byte 05 数据帧 文件canshu.txt (控制参数) 6 Byte 06 数据帧 校验文件mokuaideng.txt (模块指示灯地址) 20 Byte 07 数据帧 校验文件daotongbiao.txt (导通表) 40 Byte 08 数据帧 校验文件canshu.txt (控制参数) 6 Byte 4、信息帧格式 定位物理针位 下位机-》上位机 上位机-》下位机 点亮指示灯 帧头标志参数校验帧尾203011累加和物理针位1Byte 1Byte 2Byte 1Byte 1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。 标志位 13 ,单点检测 判断单点导通关系是否真确 5、信息帧格式 下位机-》上位机 自检、线检测 帧头标志参数1校验帧尾203012累加和起始针位1Byte 1Byte 2Byte 1Byte 1Byte 参数2终点针位2Byte 参数3状态1Byte 状态:00 导通 01 断路 02 短路/错路

基于C#的串口通信上位机和下位机源程序

基于单片机串口通信的上位机和下位机实践 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 首先亮出C#的源程序吧。 主要界面: 只是作为简单的运用,可以扩展的。 源代码: using System; using System.Collections.Generic; using https://www.wendangku.net/doc/6a14431308.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; using System.Timers; namespace 单片机功能控制 { public partial class Form1 : Form

{ public Form1() { InitializeComponent(); } SerialPort sp = new SerialPort(); private void button1_Click(object sender, EventArgs e) { String str1 = comboBox1.Text;//串口号 String str2 = comboBox2.Text;//波特率 String str3 = comboBox3.Text;//校验位 String str4 = comboBox5.Text;//停止位 String str5 = comboBox4.Text;//数据位 Int32 int2 = Convert.ToInt32(str2);//将字符串转为整型 Int32 int5 = Convert.ToInt32(str5);//将字符串转为整型 groupBox3.Enabled = true;//LED控制界面变可选 try { if (button1.Text == "打开串口") { if (str1 == null) { MessageBox.Show("请先选择串口!", "Error"); return; } sp.Close(); sp = new SerialPort(); sp.PortName = comboBox1.Text;//串口编号 sp.BaudRate = int2;//波特率 switch (str4)//停止位 { case "1": sp.StopBits = StopBits.One; break; case "1.5": sp.StopBits = StopBits.OnePointFive; break; case "2": sp.StopBits = StopBits.Two; break;

基于C#的串口通信上位机和下位机源代码

基于单片机串口通信的上位机和下位机实践串口 Universal Serial Bus或者USB RS232 GPIB兼容的设备也带有RS-232 获取远程采集设备的数据。 bit byte 发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488 202 1200米。 首先亮出C#的源程序吧。

using System; using System.Collections.Generic; using https://www.wendangku.net/doc/6a14431308.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; using System.Timers; namespace 单片机功能控制 { public partial class Form1 : Form { public Form1() {

InitializeComponent(); } SerialPort sp = new SerialPort(); private void button1_Click(object sender, EventArgs e) { String str1 = comboBox1.Text;//串口号 String str2 = comboBox2.Text;//波特率 String str3 = comboBox3.Text;//校验位 String str4 = comboBox5.Text;//停止位 String str5 = comboBox4.Text;//数据位 Int32 int2 = Convert.ToInt32(str2);//将字符串转为整型Int32 int5 = Convert.ToInt32(str5);//将字符串转为整型groupBox3.Enabled = true;//LED控制界面变可选 try { if (button1.Text == "打开串口") { if (str1 == null)

上位机与下位机之间的连接

第一章上位机与下位机 1.1 上位机与下位机的概念 上位机和下位机,一般是指集中控制系统中的PC机和现场的工控机。上位机(PC 机)主要用来发出操作指令和显示结果数据,下位机(工控机)则主要用来监测和执行上位机的操作指令。举个例子,蓄电池生产中,需要按工艺要求进行充电和放电。现场有许多工位,各自配有智能的充放电设备,它们就是“下位机”。整个车间有一台PC机来集中管理,这就是“上位机”。 上位机软件一般用高级语言编程,如BASIC、C,有比较丰富的图形界面。下位机的编程,依所用的MCU而异,以汇编为主。 上位机和下位机之间的通讯,常见是RS-232,RS-485,当然还有很多,但都是串行方式。特别是“一对多”的RS-485用得最普遍。 上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发系统。 另外,上位机和下位机是通过通讯连接的“物理”层次不同的计算机,是相对而言的。一般下位机负责前端的“测量、控制”等处理;上位机负责“管理”处理。下位机是接收到主设备命令才执行的执行单元,即从设备,但是,下位机也能直接智能化处理测控执行;而上位机不参与具体的控制,仅仅进行管理(数据的储存、显示、打印......人机界面等方面)。常见的DCS系统,“集中-分散(集散)系统”是上位机集中、下位机分散的系统。 在概念上,控制者和提供服务者是上位机.被控制者和被服务者是下位机.也可以理解为主机和从机的关系.但上位机和下位机是可以转换的. 两机如何通讯,一般取决于下位机。TCP/IP一般是支持的。但是下位机一般具有更可靠的独有通讯协议,购买下位机时,会带一大堆手册光盘,告诉你如何使用特有协议通讯。里面会举大量例子。一般对编程人员而言一看也就那么回事,使用一些新的API罢了。多语言支持功能模块,一般同时支持数种高级语言为上位机编程。 上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信

上位机与下位机通过蓝牙通讯协议

文档名称:蓝牙通信协议编制审定:解晓飞

目录 1 前言 (2) 2帧定义 (2) 2同步字 (2) 3帧类型 (3) 4通讯流程 (3) 4.1设置采集信息 (3) 4.2采集测试命令 (3) 4.3开始采集、结束采集 (4) 5通信原则 (4)

PDA与下位机蓝牙通讯协议 1 前言 本协议用于定义PDA通过蓝牙与下位机进行数据通信的底层操作。数据传输以信息帧格式传输,且帧长度为非定长信息。 2帧定义 系统中共有三种帧格式,根据类型的不同帧的格式也不同具体定义如下: 3.1、命令帧 3.2 回复帧 3、2数据帧 其中命令帧是由PDA发给单片机的,回复帧和数据帧是由单片机发给PDA 的。 2同步字 为保证数据正确传输,帧格式中设有起始同步字和结束同步字,起始同步字包括两个字节,内容为0xaa、0xaa,结束同步字包括两个字节,内容为0x55、0x55。

3帧类型 类型字包括一个字节,表示发送的数据的类型,本系统中包括三个类型:命令、回复、数据三类。具体定义如下: 4通讯流程 操作过程中PDA均采用主动模式,单片机采用被动模式。 4.1设置采集信息 单片机启动后等待接收蓝牙命令首先进行参数设置,本部分由PDA控制。 PDA发送设置命令(帧类型0x30)并将信息发送到单片机,单片机接收到数据后检测数据个数是否正确,如果检测正确返回接收正确命令否则返回接收错误命令。 如果单片机返回的数据为接收错误,PDA重新发送命令。 从数据发送时起PDA进行计数等待,等待500ms后没有接收到返回值,自动重新发送命令并等待,重复上述操作。 发送三次都没有返回值时弹出警告对话框,提示蓝牙通讯故障。 如发送数据正常则提示设置成功信息对话框。 4.2采集测试命令 1、PDA发送采集命令 PDA发送采集设置命令(帧类型0x30),单片机接收到数据后检测数据是否正确,如果检测错误则返回接收错误命令。PDA接收到单片机返回接收错误回复,PDA重新发送命令。 从数据发送时起PDA进行计数等待,等待500ms后没有接收到返回值(采集数据或错误回复值),自动重新发送命令并等待,重复上述操作。

上位机下位机串口通信

大连海事大学 课程设计报告 课程名称:计算机微机原理课程设计 成员: 成员1:2220133293 范凯锋 成员2:2220132642 唐绍波 成员3:2220130079 曹晓露 设计时间:2016年3月7日至3月18日

考核记录及成绩评定

目录 1.设计任务与要求 (1) 1.1课程设计题目 (1) 1.2课程设计的背景 (1) 1.3课程设计的目的 (1) 1.4课程设计的意义 (1) 1.5设计任务 (1) 2.设计方案 (2) 2.1参数采集和传输设计 (2) 2.2参数显示设计 (2) 2.3模拟信号采样设计 (2)

2.4硬件研制过程 (2) 3.详细设计 (3) 3.1硬件系统框图与说明 (3) 3.2硬件设计 (4) 3.3软件主要模块流程图与说明 (7) 4.设计结果及分析 (8) 5.成员分工及工作情况 (9) 5.1成员分 工 (9) 5.2工作情 况 (9) 5.3实验总结 (9) 6.参考文献 (9) 7. 附录 (10)

一、设计任务与要求 1.1课程设计题目 双机数据采集系统设计 1.2 课程设计的背景 二十一世纪是信息化高速发展的世纪,产业的信息化离不开微型计算机的支持。微型计算机的进步是推动全球信息化的动力。因此在二十一世纪掌握微型计算机接口技术是十分有必要的。本次课题是双机参数采集系统设计,这次课题旨在通过自己对所需功能芯片的设计与实现来巩固以前所学的微机原理课程知识,同时也提高动手实践的能力,还有为将来进行更大规模更复杂的开发积累经验。 随着软件规模的增长,以及随之而来的对软件开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言也不可能完全替代汇编语言的作用。 1.3课程设计的目的 《微机原理与汇编语言》是一门实践性和实用性都很强的课程,本次课程设计是在课程学习结束后,为使学生进一步巩固课堂和书本上所学知识,加强综合能力,充分理解和运用所学到的知识,通过简单的应用系统的设计,提高系统设计水平,启发创新思想。通过本课程设计希望达到以下目地: ?培养资料搜集和汇总的能力; ?培养总体设计和方案论证的意识; ?提高硬件,软件设计与开发的综合能力; ?提高软件和硬件联合调试的能力; ?熟练掌握相关测量仪器的使用方法;

上位机与下位机之间通信编程

摘要 本文主要描述了利用PC机与A T89C51单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。 关键词:单片机MSCOMM控件VC6.0 AT89C51 温度显示

目录 摘要 1 引言 (1) 2 结构设计与方案选择 (2) 2.1设计任务 (2) 2.1.1单片机的选择 (2) 2.1.2电平转换 (2) 2.1.1单片机的选择 (2) 2.1.3单片机与pc机通信原理 (2) 2.2软件方案选择 (2) 2.2.1 上位机编程方案选择 (3) 2.2.2 单片机编程方案选择 (3) 2.3 总体方案选择 (2) 3 硬件设计 (8) 3.1单片机主要特性 (5) 3.2 MAX232电平芯片介绍10 (10) 3.3 硬件电路设计图 (11) 3.3.1 PC机与单片机通信接口电路设计框图 (11) 3.3.2整体设计原理图 (11) 4软件设计 (12) 4.1上位机程序设计 (12) 4.2下位机程序设计 (13) 5 软硬件调试部分 (21) 5.1 PROTEUS软件仿真 (21) 5.1.1 Protues简介 (21) 5.1.2 Protues仿真电路图 (22) 5.2 VC软件仿真 (21) 结束语 (27) 致谢 (28) 参考文献 (29)

1引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

上位机和下位机控制功能对比

【修改】上位机和下位机控制功能对比 本文上位机控制和下位机控制组态软件进行了简单的对比,通过一些典型示例说明了分别适合上位机和下位机控制的场合。 当前组态软件在工业控制中得到了日益广泛的应用。组态软件依据自身的过程数据库,下连各种硬件设备,并通过动态人机界面可以将采集处理的数据展现给用户,或者传递给其他应用程序。其结构如图所示: 图1 组态软件结构图 组态软件的出现,由于其预先提供了各种常用组件和相关设备驱动,一方面将监控系统设计的难度大为降低,开发相关系统的时间也大为缩短,另一方面,由于可以自由连接多种设备,提供了一个平台,用户可以依据需要设计出成本最优的工程。 对于硬件设备,特别是可编程的PLC等硬件,自身具有一定的控制功能,而可以连接PLC等硬件的组态软件也可以通过脚本等执行一定的控制功能,那么控制是交给上位机的组态软件,还是下位机的PLC呢?这里先对两者做一个简单的比较: 下位机控制 下位机可以执行一些相关的控制动作,优点在于其速度快,可靠性高,稳定。其缺点在于受到其自身的限制,对于一些特殊的复杂控制,以及和其他特殊设备相关或者

涉及到关系数据库等控制功能作无法执行。 上位机控制 上位机的组态软件同样可以执行一定的控制动作,其优点在于脚本编写更容易,而且可以方便可执行涉及到多个设备以及关系数据库或者其他数据的控制动作,能充分发挥自身系统的优势。缺点在于有时会遇到上位机和下位机通讯的时间瓶颈,而且通常组态软件运行工控机在其他操作系统上,其稳定性和PLC等有差距。 在实际工程中,应该根据需要来进行相关的控制分布。下面通过一些典型示例进行说明: 适合下位机控制场合 对于一些实时性要求较高,或者上位机和下位机通讯较慢或容易受到干扰的情况下,建议把关键的控制放在下位机执行。比如对于一些典型的水利项目,比如水质监测,其运行监测系统的子站和运行组态软件的中心站可能相距较远,其通讯可能采用数传电台,拨号,GSM,GPRS等方式。在这种情况下,由于其通讯距离远,可能会有些延迟,所以控制功能更多的放在了下位机,而上位机主要负责数据的采集,存储和显示,也可包含一些对下位机的设置功能。 适合上位机控制的场合 对于一些和关系数据库或者多种设备相关的控制功能,单纯的依靠下位机进行控制,可能非常麻烦或者难以实现,这种情况下建议由上位机进行控制。比如车站的灯光控制,需要获取火车的行车信号以及其他数据来进行判断是否亮灯,而行车信号一般存在数据库或者需要从引导系统中获取,这种情况下,如果其控制几乎全部由上位机实现。 在更多的时候,是根据控制功能自身的特点来进行相关设置。下位机和上位机可以根据需要各执行相关部分控制功能,实时性要求较高的控制可以放到下位机,复杂的,关联其他数据的控制可以放在上位机,两者在一起构成一个完备的控制系统。合理的进行分配,不仅可以减少劳动量,而且可以提高工程的健壮性。

上位机与下位机通讯

单片机课程设计 ——上位机与下位机通讯

目录 目录............................................................................................................................... I 1.引言.. (1) 1.1实习目的 (1) 1.2实习要求 (2) 1.3 实验内容 (2) 2.企业参观 (2) 3. C51单片机开发设计 (4) 3.1设计意义 (4) 3.2系统功能设计 (4) 3.2.1功能特点 (4) 3.2.2负责工作 (4) 3.3硬件设计及描述 ........................................................ 错误!未定义书签。 3.3.1时钟与复位模块 ..................................................... 错误!未定义书签。 3.3.2按键选择模块...................................................... 错误!未定义书签。 3.3.3LCD显示模块 ......................................................... 错误!未定义书签。 3.3.4 硬件原理图 (6) 3.4软件设计流程与描述 ................................................ 错误!未定义书签。 3.4.1编程思路简介......................................................... 错误!未定义书签。 3.4.2 程序流程图 (7) 3.4.3 部分程序 (9) 4.心得体会 (12) 5.参考文献 (13)

上位机与下位机通讯

上位机与下位机通讯 ——上位机与下位机通讯 目录 目录...................................................................... ...................... 错误~未定义书签。 1. 引言...................................................................... .................. 错误~未定义书签。 1.1 实习目 的 .................................................................... 错误~未定义书签。 1.2 实习要 求 ..................................................................... (2) 1.3 实验内容...................................................................... ............................... 2 2. 企业参观...................................................................... ............................................ 2 3. C51单片机开发设 计 ......................................................... 错误~未定义书签。

上位机与下位机的定义

学习的路上,越努力越渺小。 ——单片机初学者有很多刚从学校踏入社会的职场新手,在听到前辈们讨论:我们上位机要实现这个功能,你们下位机需要这样配合,之类的话题时都是一脸的蒙:什么是上位机、什么又是下位机。其实在学校都是接触过,只是不知道其在职场应用中的专业名词而已。 上位机通常是指可以直接发出控制命令的计算机,一般是PC/host computer/master computer/upper computer。通常上位机存在可视化的操作界面,例如显示屏,便于使用者进行控制操作。 下位机是直接控制设备、获取设备状态的计算机,一般是PLC、STM32等。通常下位机不为用户所知,有点类似幕后实施者。 上位机与下位机从概念上分析:上位机属于控制者,下位机属于被控制者;从执行角度去分析:上位机属于命令发布者,下位机属于命令实施者。一般工作的流程是:用户通过界面、语音或者按键等操作将用户意图通知给上位机,上位机将用户意图转换为操作命令,通过两者间的通信协议将操作命令传递给下位机,下位机再根据命令去控制对应的相关设备。 上位机与下位机之间的通信通常取决于下位机,通过下位机支持的通信接口,例如:UART、SPI、SCI、I2C、CAN等接口。基于底层接口对通信协议进行设计扩展,可参考各接口标准协议进行开发,亦可根据需求自定义通信协议。 不论是上位机还是下位机,都是可编程设计的。上位机编程,可以选用不同的编程语言,比如:C/C++、C#、JAVA、LABVIEW等。不同的编程语言适用于不同的编程软件,实现出不同风格的监控显示界面。当然使用何种编程语言,主要根据个人爱好、水平以及公司需求。下位机编程通常是嵌入式编程,在硬件资源上进行代码设计,通常使用汇编、C语言、VHDL等等。 下面以一实例描述下上、下位机在项目中的实际功能应用: 上位机:IMAX6,ARM芯片 下位机:STM32F091RC 功能:根据电源电压的变化控制LED0、LED1,提醒操作者工作状态。 通信方式:UART

上位机和下位机的程序

一.上位机程序: 1.添加MScomm控件,并在窗体装入时进行初始化 Private Sub Form_Load() Timer1.Enabled = False MSComm1.InBufferSize = 40 '初始化串口 MSComm1.InBufferCount = 0 MSComm1.InputMode = comInputModeBinary '二进制方式 https://www.wendangku.net/doc/6a14431308.html,mPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.RThreshold = 1 MSComm1.InputLen = 0 '每次读入缓冲区所有字符 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True '打开串口 End If End Sub 2.添加一个命令按钮Command“应用”用于确认信息无误后发送。 Private Sub Command1_Click() Dim A,B A =Check1(0).Value + Check1(1).Value * 2 + Check1(2).Value * 4 + Check1(3).Value * 8 B = Check1(4).Value + Check1(5).Value * 2 + Check1(6).Value * 4 + Check1(7).Value * 8 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True '打开串口 End If MSComm1.OutBufferCount = 0 MSComm1.Output = Chr(CInt(B)) '向单片机发送数据MSComm1.OutBufferCount = 0 MSComm1.Output = Chr(CInt(A)) End Sub 3.添加Text,用于显示单片机返回的数据(在此只是为了演示接收) Private Sub MSComm1_OnComm() If https://www.wendangku.net/doc/6a14431308.html,mEvent = comEvReceive Then Text1.Text = AscB(MSComm1.Input)

上位机与下位机之间通信编程

摘要 本文主要描述了利用PC机与AT89C51单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。 关键词:单片机MSCOMM控件VC6.0 AT89C51 温度显示

目录 摘要 1 引言 (1) 2 结构设计与方案选择 (2) 2.1设计任务 (2) 2.1.1单片机的选择 (2) 2.1.2电平转换 (2) 2.1.1单片机的选择 (2) 2.1.3单片机与pc机通信原理 (2) 2.2软件方案选择 (2) 2.2.1 上位机编程方案选择 (3) 2.2.2 单片机编程方案选择 (3) 2.3 总体方案选择 (2) 3 硬件设计 (8) 3.1单片机主要特性 (5) 3.2 MAX232电平芯片介绍10 (10) 3.3 硬件电路设计图 (11) 3.3.1 PC机与单片机通信接口电路设计框图 (11) 3.3.2整体设计原理图 (11) 4软件设计 (12) 4.1上位机程序设计 (12) 4.2下位机程序设计 (13) 5 软硬件调试部分 (21) 5.1 PROTEUS软件仿真 (21) 5.1.1 Protues简介 (21) 5.1.2 Protues仿真电路图 (22) 5.2 VC软件仿真 (21) 结束语 (27) 致谢 (28) 参考文献 (29)

1引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

上位机与下位机通讯方式的比较

这要看哪种单片机,常用的是串口远距离是rs485,有一些高档的单片机也用CAN总线通信,这种方式汽车上常用。 https://www.wendangku.net/doc/6a14431308.html,/apply/html/2007-12-7/n25043.html 上位机与下位机通信的设计初步 1 引言 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。 2 PC机与单片机8051之间的通信特点 在工业控制系统中,各种数据的采集和执行机构的控制都是由下位机或探测站来完成。由于单片机具有体积小、价格低廉、可应用于恶劣工业环境的特点,在分布式控制系统中大多采用单片机作为下位机来进行数据采集和现场控制。在这些应用中,单片机只是直接面向被控对象底层。而对采集到的数据进行进一步分析和处理的工作是由功能强大的主控PC机来完成的。因此,PC机和单片机之间就有着大量的数据交换。 3 PC机与单片机8051通信的硬件设计 通常PC机和单片机之间的通信是通过串行总线RS-232实现的。因此采用一种以MAX232为核心的通信接口电路。该接口电路适用于由一台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

上位机与下位机通信设计

1 引言 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。 2 PC机与单片机8051之间的通信特点 在工业控制系统中,各种数据的采集和执行机构的控制都是由下位机或探测站来完成。由于单片机具有体积小、价格低廉、可应用于恶劣工业环境的特点,在分布式控制系统中大多采用单片机作为下位机来进行数据采集和现场控制。在这些应用中,单片机只是直接面向被控对象底层。而对采集到的数据进行进一步分析和处理的工作是由功能强大的主控PC机来完成的。因此,PC机和单片机之间就有着大量的数据交换。 3 PC机与单片机8051通信的硬件设计 通常PC机和单片机之间的通信是通过串行总线RS-232实现的。因此采用一种以MAX232为核心的通信接口电路。该接口电路适用于由一台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单片机的通信协议为:

上位机和下位机通讯代码

#include #include #define led P1 unsigned char RX_FLAG; unsigned char TX_FLAG; unsigned char j=0;//j=0; unsigned char ch[30]; unsigned char dda[13]; //串口接收中断函数 void serial () interrupt 4 using 3 { unsigned char chh; if(RI) //接收中断{ EA=0; if(TX_FLAG==0) { chh=SBUF; if(chh == 0xCC) { RX_FLAG = 1; } if(chh == 0xFF) { TX_FLAG=1; } } else { led =ch[28]; ch[j]=SBUF; j++; if(j==30) { j=0; TX_FLAG=0; } dda[0]=ch[1]*256+ch[0]; //整形 dda[1]=ch[3]*256+ch[2]; dda[2]=ch[5]*256+ch[4]; dda[3]=ch[7]*256+ch[6]; dda[4]=ch[9]*256+ch[8];

dda[5]=ch[10]; //字符 dda[6]=ch[11]; dda[7]=ch[12]; dda[8]=ch[13]; dda[9]=(ch[17]*256+ch[16])+(ch[15]*256+ch[14])/1000; //浮点 dda[10]=(ch[21]*256+ch[20])+(ch[19]*256+ch[18])/1000; dda[11]=(ch[25]*256+ch[24])+(ch[23]*256+ch[22])/1000; dda[12]=(ch[29]*256+ch[28])+(ch[27]*256+ch[26])/1000; } EA=1; RI=0; //清除接收中断标志位 } } void init_serialcomm(void) { SCON = 0x50; //SCON: 串口工作方式1,允许接收 TMOD |= 0x20; //TMOD: 定时器1的工作方式2 PCON |= 0x80; //SMOD=1; TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz IE |= 0x90; //开总中断,开串口中断 TR1 = 1; // 开启定时器1 } //延时函数 void delay (void) { unsigned int i; for(i=0;i<5000;i++); } //向串口发送一个字符 void send_char_com(unsigned char ch) { SBUF=ch; while(TI==0); TI=0; } void send_int_com(unsigned int zhengshu) //发送整型,2字节数

上位机下位机 无线模块资料

上位机和下位机,一般是指集中控制系统中的PC机和现场的工控机。上位机(PC机)主要用来发出操作指令和显示结果数据,下位机(工控机)则主要用来监测和执行上位机的操作指令。举个例子,蓄电池生产中,需要按工艺要求进行充电和放电。现场有许多工位,各自配有智能的充放电设备,它们就是“下位机”。整个车间有一台PC机来集中管理,这就是“上位机”。 上位机软件一般用高级语言编程,如BASIC、C,有比较丰富的图形界面。下位机的编程,依所用的MCU而异,以汇编为主。 上位机和下位机之间的通讯,常见是RS-232,RS-485,当然还有很多,但都是串行方式。特别是“一对多”的RS-485用得最普遍。 上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发系统。在概念上 控制者和提供服务者是上位机 被控制者和被服务者是下位机 也可以理解为主机和从机的关系 但上位机和下位机是可以转换的 两机如何通讯,一般取决于下位机。TCP/IP一般是支持的。但是下位机一般具有更可靠的独有通讯协议,购买下位机时,会带一大堆手册光盘,告诉你如何使用特有协议通讯。里面会举大量例子。一般对编程人员而言一看也就那么回事,使用一些新的API罢了。多语言支持功能模块,一般同时支持数种高级语言为上位机编程。 无线传输

上位机和下位机的定义

上位机 上位机是指人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转 在概念上 控制者和提供服务者是上位机 被控制者和被服务者是下位机 也可以理解为主机和从机的关系 但上位机和下位机是可以转换的 工作原理 两机如何通讯,一般取决于下位机。TCP/IP一般是支持的。但是下位机一般具有更可靠的独有通讯协议,购买下位机时,会带一大堆手册光盘,告诉你如何使用特有协议通讯,里面会举大量例子,一般对编程人员而言一看也就那么回事,使用一些新的API罢了。多语言支持功能模块,一般同时支持数种高级语言为上位机编程。 通常上位机和下位机通讯可以采用不同的通讯协议,可以有RS232的串口通讯,或者采用RS485串行通讯,当用计算机和PLC

通讯的时候不但可以采用传统的D形式的串行通讯,还可以采用更适合工业控制的双线的PROFIBUS-DP通讯,采用封装好的程序开发工具就可以实现PLC和上位机的通讯。当然可以自己编写驱动类的接口协议控制上位机和下位机的通讯。 通常工控机,工作站,触摸屏作为上位机,通信控制PLC,单片机等下位机,从而控制相关设备元件和驱动装置。 下位机 下位机是直接控制设备获取设备状况的的计算机,一般是PLC/ 单片机之类的。 上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别,但万变不离其宗。上下位机都需要编程,都有专门的开发系统。 在概念上,被控制者和被服务者是下位机。 两机如何通讯,一般取决于下位机。TCP/IP一般是支持的。但是下位机一般具有更可靠的独有通讯协议。

相关文档
相关文档 最新文档