GPIO와 I2C를 묶어 보내다! 시리얼 트랜시버 'IOHA:B'콘셉트 숫자 룰렛 I2C를 묶어서 보내는 시리얼 트랜시버, Merit이 큰 2가지 변경점 설명
2023.08.22
- 기사
- 열
자인 일렉트로닉스는 2023년 7월 시리얼 트랜시버 IC(SerDes 트랜시버 IC) 신제품 'THCS253/THCS254' 을 출시했습니다.
제품 닉네임은 'IOHA:B'(아이오허브로 발음)이다. 본고는 이 신제품을 총 2회에 걸쳐 설명하는 기사의 후편이다.
전편에서는 신제품의 특징과 함께 기존 제품 'THCS251/THCS252'의 변경점인 'GPIO(범용 입출력) 외 I2C를 지원한 것'을 소개하고 사용자가 얻을 수 있는 메리트를 설명했다. 후편에서는 그 변경 사항을 좀 더 자세히 살펴보고, 또 다른 변경점인 '동기/숫자 룰렛 도입'에 대해 소개하겠습니다.
제품 닉네임은 'IOHA:B'(아이오허브로 발음)이다. 본고는 이 신제품을 총 2회에 걸쳐 설명하는 기사의 후편이다.
전편에서는 신제품의 특징과 함께 기존 제품 'THCS251/THCS252'의 변경점인 'GPIO(범용 입출력) 외 I2C를 지원한 것'을 소개하고 사용자가 얻을 수 있는 메리트를 설명했다. 후편에서는 그 변경 사항을 좀 더 자세히 살펴보고, 또 다른 변경점인 '동기/숫자 룰렛 도입'에 대해 소개하겠습니다.
I/O를 자유롭게 커스터마이징
이번 신제품 THCS253/THCS254의 기본 기능은 수많은 신호 라인으로 전송했던 병렬 전송을 2페어 차동 라인에 의한 직렬전송으로 대체하는 것이다. 예:, 34개에 달하는 신호 라인이 신제품을 사용하면 4개로 줄일 수 있다. 절감률은 88%로 높다. 게다가 배선 케이블의 무게도 줄일 수 있을 뿐만 아니라 전송 거리도 늘릴 수 있다. 전편에서도 언급했듯이 사용자가 얻을 수 있는 메리트는 크다.
그러나 이 기본 기능 자체는 기존 제품인 THCS251/THCS252와 완전히 동일하며, 새로울 것까지는 없다. 신제품은 이 기본 기능을 기존 제품에서 계승하면서 두 가지 큰 변화를 주었다. 첫 부분에 소개한 GPIO에 I2C를 지원한 것과 동기/숫자 룰렛의 도입이다.
먼저 첫번째 변경인 숫자 룰렛 더불어 I2C를 지원하게 된 것에 대해 자세히 설명하겠습니다. 이 변화의 내용은 이미 전편에서 간단히 소개한 바 있다. 즉, 여러개의 GPIO 외에 I2C도 묶어서 시리얼로 전송할 수 있다는 점이다. 이는 사용자에게 매우 큰 메리트를 가져다준다. 왜냐하면 I2C를 사용해 내부 레지스터를 재작성함으로써 높은 자유도로 I/O(입출력 인터페이스) 부분을 커스터마이징 할 수 있기 때문이다.
구체적으로 설명해보자. 신제품 THCS253/THCS254를 전자기기에 적용하는 경우, 동일한 칩(IC) 2개를 준비해 한쪽은 1차 칩으로, 다른 쪽은 2차 칩으로 PSSEL 단자를 사용하여 지정한다. 처리할 수 있는 GPIO 개수는 THCS253이 최대 32개, THCS254가 최대 20개. 예:, THCS253의 경우, Default로 GPI(범용 입력) 16개와 GPO(범용 출력) 16개의 단자 구성으로 설정되어 있다(그림 1).
이 GPI와 GPO의 개수는 사용자가 자유롭게 설정할 수 있는데, I2C를 통해 내부 레지스터를 재작성하여 각 터미널에 대해 GPI 또는 GPO로 지정할 수 있기 때문. 그림 2는 그 구체적인 예이다(각 단자를 숫자 룰렛 I2 S, SPI, UART의 입/출력으로 지정한 예).
기존 제품인 THCS251/THCS252도 GPI와 GPO의 개수를 사용자가 지정할 수 있었지만, 그 개수 비율을 4단계로 선택할 수 있을 뿐이었다. 즉, I/O부를 커스터마이징할 수 있는 자유도가 이번 신제품에 비해 낮았다.
이 I/O부의 커스터마이징이 큰 효과를 발휘하는 경우는, 설계대상 전자기기에 새로운 기능을 추가하는 등의 급격한 설계변경이 발생하는 경우와 향후 모델 변경이나 기능 추가에 대비하여 설계의 공용화를 도모하는 경우 등이다. 일반적으로 설계 또는 모델 변경, 기능 추가 등을 실행하면 새로운 기능을 구현하는 회로가 늘어나 I/O 단자의 위치관계가 바뀌는 등의 문제가 발생할 수 있다. 기존 제품에서는 I/O부의 커스터마이징 자유도가 높지 않고, 경우에 따라서는 신호 전송로 등 하드웨어의 재설계가 필요한 경우도 있었다. 그러나 이번 신제품을 채택하면 매우 높은 자유도로 I/O를 커스터마이징할 수 있고, 설계 변경이나 기능 추가 등에 매우 유연하게 대응할 수 있다. 따라서 하드웨어의 재설계를 피할 확률이 높다. 설계 기간이 길어지거나 설계 비용이 늘어나는 상황을 피할 수 있는 셈이다.
그러나 이 기본 기능 자체는 기존 제품인 THCS251/THCS252와 완전히 동일하며, 새로울 것까지는 없다. 신제품은 이 기본 기능을 기존 제품에서 계승하면서 두 가지 큰 변화를 주었다. 첫 부분에 소개한 GPIO에 I2C를 지원한 것과 동기/숫자 룰렛의 도입이다.
먼저 첫번째 변경인 숫자 룰렛 더불어 I2C를 지원하게 된 것에 대해 자세히 설명하겠습니다. 이 변화의 내용은 이미 전편에서 간단히 소개한 바 있다. 즉, 여러개의 GPIO 외에 I2C도 묶어서 시리얼로 전송할 수 있다는 점이다. 이는 사용자에게 매우 큰 메리트를 가져다준다. 왜냐하면 I2C를 사용해 내부 레지스터를 재작성함으로써 높은 자유도로 I/O(입출력 인터페이스) 부분을 커스터마이징 할 수 있기 때문이다.
구체적으로 설명해보자. 신제품 THCS253/THCS254를 전자기기에 적용하는 경우, 동일한 칩(IC) 2개를 준비해 한쪽은 1차 칩으로, 다른 쪽은 2차 칩으로 PSSEL 단자를 사용하여 지정한다. 처리할 수 있는 GPIO 개수는 THCS253이 최대 32개, THCS254가 최대 20개. 예:, THCS253의 경우, Default로 GPI(범용 입력) 16개와 GPO(범용 출력) 16개의 단자 구성으로 설정되어 있다(그림 1).
그림 1 - Default일 때의 I/O 설정(THCS253)
이 GPI와 GPO의 개수는 사용자가 자유롭게 설정할 수 있는데, I2C를 통해 내부 레지스터를 재작성하여 각 터미널에 대해 GPI 또는 GPO로 지정할 수 있기 때문. 그림 2는 그 구체적인 예이다(각 단자를 숫자 룰렛 I2 S, SPI, UART의 입/출력으로 지정한 예).
그림 2 숫자 룰렛 I/O를 커스터마이징한
구체적인 예로 GPI나 GPO의 일부를 UART, I2S, SPI 입출력으로 할당
구체적인 예로 GPI나 GPO의 일부를 UART, I2S, SPI 입출력으로 할당
기존 제품인 THCS251/THCS252도 GPI와 GPO의 개수를 사용자가 지정할 수 있었지만, 그 개수 비율을 4단계로 선택할 수 있을 뿐이었다. 즉, I/O부를 커스터마이징할 수 있는 자유도가 이번 신제품에 비해 낮았다.
이 I/O부의 커스터마이징이 큰 효과를 발휘하는 경우는, 설계대상 전자기기에 새로운 기능을 추가하는 등의 급격한 설계변경이 발생하는 경우와 향후 모델 변경이나 기능 추가에 대비하여 설계의 공용화를 도모하는 경우 등이다. 일반적으로 설계 또는 모델 변경, 기능 추가 등을 실행하면 새로운 기능을 구현하는 회로가 늘어나 I/O 단자의 위치관계가 바뀌는 등의 문제가 발생할 수 있다. 기존 제품에서는 I/O부의 커스터마이징 자유도가 높지 않고, 경우에 따라서는 신호 전송로 등 하드웨어의 재설계가 필요한 경우도 있었다. 그러나 이번 신제품을 채택하면 매우 높은 자유도로 I/O를 커스터마이징할 수 있고, 설계 변경이나 기능 추가 등에 매우 유연하게 대응할 수 있다. 따라서 하드웨어의 재설계를 피할 확률이 높다. 설계 기간이 길어지거나 설계 비용이 늘어나는 상황을 피할 수 있는 셈이다.
출력 형식과 필터의 커스터마이즈 가능
또한, I2C를 활용하여 내부 레지스터를 재작성하면 출력 형식과 디지털 노이즈 필터에 대해서도 사용자가 설정할 수 있다. 출력 형식은 푸시-풀(Push-pull)과 오픈 드레인(Open Drain)의 2가지를 선택할 수 있다. 디지털 노이즈 필터는 단자별로 유무를 설정할 수 있으며, 필터의 단수(차수)도 사용자가 선택할 수 있다. 단, 단자별로 단수(차수)를 설정할 수는 없다. 예를 들어 3단(3차)으로 설정하면 각 단자에 적용되는 필터의 단수(차수)는 모두 3단(3차)이 된다.
동기 모드와 숫자 룰렛 모두 사용 가능!
다음으로 또 하나의 큰 변화인 동기/숫자 룰렛의 도입에 대해 설명하겠습니다. 기존 제품인 THCS251/THCS252는 동기 모드만 사용할 수 있었지만, 이번 신제품에서는 동기 모드와 숫자 룰렛를 모두 사용할 수 있게 되었다. 사용하는 모드는 2차칩 단자 설정에서 사용자가 선택할 수 있다.
동기화 모드는 1차 칩에서 2차 칩으로의 다운링크(다운링크)와 2차 칩에서 1차 칩으로의 업링크가 동일한 기준 클록 신호로 동작하는 경우이다. 즉, 다운링크와 업링크의 기준 클럭 신호의 주파수와 위상이 정확히 동일한 경우이다. 실제로는 1차 칩에서 보낸 시리얼 신호(클록 신호가 내장된 8B10B 변조 신호)를 받아 2차 칩의 클록 데이터 복구(CDR: Clock Data Recovery) 회로에서 추출한 클럭 신호로 업링크를 구동한다. 케이스가 동기화 모드로 전환된다(그림 3, 그림 4).
그림 3 동기화 모드의 예(외부 입력의 경우)
그림 4 동기화 모드의 예(내부 OSC의 경우)
한편, 숫자 룰렛는 다운링크와 업링크가 각각 다른 기준 클록 신호로 동작하는 경우이다(그림 5), 그림 6). 설령 양측의 기준 클록 신호의 주파수가 같더라도 위상이 다르면 숫자 룰렛가 된다. 그림 6 숫자 룰렛의 예(내부 OSC의 경우)
동기화 모드의 장점은 2차칩에 공급할 기준 클록 신호 소스가 필요 없다는 것이다. 그러나 단점도 있다. 1차 칩에서만 병렬 신호의 동기화를 실현할 수 있다는 점이다. 2차 칩의 경우, 사용하는 기준 클록 신호는 CDR 회로에서 추출한 것으로, 입력되는 병렬 신호와 무관하기 때문에 비동기식 입력이 된다. 동기식 입력이 가능한 다운링크는 고속의 이미지/영상 신호를 전송할 수 있습니다만, 비동기식 입력의 업링크는 고속의 이미지/영상 신호를 보내지 못하고 저속 제어 신호 전송에만 사용 가능.
이러한 단점을 해소하기 위해 도입된 것이 숫자 룰렛이다. 1 차 및 2 차 모두에서 별도의 기준 클록 신호를 공급할 수 있도록, 양쪽에서 모두 병렬 신호의 동기화가 가능해진다. 즉, 다운링크와 업링크 모두 고속의 이미지/영상 신호를 보낼 수 있게 된 것이다.
그러나 여기서 한 가지 주의해야 할 점이 있다. 바로 1차 칩과 2차 칩에 기준 클록 신호를 공급하는 방법이다. 공급 방법은 두 가지가 있는데, 하나는 외부의 클록 신호 회로에서 공급하는 방법이다. 다른 하나는 각 칩에 내장된 클럭 발진 회로(내부 OSC)에서 공급하는 방식이다. 전자는 병렬 신호의 기준 클록 신호와 공유함으로써 동기화가 가능하다. 그러나 후자는 내부 OSC의 클록 신호를 외부로 출력할 수 없기 때문에 병렬 신호의 기준 클록 신호와 공유할 수 없어 비동기식 입력이 된다. 따라서 사용자는 다운링크와 업링크에서 전송하고자 하는 신호의 특성에 맞추어 기준 클록 신호의 공급 방법을 선택할 필요가 있다.
동기화 모드는 1차 칩에서 2차 칩으로의 다운링크(다운링크)와 2차 칩에서 1차 칩으로의 업링크가 동일한 기준 클록 신호로 동작하는 경우이다. 즉, 다운링크와 업링크의 기준 클럭 신호의 주파수와 위상이 정확히 동일한 경우이다. 실제로는 1차 칩에서 보낸 시리얼 신호(클록 신호가 내장된 8B10B 변조 신호)를 받아 2차 칩의 클록 데이터 복구(CDR: Clock Data Recovery) 회로에서 추출한 클럭 신호로 업링크를 구동한다. 케이스가 동기화 모드로 전환된다(그림 3, 그림 4).
그림 3 동기화 모드의 예(외부 입력의 경우)
그림 4 동기화 모드의 예(내부 OSC의 경우)
한편, 숫자 룰렛는 다운링크와 업링크가 각각 다른 기준 클록 신호로 동작하는 경우이다(그림 5), 그림 6). 설령 양측의 기준 클록 신호의 주파수가 같더라도 위상이 다르면 숫자 룰렛가 된다. 그림 6 숫자 룰렛의 예(내부 OSC의 경우)
동기화 모드의 장점은 2차칩에 공급할 기준 클록 신호 소스가 필요 없다는 것이다. 그러나 단점도 있다. 1차 칩에서만 병렬 신호의 동기화를 실현할 수 있다는 점이다. 2차 칩의 경우, 사용하는 기준 클록 신호는 CDR 회로에서 추출한 것으로, 입력되는 병렬 신호와 무관하기 때문에 비동기식 입력이 된다. 동기식 입력이 가능한 다운링크는 고속의 이미지/영상 신호를 전송할 수 있습니다만, 비동기식 입력의 업링크는 고속의 이미지/영상 신호를 보내지 못하고 저속 제어 신호 전송에만 사용 가능.
이러한 단점을 해소하기 위해 도입된 것이 숫자 룰렛이다. 1 차 및 2 차 모두에서 별도의 기준 클록 신호를 공급할 수 있도록, 양쪽에서 모두 병렬 신호의 동기화가 가능해진다. 즉, 다운링크와 업링크 모두 고속의 이미지/영상 신호를 보낼 수 있게 된 것이다.
그러나 여기서 한 가지 주의해야 할 점이 있다. 바로 1차 칩과 2차 칩에 기준 클록 신호를 공급하는 방법이다. 공급 방법은 두 가지가 있는데, 하나는 외부의 클록 신호 회로에서 공급하는 방법이다. 다른 하나는 각 칩에 내장된 클럭 발진 회로(내부 OSC)에서 공급하는 방식이다. 전자는 병렬 신호의 기준 클록 신호와 공유함으로써 동기화가 가능하다. 그러나 후자는 내부 OSC의 클록 신호를 외부로 출력할 수 없기 때문에 병렬 신호의 기준 클록 신호와 공유할 수 없어 비동기식 입력이 된다. 따라서 사용자는 다운링크와 업링크에서 전송하고자 하는 신호의 특성에 맞추어 기준 클록 신호의 공급 방법을 선택할 필요가 있다.
스탠바이 기능의 사용성 향상
마지막으로, 신제품에서 새롭게 지원하는 I2C를 통해 구현한 편리한 새로운 기능 3가지를 소개하고자 한다.
첫 번째는 'PWM 신호 생성 기능'이다(그림 7). 기존 제품에서는 1차측 칩의 GPIO로 비동기 입력이 가능한 주파수의 PWM 신호를 입력하고, 시리얼 신호로 묶어 2차측 칩으로 보내는 것이 가능했다. 그러나 신제품은 I2C를 통해 내부 레지스터를 설정하여 PWM 신호를 생성하는 기능을 장착했다. 1차 칩에서도, 2차 칩에서도 생성할 수 있다. 액정 패널의 백라이트 밝기 조절, LED 조광, 모터 구동 등에 사용할 수 있다.
두 번째는 'I/O 확장 기능'이다(그림 8). 이 기능은 I2C와 GPIO간에 데이터를 변환하여 1차 또는 2차 칩으로 전송하는 것으로, I2C의 직렬 데이터를 GPO의 병렬 데이터로 변환하여 전송하거나, GPI에 입력된 병렬 데이터를 모니터링하고 그 결과를 내부 레지스터에 저장하여 I2C에서 직렬 데이터로 출력할 수 있음. 저장해서 I2C에서 시리얼 데이터로 출력할 수 있다. 마치 I2C 단자를 확장한 것처럼 보이기 때문에 I/O 확장 기능이라고 부른다.
그림 8 I/O 확장 기능
세 번째는 '스탠바이 기능'이다(그림 9). 이번 신제품은 숫자 룰렛 스탠바이 상태로 전환 또는 이탈할 수 있도록 했다. 1차 칩 측에서 1차 칩의 스탠바이 상태 전환/이탈은 물론.
스탠바이 상태에서의 소비 전류는 6mA로 적다. 정상 동작 시 50m~100mA이다. 스탠바이 상태에서도 I2C와 최대 8비트 GPIO를 1차 칩과 2차 칩 사이에 주고받을 수 있다. 또한, 스탠바이 상태에서도 광전변환 장치를 통한 광전송이나 근거리 무선통신 장치를 통한 무선전송을 지속할 수 있다. 따라서 링크를 끊지 않고 정상 동작 상태에서 스탠바이 상태로 전환할 수 있다.
이상
첫 번째는 'PWM 신호 생성 기능'이다(그림 7). 기존 제품에서는 1차측 칩의 GPIO로 비동기 입력이 가능한 주파수의 PWM 신호를 입력하고, 시리얼 신호로 묶어 2차측 칩으로 보내는 것이 가능했다. 그러나 신제품은 I2C를 통해 내부 레지스터를 설정하여 PWM 신호를 생성하는 기능을 장착했다. 1차 칩에서도, 2차 칩에서도 생성할 수 있다. 액정 패널의 백라이트 밝기 조절, LED 조광, 모터 구동 등에 사용할 수 있다.
그림 7 PWM 신호 생성 기능
두 번째는 'I/O 확장 기능'이다(그림 8). 이 기능은 I2C와 GPIO간에 데이터를 변환하여 1차 또는 2차 칩으로 전송하는 것으로, I2C의 직렬 데이터를 GPO의 병렬 데이터로 변환하여 전송하거나, GPI에 입력된 병렬 데이터를 모니터링하고 그 결과를 내부 레지스터에 저장하여 I2C에서 직렬 데이터로 출력할 수 있음. 저장해서 I2C에서 시리얼 데이터로 출력할 수 있다. 마치 I2C 단자를 확장한 것처럼 보이기 때문에 I/O 확장 기능이라고 부른다.
그림 8 I/O 확장 기능
세 번째는 '스탠바이 기능'이다(그림 9). 이번 신제품은 숫자 룰렛 스탠바이 상태로 전환 또는 이탈할 수 있도록 했다. 1차 칩 측에서 1차 칩의 스탠바이 상태 전환/이탈은 물론.
그림 9 스탠바이 기능
스탠바이 상태에서의 소비 전류는 6mA로 적다. 정상 동작 시 50m~100mA이다. 스탠바이 상태에서도 I2C와 최대 8비트 GPIO를 1차 칩과 2차 칩 사이에 주고받을 수 있다. 또한, 스탠바이 상태에서도 광전변환 장치를 통한 광전송이나 근거리 무선통신 장치를 통한 무선전송을 지속할 수 있다. 따라서 링크를 끊지 않고 정상 동작 상태에서 스탠바이 상태로 전환할 수 있다.
이상