没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式系统中串口通信帧的同步方法
4星 · 超过85%的资源 需积分: 19 10 下载量 193 浏览量
2011-07-22
16:21:02
上传
评论
收藏 355KB DOC 举报
温馨提示
试读
7页
串口通信是日前单片机和DSP等嵌入式系统之间,以及嵌入式系统与PC机或无线模块之间的一种非常重要且普遍使用的通信方式。在嵌入式系统的硬件结构中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同时还要处理随时发生的各种中断,因而嵌入式系统中的串口通信程序设计与PC机有很大的不同。若嵌入式系统中.中断服务子程序在系统运行过程中占用了较多的时间,就有可能在中断眼务子程序正运行时,又产生一个同类型或其他类型的中断,从而造成主程序得不到执行或后续中断数据丢失。所以,嵌入式系统中的串口通信虽然看似简单,但其中仍有许多问题值得研究,例如串口通信过程中的帧同步问题。本文针对该问题给出了逐次比较、基于FIFO队列和基于状态机的3种帧同步方法。通过测试、分析和比较得出,基于有限状态机的方法是嵌入式系统串口通信中很有效的帧同步方法,同时也是一种很不错的串口通信程序设计结构。
资源推荐
资源详情
资源评论
嵌入式系统中串口通信帧的同步方法
21ic
引 言
串口通信是日前单片机和 DSP 等嵌入式系统之间,以及嵌入式系统与 PC 机或无线模块之间的一种非
常重要且普遍使用的通信方式。在嵌入式系统的硬件结构中,通常只有一个 8 位或 16 位的 CPU,不仅要
完成主流程的工作,同时还要处理随时发生的各种中断,因而嵌入式系统中的串口通信程序设计与 PC 机
有很大的不同。若嵌入式系统中.中断服务子程序在系统运行过程中占用了较多的时间,就有可能在中断
眼务子程序正运行时,又产生一个同类型或其他类型的中断,从而造成主程序得不到执行或后续中断数据
丢失。所以,嵌入式系统中的串口通信虽然看似简单,但其中仍有许多问题值得研究,例如串口通信过程
中的帧同步问题。本文针对该问题给出了逐次比较、基于 FIFO 队列和基于状态机的 3 种帧同步方法。通
过测试、分析和比较得出,基于有限状态机的方法是嵌入式系统串口通信中很有效的帧同步方法,同时也
是一种很不错的串口通信程序设计结构。
1 串口通信的数据帧结构
现代工业控制,往往需要由多个独立的控制模块来共同完成。它们之间通过串口通信完成复杂的控制
过程,必须在通信过程中加入必要的通信协议,以提高系统的可靠性和稳定性;而要完成特定的通信协议,
就得有一定的同步机制。下面介绍一下简化的串口通信数据帧结构,以便分析说明嵌入式系统串口通信过
程中的帧同步方法。
假定串口发送的数据帧结构为:
其中:包头用于同步,一般是一个或多个 ASCII 字符,本文中假定数据帧同步头有 2 字节
(0xAA、0x55);包长表示数据包中除去包头和包长的字节数,一般用约定好的几个字节表示;类型为通
信协议里规定的命令类型;数据为应发送的主要信息;校验通常采用单字节“异或”的方法。
2 串口通信中的帧同步方法
2.1 逐次比较的帧同步方法
首先等待串口数据,将接收到的第 1 个字节数据与约定好的包头信息的第 1 个字节进行比较。如果不
正确,则等待新字节,直到接收的数据与包头信息的第 1 个字节相同。第 1 个字节比较正确以后,将收到
的第 2 个字节与包头信息的第 2 个字节进行比较。如果仍然正确,则说明串口接收已经同步,可以开始接
收数据帧中的数据部分;否则,重新开始同步过程。其程序流程如图 1 所示。
资源评论
- mayiqun7202012-11-07有类似资源,勉强可用。
flyindancexie
- 粉丝: 5
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功