2

我需要構建一個記錄某些傳感器數據的平臺。並可能稍後對此記錄的數據進行一些計算。Linux驅動程序實時約束

Raspberry Pi看起來像一個有趣的(和便宜!)設備。

我有一個陀螺儀,可以在800赫茲採樣,相當於每1.25毫秒一個採樣。 陀螺儀有一個內置的FIFO,可以存儲32個採樣。這意味着FIFO必須至少每32 * 1.25 = 40毫秒清空,否則樣本將被丟棄。

所以我的問題是:我能100%確定我的內核驅動程序能夠在指定的時間內從這個FIFO中提取數據嗎?

陀螺儀通過i2c與主機通信,如果這樣會使事情變得更簡單,它還可以觸發「幾乎完整」事件的中斷引腳。 但是,如果我可以在驅動程序中定期檢索數據,那將是最簡單的。

我可以存儲在內核空間的數據直播,並更頻繁移動到用戶空間(不限制時間)。我也可以以較低的採樣率(400或200 Hz是可以接受的)對陀螺儀進行採樣。

這是關於股票的內核,而不是特殊的實時內核,因爲它看起來這是目前不支持樹莓派。

回答

2

您將需要一個實時Linux環境下嚴格的時序:

你可以嘗試Xenomai上樹莓派: http://diy.powet.eu/2012/07/25/raspberry-pi-xenomai/

然而,沿着這條博客如下: http://linuxcnc.mah.priv.at/rpi/rpi-rtperf.html(死了,我可以在韋巴克或谷歌緩存)

他似乎越來越重複的+/-20μS超時股票內核找不到它。由於您的時間分辨率爲1250μS,如果您願意在藍月亮YMMV中丟失一次樣品,那麼您可能會對股票內核感到滿意。

我還沒有測試過這個,但我一直在試圖嘗試用Raspberry Pi驅動一個ws2811 LED控制器,這看起來對我來說是最有希望的。

也有RT linux的補丁:https://rt.wiki.kernel.org/index.php/Main_Page
其在免得一個PI版本:https://github.com/licaon-kter/raspi-rt
尋找更深入這個補丁時,但是我遇到了一幫諤諤的。

你最好的賭注它來讀取MS計時器和日誌或淺,如果你錯過的時間間隔,然後嘗試一些解決方案的LED。快樂的黑客..

+0

博客鏈接不起作用:( 是的,我知道我不能保證硬時間,但我真的只需要知道我的代碼可以運行大約每10-20毫秒和流來自設備的數據。 –