개요: 1-Wire® 프로토콜은 원래 수년 전 짧게 연결되어 가까운 소자와의 통신을 위해 설계되었으며, 단일 마이크로프로세서 포트 핀에 보조 메모리를 추가하는 한 방법이었다. 고객들은 곧 버스를 확장하고 슬레이브 소자를 마스터로부터 한층 더 멀리 이동시키는 독특한 애플리케이션을 고안해 냈다. 문제는 버스 길이가 버스 마스터의 능력과 프로토콜의 한계를 모두 초과하면서 발생했다. 1-Wire 소자 설계는 추가된 기능과 프로토콜, 멀티드롭 (네트워킹) 능력, 내구성 있는 스틸 컨테이너 (iButton®) 그리고 매우 간헐적인 접촉 조건에서조차 유효한 데이터 전송을 보장하기 위한 메카니즘으로 그러한 요구에 부응했다.
본 문서에서는 기본적인 1-Wire 네트워킹 토폴로지에 대해 설명하고 신뢰성 있는 동작을 위한 권고사항도 제시한다. 또한 다양한 1-Wire 마스터가 이러한 권고사항에 미치는 영향에 대해서도 설명한다.
개요
1-Wire 프로토콜은 원래 수년 전 짧게 연결되어 가까운 소자와의 통신을 위해 설계되었으며, 단일 마이크로프로세서 포트 핀에 보조 메모리를 추가하는 한 방법이었다. 고객들은 곧 버스를 확장하고 슬레이브 소자를 마스터로부터 한층 더 멀리 이동시키는 독특한 애플리케이션을 고안해 냈다. 문제는 버스 길이가 버스 마스터의 능력과 프로토콜의 한계를 모두 초과하면서 발생했다. 1-Wire 소자 설계는 추가된 기능과 프로토콜, 멀티드롭 (네트워킹) 능력, 내구성 있는 스틸 컨테이너 (iButton) 그리고 매우 간헐적인 접촉 조건에서조차 유효한 데이터 전송을 보장하기 위한 메카니즘으로 그러한 요구에 부응했다. 이러한 발전에도 불구하고, 1-Wire 부품은 버스 마스터가 부적절하게 설계되거나 구현될 경우, 또는 짧은 라인 사용을 위해 고안된 마스터가 크게 확장된 버스를 사용하여 무리하게 서비스해야 할 때 성능을 제대로 발휘하지 못한다.
1-Wire 네트워크는 소자, 와이어 및 연결의 복잡한 조정이다. 네트워크는 토폴로지 (레이아웃)와 하드웨어 면에서 서로 다르다. 1-Wire 네트워크 길이와 로딩 제한에 대해 여러 가지 주장이 있어 왔지만 그 배경 상황이 불분명하기도 했다. 그 결과 사용자는 토폴로지가 규격 범위에 든다는 가정에도 불구하고 실패할 때 놀라곤 했다. 특수 버스 마스터들이 고안되었고 단일 네트워크 설계와 함께 시험되었으나 결과적으로 다른 레이아웃에서 사용하기에는 부적합하다는 것을 알게 될 뿐이었다.
최근 몇 개월 동안 다양한 형태, 크기 및 인구로 구성된 1-Wire 네트워크의 동작을 특성화하기 위해 광범위한 작업이 진행되었다. 이 애플리케이션 노트는 많은 토폴로지와 인터페이스에 대한 명확한 설명과 함께 신뢰성 있는 네트워크 동작을 위한 동작 매개변수를 제공한다.
범위
본 문서의 범위는 카테고리 5 트위스트 페어 동선을 사용하고 마스터가 5V 버스 전원을 제공하는 1-Wire 네트워크로 제한된다. (1-Wire 슬레이브 소자는 더 낮은 버스 전압에서 동작할 것이지만, 대규모 네트워크는 종종 손실이 너무 커서 저전압 조건에서 제대로 성능을 발휘하지 못한다).
본 문서에서는 암호식 iButton 및 Java™ 전력 공급방식 iButton에 전력을 공급하는 일과 관련된 특수 고려사항을 다루지 않으며, EPROM 유형 슬레이브 소자의 프로그래밍을 위한 요구사항도 다루지 않는다. 일반적으로 이러한 기능들은 마스터 끝 인터페이스로부터 상당히 떨어져 있는 거리에서 수행되도록 권장되지 않는다. 향후 애플리케이션 노트에서는 이 문제를 더 자세히 다루게 될 것이다.
또한 본 문서에서는 1-Wire 소자의 과구동 속도 동작에 대해 설명하지 않는다. 과구동 속도는 매우 짧은 연결에서만 사용하도록 고안된 것이고 1-Wire 네트워크에서 사용하기에는 부적합하다. 과구동 시 무게와 반경 제한은 향후 애플리케이션 노트에서 다루어지게 될 것이다.
이 애플리케이션 노트의 범위를 벗어난 조건에서 1-Wire 부품을 작동시킬 경우 문제가 발생할 수 있다. 1-Wire 소자와 함께 사용될 수 있는 와이어 유형, 토폴로지 및 파형의 조합은 무수하다. 이 애플리케이션 노트에서는 가장 일반적이고 기본적인 애플리케이션을 설명한다.
전례
1-Wire 구현과 관련하여 지난 수년간 다양한 공인 및 비공인 출처에서 발간된 수많은 애플리케이션 노트, 기술 개요 및 기타 문서가 있었다. 1-Wire 소자와 시스템이 성장 발전하면서 이러한 문서들의 일부 정보는 보강, 수정되거나 심지어 틀린 정보임이 입증되었다. 대규모 1-Wire 네트워크에 대한 완벽한 분석이 완료되기 전에 일부 잘못된 정보가 작성되었을 가능성이 있으며, 일부는 일화성 정보에 근거한 것일 수도 있다. 1-Wire 네트워크의 범위가 확대되면서 대규모 네트워크를 신뢰성 있게 만드는 특성에 대해 많은 정보가 습득되었으며, 소자 자체는 최근까지 계속 진행되고 있는 발전 과정을 겪어 왔다.
예를 들어, 초창기 애플리케이션은 5,000Ω범위에서 버스 풀업 저항의 사용을 제안했다. 이 값은 적당한 소규모 네트워크에 대해서는 효과가 있겠지만 대규모 네트워크에 대해서는 충분한 풀업 전류를 제공할 수 없다. 최근에는 1,000Ω 풀업 값과 심지어 능동 풀업 지원 회로가 일반 표준이 되었다. 또한 예전의 애플리케이션 데이터는 현재 우리가 장거리 라인 및 단거리 라인 모두에서 신뢰성 있는 성능을 구현하기 위해 매우 중요한 것으로 인식하고 있는 임피던스 정합 및 슬루 레이트 제어와 같은 사항을 무시하는 경향이 있었다.
최근에 신뢰성 있는 1-Wire 네트워크를 위해 궁극적인 버스 인터페이스를 생성하고 한도를 정의한다는 목표와 아울러 슬레이브 소자를 개선하기 위해 이들 소자의 설계 변경을 제안할 목적으로 한 가지 광범위한 연구가 완료되었다. 신뢰성 있는 네트워크 성능의 한도를 발견하기 위해 일부 토폴로지가 정의되었고, 일부 마스터 끝 인터페이스가 조립되었으며, 특수 테스팅 소프트웨어가 작성되었다. 이 애플리케이션 노트는 그러한 연구에서 습득된 정보를 포함하고 있다.
1-Wire 네트워크 토폴로지
1-Wire 네트워크는 구조 면에서 비교적 "자유로운 형식"이지만, 통상적으로 1-Wire 슬레이브 소자의 분산 및 상호 연결 와이어의 구성에 따라 몇 가지 일반화된 범주로 나눌 수 있다.
선형 토폴로지: 1-Wire 버스는 마스터에서 시작하여 가장 먼 슬레이브까지 확장되는 단일 쌍이다. 다른 슬레이브 소자들은 중요한 (3m 이상) 분기 또는 "스터브 (stub)" 없이 길게 이 쌍에 연결된다.
스터브 토폴로지: 1-Wire 버스는 마스터에서 시작하여 가장 먼 슬레이브 소자까지 확장되는 단일 주 라인(main line)이다. 다른 슬레이브 소자들은 길이가 3m 이상인 분기 또는 스터브를 통해 주 라인에 연결된다.
스타 토폴로지: 1-Wire는 마스터 끝에서 또는 마스터 끝 가까이에서 분리되어 분기의 끝을 따라 또는 그 끝에 슬레이브 소자가 연결되는 다양한 길이의 여러 분기로 확장된다.
상이한 토폴로지가 서로 섞여 있을 경우 네트워크를 위한 효과적인 제한을 결정하기는 더욱 힘들어진다. 일반적으로 설계자는 이러한 경우 가장 신중한 기준을 따른다.
1-Wire 네트워크 용어
1-Wire 네트워크를 논의할 때 네트워크 성능에 가장 중요한 측정을 설명하는 2개 용어, 즉 반경과 무게가 고안되었다.
네트워크의 반경은 마스터 끝에서 가장 먼 슬레이브 소자까지의 와이어 배선 길이이며 m로 표시된다.
네트워크의 무게는 네트워크에서 연결된 와이어의 총량이며 m로 표시된다.
예를 들어, 10m, 20m 및 30m 의 세 가지 분기를 갖는 스타 구성은 반경은 30m이고 (마스터에서 가장 먼 슬레이브까지의 거리) 무게는 60m이다 (네트워크의 총 와이어 길이, 10m + 20m + 30m).
일반적으로 네트워크의 무게는 케이블에서의 상승 시간을 제한하고, 반경은 가장 느린 신호 반사의 타이밍을 구성한다.
대체로 750m 이상의 반경을 갖는 1-Wire 네트워크는 없다. 이 거리에서는 케이블의 시간 지연으로 인해 프로토콜이 올바로 동작하지 않는다. 그러나 실제로는 다른 요인들로 인해 반경은 이보다 작은 값으로 제한된다.
슬레이브 소자 무게
슬레이브 소자 (iButton 및 기타 1-Wire 소자)는 또한 네트워크에 무게를 추가한다. 각 소자는 단거리 와이어의 무게 정도의 무게를 추가하므로, 소자들은 등가 와이어 무게의 관점에서 정격될 수 있다. 네트워크 설계 시 소자의 무게를 고려해야 한다. iButton 폼에서 슬레이브 소자는 솔더링하여 삽입된 부품으로 패키징된 슬레이브 소자보다 무게가 더 많이 나간다. (iButton은 이동성 때문에 필요해진 기계적 보호 및 ESD 보호를 추가했으며, 이로 인해 무게가 추가된다). iButton의 무게는 약 1m이고, 비 iButton 유형 슬레이브의 무게는 약 0.5m이다.
이것은 예를 들어, 100개의 iButton 소자를 네트워크에 연결할 경우 총 네트워크 무게가 100m까지 증가하게 되고, 이로 인해 허용되는 와이어의 총량은 100m까지 감소한다는 것을 의미한다. 회로 보드 트레이스, 커넥터 및 ESD 보호 소자들도 네트워크에 무게를 추가한다.
무게는 여러 요인에 의해 영향을 받지만, 분명히 가장 큰 무게 추가 요소는 정전용량이다. 일반적으로 ESD 회로와 PC 보드 트레이스의 무게 추가는 약 24pF/m의 비율로 정전용량과 관련이 있다. 1-Wire 버스에서 24pF를 나타내는 하나의 회로 보드 트레이스 또는 소자는 약 1m의 무게를 추가한다.
스위칭 네트워크
무게와 반경을 증가시키지 않고 네트워크를 복잡성을 증대시키기 위해 네트워크를 한 번에 하나씩 전자적으로 스위칭 온 되는 여러 개의 섹션으로 분할하는 방법이 고안되었다. DS2409와 같은 1-Wire 스위칭 소자를 사용하면, 네트워크가 물리적으로는 한 토폴로지와 유사하고 전기적으로는 다른 토폴로지와 유사할 수 있다. 달리 말하면, DS2409 스위치가 갈라지는 각 분기에 DS2409 스위치가 존재하는 스타 구성은 각 분기가 스위칭 인되고 다른 분기는 스위칭 아웃되므로 실제로 선형 토폴로지와 유사하게 된다.
위 예는 반경 150m이고 무게가 450m인 스타 토폴로지 네트워크의 모습을 나타낸 것이다. 그러나 한 번에 하나씩 각 스위칭 경로를 고려하면 네트워크는 실제로 선형 토폴로지가 되고 무게는 150m에 불과하다.
일반적으로 비스위칭 네트워크에 대한 설명은 스위칭 네트워크의 각 세그먼트에 적용될 수 있다.
1-Wire 네트워크 제한
몇 가지 요인이 네트워크의 최대 반경 및 무게를 결정짓는다. 이러한 요인의 일부는 제어가 가능하고 일부는 제어가 불가능하다.
마스터 끝 인터페이스는 1-Wire 네트워크의 허용 규모에 많은 영향을 끼친다. 인터페이스는 케이블 및 슬레이브 소자의 무게를 극복하기 위해 충분한 구동 전류를 제공해야 한다. 인터페이스는 또한 규격 내에 있고 네트워크의 충방전 시간을 위해 최적화된 타이밍을 갖는 1-Wire 파형을 수행해야 한다. 또한 신호가 다시 라인으로 반사되어 다른 네트워크 소자에 간섭을 발생시키지 않도록 네트워크에 적합한 임피던스 정합을 제공해야 한다.
소규모 네트워크일 경우 매우 간단한 마스터 끝 인터페이스가 허용된다. 정전용량은 낮고, 반사 에너지는 너무 일찍 도달하여 문제를 제기할 수 없으며 케이블 손실은 최소이다. 간단한 액티브 (FET) 풀다운 및 패시브 (저항) 풀업으로 충분하다. 그러나 라인 길이가 길어지고 점점 더 많은 소자가 연결되면 복잡한 전기적 요소들이 개입되고 마스터 끝 인터페이스는 이것들을 처리할 수 있어야 한다.
네트워크 반경은 케이블 저항과 신호 레벨 하락은 물론, 파형 반사 타이밍 및 케이블에 의한 시간 지연에 의해 제한된다. 약 750m에서 케이블의 맨 끝에 있는 슬레이브로부터 다시 마스터로 응답이 오기까지의 지연은 쉽게 프로토콜 제한을 초과한다.
네트워크 무게는 1-Wire 프로토콜을 만족시키기에 충분할 정도로 신속히 충전 및 방전될 수 있는 케이블의 능력에 의해 제한된다. 단순한 저항 풀업의 무게 제한은 약 200m이다. 일부 지능형 1-Wire 마스터 설계는 로직 제한 시 더 높은 전류를 제공하는 액티브 풀업을 사용하여 이 문제를 극복했으며, 최대 지원 가능 무게를 500m 이상까지 확장했지만 그 대신 마스터 쪽 인터페이스가 훨씬 더 복잡해졌다. 그럼에도 불구하고 400m의 케이블을 구동하고 100개의 iButton 소자와 동시에 통신할 수 있는 능력은 추가 비용을 부담할 만한 가치가 충분히 있다.
기생 전력 공급 문제
1-Wire 파형은 통신을 위해 충분한 양이어야 할 뿐 아니라 슬레이브 소자를 위한 동작 전력도 제공해야 한다. 각각의 슬레이브는 버스의 전압이 내부 에너지 저장 커패시터의 전압보다 클 때 버스로부터 전력을 "훔쳐온다." 네트워크의 무게가 과도해지면 마스터가 공급하는 전류는 슬레이브에서 동작 전압을 유지할 수 있을 만큼 충분하지 않을 수 있다.
기생 전력의 최악의 경우 시나리오는 마스터가 0 비트를 매우 길게 연속하여 발행하는 경우이다. 이 경우, 라인은 로우 상태에서 대부분의 시간을 소비하고 슬레이브를 재충전할 기회가 거의 없게 된다. 버스가 비트 간 복구 시간 동안 충분한 전압에 도달하고 복구 시간이 충분히 길 경우에는 문제가 없다. 슬레이브 내부 동작 전압이 떨어지면 슬레이브가 버스로 하여금 0 비트를 만들도록 버스를 구동할 수 있는 능력이 감소되며, 슬레이브의 타이밍이 변경된다. 최후에 기생 전압이 임계 레벨로 떨어지면 슬레이브는 리셋 상태에 진입하고 응답을 멈춘다. 이때 슬레이브가 다시 충분한 동작 전압을 받으면 슬레이브는 존재 펄스를 발행하고 그 과정에서 다른 버스 활동을 손상시킬 수 있다. 네트워크가 슬레이브에서 동작 전력을 유지하기 위한 에너지가 불충분하면 데이터 의존적이고 간헐적인 오류가 발생한다.
스타 토폴로지
테스트 결과 비스위칭 스타 형 네트워크 토폴로지 (마스터에서 여러 개의 분기가 갈라지는 토폴로지)는 신뢰성 있는 구현이 가장 어렵다. 다양한 분기의 접합으로 인해 마스터에 대단히 부정합한 임피던스가 제공되고, 한 분기의 끝에서의 반사는 반경이 아닌 거의 네트워크 무게에 해당하는 거리를 이동할 수 있으며 데이터 오류를 초래한다. 이러한 이유 때문에 비스위칭 스타 토폴로지는 권장되지 않으며, 이러한 토폴로지에서 성능은 보장되지 않는다. 다시 한번 강조하는데, 비스위칭 스타 형 토폴로지는 권장되지 않는다.
분산 임피던스 정합
모든 1-Wire 버스 설계의 목표는 언제나 최소화와 단순화, 그로 인한 저가였다. 슬레이브 소자 자체 이외에 분산 부품을 네트워크에 사용하는 일은 항상 회피되었다. 그러나 일부 고객은 분산 저항을 사용하여 스터브 연결의 영향력을 감소시킴으로써 버스 신뢰성을 높일 다양한 방법을 실험해왔고 성공을 거두었다.
스터브가 1-Wire 버스에 연결되면 스터브가 연결되는 지점에서 임피던스 부정합이 존재한다. 스터브 끝에서의 반사는 주 트렁크로 복귀하고 스터브의 길이에 의해 지연된다. 이러한 반사는 네트워크의 다른 슬레이브 소자에 문제를 초래할 수 있다. 스터브와 직렬로 연결된 저항은 이러한 부정합의 심각성을 감소시키고 반사 에너지의 진폭도 감소시키며, 따라서 스터브가 발생시킨 반사를 주 트렁크로부터 격리시킨다.
이러한 아이디어를 가장 성공적으로 구현한 것은 스터브가 주 트렁크에 연결되는 각각의 지점에서 150Ω 저항을 사용한 경우이다. 이것은 연결 지점에서의 부정합을 약 20%까지 감소시키고 결과 스터브 반사를 약 40%까지 약화시킨다. 그러나 추가된 저항 때문에 잡음 내성이 약 80%까지 저하되므로 주의를 기울여야 한다. (테스트 결과 100Ω 저항 값을 사용하면 좋은 성능이 유지되고 잡음 내성을 크게 저하시키지 않는 것으로 나타났다).
참고: DS2480B 마스터 끝 인터페이스 소자(DS9097U PC 인터페이스 및 일부 다른 1-Wire 버스 인터페이스에서 사용되는)는 이러한 추가된 저항 때문에 동적 풀업이 악영향을 받으므로 이 방법은 이러한 유형의 인터페이스에서 실패하게 된다. 분산 저항 방법의 성공적인 애플리케이션은 언제나 높은 데이터 입력 임계값을 가진 맞춤 마스터 끝 드라이버를 사용하여 이루어졌다.
현재 및 미래의 마스터 끝 인터페이스 소자
수년간 개인용 컴퓨터의 수많은 마스터 끝 인터페이스가 만들어져 왔고 1-Wire 네트워크를 마이크로컨트롤러에 인터페이싱하기 위해 매우 다양한 방법이 채택되었으나 이러한 설계에 일관성은 거의 없었다. 각 마스터는 각기 다른 목적을 가진 용도로 설계되었고 대체 서비스로 사용될 경우 항상 신뢰성이 있는 것은 아니었다. 마스터 끝 하드웨어는 종종 1-Wire 네트워크 설계의 제한을 결정하는 데 있어서 매우 중요한 요인이다. 짧은 와이어와 가까이에 설치된 iButton 프로브를 위해 마련된 간단한 하드웨어 인터페이스는 대규모 네트워크 및 복잡한 와이어링 체계에 연결될 경우 원활히 작동하지 않을 수 있다. 장거리 라인을 위한 일부 복잡한 드라이버는 중단거리 네트워크와 함께 사용될 경우 제대로 성능을 발휘하지 못한다.
현재 가장 일반적으로 사용되는 마스터 끝 하드웨어 인터페이스는 다음과 같다.
DS9097 PC 직렬 포트 어댑터 (신규 설계 용이 아님)
DS9097U PC 직렬 포트 어댑터 (DS2480B 기반)
DS1410E PC 병렬 포트 어댑터
EPROM 프로그래밍이 가능한 DS9097U-E25 PC 직렬 포트 어댑터
2kΩ 풀업 저항이 있는 마이크로컨트롤러 포트
슬루 레이트가 제한된 FET 및 1kΩ 저항이 있는 마이크로컨트롤러
고급 버스 인터페이스가 있는 마이크로컨트롤러
DS2480B 버스 인터페이스가 있는 마이크로컨트롤러
일반적으로 사용되는 이러한 각각의 마스터 끝 인터페이스 소자는 서로 다르다. 각 소자는 소자가 연결된 컴퓨터 포트에서 이용할 수 있는 리소스가 서로 다르고, 서로 다른 애플리케이션을 위해 설계되었다. 사실 이러한 소자 모두가 고객이 구현하기 시작한 한층 더 복잡한 네트워크에 아주 적합한 것은 아니다. 더 새롭고 더 나은 마스터 쪽 하드웨어가 설계되고 테스트되고 있지만, 사용자는 1-Wire 네트워크 범주의 현재 및 향후 제한사항에 대해 알고 있을 필요가 있다.
마스터 끝 통합 회로인 DS2480B 직렬-1-Wire 컨버터는 DS9097U 시리즈 어댑터에서 그리고 일부 다른 1-Wire 버스 준비 제품에서 사용된다. DS2480B는 효율적인 장거리 라인 동작을 위해 설계되었으며 중단거리 네트워크에서는 신뢰성이 약간 떨어진다. 이것은 사용자들에게 혼란을 초래했다. 간단하고 값이 저렴한 R-C 회로는 DS2480B와 네트워크 사이에 적용될 수 있으며 중단거리 네트워크 성능 및 신뢰성을 크게 개선하게 된다. (부록 D 참조).
위 목록에서 언급된 "고급 버스 인터페이스를 갖춘 마이크로컨트롤러"는 모든 드라이버의 최상의 기능을 통합하고 가장 신뢰성 있는 다용도 마스터 끝 인터페이스를 제공하기 위해 개발되고 있는 새로운 회로이다. 이 인터페이스는 부록 C에 회로도에 제시되어 있다.
현재 사용 가능한 인터페이스에 대한 권장사항
광범위한 1-Wire 버스 테스팅 결과, 위에 나열된 표준 인터페이스 소자를 사용할 때 준수해야 할 실무적인 제한에 관한 데이터가 도출되었다. 다음에 제시된 내용은 이러한 마스터를 갖춘 1-Wire 네트워크를 설계할 때 준수해야 할 제한사항이다.
단순한 마이크로컨트롤러 포트 핀 인터페이스는 중대규모 네트워크를 지원하기 위해 필요한 전류를 구동할 수 없다. 풀업 저항 값은 종종 포트 핀 풀다운 능력에 의해 약 2,200Ω로 제한되며, 이는 무거운 네트워크(높은 무게 값을 갖는 네트워크)를 배제시킨다. 포트 핀 전용 인터페이스는 약 최대 3m의 테이블 윗면 반경과 무게를 갖는 네트워크로 제한되어야 한다. (부록 A 참조).
슬루 레이트 제어와 1,000Ω 풀업 저항을 갖는 FET 드라이버를 포함하는 마이크로컨트롤러 인터페이스는 중규모 네트워크를 지원할 수 있다. 최대 200m의 반경과 최대 200m의 무게는 이러한 인터페이스를 사용하여 신뢰성 있게 지원된다. (부록 B 참조).
DS1410E 병렬 포트 인터페이스는 매우 짧은 (로컬) iButton 프로브와 함께 사용하도록 설계되었다. 이 인터페이스는 중대규모 1-Wire 네트워크 지원을 위해 권장되지 않는다. 반경은 이 마스터의 경우 약 3m의 테이블 윗면 거리로 제한되어야 한다. 무게는 40m 미만이어야 한다.
DS9097 직렬 포트 인터페이스는 매우 짧은 (로컬) iButton 프로브와 함께 사용하도록 설계되었다. 이 인터페이스는 중대규모 1-Wire 네트워크 지원을 위해 권장되지 않는다. 반경은 이 마스터의 경우 약 3m의 테이블 윗면 거리로 제한되어야 한다. 무게는 40m 미만이어야 한다.
DS2480B 기반 마스터 (DS9097U, TINI). 이 마스터를 1m 이상의 네트워크에서 사용할 경우 R-C 필터가 항상 포함되어야 한다(부록 D 참조). 필터를 사용하면 이 마스터는 최대 200m의 반경 또는 무게를 갖는 네트워크를 신뢰성 있게 지원할 수 있다. DS2480B 인터페이스 소자는 또한 1-Wire 네트워크 신뢰성 및 성능을 개선하기 위해 사용될 수 있는 가변 타이밍을 갖는다는 점에 유의해야 한다. 이러한 타이밍은 일부 소프트웨어에 의해 최적의 값으로 설정되지만(TMEX의 경우) 모든 소프트웨어에 의해 조정되지 않을 수 있다. 적합한 타이밍은 신뢰성 있는 네트워크 성능에 매우 중요하다. (부록 E 참조).
고급 버스 인터페이스는 대규모 및 소규모 1-Wire 네트워크와 함께 사용하도록 특별히 설계된 회로이다. 이 회로는 무게 및 반경 값이 최대 500m까지 높은 네트워크에 연결될 때 신뢰성 있는 동작을 수행하도록 특수 능력을 갖추고 있다. (부록 C 참조).
신뢰성 있는 1-Wire 네트워크를 만드는 요소는 무엇인가?
1-Wire 네트워크에서 오류가 발생할 경우, 오류는 종종 검색 알고리즘이 수행될 때 알 수 없는 소자의 "손실"로 나타난다. 물리적으로 존재하는 소자들이 검색 결과에 나타날 수도 있고 사라질 수도 있다. 때때로 네트워크 또는 소자에서 사소한 것처럼 보이는 변화가 소자 검색의 결과에 현격한 영향을 끼친다. 왜 그런가?
1-Wire 버스에서 이루어지는 모든 활동 중에서 소자 검색은 버스 문제가 있을 때 수행하기에 가장 복잡하고 가장 어렵다. 검색은 둘 이상의 슬레이브 소자가 동시에 버스를 로우로 구동하는 유일한 시간이다(존재 펄스는 예외). 이것은 검색 시 버스 조건은 선택된 단일 슬레이브 소자와의 일반적인 통신 때와는 크게 다르다는 것을 의미한다. 다수의 슬레이브 소자 중 하나가 에지를 놓치거나 펄스를 구분하지 못할 경우, 검색 알고리즘과의 조화를 잃게 되고 이후 연속된 검색 비트에서 오류를 초래하게 된다. 이것은 파형의 상승 에지에서 글리치가 발생하거나 또는 파형이 유효한 로우 레벨에 도달하지 못하거나, 또는 검색 시 소자의 전력 부족을 초래하는 버스 문제가 검색 실패를 초래한다는 것을 의미한다. 대부분의 검색 알고리즘은 검색 알고리즘을 종료하고 다시 시작함으로써 검색 실패를 처리하므로, 이 경우 아직 발견되지 않은 소자는 검색으로부터 떨어져 나가는 것처럼 보인다. 실패가 한 슬레이브 소자의 한 비트에서 발생했어도 다수의 슬레이브에 영향이 미칠 수 있다.
검색 알고리즘은 일반적으로 잡음으로 인해 소자가 누락될 수 있다고 가정한다. 또한 새로운 iButton을 네트워크에 연결할 때 순간적인 단락 및 새로 도착한 소자로부터의 불가피한 존재 펄스를 포함하게 되는 터치-접촉 iButton을 포함하는 네트워크에서도 이러한 일이 가능하다. 이러한 이벤트의 타이밍이 잘못된 경우 이벤트가 검색 활동을 간섭하게 된다. 이러한 알고리즘은 소자들이 "디바운스" 기간이라고 불리는 일정 시간 동안 누락으로 관찰된 후에야 발견된 슬레이브 목록으로부터 슬레이브 소자를 제거함으로써 이러한 문제를 처리한다.
검색 실패의 원인은 매우 다양하다. 가장 일반적인 원인은 기생 전력의 부족(대규모 반경, 복잡한 네트워크의 경우), 파형 에지에서의 반사(중소규모 반경, 간략한 네트워크의 경우), 그리고 파형 하강 에지에서의 링잉으로 인한 DS2480B 기반 인터페이스에서 잘못된 동적 풀업 트리거링 등이다.
검색 실패는 종종 네트워크, 네트워크에 연결된 슬레이브 또는 "달 모양 단계"에서의 사소한 변화에 대단히 민감한 것처럼 보인다. 이것은 관찰 대상 네트워크가 경계선 상태에 있기 때문이고, 매우 사소한 변경으로 인해 검색이 성공 또는 실패할 수 있기 때문이다. 달리 말하면, 검색 알고리즘에서 모든 소자가 신뢰성 있게 발견되어 성공적인 것처럼 보이는 네트워크가 실제로는 실패 직전에 가까울 수 있다. 약간의 하락이 갑자기 대재난과 같은 실패를 만들어낼 수 있다 (단 하나의 잘못된 비트가 검색을 중지시키고 부품을 사라지게 만든다는 사실을 기억해야 한다). 케이블, 소자 및 연결에서 좋은 안전 마진과 좋은 변수 허용오차를 갖는 신뢰성 있는 네트워크를 보장하기 위해 무엇보다도 사용자가 공표된 규격 및 가이드라인을 준수해야 하는 이유도 이 때문이다.
신뢰성 있게 그리고 일관성 있게 검색을 수행하는 네트워크는 일반적으로 기타 모든 1-Wire 기능을 신뢰성 있게 수행할 수 있다.
부정확한 1-Wire 타이밍
소프트웨어(펌웨어)가 1-Wire 파형을 발생시키기 위해 사용될 경우 (파형을 "비트 뱅잉 (bit-banging)"이라고도 함), 즉시 나타나지 않는 실수를 범하기 쉽다. 1-Wire 마스터를 프로그래밍할 때 범하는 가장 일반적인 실수는 타임 슬롯의 선두 에지 후 너무 늦게 슬레이브로부터 데이터를 샘플링하는 것이다. 슬레이브 소자는 온도와 전압이 변하면서 광범위하게 타이밍이 변할 수 있다. 이 소자들은 또한 프로세스 변화로 인해 배치마다 변경될 수 있다. 파형이 30µs에서 샘플링되는 설계는 실험실에서는 완벽한 성공을 거둘 수 있고 심지어 생산에 들어갈 수 있지만 선적되는 제품에 잘못된 타이밍을 제공한다. 나중에 배치 또는 조건이 변하고 슬레이브 부품이 32µs에서 29µs로 이동할 때, 마스터 끝 인터페이스가 오류를 발생한다. 실험실 환경에서 시스템 동작이 완벽해 보여도 규격에 근거하여 파형 매개변수를 검증하는 것이 무엇보다 중요하다.
향후 애플리케이션 노트에서는 마스터 끝 설계자가 자신의 설계를 자체적으로 검증하고 이 설계가 모든 필수 규격을 만족한다는 확신을 얻을 수 있도록 체크리스트를 제공할 예정이다.
결론
모든 전자 부품과 마찬가지로 전자 시스템 지원은 신뢰성 있는 동작을 보장하기 위해 모든 사용 조건에서 소자 규격을 만족해야 한다. 고객들이 iButton 및 1-Wire 시스템 및 네트워크를 구현할 때 항상 신뢰성 있는 소자 통신이 이루어질 수 있도록 주의를 기울여야 한다.
부록 A. 기본적인 CPU 포트 핀 전용 인터페이스
부록 B. 개선된 CPU 버스 인터페이스
부록 C. 고급 1-Wire 네트워크 드라이버
이 마스터 끝 인터페이스 회로는 매우 가벼운 것에서부터 매우 무거운 것까지 최대 500m의 네트워크에서 신뢰성 있는 동작을 달성하기 위해 소프트웨어로 제어되는 "지능형" 강력 풀업을 사용한다. 신중한 임피던스 정합(하이 드라이버 및 로우 드라이버 모두)도 반경 제한을 500m까지 확대한다. 풀업은 1-Wire 프로토콜이 버스가 높은 레벨에 있다고 간주할 때마다, 그리고 버스가 샘플링되고 높은 레벨에 있는 것으로 판명된 이후 읽기가 진행되는 동안 켜진다. (Java iButton 및 고전류 센서에 전력을 공급하고 EPROM 소자를 프로그래밍하기 위한 강력 풀업은 여기에 제시되어 있지 않다. 고급 인터페이스 회로에 대한 자세한 내용은 향후 발표될 애플리케이션 노트를 참조한다).
부록 D. 중단거리 네트워크에서 DS2480B 인터페이스를 지원하는 R-C 필터
이 간단한 R-C 필터는 최대 200m의 무게를 가진 중단거리 라인에서 DS2480B 동작을 개선시킨다. 이 필터는 DS2480B 기반 마스터 끝 인터페이스를 사용할 때 1m 이상 100m 미만의 네트워크에서 항상 사용되어야 한다.
부록 E. 최적화된 DS2480B 타이밍
DS2480B 직렬-1-Wire 컨버터(DS9097U 시리즈 PC 인터페이스 어댑터에서 사용됨)는 소규모 네트워크를 위해 최적화된 기본 1-Wire 타이밍을 갖는다. 이러한 설정은 중대규모 네트워크에서 항상 좋은 성능을 발휘하지는 않는다.
DS2480B에서 타이밍 및 슬루 레이트 설정은 소프트웨어 제어를 통해 조정될 수 있다. 실제로 TMEX 동작 시스템은 이 인터페이스와 함께 사용될 때 흔히 이 값을 조정한다. 프로그래머들은 DS2480B 인터페이스가 신뢰성 있는 성능을 위해 항상 "유연 모드"에 놓여야 하고 최적화된 타이밍 값으로 조정되어야 한다는 점을 인식해야 한다. (유연 모드 설정에 대한 자세한 내용은 DS2480B 데이터 시트를 참조한다).
DS2480B에서 조정될 수 있는 설정은 다음과 같다.
풀다운 슬루 레이트 제어
버스가 높은 레벨에서 낮은 레벨로 연결되는 속도이다. 극도로 빠른 하강 시간(높은 슬루 레이트)은 링잉을 초래하며 1-Wire 버스에서 불필요한 신호를 발생시키고 유효한 데이터 파형에 간섭을 초래할 수 있다. 극도로 느린 상승 및 하강 시간은 타이밍 요건을 충족하지 않을 수 있으며 천이 기간이 잡음 및 반사 효과에 노출될 수 있다.
1 쓰기 로우 타임
각 타임 슬롯을 시작하는 로우 진행 펄스의 길이이다. 이 펄스가 너무 좁으면 긴 라인의 끝은 펄스가 종료되기 전에 유효한 로우 레벨에 도달하지 못할 수 있다.
데이터 샘플 오프셋/복구 시간
이 매개변수는 슬레이브로부터 나온 데이터가 샘플링되는 시점을 정의한다. 이 매개변수가 너무 작으면 라인은 샘플이 발생하기 전에 유효한 높은 레벨까지 상승할 충분한 시간을 가지지 못할 수 있다. 이 시간이 너무 길면 범위 중에서 빠른 쪽 끝에 가까운 곳에서 동작하는 슬레이브가 잘못 읽힐 수 있다. 이 매개변수는 또한 슬레이브에 존재하는 기생 커패시터들이 재충전되어야 하는 비트 간 시간을 정의한다.
장단거리 버스 라인을 사용하여 테스트한 결과 모든 네트워크 영역에 대한 최적의 타이밍은 다음과 같다.
풀다운 슬루 레이트: 1.37V/µs
1 쓰기 로우 타임: 11µs
데이터 샘플 오프셋/복구: 10µs
이러한 타이밍은 가장 최신의 샘플 시간 (21µs, 아래 참고 참조)을 제공하고 슬루 레이트가 잘 제어되는 가장 긴 복구 시간 (10µs)을 제공한다.
이러한 타이밍은 풀업 전압이 4.5V ~ 5.5V 범위에 있는 네트워크에만 적용된다.
1-Wire 타이밍 규격 및 샘플 시간
1-Wire 소자 타이밍 규격은 타임 슬롯이 시작된 후 1µs ~ 15µs의 샘플 시간(슬레이브로부터 나온 데이터가 마스터에 의해 읽히는 시점)을 요구한다. 최적의 샘플 시간은 15µs 이다. 이것은 타임 슬롯 시작 펄스와 케이블의 상승 시간을 위해 가능한 한 많은 시간을 허용하되 최단 15µs만에 0 비트 하나를 종결시킬 수 있는 최악의 경우의 고속 슬레이브 소자를 위반하지 않는다.
케이블 및 슬레이브 무게를 지원하는 네트워크에서 이 15µs 규격은 순식간에 제한 요인이 된다. 그러나 1-Wire 네트워크는 거의 언제나 5V 풀업 전력을 보장할 수 있는 마스터에 의해 구동되기 때문에, 우리는 규격을 좁혀 샘플 시간을 우리에게 유리하도록 이동시킬 수 있다.
1-Wire 슬레이브 소자의 속도에 영향을 미치는 요인은 동작 전압과 온도이다. 1-Wire 슬레이브에 대해 지정된 동작 범위는 2.8V ~ 6V의 풀업 전압과 -40°C ~ +85°C범위의 온도를 요구한다. 이러한 동작 조건을 고려할 때 슬레이브 소자의 시간 기반은 15µs ~ 60µs 범위에서 변할 수 있다.
풀업 전압을 4.5V ~ 5.5V 범위로 제어할 경우, 슬레이브 타이밍 변화를 22µs ~ 60µs 범위로 좁힐 수 있다. 이렇게 하면 샘플 시간이 21µs까지 이동될 수 있고, 이는 다시 네트워크에서 더 많은 무게를 지원하게 된다 (슬레이브가 1 비트를 반환할 때 라인이 유효한 높은 레벨로 풀업할 수 있도록 6?s 더 많은 시간을 허용하기 때문이다).
부록 F. 파형 예
다음 오실로스코프 이미지는 다양한 상황에서 1-Wire 네트워크 파형의 다양한 유형을 나타낸 것이다. 이러한 파형과 효과에 대한 자세한 내용은 텍스트 및 참조 자료를 참조한다.
이 이미지는 버스 리셋과 존재 시퀀스를 보여주지만, 더 중요하게는 슬루 레이트에 의해 제어되는 마스터와 제어되지 않는 슬레이브 소자의 행동 간의 차이를 나타낸다. 마스터에 의해 생성된 하강 에지는 깨끗하며 언더슛 또는 링잉을 초래하지 않는다. 슬레이브 소자에 의한 하강 에지는 제어되지 않으며, 버스에서 링잉 및 언더슛을 초래하는 것을 관찰할 수 있다.
이 이미지도 버스 리셋/존재 시퀀스를 보여준다. 마스터는 모든 타임 슬롯이 버스를 로우로 유지할 수 있는 시간보다 긴 480µs 동안 버스를 로우로 풀한다. 버스 상의 모든 소자는 이것을 리셋 동작으로 인식한다. 슬레이브 소자들은 존재 펄스를 발행하여 버스 리셋에 응답한다. 여러 개의 슬레이브는 동일한 시간 동안 자신의 존재 펄스를 발생시키며 중첩되어 단일 펄스를 형성하게 된다. (시간 기반은 분할 당 200µs이다).
이 이미지는 "1 읽기" 또는 "1 쓰기" 타임 슬롯을 나타낸다. 마스터는 약 10µs 동안 버스를 로우로 풀한 다음 놓아준다. 슬루 레이트로 제어되는 하강 시간에 유의한다. 타임 슬롯은 약 70µs 동안 지속된 후 또 다른 타임 슬롯이 발생한다. 시간 기반은 분할 당 10?s로 변경된다.
이 이미지는 "0 쓰기" 타임 슬롯을 나타낸 것이다. 마스터는 60µs 동안 버스를 로우로 풀한 후 또 다른 타임 슬롯이 시작되기 전에 약 10?s 동안 놓아준다.
이 이미지는 "0 읽기" 타임 슬롯을 나타낸 것이다. 마스터는 약 10µs 동안 버스를 로우로 풀했다가 놓아준다. 그러나 슬레이브 소자는 더 오랜 시간 동안 버스를 로우로 유지함으로써 0 비트를 반환하고 있다. 이 슬레이브 소자 시간 기반은 22µs ~ 60µs 범위에서 변경될 수 있다. 마스터는 20µs에서 버스를 샘플링하므로 이 예에서 0 비트를 읽는다.
이 이미지는 저항 풀업만을 갖는 마스터를 사용할 때 과도한 무게의 효과를 나타낸 것이다. 이 예에서 네트워크 반경은 약 1000피트이며 네트워크의 맨 끝에 30개의 소자가 있다. 네트워크 끝에서의 반사는 매우 느린 상승 시간이 그러하듯이 분명히 관찰될 수 있다. 이것은 1 읽기 타임 슬롯이지만, 샘플 시간에서의 데이터 레벨은 경계선이며 마스터에 의해 잘못 읽힐 수 있다.
상승 시간이 불충분할 때 복구 시간 (타임 슬롯 간 시간)은 버스가 슬레이브 소자를 재충전하기 위해 충분한 레벨까지 도달하도록 허용하기에는 불충분할 수 있다. 위의 이미지에서 슬레이브가 함께 작업해야 할 평균 DC 레벨은 위험할 정도로 낮아졌다. 슬레이브는 특히 0 쓰기 타임 슬롯의 긴 문자열 동안 전력 부족으로 인해 재설정될 수 있다.
더 향상된 네트워크 버스 드라이버는 임피던스 정합과 동적 풀업을 사용하여 장거리 네트워크 및 슬레이브 소자의 추가된 무게를 극복한다. 이 파형은 1 읽기 또는 1 쓰기 타임 슬롯과 동적 풀업의 행동을 보여준다.
이것은 0 읽기 타임 슬롯에서의 동일한 동적 풀업 동작이다.
버스 리셋 시퀀스 동안, 리셋 펄스 후 그리고 존재 펄스의 끝 다음에 다시 네트워크 무게를 극복하기 위해 동적 풀업이 사용된다. 이 이미지에서 가까운 끝과 먼 끝 존재 펄스가 중첩되는 것을 알 수 있다. 마스터와 먼 끝 슬레이브 사이에 케이블의 추가된 저항으로 인해 로우 레벨은 가까운 끝 소자에 대해서보다 먼 끝 소자에 대해 더 높아진다.
이 이미지는 동적 풀업이 스터브와 분기로 인해 케이블에서 발생하는 반사에 의해 잘못 촉발될 때 발생하는 대혼란을 나타낸다. 이것은 0 읽기 타임 슬롯이며, 반사는 동적 풀업을 활성화시켜 슬레이브 소자에서의 풀다운과 충돌시킨다.
참고: 모든 선행 파형은 네트워크의 마스터 끝에서 포착되었다. 네트워크의 기타 다른 지점에서 관찰되는 파형은 오실로스코프 접지가 1-Wire 버스에 영향을 주지 않도록 차동 프로브를 사용해야 한다.