5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 3698|回复: 61
打印 上一主题 下一主题

PWM信号是数字信号,不服来辩

[复制链接]
跳转到指定楼层
楼主
发表于 2021-6-11 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 问天几何 于 2021-6-12 15:32 编辑

而且它并不落后,可以用来通信,可以用来直接驱动电动设备,什么dshot pshot ,复杂的东西并不一定高级,只是协议之间的区别,PWM用来通信,协议定的比较简单,脉宽调制而已。
模拟信号的定义是用连续变化的物理量表示的信息,比如电压,可以在任意瞬间呈现为一定范围内任意的实数值,也就是说它的分辨率是无穷大的。
PWM符合哪一点模拟信号的特征了?它任意瞬间只有两个取值:高电平或者低电平,就两个,是离散取值,从模拟信号定义上就可以排除了,所以我认为它是数字信号。
前一段时间刚在某误导人的公众号上看到关于这个问题的胡乱解释,所以前天看到这个比较上头,模友们见笑了。

欢迎继续阅读楼主其他信息

来自苹果客户端来自苹果客户端
沙发
发表于 2021-6-11 21:07 | 只看该作者
摩尔斯码电报是数字还是模拟
3
发表于 2021-6-11 21:13 | 只看该作者
pwm是典型的数字信号,不过这种编码方式包含的信息量比较少。。
不过数字信号归根结底还是模拟方式传输。
4
发表于 2021-6-11 21:51 | 只看该作者
如果只关注电平高低,那高电平持续1000μs的pwm信号,和高电平持续2000μs的信号是一样的吗?pwm是用高电平的持续时间来代表信号值,时间是一个连续的变量,pwm自然就是模拟信号
5
发表于 2021-6-11 22:03 | 只看该作者
学习一下,模拟信号和数字信号的概念一直不是很清楚。书上讲,时间和幅值均离散的信号称为数字信号。
来自安卓客户端来自安卓客户端
6
发表于 2021-6-11 22:46 | 只看该作者
本帖最后由 压缩饼干 于 2021-6-12 00:38 编辑

0


7
发表于 2021-6-11 22:59 | 只看该作者
本帖最后由 压缩饼干 于 2021-6-11 23:18 编辑

0
8
发表于 2021-6-12 00:41 | 只看该作者
这个也容易被干扰吧,速率也不够快,对于现在的一圈几十万个信号的伺服编码器来说,应该是传送不过来,不知道我说的对不?但走总线是可以的
来自安卓客户端来自安卓客户端
9
发表于 2021-6-12 01:51 | 只看该作者
脉宽调制(PWM)是指用MCU微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法,这里PWM控制器实现的就是对模拟信号电平进行数字编码,既然已经是输出数字编码了,那就是数字信号

没什么好争论的,这玩意都能吵起来

php是世界上最好的语言!!!
10
发表于 2021-6-12 09:08 | 只看该作者
富华 发表于 2021-6-12 01:51
脉宽调制(PWM)是指用MCU微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方 ...

pwm并不是对电平编码,而是对脉宽编码。一般舵机用的脉宽取值在1000μs~2000μs之间,可以取任意值,是模拟信号。你说的数字编码指的是dac吧,数模转换,它的精度受到dac硬件制约,比如10bit的dac可以输出2^10=1024个不同脉宽的高电平,但这不代表脉宽值是离散的。
如果按数字信号来理解pwm,高电平脉宽2000μs的信号和1000μs的信号都代表数字1,两个信号等效。但是用模拟信号来理解,它们分别代表+100%和-100%,这才是舵机解析pwm信号的方式
来自安卓客户端来自安卓客户端
11
 楼主| 发表于 2021-6-12 10:06 | 只看该作者
Flameout 发表于 2021-6-12 09:08
pwm并不是对电平编码,而是对脉宽编码。一般舵机用的脉宽取值在1000μs~2000μs之间,可以取任意值,是模 ...

你用单片机能输出1000.0001μs的脉宽?怎么就任意值了?
来自苹果客户端来自苹果客户端
12
 楼主| 发表于 2021-6-12 10:10 | 只看该作者
Flameout 发表于 2021-6-11 21:51
如果只关注电平高低,那高电平持续1000μs的pwm信号,和高电平持续2000μs的信号是一样的吗?pwm是用高电平 ...

