是主控者单片机只是被动接收者。采用这种通信协议较双方互为主控者时简单。
本通信协议的设计思想是基于帧传输方式。即在向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) 放弃帧
帧头标志 帧类型 错误码 校验字 帧尾标志 错误码:
上一篇:
毕业论文基于vfp图书管理系统
下一篇:
临床前药物安全性评价中毒性病理学新技术的应用