Home Uncategorized MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드

MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드

이 레퍼런스 디자인은 MAX 10 FPGA 디바이스의 Nios II 기반 시스템으로 기본적인 원격 구성을 실시하는 것을 보여주는 간단한 애플리케이션 예이다. MAX 10 FPGA 개발 키트에 포함되어 있는 UART 인터페이스와 Altera UART IP Core를 사용해서 원격 구성이 가능하다.
MAX 10 FPGA의 원격 시스템 업그레이드
원격 시스템 업그레이드 기능을 사용함으로써 FPGA 디바이스로 원격적으로 기능 향상이나 버그 교정이 가능하다. 임베디드 시스템은 UART, 이더넷, I2C 같은 다양한 프로토콜을 통해서 펌웨어를 수시로 업데이트해야 할 수 있다. 임베디드 시스템으로 FPGA를 포함할 때는 펌웨어 업데이트로서 FPGA의 하드웨어 이미지 업데이트를 포함할 수 있다.
MAX 10 FPGA 디바이스는 2개까지 구성 이미지를 저장할 수 있으므로 원격 시스템 업그레이드 기능을 강화할 수 있다. 이 중의 한 이미지를 백업 이미지로 사용함으로써 현재 이미지로 오류가 발생했을 때 이 백업 이미지를 로드할 수 있는 것이다.
약어 설명
표 1: 약어 설명
사전 지식 필요
이 레퍼런스 디자인을 활용하기 위해서는 다음에 대해서 사전적인 지식이나 경험을 필요로 한다:
• Nios II 시스템 및 툴의 작동에 대한 이해. 이들 시스템 및 툴로서는 Quartus® II 소프트웨어, QSYS, Nios II EDS를 포함한다.
• Altera의 구성 방법론 및 툴에 대한 이해. MAX 10 FPGA 내부적 구성, 원격 시스템 업그레이드 기능, PFL 등.
필요한 하드웨어 및 소프트웨어
이 레퍼런스 디자인을 사용하기 위해서는 다음과 같은 하드웨어 및 소프트웨어를 필요로 한다:
• Altera MAX 10 FPGA 개발 키트
• Altera Quartus II version 15.0과 Nios II EDS
• UART 드라이버와 인터페이스를 갖춘 컴퓨터
• 바이너리/헥스 파일 에디터
이 레퍼런스 디자인에 포함하고 있는 파일

또한 설계 파일들을 컴파일할 필요 없이 다음과 같은 마스터 파일들을 이용할 수 있다.

레퍼런스 디자인 흐름도

