맨위로가기

1-Wire

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

1-Wire는 단일 와이어를 사용하여 데이터를 전송하는 통신 프로토콜로, 온도 로거, 메모리 칩, iButton 등 다양한 장치에 사용된다. 각 장치는 고유한 64비트 일련 번호를 가지며, 마스터-슬레이브 방식으로 통신한다. 1-Wire는 간단한 통신 프로토콜로, 마이크로컨트롤러의 단일 핀으로 제어할 수 있으며, 여러 장치를 연결하여 센서 시스템을 구축하는 데 활용된다.

2. 사용 예시

1-Wire 장치는 다양한 형태로 제공되며, 시스템 내 여러 위치에 장착될 수 있다. 센서 및 액추에이터 시스템 구축에 활용되며, PC나 마이크로컨트롤러에 연결하여 사용할 수 있다. 각 칩은 고유 식별 코드를 가지며, 특히 iButton영어은 전자 키로 활용된다.

1-Wire는 2개의 선만으로 연결할 수 있다는 장점이 있다. 집적 회로에는 800pF콘덴서가 집적되어 있어 데이터 선으로부터 전력을 얻는다. 1-Wire 장치는 매우 작게 만들 수 있으며, 콘덴서나 손목시계용 버튼 전지처럼 보이기도 한다. 이를 iButton이라고 부른다.

1-Wire는 프린트 기판에 실장되거나 노트북, 휴대 전화 배터리 팩 등 다양한 부품의 일부로 사용된다. 실험용 기기, 데이터 수집 기기, 제어 시스템 연결에도 사용되며, 전화용 모듈러 커넥터 코드나 카테고리 5 케이블, RJ-11 등을 사용하고 소켓에 1-Wire 장치가 내장되기도 한다.

센서를 1-Wire로 연결한 네트워크를 MicroLan(등록 상표)이라고 부른다. MicroLan에는 온도 센서, 타이머, 전압 센서, 전류 센서, 배터리 모니터, 메모리 등을 연결한다. 이들은 버스 컨버터를 통해 PC에 연결할 수 있다. PC 측 인터페이스로는 USB, 시리얼 포트, 병렬 포트 등에서 1-wire로 변환하는 마스터 칩을 탑재하여 연결이 가능하다. MicroLan에 마이크로컨트롤러를 연결할 수도 있는데, 이 경우 범용 마이크로컨트롤러의 오픈 드레인 I/O 포트에서 풀업하여 쉽게 연결할 수 있다. Parallax BASIC Stamp, Microchip PIC 패밀리, 오픈 드레인 I/O를 가진 마이크로컨트롤러라면 모두 대응 가능하다.

JavaOne 1998에서는 ''iButton''을 링에 마운트한 ''JavaRing''이 소개되었다. JavaRing은 자바 가상 머신(자바 카드 2.0 호환)을 내장하고 있다.[10]

각 1-Wire 칩에는 고유 코드가 부여되어 있어 iButton을 키로 사용할 수 있다. 단순한 키 외에도 경보 장치 설정/해제 등에 사용된다.

2. 1. 응용 분야

1-Wire 장치는 집적 회로, TO-92 스타일 패키지, 그리고 iButton영어 (댈러스 키)라고 불리는 휴대용 형태 등 다양한 패키지로 제공된다. 댈러스 키는 시계 배터리와 유사한 작은 스테인리스 스틸 패키지이다. 제조업체는 1-Wire 버스를 사용하여 통신하는 단일 구성 요소보다 더 복잡한 장치도 생산한다.

1-Wire 장치는 시스템 내 다양한 위치에 장착될 수 있다. 제품 내 회로 기판의 구성 요소일 수도 있고, 온도 프로브와 같은 장치 내의 단일 구성 요소일 수도 있다. 모니터링 중인 장치에 부착될 수도 있다. 일부 실험실 시스템은 모듈러 커넥터 또는 CAT-5 케이블을 사용하여 1-Wire 장치에 연결된다. 이러한 시스템에서는 RJ11 (6P2C 또는 6P4C 모듈러 플러그, 일반적으로 전화에 사용됨)가 널리 사용된다.

많은 1-Wire 구성 요소를 함께 배선하여 센서 및 액추에이터 시스템을 구축할 수 있다. 각 1-Wire 구성 요소에는 1-Wire 버스에서 작동하는 데 필요한 모든 로직이 포함되어 있다. 예를 들어 온도 로거, 타이머, 전압 및 전류 센서, 배터리 모니터 및 메모리가 있다. 이러한 장치는 버스 변환기를 사용하여 PC에 연결할 수 있다. USB, RS-232 시리얼 및 병렬 포트 인터페이스는 MicroLan을 호스트 PC에 연결하는 데 널리 사용되는 솔루션이다. 1-Wire 장치는 다양한 공급 업체의 마이크로 컨트롤러에 직접 인터페이스할 수도 있다.

