[技术讨论]

单片机时序三个问题

[复制链接]
802|8
手机看帖
扫描二维码
随时随地手机跟帖
QWE4562009|  楼主 | 2019-5-31 09:30 | 显示全部楼层 |阅读模式
单片机时序三个问题
1.一个数据位分成16份怎么理解

2.7、8、9还在范围内是指什么意思

3.当采集到D7时候有一次偏移出去怎么理解?抽象

文档链接
https://mp.weixin.qq.com/s?__biz=MjM5MzUxMTAwMg==&mid=2649734149&idx=2&sn=7432806668c934d243c54a0b9553ad52&chksm=be8eff3089f9762657b2cd9cca168d5c3511d0a8be5afbc4d9ff1fe7543babfc3b9a086ba207&mpshare=1&scene=23&srcid=0530GkXqjbWbZ8iIBgZ3MdC5#rd


单片机采集时序问题.png

使用特权

评论回复

相关帖子

tianxj01| | 2019-5-31 10:03 | 显示全部楼层
这个不是你能看见的时序,说的是某种串口设备(也可以是单片机)内部对串口信号的处理过程。
所谓把1个数据分成16分,也就是说,按照串口一个比特时间,它分成16个时间单位来处理,而读取的是中间的第7、8、9三个等分时间计算采样点,超过2次读到0,就认为是0,它这里第9次偏出去,就是指因为波特率误差,导致的采样点和发送数据端第8位时间上面的偏移,而很明显这样处理,解决的波特率,是双向的,也就是说可以是采样时间上提前,也可以是采样时间上落后,我们很容易计算出由于波特率误差造成的时间累积,大概允许7位半里面数据准确就可以了,实际上的波特率误差为7.5/8=93.75%。

使用特权

评论回复
QWE4562009|  楼主 | 2019-5-31 17:13 | 显示全部楼层
tianxj01 发表于 2019-5-31 10:03
这个不是你能看见的时序,说的是某种串口设备(也可以是单片机)内部对串口信号的处理过程。
所谓把1个数据 ...

这个意思吗?假如读取一位数据的总时间是16us   ,而采样的时候超过16us还没读到第九份的值?

使用特权

评论回复
QWE4562009|  楼主 | 2019-5-31 17:13 | 显示全部楼层
tianxj01 发表于 2019-5-31 10:03
这个不是你能看见的时序,说的是某种串口设备(也可以是单片机)内部对串口信号的处理过程。
所谓把1个数据 ...

时间是抽象的

使用特权

评论回复
tianxj01| | 2019-5-31 17:25 | 显示全部楼层

时间在我们很多设备面前可不是抽象的。比如示波器,水平轴就是时间。
我指的你看不见的时序,就是指你通过设备是无法观察到这个时序的。

使用特权

评论回复
cjseng| | 2019-5-31 18:31 | 显示全部楼层
QWE4562009 发表于 2019-5-31 17:13
这个意思吗?假如读取一位数据的总时间是16us   ,而采样的时候超过16us还没读到第九份的值? ...

如果波特率是9600,那么一位的时间大概就是104us,串口内部硬件以104us/16的速率对串口电平进行采样,则每一位可以采样16次,以其中7、8、9三次采样结果来判断电平状态(大于等于两次采样结果相同,确定电平状态)。
知道采样定律不?采样频率至少要是信号频率的两倍,对于串口来说,采样频率是信号频率的16倍。

使用特权

评论回复
QWE4562009|  楼主 | 2019-6-1 08:33 | 显示全部楼层
cjseng 发表于 2019-5-31 18:31
如果波特率是9600,那么一位的时间大概就是104us,串口内部硬件以104us/16的速率对串口电平进行采样,则 ...

你这个时间是如何计算出来的呢

使用特权

评论回复
评论
QWE4562009 2019-6-2 13:02 回复TA
@cjseng :1S/9600? 
cjseng 2019-6-1 12:39 回复TA
1000000us/9600=104us 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

823

主题

2652

帖子

22

粉丝