没有合适的资源?快使用搜索试试~ 我知道了~
单片机通信协议处理(状态机).docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 131 浏览量
2023-02-20
17:59:53
上传
评论
收藏 39KB DOCX 举报
温馨提示
试读
5页
..
资源推荐
资源详情
资源评论
单片机通信协议处理
现在大部分的仪器设备都要求能过通过上位机软件来操作,这样方便调试,
利于操作。其中就涉及到通信的过程。在实际制作的几个设备中,笔者总结出了
通信程序的通用写法,包括上位机端和下位机端等
1. 自定义数据通信协议
这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信
的物理层就是指我们通常所用到的 RS232、RS485、红外、光纤、无线等等通信
方式。在这个层面上,底层软件提供两个基本的操作函数:发送一个字节数据、
接收一个字节数据。所有的数据协议全部建立在这两个操作方法之上。
通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称
作为一帧数据。类似于网络通信中的 TCPIP 协议一般,比较可靠的通信协议往
往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、
校验码、帧尾。
帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组
成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的
匹配机会,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的机会最
小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。
通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预
测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几
率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字
节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但可以使匹配几率
大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝
大多说情况下比较可靠。
地址信息主要用于多机通信中,通过地址信息的不同来识别不同的通信
终端。在一对多的通信系统中,可以只包含目的地址信息。同时包含源地址和目
的地址则适用于多对多的通信系统。
数据类型、数据长度和数据块是主要的数据部分。数据类型可以标识后
面紧接着的是命令还是数据。数据长度用于指示有效数据的个数。
校验码则用来检验数据的完整性和正确性。通常对数据类型、数据长度
和数据块三个部分进行相关的运算得到。最简单的做法可是对数据段作累加和,
复杂的也可以对数据进行 CRC 运算等等,可以根据运算速度、容错度等要求来
选取。
2. 上位机和下位机中的数据发送
物理通信层中提供了两个基本的操作函数,发送一个字节数据则为数据
发送的基础。数据包的发送即把数据包中的左右字节按照顺序一个一个的发送数
据而已。当然发送的方法也有不同。
在单片机系统中,比较常用的方法是直接调用串口发送单个字节数据的
函数。这种方法的缺点是需要处理器在发送过程中全程参与,优点是所要发送的
数据能够立即的出现在通信线路上,能够立即被接收端接收到。另外一种方法是
采用中断发送的方式,所有需要发送的数据被送入一个缓冲区,利用发送中断将
缓冲区中的数据发送出去。这种方法的优点是占用处理器资源小,但是可能出现
需要发送的数据不能立即被发送的情况,不过这种时延相当的小。对于 51 系列
单片机,比较倾向于采用直接发送的方式,采用中断发送的方式比较占用 RAM
资源评论
xxpr_ybgg
- 粉丝: 6507
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功