컴퓨터 지식 네트워크 - 컴퓨터 구성 - RS485 버스는 단일 칩 마이크로 컴퓨터에 직접 연결할 수 있습니까? 아니면 485 대 232 인터페이스가 필요한가요?

RS485 버스는 단일 칩 마이크로 컴퓨터에 직접 연결할 수 있습니까? 아니면 485 대 232 인터페이스가 필요한가요?

산업 제어 및 측정 분야에서 비교적 일반적으로 사용되는 네트워크 중 하나는 물리적 계층의 RS-485 통신 인터페이스로 구성된 산업 제어 장비 네트워크입니다. 이러한 통신 인터페이스는 많은 장치를 하나의 제어 네트워크로 쉽게 결합할 수 있습니다. RS-485 버스 통신 방식은 간단한 구조, 저렴한 가격, 통신 거리, 데이터 전송 속도가 적합하기 때문에 기기 계기, 지능형 센서 분산 제어, 건물 제어, 모니터링 경보 등에 널리 사용되고 있습니다. 그러나 RS485 버스에도 가변성 및 어댑티브 보호 능력과 같은 몇 가지 단점이 있습니다. 일부 세부 사항에 주의를 기울이지 않으면 의사 소통이 실패하거나 시스템이 마비된 경우가 많다. 따라서 RS-485 버스의 신뢰성을 높이는 것이 중요합니다.

그림 1 RS485 통신 인터페이스 다이어그램

2 하드웨어 회로 설계는 문제에주의를 기울여야합니다.

2. 1 회로 기본 원리

한 노드의 하드웨어 회로 설계는 1 과 같습니다. 이 회로는 RS-485 인터페이스 칩 SN75LBC 184 를 사용하며 단일 전원 Vcc 를 사용하여 +3 ~+5.5 V 범위 내에서 정상적으로 작동할 수 있으며 일반 RS-485 칩에 비해 번개의 충격뿐만 아니라 견딜 수 있습니다. 칩에는 최대 400 V 의 순간 펄스 전압을 견딜 수 있는 4 개의 순간 과전압 보호 튜브가 통합되어 있어 번개 손상을 방지하는 장치의 신뢰성을 크게 높일 수 있습니다. 환경이 열악한 일부 장소에서는 추가 보호 요소 없이 송전선로에 직접 액세스할 수 있습니다. 또한 이 칩은 입력부가 열려 있을 때 출력이 높기 때문에 수신기 입력부의 케이블이 열려 있을 때 시스템의 정상적인 작동에 영향을 주지 않습니다. 또한 입력 임피던스는 RS485 표준의 두 배 (≥ 24 kω) 이므로 버스에 64 개의 트랜시버를 연결할 수 있습니다. 칩 내부에는 기울기 제한 드라이버가 설계되어 출력 신호의 가장자리가 너무 가파르지 않고 전송선에도 고주파 성분이 많이 생기지 않아 전자기 간섭을 효과적으로 억제한다. 그림 1 에서 4-4-1 옵토 커플러 TLP52 1 은 SN75LBC 184 와의 전기 연결이 전혀 없으므로 작업 신뢰성이 향상됩니다. 기본 원칙은 다음과 같습니다. 단일 칩 P 1.6=0 일 때 옵토 커플러의 발광 다이오드 발광, 광전 트랜지스터 전도, 출력 고전압 (+5 V), RS485 인터페이스 칩의 de 측 선택 전송 허용입니다. 단일 칩 P 1.6= 1 에서 옵토 커플러의 발광 다이오드는 발광하지 않고, 광 트랜지스터는 통하지 않고, 저전압 (0 V) 를 출력합니다. RS485 인터페이스 칩의 RE 터미널을 선택하여 수신을 허용합니다. SN75LBC 184 의 R 측 (수신측) 과 D 측 (송신측) 의 원리는 위와 유사합니다.

2.2 DE RS-485 제어 터미널 설계

