오늘은 일단 NX가 AF를 수행하게되면 NX10과 렌즈 사이에서 어떤 데이터가 오가는지 일단 맛보기를 하는 차원에서 정리를 좀 했습니다.
사용기종은 NX10입니다. 사용 렌즈는 NX 30팬입니다. 실제 촬영을 하지 않는 상태로 반셔터만을 수행했습니다. 렌즈의 촛점 방향은 근거리에 촛점이 되어있는 상태에서 원거리 피사체에 자동촛점을 수행하는 상태를 조사했습니다.
NX 30팬을 사용한 이유는 지난 번 조사에서 나타난 것과 같이 단렌즈의 경우, 유휴상태(idling)에선 렌즈의 줌값에 대한 데이터 교환이 없이 아무런 데이터도 오가지 않기 때문에 좀더 순수한 AF 통신 데이터에 집중하기가 용이하기 때문입니다. 그리고 30팬은 워낙 AF가 늦어서 AF가 이뤄지는 동안 워낙 많은 데이터가 오가기 때문에 한번 AF 수행으로 좀더 연관성있는 자료를 뽑을 수 있는 확률이 높아지기 때문입니다.
아직 확정된 것은 아니고, 일단 기초 조사에 의한 결과이기 때문에 나중에 수정될 수 있지만, 현재까지 파악이 된 것을 정리를 한다면…
1. AF의 시작은 바디에서 명령을, 즉 3번핀 (Command핀, 짧게 CMD핀)에서 명령을 별도로 내리지 않음.
2. 예상 외로 4번 핀 (Attention핀, 짧게 ATT핀)에서 한번 신호를 먹이는 것으로 AF의 시작을 알림 (3.3V –> 0V (5us 지속) –> 3.3V)
3. 그럼 렌즈는 이를 AF 수행 시작으로 판단하고 수행 시작.
4. 그럼 4번 핀은 15ms 마다 한번씩 신호를 주면서 (3.3V –> 0V (10us 지속) –> 3.3V) 렌즈에게 현재의 위치를 보고하라고 지시.
5. 이 신호를 받은 렌즈는 2번핀 (Data, 짧게, DAT핀)을 통해 현재 렌즈의 포커스 위치 인덱스를 바디에 보고.
6. 렌즈의 포커스 위치 인덱스는 2 Byte로 구성되어 있음. (Big-Endian으로 인코딩)
7. 일단 시작하자마자, 바디에서 명령을 내려, 렌즈의 초기 진행방향에 대해 지정.
8. 렌즈는 이를 인지하는 뜻에서 현재 위치를 보고함.
9. 바디가 판단했을 때, 렌즈의 진행방향이 맞았다고 판단하면, 별도의 지령이 없이 4 ~ 6번 과정을 계속 되풀이.
10. 바디가 AF 지점을 통과해 지나쳤다고 판단되면, 렌즈에 방향을 전환할 것을 지시
11. 렌즈는 바디에 방향을 전환완료 되었다고 보고.
12. 바디가 판단했을 때, 렌즈의 진행방향이 맞았다고 판단하면, 별도의 지령이 없이 4 ~ 6번 과정을 계속 되풀이.
13. 바디가 판단했을 때, 촛점이 다시 지났다는 것을 판단하면, 그렇게 지나쳐온 정확한 촛점의 거리 인덱스를 직접 렌즈에 지시하고, 그 촛점 거리 인덱스로 이동하라고 렌즈에 지시.
14. 이 촛점 거리 인덱스를 인지한 렌즈는 그 위치에 렌즈를 다시 위치 시키고, 최종 위치를 바디에 보고.
15. 바디는 촛점 판단 후, 4번 핀 (Attention핀, 짧게 ATT핀)을 통해 한번 신호(3.3V –> 0V (5us 지속) –> 3.3V) 를 먹임으로써 촛점 종료를 렌즈에 알림.
이렇게 되어있습니다.
아래는 바디와 렌즈가 반셔터를 수행하는동안, 렌즈에서 바디에 보고한 데이터에서 추출한 렌즈의 촛점 거리 인덱스를 그래프로 그려본 것입니다. X 축은 렌즈에서 바디로 보고한 횟수, 즉 시간이라고 보셔도 되겠고, Y축은 렌즈의 촛점 거리 인덱스입니다.
이 그래프를 보시면 콘트라스트 AF의 특성이 고스란히 나타나 있습니다. 초기 렌즈가 이동할 때, 바디가 일단 방향지정합니다.
이 그래프의 경우, 렌즈가 원래 근 촛점에 맞아있었는데, 바디에서 렌즈에게 일단 근촛점 방향으로 움직이라고 명령을 한 상황입니다.
그런데, 컨트라스트가 약해지가 첫 이동방향이 잘못 되었음을 바디가 인지하고, 방향 전환할 것을 지시 합니다.
렌즈는 지시한 방향으로 전환하고, 움직이기 시작하고, 바디는 촛점 방향으로 잘 가고 있는 것으로 판단, 가만히 둡니다.
촛점 방향이 지나치자 렌즈에 다시 방향전환을 지시하고, 방향 전환한 렌즈는 이 때부터 촛점 이동 속도가 느려집니다.
바디는 이때부터 찬찬히 렌즈에서 올라오는 값을 예의 주시합니다. 그래서 다시 촛점이 지나면…. 바로 렌즈에게 정확한 촛점 위치를 지정하고, 렌즈에게 거기로 가라고 지정합니다.
그리고 렌즈는 최종적으로 바디에서 지시한 위치로 이동하고, 현재 위치값을 바디에서 최종 보고 합니다.
바디는 이 위치를 승인하고 AF 종료를 합니다.
오늘은 이상입니다.