1 소개
마이크로컨트롤러는 자동 제어 장치, 전력망용 마이크로프로세서{0} 기반 통합 보호 시스템, 기타 산업 자동화 제어 분야에 점점 더 많이 적용되고 있으며 이러한 장치의 복잡성은 꾸준히 증가하고 있습니다. 개발 대상의 실시간-멀티태스킹 요구를 충족하기 위해 단일-CPU, 단일-개발자 모델은 다양한 유형의 다중 CPU와 다중 개발자가 참여하는 협업 방식으로 대체되고 있습니다. 이 새로운 개발 패러다임은 구현 중 CPU 간 정보 교환을 위해 하드웨어와 소프트웨어를 표준화하는 중요한 과제를 제시합니다. 이러한 표준화는 이 새로운 모델을 성공적으로 채택하는 데 중추적인 역할을 합니다. 다양한 통신 방법 중에서 UART- 기반 RS-485 직렬 통신 프로토콜은 간단한 배선, 높은 신뢰성 및 다중 CPU 지원 기능으로 인해 널리 채택됩니다. 소프트웨어 통신 프로토콜과 관련하여 Modbus 프로토콜은 보편적인 특성과 성숙한 디버깅 소프트웨어로 인해 사용자에게 상당한 이점을 제공합니다. 따라서 새로운 모터 종합 보호 장치 개발 과정에서 RS-485 직렬 통신 방식과 Modbus 통신 프로토콜을 채택하여 여러 CPU 간의 데이터 및 제어 명령 정보 교환을 달성했습니다. 직렬 통신의 효율성과 조정을 향상시키기 위해 저자는 통신 메커니즘의 하드웨어 및 소프트웨어 아키텍처에 다양한 조치를 구현하여 탁월한 결과를 얻었습니다. 시스템 통신 디버깅 단계에서는 각 CPU 모듈이 먼저 표준 Modbus 테스트 소프트웨어와 통신한 후 상호 연결 디버깅을 진행하는 방식을 채택하여 공동 개발 효율성을 크게 향상시켰습니다. 실습을 통해 이러한 설계 철학이 시스템 구조를 단순화하는 동시에 장치의 작동 효율성과 신뢰성을 크게 향상시키는 것으로 입증되었습니다.
2 모터종합보호장치의 특징
포괄적인 보호 기능 외에도 모터 보호 장치는 측정, 원격 제어 및 통신 기능을 통합합니다. 대형-화면 한자 LCD 디스플레이를 통해 사용자에게 친숙한 인터페이스를 제공합니다.- 모니터링 호스트와의 CAN 버스 통신을 활용하여 계층적 분산 변전소 자동화 시스템 내에 하위 시스템을 형성합니다. 멀티태스킹 요구 사항에 맞게 시스템 기능을 최적화하기 위해 멀티-CPU 아키텍처가 채택되었습니다. 하나의 CPU는 주기적인 펄스 샘플링과 전송을 처리합니다. 메인 CPU 모듈은 데이터 처리, 전기 매개변수 계산, 결함 진단 및 스위칭 작업을 관리합니다. 보드 모듈 CPU는 인간{8}}기계 상호 작용을 감독하고 기본 보호 모듈 및 모니터링 호스트와의 통신을 용이하게 합니다. 각 CPU 모듈에는 명확하게 정의된 작업이 있으므로 구현 중에 여러 엔지니어의 공동 개발이 용이합니다. 직렬 통신은 메인 CPU와 패널 CPU를 연결하여 인간{11}}기계 상호 작용을 가능하게 하고 따라서 중요한 위치를 차지합니다. 합리적인 통신 메커니즘을 구축하는 것은 직렬 통신 섹션의 핵심이며 시스템 개발의 후반 단계에서 통신 조정 및 디버깅 효율성을 결정합니다.
3 통신 메커니즘 소개
3.1 통신 메커니즘의 하드웨어 설계
본 시스템을 위해 제안된 통신 메커니즘은 높은 효율성과 신뢰성을 목표로 합니다. RS-485는 현장 애플리케이션에서 전이중보다 더 실용적인 반이중 구조를 사용합니다. 여기서는 신호선을 2개만 사용하는 단순화된 연결을 채택합니다. 시스템 인터페이스 회로 다이어그램은 그림 1에 나와 있습니다. 주 보호 모듈의 8051 마이크로컨트롤러가 출력하는 TTL 로직 레벨은 광학적으로 격리된 다음 MAX485 칩에 의해 RS-495 레벨로 변환됩니다. 그 후, 패널 모듈의 MAX485 칩은 8031 마이크로컨트롤러가 읽을 수 있도록 이를 다시 TTL 로직 레벨로 변환합니다. 8051 마이크로 컨트롤러 측에서 병렬 I/O 포트 2의 핀 P2.7은 MAX 입력 활성화 핀 RE 및 출력 활성화 핀 DE를 제어합니다. 그림 1에서 볼 수 있듯이 P2.7이 하이 레벨을 출력하면 RE가 활성화되어 마이크로컨트롤러 측에서 데이터를 수신할 수 있습니다. P2.7이 낮은 레벨을 출력하면 DE가 활성화되어 마이크로컨트롤러 측에서 데이터를 전송할 수 있습니다. 이러한 접근 방식은 블라인드 전송으로 인한 중복으로 인한 데이터 손실을 방지하여 높은 통신 품질과 안정적인 전송 속도를 보장합니다.

