• 검색 결과가 없습니다.

나. 생체신호처리 코어 SW 툴체인 구축

1) 생체신호처리 코어 SW 툴체인 (컴파일러, 어셈블러, 링커) 환경 구축

- GNU 프로젝트 기반 컴파일러 모음인 GCC 6.4.0 기반의 생체신호처리 코어 SW 툴체인 구축 - 생체신호처리 코어를 위한 SW 툴체인을 이용해서 빌드하는 과정은, 먼저 내부적으로 C/C++

소스 파일을 어셈블리어로 변환한 후에 어셈블러를 이용해 기계어로 변환해서 오브젝트 파일(*.obj)을 생성하고, 마지막으로 링커를 이용해서 오브젝트 파일을 사용된 함수 라이브러리와 묶어서 실행파일(*.elf)로 생성함.

- 생성된 실행파일(*.elf)은 디버거 환경에서 On-Chip Debugger를 이용해서 생체신호처리 코어 FPGA에 다운로드 한 후에 디버거 모드에서 검증할 수 있음.

그림 133. 생체신호처리 코어 SW 개발 환경

- GDB 서버 역할을 하는 Open On-Chip Debugger는 version 0.9.0 기반으로 구성되어 있으며, 임베디드-인-서킷 에뮬레이터인 JTAG을 포함한 생체신호처리 코어에 대해 소스 레벨 디버깅 환경을 제공함

- 생체신호처리 코어 FPGA 보드는 USB 인터페이스를 통해 호스트 컴퓨터와 연결되며, 호스트 컴퓨터에서는 USB로 연결되기 위해 FTDI 드라이버를 설치해서 연동해야 함.

- 생체신호처리 코어 FPGA 타겟 보드와 USB로 연결된 호스트 컴퓨터에서 수행되는 On-Chip Debugger는 임베디드 디버깅 환경에서 GDB 서버 역할을 하게 되기 때문에, 인터넷에 연결된 어떤 컴퓨터에서도 클라이언트 GDB 명령을 통해서 On-Chip Debugger에 접속해서 디버깅 작업을 수행할 수 있게 됨.

그림 134. Eclipse 기반의 통합 개발환경

2) Eclipse 기반의 생체신호처리 코어 통합개발환경 개발

- 사용자 편리성을 증대하기 위한 텍스트 기반 SW 툴체인을 통합한 그래픽 사용자 인터페이스 (GUI) 기반 프로그래밍 통합 개발환경인 Eclipse 기반의 통합개발환경 구축

- 응용 소프트웨어 통합 개발환경인 Eclipse IDE는 C/C++ 소스 코드를 컴파일러, 어셈블러, 링커 등을 이용해서 생체신호처리 코어에서 작동되는 실행파일을 만드는 빌더 환경과 생체신호처리 코어 기반 FPGA 보드에서 실행시키면서 소스 코드를 디버깅하는 디버거 환경을 제공함.

- Eclipse 환경설정에서는 툴체인 설정을 생체신호처리 코어용 툴체인으로 하고, 임베디드 하드웨어 디버깅 환경을 설정해서 On-Chip Debugger와 연동시켜서 Eclipse 기반 사용자 통합 개발환경(IDE)을 사용할 수 있음.

- Eclipse는 디버깅 화면에서 제공되는 디버그 정보 보기 창을 통해 프로그램의 호출 스택 정보를 제공하고, 호출 스택은 프로그램 현재 상태에 도달하기 까지 호출된 함수의 목록을 표시해서 보여줌.

- Register View는 호출 스택에서 선택된 스택 프레임의 레지스터에 대한 정보를 보여주는데, 특히

변경된 값은 프로그램이 중지될 때 레지스터 보기에서 강조돼서 표시가 됨. 기본적으로 범용 레지스터에 대한 값을 보여주고, 레지스터 값은 디버깅을 위해 변경이 가능함.

