ETRI-Knowledge Sharing Plaform

ENGLISH
기술이전 검색
연도 ~ 이전수 키워드

상세정보

자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 기술

전수책임자
석정희
참여자
구용본, 김성훈, 김이경, 김진우, 노삼열, 박명욱, 석정희, 안경환, 여준기, 이상우, 전영득, 조민형
기술이전수
1
이전연도
2017
협약과제
16HS1100, 스마트카의 자율주행을 위한 실시간 센싱융합처리가 가능한 커넥티드 드라이빙 컴퓨팅 시스템 기술 개발, 김성훈
17HS1800, 스마트카의 자율주행을 위한 실시간 센싱융합처리가 가능한 커넥티드 드라이빙 컴퓨팅 시스템 기술 개발, 김성훈
자율주행 차량용 드라이빙 컴퓨팅 시스템이나 첨단 운전자 지원 시스템을 위한 하드웨어 플랫폼 기술로서, 카메라, 레이다, 라이다의 다중 센서 데이터를 실시간으로 입력 받아 CPU, GPU, FPGA를 통해 고속으로 주행정보 인식 알고리즘을 처리할 수 있고, 차량 제어를 위한 인터페이스를 제공한다.
(1) 드라이빙 컴퓨팅 하드웨어 플랫폼 보드

그림 2는 드라이빙 컴퓨팅 하드웨어 플랫폼을 구현한 PCB 시작품과 각 모듈 및 외부 I/F 등을 나타낸다. CPU/GPU가 통합된 AMD의 멀린팔콘 APU(Accelerated Processing Unit)를 메인 프로세서로 사용한다. 4개의 x86 CPU 코어를 가지며 동작 속도는 2.1GHz~3.4GHz(터보)이고, R7 CU 8개로 구성된 내장 GPU는 800MHz로 동작되며, DDR4 2400을 지원하고 TDP는 35W 이다. FPD-link3의 직렬 LVDS 카메라 I/F를 통해 Full-HD 4채널을 실시간 처리할 수 있다. 실장된 FPGA에는 다채널 카메라 데이터를 동기화 시켜 저장하는 프래임 그래버가 탑재되어 있고 PCIe I/F를 통해 APU와 연결된다. 레이다와 라이다는 CAN이나 기가비트 이더넷을 통해 각각 4채널 연결 될 수 있고, 2개의 확장 PCIe 슬롯을 통해 각각 외장 GPU 및 PHEL 가속기가 탑재되는 FPGA 모듈과 연결 가능하다. 가장 큰 대역폭을 요구하는 카메라 인터페이스와 PHEL 탑재를 위한 FPGA, 외장 GPU는 PCI Express Gen3 8lane 인터페이스를 할당하여 PCI 버스 스위치를 거쳐 연결된다. 그리고 다수의 레이다, 라이다 센서와 보드간 연결에는 총 11개의 Ethernet 인터페이스를 제공하며, 대역폭을 고려하여 총 3개의 Ethernet to PCI Express 변환칩을 거쳐 APU와 연결된다. DDR 메모리, 디스플레이 출력, USB, SATA, 시리얼 인터페이스 등은 AMD RX-421BD에서 제공하는 포트와 연결되어 있다.


<그림 2> 드라이빙 컴퓨팅 하드웨어 플랫폼 시작품 보드

그림 3은 제작된 시작품 보드에 OS(Window, Linux)를 포팅하고 카메라 4채널, 레이다, 라이다 센서를 동시에 연동하여 센서 데이터를 실시간 처리하는 동작 검증 실험 환경을 나타낸다.


<그림 3> 다중/다채널 센서 연동 동작 검증

(2) 다채널 카메라 프레임 그래버

