2017-09-26 154 views
0

我必須在C中執行代碼來檢測linux上rs232行內的字符間時間。字符間檢測時間可能是1ms。所以我需要一些東西來非常快速地標記一個包含字符的字符。當我說得很快就不到1ms。高速字符檢測rs232

我不問一個編碼解決方案,我只想要一個初步的幫助來知道我必須採取什麼樣的路徑:是否可以在linux上執行此操作?我必須修改驅動程序才能達到這種時間?或者用戶空間上的東西可以做到這一點(我不這麼認爲)。

+0

你爲什麼要測量字符間的時間?這一次通常可能爲零。如果你真的想要檢測消息間的差距,例如Modbus,那麼你就走錯了一條可行的解決方案。 – sawdust

+0

[解析時間分隔的UART數據]可能的副本(https://stackoverflow.com/questions/27152926/parsing-time-delimited-uart-data) – sawdust

回答

2

沒有機會在用戶空間中實現這一點,據我所知沒有串行端口配置,允許您指定精確的字符間超時。也許編碼自定義驅動程序可能會使您更接近UART中斷,因爲這是您所需要的。但是,每次我必須解決類似的任務時,我最終創建了一個微型硬件模塊,它非常精確地執行我的時間關鍵任務,並且只將結果報告給Linux機器。這完全取決於您需要什麼以及您的溝通差距檢測應該如何精確。

+0

感謝您的回答。在我的情況下,寫一個自定義的驅動程序比改變硬件更容易。當然,UART直接連接到微控制器,所以這可能會獲得預期的精度。 –

+1

@romariccrailox好的,你可以試一試,但是我認爲你的驅動程序在測量<1ms的字符間超時時不可靠。只是好奇 - 爲什麼你需要這樣一個精確的間隙探測器? – vasek

+0

我明白,這也是我的恐懼......我需要這樣的精度來滿足某些房屋協議的需求。以前的解決方案(但是在一個實時操作系統),所以一些房屋協議使用它,現在我們試圖限制迴歸... –