RS-485 버스 기반 반이중 통신 시스템에서는 한 번에 하나의 노드만 버스에 데이터를 전송할 수 있으며 다른 모든 노드는 수신 상태여야 합니다. 둘 이상의 노드가 동시에 버스에 데이터를 전송하면 모든 발신자의 데이터 전송이 실패합니다. 따라서 시스템의 각 노드에 대한 하드웨어 설계에서는 먼저 노드가 버스에 데이터를 전송하는 비정상적인 상황으로 인한 버스 데이터 충돌을 최소화해야 합니다. MCS5 1 시리즈 마이크로 컨트롤러를 예로 들어 보겠습니다. I/O 포트는 시스템이 재설정될 때 고평을 출력하기 때문에, I/O 포트가 RS-485 인터페이스 칩의 구동에 직접 연결된 경우, CPU 가 재설정될 때 DE 가 고평이 되어 이 노드가 송신됩니다. 이 시점에서 버스의 다른 노드가 데이터를 전송하는 경우 데이터 전송은 중단되고 실패하며, 한 노드의 장애로 인해 전체 버스의 통신이 차단되어 전체 시스템의 정상적인 작동에 영향을 미칠 수도 있습니다. 통신의 안정성과 신뢰성을 고려하여 각 노드의 설계에서 RS485 버스 인터페이스 칩을 제어하는 송신 핀은 de 측의 역논리로 설계되어야 합니다. 즉, 제어 핀이 논리 "1" 인 경우 DE 끝은 "0" 입니다. 제어 핀이 논리 "0" 이면 DE 끝은 "1" 입니다. 그림 1 에서 CPU 의 핀 P 1.6 은 옵토 커플러를 통해 DE 측으로 구동되므로 SN75LBC 184 는 제어 핀이 고평이거나 비정상적으로 재설정될 때 수신 상태를 유지할 수 있습니다. 이것은 전체 시스템의 신뢰할 수있는 통신을위한 토대를 마련했습니다.

또한 회로에는 1 워치독 MAX8 13L 이 있어 노드에 데드 사이클 또는 기타 장애가 발생할 경우 프로그램을 자동으로 재설정하여 RS-485 버스 제어를 전달할 수 있습니다. 이렇게 하면 전체 시스템이 하나의 노드 장애로 인해 버스를 독점하지 않아 전체 시스템이 마비되지 않습니다.

2.3 버스 충돌 방지 설계

노드에서 버스를 사용해야 하는 경우 신뢰할 수 있는 버스 통신을 위해 전송할 데이터가 있을 때 먼저 버스를 수신합니다. 하드웨어 인터페이스에서 먼저 RS-485 인터페이스 칩의 데이터 수신 핀을 반대로 한 다음 CPU 의 인터럽트 핀 INT0 에 연결합니다. 그림 1 에서 INT0 은 옵토 커플러의 출력에 연결됩니다. 데이터가 버스에서 전송 중일 때 SN75LBC 184 의 데이터 수신측 (R 측) 은 변화의 높낮이를 표시합니다. 생성된 CPU 하강 인터럽트 (쿼리 모드도 사용 가능) 를 사용하여 버스가 "사용 중" 인지, 즉 버스에 노드가 통신하고 있는지 여부를 알 수 있습니다. 공짜라면 버스 사용권을 얻을 수 있어 버스 충돌 문제를 잘 해결했다. 이를 바탕으로 다양한 메시지의 우선 순위를 정의하여 우선 순위가 높은 메시지가 먼저 전송되도록 함으로써 시스템의 실시간 성능을 더욱 향상시킬 수 있습니다. 이 작동 모드를 사용하면 시스템에 마스터-슬레이브 노드가 없으며 각 노드가 버스에 동등하게 액세스하여 단일 노드에 대한 과도한 통신 부담을 효과적으로 방지할 수 있습니다. 버스 활용도와 시스템 통신 효율성이 크게 향상되어 시스템의 개별 노드에 장애가 발생하더라도 다른 노드의 정상적인 통신과 정상적인 작동에 영향을 주지 않고 시스템의 실시간 응답이 향상됩니다. 이렇게 하면 시스템의 "위험" 이 분산되어 시스템의 작업 신뢰성과 안정성이 어느 정도 향상됩니다.

