TAS는 Port 1 (egress)에 적용. Gate close 시 스위치가 패킷을 내부 버퍼에 저장하고,
gate open 시 일괄 방출(burst). 버퍼 초과 시 패킷 드롭 발생.
LiDAR 스펙
모델
Ouster OS-1-16-A0
해상도
2048 × 16
회전 속도
10 Hz
패킷/프레임
128 (16 cols/pkt)
패킷 크기
3,328 bytes
패킷 간격
~781 µs
데이터 레이트
~34 Mbps
전송 시간/pkt
~26.6 µs @1Gbps
스위치 스펙
모델
Microchip LAN9662
펌웨어
VelocitySP v2025.06
포트
2× 1Gbps
TAS 표준
IEEE 802.1Qbv
최대 GCL 항목
8
트래픽 클래스
8 (TC0~TC7)
Tick Granularity
60 ns
설정 도구
keti-tsn-cli (CoAP/MUP1)
측정 결과 (5초 측정 / 설정별)
Completeness vs Gate Schedule
Jitter (Gap StdDev) vs Gate Schedule
Burst Rate vs Gate Schedule
Max Inter-Packet Gap vs Gate Schedule
분석
1. 스위치 버퍼링 효과
13개 설정 중 12개에서 100% 패킷 수신. LAN9662는 gate close 동안 패킷을 내부 큐에 버퍼링하고,
gate open 시 line rate로 burst 방출. 짧은 close 구간에서는 1~2개 패킷만 버퍼에 쌓이므로 손실 없음.
2. 패킷 손실 조건
유일한 손실: 50ms / 20% open (51.6%). 40ms close 동안 ~51개 패킷이 버퍼에 도착하나,
10ms open 동안 최대 ~376개 전송 가능 (1Gbps). 따라서 전송 대역폭이 아닌
스위치 내부 버퍼 크기가 병목. LAN9662의 TC0 큐 버퍼가 ~30~40 패킷 수준으로 추정.
3. Burst 패턴
Close 구간이 길수록 burst 비율 증가: 0.1% (baseline) → 68.9% (5ms/20%).
Burst 패킷은 < 50µs 간격으로 연속 도착하며, 이는 line rate 전송을 의미.
수신측 어플리케이션의 버퍼 설계 시 고려 필요.
4. 특이 패턴: Cycle-LiDAR 동기화
일부 설정에서 예상보다 낮은 jitter 관찰 (예: 10ms/20% = 158µs, 50ms/50% = 171µs).
이는 TAS cycle과 LiDAR 패킷 간격(781µs)이 정수배 관계에 가까울 때 발생하는
beat frequency 동기화 효과로, 대부분의 gate-open 구간에 패킷이 정확히 맞아떨어짐.
5. 실무 시사점
LiDAR + TSN 환경에서 TAS를 적용할 때, LiDAR 트래픽 클래스에 충분한 open 비율(≥50%)을
할당하면 패킷 손실 없이 다른 TC의 deterministic 전송을 보장할 수 있음.
close 구간이 LiDAR 패킷 간격(~781µs) 대비 수십 배를 넘으면 버퍼 오버플로우 위험.
Jitter 원인 진단
게이트가 전부 열려있는데도 stdev ~170µs 수준의 jitter가 관측됨. 원인을 파악하기 위해
TAS cycle time을 1ms/10ms/100ms로 변경하면서 all-open 상태의 jitter를 비교 측정.
결론
TAS gate 전환은 원인이 아님. All-open 상태에서 cycle time을 1ms→10ms→100ms로 변경해도
jitter(stdev)가 167~182µs로 거의 동일. Gate 전환 주기와 무관한 일정한 jitter가 존재.
원인 분석:
USB Ethernet 어댑터: URB (USB Request Block) 스케줄링 간격으로 인한 패킷 도착 시간 편차. USB 2.0/3.0 폴링 간격(125µs~1ms)이 패킷 타이밍에 영향
스위치 Store-and-Forward: LAN9662는 cut-through가 아닌 store-and-forward 방식. 3,328B 패킷의 수신 완료 후 전달까지 ~26.6µs + 가변 큐잉 지연
OS 스케줄링: Python socket.recvfrom() 호출 시 커널 → 유저스페이스 전환 지연
LiDAR 패킷 간격(781µs)보다 짧은 TAS cycle 테스트. 게이트가 패킷 사이사이에서 열고 닫히므로
개별 패킷 차단이 아닌 확률적 지연만 발생.
결과: 10/10 전부 100% 수신.
Cat 2: Buffer Capacity Mapping
Close time을 점진적으로 늘려 버퍼 오버플로우 임계점을 탐색.
발견: close 20ms 이상에서 패킷 손실 시작, 비결정적 패턴 (동기화 효과).
25ms/35ms/45ms에서 total loss이나 20ms/30ms/40ms/50ms에서는 부분 수신 —
TAS cycle과 LiDAR 주기의 beat frequency에 따라 결과가 극단적으로 갈림.
Cat 3: Frame-Aligned Gating (100ms = 1 Frame)
100ms cycle = LiDAR 1프레임(128 pkts) 정확히 동기. Close time이 40ms(~51 pkts)에 도달해도
동기화 효과로 패킷이 open 구간에 집중.
결과: 5/5 전부 100% 수신 (50% open까지!).
Cat 4: Multi-GCL Entries
2개 이상의 Gate Control List 항목으로 복잡한 게이트 스케줄 구성.
결과: 짧은 open window(1ms)나 긴 close(20ms)가 포함되면 total loss 가능.
Cat 5: Endurance (60초 측정)
60초 장시간 측정으로 통계 신뢰도 확보. 10초 테스트에서 51.6%였던 50ms/20%가
60초에서는 0% (total loss) — 동기화 위상이 시간에 따라 변동하여
장시간에서는 지속적 수신 불가.
Cat 6: Boundary Conditions
극한 파라미터: 1ms cycle에서 99%/98%/95%/90% open (close 10~100µs),
200ms/80% (40ms close), 500ms/50% (250ms close).
결과: 500ms/50% 250ms close에서도 100% 수신 — 동기화 효과.
Completeness Heatmap: Close Time vs Cycle Time
Close time이 ~20ms를 초과하면 손실 위험 시작. 그러나 TAS cycle과 LiDAR 주기의
beat frequency 동기화에 따라 동일한 close time에서도 결과가 극단적으로 달라질 수 있음
(25ms/35ms/45ms = 0%, 30ms/40ms/50ms = 부분 수신).
TSN 설계 가이드라인
DO
Close time ≤ 10ms 유지 (안전 영역)
Sub-ms cycle 자유롭게 사용 가능 (100~781µs 전부 100%)
LiDAR 프레임 주기(100ms)의 정수배 cycle 활용
Open ≥ 50% 할당 시 대부분의 설정에서 안전
Multi-GCL 사용 시 개별 open window ≥ 2ms 확보
Burst 수신 대비 RX 버퍼 16MB 이상 설정
DON'T
Close time ≥ 20ms 사용 금지 (버퍼 오버플로우)
Multi-GCL에서 1ms 이하 open window 사용 금지 (total loss)
50ms/20% 등 장시간 close는 단기 테스트도 불안정
Beat frequency 동기화에 의존한 설계 금지 (비결정적)
단일 TC에 전체 close 할당 시 해당 TC 트래픽 완전 차단 위험
장시간 운영에서 10초 테스트 결과 외삽 금지
핵심 발견: Beat Frequency 동기화
종합 테스트에서 가장 중요한 발견은 TAS cycle과 LiDAR 패킷 주기 간의 beat frequency 동기화입니다.
현상:
동일한 open %(20%)에서 25ms = 0%, 30ms = 72%,
35ms = 0%, 40ms = 58% — 교대로 성공/실패
500ms/50% (250ms close)에서도 100% 수신 — close 시간보다 동기화가 결정적
LiDAR는 자유 구동(free-running) 클럭으로 781µs 간격 패킷을 전송.
TAS gate는 독립 클럭으로 동작. 두 주기의 최소공배수(LCM)에 따라 패킷이 gate-open 구간에
집중되거나 분산됨. 이 관계가 정수비에 가까우면 대부분의 패킷이 open 구간에 도착하여
close time이 길어도 손실이 발생하지 않음.
실무 의미:
이 동기화 효과는 비결정적(non-deterministic)이므로 안전 설계에 의존해서는 안 됨.
환경 변화(온도, 클럭 드리프트)에 따라 동기화가 깨질 수 있으며, 장시간 운영 시
위상 관계가 변동하여 갑작스러운 패킷 손실 발생 가능. 10초 단기 테스트와 60초 장기 테스트의
결과 차이(50ms/20%: 51.6% vs 0%)가 이를 증명.
자동차 자율주행 네트워크(ROII)에서 각 센서는 고유한 Traffic Class(TC)에 매핑됩니다.
LAN9662의 8-bit gate-states-value를 사용하여 per-TC 시간 슬롯을 제어합니다.
TC0 (0x01)
LiDAR Ouster OS-1 34 Mbps
TC6 (0x40)
Radar MRR-35 1.3 Mbps
TC5 (0x20)
Camera Simulated 20 Mbps
TC2 (0x04)
Control CAN/Ethernet 0.5 Mbps
0xFF (Guard)
All TCs Open Guard Band TC0 포함
Gate Value
Binary
Open TC
용도
0x01
00000001
TC0
LiDAR 전용 슬롯
0x40
01000000
TC6
Radar 시뮬레이션
0x20
00100000
TC5
Camera 시뮬레이션
0x04
00000100
TC2
Control 시뮬레이션
0xFF
11111111
전체
Guard band (TC0 포함!)
실제 트래픽은 LiDAR(TC0)뿐이지만, 다른 TC gate가 열려도 TC0은 해당 슬롯에서 차단됩니다.
Guard band(0xFF)는 TC0을 포함하므로 실질 TC0 시간 = TC0 슬롯 + Guard 슬롯.
30
Multi-TC 테스트 5개 카테고리
25/30
100% 수신 (beat freq 영향 5건)
Beat
비결정적 동기화 TC0%와 무관
6.2 min
총 측정 시간 (2026-02-24)
Cat A: TC0 Allocation Sweep
10ms cycle, 3-entry: TC0(0x01) → TC6(0x40) → TC2(0x04).
TC0 할당을 1ms(10%)~8ms(80%)까지 sweep.
발견: TC0=2ms, 4ms에서 total loss — beat frequency 효과!
TC0% 증가가 반드시 개선을 의미하지 않음.
Cat B: Fragmentation Effect
동일한 TC0 총 시간(4ms, 40%)을 다르게 분배. 1개 블록 vs 여러 블록.
핵심 발견: 분산 배치(2×2ms, 5×1ms)가 집중 배치(1×4ms)보다 훨씬 안정적!
Jitter: 1749µs(1×4ms) → 181µs(2×2ms) → 162µs(5×1ms).
10ms cycle, 5개 자동차 센서 프로필. 5-entry GCL: TC0 → TC6 → TC5 → TC2 → Guard.
LiDAR-Heavy(TC0=6ms+Guard=1ms=70%)가 가장 안정. Camera-Heavy에서 total loss(beat freq).
Cat E: Guard Band Effect
TC0=4ms 고정, Guard band(0xFF) 크기 변화. Guard는 TC0 포함이므로 effective TC0 증가.
Guard=2ms(eff 60%)에서 total loss, Guard=3ms(eff 70%)에서 100% — beat frequency.
Guard band 자체가 TC0 open 역할도 함.
핵심 발견: Per-TC Bitmask vs Beat Frequency
Per-TC gate bitmask를 사용해도 beat frequency 동기화 효과는 동일하게 나타남.