模拟串行通讯(自定义通信协议)

本文由用户“麻花物”分享发布 更新时间:2022-12-12 09:07:56 举报文档

以下为《模拟串行通讯(自定义通信协议)》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

???模拟串行通讯(自定义通信协议)

作业1

模拟串行通讯

一、作业背景

题目:模拟串行通讯

一、题目:通过数字通道进行两个计算机系统的通讯

二、目标:设计、实现一个用于数字通道串行通讯的协议

三、思路与方法

1.硬件

计算机1

计算机

2 GND

CLK

DTA

2.软件

CLK上升沿检测DTA的值,作为1bit,存入寄存器中。

3.编写程序并测试

二、课程作业方案设计

(一)自定义协议格式

START帧头数据长度标识数据数据效验帧尾1Byte1Byte1Byte1Byte1Byte2Byte1Byte 0x530xFE0x010xDD0x0D0C0xFF

1、起始标志:协议数据帧开始的标志,保留字为0x53。

2、帧头:同其他设备通信时首要的一致性保证,此次为0xFE。

3、数据长度:表示当前数据包的大小。

4、标识:可以自定义,对于不同的数据包,采用不同的标识。比如当为温度采

样问题时,该为温度采集器序号。当为湿度采样问题时,该为湿度采

集器序号。

5、真实数据:发送的数据内容,对于温度采样问题。

6、数据校验:根据前述数据所得的CRC32校验码。

7、结束标志:即帧尾,协议数据结束的标志,保留字为0xFF。

(二)、自定义协议详解

//

1、自定义协议采用的是端到端的通信。

2、自定义的通信协议采用2条信号线,1条时钟线(CLK)和1条数据线(DTA),属于串行半双工通信。每个从设备有自己的标识、帧头、数据、数据长度、数据校验、帧尾,主设备发送START信号(0x53)后,紧跟着发送想要数据的帧头(0xFE),当验证了帧头之后,该数据包即是我们所需的对应数据包。

3、CLK上升沿检测DTA的值,作为1bit,存入寄存器中。没有数据传输时,DAT上恒保持高某某。

4、START信号:当检测到DAT的值为0x53时,开始传输数据。

5、帧头:0xFE—>即在CLK时钟的8个周某某,此时传输了8bit数据为1111 1110时(即0xFE),该数据包即是正确的数据包,在第一个字节后,主机立即读从机,开始接收该数据包。

6、STOP信号:当时钟线为高时,数据线上跳会产生停止信号,即为该数据包的帧尾(0xFF)。

三、课程作业实施

1、发送方法:

按照协议的要求去组织数据,把数据装入发送缓冲区,采用中断发送的方式,所有需要发送的数据被送入一个缓冲区,利用发送中断将缓冲区中的数据发送出去。这种方法的优点是占用处理器资源小,但是可能出现需要发送的数据不能立即被发送的情况,不过这种时延相当的小。

2、下位机中的数据接收和协议解析:

下位机接收数据采用中断接收。数据包的解析过程可以设置到不同的位置。如果协议比较简单,整个系统只是处理一些简单的命令,那么可以直接把

数据包的解析过程放入到中断处理函数中,当收到正确的数据包的时候,置位相应的标志,在主程序中再对命令进行处理。如果协议稍微复杂,比较好的方

式是将接收的数据存放于缓冲区中,主程序读取数据后进行解析。

3、数据包:

(1)数据包某某:

数据包(8个字节)=起始标志(1个字节)+帧头(1个字节)+数据长度(1个字节)+标识(1个字节)+数据(1个字节)+校验(2个字节,高某某在前)+帧尾(1个字节)

(2)通信处理方式:

中断接收/发送+缓冲区

(3)协议的实现:

①接收:我是在接收中断去实现协议功能的,即每接收中断一次(接收到一个字节)的时候,按照协议的要求去进行处理,如果这帧数据是正确的就置位Flag标志位,在大循环中再去进命令的解析,错误时则丢弃。

②协议解析的目的,首先判断数据包的完整性,正确性 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 ine==8)

{

if(sumchkm==rcvdat)//判断累加和是否相等

state_machine=9;

else

state_machine=0;

}

else if(state_machine==9)

{

if(xorchkm==rcvdat)//判断异或校验和是否相等

state_machine=10;

else

state_machine=0;

}

else if(state_machine==10)

{

if(0x0D==rcvdat)//判断是否接收到帧尾结束符{

flag=0xaa;//置标志,表示一个数据包接收到

state_machine=0;//复位状态机}

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《模拟串行通讯(自定义通信协议)》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览