首页 文章

在Linux中对periodicaly gpio-pins进行采样的最佳方法是什么?

提问于
浏览
0

我喜欢采样一个由我的Raspberry Pi的引脚生成的信号 . 我的经验是高采样率很难实现 .

首先,我用Python做了一个快速的方法(超慢) . 然后我将bcm2835.h lib更改为ANSI C.我获得了显着的性能提升 .

现在我问自己一个问题:如何在Linux下进行最佳采样?

我的尝试是在用户空间进行的 . 但是,切换到内核空间是什么?我可以写一个简单的字符设备内核模块 . 在该模块中,定期检查引脚 . 如果状态改变了一些信息被放入缓冲区 . 通过为用户空间中的应用程序读取的同步文件来轮询此I / O缓冲区 . 对我来说最好的解决方案是,如果引脚检查可以用固定频率完成(采样周期对于信号处理应该是恒定的) .

为此设置可能是:

@kernel:字符模块内核线程gpio设备树接口DSP在恒定采样时间

@user space:i / o app从字符模块同步读取

想法/提示吗?

1 回答

  • 1

    我有一个解决方案给你 .

    我写过这样一个模块:

    https://github.com/Appyx/gpio-reflect

    您可以同步读取GPIO引脚的任何信号 .

    您可以使用输出并使用采样率计算信号 . 只是划分时期 .

相关问题