메뉴 English Ukrainian 러시아인 홈

애호가 및 전문가를 위한 무료 기술 라이브러리 무료 기술 라이브러리


라디오 전자 및 전기 공학의 백과사전
무료 도서관 / 무선 전자 및 전기 장치의 계획

CAN 네트워크의 비트 동기화 계산. 무선 전자 및 전기 공학 백과사전

무료 기술 라이브러리

무선 전자 및 전기 공학 백과사전 / 자동차. 전자 기기

기사에 대한 의견 기사에 대한 의견

CAN 인터페이스를 사용할 때 큰 문제는 마이크로컨트롤러의 CAN 모듈에서 정보의 송수신 속도를 설정하는 것과 관련이 있습니다. 이 기사에서는 Bosch 사양에 따른 이 설치의 일반 원칙을 설명합니다. 예를 들어 ARM LPC23xx 및 STM32F103 마이크로컨트롤러의 CAN 모듈 제어 레지스터에 기록된 매개변수 값을 계산하는 기본 공식이 제공되며 최상의 옵션을 선택하는 데 도움이 되도록 작성자가 개발한 프로그램이 고려됩니다.

CAN(Controller Area Network) 인터페이스는 지난 세기 80년대 중반 독일 회사인 Robert Bosch Gmbh에서 시작하여 차량 시스템을 제어하는 ​​컨트롤러를 정보 네트워크에 통합하기 위한 경제적인 수단으로 만들었습니다. 사실 자동차 기술이 향상됨에 따라 엔진, 기어박스 및 기타 메커니즘을 제어하는 ​​전자 장치도 향상되었습니다. 이로 인해 센서와 액추에이터의 수십 개의 전선과 서로 다른 블록을 서로 연결하는 전선이 자동차의 각 전자 장치로 늘어나기 시작했습니다. 이 모든 것이 차를 더 무겁게 만들었을 뿐만 아니라 신뢰성, 안전성 및 유지보수성에도 영향을 미쳤습니다.

이 인터페이스가 확산됨에 따라 다른 영역, 특히 기술 프로세스의 자동화를 위해 유사한 네트워크가 사용되기 시작했습니다. 열악한 조건에서 작업할 때 왜곡에 대한 정보 보호의 높은 신뢰성과 충분히 높은 전송 속도(최대 1Mbps)로 cAn을 원래 용도 이외의 장소에서 사용할 수 있습니다. 네트워크의 신뢰성은 고급 오류 감지 및 수정 메커니즘, 결함 노드의 자체 격리 및 높은 수준의 전자기 간섭에 대한 둔감성으로 보장됩니다.

CAN 이데올로기는 1단계 OSI/ISO 모델을 기반으로 합니다(간단히 말해서 이것은 정보를 송수신하는 프로세스를 XNUMX단계로 가상 분할한 것입니다). 예를 들어 [XNUMX]과 같은 많은 소스에서 광범위하게 다루기 때문에 이 영역을 탐구하는 것은 의미가 없습니다. 현재 물리적(부분적) 및 채널의 두 가지 수준이 표준화되어 있습니다.

물리적 전송 매체는 Bosch CAN 사양에 정의되어 있지 않지만 일반적으로 ISO 11898 표준에 따라 한 쌍의 와이어 형태의 물리적 계층이 있는 버스형 네트워크로 이해되며 연결 유형 및 전송 속도는 아닙니다. 현재 표준화되어 있지만 일반적으로 상위 계층의 사양에 지정됩니다.

모든 네트워크 노드는 이들을 연결하는 라인의 두 와이어(CAN_H 및 CAN_L)에 병렬로 연결됩니다. 통신 회선의 끝에 터미네이터를 설치해야 합니다(저항이 120옴인 저항). 전송이 없을 때 차체 또는 기술 설치의 공통 와이어에 대한 두 와이어의 전압은 2,5V입니다. 논리 단위 (CAN에서 채택된 용어에 따르면 이러한 값을 가진 비트를 열성이라고 함) CaN_H 와이어의 전압 레벨이 CAN_L보다 높은 버스 상태에 해당합니다. 논리 XNUMX(이러한 값을 가진 비트를 지배적이라고 함) - 반대의 경우도 마찬가지입니다. 여러 송신기가 동시에 작동할 때 회선의 열성 비트는 우성 비트에 의해 억제됩니다.

버스의 수동 상태는 논리적 수준에 해당한다고 가정합니다. 메시지가 전송되지 않을 때 그 안에 있습니다. 메시지 전송은 항상 우성 비트로 시작합니다. 각 노드의 CAN 모듈에 있는 버스 와이어는 트랜시버 기능을 수행하는 버스 드라이버인 특수 칩에 연결됩니다. 또한 드라이버는 몇 가지 추가 기능을 제공할 수 있습니다.

