티스토리 뷰

이 글은  NI LabVIEW와  NI USRP-2920을 이용하여 디지털 무선 통신을 에 대한 기능을 확인하고,  디지털 통신에 대한 기초에 대해서 설명을 합니다. 이 글에서는 코드를 기반으로 모듈러 프로그래밍 접근 방식을 이용하여 무선 통신 시스템의 각 단계에 대한 학습을 제공합니다. 


디지털 통신의 중요성


디지털 통신은 구리선, 광섬유 케이블, 공기등을 통해서 통신이 가능합니다. 무선 디지털 통신 시스템은 다양한 스펙트럼 임펄스를 사용하는 Spark-gap 전송기를 이용하여 단일 비트들을 전송하는 방식으로 부터 시작되었습니다.  반면에 오늘날 현대 통신 시스템은 다수의 유저들 사이에서 많은 데이터를 전송하기 위해서 스펙트럼을 효율적으로 사용하게끔 만들어져 있습니다. 이는 자동차 키 없이 자동차 문을 해제하는 것과 같은 편의를 제공하기 위해서 핸드폰을 셀룰러 네트워크에 연결하고, 컴퓨터를 인터넷에 연결합니다. 


데이터 송신기의 증가로 인해 엔지니어들은 늘어난 데이터 전송의 요구를 충족시키고 전력 소비를 줄이는 반면 부족한 스펙트럼에 대한 활용방법과 간섭을 처리하는데 집중을 하고 있습니다. 디지털 통신은 발전소에서 의료 기기에 이르기 까지 모든 무선 산업에 포함되기 때문에 RF 통신 원리에 대한 기초적인 이해가 점점 더 중요해지고 있습니다. 


일반적인 PC에는 Wi-Fi, 이더넷 케이블, 블루투수 및 핸드폰, 모뎀 등을 활용하여 인터넷에 접속할 수 있는 많은 방법을 가지고 있습니다. HTTP 인터페이스의 기능은 물리적 연결 타입을 OSI 7계층 모델(ISO/IEC 7498-1)로 분리하는데 있습니다. OSI 7계층은 디지털 통신을 7개의 추상 계층으로 나뉘어 통신하는 방식을 말합니다. 



 

 

OSI 7계층을 기반으로 USRP를 통한 이미지 전송에 대해서 생각해 보도록 하겠습니다. USRP와 LabVIEW를 통해서 이미지를 전송하기 위해서는 아래와 같은 과정을 거치게 됩니다.


  • 물리 계층: The NI USRP-2920는 8 PAK 변조 방식을 이용하여 무선 통신을 위해 사용됩니다.
  • MAC 서브 계층 (데이터 링크 계층): 패킷 크기와 구성은 런타임시에 상호적으로 구성됩니다. 
  • 전송 계층: 동기화 비트들은 시간 정보 복구, 패킷 유효성 검사, 에러 검출을 위해서 알려진 패턴으로 제공됩니다.
  • 세션 계층 : 전송된 데이터가 이미지, 비디오 혹은 문자열인지를 결정합니다.
  • 표현 계층: JPEG 압축은 이미지 파일이나 정적 비디오 프레임의 데이터의 양을 줄이는데 사용됩니다.
  • 응용 계층: LabVIEW는 이미지 혹은 비디오 수집은 물론 수신된 데이터를 재구성 및 디스플레이 하기 위한 Webcam과 컴퓨터 출력과의 연결을 제공합니다.