3.2 통신 프로토콜
보호 장치 내 두 모듈 간의 정확한 데이터 전송을 보장하려면 전송 모드, 데이터 형식, 콘텐츠를 포함하여 정보 전송을 관리하는 일련의 사양이-필수입니다-. 이는 프로토콜 또는 통신 프로토콜을 구성합니다. 쉽게 사용할 수 있고 완성도 높은 디버깅 소프트웨어가 없으면 기본 CPU 모듈은 기본적으로 블랙박스 역할을 하게 되어 시스템 통합 테스트 중에 수많은 -극복하기 어려운-과제를 안겨줍니다. 따라서 널리 채택되는 Modbus 통신 프로토콜이 장치의 특정 요구 사항에 맞게 선택되고 단순화되어 검증된 효율성으로 성공적인 모듈 간 통신이 가능해졌습니다.{7}} Modbus는 마스터-슬레이브 통신 모델을 사용합니다. 마스터는 먼저 슬레이브에게 통신 요청 명령을 보냅니다. 그런 다음 슬레이브는 요청 명령 내의 기능 코드를 기반으로 한 데이터로 마스터에 응답합니다. 각 슬레이브는 고유한 주소를 가지고 있습니다. 마스터가 보낸 요청 프레임과 슬레이브가 보낸 응답 프레임은 모두 슬레이브의 주소로 시작됩니다. 슬레이브는 자신에게 지정된 명령만 읽고 다른 슬레이브 주소로 시작하는 메시지는 무시합니다. 이 기능은 8051 직렬 포트의 모드 2 또는 모드 3을 사용하여 구현됩니다. 이 질문과 답변 통신 모델은 통신 정확도를 크게 향상시킵니다. 이 장치에는 Modbus의 RTU 전송 모드가 채택되었습니다.
4 통신신뢰성 제고 방안
Modbus 메시지의 마지막 2바이트는 체크섬 바이트 역할을 합니다. RTU 통신은 오류 감지를 위해 CRC-16 순환 중복 검사를 사용합니다. 인코딩/디코딩 메커니즘은 계산 또는 프로그래밍 방법을 통해 달성할 수 있는 낮은 오류율로 상대적으로 간단합니다. 몇 가지 접근 방식이 아래에 설명되어 있습니다.
4.1 기본 알고리즘(수동 계산)
CRC16-CCITT를 예로 사용하면 CRC 체크섬은 16비트이고 생성 다항식은 17비트입니다. 데이터 스트림이 4바이트(BYTE, BYTE, BYTE, BYTE[0])라고 가정합니다.
데이터 스트림을 왼쪽으로 16비트 이동하여 효과적으로 256×256배로 확장합니다. 그런 다음 비차용 나누기(비트 XOR과 동일)를 사용하여 생성 다항식 0x11021로 나누기를 수행합니다.- 결과 나머지는 CRC 체크섬입니다. 전송된 데이터 스트림은 BYTE, BYTE, BYTE, BYTE[0], CRC, CRC[0]의 6바이트로 구성됩니다.
4.2 컴퓨터 알고리즘 1(비트-유형 알고리즘)
1) 확장된 데이터 스트림(6바이트)의 상위 16비트(BYTE, BYTE)를 16비트 레지스터에 배치합니다.
2) 레지스터의 최상위 비트가 1이면 레지스터를 왼쪽으로 한 비트만큼 이동한 다음(다음 바이트에서 최하위 비트를 얻음) 생성기 다항식의 단순화된 형태로 XOR 연산을 수행합니다. 그렇지 않으면 간단히 레지스터를 한 비트만큼 왼쪽으로 이동합니다(다음 바이트에서 최하위 비트 획득).
3) 전체 데이터 스트림(6바이트)이 레지스터로 이동될 때까지 2단계를 반복합니다.
4) 레지스터의 값은 CRC 체크섬 CRC, CRC[0]입니다.
4.3 컴퓨터 알고리즘 2(바이트-유형 알고리즘)(256^n은 256의 n승을 나타냄)
바이트{0}}순서가 지정된 데이터 스트림을 수학적 다항식으로 표현합니다. 데이터 스트림을 BYTE[n] BYTE[n-1] BYTE[n-2] ... BYTE[0]은 수학적 표현으로 표현합니다.
BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0], 여기서 "+"는 XOR 연산을 나타냅니다. 생성기 다항식을 G17(17비트)로 설정하면 CRC 코드는 CRC16입니다.
CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2 / G17
여기에는 데이터 스트림을 16비트 왼쪽으로 이동한 다음 생성기 다항식 G17로 나누는 작업이 포함됩니다.
도출 결과 BYTE[n-1]에 대한 CRC 체크 코드는 이전 바이트의 CRC 체크 코드 Y[n](YH8[n])의 상위 8비트와 현재 바이트 BYTE[n-1]의 XOR 결과와 동일함을 알 수 있습니다.
바이트- 유형 알고리즘은 다음과 같습니다.
1) CRC 레지스터 그룹을 모두 "0"(0x0000)으로 초기화한다.
2) CRC 레지스터 그룹을 왼쪽으로 8비트 쉬프트하여 CRC 레지스터 그룹에 저장한다.
3) 원래 CRC 레지스터 그룹의 상위 8비트(오른쪽으로 8비트 이동)와 데이터 바이트 사이에 XOR 연산을 수행하여 값 테이블을 가리키는 인덱스를 얻습니다.
4) 인덱스가 가리키는 테이블 값과 CRC 레지스터 그룹을 XOR 연산한다.
5) 데이터 포인터를 증가시킵니다. 데이터 처리가 완료되지 않은 경우 2)단계를 반복하세요.
6) CRC를 획득합니다.
의사소통 효율성 향상을 위한 5가지 조치
5.1 별도의 통신 수신 및 전송 작업
8051 마이크로 컨트롤러는 인터럽트를 사용하여 직렬 포트를 통해 데이터를 전송하고 수신할 수 있습니다. 직렬 포트 컨트롤러 SCON은 초기화 및 비트 주소 지정을 지원합니다. 직렬 포트 인터럽트 요청이 발생하면 SCON의 하위 2비트가 전송 및 수신 인터럽트를 래치합니다. CPU가 직렬 포트의 전송 버퍼 SUBF(명령어: MOV SUBF, A)에 데이터나 문자를 쓰면 송신기가 전송을 시작합니다. 하나의 데이터 프레임을 완료한 후 하드웨어는 TI 플래그를 "1"로 설정합니다. 이는 직렬 포트가 다음 데이터 프레임을 보내기 위해 CPU에 인터럽트를 요청하고 있음을 나타냅니다. 마찬가지로, 직렬 포트 수신기가 수신을 위해 활성화된 경우 데이터 프레임을 수신하면 RI 플래그가 1로 설정됩니다. 이는 직렬 포트가 수신 데이터 버퍼에서 데이터를 읽기 위해 CPU에 인터럽트를 요청하고 있음을 나타냅니다.
5.2 인터럽트 기간 줄이기
소프트웨어 아키텍처 설계에는 다중 인터럽트가 사용되므로 안정적인 프로그램 작동을 보장하고 서로 다른 작업 간의 충돌 가능성을 최소화하기 위해 소프트웨어 구현은 다양한 인터럽트의 작업을 간소화하고 실행 시간을 단축하도록 노력해야 합니다. 통신 인터럽트 서브루틴 내에서 인터럽트 입력 시 직렬 포트 제어 레지스터에서 해당 상태 비트 지우기, 수신된 문자 읽기 또는 버퍼에서 전송될 문자 쓰기, 수신 또는 전송된 문자 수 증가 등과 같은 필수 작업을 수행합니다. 그런 다음 즉시 인터럽트를 종료합니다. 프레임 유효성 검사, 수신된 프레임 명령(원격 측정/원격 명령)에 응답, 전송 프레임 준비 등의 기타 작업은 기본 프로그램 내에서 처리되어야 합니다.
5.3 통신 정체를 방지하기 위한 효율적인 프레임 종료 감지
전용 소프트웨어 타이머를 활용하여 수신된 프레임의 끝을 감지하면 프레임이 불완전하게 수신되어도 통신 작업이 지연되는 것을 방지하여 후속 프레임을 적시에 수신할 수 있습니다. 프레임 내 바이트 사이의 시간 간격은 프레임-간-프레임 간격보다 훨씬 짧기 때문에 새 바이트가 수신될 때마다 소프트웨어 타이머가 시작됩니다. 타이머는 최소 프레임-~-프레임 간격으로 설정됩니다. 이 간격은 전송 속도에 따라 다릅니다. 설정된 시간이 경과하기 전에 다음 바이트가 수신되면 프레임이 완료되지 않았음을 의미하며 타이머가 다시 시작됩니다. 타이머가 사전 설정된 시간까지 성공적으로 카운트다운되면 해당 인터럽트 번호가 트리거됩니다. 타이머 인터럽트 서브루틴 내에서 프레임 종료 플래그 바이트가 설정되어 프레임 수신이 완료되었음을 나타냅니다. 마스터 프로그램은 프레임 수신 완료를 감지한 후 슬레이브 주소와 CRC(순환 중복 검사) 바이트를 확인하여 프레임의 무결성을 확인합니다. 마스터를 대상으로 하는 유효한 프레임으로 확인되면 해당 기능 코드를 기반으로 프레임 명령을 처리하고 프레임 전송을 준비합니다. 슬레이브가 잘못된 메시지를 받으면 오류 프레임을 다시 보냅니다. 수신된 메시지에 잘못된 CRC가 있는 경우 슬레이브는 응답하지 않도록 선택할 수 있습니다. 마스터가 지정된 시간 내에 슬레이브로부터 응답을 받지 못하면 요청 메시지를 다시 전송합니다. 여러 번의 재전송이 슬레이브로부터 응답 수신에 실패하면 통신 실패가 보고됩니다.
5.4 통신 속도 결정
모든 장치가 동일한 섀시 내에 위치하므로 모듈 간 거리가 최소화됩니다. Modbus는 장거리 통신을 위해 RS485에서 작동하므로 전송 속도에 대한 거리 효과를 고려할 필요가 없습니다. 또한 마스터-슬레이브 통신 모드는 회선 혼잡을 방지합니다. 따라서 통신 효율성의 관점에서 볼 때 설정된 전송 속도가 모듈에 사용되는 칩의 최대 전송 속도 제한을 초과하지 않는 한 전송 속도가 높을수록 정보 교환이 빨라지고 통신 효율성이 높아집니다. 두 통신 당사자 모두에 대해 전송 속도를 정확히 동일하게 설정하면 수신 측이 비트 주기의 중간 지점에서 각 데이터 비트를 샘플링하여 안정적인 통신을 달성할 수 있습니다.
5.5 합리적인 디버깅 방법
디버깅하는 동안 먼저 RS485/RS232 데이터 변환 모듈을 통해 각 CPU 모듈과 마이크로컴퓨터 간의 통신을 테스트하십시오. 개별 테스트를 성공적으로 마친 후 -모듈 간 디버깅을 진행하면 전반적인 디버깅 효율성이 크게 향상됩니다. 모듈-대-컴퓨터 통신 디버깅 중에 컴퓨터는 Modbus 디버깅 소프트웨어를 사용하여 마스터의 통신 프로세스를 시뮬레이션하고 슬레이브로부터 정보를 적극적으로 요청합니다. 이를 통해 전체 수신 및 전송 프로세스가 투명하고 명확해지며 모듈 문제를 적시에 해결할 수 있습니다. 공동 디버깅 중에 버스 모니터링 소프트웨어는 양쪽의 데이터를 관찰하여 문제를 신속하게 식별하고 해결합니다.
본 논문의 6가지 혁신 포인트
첫째, 본 논문에서는 보호장치에 보편적인 산업표준인 Modbus를 채택하였다. 필요한 도구 소프트웨어는 지적 재산권 비용을 들이지 않고 관련 웹사이트에서 직접 얻을 수 있습니다. 둘째, 보호 장치는 멀티태스킹을 구현하고 Modbus 프로토콜을 활용하여 CPU 모듈 간에 합리적인 공동 디버깅 메커니즘을 생성하여 협업 시스템 개발의 효율성을 크게 향상시킵니다.




