내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
이점: 핀점유량이 적고 원가가 저렴합니다.
결점:전송 속도가 느립니다.
응용:장거리, 저속 통신 상황
이점: 빠른 전송 속도
결점: 많은 핀을 점유하고 비용이 높음
응용:단거리 상황.
데이터는 한 방향으로만 전송될 수 있습니다.
데이터는 양방향으로 전송될 수 있지만 시간 공유가 필요합니다.
데이터는 양방향으로 동시에 전송될 수 있습니다.
클럭 포트를 통한 데이터 전송
클럭 포트가 없으며 송신자와 수신자는 자체 클럭을 사용하여 데이터 송수신 프로세스를 제어합니다.
의미: 범용 비동기 수신기 송신기, 직렬 데이터 버스, 데이터 전송 시 병렬 데이터를 직렬 데이터로 변환하여 전송하고, 데이터 수신 시 수신된 직렬 데이터를 병렬 데이터로 변환합니다. 이를 위해서는 두 개의 신호 라인이 필요합니다. 하나는 직렬 포트 전송에 사용되고 다른 하나는 두 장치 간의 TXD 및 RXD가 교차 연결되어 연결되어야 합니다.
1.물리층: 인터페이스 종류, 레벨 기준 등
2.프로토콜 계층: 통신 프로토콜(데이터 형식, 전송 속도 등 포함)
유아트 전송 또는 수신 중 데이터 프레임은 다음으로 구성됩니다. 4 시작 비트, 데이터 비트, 패리티 비트, 정지 비트로 구성됩니다. 。
시작 비트: 프레임 시작시에는 Low Level 0의 Low Bit를 유지해야 한다.
데이터 비트: 전송할 데이터 비트, 데이터 비트는 5~8비트일 수 있으며 LSB가 먼저, MSB가 마지막에 있습니다.
숫자 확인: 선택적 비트로 1비트를 차지하며 확인할 필요가 없습니다.
정지비트: 프레임의 끝, 필수, 선택적으로 0.5/1/1.5/2 비트를 점유하고 로직 하이 레벨을 유지합니다.
전송 속도(Baud rate): 직렬 통신 속도는 초당 전송되는 이진 데이터의 비트 수를 나타내는 전송 속도로 표현됩니다. 단위는 bps(초당 비트)입니다.일반적으로 사용되는 전송 속도는 9600입니다.、19200、38400, 57600 및 115200 기다리다.
UART는 데이터의 직렬-병렬 변환을 완료하는 역할을 담당하며 신호 전송은 외부 드라이버 회로에 의해 구현됩니다.전기 신호의 전송 프로세스에는 비동기 직렬 통신의 경우 다양한 수준의 표준과 인터페이스 사양이 있습니다.인터페이스 표준RS232가 있습니다、RS422, RS485 등은 인터페이스의 다양한 전기적 특성을 정의합니다. RS-232 단일 종단 입력 및 출력입니다. RS-422/485 차동 입력 및 출력용
이 섹션의 실험 작업은 호스트 컴퓨터가 직렬 포트 디버깅 도우미를 통해 Venus 개발 보드 및 Venus 개발 보드 PL에 데이터를 보내는 것입니다. 터미널은 USB_UART 직렬 포트를 통해 데이터를 수신하고 수신된 데이터를 호스트 컴퓨터로 전송하여 직렬 포트 데이터 루프백을 완료합니다. UART 전송 속도: 115200. 정지 비트: 1, 데이터 비트 8, 패리티 비트 없음.
uart_rx 모듈에서: uart_rxd는 직렬 포트로 수신된 데이터이고, uart_rx_done은 데이터 변환이 완료되었음을 나타냅니다(데이터가 병렬 데이터에서 직렬 데이터로 변환됨). uart_rx_data는 변환이 완료된 후의 직렬 데이터를 나타냅니다. 참고: 수신된 병렬 데이터는 1비트이고 변환된 직렬 데이터는 8비트입니다.
uart_tx 모듈에서: uart_tx_dat는 변환된 8비트 직렬 데이터를 나타내고, uart_tx_en은 데이터가 병렬에서 직렬로 변환되었음을 나타내며, uart_txd는 변환된 병렬 데이터를 나타내고, uart_tx_busy는 데이터가 직렬에서 직렬로 변환되었음을 나타냅니다. 시리얼이며 변환 중입니다.
uart_rxd는 비동기 신호이고 시작 비트가 로우 레벨이므로 하강 에지 변화를 캡처해야 하므로 3비트로 처리해야 데이터 수신 시작 비트 신호를 얻을 수 있습니다.시작_ko신호는 병렬 데이터가 수신되고 있음을 나타내며 병렬에서 직렬로의 변환이 수행될 수 있습니다.
rx_플래그 start_en부터 시작하여 rx_cnt=9, baud_cnt에서 216까지 병렬 데이터를 직렬 데이터로 변환하는 작업이 진행 중임을 나타냅니다. 이는 프레임 데이터가 끝나기 전에 다음 프레임 데이터의 시작 비트가 오는 상황을 방지하기 위해 정지 비트를 0.5비트로 제어합니다.
보드_초: 시스템 클럭은 50Mhz, 즉 50000000이고 여기서 전송 속도는 115200이므로 50000000/115200=434, 즉 데이터 1비트를 전송하는 데 434개의 시스템 클럭 사이클이 필요하므로 baud_cnt 카운터가 필요합니다.
rx_데이터 : 직렬 데이터는 8비트이므로 특정 비트의 데이터를 쉽게 찾고 값을 할당할 수 있도록 인덱스를 추가하는 것이 가장 좋습니다. 따라서 rx_cnt가 필요합니다.
rx_데이터_t:변환된 직렬 데이터입니다.
uart_rx 파형 다이어그램
uart_tx_en: 직렬 데이터 변환이 완료되었음을 나타냅니다. 즉, uart_rx_done 신호입니다.
uart_data_t: 후속 전송을 용이하게 하기 위해 변환 후 직렬 데이터 비트를 임시로 저장합니다.
baud_cnt: 위와 동일합니다.
tx_cnt: 위와 동일합니다.
uart_tx 파형 다이어그램
uart_rx 시뮬레이션 파형
uart_tx 파형 시뮬레이션
Uart 전체 파형 다이어그램
직렬 포트 디버깅 도구 열기
디버깅해야 하는 신호에 디버그 속성을 추가하고 프로그램을 개발 보드에 구운 후 직렬 포트 도우미에 다음 정보를 입력합니다.
왜냐하면 55 66 77의 4자리 16진수 코드는 각각 0101 0101, 0110 0110, 0111 0111이기 때문입니다.