이 레퍼런스 디자인의 IP 코어 컴포넌트들
Nios II Gen2 Processor
이 레퍼런스 디자인에서 Nios II Gen2 프로세서는 다음과 같은 기능을 포함하고 있다:
• 버스 마스터 기능을 포함함으로써 읽기, 쓰기, 소거를 비롯해서 Altera On-Chip Flash IP Core와의 모든 인터페이스 동작을 처리할 수 있다.
• 소프트웨어로, 호스트 컴퓨터로부터 프로그래밍 비트 스트림을 수신하고 Dual Configuration IP Core를 통해서 재구성을 트리거하는(일어나게 하는) 알고리즘을 제공한다.
프로세서의 리셋 벡터가 적절히 설정되어 있어야 한다. 이것은 프로세서가 UFM이나 외부적 QSPI 플래시로부터 적절한 애플리케이션 코드를 부팅하도록 하기 위해서다.
주의: Nios II 애플리케이션 코드가 크기가 클 때는 애플리케이션 코드를 외부적 QSPI 플래시에 저장하도록 권장한다. 이 레퍼런스 디자인에서는 리셋 벡터가 Nios II 애플리케이션 코드를 저장하고 있는 외부적 QSPI 플래시를 가리키고 있다.
추가 정보
Nios II Gen2 하드웨어 개발 튜토리얼
Nios II Gen2 프로세서 개발에 관한 자세한 정보를 볼 수 있다.
Altera On-Chip Flash IP Core
Altera On-Chip Flash IP Core는 Nios II 프로세서가 CFM과 UFM으로 읽기, 쓰기, 소거 동작을 할 수 있도록 인터페이스로서 동작한다. Altera On-Chip Flash IP Core를 통해서 CFM을 액세스하고, 소거하고, 새로운 구성 비트 스트림으로 업데이트할 수 있다. Altera On-Chip Flash IP 파리미터 에디터에서는 각기 메모리 섹터로 지정된 어드레스 범위를 볼 수 있다.
추가 정보
Altera On-Chip Flash IP Core
Altera On-Chip Flash IP Core에 관한 더 자세한 정보를 볼 수 있다.
Altera Dual Configuration IP Core
Altera Dual Configuration IP Core를 통해서는 MAX 10 FPGA 디바이스의 원격 시스템 업그레이드 블록을 액세스할 수 있다. 새로운 이미지가 다운로드되었으면 Altera Dual Configuration IP Core를 통해서 재구성을 트리거할 수 있다.
추가 정보
Altera Dual Configuration IP Core
Altera Dual Configuration IP Core에 관한 더 자세한 정보를 볼 수 있다.
Altera UART IP Core
UART IP Core를 통해서는 MAX 10 FPGA의 임베디드 시스템과 외부적 소자 사이에 직렬 문자 스트림 통신을 할 수 있다. Avalon-MM 마스터로서 Nios II 프로세서가 Avalon-MM 슬레이브로서 UART IP Core와 통신한다. 이 통신은 제어 및 데이터 레지스터 읽기 및 쓰기로 이루어진다.
이 코어는 RS-232 프로토콜 타이밍을 구현하며 다음과 같은 기능들을 제공한다:
• 보 레이트(baud rate), 패리티, 정지, 데이터 비트 조절 가능
• 선택적인 RTS/CTS 플로우 제어 신호
추가 정보
UART Core
UART Core에 관한 더 자세한 정보를 볼 수 있다.
Altera Generic Quad SPI Controller IP Core
Generic Quad SPI Controller IP Core는 MAX 10 FPGA, 외부적 플래시, 온보드 QSPI 플래시 사이에 인터페이스로서 동작한다. 이 코어가 읽기, 쓰기, 소거 동작을 통해서 QSPI 플래시를 액세스할 수 있다.
Nios II 애플리케이션을 더 많은 명령어를 사용해서 확장하려고 하면 Nios II 애플리케이션으로부터 생성되는 hex 파일의 크기가 커진다. 이 파일이 일정한 크기 이상이 되면 UFM이 이 애플리케이션 hex 파일을 저장하기에 공간이 충분하지 않게 될 수 있다. 이럴 때는 MAX 10 FPGA 개발 키트로 제공되는 외부적 QSPI 플래시를 사용해서 애플리케이션 hex 파일을 저장할 수 있다.
Nios II ESD 소프트웨어 애플리케이션 디자인
이 레퍼런스 디자인은 원격 업그레이드 시스템 디자인을 제어하기 위한 Nios II 소프트웨어 애플리케이션 코드를 포함한다. 특정한 명령들을 실행하면 Nios II 소프트웨어 애플리케이션 코드가 UART를 통해서 호스트 터미널로 응답한다.
애플리케이션 이미지 원격 업데이트
원격 터미널을 사용해서 프로그래밍 비트 스트림 파일을 전송하면, Nios II 소프트웨어 애플리케이션이 다음과 같이 한다:
1. Altera On-Chip Flash IP Core의 제어 레지스터를 CFM1 & CFM2 섹터에 대한 보호를 해제하도록 설정한다.
2. CFM1과 CFM2에 대해서 섹터 소거 동작을 실시한다. Altera On-Chip Flash IP Core의 상태 레지스터를 폴링해서 소거가 성공적으로 완료되었는지 확인한다.
3. stdin으로부터 한 번에 4바이트씩 비트 스트림을 수신한다. 표준 입력 및 출력을 사용해서 호스트 터미널로부터 직접적으로 데이터를 수신하고 호스트 터미널로 출력을 프린트할 수 있다. 표준 입력 및 출력 옵션은 Nios II Eclipse Build 툴의 BSP Editor에서 설정할 수 있다.
4. 각 바이트의 비트 순서를 거꾸로 뒤집는다.
주의: Altera On-Chip Flash IP Core의 구성 때문에 모든 데이터 바이트를 CFM로 쓰기에 앞서 순서를 뒤집어주어야 한다.
5. CFM1과 CFM2로 한 번에 4바이트씩 데이터를 쓴다. 프로그래밍 비트 스트림이 끝날 때까지 이 작업을 계속한다.
6. Altera On-Chip Flash IP의 상태 레지스터를 폴링해서 쓰기 동작이 성공적으로 완료되었는지 확인한다. 전송이 완료되었음을 지시하는 메시지를 표시한다.
주의: 쓰기 동작이 실패하면 원격 터미널이 비트 스트림 전송 작업을 중단하고 오류 메시지를 표시한다.
7. 제어 레지스터를 다시 CFM1과 CFM2를 보호하도록 설정해서 원치 않는 쓰기 동작이 일어나지 않도록 한다.
추가 정보
9페이지의 “Convert Programming Files 메뉴를 사용한 .pof 생성” 부분 참조
Convert Programming Files 메뉴를 사용한 rpd 파일 생성에 관해서 설명한다.
원격적으로 재구성 트리거
호스트 원격 터미널에서 재구성 트리거 동작을 선택하면 Nios II 소프트웨어 애플리케이션이 다음과 같이 한다:
1. 표준 입력으로부터 명령을 수신한다.
2. 다음과 같은 두 가지 쓰기 동작을 사용해서 재구성을 시작한다:
• Dual Configuration IP Core의 오프셋 어드레스 0x01로 0x03을 쓴다. 이렇게 하면 물리적 CONFIG_SEL 핀을 오버라이트(overwrite)하고 Image 1을 다음 부트 구성 이미지로 설정한다.
• Dual Configuration IP Core의 오프셋 어드레스 0x00으로 0x01을 쓴다. 이렇게 하면 CFM1 및 CFM2로 애플리케이션 이미지 재구성을 트리거한다.
[계속 이어 보기 … ]
 
[개발키트 구매하기]
[DEV KIT MAX 10 NEEK 구매하기]
 
[알테라] MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드(2) 편으로 계속됩니다.

아이씨엔매거진
Exit mobile version