UNI/O

UNI/O
UNI/O 버스 예: 싱글마스터와 4개의 슬레이브
SOT-23의 UNI/O 디바이스 예 및 미국 페니의 표면에 있는 웨이퍼 레벨스케일 패키지

UNI/O 버스 /'ju'ni'o'/는 임베디드 [1]시스템의 저속 통신을 위해 Microchip Technology에 의해 개발된 비동기 시리얼 버스입니다.버스는 마스터/슬레이브 구성을 사용하며, 장치 간에 데이터를 전달하기 위해 하나의 신호가 필요합니다.UNI/O 버스를 지원하는 첫 번째 장치는 2008년 5월에 출시되었습니다.

인터페이스

UNI/O 버스에는 다음 1개의 논리 신호가 필요합니다.

  • SCIO - 시리얼 클럭, 데이터 입출력[2]

버스당 1개의 마스터 디바이스만 허용되지만 여러 슬레이브 디바이스를 단일 UNI/O 버스에 연결할 수 있습니다.개별 슬레이브는 명령 오버헤드에 포함된 8비트~12비트 주소를 통해 선택됩니다.

마스터 디바이스와 슬레이브 디바이스 모두 3스테이트 가능한 푸시 풀 I/O 핀을 사용하여 SCIO에 접속합니다.이 핀은 버스를 구동하지 않을 때 고임피던스 상태가 됩니다.푸시풀 출력이 사용되므로 버스 충돌 시 높은 시스템 전류가 발생하지 않도록 슬레이브 디바이스의 출력 드라이버는 전류 제한이 있습니다.

UNI/O 버스의 아이돌 상태는 로직 하이입니다.풀업 저항기를 사용하면 SCIO를 구동하는 디바이스가 없을 [3]때 버스가 아이돌 상태로 유지되도록 할 수 있지만 동작에는 필요하지 않습니다.

데이터 부호화

비트 부호화

UNI/O 비트 부호화의 예

클럭과 데이터 신호는 맨체스터 인코딩을 통해 버스 상에서 결합되어 통신됩니다.즉, 각 데이터 비트는 일정한 시간 내에 전송됩니다("비트 주기"라고 함).

UNI/O 사양은 비트 주기에 특정 규칙을 배치합니다.

  • 그것은 마스터에 의해 결정됩니다.
    • 슬레이브는 시작 헤더 중 비트 기간을 회복하기 위해 마스터와 동기화해야 합니다.
  • 10 µs 및 100 µs(각각 100 kbit/s ~10 kbit/s 의 비트환율에 대응합니다).
  • 단일 버스 작동 내에서만 수정해야 합니다(새로운 버스 작동의 경우 마스터가 다른 비트 주기를 선택할 수 있습니다).

맨체스터 부호화에 따라 비트 값은 비트 주기 중간에 신호 천이에 의해 정의된다.UNI/O 에서는, IEEE 802.3 표기법을 사용하고, 0 및 1 의 값을 정의합니다.

  • 하이에서 로우로의 이행은 0을 나타냅니다.
  • 에서 고로의 이행은 1을 나타냅니다.

비트 주기는 연속적으로 발생하며 비트 주기 간의 지연은 허용되지 않습니다.

데이터 워드

UNI/O 데이터 바이트 및 확인 응답 시퀀스

UNI/O는 통신에 8비트 데이터 워드를 사용합니다.바이트가 먼저 MSB로 전송됩니다.

확인 시퀀스

에러 검출을 용이하게 하기 위해서, 송신되는 모든 데이터 바이트의 말미에 2비트 폭의 「확인 시퀀스」가 부가됩니다.첫 번째 비트는 "마스터 확인 응답"("MAK")이라고 하며 항상 마스터에 의해 생성됩니다.슬레이브 확인 응답("SAK")이라고 하는 두 번째 비트는 항상 슬레이브에 의해 생성됩니다.

MAK 비트는 다음과 같이 사용됩니다.

  • 마스터는 1비트(MAK)를 전송하여 버스 작동이 계속됨을 슬레이브에 알립니다.
  • 마스터는 0비트(NoMAK)를 전송하여 이전 바이트가 해당 버스 동작의 마지막 바이트임을 나타냅니다.

SAK 비트는 다음과 같은 방법으로 사용됩니다.

  • 풀 디바이스 주소가 송신되면(유효한 슬레이브가 선택되고), 이전 데이터 바이트와 후속 MAK 비트가 올바르게 수신되면 슬레이브는 1비트(SAK)를 송신합니다.
  • 에러가 발생하면, 슬레이브는 자동적으로 셧다운 해, 스탠바이 펄스가 수신될 때까지 그 이후의 통신을 무시합니다.이 시나리오에서는 SAK 비트 기간 중에는 아무것도 전송되지 않습니다.이 누락된 전이는 마스터가 감지할 수 있으며 NoSAK 비트로 간주됩니다.

명령어 구조

대기 펄스

