스위치 디바운스 최종 가이드(3부)
홈페이지홈페이지 > 블로그 > 스위치 디바운스 최종 가이드(3부)

스위치 디바운스 최종 가이드(3부)

Jun 15, 2024

이 미니시리즈의 1부에서는 스위치 바운스의 개념을 소개했습니다. 즉, 스위치를 열거나(비활성화) 닫을(활성화) 때 결국 새로운 상태로 설정되기 전에 여러 전환이 이루어질 수 있습니다(스위치 유형 및 스위치 용어 열 참조). 우리는 또한 이것이 토글 스위치, 로커 스위치, 푸시 버튼 스위치 등에서 발생한다는 점에 주목했습니다. 예를 들어 수은 틸트 스위치와 같이 우리 대부분이 어쨌든 사용하지 않는 스위치를 제외한 거의 모든 것입니다.

2부에서는 스위치 바운스가 얼마나 오래 지속될 수 있는지, 스위치 바운스가 얼마나 오랫동안 지속되는지에 대한 일부 경험적 데이터를 포함하여 단극 단투(SPST) 및 단극 쌍투(SPDT) 토글 스위치와 관련된 바운싱에 대해 자세히 살펴보았습니다. 개별 바운스 펄스는 얼마나 될 수 있으며, 우리가 볼 것으로 예상되는 바운스는 얼마나 됩니까? 또한 스위치 바운스를 해결하기 위해 사용하는 기술(하드웨어에서 신호 전처리 또는 소프트웨어에서 신호 후처리)이 무엇이든 간헐적으로 발생하는 노이즈 "글리치" 또는 "스파이크"에 속지 않는 것이 중요하다는 점을 소개했습니다. 누화, EMI(전자기 간섭), RFI(무선 주파수 간섭) 또는 ESD(정전기 방전)로 인해 발생합니다.

스위치 바운스 솔루션은 잡음에 속아서는 안 됩니다. (이미지 출처: Max Maxfield)

이 다이어그램에서 저항 R1은 풀업 저항으로 작동합니다. 스위치가 열리면 R1은 NO 신호를 +ve(논리 1) 값까지 끌어옵니다. 스위치가 닫히면 NO 신호가 0V(논리 0)로 단락됩니다.

이제 3부에서는 비유적으로 말하면 “고무와 도로가 만나는 지점”에 이르렀습니다. 여기에서 바운싱 스위치에 대한 다양한 솔루션을 고려하기 시작합니다.

하드웨어 대 소프트웨어(약간의 역사)

1970년대 초반과 중반 경에 마이크로프로세서가 처음 등장했을 때 주변에는 상대적으로 많은 수의 전자 하드웨어 설계 엔지니어가 있었지만 소프트웨어 개발자는 상대적으로 적었고 소프트웨어를 아는 대부분의 사람들은 "대규모 기술" 분야에서 일했습니다. 철” 메인프레임 컴퓨터나 미니컴퓨터.

당시 마이크로프로세서는 메모리와 클록 사이클 측면에서 제한이 있었습니다(즉, 클록 주파수가 상대적으로 낮았기 때문에 모든 클록 사이클이 소중했습니다). 많은 프로그래밍이 어셈블리 언어를 사용하여 공들여 수행되었으며, 단지 재미와 경박함을 높이기 위해 일반적으로 일반적인 프로그래밍과 특히 좋은 프로그래밍 관행에 익숙하지 않은 하드웨어 설계 엔지니어가 많은 코드를 작성했습니다.

위의 모든 내용은 스위치 바운스 문제에 대한 초기 솔루션 중 다수가 하드웨어 기반이었던 이유를 설명합니다. 하지만 잠깐만요, 더 많은 것이 있습니다…

Texas Instruments(TI)의 74xx 시리즈 트랜지스터-트랜지스터 논리(TTL) 집적 회로는 1960년대 중반에 처음 등장했습니다. 1970년대에는 이러한 장치와 다른 공급업체의 유사한 제품군이 탑재된 인쇄 회로 기판(PCB)이 어디에나 존재했습니다.

각 74xx 장치에는 일반적으로 소수의 젤리빈 논리 게이트 또는 기능이 포함되어 있습니다. 예를 들어, 7400에는 4개의 2입력 NAND 게이트가 포함되어 있습니다. 7474에는 두 개의 포지티브 에지 트리거 D형 플립플롭이 포함되어 있으며 각각 자체 비동기 사전 설정 및 클리어가 있습니다. 74118에는 6개의 SR 래치가 포함되어 있습니다.

요점은 PCB에 이러한 74xx 장치 수백 개가 포함될 수 있으며 거의 ​​변함없이 사용되지 않은 기능이 남아 있다는 것입니다. 여기에는 NAND 게이트, 저기에는 SR 래치, 심지어는 설명되지 않은 D형 플립플롭도 있을 수 있습니다.

하드웨어 설계 엔지니어는 이러한 커밋되지 않은 논리 기능을 스위치 디바운싱에 사용하기 위한 "공정한 게임"으로 보았습니다. 한 가지 약간의 "수프 속 비행"은 설계를 수행한 사람과 사용 가능한 남은 논리 게이트 및 기능에 따라 다른 기술을 사용하여 각 스위치가 디바운싱되는 경우가 드물지 않았다는 것입니다. .

시간이 지남에 따라 디지털 로직은 점점 더 적은 수의 장치로 통합되어 예비로 사용되는 단순한 "접착 로직" 기능의 양이 줄어들었습니다. 또한 마이크로프로세서 메모리 크기가 커지고 클럭 주파수가 증가했으며 점점 더 많은 사람들이 소프트웨어를 개발하기 시작했습니다.