1-와이어
1-Wire
1-와이어는 댈러스 세미컨덕터가 설계한 디바이스 통신 버스 시스템으로, 단일 도체를 통해 저속(16.3kbit[1]/s) 데이터, 신호 및 전력을 제공합니다.
1-와이어는 I²C와 개념이 비슷하지만 데이터 속도가 낮고 범위가 더 깁니다.일반적으로 디지털 온도계나 기상 계측기와 같은 작고 저렴한 장치와 통신하는 데 사용됩니다.연결된 마스터 디바이스가 있는 1-와이어 디바이스의 네트워크를 MicroLAN이라고 합니다.이 프로토콜은 Dallas 키 또는 iButton으로 알려진 작은 전자 키에도 사용됩니다.
버스의 특징 중 하나는 데이터와 접지라는 두 개의 와이어만 사용할 수 있다는 것입니다.이를 위해 1-와이어 장치에는 800 pF 캐패시터가 포함되어 데이터 라인이 활성 상태인 동안 장치에 충전 및 전력을 저장합니다.
사용 예
1-와이어 장치는 다양한 패키지로 제공됩니다. 집적회로, TO-92 스타일의 트랜지스터, 그리고 시계 배터리와 비슷한 작은 스테인리스 스틸 패키지인 iButton 또는 Dallas 키라고 불리는 휴대용 형태입니다.제조업체는 또한 1-와이어 버스를 사용하여 통신하는 단일 구성 요소보다 더 복잡한 장치를 생산합니다.
1-와이어 장치는 시스템의 다른 위치에 설치할 수 있습니다.제품 내 회로 기판의 많은 컴포넌트 중 하나일 수 있습니다.온도 프로브 등의 디바이스 내의 단일 컴포넌트일 수도 있습니다.감시 대상 디바이스에 접속할 수 있습니다.일부 실험실 시스템은 모듈러 커넥터 또는 CAT-5 케이블을 사용하여 1-와이어 장치에 연결합니다.이러한 시스템에서는, RJ11(6P2C 또는 6P4C 모듈러 플러그, 일반적으로 전화에 사용)이 인기입니다.
센서 및 액추에이터 시스템은 많은 1-와이어 구성 요소를 배선하여 구축할 수 있습니다.각 1-와이어 구성 요소에는 1-와이어 버스에서 작동하는 데 필요한 모든 로직이 포함되어 있습니다.예를 들어 온도 로거, 타이머, 전압 및 전류 센서, 배터리 모니터, 메모리 등이 있습니다.버스 컨버터를 사용하여 PC에 연결할 수 있습니다.USB, RS-232 시리얼 및 병렬 포트 인터페이스는 MicroLan을 호스트 PC에 연결하는 데 널리 사용되는 솔루션입니다. 1-Wire 장치는 다양한 벤더의 마이크로 컨트롤러와 직접 인터페이스할 수도 있습니다.
i버튼은 캐니스터의 "리드"와 "베이스"에 닿는 접점이 있는 소켓을 통해 1-와이어 버스 시스템에 연결됩니다.또는 iButton이 클립되는 소켓을 사용하여 연결을 반영구적으로 할 수 있지만 쉽게 분리할 수 있습니다.
각 1-와이어 칩에는 고유한 식별 코드가 있습니다.이 기능은 칩, 특히 i버튼을 적절한 전자 키로 만듭니다.일부 용도에는 자물쇠, 도난 경보, 컴퓨터 시스템, 제조사 승인 액세서리, 타임 클럭 등이 있습니다.i버튼은 이스탄불의 대중교통에서 Akbil 스마트 티켓으로 사용되고 있습니다.
전원 장치
Apple MagSafe 및 MagSafe 2 커넥터가 장착된 전원 공급 장치, 디스플레이 및 Mac 노트북은 1-Wire 프로토콜을 사용하여 커넥터의 중앙 핀을 통해 연결된 Mac 노트북과 데이터를 주고 받습니다.데이터에는 전원 모듈 모델, 와트 수 및 시리얼 번호, 최대 전력을 송신하는 노트북명령어, [2]커넥터내의 적색 또는 녹색 발광 다이오드가 점등합니다.
델의 정규 노트북 전원 장치는 1-Wire 프로토콜을 사용하여 전력, 전류 및 전압 정격에 관한 데이터를 세 번째 와이어를 통해 노트북으로 전송합니다.어댑터가 [3]요건을 충족하지 못할 경우 노트북은 충전을 거부합니다.
통신 프로토콜
MicroLan에서는 항상 마스터가 1개 존재하며, 이는 개인용 컴퓨터 또는 마이크로 컨트롤러일 수 있습니다.마스터는 버스에서 작업을 시작하여 버스 충돌 회피를 단순화합니다.충돌을 감지하기 위한 프로토콜이 마스터 소프트웨어에 내장되어 있습니다.충돌 후 마스터는 필요한 통신을 재시도합니다.
1-와이어 네트워크는 풀업 저항기가 1개인 개방 배수 와이어입니다.풀업 저항기는 와이어를 최대 3V 또는 5V까지 당깁니다.마스터 디바이스와 모든 슬레이브에는 각각 와이어를 구동하기 위한 단일 개방 배수 연결과 와이어 상태를 감지하는 방법이 있습니다."1-Wire"라는 이름에도 불구하고 모든 장치에는 데이터 [4]와이어를 통해 리턴 전류가 흐를 수 있도록 접지 연결인 두 번째 와이어가 있어야 합니다.통신은 마스터 또는 슬레이브가 잠시 버스를 낮게 당길 때 발생합니다. 즉, 풀업 저항을 출력 MOSFET를 통해 접지에 연결합니다.아이돌 상태에서는 데이터 와이어가 높기 때문에 한정된 수의 슬레이브 디바이스에 전력을 공급할 수도 있습니다.16.3 kbit/s의 데이터 전송률을 달성할 수 있습니다.통신 속도를 10배 높이는 오버드라이브 모드도 있습니다.
짧은 1-와이어 버스는 마이크로 컨트롤러의 단일 디지털 I/O 핀에서 구동할 수 있습니다.Universal Asynchronous Receiver-Transmitter(UART; 범용 비동기 수신기 송신기)도 사용할 [5]수 있습니다.특정 1-와이어 드라이버 및 브리지 칩을 사용할 수 있습니다.Universal Serial Bus "브릿지" 칩도 사용할 수 있습니다.브리지 칩은 케이블을 100m 이상 구동할 때 특히 유용합니다.최대 300미터의 트위스트 페어(전화 케이블)가 제조원에 의해 테스트되고 있습니다.이러한 극단적인 길이를 사용하려면 풀업 저항을 5~1kΩ으로 조정해야 합니다.
마스터는 최소 480μs 동안 와이어를 0V로 당기는 재설정 펄스로 전송을 시작합니다.이것에 의해, 버스의 모든 슬레이브 디바이스가 리셋 됩니다.그 후 슬레이브 디바이스가 존재하면 마스터가 버스를 해제한 후 최소 60μs 동안 버스를 낮게 유지합니다.
이진수 "1"을 전송하기 위해 버스 마스터는 매우 짧은(1 ~ 15μs) 로우 펄스를 전송합니다.이진수 "0"을 전송하기 위해 마스터는 60μs의 낮은 펄스를 전송합니다.펄스의 하강(음) 에지는 슬레이브 디바이스에서 단안정 멀티바이브레이터를 시작하는 데 사용됩니다.슬레이브의 멀티비브레이터는 하강 에지 후 약 30μs 후에 데이터 라인을 읽습니다.슬레이브의 내부 타이머는 저렴한 아날로그 타이머입니다.타이밍 정확도에 영향을 주는 아날로그 공차가 있습니다.따라서 펄스는 마진 내에 있는 것으로 계산됩니다.따라서 "0" 펄스의 길이는 60μs여야 하며 "1" 펄스는 15μs를 초과할 수 없습니다.
데이터를 수신할 때 마스터는 1-15μs 0V 펄스를 전송하여 각 비트를 시작합니다.송신 슬레이브 유닛이 「1」을 송신하려고 하면, 아무것도 행해지지 않고, 버스는 풀업 전압으로 이행합니다.송신 슬레이브가 「0」을 송신하는 경우는, 데이터 라인을 60μs 동안 접지합니다.
기본 시퀀스는 리셋 펄스에 이어 8비트 명령을 실행하면 데이터가 8비트 그룹으로 송수신됩니다.
일련의 데이터를 전송할 때 8비트 CRC(취약 데이터 보호)를 사용하여 오류를 감지할 수 있습니다.
많은 디바이스가 같은 버스를 공유할 수 있습니다.버스상의 각 디바이스에는 64비트의 시리얼 번호가 있으며, 그 중8비트가 체크섬으로 사용되므로 2개의56 유니버스16(7.2×10을 넘는)의 고유 디바이스 ID를 사용할 수 있습니다.시리얼 번호의 최하위 바이트는 디바이스의 유형을 나타내는8비트 번호입니다최상위 바이트는 표준(1-Wire 버스의 경우) 8비트 [6]CRC입니다.
표준 브로드캐스트명령어와 특정 디바이스의 주소 지정에 사용되는 명령어가 몇 가지 있습니다.마스터는 선택 명령을 전송한 후 특정 장치의 주소를 전송할 수 있습니다.다음 명령어는 주소 지정된 디바이스에 의해서만 실행됩니다.
1-와이어 버스 열거 프로토콜은 다른 단일 프로토콜과 마찬가지로 마스터가 버스 상의 모든 장치의 주소를 읽기 위해 사용하는 알고리즘입니다.주소에는 디바이스 타입과 CRC가 포함되어 있기 때문에 주소 리스트를 회복하면 버스상의 디바이스의 신뢰성 높은 인벤토리도 생성됩니다.디바이스를 찾기 위해 마스터는 열거 명령어를 브로드캐스트한 후 주소의 각 비트 뒤에 주소를 "수신"합니다.슬레이브의 주소가 지금까지 송신된 모든 주소 비트와 일치하는 경우 슬레이브는 0을 반환합니다.마스터는 이 간단한 동작을 사용하여 유효한 주소 비트의 시퀀스를 체계적으로 검색합니다.무효 비트가 검출되면 이후의 모든 주소 비트가 무효가 되기 때문에 이 프로세스는 가능한 모든 56비트 번호의 브루트포스 검색보다 훨씬 빠릅니다.56비트 주소 공간은 바이너리 트리로 검색되며 초당 최대 75개의 디바이스를 검색할 수 있습니다.이 열거 프로토콜에 의해 장치 주소가 검색되는 순서는 결정적이며 장치 유형과 일련 번호에만 따라 다릅니다.이 56비트를 비트 반전시키면 Maxim의 공개 알고리즘(어플리케이션 노트[7] 187에 정의되어 있는 알고리즘)을 사용하는 디바이스의 검출 순서가 됩니다.검색 알고리즘은 대체 형식으로 구현할 수 있습니다.처음에는 주소 비트가 0이 아닌 1인 경로를 검색합니다.이 경우 56개의 주소 비트를 반전시킨 후 반전시키면 검출 순서가 됩니다.
버스상의 디바이스의 위치가 중요한 경우가 있습니다.이러한 상황에서는 마이크로 컨트롤러가 여러 개의 핀을 사용할 수 있습니다.또는 제조원에 버스를 끄거나 전달할 수 있는 1-와이어 장치가 있습니다.따라서 소프트웨어는 순차 버스 [6]도메인을 탐색할 수 있습니다.
디바이스와의 통신 예
다음 신호는 DS2432(EEPROM) 칩과의 통신 마스터였던 FPGA에 의해 생성되어 로직아나라이저로 측정되었습니다.1-와이어 출력의 로직 하이는 FPGA 출력이 트라이스테이트 모드이고 1-와이어 장치가 버스를 로우로 끌어당길 수 있음을 의미합니다.Low는 FPGA가 버스를 풀다운하는 것을 의미합니다.1-와이어 입력은 측정된 버스 신호입니다.입력 샘플 시간이 높으면 FPGA는 디바이스 응답을 검출하고 비트를 수신하기 위해 입력을 샘플링합니다.
개발 도구
1-Wire 버스를 개발하거나 문제를 해결할 때 하드웨어 신호를 검사하는 것이 매우 중요합니다.로직 분석기 및 버스 분석기는 고속 파형을 쉽게 볼 수 있도록 신호를 수집, 분석, 디코딩 및 저장하는 도구입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Reading and Writing 1-Wire Devices Through Serial Interfaces - Application Note - Maxim". Maxim Integrated. Retrieved 2018-11-16.
- ^ ""Teardown and exploration of Apple's Magsafe connector"". rightTo.com. Retrieved 2017-07-18.
- ^ "Hacking Dell Laptop Charger Identification". hackaday.com. Retrieved 2015-11-30.
- ^ "1-Wire online tutorial. This tutorial will give you an overview of the 1-Wire protocol, its device operation and application solutions". Archived from the original on 2009-05-02. Retrieved 2009-03-13.
- ^ "Using a UART to Implement a 1-Wire Bus Master".
- ^ a b "iButton Overview" (PDF). Archived from the original (PDF) on 27 January 2009. Retrieved 18 December 2008. 081218 maxim-ic.com
- ^ "1 Wire Search Algorithm (Application Note 187)" (PDF). Retrieved 2 October 2020.
외부 링크
- 1-와이어 장치
- UART를 사용한 1-Wire 장치 액세스, 읽기 및 쓰기
- UART를 사용한 1-와이어 버스마스터 구현
- iButton, iButton Link
- 신뢰할 수 있는 장척 회선 1-와이어 네트워크 가이드라인
- 임베디드 응용 프로그램에 적합한 1-와이어 마스터 선택
- OWFS - Linux용 1-Wire 파일 시스템
- 프로그래머 및 엔지니어용 1-Wire 사용 가이드
- OWFS를 사용하여 Linux에서 작동하는 1-와이어 센서 가져오기
- 1선식 Arduino 튜토리얼
- Lazarus를 사용한 1-Wire/MicroLan용 소프트웨어 기술 가이드(무료 Delphi).