UNI/O는 마스터가 슬레이브 장치를 강제로 리셋 상태로 만들기 위해 생성할 수 있는 신호 펄스를 정의합니다("스탠바이 모드"라고 합니다.스탠바이 펄스를 생성하려면 마스터가 최소 600µs 동안 버스를 로직 하이로 구동해야 합니다.

대기 펄스는 특정 조건에서 생성되어야 합니다.

  • 새 장치를 선택할 때 명령을 시작하기 전(POR/BOR 이벤트 후 포함)
  • 오류가 검출된 후

명령어가 오류 없이 완료되면 스탠바이 펄스를 생성하지 않고 동일한 디바이스에 대한 새로운 명령을 시작할 수 있습니다.

시작 헤더

UNI/O 시작 헤더

시작 헤더는 UNI/O 사양에 의해 정의된 특수한 바이트시퀀스로 새로운 명령어를 시작하는 데 사용됩니다.시작 헤더는 다음 요소로 구성됩니다.

  • 마스터는 최소 5 µs 동안 버스를 낮게 운전합니다.
  • 마스터는 0x55 데이터 바이트를 출력합니다.
    • 슬레이브 디바이스는 신호 천이를 카운트하여 0x55 바이트를 수신하는 데 필요한 시간을 측정합니다.이 시간은 슬레이브가 비트 주기를 결정하고 마스터와 동기화하기 위해 사용합니다.
  • 마스터는 MAK 비트에 대해 1을 출력합니다.
  • 슬레이브 디바이스는 시작 헤더에 이은SAK 비트 중에는 응답하지 않습니다.이는 동시에 응답하려고 하는 모든 슬레이브 디바이스에서 발생할 수 있는 버스 충돌을 피하기 위한 것입니다.

디바이스 주소

시작 헤더가 전송된 후 마스터는 디바이스 주소를 전송하여 현재 작업에 사용할 슬레이브 디바이스를 선택해야 합니다.디바이스 주소가 송신되면, 지정한 주소와 다른 주소를 가지는 슬레이브 디바이스는, 스탠바이 펄스가 수신될 때까지 셧다운 해, 이후의 통신을 모두 무시해 주세요.

UNI/O 에서는, 8 비트와 12 비트의 양쪽 모두의 디바이스 주소를 사용할 수 있습니다.8비트 어드레싱은 명령어 오버헤드가 적어 데이터 throughput이 향상되고, 12비트 어드레싱은 단일 버스에 공통 패밀리 코드를 가진 슬레이브를 더 많이 배치할 수 있습니다.슬레이브 디바이스를 설계할 경우 설계자는 사용할 주소 지정 방식을 선택해야 합니다.

8비트 어드레싱

8비트 어드레싱의 경우 디바이스 주소 전체가1 바이트로 송신됩니다.최상위 4비트는 UNI/O 버스 사양에서 마이크로칩에 의해 정의된 "패밀리 코드"를 나타냅니다.최하위 4비트는 디바이스 코드를 나타냅니다.디바이스 코드를 사용하면, 같은 버스상에서 공통의 패밀리 코드를 가지는 복수의 슬레이브 디바이스를 사용할 수 있습니다.디바이스 코드는 특정 슬레이브에 대해 수정하거나 사용자가 커스터마이즈할 수 있습니다.디바이스 코드의 선택과 커스터마이즈 방법(필요한 경우)은 슬레이브 디바이스 설계자의 책임입니다.

2009년 [1]11월 22일 현재 8비트 디바이스의 현재 패밀리 코드는 다음과 같습니다.

패밀리 코드 묘사
[0000] 예약필
[0011] 디스플레이 컨트롤러
0100 I/O 포트 확장기
1000 주파수/사분위/PWM 인코더, 실시간클럭
[1001] 온도 센서
[1010] EEPROM
[1011] 암호화/인증 디바이스
[1100] DC/DC 컨버터
[1101] A/D 변환기
[1111] 12비트 주소 지정 가능 디바이스

12비트 어드레싱

12비트 어드레싱의 경우 디바이스 주소는 2바이트로 전송됩니다.첫 번째 바이트의 최상위4비트(8비트 어드레싱의 패밀리코드에 대응)는 '1111'로 설정됩니다.다음 4비트는 12비트주소의 패밀리코드이며, 주소의 두 번째 바이트는 8비트 와이드 디바이스 코드입니다.디바이스 코드는 8비트어드레싱과 같은 정의 가이드라인을 따릅니다.

지정된 슬레이브 디바이스는 디바이스 주소의 양쪽 바이트를 수신할 때까지 선택되지 않기 때문에 첫 번째 디바이스 주소 바이트 이후의 확인 응답 시퀀스 중에 NoSAK가 발생합니다.

2009년 [1]11월 22일 현재 12비트 디바이스의 현재 패밀리코드는 다음과 같습니다.

패밀리 코드 묘사
[0000] 예약필
[1111] 예약필

명령어 바이트

마스터가 디바이스 주소를 전송하고 개별 슬레이브를 선택한 후 마스터는 슬레이브가 실행하는 특정 명령어의 8비트 값을 전송해야 합니다.사용 가능한 명령어는 각 슬레이브 디바이스의 설계자에 의해 결정되며 슬레이브마다 다릅니다.예를 들어 시리얼 EEPROM에는 온도 센서와 다른 명령어가 있을 수 있습니다.또한 슬레이브 디바이스 설계자는 명령어 실행에 필요한 데이터 바이트 수 및 필요 여부도 결정합니다.데이터 바이트가 필요한 경우 마스터 또는 슬레이브(명령어 유형에 따라 지정됨) 중 하나에 의해 명령어 바이트 뒤에 전송됩니다.

확인 응답 시퀀스 중에 마스터가 0(NoMAK)을 전송하거나 오류가 발생할 때까지 통신은 계속됩니다.오류가 발생하지 않는 경우 마스터가 선택하면 명령을 무기한 계속할 수 있습니다.


레퍼런스

  1. ^ a b c UNI/O Bus Specification (PDF), retrieved 2009-11-22
  2. ^ 1K-16K UNI/O Serial EEPROM Family Data Sheet (PDF), retrieved 2009-10-21
  3. ^ AN1194, Recommended Usage of Microchip UNI/O Bus-Compatible Serial EEPROMs (PDF), retrieved 2009-10-21

외부 링크

  • UNI/O 버스 규격-Microchip