- 입력 전류를 변경하여 신호 슬루율을 조정합니다.
- 내장된 전류 제한 장치를 사용하는 전원 회로가 있는 CAN_H 및 CAN_L 와이어의 단락 가능성이 있는 경우 및 이러한 와이어의 단기 전압 증가로부터 송신기 출력을 손상으로부터 보호합니다.
- 내부 열 보호;
- 저전력 모드에서는 수신기가 버스의 상태를 컨트롤러에 계속 보고하여 활동을 감지하면 드라이버를 정상 작동으로 전환할 수 있습니다.

버스를 통한 전송을 위한 정보의 인코딩은 NRZ(Non Return to Zero) 방법을 사용하여 수행됩니다. 중요한 단점이 있습니다. 긴 단위 시퀀스를 전송할 때 그들 사이에 일시 중지가 없다는 것이 밝혀졌습니다. 이로 인해 수신자는 이러한 시퀀스와 메시지 사이의 일시 중지를 구분할 수 없습니다. 이 문제를 해결하기 위해 이른바 비트스태핑(Bit Stuffing - bit stuffing)이 사용된다. XNUMX개의 동일한 비트가 연속으로 전송된 후 반대 값을 가진 추가 비트가 스트림에 삽입된다는 사실로 구성됩니다. 한 행에서 XNUMX개의 동일한 비트를 찾은 수신기는 전송 중에 삽입된 다음 비트를 삭제합니다.

두 가지 유형의 식별자가 링크 계층에서 정의됩니다: 표준 CAN(11비트 길이) 및 확장 CAN(29비트). 메시지 형식을 정의합니다.

상위 레벨 중에서 CAL/CANopen, CAN Kingdom, DeviceNet 및 SDS(Smart Distributed System) 사양을 확인할 수 있으며 자세한 내용은 인터넷[2]에서 확인할 수 있습니다.

정의에 따라 CAN 네트워크는 동일한 설치, 공간 또는 인근 여러 공간 내에 로컬로 위치한 제한된 수의 컨트롤러를 결합합니다. 기술적 대상의 경계를 넘어서지 않습니다. 네트워크의 이데올로기는 여러 지점에 구축됩니다. 첫째, 전송 컨트롤러는 네트워크를 통해 전송되는 자체 신호를 지속적으로 수신합니다. 이를 통해 예를 들어 이더넷 네트워크와 달리 여러 노드에서 전송된 정보의 정확성(체크 비트 모니터링)에 대한 비트 단위 검증을 수행할 수 있습니다. 컨트롤러에서 수신한 비트가 컨트롤러에서 전송한 비트와 다른 경우 전송이 중지되고 비트 오류가 생성됩니다.

메시지 식별자를 전송할 때 이 메커니즘을 사용하여 충돌을 해결하고 정보를 전송할 때 정확성을 확인합니다. 오류가 감지되면 송신기는 메시지를 중단하고 버스에서 오류 프레임을 발행하여 다른 네트워크 노드에 이 이벤트를 알립니다. 메시지 수신을 확인하기 위해 데이터 프레임에는 ACK 필드가 포함됩니다. 이 필드에서 전송된 메시지를 수신한 각 노드는 메시지를 수신했음을 소스에 확인합니다. 확인되지 않은 메시지는 확인이 수신될 때까지 송신기에서 재전송됩니다.

모든 네트워크 노드는 전송된 정보를 수신하므로 특정 노드에 메시지를 보낼 수 없습니다. 그러나 최신 컨트롤러에 트래픽 필터링 도구가 있으면 큰 문제가 되지 않습니다.

CAN 네트워크는 분산되어 있습니다. 이것은 네트워크를 제어하는 ​​마스터 노드와 명령을 실행하는 슬레이브 노드가 있어야 한다는 일반적인 이데올로기에서 약간 벗어나면 큰 장점으로 간주될 수 있습니다. 분산형 네트워크에서 노드는 더 지능적입니다. 이 중 하나라도 실패하면 계속 작동합니다.

정보는 데이터 프레임(정보 전송), 원격 전송 요청 프레임 또는 단순히 원격 프레임(정보 요청), 오류 프레임(오류 메시지), 과부하 프레임(제어기 과부하 메시지)과 같은 표준 형식 메시지로 전송됩니다.

가장 일반적으로 사용되는 데이터 프레임. 형식과 내용은 표에 나와 있습니다. 1은 표준 및 표에 있습니다. 확장 프레임의 경우 2. 정보 요청 프레임은 RTR 비트가 항상 열성이고 정보 필드가 없다는 점에서만 정보(표준 또는 확장 형식) 프레임과 다릅니다.

표 1

