基于RS-485的通信协议设计

  • 格式:doc
  • 大小:173.00 KB
  • 文档页数:10

哈尔滨华德学院课程设计用纸

- 1 - 第1章 绪论

1.1 设计要求

1、确立一个温度数据采集系统方案

2、数据采集部分硬件设计

3、编程实现温度数据的采集与用LCD显示当前温度

4、设计采集模块与PC通信的硬件电路以及通信协议。

1.1.1 设计题目和设计指标

设计题目:数据采集模块设计

设计指标:

1.数据显示

2.单片机模拟量采集

3.RS-485通信接口设计

4.通信协议设计

1.1.2 设计功能

主要功能:

实现数据采集,并将采集的信息显示在输出设备上,并通过总线传输出去。

哈尔滨华德学院课程设计用纸

- 2 - 第2章 系统总体设计方案

总体设计思路是该系统分为两分,第一部分是系统前端,该部分包括温度数据采集和数据显示两部分(由于我们采用DS18B20数字温度传感器,所以不需要数模转换部分。随着数字信号处理技术的发展,很多传感器都有数模转换功能)。第二部分是系统后台,该部分包括RS-485总线传输网络,RS232/485转换器和PC机三部分。

2.1、工艺流程图

基于RS-485总线的数据采集系统在现实中应用广泛。RS-485总线的接线少,成本低,通信距离长,最大传输距离可达1.2Km,最大可以连32个驱动器和收发器,最大传输速率可达到2.5Mb/s,由此可见RS-485是高速传输,远距离,多点通讯制定的标准,因此本次设计选用RS-485串行通信标准。

RS-485总线

基于RS-485总线的温度采集网络

由于时间有限,我们对课设要求进行具体分析以后,仅以基于RS-485总线的温度数据采集网络为例,对基于RS-485总线的数据采集网络工作流程作以诠释。

PC/PLC

RS232/485转换器

数字温度传感器 数字湿度传感器 数字速度传感器 哈尔滨华德学院课程设计用纸

- 3 -

基于RS-485总线的温度数据采集网络工作流程图

2.2、方框图工作流程介绍

数字温度传感器

DS18B20 AT89C51单片机 LCD1602液晶

RS-485传输电路

虚拟终端器(模拟PC/PLC) 哈尔滨华德学院课程设计用纸

- 4 -

N

Y

Y

N

N

Y

系统程序流程图

开始

等待延时

计算校验和并加入

虚拟终端器显示 LCD显示 DS18B20初始化正确?

发送数据缓冲区中数据 DS18B20正常 DS18B20异常

读取当前温度 LCD忙状态?

数据是否发送完? 哈尔滨华德学院课程设计用纸

- 5 -

第3章 硬件设计和器件的选择

3.1、系统电器接线图

哈尔滨华德学院课程设计用纸

- 6 -

3.2、器件选择

数字温度传感器DS18B20,灵敏度高,自带A/D转换模块,价格便宜

AT89C51应用广泛,技术成熟

第5章 系统软件设计

温度采集与显示部分

通信协议部分

/*******************************************************哈尔滨华德学院课程设计用纸

- 7 - ************/

/*向PC远程发送数据,先校验*/

/*******************************************************************/

uchar calc_chksum(uchar *buf,uchar counter)

{

uchar resu;

uchar i;

resu=0;

for(i=0;i

{

resu+=buf[i];

}

return resu;

}

/**********************只发送不接收**********************************/

void send_frame(void)

{

uchar i;

uchar chksum;

uchar cmd;

send_buf[0]=0xCC; //起始字节

send_buf[1]=(uchar)(meter_id>>8 ); //发送表号高八位

send_buf[2]=(uchar)(meter_id&0xff); //发送表号低八位

send_buf[3]=(uchar)(romm_id>>8 ); //发送房间号高八位

send_buf[4]=(uchar)(romm_id&0xff); //发送房间号低八位

send_buf[5]=cmd; //命令字节

send_buf[6]=data_len; //发送数据域长度

for(i=0;i

{

send_buf[7+i]=data_buf[i]; //将数据填到发送缓冲中

}

chksum=calc_chksum(&send_buf[0],data_len+7); //计算校哈尔滨华德学院课程设计用纸

- 8 - 验和

send_buf[7+data_len]=chksum;

send_buf[8+data_len]=0xDD; //结束字节

for(i=0;i<8+data_len;i++) //发送数据

{

SBUF=send_buf[i];

while(0==TI);

TI=0;

}

}

结论

单回路控制系统结构简单,维护方便,造价低,所以我们对题目所要求的单回路控制系统没有进行改进。我们只是对PID控制仿真框图中的PID参数用实验法和理论计算整定法进行了严格的整定。

方案一、基于数字控制器AI818的温度控制系统,设置PID参数方法简单,直接用操作面板上的PV和SV即可设置成功。控制系统稳定,控制器为反作用,静态放大系数Kc取负,温度越高,控制器输出越小,温度模块减小加热功率,阻止温度进一步上升,缺陷是在环境温度较高时,如果给定值较低(低于环境温度),控制器没有调节能力。

方案二、基于单片机AT89C51和DS18B20的温度控制系统,通过编程实现PID控制。在现实中,尽管该系统有价格优势,但是控制系统不够稳定,在正确建立PID控制仿真框图的前提下,编写PID程序相当复杂。系统的电路图也相对较复杂。

心得体会

在课设的前一个星期,我们一直忙于考试,延缓了课设进度,而且一直在为选择方案问题纠结。尽管方案二的部分功能没有完全实现,但是本次课设使我们在编程和了解电路特性方面有很大哈尔滨华德学院课程设计用纸

- 9 - 进步,我们一共编写四个程序,修改之后生成了八个hex文件,其中一个汇编程序,三个C语言程序,参考了许多书本上和网上的资料。这些程序中有的编译一直有问题,有的编译正确,没有实现应有的功能,只有最后一个程序相对较好。本次课设提高了我们综合运用有关专业知识的能力和实际动手能力,对毕业设计的帮助较大。遗憾的是我们没有足够的时间去焊实物,没有实现最初的设想。

致谢

感谢在两周课设时间里一直陪伴并指导我们的孙平老师、姜滨老师、徐秋景老师、计京鸿老师,每当我们遇到自己解决不了的问题的时候,几位老师一直为我们指点迷津,再次对他们致以深深的谢意。

参考文献

1.《单片机原理及应用》 人民邮电出版社

2.《模拟/数字电路》 高等教育出版社

3.《工业控制网络》 机械工业出版社

哈尔滨华德学院课程设计用纸

- 10 -

附录、基于单片机AT89C51和DS18B20的温度控制系统运行效果图