[英]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.