iButton영어은 "뚜껑"과 "베이스"에 접촉하는 소켓을 통해 1-Wire 버스 시스템에 연결된다. 또는 iButton영어을 클립으로 고정하지만 쉽게 제거할 수 있는 소켓을 사용하여 반 영구적으로 연결할 수도 있다.

각 1-Wire 칩에는 고유한 식별 코드가 있어, 특히 iButton영어을 전자 키로 사용하기 적합하다. 사용 예로는 잠금 장치, 방범 경보기, 컴퓨터 시스템, 제조업체 승인 액세서리, 타임 클럭, 스마트 금고의 택배 및 유지 보수 키 등이 있다. iButton영어은 이스탄불 대중교통의 아크빌 스마트 티켓으로 사용되었다.[10]

2. 2. 전원 공급 장치

애플의 맥세이프 및 맥세이프 2 커넥터가 장착된 전원 공급 장치, 디스플레이, 맥 노트북은 1-Wire 프로토콜을 사용하여 커넥터 가운데 핀을 통해 연결된 맥 노트북과 데이터를 주고받는다. 이 데이터에는 전원 공급 장치 모델, 와트 수, 일련 번호가 포함되며, 노트북은 전체 전력을 보내고 커넥터의 빨간색 또는 녹색 발광 다이오드를 켜는 명령을 보낸다.[3]

정품 노트북 전원 공급 장치는 1-Wire 프로토콜을 사용하여 세 번째 전선을 통해 전력, 전류 및 전압 정격에 대한 데이터를 노트북으로 전송한다. 어댑터가 요구 사항을 충족하지 않으면 노트북은 충전을 거부한다.[4]

1-Wire 버스는 2개의 선만으로 연결할 수 있다는 장점이 있다. 집적 회로에는 800pF콘덴서가 집적되어 있어 데이터 선으로부터 전력을 얻는다. 1-Wire 장치는 매우 소형화될 수 있으며, 콘덴서나 손목시계용 버튼 전지처럼 보이기도 한다. 이를 iButton이라고 부른다.

1-Wire는 프린트 기판에 실장되거나 노트북, 휴대 전화 배터리 팩 등 다양한 부품의 일부로 사용된다. 실험용 기기, 데이터 수집 기기, 제어 시스템 연결에도 사용되며, 전화용 모듈러 커넥터 코드나 카테고리 5 케이블, RJ-11 등을 사용하고 소켓에 1-Wire 장치가 내장되기도 한다.

센서군을 1-Wire로 연결한 네트워크를 MicroLan(등록 상표)이라고 부른다. MicroLan에는 온도 센서, 타이머, 전압 센서, 전류 센서, 배터리 모니터, 메모리 등을 연결할 수 있다. 이들은 버스 컨버터를 통해 PC에 연결할 수 있으며, PC 측 인터페이스로는 USB, 시리얼 포트, 병렬 포트 등에서 1-wire로 변환하는 마스터 칩을 탑재하여 연결한다. MicroLan에 마이크로 컨트롤러를 연결할 수도 있는데, 이 경우 범용 마이크로 컨트롤러의 오픈 드레인 I/O 포트에서 풀업하여 쉽게 연결할 수 있다. Parallax BASIC Stamp, Microchip PIC 패밀리, 오픈 드레인 I/O를 가진 마이크로컨트롤러라면 모두 대응 가능하다.

'''iButton'''은 버튼 전지 모양의 스테인리스 패키지에 1-Wire 부품을 넣은 것이다. 소켓에 터치하여 1-Wire 버스에 연결하며, 연결은 순식간에 이루어진다. 신용카드를 리더에 통과시키는 것과 비슷하며, 더 장시간 연결하는 경우에는 다른 모양의 소켓을 사용한다(끼워 넣는 형태).

JavaOne 1998에서는 ''iButton''을 링에 마운트한 ''JavaRing''이 소개되었다. JavaRing은 자바 가상 머신(자바 카드 2.0 호환)을 내장하고 있다.[10]

각 1-Wire 칩에는 고유 코드가 부여되어 있어 iButton을 키로 사용할 수 있다. 단순한 키 외에도 경보 장치 설정/해제 등에 사용된다.

3. 통신 프로토콜

