우리는 최상의 1 와이어 DS18B20 센서 커넥터를 제공합니다., Nanoflex 포함, DisplayPort, USB, 태양, 사타, HDMI, Ata Ide, SAS & 더 많은. 모든 케이블은 최고 산업 표준으로 제조됩니다. 박스 빌드에 센서 회로 어셈블리를 사용하면 설계 및 마케팅에 집중할 수 있습니다., 비용 절감, 그리고 조립 라인의 이점을 거두십시오, QA 프로세스, 및 제조 전문 지식.
DS18B20 센서는 다음을 사용하여 통신합니다. “1-철사” 규약, 이는 마이크로컨트롤러와의 모든 통신에 단일 데이터 라인을 사용한다는 의미입니다., 여러 센서를 동일한 라인에 연결하고 고유한 64비트 직렬 코드로 식별할 수 있습니다.; 이 단일 데이터 라인은 저항기를 사용하여 높게 당겨지고 센서는 특정 시간 슬롯 동안 라인을 낮게 당겨 정보 비트를 전송함으로써 데이터를 전송합니다..
DS18B20 온도 센서: DS18B20 방수 프로브는 수중 사용을 위해 설계되었습니다, 물이나 수분에 손상되지 않고 습하거나 습한 환경에서 작동 할 수 있습니다..
온도 센서 공급 전압: 3.0v ~ 5.25V;
작동 온도 범위:-55 ℃ +125 ℃ (-67 ℉ +257 ℉);
9 비트에서 12 비트 섭씨 온도 측정을 제공합니다;
어댑터 모듈에는 풀업 저항이 장착되어 있습니다, 외부 저항이없는 Raspberry Pi의 GPIO에 직접 연결됩니다.;
이 어댑터 모듈 키트를 사용하여 방수 온도 센서를 프로젝트에 연결하는 것을 단순화하십시오..
1. 1 와이어 프로토콜에 대한 핵심 사항:
단일 데이터 라인:
센서와 마이크로 컨트롤러 간의 통신에는 하나의 와이어 만 필요합니다..
반중 소통:
데이터는 양방향으로 보낼 수 있습니다, 그러나 한 번에 한 방향 만.
기생충 전력:
DS18B20은 통신 중에 데이터 라인에서 직접 전원을 공급할 수 있습니다., 경우에 따라 별도의 전원 공급 장치의 필요성 제거.
고유 한 장치 주소:
각 DS18B20 센서에는 마이크로 컨트롤러가 버스에서 개별 센서를 식별하고 해결할 수있는 고유 한 64 비트 직렬 코드가 있습니다..
DS18B20과의 통신 단계:
1.1 펄스 재설정:
마이크로 컨트롤러는 특정 기간 동안 데이터 라인을 낮추어 통신을 시작합니다. (펄스 재설정).
1.2 존재 맥박:
DS18B20이 버스에있는 경우, 짧은 맥박으로 반응합니다, 그 존재를 나타냅니다.
1.3 ROM 명령:
마이크로 컨트롤러는 ROM 명령을 보내 특정 센서의 고유 한 64 비트 코드를 읽습니다. (“일치 ROM”) 또는 버스의 모든 센서를 처리합니다 (“배”).
1.4 기능 명령:
원하는 작업에 따라 (독서 온도처럼), 마이크로 컨트롤러는 특정 기능 명령을 센서로 보냅니다..
1.5 데이터 전송:
데이터는 비트 단위로 전송됩니다, 센서가 데이터 라인을 낮추어 ‘0’ 그리고‘1’을 보내기 위해 라인을 높이게합니다..
2. DS18B20의 1 와이어 커뮤니케이션 프로토콜에 대한 자세한 설명
DS18B20 센서가 널리 사용되는 이유는 주로 고유 한 통신 프로토콜 때문입니다. – 1-와이어 통신 프로토콜. 이 프로토콜은 하드웨어 연결에 대한 요구 사항을 단순화하고 데이터를 전송하는 효율적인 방법을 제공합니다.. 이 장에서는 1 라인 통신 프로토콜의 작업 메커니즘 및 데이터 교환 프로세스를 깊이 분석하여 후속 프로그래밍 관행을위한 탄탄한 기반을 마련합니다..
2.1 1 와이어 통신 프로토콜의 기본
2.1.1 1 와이어 통신 프로토콜의 기능:
DS18B20 1 와이어 통신 프로토콜도 호출됩니다 “단일 버스” 기술. 다음과 같은 기능이 있습니다: – 단일 버스 통신: 양방향 데이터 전송에는 하나의 데이터 라인 만 사용됩니다., 기존의 멀티 와이어 센서 통신 방법에 비해 배선의 복잡성을 크게 줄입니다.. – 다단계 연결: 하나의 데이터 버스에서 여러 장치를 연결하는 것이 지원됩니다, 장치 식별 코드를 통해 식별하고 통신합니다. – 낮은 전력 소비: 의사 소통 중, 커뮤니케이션에 참여하지 않을 때 장치는 저전력 대기 상태에있을 수 있습니다.. – 높은 정밀도: 데이터 전송 시간이 짧습니다, 외부 간섭을 줄이고 데이터 정확도를 향상시킬 수 있습니다.
2.1.2 1 와이어 통신의 데이터 형식 및 타이밍 분석
1 와이어 통신 프로토콜의 데이터 형식은 특정 타이밍 규칙을 따릅니다.. 초기화 타이밍이 포함됩니다, 타이밍을 작성하고 타이밍을 읽으십시오:
초기화 타이밍: 호스트는 먼저 존재 감지 타이밍을 시작합니다 (존재 맥박) 일정 시간 동안 버스를 내려 놓아, 그런 다음 센서는 응답으로 PRESENTE PULSE를 보냅니다..
쓰기 타이밍: 호스트가 쓰기 타이밍을 보낼 때, 먼저 버스를 내려갑니다 1-15 마이크로초, 그런 다음 버스를 출시합니다, 그리고 센서는 버스를 끌어 당깁니다 60-120 반응하기 위해 마이크로 초.
타이밍을 읽으십시오: 호스트는 센서에게 버스를 끌어 내고 방출하여 데이터를 보내도록 알립니다., 센서는 일정 지연 후 버스의 데이터 비트를 출력합니다..
2.2 데이터 통신의 소프트웨어 구현
2.2.1 1 라인 통신의 초기화 및 재설정
소프트웨어 수준에서, 1 와이어 커뮤니케이션의 초기화 및 재설정은 커뮤니케이션의 첫 번째 단계입니다.. 다음은이 프로세스를 구현하기위한 의사 코드입니다.:
// Onewire 커뮤니케이션 초기화 기능
void onewire_init() {
// 버스를 입력 모드로 설정하고 풀업 저항을 활성화하십시오.
세트 핀 패션(DS18B20_PIN, input_pullup);
// 버스가 유휴 상태가되기를 기다리십시오
지연 마이크로 초(1);
// 재설정 펄스를 보내십시오
onewire_reset();
}
// Onewire Communication Reset 기능
void onewire_reset() {
// 버스를 당기십시오
세트 핀 패션(DS18B20_PIN, output_low);
지연 마이크로 초(480);
// 버스를 석방하십시오
세트 핀 패션(DS18B20_PIN, input_pullup);
지연 마이크로 초(70);
// 맥박의 존재를 기다리십시오
만약에 (!WaitforOneWirepresence())
// 펄스가 감지되지 않았습니다, 센서가 연결되지 않았거나 초기화가 실패했을 수 있습니다.
손질();
지연 마이크로 초(410);
}
// 맥박의 존재를 기다리고 있습니다
bool waitforonewirepresence() {
reack readpin(DS18B20_PIN) == 0; // 낮은 레벨이 신호 존재라고 가정합니다
}
2.2.2 데이터 읽기 및 쓰기 작업
데이터 읽기 및 쓰기 작업은 센서 커뮤니케이션의 핵심 부분입니다.. 다음 코드는 바이트를 1 와이어 버스에 쓰는 방법을 보여줍니다.:
// 바이트를 1 와이어 버스에 쓰십시오
void onewire_writebyte(바이트 데이터) {
~을 위한 (int i = 0; 나 < 8; i ++) {
onewire_writebit(데이터 & 0x01);
데이터 >>= 1;
}
}
// 1 와이어 버스에 조금 쓰십시오
void onewire_writebit(비트 데이터) {
세트 핀 패션(DS18B20_PIN, output_low);
만약에 (데이터) {
// 글을 쓸 때 버스를 석방하십시오 1
세트 핀 패션(DS18B20_PIN, input_pullup);
지연 마이크로 초(1);
} 또 다른 {
// 글을 쓸 때 버스를 계속 낮추십시오 0
지연 마이크로 초(60);
}
세트 핀 패션(DS18B20_PIN, input_pullup);
지연 마이크로 초(1);
}
다음은 바이트를 읽는 기능입니다:
// 원선 버스에서 바이트를 읽으십시오
바이트 onewire_readbyte() {
바이트 데이터 = 0;
~을 위한 (int i = 0; 나 < 8; i ++) {
데이터 >>= 1;
만약에 (onewire_readbit())
데이터 |= 0x80;
}
반환 데이터;
}
// 원선 버스에서 조금 읽으십시오
비트 onewire_readbit() {
세트 핀 패션(DS18B20_PIN, output_low);
세트 핀 패션(DS18B20_PIN, input_pullup);
지연 마이크로 초(3);
bool result = readpin(DS18B20_PIN);
지연 마이크로 초(57);
반환 결과;
}
2.2.3 Onewire 커뮤니케이션의 검증 메커니즘
Onewire Communication 프로토콜은 데이터 교환 프로세스에서 간단한 검증 메커니즘을 사용합니다., 일반적으로 데이터의 정확성을 확인하기 위해 서면 데이터를 다시 읽음으로써. 다음은 서면 데이터를 확인하기위한 샘플 코드입니다.:
바이트 데이터 = 0x55; // 데이터가 전송 될 것으로 가정합니다
onewire_writebyte(데이터); // Onewire 버스에 데이터를 작성하십시오
바이트 readdata = onewire_readbyte(); // Onewire 버스에서 데이터를 다시 읽으십시오
만약에 (readData != 데이터) {
손질(); // 읽기 백 데이터가 서면 데이터와 일치하지 않는 경우, 오류를 처리하십시오