- 소스 레벨 디버깅 뷰는 소스 코드를 보여주는 화면으로서, 프로그램이 멈춰 있는 현재 위치를 보여주고 사용자가 특정 소스 코드 라인에 브레이크 포인트를 설정하거나 해지할 수 있으며, 사용자가 소스 코트에 들어 있는 변수에 커서를 갖다 놓으면 실시간으로 변수 값을 보여 줌.

툴바에 있는 디버깅 제어를 통해 프로그램을 한 라인씩 진행시키거나 브레이크 포인트 설정된 라인까지 수행시킬 수 있음.

- 디스어셈블리 뷰는 로드된 C 소스 코드 프로그램에 대한 어셈블리 코드를 나란히 보여줘서 비교할 수 있도록 하며, 소스 코드를 선택하면 해당 소스코드에 대한 어셈플리 코드 부분을 활성화해서 보여주고, 어셈블리 코드에서 독립적으로 브레이크 포인트 설정을 활성화 하거나 비활성화 할 수 있음.

- 메모리 뷰는 프로세스 메모리를 모니터링하고 수정할 수 있는 기능을 제공하며, 메모리 보기는 메모리 모니터 창과 메모리 랜더링 창으로 구성됨. 프로세스 메모리는 메모리 모니터 목록으로 제공되고, 선택된 메모리 모니터 항목에 대해 메모리에 저장된 값을 16진수 또는 정수 등으로 랜더링 해서 보여줌.

그림 135. Eclipse 기반의 통합 개발환경 GUI

다. 생체통신 채널모델 (In/On-Body) 기술

1) 생체통신을 위한 In/On-body 채널 측정 셋업 및 채널 사운더 개발 가) 채널 임펄스응답신호 측정용 채널 사운더 개발

- 채널 사운더의 구성은 FPGA를 포함하여 측정 장비에게 송신 펄스 신호의 시작 시간을 전송하 기 위한 433 MHz ASK (amplitude shift keying) 상용 RF 송신 모듈, RF 송신 모듈의 출력 신호 의 낮은 전압을 TTL 레벨로 승압하기 위한 comparator, 상기 신호를 입력으로 약 10 ns width 를 갖는 펄스 신호를 생성하는 FPGA, FPGA출력 펄스가 인체에 인가되었을 때 전압이 낮아지는 것을 방지하기 위한 current driving용 comparator, 인체 채널의 신호 열화에 대한 측정 가능 수 신 전압 확보를 위한 송신 펄스 5.5 V 승압용 전압 부스팅 회로 등으로 구성됨.

그림 136. 채널 사운더 구성도 및 회로도

- 개발된 채널 사운더 모듈의 FPGA에는 RF 송신 모듈로부터 입력 받은 신호를 기준으로 채널 측 정 펄스를 생성하는 verilog 코드가 탑재되어 있고, 이때 RF 신호와 채널측정용 펄스 신호의 출 력 시간 간격이 서로 간섭을 주지 않도록 충분히 분리 됨. 채널 송수신 알고리즘 검증용 송수신 신호 전송 실험 시에는 두 모듈을 분리해서 사용하기 때문에 RF 송신 모듈과 채널 사운더는 핀 커넥터로 분리 및 결합이 가능하도록 설계함.

그림 137. 개발된 채널 사운더

- 아래 그림은 채널 사운더에 RF송신 모듈으로부터 출력 신호가 입력되었을 때 임펄스응답 측정 을 위해 인체에 인가되는 송신 신호를 제시함. RF모듈로부터 입력된 트리거 신호에 의해 채널 측정용 펄스 신호가 출력되고, 펄스 주파수 특성 값이 제시하는 것과 같이 펄스 width가 약 10 ns 임을 확인 할 수 있음.

- 이때, 10 ns width로 결정되는 송신 펄스의 주파수 변환 시 sinc function의 zero-crossing 주파수 가 약 100 MHz 이상이 되고 생체 신호 전송을 위한 중심 주파수가 50 MHz 이하이기 때문에, 송신 펄스는 생체 신호 전송을 위한 주파수 분석에 충분한 bandwidth를 확보할 수 있음.

그림 138. 채널 사운더 출력 신호 측정