표1은 다채널 카메라 데이터를 프레임 단위로 동기화 시켜 메모리에 저장하는 프레임 그래버 하드웨어 엔진의 규격을 나타내고 그림 4는 다채널 카메라 프레임 그래버 하드웨어 엔진의 구조를 보여준다. 다채널 카메라 프레임 그래버 하드웨어 엔진은 FPGA에 포팅되어 구현된다. 이는 frameGrabber와 qSysTop으로 크게 두 부분으로 구성된다.
먼저 frameGrabber 블록은 다시 frameGrabberArbiter, frameGrabberControl, frameGrabberFetcher와 6개의 frameGrabberSub 블록으로 구성된다.
6개의 frameGrabberSub 블록은 FPGA 외부에 연결된 4개의 deserializer에 대응되어 4채널로 전달되는 영상 데이터 및 거리 데이터를 전달받아 각각의 프레임으로 구성하고 이를 프레임 메모리로 저장하는 역할을 수행한다. 이 때 frameGrabberSub0에서 frameGrabberSub3은 4개의 채널을 통해 전달되는 영상 데이터를 처리하며, frameGrabberSub8과 frameGrabberSub9는 2개의 채널의 영상 데이터와 함께 전달되는 거리 데이터를 처리한다. 이렇게 처리된 데이터는 총 6개의 프레임 메모리에 저장되는데, Cam0 FrameMemory부터 Cam3 FrameMemory는 영상 데이터가 저장되며, Cam8 FrameMemory와 Cam9 FrameMemory에는 거리 데이터가 저장된다. 또한 이렇게 프레임 메모리에 저장된 정보는 frameGrabberArbiter를 거쳐서 FIFO Memory에 저장됨으로써 CPU에서 이를 확인할 수 있도록 하였다.
frameGrabberArbiter 블록은 6개의 frameGrabberSub 블록에서 전달되는 6개의 FIFO Memory 저장 데이터를 하나의 포트로 나열하여 출력하는 기능을 담당한다.
frameGrabberControl 블록은 4개 카메라 채널에 대한 동작 여부 등, 프레임 그래버의 각 기능을 제어하는 블록이다.
frameGrabberFetcher 블록은 FIFO Memory에 저장된 프레임 처리 정보를 읽어, DMA를 제어함으로써 FrameMemory에서 CPU 메모리로 데이터를 전달하는 블록이다.
qSysTop 블록은 FIFO Memory, 6개의 FrameMemory, PCI Express Hard IP, Modular Scatter-Gather DMA로 구성된다. FIFO Memory는 6개의 frameGrabberSub 블록에서 생성된 프레임 저장 정보를 순서대로 CPU에 전달한다. 6개의 FrameMemory는 6개의 frameGrabberSub 블록에서 저장한 영상 및 거리 데이터 프레임 정보를 CPU에 전달한다. Modular Scatter-Gather DMA 블록은 CPU의 제어에 의해 데이터 전송을 담당한다. PCI Express Hard IP는 CPU와 FPGA간의 PCI Express 인터페이스 기능을 수행한다.

표1. 다채널 카메라 프레임 그래버 하드웨어 엔진 규격.

항목
규격
최대 픽셀 클럭 속도
- 62.5 MHz
픽셀 데이터 포멧
- 칼라 영상 데이터: YCbCr 4:2:2 (16bit)
- 거리 데이터: 8bit

레임 메모리 크기
- Y 채널 영상 데이터용: 7,680 byte * 8개
- CbCr 채널 영상 데이터용: 7,680 byte * 8개
- 거리 데이터용: 7,680 byte * 2개



<그림 4> 다채널 카메라 프레임 그래버 구조도

(3) 다채널 카메라 프레임 그래버 API

다채널 카메라 프레임 그래버 API는 PCI Express 디바이스 드라이버를 기반으로 하여 동작한다. PCI Express 디바이스 드라이버의 일반적인 기능만을 사용하여 다중 카메라 프레임 그래버 API를 구현하였기 때문에, 다양한 디바이스 드라이버로의 적용이 용이하다. 그림 5는 다채널 카메라 프레임 그래버 API 및 PCIe 디바이스 드라이버 스택을 나타낸다.


<그림 5> 다채널 카메라 프레임 그래버 API 및 PCIe 디바이스 드라이버 스택
다중 카메라 프레임 그래버는 Low Level API와 기본 API로 구성되며, Low Level API는 dcsfg_api_low.h 파일에 정의되어 있다.
그림 6은 디바이스 기본 설정과 관련된 함수를 보여준다. DCSFG_DeviceOpen 함수는 프레임 그래버를 처음 사용하기 위해 디바이스를 검색하여 관련 정보를 얻고, 이후 I/O하기 위한 핸들을 할당하는 함수이다. DCSFG_DeviceReset 함수는 프레임 그래버를 리셋하는 함수이다. DCSFG_DeviceClose 함수는 프레임 그래버 사용을 종료하고, 다른 응용에서 프레임 그래버를 사용할 수 있도록 핸들을 반납하는 함수이다. DCSFG_GetDesignID는 프레임 그래버의 설계 버전을 읽어오는 함수이다. 이외의 세부 내용은 기술문서로서 대신한다.