DS2432 (EEPROM) 칩과의 통신을 위한 마스터였으며, 로직 분석기로 측정한 1-Wire 통신 프로토콜 예시. 1-Wire 출력에서 로직 하이는 FPGA의 출력이 트라이 스테이트 모드에 있으며 1-Wire 장치가 버스를 낮게 당길 수 있음을 의미. 로우는 FPGA가 버스를 낮게 당기는 것을 의미. 1-Wire 입력은 측정된 버스 신호. 입력 샘플 시간 하이에서 FPGA는 장치 응답을 감지하고 비트를 수신하기 위해 입력을 샘플링.


1-Wire 버스는 마스터 장치와 하나 이상의 슬레이브 장치 간의 통신을 위한 프로토콜이다.

3. 1. 통신 과정

모든 마이크로랜(MicroLan)에는 항상 전체 제어를 담당하는 마스터가 하나 있으며, 이는 PC 또는 마이크로컨트롤러일 수 있다. 마스터는 버스에서 활동을 시작하여 버스에서 충돌을 방지한다. 충돌을 감지하기 위해 마스터의 소프트웨어에 프로토콜이 내장되어 있으며, 충돌 후 마스터는 필요한 통신을 다시 시도한다.

1-Wire 네트워크는 단일 오픈 드레인 와이어와 단일 풀업 저항으로 구성된다. 풀업 저항은 와이어를 3 또는 5볼트까지 당긴다. 마스터 장치와 모든 슬레이브는 와이어를 구동하기 위한 단일 오픈 드레인 연결과 와이어의 상태를 감지하는 방법을 각각 가지고 있다. "1-Wire"라는 이름에도 불구하고 모든 장치는 데이터 와이어를 통해 반환 전류가 흐르도록 허용하기 위해 접지 연결을 위한 두 번째 도체도 가져야 한다.[5] 통신은 마스터 또는 슬레이브가 버스를 잠시 낮추어, 즉 풀업 저항을 자체 출력 MOSFET을 통해 접지에 연결할 때 발생한다. 데이터 와이어는 유휴 상태일 때 높으며, 따라서 제한된 수의 슬레이브 장치에 전원을 공급할 수도 있다. 16.3 kbit/s의 데이터 전송 속도를 달성할 수 있다. 또한 통신 속도를 10배 높이는 오버드라이브 모드도 있다.

짧은 1-Wire 버스는 마이크로컨트롤러의 단일 디지털 I/O 핀에서 구동할 수 있다. UART를 사용할 수도 있다.[6] 특정 1-Wire 드라이버 및 브리지 칩을 사용할 수 있다. USB "브리지" 칩도 사용할 수 있다. 브리지 칩은 100 m보다 긴 케이블을 구동하는 데 특히 유용하다. 최대 300미터의 꼬인 쌍선 (즉, 전화 케이블)이 제조업체에서 테스트되었다. 이러한 극단적인 길이는 풀업 저항을 조정해야 한다.

마스터는 최소 480 μs 동안 와이어를 0볼트로 당기는 ''리셋'' 펄스로 전송을 시작한다. 이렇게 하면 버스의 모든 슬레이브 장치가 재설정된다. 그 후, 슬레이브 장치가 존재한다면 마스터가 버스를 해제한 후 최소 60 μs 동안 버스를 낮게 유지하여 존재를 나타내는 "프레젠스" 펄스를 표시한다.

이진수 "1"을 보내기 위해 버스 마스터는 매우 짧은 (1–15 μs) 낮은 펄스를 보낸다. 이진수 "0"을 보내기 위해 마스터는 60 μs 낮은 펄스를 보낸다. 펄스의 하강 (음의) 에지는 슬레이브 장치에서 단안정 멀티바이브레이터를 시작하는 데 사용된다. 슬레이브의 멀티바이브레이터는 하강 에지 약 30 μs 후에 데이터 라인을 읽는다. 슬레이브의 내부 타이머는 저렴한 아날로그 타이머이다. 아날로그 허용 오차가 있어 타이밍 정확도에 영향을 미친다. 따라서 펄스는 여유를 두고 계산된다. 따라서 "0" 펄스는 60 μs여야 하고 "1" 펄스는 15 μs보다 길 수 없다.

데이터를 수신할 때 마스터는 각 비트를 시작하기 위해 1–15 μs의 0 볼트 펄스를 보낸다. 전송하는 슬레이브 장치가 "1"을 보내려는 경우 아무것도 하지 않으며 버스는 풀업된 전압으로 이동한다. 전송하는 슬레이브가 "0"을 보내려는 경우 데이터 라인을 60 μs 동안 접지로 당긴다.

