Microprocessor (MCU)/USB

USB , Selective Suspend & General Suspend <ing>

LEEHANDS 2022. 2. 16. 07:07
반응형

Susepnd ( 절전) 모드 ?

 

USB Selective Suspend 란?

The USB selective suspend feature allows the hub driver to suspend an individual port without affecting the operation of the other ports on the hub. Selective suspension of USB devices is especially useful in portable computers, since it helps conserve battery power. 

 

 

USB Device 는 초기화 ( Enum) 과정에서 Host 가 Selective Suspend 지원여부를 물어보면 대답할 의무가 있다.

아래 Log 확인

Control Transfer 를 보자

Selective Suspend 관련 상세 분석은 아래 테이블을 봅시다.

 

SETUP 은 당연히 HOST 에서 Device 에 전달하는 명령어이며, bmRequenst 를 보면 알 수 있듯이  Device to Host 정보 전달 메시지 입니다.

 

IN Data 를 보면 ASCII 코드로 Selective Suspend Enable 할지말지를 알 수 있다. 문장이 있다고 활성화는 아니고

아래 그림처럼 비트가 셋이 되었는지 확인해봐야합니다.

 

위 테이블에서 빨간 글씨로 해놓은 뒤에서 4번째 바이트가 00 이면 SelectiveSuspend 미지원하는 장치이며,

지원한다면 저 바이트가 01 으로 Host 에 보낸다.

 

그리고 중요한점은 Host 가 이 디바이스를 최초에 드라이버 설치가 완료되면 다시는 물어보지 않는다.

즉, 장비를 최초에 꽃았을 때만 물어본다.

 

PC 에서 어떻게 설정되었는지는 레지스트리 를 보면 알 수 있다.

 

 

위 레지스트리를 보면 0으로 세팅된 것을 알 수 있다.

 

 

PC 가 절전모드로 진입하면 하위 장치는 대부분 절전모드로 진입하여 전류소모를 최소화한다.

Selective suspend 를 지원하지 않는 장비일지라도 PC 가 절전모드면 당연히 USB Suspend 상태로 진입하고

PC 가 절전모드에서 Wake UP 되면 USB HUB 에 의해  Idle 상태로 복귀한다.

 

만약 USB Selective Suspend 를 지원한다면

레지스트리를 보면 SelectiveSuspendEnable 의 값이 1으로 셋되었다

그리고 장치가 유휴시간 사용하지않으면 자동으로 Suspend 에 진입한다, PC 절전과 상관없이

 

즉 Selective Suspend 는 배터리를 사용하는 컴퓨터 등이 여럿 주변장치 중 USB 장치가 유휴시간 사용하지않을 때 자체 특정 디바이스만 절전모드로 진입하게하는 것이 그 용도라고 볼 수 있다.

 

참고용 USB LOG

USB_LOG.csv
0.11MB
USB_LOG.tdc
0.04MB

반응형