打印

请教关于信号检测问题!高电平、低电平、0.5HZ方波。

[复制链接]
7960|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
samyoju|  楼主 | 2013-3-29 17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chen3bing| | 2013-3-29 18:50 | 只看该作者
读IO口,定时。

使用特权

评论回复
板凳
samyoju|  楼主 | 2013-3-29 21:27 | 只看该作者
我想1秒读一次io口,5秒出一次结果。
但是当是0.5HZ时候,1秒翻转一次,1秒读一次,读出来结果也有可能连续都是高电平,或者低电平啊。因为是转折点。

使用特权

评论回复
地板
xinxi| | 2013-3-30 06:21 | 只看该作者
我还以为是0.1秒读一次

使用特权

评论回复
5
samyoju|  楼主 | 2013-3-30 22:46 | 只看该作者
求指导!

使用特权

评论回复
6
ayb_ice| | 2013-3-31 07:59 | 只看该作者
都搞LINUX驱动了,
这还是问题吗
0.5Hz这么低频的信号,简单查询都搞定了

使用特权

评论回复
7
zsuqing| | 2013-3-31 20:14 | 只看该作者
定时器吧  查询 高低电平  查 TL0 是否为空

使用特权

评论回复
8
samyoju|  楼主 | 2013-3-31 23:06 | 只看该作者
ayb_ice 发表于 2013-3-31 07:59
都搞LINUX驱动了,
这还是问题吗
0.5Hz这么低频的信号,简单查询都搞定了

linux驱动这方面还是菜鸟。
简单查询一下,要是只有高电平,低电平两种状态应该没问题。
但是如果信号状态出现问题的时候,它会出来的0.5HZ的电平信号。
不知怎么区分出来

使用特权

评论回复
9
cjseng| | 2013-3-31 23:12 | 只看该作者
提高采样频率啊,比如0.5秒读取一次不就能区分了?

使用特权

评论回复
10
ayb_ice| | 2013-4-1 07:57 | 只看该作者
samyoju 发表于 2013-3-31 23:06
linux驱动这方面还是菜鸟。
简单查询一下,要是只有高电平,低电平两种状态应该没问题。
但是如果信号状 ...

你除了知道高,低电平,难道不知道上升沿,下降沿,频率,周期的概念吗,

使用特权

评论回复
11
whq20080808| | 2013-4-1 08:46 | 只看该作者
简单查询就行了,如果需要例子,留个邮箱,我发给你

使用特权

评论回复
12
samyoju|  楼主 | 2013-4-1 09:02 | 只看该作者
whq20080808 发表于 2013-4-1 08:46
简单查询就行了,如果需要例子,留个邮箱,我发给你

谢谢你了!邮箱是samyoju@163.com

使用特权

评论回复
13
samyoju|  楼主 | 2013-4-1 09:14 | 只看该作者
ayb_ice 发表于 2013-4-1 07:57
你除了知道高,低电平,难道不知道上升沿,下降沿,频率,周期的概念吗,

这些我都知道,我只是想尽量少出现误读,尽量实时反映信号的变化。
比如某一时刻我想知道它的状态,我去查询一下?
它返回的结果是高低电平,方波也有高低电平。
还有就是状态切换的时候,比如从持续高电平变换到方波,这时我也要尽可能迅速的获取信号变化。

使用特权

评论回复
14
ayb_ice| | 2013-4-1 09:56 | 只看该作者
samyoju 发表于 2013-4-1 09:14
这些我都知道,我只是想尽量少出现误读,尽量实时反映信号的变化。
比如某一时刻我想知道它的状态,我去 ...

谁都想这样的结果,直接告诉我是什么结果

要正确检测一个0.5Hz的信号至少必须完整的检测一个周期吧,这个已经是理论最快了,但程序肯定不能在哪里等一个周期,否则其它程序没有实时性了,那只能过采样了,至少以2倍的频率采样,每次采样记录电平,与上一次电平比较,有变化则是方波信号,连续一定时间不变化则是电平信号,
这个算法很难吗,我相信比LINUX驱动简单多了,也没有什么技术含量吧

使用特权

评论回复
15
chinacn1989| | 2013-4-1 10:13 | 只看该作者
本帖最后由 chinacn1989 于 2013-4-1 10:15 编辑

楼主只需要注意一点:
高低电平是某个时刻的,而方波是一个时间周期的。二者的判断有依据是不一样的
不能用同样的方法去实现。这个得看你的实时性要求怎么样啊!
0.5Hz可以采用2Hz的采样平率,当连续三个点电平一致则为电平输出。然后判断下高低电平就可以了。而当三个点不一致的时候那么就是方波了!画一下波形,看看采样点就明白了!

使用特权

评论回复
16
samyoju|  楼主 | 2013-4-1 10:17 | 只看该作者
ayb_ice 发表于 2013-4-1 09:56
谁都想这样的结果,直接告诉我是什么结果

要正确检测一个0.5Hz的信号至少必须完整的检测一个周期吧,这个 ...

可能是我钻牛角尖了。如果是刚刚上升沿或下降沿时候检测,下次周期后再检测,电平可能还是没变化。这个概率太小了。。

菜鸟一个,见笑了。谢谢你!

使用特权

评论回复
17
ayb_ice| | 2013-4-1 10:21 | 只看该作者
samyoju 发表于 2013-4-1 10:17
可能是我钻牛角尖了。如果是刚刚上升沿或下降沿时候检测,下次周期后再检测,电平可能还是没变化。这个概 ...


下个周期没有变化是正常的,因为要过采样嘛
但不能下定义说下个周期没有变化就是电平信号,而是电平连续没有变化至少超过半个周期

使用特权

评论回复
18
samyoju|  楼主 | 2013-4-1 12:32 | 只看该作者
说错了。应该是半个周期。
频率是0.5HZ。则周期是2s。如果是方波则是1s翻转一次。

现在我的做法是。用1s定时器。
连续监测三次出一次结果。
如果是高-低-高或者是低-高-低,则是方波信号
否则是电平信号

使用特权

评论回复
19
wuqi1003| | 2013-4-1 14:52 | 只看该作者
我原来做fpga的时候接触过一个叫做边缘检测的东西,就是用两个寄存器,一个寄存器存储上一次采样的信号值,另一个寄存器采样本次采样的信号值,然后用上一次的采样值取反后与本次采样的值相与,如果有跳变就会得到1,不知是不是楼主想要的。

使用特权

评论回复
20
coody| | 2013-4-1 15:44 | 只看该作者
以不小于0.4秒的速度连续采样1秒

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

35

帖子

2

粉丝