单片机串口通信的设计教学文案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1引言

随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGSWinCC等。KingView软件基于Microsoft Win dows XP ,Ni y2000操作系统.具有友好的人机操作界面、强大的10设备端口驱动能力,可与各种PLC智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。

2组态王与单片机的串口通讯方法

目前,组态王与单片机的通信多是通过动态数据交换(DDE)或通过自己开发通讯驱动程序完成。DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。但不可靠和非实时。而自己开发通讯驱动程序会带来设计困难,增加系统开发周

期,可行性不高。组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。

3 PC机与单片机的硬件接口电路

图1为上位PC机与下位单片机80C51的连接电路。PC机与单片机本

身都自带串行通讯接口,但由于在分布式系统中PC机与各单片

机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。RS-485采用差分式传输信号,最大传输距离为1 219 m最大传输速率为10 Mb^s.对同时出现的两条信号线A、B的干扰有较强的抑制能力。当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而

言,用双绞线可获得较强的抗干扰能力。RS-485采用二线与四线平

衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上

接电阻(约120 Q)。

由于80C51系列单片机STC89C5串行接口的,TTL电气特性与RS-485电气特性不相符,STC89C52不能与RS-485直接连接,需要电

气转换。这里采用Maxim公司的MAX485图2为其接口电路。

图2 STC89C52与MAX紹亦筋農驻睦

图2中,MAX485的RE和DE南STC89C52单片机的P1. 7控制。由于MAX48以半双工的方式工作,因此由P1.7控制其发送与接收。

当P1 . 7为高电平时,驱动器使能而接收器为高阻态,此时可发送数据;而当P1. 7为低电平时.接收器使能而驱动器为高阻态,此时接收数据。另外由于PC机的COM口是基于RS-232的串行通讯口.其电气特性与RS-485不一致,因此也需电平转换。

图3为单片机地址设置电路,单片机STC89C52勺P1 口的低4位用于设定本机地址,通过4位DIP开关的组合最多可设定16种地址。如当4位开关全部断开时,对应的本机地址是11 11。下位单片机在

开始工作前需先设定自己的地址,这样,在开机自检时下位单机片就能获

取本机地址。

+5V

SW DIP-4 lkn lk£)

IkQ J lkQ

4n~o>

Pl. 1

PL 2>

P T7T

>

图3单片机地址设並lUn路严氷袒4系统通讯协议设计

组态王提供了通过PC机与单片机串口进行十六进制数据通讯的驱

动,而驱动中已经规定好其通讯协议。

4. 1通讯参数

通讯参数包括数据位、停止位、波特率、校验方式。其中,数据位、停止位、波特率由单片机决定。组态王中的设定和单片机一致即可。校验方式参照“数据传输格式”部分。

4. 2数据传输格式与协议说明

格式1组态王发送地址请求格式(检验位为1):

格式2单片机应答地址格式(检验位为0):

格式3组态王读数据请求格式(检验位为0):

格式4单片机应答读数据格式(正确)(检验位为0):

ACK i )ataLong Data-*EH CRC

el e dansccm t

格式5单片机应答读数据格式(错误)(检验位为0):

格式7单片机应答写数据格式(正确)(检验位为0):

协议具体说明如下:

ENQ头):H05, 询问, 请求帧的开始代码;

ACK头):H06, 确认, ACK应答帧的开始代码;

NAK头):H15, 否认, NAK应答帧的开始代码;

EOT尾):H04, 正文的结束,请求帧的结束ASCII代码;

ETX(尾):H03, 结束正文,应答帧的结束ASCII代码;

数据传输: 所有数据均为16进制数;

Sta :设备地址,1个字节,组态王设备地址范围为0〜255,此

地址为单片机的地址,由单片机中的程序决定;

R:读标志,1个字节(0x52);

W写标志,1个字节(0x57);

DataType :需要交换的数据类型,1字节。其中“ 1”代表字节, “2”代表字,“ 3”代表浮点型;

DataNum读取数据的个数,1字节;

DataAddr :数据偏移地址,2字节,低字节在前,高字节在后;

Data :实际传输的数据,低字节在前,高字节在后;

DataLong:单片机返回Data的字节数,2字节,低字节在前,高字节在后:

CRC为从第1个字节至CRC前的所有字节的异或值,1字节;

ErrorCode :错误代码,“ 0”代表正确应答,“1”代表数据类型错误,“ 2”代表数据范围超限,“ 3”代表指令无法识别。

5单片机通讯程序流程设计

图4为组态王程序流程,图5为单片机通讯程序流程。80C51系列单片机多机通讯可归纳如下:

相关文档
最新文档