51单片机串口通信模板_基于51单片机的串行通信协议的实现

本文详细阐述了基于51单片机的串行通信协议设计,包括数据包格式分析、有限状态机的应用、上位机与下位机的数据交互,以及如何通过单片机实现发送接受、协议解析。重点介绍了数据帧的构成和通信过程的通用编程方法。
摘要由CSDN通过智能技术生成

龙源期刊网

http://www.qikan.com.cn

基于51单片机的串行通信协议的实现

作者:曾增烽

来源:《硅谷》

2009

年第

13

[

摘要

]

首先分析数据通信协议数据包的一般格式

,

然后采用有限状态机的算法实现单片机与

上位机之间的串行通信协议

,

包含上下位机的数据发送接受和协议的解析实现

,

并给出具体的实

现方法。

[

关键词

]51

单片机串口通信协议上位机下位机

中图分类号

:TN91

文献标识码

:A

文章编号

:1671-7597(2009)0710022-01

一、引言

数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我们通常所用

到的

RS232

RS485

、红外、光纤、无线等等通信方式。在这个层面上

,

底层软件提供两个基本

的操作函数

:

发送一个字节数据、接收一个字节数据。所有的数据协议全部建立在这两个操作

方法之上。通信中的数据往往以数据包的形式进行传送的

,

我们把这样的一个数据包称作为一

帧数据。类似于网络通信中的

TCP/IP

协议一般

,

比较可靠的通信协议往往包含有以下几个组成

部分

:

帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾

[1][2]

。现在大部分的仪

器设备都要求能过通过上位机软件来操作

,

这样方便调试

,

利于操作。其中就涉及到通信的过程

,

本文给出了串行通信协议的具体实现

,

总结出了通信程序的通用写法

,

包括上位机端和下位机端

等。

二、上位机和下位机中的数据发送

物理通信层中提供了两个基本的操作函数

,

发送一个字节数据则为数据发送的基础。数据

包的发送即把数据包中的左右字节按照顺序一个一个的发送

[3]

。在单片机系统中

,

比较常用的

方法是直接调用串口发送单个字节数据的函数。另外一种方法是采用中断发送的方式

,

所有需

要发送的数据被送入一个缓冲区

,

利用发送中断将缓冲区中的数据发送出去

[4]

。对于

51

系列单

片机

,

比较倾向于采用直接发送的方式

,

采用中断发送的方式比较占用

RAM

资源

,

而且对比直接

发送来说也没有太多的优点。以下是

51

系列单片机中发送单个字节的函数

[5]

void SendByte(unsigned char ch){

SBUF = ch;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值