분야 길이, 비트(바이트) 가치
프레임 시작 1 지배적이어야 한다 (0)
식별자 11
전송 요청(RTR) 1 지배적이어야 한다 (0)
식별자 확장 기능(IDE) 1 지배적이어야 한다 (0)
예약(rO) 1
정보 필드 길이(DLC) 4 바이트로 지정
정보 필드 (0 - 8) 전송된 정보
체크섬(CRC) 15 전체 프레임에 대해 계산됨
체크섬 구분 기호 1 열성이어야 합니다 (1)
확인 간격(ACK) 1 송신기는 열성(1)을 보내고 수신기는 우성(0)을 삽입합니다.
확인 구분 기호 1 열성이어야 합니다 (1)
프레임 끝(EOF) 7 열성이어야 합니다 (1)

표 2

분야 길이, 비트(바이트) 가치
프레임 시작 1 지배적이어야 한다 (0)
아이디 에이 11 식별자의 첫 번째 부분
전송 요청 스푸핑(SRR) 1 열성이어야 합니다 (1)
식별자 확장 기능(IDE) 1 열성이어야 합니다 (1)
아이디 B 18 식별자의 두 번째 부분
이전 요청(RTR) 1 지배적이어야 한다 (0)
예약됨(r1 및 r0) 2
정보 필드 길이(DLC) 4 바이트로 지정
정보 필드 (0 - 8) 전송된 정보
전체 프레임의 체크섬(CPS) 15 전체 프레임에 대해 계산됨
체크섬 구분 기호 1 열성이어야 합니다 (1)
확인(ACK) 1 송신기는 열성(recessive)을 보내고 수신기는 우성(dominant)
확인 구분 기호 1 열성이어야 합니다 (1)
프레임 끝(EOF) 7 열성이어야 합니다 (1)

오류 프레임은 동일한 값의 XNUMX비트를 포함하는(따라서 비트 스태핑 규칙을 위반함) 오류 플래그 필드와 XNUMX개의 열성 비트로 구성된 오류 구분 기호 필드로 구성됩니다. 전송으로 인해 모든 네트워크 노드가 형식 오류를 등록하고 오류 프레임을 네트워크에 자동으로 전송합니다. 이 프로세스의 결과는 원본 메시지를 전송한 노드에서 네트워크로 정보를 자동으로 재전송하는 것입니다.

Overload Frame은 Error Frame의 구조와 논리를 반복하지만 현재 들어오는 메시지를 처리할 수 없는 노드에서 전송되어 재전송을 요청한다. 현재는 거의 사용되지 않습니다.

각 네트워크 노드에는 버스 드라이버, CAN 컨트롤러(네트워크와의 상호 작용, 교환 프로토콜 구현 담당) 및 마이크로 컨트롤러가 있습니다. 매우 자주 CAN 컨트롤러는 마이크로컨트롤러와 결합됩니다. 이 경우 CAN 네트워크 노드(마이크로컨트롤러 및 버스 드라이버)를 생성하는 데 XNUMX개의 마이크로회로면 충분합니다.

CAN의 동기화는 정보가 네트워크를 통해 전송되는 방식과 밀접한 관련이 있습니다. 사용자는 정보 전송 속도(1Kbps에서 1Mbps로), 전송 간격에서 비트 샘플링 지점(모멘트)의 위치 및 각 비트의 샘플 수를 프로그래밍할 수 있습니다. 덕분에 특정 애플리케이션에 맞게 네트워크를 최적화할 수 있습니다. 그러나 그것은 또한 몇 가지 문제를 야기합니다.

직렬 버스를 통해 전송되는 모든 정보는 기본 비트로 나눌 수 있으며, 이 기본 비트의 전송 시간 NBT(Nominal Bit Time)가 정보 전송 속도를 결정합니다. NBR(Nominal Bit Rate) - 이상적인 송신기가 초당 전송하는 비트 수 시계 간격을 복원하지 않고:

NBR=1/NBT(1)

그림과 같이. 도 1에 도시된 바와 같이, NBT 간격은 중첩되지 않는 여러 세그먼트로 나뉘며, 각 세그먼트는 TQ(time quanta)라고 하는 정수개의 시간 세그먼트로 구성됩니다.


그림. 1

모든 네트워크 노드의 NBR 전송 속도는 동일해야 하므로 공식 (1)을 사용하여 일반적으로 필요한 NBT 값을 찾은 다음 이를 형성하는 각 세그먼트의 지속 시간을 선택합니다.

NBT=T싱크세그 + TPropSeg + TPS1 + TPS2(2)

여기서 T싱크세그 - 동기화 세그먼트의 지속 시간; 티PropSeg - 전파 세그먼트의 기간; 티PS1 - 1단계 세그먼트의 기간; 티PS2 - 2단계 세그먼트의 기간.