DCSFG_HANDLE * DCSFG_DeviceOpen();
void DCSFG_DeviceReset(DCSFG_HANDLE * handle);
void DCSFG_DeviceClose(DCSFG_HANDLE * handle);
UINT32 DCSFG_GetDesignID(DCSFG_HANDLE * handle);

<그림 6> 디바이스 기본 설정 함수.
- 자율주행 차량 시스템 및 ADAS에 적용 가능
- CPU, GPU, FPGA 기반의 고성능 heterogeneous computing 지원
- 다종/다중의 대용량 센서 인터페이스 지원 (FHD 카메라 4채널, 레이다 4채널, 라이다 4채널)
- FPD-link3 규격의 고속 serial 카메라 인터페이스 지원
- dual channel DDR3/DDR4 인터페이스 지원
- 모듈 확장을 위한 PCIe, Gbit ethernet, USB, serial 등 인터페이스 지원
- 차량 제어를 위한 CAN 인터페이스 지원
- 다채널 카메라 data를 프레임 동기화 시켜 메모리에 저장하는 FPGA 기반 다채널 카메라 프레임 그래버 지원
- 다채널 카메라 프레임 그래버 API 및 PCIe 디바이스 드라이버 제공
- 하드웨어 플랫폼 PCB 보드 회로도 및 CAD data 제공
- 하드웨어 플랫폼 보드 테스트용 BIOS 제공
- 하드웨어 플랫폼용 소프트웨어 플랫폼 적용을 위한 기술 지원
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 기술
1. 드라이빙 컴퓨팅 하드웨어 플랫폼 보드 기술
2. 다채널 카메라 프레임 그래버 기술
3. 다채널 카메라 프레임 그래버 API 기술
1. 드라이빙 컴퓨팅 하드웨어 플랫폼 보드 기술
- 하드웨어 플랫폼 규격 및 구조도
- 하드웨어 플랫폼 보드 회로도
- 하드웨어 플랫폼 보드 PCB CAD data
- 하드웨어 플랫폼 보드 테스트용 BIOS(Binary)
- 하드웨어 플랫폼용 소프트웨어 플랫폼 적용을 위한 기술 지원
2. 다채널 카메라 프레임 그래버 기술
- FPGA 기반 다채널 카메라 프레임 그래버 RTL
- 다채널 카메라 프레임 그래버 FPGA 개발 환경
- 다채널 카메라 프레임 그래버 국내 특허(출원)
3. 다채널 카메라 프레임 그래버 API 기술
- 다채널 카메라 프레임 그래버 API 규격 및 구조
- 다채널 카메라 프레임 그래버 API 및 PCIe 디바이스 드라이버
차량의 다종 센서 데이터를 처리할 수 있고 고성능의 컴퓨팅 연산 성능을 지원이 필요한 자율주행 차량용 드라이빙 컴퓨팅 시스템, 첨단 운전자 지원 시스템에 적용할 수 있다. 본 기술을 통해 해외의 플랫폼 도입 비용을 절감할 수 있고, 국내의 중소/중견 기업들이 양산을 위해 특화된 서비스 분야를 손쉽게 개발할 수 있어서 해외 및 대기업 위주의 자율주행 시장을 개척할 수 있다고 기대된다.
-드라이빙 컴퓨팅 플랫폼 기술은 SCC(Smart Cruise Control), 전방추돌경보, LKAS(Lane Keeping Assistant System) 등 다양한 형태의 ADAS 시스템에 적용될 수 있음
- 자율주행, 군집주행, 실외 주행로봇 전반에 주행환경 인지와 판단을 위한 기술로 적용될 수 있으며 항공, 퍼스널모빌리티, 조선, 철도 등에도 적용 가능함
- 하드웨어 플랫폼은 영상 기반의 IT 내비게이션, ICT 분야 등에 융합기술로 적용될 수 있으며 무인수송체계 등의 국방 분야에도 적용 가능
- 국내 기술력이 우수한 전기, 전자, 정보통신 기술과 기존 자동차 기술과의 융복합을 활성화 시켜 새로운 사업/제 품을 발굴하고 산업융합 생태계 조성
- 스마트카 관련 기술은 통합운송, 데이터 기반 통신 산업, 보험 등 타 경제 부문에도 경제적 이익창출에 기여할 수 있음
- 자율주행자동차 기술 개발은 영국 자동차 제조분야에서 25,000명의 신규 일자리를 창출하는 등 국가 GDP 증가에 기여할 수 있음