异步串口收发的实现
一、实验内容
实现串口接收来自串口调试助手发送的数据,然后直接通过自己实现的串口程序将数据发送出去
二、系统框图

三、设计分析
从串口接收开始,这个比较容易实现。参考链接串口通信协议

不考虑奇偶校验位,一个字节的串口的发送过程,包含1个低电平的起始位,一个高电平的停止位,中间8个数据位,且数据位是从低位发送到高位。只要保证前一刻为高电平,下一时刻为低电平,则可以确定开始串口开始接收数据,因为不发送数据时,即空闲状态下相应的电平为高电平。
从起始位开始,检测串口的数据的接收。延时一个半起始位的时间后,检测第一个数据位的电平,然后再延时一个数据位的时间,检测第二数据位,直到检测最后一个数据位,这时便检测到了整个字节的数据(停止位不考虑)。具体可以使用下面的时序图实现。
一是控制标志位的时序图。
一个数据位占用的时钟周期数BAUD为时钟频率/波特率,计数到半个计数单元HALF = 1/2 BAUD时,half_baud_flag拉高一个时钟周期,baud_flag则在计算到BAUD计数时拉高一个

本文介绍了一种异步串口收发的设计方法,包括系统框图、设计分析及实验步骤等内容。重点讲解了如何通过检测数据位的电平变化来实现数据的接收与发送,并通过波形仿真验证了设计方案的有效性。
最低0.47元/天 解锁文章
539

被折叠的 条评论
为什么被折叠?