타이밍 세그먼트 (SyncSeg) - 먼저 버스에서 노드를 동기화하는 데 사용됩니다. 이 세그먼트 내에서 초기 수준 차이의 도착이 예상됩니다. 기간은 고정되어 있으며 항상 1TQ와 같습니다.

유통 부문 (PropSeg)는 노드 간의 물리적 신호 지연을 보상하는 역할을 합니다. 지속 시간은 버스 드라이버와 관련된 지연을 포함하여 전송 노드에서 수신 노드로 그리고 그 반대로의 신호 전파 시간에 따라 달라집니다. 1TQ에서 8TQ까지의 값을 가질 수 있습니다.

위상 세그먼트 1 및 2 (PS1 및 PS2)는 버스 드롭의 위상 왜곡을 보상하는 데 사용됩니다. 클럭 복구 동기화 중에 수신기는 PS1을 늘리거나 PS2를 줄일 수 있습니다. Bosch의 원래 사양에 따르면 PS1 및 PS2의 지속 시간은 1TQ에서 8TQ까지 다양하지만 일부 CAN 모듈의 경우 이러한 값이 다를 수 있습니다.

PS1과 PS2 세그먼트 사이에는 비트 샘플링 지점이라는 순간이 있습니다. 신호의 논리 레벨을 읽고 해석합니다. 일부 CAN 컨트롤러에는 각 비트의 신호 레벨을 세 번 읽는 모드가 있습니다. 그러나 이 경우에도 요점은 PS1과 PS2 사이에 있는 것으로 간주하고 나머지 두 개는 다수결 기준(같은 수준의 샘플 XNUMX~XNUMX개)에 따라 비트의 값에 대한 올바른 결정에 기여합니다.

상술한 바와 같이, 공칭 비트 전송 시간은 정수개의 타임 슬라이스 TQ로 구성된다. 양자의 지속 시간은 모듈 클록 생성기 F의 주파수에 따라 달라집니다.osc BRP 프리스케일러에 의한 분할 계수. TQ, F의 관계osc BRP는 마이크로컨트롤러 유형에 따라 다릅니다. 예를 들어 MSR2510의 경우 공식이 유효합니다.

TQ = 2(BRP + 1)/Fosc . (3)

STM32F 및 LPC23xx 마이크로컨트롤러의 경우 공식은 다음과 같습니다.

TQ = (BRP + 1)/Fosc . (4)

세그먼트의 지속 시간을 선택할 때 표준 시간 단위보다 TQ 시간 조각을 사용하는 것이 더 편리합니다. 여기와 아래에서 세그먼트의 이름(예: PropSeg)과 지속 시간을 quanta로 지정합니다. 충족해야 하는 몇 가지 요구 사항이 있습니다.

PropSeg+PS1 ≥ PS2; (5)

PropSeg+PS1 ≥ T소품(6)

PS2 > SJW. (7)

T소품 불평등 (6) - 네트워크의 신호 전파 지연. 네트워크의 모든 노드가 유사한 내부 지연을 갖는다고 가정하면 다음 공식을 사용하여 전파 지연을 계산할 수 있습니다.

T소품 = 2(T버스 + TCMP + Tdrv), (8 년)

여기서 T버스 - 버스의 물리적 환경에서 신호의 왕복 시간 티CMP - 입력 비교기의 지연; 티drv - 출력 드라이버의 지연.

SJW (동기화 점프 폭 - 동기화 점프의 폭) 부등식 (7) - 동기화 전환 세그먼트의 지속 시간, 필요에 따라 비트 수신 지속 시간을 조정하기 위해 추가로 도입됨. 전송된 메시지와 수신을 동기화하는 데 사용됩니다. 또한 외부 간섭으로 인해 네트워크에서 계획된 공칭 전송 속도가 실제 속도와 일치하지 않는 상황이 발생합니다. 이 추가 세그먼트는 이러한 차이를 보상하는 데에도 사용됩니다. SJW의 기간은 1TQ-4TQ 내에 있습니다.

PS1 및 PS2 세그먼트는 SJW와 함께 노드 클록 드리프트를 보상하는 데 사용됩니다. PS1과 PS2는 필요에 따라 늘리거나 줄일 수 있습니다. 동기화는 열성(1) 버스 상태에서 우성(0) 버스 상태로 전환할 때 발생하며 해당 전환과 비트 샘플 포인트 사이의 시간을 제어합니다. SyncSeg 세그먼트에서 전환이 발생하면 전환이 동기화되고, 그렇지 않으면 위상 오류가 있습니다. 전환과 SyncSeg의 끝 사이의 시간 간격은 타임 슬라이스 TQ에서 측정됩니다.

동기화에는 하드웨어와 재동기화의 두 가지 유형이 있습니다. 하드웨어는 열성에서 우성으로 처음 전환되는 동안 한 번만 실행되어 버스의 나머지 기간이 종료됩니다. 이 가장자리는 프레임의 시작을 나타냅니다(SOF - 프레임 시작). 하드웨어 동기화는 동기화 카운터를 재설정하여 에지가 SyncSeg 내에 있게 합니다. 이 시점에서 모든 수신기는 송신기와 동기화됩니다.

클럭 복구를 통한 리클럭킹은 하드웨어에서 설정한 초기 클럭을 유지하기 위해 수행됩니다. 클록 복구가 없으면 네트워크 노드의 클록 생성기 주파수 드리프트로 인해 수신기가 동기화되지 않을 수 있습니다. 이 타이밍은 DPLL(Digital Phase Locked Loop)을 기반으로 하며, 버스에서 열성에서 우성으로의 전환의 실제 위치를 SyncSeg 내에서 예상되는 전환의 위치와 비교하고 필요에 따라 비트 타이밍을 조정합니다.

위상 오류 e는 TQ로 측정된 SyncSeg 세그먼트에 상대적인 에지 위치에 의해 결정됩니다.

e = 0 - 전환이 SyncSeg 세그먼트 내부에 있습니다.

e > 0 - 전환이 샘플링 지점 이전에 있고 시간 조각 TQ가 PS1에 추가됩니다.

e < 0 - 전환은 이전 비트의 샘플링 포인트 이후이며 타임 슬라이스 TQ는 PS2에서 뺍니다.

하드웨어 클럭이 이미 수행되었기 때문에 클럭 복구를 통한 리클럭킹은 프레임의 시작 부분에서 발생할 수 없습니다.

위상 오류의 절대값이 SJW보다 작거나 같으면 하드웨어와 재동기화 결과는 동일합니다. 위상 오류가 SJW보다 크면 재동기화가 위상 오류를 완전히 보상할 수 없습니다.

두 샘플 포인트 간에는 하나의 동기화만 허용됩니다. 에지와 샘플 포인트 사이에 설정된 간격을 유지하여 신호 레벨을 안정화하고 PropSeg + PS1보다 짧은 변경 사항을 필터링합니다.

동기화는 중재와도 관련이 있습니다. 모든 노드는 먼저 전송을 시작한 노드와 밀접하게 동기화됩니다. 그러나 조금 늦게 전송을 시작한 다른 노드의 신호는 완벽하게 동기화할 수 없습니다. 그러나 첫 번째 송신기가 반드시 중재에서 승리하는 것은 아니므로 수신기는 중재에서가 아니라 승리한 송신기와 동기화해야 합니다. ACK 필드에서도 동일한 일이 발생하는데, 여기에서 승인 비트 전송을 처음 시작한 노드와 동기화해야 합니다. 이 모든 것이 버스 노드에 설치된 클록 생성기 주파수의 허용 가능한 상호 드리프트를 감소시킵니다.

몇 가지 동기화 규칙이 있습니다.

- 열성 상태에서 우성 상태로의 전이(XNUMX에서 XNUMX으로)만 사용됩니다.

- 비트 전송 내에서 하나의 동기화만 허용됩니다.

- 이전 샘플 포인트에서 읽은 신호의 논리 레벨이 전환 직후 버스에 설정된 레벨과 다른 경우 전환은 동기화에 사용됩니다.

- 전송 노드는 양의 위상 오류(e > 0)로 클록 간격을 복원하지 않습니다. 즉, 자체 메시지에 맞게 조정하지 않습니다. 그러나 수신기는 평소와 같이 동기화됩니다.

- 위상 오류의 절대값이 위상 점프 SJW보다 크면 해당 위상 세그먼트(PS1 또는 PS2)의 지속 시간이 SJW와 동일한 값으로 변경됩니다.

위의 내용은 버스의 물리적 길이가 버스를 통한 정보 전송 속도에 의해 제한된다는 사실로 이어집니다. 버스의 모든 노드는 동일한 비트 간격 내에서 상태를 읽어야 합니다. 결과적으로 1Mbps의 최대 전송 속도는 버스 길이가 30m 이하인 경우에만 달성할 수 있는 것으로 나타났습니다.

특정 마이크로컨트롤러에서 CAN 컨트롤러가 구성되는 방식을 고려하십시오.

LPC 제품군의 마이크로컨트롤러(예: LPC23xx 시리즈)에서 CANxBTR 레지스터는 CAN 버스의 전송 속도를 설정하는 데 사용됩니다. 여기서 x는 CAN 컨트롤러의 번호입니다(경우에 따라 1 또는 2일 수 있음). 4). 다음 매개 변수가 여기에서 설정됩니다 (점유하는 레지스터 비트 수의 간격은 대괄호로 표시됨).

