호스트 gpio
1 소개
현대 측정 및 제어 분야에서 산업 전자 제품은 왕왕 고립되어 있는 것이 아니라, 데이터를 즐기고 다중 기계 통신을 실현할 수 있는 기능이 필요하다. 따라서 대부분의 전자 제품은 다중 기계 확장 및 통신을 고려하도록 설계되었습니다. 예를 들어 마이크로프로세서를 사용하는 다양한 제어 시스템에서는 여러 마이크로프로세서의 유연한 확장과 그 사이의 데이터 통신이 필요합니다. AVR 단일 칩 마이크로 컴퓨터로 구성된 마스터-슬레이브 시스템을 예로 들어 SPI 인터페이스를 기반으로 하는 빠르고 신뢰할 수 있는 멀티마이크로프로세서 확장 및 통신 방법 (구현 원리, 하드웨어 연결 및 소프트웨어 구현 포함) 을 소개합니다.
2 통신 인터페이스 선택
통신 인터페이스의 선택은 전체 다중 기계 확장의 구성과 통신 시나리오의 설계와 관련이 있습니다. 마이크로컨트롤러의 통신 방법에는 SPI 통신 인터페이스, UART 통신 인터페이스 및 I2C 통신 인터페이스가 포함된 병렬 및 직렬 통신이 포함됩니다. 통신 인터페이스를 선택할 때는 통신의 신뢰성을 우선적으로 고려해야 한다. 병렬 통신 모드에서는 채널 간에 상호 간섭이 발생할 수 있으므로 전송 오류 시 데이터를 재전송해야 하며 데이터는 수신측에 동시에 도달해야 하지만 케이블 길이가 다르기 때문에 각 채널의 진정한 일관성을 보장하기가 어려울 수 있습니다. 또한 병렬 통신은 입출력 자원을 많이 사용하며 소규모 시스템에는 적합하지 않으므로 이 문서에서는 직렬 통신을 선택합니다. SPI 통신 인터페이스 속도, 통신 프로토콜 단순성, 상대적 안정성 등의 장점을 바탕으로 SPI 인터페이스를 선택하여 다중 기계 통신을 가능하게 합니다.
SPI 인터페이스는 단일 호스트 및 다중 슬레이브 모드 애플리케이션을 지원하는 마스터-슬레이브 모드 아키텍처를 사용하는 전이중 동기식 직렬 주변 장치 인터페이스입니다. 시계는 호스트에 의해 제어됩니다. 클럭 이동 펄스에서 데이터는 비트 단위로 전송되고 입력 출력은 전이중 통신 모드입니다. SPI 데이터 통신의 마스터-슬레이브 연결 및 데이터 전송 모드는 그림 1 에 나와 있습니다.
그림 1 SPI 데이터 통신의 마스터-슬레이브 연결 및 데이터 전송 모드
그림 1 에서 볼 수 있듯이 SPI 데이터 전송 시스템은 호스트와 슬레이브로 구성되어 있습니다. 주로 두 개의 마스터-슬레이브 시프트 레지스터와 하나의 호스트 SPI 클럭 생성기로 구성됩니다. 호스트는 SPI 데이터 전송을 위한 컨트롤러입니다. NSS 는 장치로부터 핀을 선택하는 것으로 호스트에 쓸모가 없으며 GPIO 포트로 구성하여 슬레이브 장치를 선택할 수 있습니다. 알림은 기계에서 전송 상태로 들어간 다음 호스트 부팅 클럭 생성기가 동기화 클럭 신호 SCK 를 생성합니다. 두 개의 저장된 이동 레지스터의 데이터는 SCK 의 구동 하에 순환하여 마스터-슬레이브 간의 데이터 교환을 완료합니다. 전송된 데이터는 8 비트이며 비트별로 전송됩니다.
SPI 는 시계를 통해 SCK 를 통해 호스트와 슬레이브를 동기화합니다. 호스트의 데이터는 MOSI 에서 슬레이브로, 기계의 데이터는 MISO 에서 호스트로 들어갑니다. 따라서 직렬 데이터 교환은 동기화를 위해 형식 비트를 추가할 필요가 없습니다 (예: 시작 비트 및 중지 비트). 대신 전송할 데이터를 호스트의 SPI 전송 데이터 레지스터에 직접 기록합니다. 이 쓰기 프로세스는 호스트 전송 프로세스를 자동으로 시작합니다. 슬레이브의 경우 SCK 의 박자 아래에서 MOSI 핀에 나타나는 데이터는 하나씩 슬레이브 시프트 레지스터로 전송됩니다. 전체 데이터 블록이 수신되면 인터럽트 플래그가 설정되어 해당 데이터 블록이 수신되었음을 알리고 이동 레지스터에서 수신한 내용이 기계 SPI 에서 데이터 레지스터로 복사됩니다. 사용자는 데이터를 보낼 때 SPI 에 데이터 레지스터를 보내고, 데이터를 수신할 때 SPI 수신 데이터 레지스터를 읽고, 나머지 이동, 동기화, 트랜시버 플래그 설정 등의 작업은 내장 SPI 모듈에 의해 자동으로 수행됨을 알 수 있습니다.
다중 기계 확장 및 통신 원리
1, 2, 2-2-종속 시스템 구조를 예로 들어 다중 기계 확장 및 통신 시나리오를 소개합니다. 시스템 블록 다이어그램은 그림 2 에 나와 있습니다. 호스트는 각각 두 대의 슬레이브 SPI 인터페이스에 연결되어 있으며, 호스트와 슬레이브 사이에 주소 할당을 추가하여 라인 AD 를 만들 수 있습니다. 이론적으로 이런 확장 방식은 무수한 노예의 확장과 교류를 실현할 수 있다.
그림 2 시스템 블록 다이어그램
3. 1 주소 할당
다중 시스템 통신 시스템에서 호스트는 주소를 통해 각 슬레이브에 액세스하므로 각 슬레이브에는 고유한 주소가 필요합니다. 주소의 고유성과 신뢰성을 보장하기 위해서는 슬레이브를 균일하게 주소 지정해야 합니다.
일반적인 주소 지정 방법은 dip 스위치를 슬레이브 I/O 에 연결하고 수동 전화 접속을 통해 주소 지정을 수행하는 것입니다. Dip 스위치와 스위치는 각각 0 과 1 을 나타내며 특정 데이터, 즉 슬레이브 주소를 나타냅니다. 이 하드 주소 지정 방식은 간단하지만 슬레이브 시스템의 I/O 자원을 사용합니다. 기계 수가 증가하면 dip 스위치의 I/O 포트도 그에 따라 증가하고 주소 지정 작업은 수동 조작이 필요하며 실제 적용에서는 불편합니다.
이 문서에서는 호스트가 슬레이브 시스템에 주소를 자동으로 할당하는 방법을 사용하는 소프트웨어 주소 지정 방법을 설계했습니다. 하드웨어에서는 그림 2 와 같이 SPI 통신 인터페이스를 기반으로 주소 할당을 추가하여 선을 구현할 수 있습니다. 구현 원칙은 마스터 장치가 AD 선을 통해 슬레이브 1 송신 주소로 신호를 할당하고, 장치 1 AD 선을 통해 장치 2 의 주소 할당을 금지하여 주소 할당 중 특정 시점에 하나의 슬레이브 장치만 주소 정보 처리를 할 수 있도록 하는 것입니다. 호스트는 SPI 인터페이스를 통해 기계에 주소 할당 정보를 보내고, 모든 시스템은 호스트의 주소 정보를 수신하지만, 이때 1 의 주소 할당만 가능하므로 1 에서 주소 할당 정보를 처리하고 다음 순서로 슬레이브/KLOC-에 주소를 할당합니다.
① 호스트는' (',이 시점에서 주소 할당, 기계 1 에서 호스트에 확인 메시지를 피드백하도록 지시하기 위해' (') 을 (를) 송신합니다.
2 호스트는 슬레이브에 주소를 보내고, 기계 1 스토리지 주소에서 확인 메시지를 호스트에 피드백합니다.
③ 호스트는 주소 할당 종료 식별자')' 를 기계에 보내 기계 주소 할당이 완료되었음을 알려 준다.
호스트가 슬레이브 1 에 주소를 성공적으로 할당하면 호스트는 슬레이브 1 의 주소 할당을 끄고 1 에서 슬레이브 2 의 주소 할당을 켤 수 있습니다. 마찬가지로, 위의 순서대로 호스트는 모든 슬레이브에 대한 주소 할당을 완료합니다.
3.2 데이터 조회
마스터 디바이스가 모든 슬레이브 디바이스를 균일하게 주소 지정하면 각 슬레이브 디바이스는 고유한 주소를 가지므로 마스터 디바이스와 슬레이브 디바이스 간에 데이터를 조회하고 전송할 수 있습니다. 데이터 쿼리 작업에서 마스터 장치는 쿼리할 슬레이브 장치의 주소를 모든 슬레이브 장치로 보냅니다. 기계에서 호스트로부터 보낸 주소를 모두 받은 후 자신의 주소 정보와 비교하여 주소가 일치하는 슬레이브 응답 호스트를 호스트에 전송하고 데이터를 호스트로 전송하여 슬레이브 시스템에 대한 호스트 데이터 조회를 완료합니다. 데이터 쿼리 작업의 시간 순서는 다음과 같습니다.
(1) 마스터 장치는 장치로부터 데이터 쿼리를 전송하여' ['을 (를) 식별하고 장치로부터 데이터 쿼리 작업으로 인식합니다.
(2) 호스트가 데이터 조회를 기계에서 보낸 주소 값, 기계에서 주소 정보를 받고 자신의 주소와 비교합니다. 같은 것만 다음 작업을 할 수 있고, 다른 것은 아무 작업도 하지 않는다.
③ 해당 주소의 기계에서 호스트로 데이터를 보내고 호스트가 데이터를 수신합니다.
4 기계에서 호스트로 데이터 종료 ID "]" 를 보내 호스트 데이터 전송이 끝났음을 알립니다.
시간순서에 따라 마스터 스테이션은 모든 슬레이브 또는 슬레이브 스테이션을 조회할 수 있습니다.
3.3 데이터 전송
데이터를 전송할 때 호스트는 데이터를 전송해야 하는 모든 슬레이브에 주소 정보를 보냅니다. 기계에서 호스트로부터 보낸 주소를 모두 받은 후 자신의 주소 정보와 비교하면, 주소가 일치하는 슬레이브 응답 호스트, 데이터 수신 준비, 호스트에서 컴퓨터로 데이터를 전송하는 과정을 완료합니다. 데이터 전송 순서는 다음과 같습니다.
1 호스트는 기계에서 데이터 및 시작 식별자 ""를 전송하여 기계 데이터 전송이 끝났음을 알립니다.
시간순서에 따라 호스트는 필요에 따라 모든 또는 한 대의 슬레이브에 데이터를 전송할 수 있습니다.
4 결론
다중 기계 확장 및 통신을 구현하는 방법을 소개합니다. 이 방법은 표준 SPI 인터페이스에 일반 I/O 선을 추가하고 소프트웨어 주소 지정을 활용하여 시스템에서 주소를 할당합니다. 하드웨어 주소 지정보다 더 많은 I/O 리소스를 절약하고 쉽게 구현할 수 있습니다. SPI 인터페이스를 기반으로 데이터 쿼리 및 전송 통신 속도가 더 빠릅니다. 이 글에서 제시한 다중 기계 확장 통신 방법은 간단하고, 안전하고, 믿을 만하며, 보급할 가치가 있다.
참고 자료:
[1] 후진타오. 단일 칩 마이크로 컴퓨터 원리 및 인터페이스 기술 [M]. 베이징: 칭화대 출판사, 2004.
조카이, 황산. TLl6C550 TMS320VC5402 와 PC 직렬 통신에 사용되는 응용 프로그램 [J]. 외국 전자 부품, 2007, (9): 17-20.
[3] 서명, 곽량 차단. 임베디드 시스템에서 양방향 투명 직렬 포트 확장 기술 구현 [J]. 정보, 2009, (14): 3 1-34.
[4] 마중매. 단일 칩 c 언어 응용 프로그램 설계 [M]. 베이징: 베이징항공우주대학 출판사, 2007.