RS485 통신을 하다보면 노이즈를 만나게 됨.
그래서 노이즈의 종류들과 해결방법들을 정리해 봄.
NOISE
1. 차동 노이즈 (Differential noise)
전기 노이즈가 와이어 중 하나를 통해 결합될 때 차동 노이즈가 발생함.
=> 하지만 RS485의 경우 전선 간의 차동 전압을 비교하여 신호를 디코딩하므로 차동 노이즈는 전송에 거의 영향을 미치진 않음.
2. 모드 노이즈 (Mode noise)
동일한 진폭의 간섭이 두 와이어에 결합될 때 발생함.
3. 스파크
와이어 중 하나에 스파크가 튀어 디코딩된 값의 logic을 변화시킨 경우 데이터 값이 변화함.
((회로를 만질 땐 꼭 정전기 방지 장갑을 끼자))
noise 완화 방법:
1. 실드 케이블을 사용하기
shielded cable을 적절하게 사용하고 접지 연결하기
2. 종단저항 쪽에 커패시터 달기.
60옴 저항 두 개와 220pF 커패시터를 사용하여 저역 통과 필터를 생성하여 추가 공통 모드 노이즈 필터링을 제공하기.
주의: 두 필터에서 동일한 roll-off 주파수를 보장하려면 저항 값을 일치시키는 것이 매우 중요. (가급적 오차율 1% 미만의 정밀 저항 사용) -> 오차가 큰 저항을 사용하면 common-mode noise가 차동 잡음(Differential noise)으로 변환되어 수신기의 잡음 내성을 손상시킬 수 있음.
3. Twisted Pair Cable 사용하기.
케이블을 통한 전기적 잡음 결합 가능성을 줄여 줌. 전류가 전선을 통과하면 전선 주변에 전자기장이 형성됨. 트위스트 페어는 꼬임 사이에 형성되는 자기장을 활용하여 와이어 중 하나에 유도된 노이즈를 상쇄시킴.
4. 절연 신경쓰기.
접지도 중요하지만 절연이 핵심이다. 신호 라인이 전원 및 (모터를 사용한다면)모터 리드에서 가능한 멀리 떨어져 있는지 확인하기.
PCB 보드에서 노이즈가 발생하는 이유 중 하나로 signal reflection가 있음.
Signal Reflection (신호 반사)
광선(빛)이 거울에 입사하면 빛이 거울 표면에서 반사가 일어나듯 이와 동일한 현상이 전기 신호에서도 발생함. 신호 반사는 신호원(source)가 신호 선로(trace)상의 전기 신호를 수신기(receiver 또는 sink)에 전송하고, 신호의 일부가 다시 신호원(source)로 반사되는 현상임. 이 반사된 신호는 회로상의 신호 왜곡(signal distortion) 또는 발진(oscillation)을 일으킬 수 있음.
수신기에서 송신기로 신호가 반사되는 이유는 신호 트레이스의 특성 임피던스(characteristic impedance)의 불연속성으로 인해 발생하는 과도임피던스(transient impedance)임. 특성 임피던스가 신호원(source/transmitter)에서 수신기(receiver 또는 sink)로 균일한 임피던스일 경우 신호 반사가 없음. 반면에 트레이스의 특성 임피던스의 불연속성은 신호 트레이스 폭, 두께, 트레이스와 해당 기준 평면 사이의 거리 및 PCB 기판 재료의 유전 상수의 변화로 인해 발생할 수 있음.
신호 반사가 일어날 경우 발진, 신호 왜곡, 오버슈팅, 언더슈팅 등이 일어날 수 있음.
((요약: 신호반사는 송신기에서 수신기로 보낸 신호가 다시 송신기로 들어오는 것. 발생한 이유는 pcb 트레이스의 불연속한 임피던스 때문. 신호반사가 일어나면 발진, 신호 왜곡, 오버슈팅, 언더슈팅이 일어날 수 있음. ))
신호반사 해결방법:
유전 상수의 변화를 고려하여 트레이스의 폭, 두께, 트레이스와 평면 사이의 거리 등을 계산하기.
Crosstalk (크로스토크)
크로스토크는 선간의 결합에 의한 신호 및 노이즈의 전파를 뜻하며 누화 및 혼선, 혼신이라고도 함. 2개의 선이 별개인 경우, 전기적 신호 및 노이즈는 전도되지 않아야 하지만 2개의 선이 평행하고 있는 경우에는 두 선 사이에 존재하는 부유 용량(기생 커패시터) 및 상호 인덕턴스에 의해 노이즈가 전도됨.
크로스토크 해결방법:
회로 설계나 케이블 레이아웃 등으로 최소화할 수 있음. 적절한 쉴드링(shielding) 기술을 사용하여 크로스 토크를 방지하고 전기적으로 안정된 회로를 유지할 수 있음.
연결선간 길게 이웃하는 경우를 최소화, 연결선 간의 간격을 조절, victim의 신호강도 세기를 조절하여 클락 신호로부터의 노이즈 영향 감쇠 -> 게이트 크기조절, 버퍼 삽입 등을 이용.
1. 트레이스 width를 넓힌다.
2. UTP (Unshielded twisted pair) 케이블을 사용한다.
3. 물리적으로 간격을 둔다.
4. 레이아웃 디자인에서 신호 경로를 분리시킨다.
5. Adaptive filtering을 사용한다.
My case
아무튼 나같은 경우는 RS485를 사용하는데 이상한 데이터들이 함께 들어오고, receive하고 있지 않는 상황에서도 회로의 receive 쪽에 불이 들어오는 현상이 나타났었음.
며칠 아니 몇달 동안 고민했는데 결과적으론 선을 정리하니 해결됨 ㅋㅋ
D+랑 D- 선을 꼬고(트위스트), gnd 잡아주고, 여러 선들이 엉키지 않도록 잘 정리해주니 마법처럼 해결됨 ㅋㅋ
생각보다 신호 선에서 자기장이 많이 발생하는 듯.
REFERENCE:
https://resources.altium.com/p/tips-minimize-effects-differential-noise-rs485-communication
https://support.avigilon.com/s/article/Remedy-for-RS-485-near-severe-electrical-noise?language=en_US
https://ansan-survivor.tistory.com/1122
https://techweb.rohm.co.kr/know-how/nowisee/6943/
'Schematic' 카테고리의 다른 글
Pull up & Pull down 저항 (0) | 2022.12.28 |
---|