2016-09-12 94 views
1

我在通過UART傳輸的Linux SBC上實現LIN協議。我沒有時間去開發一個完整的LIN堆棧,所以我只是爲協議定義的消息實現一個幀結構。問題是協議需要一個「Break」字段,它使總線上的從設備偵聽。該字段由13位時間的零組成。當串行數據傳輸需要完整字節時,如何通過UART發送13位零的任何想法?串行傳輸奇數位

+1

UART引腳專用於該功能嗎?或者可以將它們配置爲GPIO? –

+1

通過Linux上的串行端口發送命令(dev/ttyS *) – NoS89

+2

您是否嘗試過[tcsendbreak](http://linux.die.net/man/3/tcsendbreak)? –

回答

0

Wiki

LIN(本地互聯網絡)是用於在車輛部件之間的通信 串行網絡協議。隨着汽車中實現的技術和設備 的增加,對於便宜的 串行網絡的需求增加,而CAN總線對於汽車中的每個組件實現太昂貴。歐洲汽車製造商 開始使用不同的串行通信拓撲,這導致了 兼容性問題。

如果你會在類注意,你就會知道:

數據以 可選擇長度固定形式的郵件跨越總線傳輸。 主任務發送包含中斷信號 的標頭,後跟同步標識符字段。 從站響應一個數據幀,該數據幀由2,4和12個數據字節加上3個字節的控制信息組成。

您應該發送一個由CR/LF跟隨0x0000的回聲。

+1

這將在每個字節後輸出一個'break' – NoS89