2016-09-04 5 views
0

GNURadio를 사용하여 USRP 장치를 실행하는 방법을 배우고 있습니다. 한 USRP에서 다른 USRP로 데이터 스트림을 보내고 성공적으로 수신 할 수 있습니다. 이제 좀 더 진보 된 것을하고 싶습니다. 현재 일부 데이터를 수신하도록 USRP를 설정하고 데이터가 완전히 수신되면이 USRP가 자동으로 송신기가되어 데이터를 다시 보내주기를 원합니다 (예 : ACK/NACK 또는 기타). 나는 내가 USRP가 몇 번에 전송하고 다른 사람을받을 수 있도록하기 위해 동일한 주소로 UHD 소스와 UHD 싱크를 사용할 필요가 있다고 생각GNURadio를 사용하여 USRP를 RX에서 TX로 전환

  1. : 여기 내 질문입니다. UHD 블록을 모두 제어하여 전송하지 않을 때 수신하는 방법은 무엇입니까?

  2. 블록 (pmt, blob, 메시지 전달, 태그 된 스트림)간에 데이터와 제어를 전달하는 데는 여러 가지 방법이 있음을 눈치 챘습니다. EE 배경에서 문서를 읽으려고했지만이 프로젝트에 무엇을 사용해야하는지 잘 모르겠습니다.

답변

1

첫 번째 질문입니다. UHD 소스/싱크 블록을 사용하면 전체 또는 반이중 통신을 수행 할 수 있습니다. 소스 블록을 RX2 안테나로 선택하고 싱크의 경우 을 각각 선택하면 동시에 수신 및 전송할 수 있습니다. 반 누클 런을 선호하는 경우 소스 및 싱크 블록 모두에서 TX/RX 안테나를 선택하십시오. 전송할 때까지 USRP 장치가 TX 모드로 전환 된 곳에서 무언가를 전송하지 않으면 장치가 샘플을 계속 수신합니다.

두 번째 질문은 응용 프로그램에 따라 다릅니다. 스트림 연결 응용 프로그램의 경우 기본 연결이 바람직하지만 PMT 및 메시지 대기열 메커니즘은 버스트 또는 패킷 기반 전송의 경우 더 나은 방법입니다.

+0

나는 패킷을 보낼 생각입니다. 우선 PMT를 공부해야하지만 PMT를 사용하여 데이터와 제어를 모두 전달해야하는지, 아니면 데이터를 위해 PMT를 사용해야하고 다른 것을 제어해야합니까? – Doe

+0

@Doe 그것은 많은 측면에 달려 있습니다. 하나의 중요한 고려 사항은 gnuradio가 스트림이 아닌 메시지를 사용하는 대부분의 신호 처리 작업을 지원한다는 것입니다. 재사용 성을 위해 기존의 스트림 블록을 사용하고 제어 또는 피드백을 위해 PMT를 사용해야합니다. 개인적으로, 프로토콜의 상위 계층 (비트 스크램블링, 비트 인터리빙 등)에서 PMT를 사용하고 흐름 그래프가 PHY (물리 계층)로 전파함에 따라 스트림을 사용합니다. 그럼에도 불구하고 버스트 전송 및 UHD를 다룰 때는 적절한 프레임 전송을 보장하기 위해 버스트 태그를 사용해야합니다. – Manos

1

(마노스의 좋은 대답에 대해 논평하기에 충분한 담당자가 아닙니다).

태그 명령 지원을 위해 UHD API을보고 USRP 블록 헤더 (usrp_sink.h usrp_source.h)를보십시오. PMT와 함께 태그 스트로브를 사용하여 예를 들어 "tx_freq"명령을 전송하여 전송 주파수를 변경하는 GRC 예제를 쉽게 만들 수 있습니다. 물론 스코프 또는 스펙트럼 분석기를 사용하여 결과를 확인하는 것이 좋습니다. 버스트의 시작/끝은 또한 배우기에 흥미 롭습니다.

또한 uhd 예제 프로그램을 보면 약간의 명확성을 얻을 수 있습니다. 그것이 내가 시작한 곳입니다 ...