Webcam의 경우 데이터는 카메라로부터 수집이 되고, JPEG 방식을 이용하여 압축이 된 뒤 패킷 전송을 위해서 데이터가 나눠지게 됩니다. 가드 비트(Guard Bit)는 필터효과를 방지하고, 동기화 비트(Synchronization Bit)는 데이터 동기화 및 유효성 확인을 위한 알려진 기준을 제공합니다. 패킷이 만들어지면, 8 PSK 변조가 사용되고 Pulse Shaping 필터가 적용이 된 뒤, u 변환을 위해 NI USRP을 통해서 RF신호로 전달됩니다.


 이 과정들은 수신 측에서 받은 소스 데이터를 완벽히 재구성하기 위해서 동일하게 반복됩니다. 대부분의 경우 수신측에서는 상이한 시간에 도달하는 잡음, 간섭, 다수의 직경로가 아닌 경로 들로 인해 발생하는 왜곡과 동기화에 대한 다중 레이어의 필요성으로 인해 데이터를 복구하는 하는 것에 비해 데이터 전송은 비교적 쉬운 부분이라 여겨집니다. 




 LabVIEW VI는 송신기 및 수신기가 링크의 다중 속도에 대한 특성을 지원하기 위해서 모듈형 비동기 아키텍처를 사용합니다. 각 단계는 단계 내에서 구현이 되어 있습니다. [예제코드 다운받기]


Tx 프로그램 아키텍처


송신기 기능을 하는 VI의 상호적인 LabVIEW의 프론트 패널에서는 시스템의 직관적인 단계별 구성을 가능하게 합니다. 프론트패널에서는 다음과 같은 기능을 수행할 수 있습니다.


  1. 장비 및 채널 설정
  2. 시스템에 대한 패킷의 구성과 변조 방식 결정
  3. 전송되는 데이터 타입 결정

블록다이어 그램에서는 깔끔한 코드를 위해 개발되었고, 향후 사용자 정의를 위해 문서화가 되어있습니다. 코드에는 4개의 병렬 루프가 있습니다. 이 비동기 루프들은 큐 구조를 사용하여 데이터를 공유하고 있습니다. 각 루프의 기능은 다음과 같습니다. 1번 루프는 이진 데이터를 받거나, 생성을 합니다. 2번 루프는 패킷을 생성합니다. 3번 루프는 변조를 처리합니다. 마지막으로 4번 루프는 전송을 위해 USRP로 데이터를 씁니다. 이 단계들 중 어떤 단계에서도 독립적으로 유지, 변경이 가능합니다. 



 Rx 프로그램 아키텍처


실행을 하게 되면, 수신자는 탭 기반의 셋업 단계를 통해서 사용자에게 데이터를 전달하기 위해서 동일한 아키텍처를 사용합니다. 이런 수신기의 설정을 송신기의 설정과 맞추는 것은 아주 중요한 요소입니다. 설정이 완료되면, 마지막 탭에서 수신된 메시지, 이미지, 또는 비디오를 출력합니다. Constellation plot과 Bits/Second plot은 어플리케이션에 추가적인 이해를 제공합니다.


수신자의 블록다이어그램 역시 사용자 정의를 위한 문서화와 디자인으로 되어 있습니다. 블록다이어그램에는 5개의 병렬 루프가 존재합니다. 1번 째 루프는 NI USRP로부터 데이터를 수신하고, 2번째 루프 패킷으로 받은 데이터를 분할합니다. 3번째 루프에서는 복조과정을 처리하고, 4번째 루프에서는 유효한 패킷인지를 체크합니다. 마지막으로 5번째의 루프에서는 비트를 디코딩 하여 메시지로 만들어 냅니다. 




어디서든 디지털 무선 통신 시스템은 볼 수 있고, 이해하기 어려운 많은 개념을 제공하고 있습니다. 디지털 통신을 이해하는 첫 번째 단계는 시스템을 각 부분별로 이해를 하는 것입니다. OSI 모델은 각 시스템을 구성하는 표준 방법을 제시합니다. LabVIEW를 통해 라디오 플랫폼을 정의한 NI USRP 소프트웨어는 무선 통신 시스템을 만들고, 변경하는데 유연한 해결방안을 제공하고 있습니다. 


이 글에서는 디지털 통신의 기초와 USRP를 이용한 RF의 간략한 통신 방법에 대해서 알아보았습니다.

이 글이 도움이 되셨나요? 그렇다면 아래의 그림을 클릭해주세요.



댓글