那你这么说的话,所有的信号都要通过时间判断,串口输出0XFFFF,不也是一串高电平吗?只不过PWM不是按位编码而已。
来自苹果客户端来自苹果客户端
13
 楼主| 发表于 2021-6-12 10:15 | 只看该作者
Flameout 发表于 2021-6-12 09:08
pwm并不是对电平编码,而是对脉宽编码。一般舵机用的脉宽取值在1000μs~2000μs之间,可以取任意值,是模 ...

而且,信号是什么类型跟它传输的量有什么关系吗?我用CAN总线发送一个连续的值,他就是模拟信号了吗?我再定个协议,只发0和1,又变成数字的了?
来自苹果客户端来自苹果客户端
14
 楼主| 发表于 2021-6-12 10:27 | 只看该作者
aiermoduola 发表于 2021-6-12 00:41
这个也容易被干扰吧,速率也不够快,对于现在的一圈几十万个信号的伺服编码器来说,应该是传送不过来,不知 ...

PWM是比较简单的编码方式,优点是点对点通信,方便,走总线的话每个设备上去都要对协议,调试较麻烦。但是理论上PWM分辨率可以调很高的,频率也可以,只不过是被MCU的性能限制了,所以一般是1000μs到2000μs,最高只能50Hz通信,但是定好协议的话随便怎么调,比如窄频舵机,可以到300多Hz,这玩意其实就是看需求,哪有什么先进落后的
来自苹果客户端来自苹果客户端
15
 楼主| 发表于 2021-6-12 10:29 | 只看该作者
Flameout 发表于 2021-6-12 09:08
pwm并不是对电平编码,而是对脉宽编码。一般舵机用的脉宽取值在1000μs~2000μs之间,可以取任意值,是模 ...

串口先发的1和最后发的1能等效吗?数字编码本来就是不同时刻的0和1有不同的意义。
来自苹果客户端来自苹果客户端
16
发表于 2021-6-12 10:54 | 只看该作者
问天几何 发表于 2021-6-12 10:06
你用单片机能输出1000.0001μs的脉宽?怎么就任意值了?

你说的是pwm脉宽经过adc模数转换后得到的数字信号,但这个脉宽是模拟信号,而它正是接收机发给舵机的信号,信号到达舵机之后才进行模数转换。单片机不能输出1000.001μs脉宽是受到dac精度的制约,比如10bit的dac能输出2^10=1024个不同的脉宽,12bit可以输出2^12=4096个,只要精度够就可以输出任意值。如果adc收到1000.001μs的信号,精度不够的话会把它当成1000μs来处理。脉宽值用来描述高电平持续的时间,时间是一个连续的变量,因此pwm(脉宽调制)是模拟信号。模拟信号可以由dac数模转换产生,或者adc模数转换转成数字信号,这两个过程分别在接收机和舵机内完成,而舵机线传输的是模拟的pwm信号
17
发表于 2021-6-12 10:57 | 只看该作者
问天几何 发表于 2021-6-12 10:29
串口先发的1和最后发的1能等效吗?数字编码本来就是不同时刻的0和1有不同的意义。

但pwm用1的持续时间来表示不同的值,脉宽1000μs的1和2000μs的1就是两个不同的量,在舵机上相当于-100%和+100%。如果有两个1,则代表两帧数据
18
发表于 2021-6-12 12:52 | 只看该作者
Flameout 发表于 2021-6-12 10:57
但pwm用1的持续时间来表示不同的值,脉宽1000μs的1和2000μs的1就是两个不同的量,在舵机上相当于-100% ...

它爱数字数字爱模拟模拟,有的人觉得它低级不就是因为它是单向的嘛,还是那句话,它就是这样的东西,成本限制了,憋争了
19
 楼主| 发表于 2021-6-12 15:36 | 只看该作者
litong_874 发表于 2021-6-11 21:07
摩尔斯码电报是数字还是模拟

数字,因为它信号取值是离散的
20
发表于 2021-6-12 18:48 | 只看该作者
Flameout 发表于 2021-6-12 10:54
你说的是pwm脉宽经过adc模数转换后得到的数字信号,但这个脉宽是模拟信号,而它正是接收机发给舵机的信号 ...

那啥,其实,555时基电路就可以输出完全连续变化的脉宽吧,不知道楼主他玩过555没有,谁说只有单片机能输出PWM的,他好像把自己绕进去了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

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