温度监控系统的设计(一)(4)

时间:2017-08-13 我要投稿
; 通信协议的设计
 由于温度采集和实施控制是通过单片机控制系统实现,而微机完成温度监控,所以需要采用单片机和微机之间的通信协议。本设计应用条件为传输距离不超过15米的短距离数据传输,且传输数据量较小,所以采用在控制领域里应用较广泛RS232C串行通信方式。
    针对近程小批量的数据通信,设计时采用3 线制(RXD ,TXD ,GND)软握手的零MODEM方式。即:将PC机和单片机的“发送数据线(TXD)”与“接收数据(RXD)”交叉连接,二者的地线(GND)直接相连而其它信号线如握手信号线均不用,而采用软件握手。这样即可以实现预定的任务,又可以简化电路设计节约了成本。
 由于RS232C是早期为促进公用电话网络进行数据通信而制定的标准,其逻辑电平与TTL, MOS 逻辑电平不同。逻辑0 电平规定为+5~+15V之间,逻辑1是电平为-5 ~-15V 之间。因此在将PC机和单片机的RXD和TXD交叉连接时,必须进行电平转换。
 下图即为通信时的硬件连接图,其中器件MAX232完成逻辑电平转换的任务。

 
图6.1 电平转换电路图

 注:在PC机中9针RS232接口中:2线:RXD, 3线:TXD, 5线:GND
 而在25针的RS232接口中:3线:RXD, 2线:TXD, 7线:GND
 
6.1 软件设计
 在进行数据通信的软件设计时,必须解决好两个方面的问题:一是可靠性,二是速度。而这两方面的问题,可靠性是第一位的,速度只能是在可靠的基础上的速度。可靠快速转输的实现,需要PC-单片机软件以及通信协议等各个环节的可靠和其间的相互配合。
6.1.1 通信协议概述
 在设计PC-单片机通信协议时,需说明一点:在本系统的实际通信中,PC机是主控者单片机只是被动接收者。采用这种通信协议较双方互为主控者时简单。
 本通信协议的设计思想是基于帧传输方式。即在向RS232串口发送命令信号,应答信号及数据信号时,是一帧一帧地发送的。为了使数据快速可靠地传输,将每一帧数据唯一对应一命令帧。此时传输数据即执行命令具体如下:
 (1) 在PC读数据时,遵循“读命令-等数据-报告”,即PC下达一命令,等待接收数据,根据所接收数据的正误向应用程序报告此命令的执行情况。
 (2) 在PC写数据时,遵循“写命令-等回应-报告”,即PC下达一写命令(此时所要写的数据含于此命令中),等待单片机发来的“已正确接收”的回应信号,并向应用程序报告此命令执行完毕。
 (3) 如果在转输过程中,其间PC或MCU所接收任何一帧信号出现错误时,均会向对方发送重发此帧信号的请求。如果连续三次转输失败,则退出通信并向应用程序报告。
 
6.2 通信协议说明
6.2.1信号帧分类
(1) 读命令帧:当PC读数据时,PC向PIC16F877A发送的命令信号。
(2) 写命令帧:当PC写数据时,PC向PIC16F877A发送的命令信号(内含所要写的数据)。
(3) 数据帧:当PC读数据时,PIC16F877A向PC发送的内含数据信息的信号。
(4) 正回应帧:当PC写数据时,PIC16F877A向PC报告数据已正确接收的信号。
(5) 重发命令帧:当PC读/写数据时,PIC16F877A所接收的信号帧(读/写命令帧)有误时向PC发出的请求重发信号。
(6) 放弃命令帧:当PC读/写数据时出现了使程序无法正常执行时PC或PIC16F877A向对方发出的退出通信的通知信号。
6.2.2信号帧格式
(1) 读命令帧格式
 帧头标志  帧类型  器件地址  起始地址 
 长度  校验和  帧尾标志 
帧头标志(1 Bit): 表示此数据包属于本串口通信协议,并为是否接收此包数据的标志。
帧类型(1 Bit): 所用信号帧的识别标志,即1.2.1 信号帧分类中的各类型信号的标志字节。
器件地址(1Byte): PC所要访问的外部器件的地址即是哪一个外部器件。
起始地址(2Byte): PC所要访问的器件的存贮器起始地址。
长度(1Byte): 一次命令所转输的数据长度。
校验和(1Byte): 此帧信号的校验字节,为异或校验。
帧尾标志(1Byte): 此帧信号的结束标志。
(2) 写命令帧
帧头标志 帧类型 器件地址 起始地址 
长度 数据区 校验和 帧尾标志 
数据区:所要写的数据信息。其它分析同上。
(3) 数据帧
帧头标志 帧类型 长度 数据区 校验字 帧尾标志 
长度:所转输数据的长度。
数据区:所转输的数据信息。其它分析同上。
(4) 正响应帧
帧头标志 帧类型 空 校验字 帧尾标志 
空无意义:为了PIC16F877A编程的方便而加入。其它分析同上。
(5) 重发帧
帧头标志 帧类型 空 校验字 帧尾标志 
其它分析同上。
(6) 放弃帧
帧头标志 帧类型 错误码 校验字 帧尾标志 
错误码:
 00H   执行PC命令发放弃帧回应被动退出通讯。
 01H   PIC16F877A 单片机方写入芯片发生错误主动通知PC退出通讯。
6.2.3 通信协议处理流程
(1) 数据分帧与数据重组

图6.2.1串口数据发送过程

                          图6.2.2串口数据接受过程

 将应用程序发送过来的数据作为一个数据流放在发送缓冲区中,通过通信协议进行分帧──切割──发送。在接收端,分帧的数据去掉帧头重新组合到接收缓冲区中,交给应用程序处理,发送过程的示意如图6.2.1,接收过程的示意图如图6.2.2。
单片机串口通信软件设计流程图

                        图6.2.3单片机串口通信软件流程图

PC接收数据软件设计流程

图6.2.4 PC串口通信软件设计流程图

6.3 PC 上位机的软件设计
6.3.1 PC软件设计方法的选择
 

温度监控系统的设计(一)(4)相关推荐
最新推荐
热门推荐