集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1225|回复: 3

串口通信的接收过程

[复制链接]
fpga_feixiang 发表于 2021-1-14 10:38:46 | 显示全部楼层 |阅读模式
(异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。RS232是异步通信)

  (1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。

  (2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”,而不是干扰信号。

  (3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。

  (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。…。,直到全部数据位都输入。

  (5)检测校验位P(如果有的话)。

  (6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

  (7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。

  (8)当信号再次变为低时,开始进入下一幀的检测。



单片机常用11.0592M的的晶振,这个奇怪数字是有来历的:

  波特率为9600BPS每位位宽t1=1/9600s

  晶振周期t2=1/11.0592/1000000S

  单片机机器周期t3=12*t2

  t1/t3=96

  即对于9600BPS的串口,单片机对其以96倍的速率进行采样。

  如果单片机晶振用的不正确,会对串口接受产生误码。
大鹏 发表于 2021-1-17 16:12:29 | 显示全部楼层
串口通信的接收过程
zxopenhl 发表于 2021-1-18 15:11:27 | 显示全部楼层
串口通信的接收过程
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-17 01:17 , Processed in 0.060777 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表