簡體   English   中英

在Linux中定期采樣gpio-pin的最佳方法是什么?

[英]What is the best way to sample periodicaly gpio-pins in Linux?

我喜歡對由Raspberry Pi的引腳產生的信號進行采樣。 我的經驗是,高采樣率很難實現。

首先,我使用Python進行了快速處理(超級慢)。 然后我改為ANSI C + bcm2835.h lib。 我獲得了顯着的性能提升。

現在我在問自己一個問題:如何在Linux下進行最佳采樣?

我的嘗試是在用戶空間中進行的。 但是,切換到內核空間又意味着什么呢? 我可以編寫一個簡單的字符設備內核模塊。 在此模塊中,將定期檢查引腳。 如果狀態改變,則將某些信息放入緩沖區。 通過在用戶空間中為應用程序讀取的同步文件來輪詢此I / O緩沖區。 對我來說最好的解決方案是,如果可以以固定的頻率進行引腳檢查(采樣周期對於信號處理應該是恆定的)。

為此設置可以是:

@kernel:字符模塊+內核線程+ gpio設備樹接口+ DSP在恆定采樣時間

@用戶空間:從字符模塊同步讀取I / O應用

想法/提示?

我為您提供解決方案。

我已經寫了這樣一個模塊:

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

您可以從GPIO引腳同步讀取任何信號。

您可以使用輸出並以您的采樣率計算信號。 只是划分時期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM