정의
데이터 링크 계층이 만들어 낸 비트열은 그 자체로는 버스를 지나갈 수 없다. 물리 계층이 비트마다 물리적 표현을 붙여 줘야 하고, CAN은 그 표현을 단 두 가지 상태로 제한한다. 두 상태가 대칭이 아니라는 점 — dominant가 recessive를 덮어쓴다는 점 — 이 CAN의 여러 동작을 떠받치는 성질이다.[2]
송신
ISO 11898-2[3]가 규정하는 고속 전송에서 두 선은 recessive 상태일 때 모두 약 2.5 V로 바이어스된다. dominant 상태에서는 CAN_H가 약 3.5 V로 올라가고 CAN_L이 약 1.5 V로 내려가, 약 2 V의 차동 신호가 만들어진다.[1][2]
| 버스 상태 | 논리 비트 | CAN_H | CAN_L |
|---|---|---|---|
| recessive | 1 | 2.5 V | 2.5 V |
| dominant | 0 | 3.5 V | 1.5 V |
recessive 상태의 두 선은 능동 구동 없이 수동으로 바이어스된 상태다. 그래서 한 노드가 dominant를 구동하면 다른 노드가 내보낸 recessive는 덮여 버리고, 버스 전체가 dominant가 된다.
수신
수신 노드는 각 선의 절대 전압이 아니라 두 선의 전압 차를 본다. 차동 방식이므로 두 선에 함께 실리는 잡음은 상쇄된다. 고속 전송에서 두 상태의 차동 전압 범위는 다음과 같다.[1]
| 차동 전압 | 버스 상태 |
|---|---|
| −1.0 V 이상 0.5 V 이하 | recessive |
| 0.9 V 이상 2.0 V 이하 | dominant |
불감대
0.5 V와 0.9 V 사이는 어느 상태에도 속하지 않는 불감대다.[1] recessive 범위가 음수까지 내려간다는 점과 함께, “0 V 근처면 1, 2 V 근처면 0”으로 뭉뚱그리면 놓치는 부분이다.
저속 전송 레벨
앞의 전압값은 모두 고속 전송의 것이다. 저속·고장 허용 전송(ISO 11898-3[4])은 같은 두 선을 쓰면서도 전압을 정반대로 배치한다. recessive에서는 CAN_H가 접지 쪽으로, CAN_L이 공급 전압 쪽으로 끌려가 두 선이 가장 멀리 벌어지고, dominant에서는 드라이버가 두 선을 서로 가깝게 끌어당긴다.[5][6]
공급 전압 5 V로 동작하는 고장 허용 트랜시버의 규격값은 다음과 같다.
| 버스 상태 | 논리 비트 | CAN_H | CAN_L |
|---|---|---|---|
| recessive | 1 | 0.2 V 이하 | 4.8 V 이상 |
| dominant | 0 | 3.6 V 이상 | 1.4 V 이하 |
recessive 값은 노드마다 둔 종단 저항이 CAN_H를 접지로, CAN_L을 공급 전압으로 바이어스한 결과다. 고속과 마찬가지로 recessive는 능동 구동이 없는 상태이지만, 두 선이 쉬는 자리가 가운데 한 점이 아니라 양쪽 끝이다.
대표값을 0 V와 5 V, 3.6 V와 1.4 V로 놓고 빼 보면 차동 전압(CAN_H − CAN_L)은 recessive에서 약 −5 V, dominant에서 약 +2.2 V가 된다. 부호가 상태에 따라 뒤집히므로 수신 임계도 음수 쪽에 놓인다 — AMIS-41682는 차동 수신 임계 전압을 공급 전압 5 V에서 대표값 −3 V로 잡는다.
반대로 놓인 전압
저속 전송에서는 recessive에서 두 선이 가장 크게 벌어지고 dominant에서 좁혀진다.[5] 고속의 그림을 그대로 옮겨 읽으면 두 상태를 서로 바꿔 보게 된다.
각 선에는 차동 수신기와 별도로 단선 수신기가 붙어 있고, 그 임계는 두 레일 사이에 놓인다. 그래서 한 선을 못 쓰게 돼도 남은 선의 전압만으로 비트를 판정해 통신을 이어 갈 수 있다. 고장 유형별 거동은 CAN 버스 배선 고장에서 다룬다.
코딩과 비트율
CAN 트랜시버는 FAST 모드를 쓰는 CAN SIC XL 계열을 빼면 모두 NRZ(non-return-to-zero) 코딩을 쓴다.[7]
고전 CAN 노드의 비트율 상한은 1 Mbit/s다.[1] 실제로 낼 수 있는 비트율은 중재 방식 때문에 네트워크 길이에 매이며, 이 관계는 CAN 버스 종단에서 신호 반사와 함께 다룬다.