2016-09-12 2 views
1

UART를 통해 전송하는 Linux SBC에서 LIN 프로토콜을 구현 중입니다. 완전한 LIN 스택을 개발할 시간이 없으므로 프로토콜에 정의 된대로 프레임 구조 만 구현하고 있습니다. 문제는 프로토콜이 버스의 슬레이브 장치를 수신하는 "Break"필드를 필요로한다는 것입니다. 이 필드는 13 비트 타임에 대해 0으로 구성됩니다. 시리얼 데이터 전송에 완전한 바이트가 필요할 때 어떤 아이디어를 UART를 통해 13 비트 타임을 보내는 법? Wiki연속적으로 홀수 비트 전송

+1

UART 핀이 기능 전용입니까? 아니면 GPIO로 구성 할 수 있습니까? –

+1

Linux에서 직렬 포트를 통해 명령 보내기 (dev/ttyS *) – NoS89

+2

[tcsendbreak] (http://linux.die.net/man/3/tcsendbreak)를 사용해 보셨습니까? –

답변

0

:

는 LIN (로컬 상호 접속 네트워크) 차량의 구성 요소 사이의 통신에 사용 직렬 네트워크 프로토콜이다. 자동차에 구현 된 기술과 시설이 늘어남에 따라 시리얼 네트워크의 필요성이 커졌고 CAN 버스는 자동차의 모든 구성 요소에 대해 을 구현하기에는 너무 비쌌습니다. 유럽 ​​자동차 제조업체 은 서로 다른 직렬 통신 토폴로지를 사용하기 시작하여 호환성 문제가 발생했습니다.

데이터 선택할 길이의 정형 메시지 버스를 통해 전송됩니다 : 당신이 클래스에 관심을 지불했을 경우

는 것을 알 것이다. 마스터 작업은 브레이크 신호의 과 동기화 및 식별자 필드로 구성된 헤더를 전송합니다. 슬레이브는 2, 4 및 8 데이터 바이트와 3 바이트의 제어 정보로 구성된 데이터 프레임으로 응답합니다.

CR/LF 다음에 0x0000의 에코를 보내면됩니다.

+1

이것은 매 바이트마다 'break'를 출력합니다. – NoS89

관련 문제