KR20140048525A - 실시간 통신이 가능한 점검장치 - Google Patents

실시간 통신이 가능한 점검장치 Download PDF

Info

Publication number
KR20140048525A
KR20140048525A KR1020120114570A KR20120114570A KR20140048525A KR 20140048525 A KR20140048525 A KR 20140048525A KR 1020120114570 A KR1020120114570 A KR 1020120114570A KR 20120114570 A KR20120114570 A KR 20120114570A KR 20140048525 A KR20140048525 A KR 20140048525A
Authority
KR
South Korea
Prior art keywords
real
time
communication
data
rtik
Prior art date
Application number
KR1020120114570A
Other languages
English (en)
Other versions
KR101407725B1 (ko
Inventor
조한무
김상용
이철훈
Original Assignee
엘아이지넥스원 주식회사
충남대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘아이지넥스원 주식회사, 충남대학교산학협력단 filed Critical 엘아이지넥스원 주식회사
Priority to KR1020120114570A priority Critical patent/KR101407725B1/ko
Publication of KR20140048525A publication Critical patent/KR20140048525A/ko
Application granted granted Critical
Publication of KR101407725B1 publication Critical patent/KR101407725B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

실시간 통신이 가능한 점검장치 및 그 실시간 통신 지원방법이 개시된다. 본 발명에 따른 점검장치는, 임베디드 시스템의 성능을 점검하는 점검장치에 있어서, 외부의 기기와 데이터를 송수신하는 통신부; 주기적인 타이머 인터럽트를 발생시키는 실시간 이식 커널을 이용하여 통신부에 실시간성을 제공하는 실시간성 제공부; 및 통신부를 주기적으로 호출하여 실시간성 제공부에 연결시키는 호출부를 포함하는 것을 특징으로 한다.

Description

실시간 통신이 가능한 점검장치{Test Equipments capable of Real Time Communication}
본 발명은 실시간 통신이 가능한 점검장치 및 그 실시간 통신 지원방법에 관한 것으로서, 윈도우즈 환경에서 동작하는 통신장비에 실시간성을 제공하며, 제품의 개발비용을 낮출 수 있는 실시간 통신이 가능한 점검장치 및 그 실시간 통신 지원방법에 관한 것이다.
군 장비 및 항공분야에서 개발된 임베디드 시스템은 실제 장비를 사용하기에 앞서, 해당 장비의 성능을 검증하는 기능시험, 즉 수락시험을 수행해야 한다. 이때, 임베디드 시스템의 성능을 검증하기 위해서는 이를 위한 점검장비가 필요하다. 특히, 유도무기체계에서 사용되는 점검장비는 실시간으로 데이터를 획득하고 평가할 수 있어야 하는데, 이를 위해서는 데이터의 수집의 정확성과 실시간 데이터 통신이 요구된다.
일반적으로 점검장비는 인텔에서 제공하는 x86 아키텍쳐 기반으로 구성되어있으며, 개발의 편의성을 제공하기 위해 윈도우즈 운영체제를 사용하고 있다. 하지만, 윈도우즈 운영체제는 실시간 운영체제가 아니며 윈도우즈에서 제공하는 멀티미디어 타이머를 사용하여 통신하기 때문에 10ms 이하의 주기로 통신할 경우에는 실시간성을 보장하지 못하며, 비공개 커널이기 때문에 실시간성을 제공하더라도 이 기종 컴퓨터 간의 통신 동기화를 위한 커널 수정이 불가능하여 통신 동기화를 이룰 수 없다는 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위하여 창안된 것으로서, 윈도우즈 환경에서 동작하는 통신장비에 실시간성을 제공하며, 제품의 개발비용을 낮출 수 있는 실시간 통신이 가능한 점검장치 및 그 실시간 통신 지원방법을 제공하는 것을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 점검장치는, 임베디드 시스템의 성능을 점검하는 점검장치에 있어서, 외부의 기기와 데이터를 송수신하는 통신부; 주기적인 타이머 인터럽트를 발생시키는 실시간 이식 커널을 이용하여 통신부에 실시간성을 제공하는 실시간성 제공부; 및 통신부를 주기적으로 호출하여 실시간성 제공부에 연결시키는 호출부를 포함하는 것을 특징으로 한다.
실시간성 제공부 및 호출부는 RTiK(Real-Time implant Kernel) 동작방식으로 동작할 수 있다.
여기서, 실시간성 제공부는 HAL(Hardware Abstraction Layer)을 통한 x86 기반의 하드웨어 플랫폼의 Local APIC의 제어를 통하여 실시간성을 제공할 수 있다.
또한, 호출부는 윈도우즈 사용자 레벨에서 동작하는 쓰레드(thread)들에 정의된 작업을 수행하여 주기적인 동작을 보장할 수 있다.
또한, 통신부는 폴링(Polling) 방식 및 더블 버퍼(Double Buffer) 중의 적어도 하나를 이용하여 실시간 통신을 수행할 수 있다.
이때, 통신부는 MIL-STD-1553B 통신을 이용하여 통신을 수행하는 것이 바람직하다.
전술한 목적을 달성하기 위한 실시간 통신 지원방법은, 임베디드 시스템의 성능을 점검하는 점검장치의 실시간 통신 지원방법에 있어서, 외부의 기기와 데이터를 통신하는 단계; 주기적인 타이머 인터럽트를 발생시키는 실시간 이식 커널을 이용하여 통신단계에 실시간성을 제공하는 단계; 및 통신단계에 의한 데이터통신을 주기적으로 호출하는 단계를 포함하는 것을 특징으로 한다.
여기서, 실시간성 제공단계 및 호출단계는 RTiK(Real-Time implant Kernel) 동작방식으로 동작할 수 있다.
실시간성 제공단계는 HAL(Hardware Abstraction Layer)을 통한 x86 기반의 하드웨어 플랫폼의 Local APIC의 제어를 통하여 실시간성을 제공할 수 있다.
또한, 호출단계는 윈도우즈 사용자 레벨에서 동작하는 쓰레드(thread)들에 정의된 작업을 수행하여 주기적인 동작을 보장할 수 있다.
또한, 통신단계는 폴링(Polling) 방식 및 더블 버퍼(Double Buffer) 중의 적어도 하나를 이용하여 실시간 통신을 수행할 수 있다.
이때, 통신단계는 MIL-STD-1553B 통신을 이용하여 통신을 수행하는 것이 바람직하다.
본 발명에 따르면, 윈도우즈 환경에서 동작하는 통신장비에 실시간성을 제공하며, 제품의 개발비용을 낮출 수 있게 된다.
또한, 본 발명에 따르면, MTL-STD-1553B 통신을 이용함으로써 점검장치에서의 에러 발생률을 최소화할 수 있으며, 이를 통하여 이 기종 컴퓨터 간의 동기화문제를 해결할 수 있게 된다.
도 1은 본 발명의 실시예에 따른 점검장치를 개략적으로 도시한 도면이다.
도 2는 멀티코어 환경에서 RTiK의 동작과정을 나타낸 도면이다.
도 3은 이벤트 기반 RTiK의 동작방식을 나타낸 도면이다.
도 4는 점검장치의 통신구조를 나타낸 도면이다.
도 5는 폴링 방식을 이용한 실시간 통신구조를 나타낸 도면이다.
도 6은 폴링 방식과 더블 버퍼를 이용한 실시간 통신구조를 나타낸 도면이다.
도 7은 MIL-STD-1553B 통신의 전체적인 구조를 나타낸 도면이다.
도 8은 RTiK의 주기 쓰레드에 TX 명령과 RX명령을 작성한 MIL-STD-1553B의 BC 프로그램 구조를 나타낸 도면이다.
도 9는 더블 버퍼를 사용한 MIL-STD-1553B의 RT 프로그램 구조를 나타낸 도면이다.
도 10은 실시간 동작을 검증하기 위해 구성한 실험환경을 나타낸 도면이다.
도 11은 도 10의 실험환경을 위한 장비의 예를 나타낸 도면이다.
도 12는 RTiK를 이용한 통신주기 2ms 측정의 일 예를 나타낸 도면이다.
도 13은 RTiK의 통신데이터의 확인의 일 예를 나타낸 도면이다.
도 14는 RTiK를 이용한 통신주기 2ms 측정의 다른 예를 나타낸 도면이다.
도 15는 RTiK의 통신데이터의 확인의 다른 예를 나타낸 도면이다.
도 16은 RTiK을 이용한 통신주기 2ms 측정 및 워크로도 10개를 예시한 도면이다.
도 17은 워크로드 적용시 통신데이터 확인 예를 나타낸 도면이다.
도 18은 워크로드 적용시 2ms, 5ms, 10ms 실험결과를 나타낸 도면이다.
도 19는 본 발명의 실시예에 따른 실시간 통신 지원방법을 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 따른 실시간 통신이 가능한 점검장치 및 그 실시간 통신 지원방법을 상세하게 설명한다.
임베디드 시스템의 성능을 점검하기 위한 점검장비는 상용 서드파티인 RTX(Real-Time Extension), INtime, RTiK(Real-Time implant Kernel) 등을 이용하여 윈도우즈에 실시간성을 제공하고, 실시간 통신이 가능하도록 할 수 있다.
IntervalZero의 RTX는 윈도우즈 XP 및 윈도우즈 7에 실시간 제어가 가능한 실시간 운영체제의 기능을 부가해주는 확장 소프트웨어로서, 대부분의 개발자들이 익숙하고 편리한 윈도우즈 환경에서 RTX를 이용하여 기존 윈도우즈의 장점을 최대한 사용할 수 있도록 제공해 준다. 즉, RTX는 순수 실시간 운영체제가 아니라 윈도우즈의 대중성 및 풍부한 GUI Library의 장점을 최대한 이용하여 실시간성 등의 제약사항들을 보완해 주는 소프트웨어이다. 이러한 RTX는 현재 국방, 항공, 계측기, 시뮬레이션, 의료기기 등의 많은 산업분야에서 사용되고 있다.
INtime은 인텔사가 개발한 iRMX커널을 사용하고 있는 인텔의 x86/CPU에 특화된 리얼타임 시스템 소프트웨어이다. INtime은 윈도우즈 XP/윈도우즈 2000을 플랫폼으로 한 제어, 계측 시스템에 INtime을 부가해 시스템상의 실시간성이 필요한 처리를 INtime이 처리하게 하여, 윈도우즈의 유연성은 그대로 유지하면서 보다 높은 신뢰성과 정밀한 리얼타임 퍼포먼스를 보충할 수 있다. INtime은 산업용 컴퓨터나, x86 보드 컴퓨터, 범용 컴퓨터의 윈도우즈 운영체제와 협조 동작하는 실시간 운영체제이며, 동일 하드웨어 상에서 윈도우즈와 동시에 동작하는 실시간 운영체제이다. 따라서 INtime이 설치된 윈도우즈는 2개의 커널이 동작하는 멀티 커널 시스템이 되며, 이는 2개의 가상 CPU를 사용하는 형태로 동작하게 된다.
그런데, 상용 서드파티인 INtime 및 RTX는 지정된 통신장비를 사용할 경우에만 실시간 통신이 가능하고, RTX 및 INtime과 같은 상용 솔루션은 고가의 경상 사용료를 가지기 때문에, 이로 인해 신무기 및 항공분야의 제품을 개발 시 많은 개발 비용이 발생하게 되는 문제점이 있다.
이를 해결하기 위하여, 본 발명의 실시예에 따른 점검장치(100)는 임베디드 시스템의 성능을 점검하는 장치로서, 도 1에 도시한 바와 같이 외부의 기기와 데이터를 송수신하는 통신부(110), 주기적인 타이머 인터럽트를 발생시키는 실시간 이식 커널을 이용하여 통신부(110)에 실시간성을 제공하는 실시간성 제공부(120), 및 통신부(110)를 주기적으로 호출하여 실시간성 제공부(120)에 연결시키는 호출부(130)를 포함할 수 있다.
여기서, 실시간성 제공부(120) 및 호출부(130)는 RTiK 동작방식으로 동작할 수 있다.
윈도우즈의 디바이스 드라이버의 형태로 구현된 RTiK은 커널 레벨에서 동작하며, 하드웨어의 자원 접근 및 윈도우즈의 커널에 접근할 수 있다. 실시간성을 지원하기 위해 HAL(Hardware Abstraction Layer)을 통한 x86 기반의 하드웨어 플랫폼의 Local APIC의 제어를 통하여 실시간성을 제공하였다. 이는 x86 하드웨어의 Local APIC 타이머와 관련된 레지스터들의 제어를 통해 윈도우즈와는 독립적인 타이머 인터럽트를 발생시켜 주기적인 동작을 보장한다.
도 2는 멀티코어 환경에서 동작하는 RTiK의 전체적인 동작과정을 나타낸 도면이다.
도 2에 나타낸 바와 같이, CPU 두 개를 가지는 시스템의 경우 각각의 프로세서는 고유의 Local APIC를 가지며, RTiK-MP의 경우 AP(Application Processor)의 Local APIC를 이용하여 실시간성을 제공한다.
AP의 Local APIC 타이머가 발생하게 되면 AP의 IDT(Interrupt Descriptor Table)을 이용하여 타이머 핸들러를 수행하게 되는데 수행되는 핸들러는 각각의 프로세서가 가지고 있는 DPC(Deferred Procedure Call) Queue에 DPC를 등록하게 된다. 인터럽트의 수행이 끝나고 IRQL 값이 DPC Dispatch 레벨이 되면 등록된 DPC들을 DPC 루틴에서 처리하게 된다.
RTiK은 윈도우즈 사용자 레벨에서 동작하는 쓰레드들에게 실시간성을 지원하기 위한 방법을 제공한다. 도 3에 나타낸 바와 같이, 사용자가 RTiK에서 제공하는 API를 통해 실시간 쓰레드를 생성하고, 수행코드를 작성하게 되면 생성된 실시간 쓰레드는 커널 레벨로부터 전달되는 Signal을 기다리게 된다. 커널 레벨로부터 Siganl을 전달 받게 되면 실시간 쓰레드에 정의된 작업을 수행함으로써 주기적인 동작을 보장한다.
윈도우즈 기반의 점검장비는 개발된 신무기의 수락시험을 위해 실시간으로 데이터를 획득하고 평가할 수 있어야 한다. 수락시험은 주기적으로 데이터를 획득하고 전달하여야 하며, 획득한 데이터를 특정한 알고리즘을 통해 평가하여야 한다. 특히 주기적으로 데이터를 획득하고 전달하기 위해 실시간성이 요구되어 진다. 하지만 점검장비는 다른 컴퓨터와 통신 디바이스로 연결하여 데이터 송수신 이루어지며 점검장비와 다른 이 기종의 컴퓨터 간에 통신 시 데이터를 보내고 받을 경우 데이터 송신이나 수신이 이루어졌다고 알릴 수 있는 방법이 없기 때문에 동기 통신(Synchronous Communication)을 할 수 없다. 동기 통신이 안 되는 경우 점검장비에서 실시간으로 데이터를 전송 하여도 수신 받는 컴퓨터에서 데이터를 실시간으로 수신하지 못하기 때문에 수락시험을 위한 주기적인 통신이 이루어지지 않는다. 이러한 문제를 해결하기 위하여, 본 발명의 실시예에 따른 점검장치(100)는 도 4와 같은 통신 구조에서 실시간성을 제공하기 위한 방법을 제공한다.
통신부(110)는 폴링(Polling) 방식을 이용하여 실시간 통신을 할 수 있다.
윈도우즈 기반의 점검장비와 다른 컴퓨터를 통신 디바이스로 연결하여 이루어지는 통신은 이 기종 컴퓨터 간의 동기 통신을 할 수 없기 때문에 송신 측과 수신 측에 각각 실시간성을 제공해줘야 한다.
윈도우즈 기반의 점검장비에 실시간성을 제공하여 실시간 데이터 통신을 하기 위해서 RTiK을 이용하였으며 점검장비뿐만 아니라 Target PC에 RTiK을 이식하여야 한다. 송신과 수신은 각각 RTiK의 주기 쓰레드로 동작을 하며 설정된 주기로 송신과 수신이 이루어진다. 도 5는 폴링 방식을 이용한 점검장비의 실시간 통신 구조이다.
RTiK을 이용한 실시간 통신은 비동기 통신(Asynchronous Communication)으로 데이터를 보냈을 경우 Signal을 보내 데이터를 수신하는 것이 아니며, 송신 측에서 RTiK의 주기를 설정하여 주기적으로 송신을 하고 수신 측에서도 RTiK의 주기 설정 후 주기적인 폴링 방식을 이용하여 버퍼에서 데이터를 읽게 됨으로써 주기적인 통신이 이루어지게 된다. 하지만 폴링 방식을 사용할 경우 송신과 수신 측의 주기에 오차가 발생할 경우 데이터 손실이 일어나게 되며, 송신 시 걸리는 시간과 수신 시 걸리는 시간을 고려하여 주기를 설정하여야 한다.
폴링 방식을 이용한 방식은 송신 측과 수신 측에 주기 오차 발생 시 데이터의 손실이 일어나게 되므로 고속의 통신 시 RTiK을 활성화하는 오차에 따라 통신 오차가 발생하게 되며, 이는 데이터 송신이 이루어지고 난 후 데이터를 수신할 때 모든 데이터를 수신하지 못한 상태에서 버퍼에 새로운 데이터가 쓰여 잘못된 데이터를 수신하는 경우가 발생할 수 있다. 이와 같은 문제는 데이터 버퍼를 두 개 사용하여 해결할 수 있다. 도 6은 폴링 방식과 더블 버퍼를 이용한 실시간 통신구조를 나타낸 도면이다.
도 6의 방법은 휴대용 점검 장비와 Target PC에 각각 RTiK을 이식한 후 폴링 방식을 이용한 통신 구조에 데이터 버퍼 두 개를 사용한 구조로 점검장비에서 RTiK의 주기를 설정하여 주기적으로 데이터를 송신할 때 버퍼 1에 먼저 데이터를 송신하고 다음에 버퍼 2에 데이터를 송신하도록 구현하였다. Target PC에서 데이터를 수신 할 경우 버퍼 1에서 먼저 데이터를 수신한 후 다음 주기에는 버퍼 2에서 데이터를 수신하게 되는 구조이다. 이와 같은 구조에서는 점검장비에서 데이터 송신이 이루어지고 난 후 주기의 오차로 인해 수신을 완료되지 않은 상태에서 같은 버퍼로 데이터를 송신하여 수신 시 잘못된 데이터를 받는 문제를 해결할 수 있다. 또한 고속의 통신 시 RTiK의 활성화 오차로 인한 데이터 손실 문제를 해결할 수 있다.
유도무기체계에서 성능검증을 위해 사용되는 점검장비는 실시간으로 데이터를 획득하고 평가해야 하며, 신뢰성이 요구되기 때문에 MIL-STD-1553B를 이용한 통신이 많이 사용되고 있다.
본 발명의 실시예에 따른 점검장치(100)는 군용 점검장비를 위한 실시간 통신 방법을 실험하기 위해 MIL-STD-1553B를 이용한 실시간 통신방법을 지원한다.
MIL-STD-1553B의 버스는 항공기 내의 항공 전자 장비(무기체계)들의 체계 종합을 목적으로 운용되며, 서로 다른 종류의 전자 장비가 장착될 경우 서브시스템의 전기적 인터페이스로 인한 혼란을 방지하기 위한 통신 protocol을 사용하여 메시지 전송방식에 의한 통신을 사용한다. 이러한 MIL-STD-1553B의 데이터 버스는 산업, 군사용, 우주용 데이터 버스의 규격으로, 고 신뢰성을 요구하는 분야에서 사용이 된다.
도 7은 MIL-STD-1553B 통신의 전체적인 구조를 나타낸 도면이다.
BC(Bus Controller)는 데이터 버스를 통한 정보 전송의 모든 데이터 흐름을 제어하고, RT(Remote Terminal)는 BC에 의해 제어된다. MT(Monitoring)는 데이터 버스 상에서 통신되는 모든 메시지를 모니터링한다. MIL-STD-1553B의 통신 방법은 BC에서 RT로 데이터를 전송하기 위해 Command Word 및 Data Word를 전송하게 되고, 명령을 전송받은 RT 는 Command Word의 유효성을 검사한 후 BC에게 Status Word와 Data Word를 전송하게 된다. 이를 통해 신뢰성 있는 통신을 보장하게 된다.
MIL-STD-1553B의 BC는 데이터 버스를 통한 정보 전송 시 모든 데이터의 흐름을 제어하며, BC에서 TX와 RX 명령을 RT에 송신하여 통신이 이루어진다. TX 명령은 RT에서 BC로 데이터를 송신하라는 의미이고, RX 명령은 BC에서 보낸 데이터를 RT에서 수신하라는 명령이다. 따라서 실시간 통신을 위해 RTiK 주기 쓰레드에 TX 명령과 RX 명령을 작성하여 동작시켜야 한다.
도 8은 RTiK의 주기 쓰레드에 TX 명령과 RX명령을 작성한 MIL-STD-1553B의 BC 프로그램 구조를 나타낸 도면이다. 도 8의 프로그램 구조를 보면 RX Link를 제거한 후 TX Link를 연결하여 RT에서 보낸 데이터를 수신하고, 다시 TX Link를 제거한 후 RX Link를 연결하여 RT로 데이터를 송신하는 것을 확인 할 수 있다. 이는 TX와 RX Link가 같이 연결되어 있는 경우 설정된 주기 안에서 TX 명령이 끝나면 바로 RX 명령을 송신하여 데이터의 손실이 발생하기 때문이다. 예를 들어 TX Link와 RX Link를 같이 연결하여 2ms로 동작 시킨다고 할 때 TX 명령에 1.2ms가 소요 되면, 다음 명령인 RX 명령은 0.8ms가 소요된다. 이는 TX가 명령이 끝나는 시점에 바로 RX 명령을 송신하기 때문에 RX 명령으로 데이터를 송신하는 것이 주기적으로 동작하지 않는 것을 의미하며, 설정 된 주기로 동작을 할 때 TX와 RX 명령의 주기를 각각 설정 할 수 없기 때문에 RT의 설정 주기와 오차가 발생하여 데이터의 손실이 발생한다.
이와 같은 문제를 해결하기 위해 RX Link를 해제한 후 TX Link를 연결하여 데이터를 수신하고, TX Link를 해제한 후 RX Link를 연결하여 데이터를 송신하여 데이터의 송신과 수신이 각각 주기적으로 동작하도록 구현하였다.
MIL-STD-1553B의 RT는 BC에서 TX 명령을 수신 할 경우 버퍼에 있는 데이터를 송신하며, 이전 데이터에서 하나씩 증가된 데이터를 보내기 위해서는 BC에 설정된 주기와 동일한 주기로 버퍼에 데이터를 써야한다. 하지만 BC와 RT에 이식된 RTiK 활성화 오차에 따라 데이터를 손실 할 수 있다. 이를 해결하기 위해 본 발명에서는 더블 버퍼를 사용하였다.
도 9는 더블 버퍼를 사용한 MIL-STD-1553B의 RT 프로그램 구조를 나타낸 도면이다. RT 프로그램의 구조는 송신되고 있는 데이터 버퍼를 찾아서 0번 버퍼의 데이터를 송신하고 있을 시 1번 버퍼에 데이터를 채우고, 1번 버퍼의 데이터를 송신하고 있을 시 0번 버퍼를 채우게 된다. 이때 송신 되고 있는 버퍼를 찾기 위해 Active 버퍼 포인터를 사용하게 되며, Active 버퍼 포인터가 이전 Active 버퍼 포인터와 같다면 버퍼에 아무런 데이터를 채우지 않는다. 이와 같은 방식을 통하여 최소 2ms의 데이터 통신 시에도 데이터의 손실 없이 주기적인 통신이 가능하게 된다.
점검장비의 통신에 사용되는 디바이스에 대해 실시간 동작을 검증하기 위해 구성한 실험 환경은 도 10 및 도 11에 나타낸 바와 같다.
도 10 및 도 11에 나타낸 바와 같이, 점검장비에 실시간 통신을 제공하기 위해서 RTiK을 이식시키고, 이를 이용하여 MIL-STD-1553B 통신에 실시간성을 제공하였다. 또한 MIL-STD-1553B의 통신 주기를 확인하기 위해 I/O 모듈을 이용하여 오실로스코프로 출력하였고, 데이터의 정확성을 확인하기 위해 MT PC를 이용하여 전송된 32 Word 데이터가 모두 이상 없이 전송 되었는지 확인하였다.
실험방법은 실시간성을 제공하는 RTiK의 사용자 영역에서 BC API를 이용하여 TX와 RX 명령을 송신하게 되고, RT에서 RTiK을 이용하여 주기적으로 데이터 버퍼를 갱신하여 TX 명령 수신 시 데이터를 송신하였다. 또한 BC에서 TX 명령으로 수신 받은 데이터를 읽어 들여 다시 RT에 RX 명령으로 송신하였다. 그러나 BC와 RT에서 RTiK을 활성화 시키는데 오차가 발생하기 때문에 RT에서 버퍼에 있는 데이터를 갱신하는 도중 TX 명령을 받아 데이터를 보내게 되어 데이터의 신뢰성을 보장하지 못하게 된다. 따라서 신뢰성을 보장하기 위해 RT에서 두 개의 버퍼를 두어 하나의 버퍼에 데이터가 송신되고 있을 경우 다른 버퍼의 데이터를 갱신하게 하도록 하였으며, 이를 통해 MIL-STD-1553B 통신 시 데이터의 손실 없이 주기적인 통신이 이루어지는 것을 보장하였다. 통신 주기측정의 경우 BC와 RT의 주기를 각각 2ms, 5ms, 15ms로 설정하여 주기를 측정하였다. 마찬가지로 동일한 환경에서 RTX를 이용하여 통신을 함으로써 RTiK과 RTX의 성능분석을 통해 성능을 비교하였다.
도 12는 점검장비에 RTiK을 이식 후 MIL-STD-1553B 통신 주기를 최소주기인 2ms로 설정하고, 오실로스코프를 이용하여 주기를 측정한 결과화면이다. 오실로스코프로 주기를 측정하기 위해서 2ms로 1과 0의 신호를 보내었으며, 오실로스코프에서는 두 개의 신호를 받은 주기가 측정된다. 이를 2로 나누면 1로 신호를 보냈을 때의 주기와 0으로신호를 보냈을 때의 주기를 확인 할 수 있다. 도 12에 나타낸 바와 같이 데이터를 전송 시 약 1.5%의 오차를 가지며 동작하는 것을 확인할 수 있다.
또한 전송된 데이터의 정확성을 확인하기 위해 MIL-STD-1553B 버스에 지나가는 데이터를 확인 할 수 있는 MT를 사용하여 데이터를 확인하였다. 도 13은 통신이 이루어질 수 있는 최소주기인 2ms로 설정하여 통신 데이터를 확인한 그림이다. 그림에서 보듯이 우선 BC에서 RT로 TX 명령을 보내게 되면 RT에서 BC로 데이터를 보내게 된다. 이때 RT에서는 주기적으로 송신되고 있지 않은 버퍼를 확인하여 32 Word 크기의 데이터를 1씩 증가 시키게 된다. TX 명령으로 RT에서 BC로 데이터를 보낸 뒤 RX 명령어를 통해 RT에서 전달받은 데이터를 다시 BC에서 RT로 전송하였다. 그림에서 보듯이 데이터의 손실 없이 1씩 증가된 데이터가 전송되는 것을 확인할 수 있다.
도 14는 동일한 환경에서 RTX를 이용한 결과 측정화면이다. 그림에서 보듯이 RTX의 경우 1%의 오차를 가지고 동작하는 것을 확인할 수 있다. 이를 통해 RTiK과 RTX가 동일한 성능을 가지는 것을 알 수 있다. 또한 도 15에서 볼 수 있듯이 RTX도 MIL-STD-1553B 통신 시 데이터의 손실 없이 전송되는 것을 확인할 수 있다.
도 16 및 도 17은 윈도우즈에서 동작하는 워크로드의 수가 많아졌을 경우 통신 주기와 데이터를 측정한 결과화면이다. 도 16 및 도 17에서 볼 수 있듯이 최소 주기인 2ms 동작 시 설정한 주기를 크게 벗어나지 않고 동작하는 것을 확인할 수 있다. 워크로드는 While문을 무한 반복하는 윈도우즈의 프로세스로써 윈도우즈의 프로세스가 많아질수록 윈도우즈가 스케줄링을 위한 인터럽트에 의해 인터럽트 지연시간이 길어져도 통신 쓰레드에는 영향을 거의 미치지 않는 것을 확인할 수 있다. 이는 통신 쓰레드가 워크로드에 관계없이 실시간성을 제공하는 것을 의미한다.
도 18은 통신 주기를 2ms, 5ms, 10ms로 설정하고 통신이 수행 시 동시에 동작하는 워크로드의 개수에 따른 주기변화를 나타낸 표이다. 표에서 볼 수 있듯이 RTiK과 RTX를 이용한 MIL-STD-1553B 통신은 워크로드에 크게 영향을 받지 않고 설정된 주기에 큰 오차 없이 정상 동작하는 것을 확인할 수 있다.
다음과 같은 실험 결과를 통하여 RTiK을 이용한 폴링 방식과 더블 버퍼를 활용한 통신으로 군용 점검장비를 위한 실시간 통신이 가능함을 알 수 있다.
최근 군 장비 및 항공분야에서의 통신 네트워크에 대한 기술이 획기적으로 발달됨에 따라 데이터 수집의 정확성과 실시간 데이터 통신을 요구하고 있다. 특히 새로 개발된 무기의 성능 검증 시 사용되는 점검장비에 실시간으로 통신을 제공하기 위한 연구가 활달히 진행되고 있는 추세이다. 하지만 점검장비의 경우 실시간성을 제공하지 않는 범용운영체제인 윈도우즈 기반으로 구성되어 있기 때문에 실시간 통신을 제공하기 어려운 문제점이 존재한다. 이를 해결하기 위해 서드파티인 RTX 및 INtime을 사용하여 실시간성을 제공하지만 서드파티의 경우 고가의 구입비용 및 경상사용료로 인한 개발비용을 증가시키는 문제점이 있다. 따라서 기존에 개발된 RTiK을 이용하여 점검장비에서 사용하고 있는 통신 디바이스에 실시간성을 제공하기 위한 연구가 필요하다.
본 발명에서는 점검장치의 통신에 실시간성을 제공하기 위해 RTiK을 이용한 주기적인 폴링 방식을 사용하여 점검장비의 통신에 실시간성을 제공할 수 있는 방법 및 더블 버퍼를 사용하여 고속의 데이터 통신 시 주기의 오차로 인한 데이터 손실을 방지하며, 실시간성을 제공 할 수 있는 방법을 설계 하였다. 이를 실험하기 위해 윈도우즈 기반의 점검장비에 신뢰성이 극도로 필요한 분야에서 많이 사용되고 있는 MIL-STD-1553B 통신 장비를 사용하였으며, 점검 장비 및 Target PC에 실시간성을 제공하여 주기적으로 데이터를 송신하고 폴링 방식으로 데이터 버퍼에서 데이터를 읽음으로써 실시간 통신을 할 수 있는 방법을 구현하였다. 또한 성능검증을 통해 RTiK을 이용한 폴링 방식과 더블 버퍼를 사용하여 점검장비의 통신에 실시간성을 제공할 수 있음을 검증하였다.
도 19는 본 발명의 실시예에 따른 점검장치의 실시간 통신 지원방법을 나타낸 흐름도이다. 도면을 참조하면, 점검장치(100)의 실시간 통신 지원방법은, 임베디드 시스템의 성능을 점검하는 점검장치의 실시간 통신 지원방법에 있어서, 외부의 기기와 데이터를 통신하는 단계(S110); 주기적인 타이머 인터럽트를 발생시키는 실시간 이식 커널을 이용하여 통신단계에 실시간성을 제공하는 단계(S120); 및 통신단계에 의한 데이터통신을 주기적으로 호출하는 단계(S130)를 포함한다.
여기서, 실시간성 제공단계 및 호출단계는 RTiK(Real-Time implant Kernel) 동작방식으로 동작할 수 있다.
실시간성 제공단계는 HAL(Hardware Abstraction Layer)을 통한 x86 기반의 하드웨어 플랫폼의 Local APIC의 제어를 통하여 실시간성을 제공할 수 있다.
또한, 호출단계는 윈도우즈 사용자 레벨에서 동작하는 쓰레드(thread)들에 정의된 작업을 수행하여 주기적인 동작을 보장할 수 있다.
또한, 통신단계는 폴링(Polling) 방식 및 더블 버퍼(Double Buffer) 중의 적어도 하나를 이용하여 실시간 통신을 수행할 수 있다.
이때, 통신단계는 MIL-STD-1553B 통신을 이용하여 통신을 수행하는 것이 바람직하다.

Claims (5)

  1. 임베디드 시스템의 성능을 점검하는 점검장치에 있어서,
    외부의 기기와 데이터를 송수신하는 통신부;
    주기적인 타이머 인터럽트를 발생시키는 실시간 이식 커널을 이용하여 상기 통신부에 실시간성을 제공하는 실시간성 제공부; 및
    상기 통신부를 주기적으로 호출하여 상기 실시간성 제공부에 연결시키는 호출부
    를 포함하는 것을 특징으로 하는 점검장치.
  2. 제 1항에 있어서,
    상기 실시간성 제공부 및 상기 호출부는 RTiK(Real-Time implant Kernel) 동작방식으로 동작하는 것을 특징으로 하는 점검장치.
  3. 제 2항에 있어서,
    상기 실시간성 제공부는 HAL(Hardware Abstraction Layer)을 통한 x86 기반의 하드웨어 플랫폼의 Local APIC의 제어를 통하여 실시간성을 제공하는 것을 특징으로 하는 점검장치.
  4. 제 2항에 있어서,
    상기 호출부는 윈도우즈 사용자 레벨에서 동작하는 쓰레드(thread)들에 정의된 작업을 수행하여 주기적인 동작을 보장하는 것을 특징으로 하는 점검장치.
  5. 제 3항 또는 제 4항에 있어서,
    상기 통신부는 폴링(Polling) 방식 및 더블 버퍼(Double Buffer) 중의 적어도 하나를 이용하여 실시간 통신을 수행하는 것을 특징으로 하는 점검장치.
KR1020120114570A 2012-10-16 2012-10-16 실시간 통신이 가능한 점검장치 KR101407725B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120114570A KR101407725B1 (ko) 2012-10-16 2012-10-16 실시간 통신이 가능한 점검장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120114570A KR101407725B1 (ko) 2012-10-16 2012-10-16 실시간 통신이 가능한 점검장치

Publications (2)

Publication Number Publication Date
KR20140048525A true KR20140048525A (ko) 2014-04-24
KR101407725B1 KR101407725B1 (ko) 2014-06-13

Family

ID=50654523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120114570A KR101407725B1 (ko) 2012-10-16 2012-10-16 실시간 통신이 가능한 점검장치

Country Status (1)

Country Link
KR (1) KR101407725B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101407726B1 (ko) * 2012-10-16 2014-06-13 충남대학교산학협력단 점검장치의 실시간 통신 지원방법
CN107272663A (zh) * 2017-07-28 2017-10-20 北京精密机电控制设备研究所 一种1553b总线式伺服系统测试设备的快速校验装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220308819A1 (en) * 2019-09-03 2022-09-29 Lg Electronics Inc. Method for processing data and electronic device therefor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100370548B1 (ko) * 2000-09-14 2003-02-05 (주)마하넷 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법
KR100848323B1 (ko) * 2005-12-08 2008-07-24 한국전자통신연구원 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101407726B1 (ko) * 2012-10-16 2014-06-13 충남대학교산학협력단 점검장치의 실시간 통신 지원방법
CN107272663A (zh) * 2017-07-28 2017-10-20 北京精密机电控制设备研究所 一种1553b总线式伺服系统测试设备的快速校验装置
CN107272663B (zh) * 2017-07-28 2019-06-18 北京精密机电控制设备研究所 一种1553b总线式伺服系统测试设备的快速校验装置

Also Published As

Publication number Publication date
KR101407725B1 (ko) 2014-06-13

Similar Documents

Publication Publication Date Title
US8490113B2 (en) Messaging in a parallel computer using remote direct memory access (‘RDMA’)
CN108768730B (zh) 用于操作智能网卡的方法和装置
US20130268708A1 (en) Motherboard test device and connection module thereof
US9852038B2 (en) Debugging system and debugging method of multi-core processor
US20030115506A1 (en) Apparatus and method for shadowing processor information
US20180285134A1 (en) Emulation of hardware components
US8448172B2 (en) Controlling parallel execution of plural simulation programs
CN108965052A (zh) 一种用于装车后的电子控制单元软件调试的数据读取系统
EP1091298A2 (en) Interface for transferring debug information
KR101407725B1 (ko) 실시간 통신이 가능한 점검장치
CN114416578A (zh) 测试方法和装置
KR101407726B1 (ko) 점검장치의 실시간 통신 지원방법
JP7383053B2 (ja) バス監視方法、記憶媒体及び電子装置
US7873498B2 (en) Remote hardware inspection system and method
KR20140056652A (ko) Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치
Babu et al. Precise virtual time advancement for network emulation
Serror et al. Code-transparent discrete event simulation for time-accurate wireless prototyping
CN112328491A (zh) 追踪消息的输出方法、电子设备及存储介质
Shin et al. A software-based monitoring framework for time-space partitioned avionics systems
CN112328299A (zh) 一种服务器固件信息查看方法、装置、设备及存储介质
US20220374373A1 (en) Ic, monitoring system and monitoring method thereof
Gang et al. On-chip debug architecture for MCU-DSP Core based system-on-chip
CN116089956A (zh) 一种基于tee的虚拟测试系统及方法
Richárd Development of a Safe Architecture for Embedded Systems Using Linux and Zephyr RTOS
Miola Assessing the impact of Linux networking on CPU consumption

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190527

Year of fee payment: 6