BRP (CANxBTR[9:0]) - CAN 컨트롤러에서 추가로 사용하기 위한 APB 버스 주파수 프리스케일러 값입니다. 이 매개변수는 시간 양자 TQ의 지속 시간을 결정하며, F가 여기에 대체될 때 식 (4)에 의해 결정됩니다.osc=1/TAPB, 여기서 TAPB - 마이크로컨트롤러의 시스템 버스 APB에서 펄스 반복 주기.

SJW (CANxBTR[15:14]) - TQ 양자의 동기화 홉 폭은 여기에 지정된 값보다 하나 더 큽니다.

TSEG1 (CANxBTR[19:16]) 및 TSEG2(CANxBTR[20:22]) - TQ 퀀타에서 세그먼트(각각 PS1 및 PS2)의 지속 시간은 여기에 지정된 값보다 하나 더 큽니다.

SAM (CANxBTR[23]) - 각 비트 값의 판독 횟수를 설정합니다: 0 - 1회, XNUMX - XNUMX회. 후자의 옵션은 일반적으로 저속 네트워크에서 사용됩니다.

이러한 옵션을 선택할 때 다음 규칙을 따라야 합니다.

TPS2 ≥ 2TQ (9)

TPS2 ≥TSJW (10)

TPS1 ≥TPS2 (11)

STM32F 시리즈 마이크로컨트롤러는 비슷한 레지스터를 가지고 있으며 이를 CAN_BTR이라고 합니다. 여기에는 다음 필드가 포함됩니다.

BRP (CAN_BTR[9:0]), TS1 (CAN_BTR[19:16]) 및 TS2 (CAN_BTR[22:20]) - 위에서 설명한 CANxBTR 레지스터의 BPR, TSEG1 및 TSEG2 필드와 레지스터의 목적 및 위치가 일치합니다. TQ 값을 계산할 때 식 (4)를 F로 대입해야 함osc=1/TPCLK, 여기서 TPCLK - 마이크로컨트롤러의 VPB 버스에서 펄스 반복 주기.

SJW (CAN_BTR[25:24]) - 동일한 이름의 CANxBTR 레지스터의 필드와 레지스터에서 차지하는 비트만 다릅니다.

LBKM (CAN_BTR[30]) - 이 레지스터의 XNUMX은 루프백 모드를 설정합니다. 이 모드에서는 전송된 메시지가 자체 수신자에 의해 수신되지만 네트워크로 전송되지는 않습니다.

실엠 (CAN_BTR[31]) - 이 레지스터의 장치는 컨트롤러가 네트워크에서 오는 메시지를 수신하지만 아무 것도 전송하지 않는 자동 모드를 설정합니다.

언급된 두 모드 모두 디버깅에 사용됩니다.

고려 중인 마이크로 컨트롤러의 경우 공식 (2)는 SyncSeg 및 PropSeg 세그먼트가 없기 때문에 단순화됩니다. 지속 시간이 1TQ인 하나의 세그먼트로 대체됩니다. 공식은 다음과 같습니다.

NBT=TQ+TPS1 + TPS2 (12)

CAN 버스의 전송 속도(초당 비트 수)는 다음 공식을 사용하여 프로그램에서 계산됩니다.

NBR = (F/(BRP + 1)) (1/(PS1 +PS2 +3)) (13)

여기서 F는 각각 STM32F 또는 LPC23xx에 대한 시스템 버스 APB 또는 VPB의 주파수입니다. SJW 매개변수가 XNUMX이 아닌 경우 최대

BR최대 = (F/(BRP + 1)) (1/(PS1 +PS2 - SJW + 2)) (14)

그리고 최소

BR = (F/(BRP + 1)) (1/(PS1 +PS2 + SJW + 4)) (15)

동기화가 제공되는 간격으로 CAN 버스의 전송 속도 값.

CANTools 프로그램 창은 Fig. 2. 이에 대한 초기 데이터는 마이크로컨트롤러의 유형, 필요한 정보 전송 속도 및 CAN 컨트롤러가 클럭되는 시스템 버스의 주파수입니다. 계산을 시작하려면 먼저 마이크로 컨트롤러 유형을 선택해야 합니다. 고려 중인 프로그램에는 LPC23xx 또는 STM32F103의 두 가지 옵션만 있습니다. 다음으로 CAN 버스에서 필요한 전송 속도를 초당 킬로비트 단위로 설정합니다. 그런 다음 시스템 버스 주파수를 메가헤르츠 단위로 설정할 수 있습니다. 화면상의 "계산"버튼을 누르고 결과를 얻는 것만 남아 있습니다.


그림. 2

프로그램은 다음과 같이 작동합니다. BRP 값은 0에서 512까지의 주기로 변경됩니다. NBT 간격에 포함된 시간 조각의 빈도와 해당 수는 주어진 시스템 버스 주파수, BRP 값 및 전송 속도에 대해 계산됩니다. quanta의 수는 정수여야 하며 마이크로 컨트롤러의 레지스터에 기록할 수 있는 최대값인 23보다 작아야 합니다. 그런 다음 TSEG2 값이 감소함에 따라 TSEG2 값을 7에서 1로 반복합니다. 그들의 합계는 일정하게 유지됩니다.

화면에는 양자 반복률 F가 표시됩니다.sc=1/TQ, 실선 - TQ 퀀텀의 지속 시간, 해당 레지스터의 BRP 필드 값. 그런 다음 각 라인 쌍은 계산 옵션 중 하나의 결과를 설명합니다.

쌍의 첫 번째 줄에 있는 파라미터 TSEG1 및 TSEG2는 LPC23xx 마이크로컨트롤러의 CANxBTR 레지스터에 있는 동일한 이름의 필드 또는 STM1F2 마이크로컨트롤러의 CAN_BTR 레지스터의 TS32, TS103 필드에 해당합니다. 이들의 합계, 각 필드의 값 및 SJW 필드의 값(null이 아닌 경우)이 제공됩니다. 마지막 줄에는 계산된 옵션을 구현하기 위해 CANxBTR 또는 CAN_BTR 레지스터(마이크로컨트롤러 유형에 따라)에 기록되어야 하는 XNUMX진수 값 CANBTR이 표시됩니다.

쌍의 두 번째 줄은 CAN 버스의 최대 및 최소 정보 전송률 값(SJW > 0인 경우)과 전송 시작에 대한 비트의 샘플 포인트 위치를 백분율로 표시합니다. 전송 간격의 지속 시간.

일부 BRP 값의 경우 계산 결과가 표시되지 않습니다. 이는 식 (13)에 의해 계산된 CAN 버스의 타임 슬라이스 반복률 또는 전송률이 분수로 표현됨을 의미합니다. 이러한 경우에는 계산이 수행되지 않습니다.

계산 프로세스를 자동화하는 CANTools 프로그램은 실제 애플리케이션에서 가장 잘 사용되는 파라미터 조합에 대한 권장 사항을 제공하지 않습니다. 네트워크 개발자는 기존 지식과 경험을 바탕으로 제안된 옵션 중에서 최상의 옵션을 선택해야 합니다. 이제 막 CAN을 마스터하기 시작한 사람들을 위해 저자는 다음 규칙에 따라 안내할 것을 권장할 수 있습니다. 비트 시작과 샘플링 지점 사이의 간격은 비트 지속 시간의 70~85% 범위에 있어야 합니다. . 아마도 실제로는 프로그램에서 제안한 옵션 중에서 몇 가지 옵션을 실제로 테스트해야 할 것입니다.

CANTools 프로그램은 ftp://ftp.radio.ru/pub/2014/01/can.zip에서 다운로드할 수 있습니다.

문학

  1. OSI 네트워크 모델.
  2. 컨트롤러 영역 네트워크.

저자: A. 아브라모비치

다른 기사 보기 섹션 자동차. 전자 기기.

읽고 쓰기 유용한 이 기사에 대한 의견.

<< 뒤로

과학 기술의 최신 뉴스, 새로운 전자 제품:

터치 에뮬레이션을 위한 인조 가죽 15.04.2024

거리가 점점 일반화되는 현대 기술 세계에서는 연결과 친밀감을 유지하는 것이 중요합니다. 최근 독일 자를란트 대학(Saarland University) 과학자들이 인공 피부를 개발하면서 가상 상호 작용의 새로운 시대가 열렸습니다. 독일 자를란트 대학 연구진이 촉각 감각을 멀리까지 전달할 수 있는 초박형 필름을 개발했습니다. 이 최첨단 기술은 특히 사랑하는 사람과 멀리 떨어져 있는 사람들에게 가상 커뮤니케이션을 위한 새로운 기회를 제공합니다. 연구원들이 개발한 두께가 50마이크로미터에 불과한 초박형 필름은 직물에 통합되어 제XNUMX의 피부처럼 착용될 수 있습니다. 이 필름은 엄마나 아빠의 촉각 신호를 인식하는 센서이자, 이러한 움직임을 아기에게 전달하는 액추에이터 역할을 합니다. 부모가 직물을 만지면 압력에 반응하여 초박막 필름이 변형되는 센서가 활성화됩니다. 이것 ...>>

펫구구 글로벌 고양이 모래 15.04.2024

애완동물을 돌보는 것은 종종 어려운 일이 될 수 있습니다. 특히 집을 깨끗하게 유지하는 데 있어서는 더욱 그렇습니다. Petgugu Global 스타트업의 새롭고 흥미로운 솔루션이 제시되었습니다. 이 솔루션은 고양이 주인의 삶을 더 쉽게 만들고 집을 완벽하게 깨끗하고 깔끔하게 유지할 수 있도록 도와줍니다. 스타트업 펫구구글로벌(Petgugu Global)이 자동으로 배설물을 씻어내는 독특한 고양이 화장실을 공개해 집안을 깨끗하고 산뜻하게 유지해준다. 이 혁신적인 장치에는 애완동물의 배변 활동을 모니터링하고 사용 후 자동으로 청소하도록 활성화되는 다양한 스마트 센서가 장착되어 있습니다. 이 장치는 하수 시스템에 연결되어 소유자의 개입 없이 효율적인 폐기물 제거를 보장합니다. 또한 변기는 물을 내릴 수 있는 대용량 수납 공간을 갖추고 있어 다묘 가정에 이상적입니다. Petgugu 고양이 모래 그릇은 수용성 모래와 함께 사용하도록 설계되었으며 다양한 추가 기능을 제공합니다. ...>>

배려심 많은 남자의 매력 14.04.2024

여성이 '나쁜 남자'를 더 좋아한다는 고정관념은 오랫동안 널리 퍼져 있었습니다. 그러나 최근 모나쉬 대학의 영국 과학자들이 실시한 연구는 이 문제에 대한 새로운 관점을 제시합니다. 그들은 여성이 남성의 정서적 책임과 다른 사람을 도우려는 의지에 어떻게 반응하는지 살펴보았습니다. 이번 연구 결과는 무엇이 남성을 여성에게 매력적으로 만드는지에 대한 우리의 이해를 변화시킬 수 있습니다. Monash University의 과학자들이 실시한 연구는 여성에 대한 남성의 매력에 대한 새로운 발견으로 이어졌습니다. 실험에서 여성에게는 노숙자를 만났을 때의 반응을 포함하여 다양한 상황에서 자신의 행동에 대한 간략한 이야기와 함께 남성의 사진이 표시되었습니다. 일부 남성은 노숙인을 무시했지만, 다른 남성은 음식을 사주는 등 그를 도왔습니다. 한 연구에 따르면 공감과 친절을 보여주는 남성은 공감과 친절을 보여주는 남성에 비해 여성에게 더 매력적이었습니다. ...>>

아카이브의 무작위 뉴스

원자적 인수 04.09.2006

터널링 현미경 바늘의 날카로운 끝은 원자를 집어 올릴 수 있지만 한 번에 하나의 원자만 이동할 수 있습니다. 원칙적으로 이 과정을 통해 개별 원자로 구성된 나노기술 장치를 조립할 수 있지만 작업은 매우 느리게 진행됩니다.

새로운 재료 개발을 위한 프랑스 센터의 과학자들은 베를린 자유 대학의 동료들과 협력하여 터널링 현미경의 팁을 위한 팁 분자를 만들었습니다.

0,1개의 탄소 원자로 구성된 벤젠 고리를 기반으로 하는 분자는 한 번에 최대 XNUMX개의 원자를 포착하여 XNUMX나노미터의 정확도로 이동할 수 있습니다.

다른 흥미로운 소식:

▪ 우유를 넣은 커피는 항염증제 역할을 합니다.

▪ 전자 시계가 아닌 실리콘 시계

▪ 러시아 도로용 자동차 DVD 플레이어

▪ 객관적 현실은 존재하지 않는다

▪ 인공 조류가 바다를 지킨다

과학 기술 뉴스 피드, 새로운 전자 제품

 

무료 기술 라이브러리의 흥미로운 자료:

▪ 사이트 전기 기술자 핸드북 섹션. 기사 선택

▪ 기사 식품의 화학 물질 함량에 대한 위생 기준. 안전한 생활의 기본

▪ 기사 당신이 얻을 수 있었던 가장 낮은 온도는 무엇입니까? 자세한 답변

▪ 데이터베이스 관리자 문서. 업무 설명서

▪ 기사 자동차 경보기 설치 권장 사항. 무선 전자 및 전기 공학 백과사전

▪ 기사 자유 에너지가있는 라디오 수신기 공급에 관한 기사. 무선 전자 및 전기 공학 백과사전

이 기사에 대한 의견을 남겨주세요:

이름 :


이메일(선택사항):


댓글 :




기사에 대한 의견:

Petrovich2015
회로는 좋은데 이렇게 강력한 트랜지스터로 인해 변압기 XNUMX차측 권선의 굵기가 의심스럽습니다


이 페이지의 모든 언어

홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰

www.diagram.com.ua

www.diagram.com.ua
2000-2024