기본 시퀀스는 리셋 펄스, 그 다음 8비트 명령, 그 다음 8비트 그룹으로 데이터가 송수신된다. 일련의 데이터가 전송될 때 8비트 CRC (약한 데이터 보호)로 오류를 감지할 수 있다.

많은 장치가 동일한 버스를 공유할 수 있다. 버스의 각 장치는 64비트 일련 번호를 가지며, 이 중 8비트는 체크섬으로 사용되므로 256 (7.2 × 1016 이상)개의 고유한 장치 식별자 "universe"를 사용할 수 있다. 일련 번호의 최하위 바이트는 장치 유형을 알려주는 8비트 숫자이다. 최상위 바이트는 표준 (1-Wire 버스용) 8비트 CRC이다.[8]

몇 가지 표준 브로드캐스트 명령과 특정 장치를 지정하는 데 사용되는 명령이 있다. 마스터는 선택 명령을 보낸 다음 특정 장치의 주소를 보낼 수 있다. 다음 명령은 주소가 지정된 장치에서만 실행된다.

1-Wire 버스 열거 프로토콜은 다른 단일화 프로토콜과 마찬가지로 마스터가 버스의 모든 장치 주소를 읽는 데 사용하는 알고리즘이다. 주소에는 장치 유형과 CRC가 포함되어 있으므로 주소 목록을 복구하면 버스의 장치에 대한 신뢰할 수 있는 인벤토리도 생성된다. 장치를 찾기 위해 마스터는 열거 명령을 브로드캐스트한 다음 주소를 브로드캐스트하고 각 주소 비트 다음에 "수신"한다. 슬레이브의 주소가 지금까지 전송된 모든 주소 비트와 일치하면 0을 반환한다. 마스터는 이 간단한 동작을 사용하여 유효한 주소 비트 시퀀스를 체계적으로 검색한다. 이 프로세스는 가능한 모든 56비트 숫자를 무차별 대입 검색하는 것보다 훨씬 빠르다. 유효하지 않은 비트가 감지되는 즉시 후속 주소 비트가 모두 유효하지 않다는 것을 알기 때문이다. 56비트 주소 공간은 이진 트리로 검색되며, 초당 최대 75개의 장치를 찾을 수 있다. 이 열거 프로토콜에 의해 장치 주소가 검색되는 순서는 결정적이며 장치 유형과 일련 번호에만 의존한다. 이러한 56비트를 비트 반전하면 Maxim에서 게시한 알고리즘 (Application Note 187에 정의된 알고리즘[7])을 사용하여 장치를 검색하는 순서가 생성된다. 검색 알고리즘은 주소 비트가 0이 아닌 1과 같은 경로를 먼저 검색하는 대체 형태로 구현할 수 있다. 이 경우 56개 주소 비트를 반전한 다음 반전하면 검색 순서가 생성된다.

버스의 장치 위치가 중요한 경우가 있다. 이러한 상황에서는 마이크로컨트롤러가 여러 핀을 사용하거나 제조업체에 버스를 끄거나 전달할 수 있는 1-Wire 장치가 있다. 따라서 소프트웨어는 순차적인 ''버스 도메인''을 탐색할 수 있다.[8]

3. 2. 장치 주소 지정

1-Wire 버스의 각 장치는 고유한 64비트 일련 번호를 가지며, 이 번호는 장치를 식별하고 네트워크 상에서 통신하는 데 사용된다.

  • 일련 번호 구조:


구성 요소설명
최하위 바이트 (8비트)장치 유형을 나타내는 8비트 숫자 (예: 온도 센서, 스위치 등)
중간 48비트제조사에서 할당하는 고유 식별 번호 (중복 없음)
최상위 바이트 (8비트)데이터 오류 검출을 위한 표준 8비트 CRC[8]


  • 장치 선택:

  • 마스터는 특정 장치와 통신하기 위해 선택 명령과 해당 장치의 64비트 주소를 함께 전송한다.
  • 주소를 수신한 장치는 자신의 주소와 일치하는지 확인하고, 일치하는 경우에만 다음 명령을 실행한다.

  • 버스 열거 (Enumeration):

  • 1-Wire 버스는 연결된 모든 장치의 주소를 자동으로 검색하는 열거 프로토콜을 지원한다.
  • 마스터는 열거 명령을 브로드캐스트하고, 주소 비트를 순차적으로 전송하며 각 비트에 대한 슬레이브의 응답(0 또는 1)을 확인한다.
  • 슬레이브는 현재까지 전송된 주소 비트와 자신의 주소가 일치하면 0을 반환한다.
  • 마스터는 이 방식을 통해 유효한 주소 비트 시퀀스를 체계적으로 검색하여 모든 연결된 장치의 주소를 파악한다.
  • 이 검색 방식은 56비트 주소 공간(최상위 8비트 CRC 제외)을 무차별 대입하는 것보다 훨씬 효율적이다. 유효하지 않은 비트가 발견되면 해당 비트 이후의 모든 주소 비트는 유효하지 않기 때문이다.
  • 56비트 주소 공간은 이진 트리 형태로 검색되며, 초당 최대 75개의 장치를 찾을 수 있다.[7]

  • 장치 위치:

  • 버스에 연결된 장치의 물리적 위치가 중요한 경우, 특수 1-Wire 장치를 사용하여 버스 연결을 분할하거나 제어할 수 있다.[8]