2) 해부학적 생체 모델 분석을 위한 생체 채널 모사 팬텀 제작 및 채널 측정 환경 가) 생체 채널 측정용 기구물 제작

- 두개골 (또는 두개골 안) 과 두피 사이에 위치한 생체 신호 송수신기를 포함한 디바이스와 인체 의 다른 위치한 디바이스 사이의 통신 경로 사이의 채널 측정을 위한 인체 피부 모사 팬텀을 포함한 기구물인 헬멧을 제작

- 두피 아래의 채널 사운더 위치 환경을 구현하기 위해 두개골로 가정한 채널 측정 헬멧을 제작 하고 상기 헬멧에 채널 사운더를 삽입한 채널 측정용 기구물을 개발. 이때, 채널 사운더 위에 인체 피부를 모사할 할 수 있는 의료실험용 인조 피부를 모듈에 덮어서 두개골 위에 피부가 위 치한 환경을 설정함.

그림 139. 생체 채널 측정용 기구물

나) 정확한 임펄스응답 신호 확보를 위한 외부 간섭신호 최소화 채널 측정 환경 제안

- 아래 그림은 임펄스응답 측정을 위한 채널 측정 실험환경을 제시. 사람이 손목에 디바이스를 착 용한 상태에서 두개골과 두피사이에 위치한 디바이스간의 통신상황을 모사 하였으며 측정은 외 부 간섭신호를 최소화하기 위해 RF-shielding room에서 수행됨. 사람이 착용한 헬멧에는 채널사 운더가 인체 모사 피부에 덮여져 있는 상태로 삽입되어있으며, oscilloscope에 differential probe 를 사용하여 장비와 디바이스간의 접지전극을 분리 시켰음.

- ASK 수신기는 채널 사운더의 펄스 송신 시간을 수신하여 oscilloscope에 trigger 신호를 입력하 여 인체를 통과한 임펄스 응답의 정확한 측정 시점을 제공함. 채널 사운더는 헬멧에 착용하여 머리의 위, 아래, 옆, 뒤에 위치한 경우에 대한 측정 수행이 가능함.

- 채널 측정 조건을 팔의 4가지 위치 (아래, 위, 옆, 뒤), 머리에서 가능한 위치 4가지 (위, 아래, 옆, 뒤), 가슴 위치, 발목 위치, 송수신기의 신호전달 방향에 따른 2가지 경우를 고려하고 중복되 는 경우를 제외하여 78가지 경우에 대한 측정을 수행.

그림 140. 생체 채널 측정환경

3) 송수신 상위설계에 사용될 독자적인 생체 채널모델을 개발 가) In/On-body 주파수 특성 연구

- 아래 그림들에서 예로 제시된 임펄스응답 측정 조건은, 송신기는 손목에 위치한 상태에서 팔을 옆으로 펴고, 수신기는 헬멧의 정수리에 착용된 상태임.

- 신호 측정 그림의 검은 선으로 표기된 송신펄스신호는 수신신호와 유사한 크기로 확인하기 위 해 1/00 크기로 줄였고, 녹색 선은 측정한 인체를 통과한 임펄스응답 신호를 제시하고, 파란색 선과 빨간색 선은 측정한 임펄스응답 신호의 잡음 영역 제외를 위한 윈도우를 적용한 결과를 제시.

- 측정한 임펄스응답 신호에서 정보가 포함된 영역을 명확히 하고, 신호처리 계산 복잡도 감소를 위해 측정 신호에 포함된 잡음을 주파수 축 및 시간 축으로 제거함. 본 결과에서 사용된 신호 처리 방법을 각 측정 조건들에 적용하여 임펄스응답 측정 결과를 확보 함.

- 임펄스응답 측정 신호와, 잡음 제거를 위한 신호처리 후 신호에 대한 주파수 특성 비교를 통해, 시간 축과 주파수 축에서의 잡음 제거 과정이 원하는 신호의 주파수 특성을 왜곡하지 않음을 확인.

그림 141. 임펄스 응답 신호 측정 및

그림 141. 임펄스 응답 신호 측정 및

관련 문서