2.4 RS-485 출력 회로 설계

그림 1 에서 VD 1 ~ VD4 는 RS-485 표준을 준수하는 신호 제한 다이오드입니다. VD 1 및 VD3 은 12 V, VD2 및 VD4 는 7 V 를 가져와 신호 범위가 -7 ~+ 12 V 로 제한되도록 합니다. 회로의 특수한 상황 (예: 한 노드의 RS-485 칩이 단락된 경우) 을 고려하여 버스의 다른 내선에 영향을 미치는 통신을 방지하기 위해 SN75LBC 184 의 신호 출력측에서 두 개의 20ω 저항 R 1 및 R2 를 연결하여 기본 하드웨어 장애가 발생하지 않도록 합니다. 응용 시스템 엔지니어링의 현장 건설에서는 통신 캐리어가 꼬인 쌍선이고 특성 임피던스가 약 1 20ω이므로 회로를 설계할 때 RS485 네트워크 전송선의 시작과 끝에 각각 1 개의 일치 저항을 연결해야 합니다 (그림/KLOC-0)

2.5 시스템 전원 선택

단일 칩 마이크로 컴퓨터와 RS-485 로 구성된 측정 및 제어 네트워크의 경우 각 노드에 독립적으로 전원을 공급하는 방안을 우선적으로 고려해야 하며, 전원 회로는 RS-485 신호선과 동일한 멀티 코어 케이블을 사용할 수 없습니다. RS-485 신호 케이블의 경우 평평한 직선 대신 0.75 mm2 이상의 단면으로 꼬인 쌍선을 선택해야 합니다. 선형 전원 공급 장치인 TL750L05 는 스위칭 전원 공급 장치보다 더 적합합니다. TL750L05 에는 출력 콘덴서가 있어야 합니다. 출력 콘덴서가 없는 경우 출력 끝의 전압은 들쭉날쭉한 웨이브 모양이며 들쭉날쭉한 파동의 상승은 입력 전압에 따라 달라집니다. 출력 커패시턴스를 늘리면 이 현상을 억제할 수 있다.

3 소프트웨어 프로그래밍

SN75LBC 184 수신 모드에서 A 와 B 는 입력이고 R 은 출력입니다. 전송 모드에서 d 는 입력이고 a 와 b 는 출력입니다. 전송 방향이 한 번 변경되면 입력이 변경되지 않으면 입력 상태가 한 번 변경될 때까지 출력이 임의 상태가 됩니다. 분명히 전송 모드에서 수신 모드로 전환한 후 A 와 B 의 상태가 변경되기 전에 R 이 낮으면 첫 번째 데이터가 시작될 때 R 이 여전히 낮습니다. CPU 는 이때 시작 비트가 없는 것으로 간주하고 첫 번째 하강이 나타날 때까지 첫 번째 데이터 수신을 시작하지 않으면 수신 오류가 발생할 수 있습니다. 수신 모드에서 전송 모드로 전환한 후 D 가 변경되기 전에 A 와 B 사이의 전압이 낮으면 첫 번째 데이터 시작 비트를 보낼 때 A 와 B 사이의 전압이 여전히 낮고 A 와 B 핀에 시작 비트가 없으면 전송 오류도 발생할 수 있습니다. 이러한 결과를 극복하기 위한 해결책은 호스트가 여러 가장자리 변경 사항 (예: 55H, 0AAH) 을 포함하여 두 개의 동기화 단어를 연속적으로 전송하는 것입니다 (첫 번째는 수신 오류로 인해 무시될 수 있음). 동기화 단어가 수신되면 수신기에서 데이터를 전송하여 올바른 통신을 보장할 수 있습니다.

