单片机通信协议处理(状态机).docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
单片机通信协议处理(状态机) 本文主要讨论了单片机通信协议处理的通用写法,包括上位机端和下位机端的通信协议处理。通信协议处理是指在物理层之上建立的通信数据包格式,通过自定义数据通信协议来实现设备之间的数据交换。 一、自定义数据通信协议 自定义数据通信协议是建立在物理层之上的通信数据包格式。物理层是指 RS232、RS485、红外、光纤、无线等等通信方式。底层软件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全部建立在这两个操作方法之上。 数据包的组成部分: * 帧头:用于数据包完整性的判别,通常选择一定长度的固定字节组成。 * 地址信息:用于多机通信中,通过地址信息的不同来识别不同的通信终端。 * 数据类型:标识后面紧接着的是命令还是数据。 * 数据长度:用于指示有效数据的个数。 * 数据块:主要的数据部分。 * 校验码:用于检验数据的完整性和正确性。 二、上位机和下位机中的数据发送 在上位机和下位机中,数据发送的方式有多种。上位机中可以使用串口通信的方式,例如使用 windows 系统中自带的串口通信控件、使用系统的 API 直接进行串口数据的读取、使用串口类进行串口操作。 在下位机中,数据发送可以使用直接发送的方式或中断发送的方式。直接发送的方式可以立即将数据发送出去,但需要处理器在发送过程中全程参与。中断发送的方式可以占用处理器资源小,但可能出现需要发送的数据不能立即被发送的情况。 三、下位机中的数据接收和协议解析 下位机中的数据接收可以使用等待接收或中断接收的方式。等待接收的方式需要处理器一直查询串口状态,来判断是否接收到数据。中断接收的方式可以占用处理器资源小,但需要在中断处理函数中对数据进行解析。 数据包的解析过程可以设置到不同的位置。如果协议比较简单,可以直接把数据包的解析过程放入到中断处理函数中,当收到正确的数据包的时候,置位相应的标志,在主程序中再对命令进行处理。 单片机通信协议处理是指在物理层之上建立的通信数据包格式,通过自定义数据通信协议来实现设备之间的数据交换。包括上位机端和下位机端的通信协议处理,数据发送和数据接收的方式,数据包的组成部分和解析过程等。
- 粉丝: 6747
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助