3. 3. 버스 열거 프로토콜

1-Wire 버스 열거 프로토콜은 마스터 장치가 버스에 연결된 모든 슬레이브 장치의 64비트 고유 식별 번호(주소)를 알아내는 데 사용하는 알고리즘이다. 이 주소에는 장치 유형과 CRC가 포함되어 있어, 주소 목록을 얻는 것은 곧 버스에 연결된 장치의 정확한 목록을 파악하는 것을 의미한다.

마스터는 열거 명령을 브로드캐스트한 후, 주소를 보내고 각 주소 비트 다음에 "수신"을 수행한다. 슬레이브의 주소가 지금까지 전송된 모든 주소 비트와 일치하면 0을 반환한다. 마스터는 이 간단한 동작을 이용하여 유효한 주소 비트 시퀀스를 체계적으로 찾는다. 이 과정은 가능한 모든 56비트 숫자(주소의 하위 56비트)를 무차별 대입으로 검색하는 것보다 훨씬 빠르다. 유효하지 않은 비트가 감지되면 즉시 후속 주소 비트가 모두 유효하지 않다는 것을 알 수 있기 때문이다.

56비트 주소 공간은 이진 트리 형태로 검색되며, 초당 최대 75개의 장치를 찾을 수 있다. 이 열거 프로토콜에 의해 장치 주소가 검색되는 순서는 결정적이며 장치 유형과 일련 번호에만 의존한다. Maxim에서 게시한 알고리즘(Application Note 187에 정의된 알고리즘[7])은 주소 비트가 0이 아닌 1과 같은 경로를 먼저 검색하는 대체 형태로 구현될 수 있다.

버스에 연결된 장치의 물리적 위치가 중요한 경우도 있다. 이러한 상황에 대비하여, 마이크로컨트롤러가 여러 핀을 사용하거나, 제조업체에서 버스를 끄거나 전달할 수 있는 1-Wire 장치를 제공하여, 소프트웨어가 순차적인 ''버스 도메인''을 탐색할 수 있도록 한다.[8]

4. 개발 도구

1-Wire 버스를 개발하거나 문제 해결 시 하드웨어 신호 검토가 매우 중요할 수 있다. 로직 분석기 및 버스 분석기는 고속 파형을 쉽게 볼 수 있도록 신호를 수집, 분석, 디코딩 및 저장하는 도구이다.

참조

[1] 웹사이트 Reading and Writing 1-Wire Devices Through Serial Interfaces https://www.analog.c[...] 2022-12-21
[2] 웹사이트 Overview of 1-Wire Technology and Its Use https://www.analog.c[...] 2023-07-21
[3] 웹사이트 "Teardown and exploration of Apple's Magsafe connector" http://www.righto.co[...] rightTo.com 2017-07-18
[4] 웹사이트 Hacking Dell Laptop Charger Identification http://hackaday.com/[...] hackaday.com 2015-11-30
[5] 웹사이트 1-Wire online tutorial. This tutorial will give you an overview of the 1-Wire protocol, its device operation and application solutions. http://www.maxim-ic.[...] 2009-03-13
[6] 웹사이트 Using a UART to Implement a 1-Wire Bus Master https://www.analog.c[...] 2002-09-10
[7] 웹사이트 1 Wire Search Algorithm (Application Note 187) https://www.maximint[...] 2020-10-02
[8] 웹사이트 iButton Overview http://www.maxim-ic.[...] 2008-12-18
[9] 문서 1-Wire Products http://www.maximinte[...]
[10] 뉴스 An introduction to the Java Ring http://www.javaworld[...] JavaWorld.com 1998-04-01
[11] 웹인용 Reading and Writing 1-Wire Devices Through Serial Interfaces https://www.analog.c[...] 2022-12-21
[12] 웹인용 Overview of 1-Wire Technology and Its Use https://www.analog.c[...] 2023-07-21



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com