보다 안정적으로 작동하려면 데이터를 보내고 수신하기 전에 RS485 버스의 상태 전환을 연기해야 합니다. 제어 끝을 "1" 으로 설정하여 약 0.5 ms 를 연기한 후 유효한 데이터를 보내는 것이 좋습니다. 데이터 전송이 완료되면 0.5 ms 를 더 연기하고 제어 터미널을 "0" 으로 설정합니다. 이러한 처리를 통해 버스가 상태를 전환할 때 안정적인 작업 과정을 가질 수 있습니다. 데이터 통신 프로그램의 기본 프로세스는 그림 2 에 나와 있습니다.

그림 2 데이터 통신 프로그램 기본 흐름도

단일 칩 통신 노드의 프로그램은 기본적으로 미리 정의된 섹션, 초기화 섹션, 마스터 프로그램 섹션, 장치 상태 감지 섹션, 프레임 수신 섹션 및 프레임 전송 섹션의 6 가지 주요 부분으로 나눌 수 있습니다. 미리 정의된 섹션은 주로 통신에 사용되는 핸드쉐이킹 신호, 장치 정보를 저장하는 버퍼 및 노드 장치 번호를 저장하는 변수를 정의합니다. 디바이스 상태 감지 섹션은 프로그램 초기화 후 하드웨어 장애가 발생할 경우 응답할 수 있어야 합니다. 마스터 프로그램 섹션은 명령 프레임을 수신하고 명령의 내용에 따라 적절하게 응답할 수 있어야 합니다. 편폭을 단축하기 위해서, 여기는 주 프로그램의 코드만 제시한다. 다음과 같습니다.

/* 마스터 프로세스 */

While( 1) {// 주 루프

If (recv _ cmd (& Type)==0) // 프레임 오류 또는 프레임 주소가 로컬과 다릅니다.

//주소가 일치하지 않습니다. 현재 프레임을 삭제하고 반환합니다.

계속;

스위치 (유형) {

Case __ACTIVE_: // 호스트가 클라이언트의 존재 여부를 묻습니다.

Send_data(__OK_, 0, dbuf); //회신 메시지 보내기

깨뜨리다

시나리오 __GETDATA_:

Len = strlen (dbuf);

Send_data(__STATUS_, len, dbuf); //상태 정보 보내기

깨뜨리다

기본값:

깨뜨리다 //잘못된 명령 유형, 현재 프레임을 삭제하고 반환합니다.

}

}

4 결론

RS-485 는 RS-232 보다 더 길고 최대 3000 m 까지 전송되는 차등 레벨 전송 신호를 사용하기 때문에 산업용 어플리케이션에 적합합니다. 그러나 CAN 버스와 같은 고급 필드 산업 버스와 비교할 때 오류를 처리하는 능력은 여전히 ​​약간 뒤떨어져 있으므로 데이터 오류를 피하기 위해 소프트웨어 섹션에서 특수 설계가 필요합니다. 또한 시스템의 데이터 중복량이 많기 때문에 속도가 높은 애플리케이션에서는 RS-485 버스를 사용하기에 적합하지 않습니다. RS-485 버스에는 몇 가지 단점이 있지만 회로 설계가 간단하고, 가격이 저렴하며, 제어가 편리하기 때문에 디테일만 잘 처리하면 일부 엔지니어링 어플리케이션에서 좋은 역할을 할 수 있습니다. 결론적으로, 신뢰성을 해결하는 관건은 프로젝트가 시작되기 전에 취할 수 있는 모든 조치를 고려하고, 프로젝트 후반까지 기다리지 않고 근본적으로 문제를 해결하는 것이다.

上篇: Jeep Guide는 어떻습니까? 下篇: Qq 동기화 도우미가 주소록을 vivos9 로 가져오는 방법
관련 내용