1. 서 론
최근 IoT(Internet-of-Things) 기술이 다양한 응용 분야에서 활용됨에 따라 블루투스(Bluetooth), WiFi, NFC(Near Field Communication) 등과 같은 무선 연결성(wireless connectivity) 기술에 대한 관심이 증가하고 있다. 특히, NFC 기술은 단순 통신기능 뿐 아니라 전자 결제 수단으로의 확장성 덕분에 최근 출시되는 대부분의 스마트 기기에 채택되는 추세이다. 또한 NFC 기술은 기존의 QR코드, RFID 기술에 비해 양방향 읽기/쓰기가 가능하다는 장점을 갖고 있기 때문에 기존 기술들을 대체하고 있다.
NFC 기술[2]은 10cm 이내의 근거리 양방향 무선 Table 1통신을 기반으로 리더(reader), 카드(card emulation), P2P(Peer-to-Peer)의 세 가지 동작 모드를 지원한다. 해당 기술표준은 물리계층 특성 및 데이터 전송 방식을 기술한 ISO/IEC 표준[2,3]과 서비스 관리를 기술한 NFC 포럼 표준[2]으로 구분되며, 일반적으로 NFC 포럼 표준은 소프트웨어로 구현되고 ISO/IEC 표준의 일부는 하드웨어로 구현된다. ISO/IEC 표준은 외부 장치로부터 통신을 위한 전력을 공급받는 수동(passive) 통신 방식과 자체 전력을 사용하는 능동(active) 통신 방식으로 나뉘며, 다시 변조와 부호와 방식에 따라서 세부적으로 나뉜다. 이와 같이 NFC 기술표준은 종류가 다양하고 개별 표준간 서로 독립된 통신 방식을 채택하여 이를 지원하기 위한 NFC 모뎀(modem) 제어가 복잡하다는 단점이 있다.
Table 1.Characteristics of representative NFC standards
특히, 다수의 태그 중 하나를 선택하여 통신하기 위한 충돌 방지(anti-collision) 기술은 각 기술표준별로 상이하게 정의되어 대부분의 상용 NFC 모뎀은 해당 기술을 하드웨어적으로 지원하는 대신 펌웨어(firmware) 수준에서 구현하여 유연성을 향상시키고 모뎀 제어를 단순화하였다[4,5]. 더욱이 최근에는 NFC 기술을 포함하여 블루투스, WiFi 등의 통신 기술을 통합한 SoC(System-on-Chip) 형태의 통합 통신 장치에 대한 연구 및 개발이 활발히 진행되고 있다[7]. 해당 SoC 장치는 일반적으로 하나의 호스트 프로세서 상에서 동작하는 펌웨어를 통해 개별 통신모뎀의 하드웨어 장치를 제어하도록 설계된다. 이런 이유로 NFC 통신 기술을 위한 소프트웨어 동작이 단순화될수록 상대적으로 많은 자원을 필요로 하는 다른 통신 기술의 동작을 지원할 수 있다. 또한 NFC는 표준이 다양하기 때문에 주변에 있는 다른 NFC 장치와 통신하기 위해서 각 표준별로 모드를 변경하면서 충돌 방지 기술을 반복적으로 수행한다[8]. 따라서 충돌 방지 기술에 대한 소프트웨어 비용을 줄이는 것이 중요하다.
본 논문에서는 소프트웨어 측면에서 NFC 모뎀 제어에 필요한 비용을 최소화할 수 있는 NFC 모뎀 설계 방법을 제안한다. 논문의 구성은 다음과 같다. 2장에서 NFC 기술표준 별 충돌 방지 방식을 설명하고, 3 장에서 실제 하드웨어 모뎀 설계에 대해 서술한다. 그리고 4 장에서 설계된 모뎀의 하드웨어 특성을 설명하고 기존 NFC 칩과 비교하여 소프트웨어 측면에서의 장점을 평가한다.
2. 배경지식
NFC 통신은 명령을 보내는 PCD(proximity coupling device)와 그에 응답하는 PICC(proximity integrated circuit cards) 사이의 통신으로 정의되며, 해당 통신은 PCD에 의해서만 시작된다. NFC 통신은 크게 두 단계로 나뉜다. 첫 번째 단계는 PCD가 하나 이상의 PICC 중에 하나를 선택하는 충돌 방지과정이고, 두 번째 단계는 실제 데이터를 전송하는 통신 과정이다. 먼저, 충돌 방지 과정을 위해 각 NFC 기술표준은 독립된 알고리즘을 정의하며, 동시에 여러 기술표준에 대해 충돌 방지 과정을 수행하기 위해 개별 기술표준의 충돌 방지 알고리즘을 반복해서 교대로 수행한다[8]. 다음으로 통신 과정을 위해 각 NFC 기술표준은 Table 1에서 보이는 것과 같이 서로 다른 변조(modulation), 복조(de-modulation), 부호화(encoding), 복호화(decoding), 에러 감지(error detection) 방식을 사용한다.
2.1 ISO/IEC 14443 타입 A 표준
Fig. 1의 (a)는 ISO/IEC 14443 타입 A 표준[3](이하 14443A)의 충돌 방지 과정을 보여준다. 해당 표준의 충돌 방지 알고리즘은 비트 충돌 감지(bit colli-sion detection) 방식을 사용한다. 다수의 PICC가 동시에 서로 다른 데이터를 PCD로 보낼 때 충돌이 발생하며, 다음과 같은 절차로 충돌 방지 알고리즘이 진행된다.
Fig. 1.The anticollsion procedures of each standard.
1) PCD는 PICC에게 ANTICOLLISION 명령을 보내서 ID를 요청한다.
2) 주변의 PICC는 동시에 ID를 ANTICOLLISION 응답에 포함하여 전송한다.
3) PCD가 ANTICOLLISION 응답 수신할 때 ID값이 달라지는 비트 위치에서 충돌이 발생한다.
4) 충돌이 발생했을 경우 PCD는 PICC에게 ID를 다시 요청한다. 이 때, 요청 명령은 PICC에게 받은 ID의 일부를 포함하고 있다. 이 ID는 받은 ID중에 충돌이 처음 발생한 비트 위치까지이며 충돌이 발생한 비트의 값은 0 또는 1로 선택되어야 한다.
5) PICC는 PCD로 부터 전송받은 ID가 자신의 ID와 동일한지 확인하고 동일하면 나머지 ID를 PCD로 전송한다. 단, 동일하지 않으면 해당 PICC는 선택되지 않은 것이므로 응답하지 않는다.
6) 3)∼5)의 과정을 충돌이 발생하지 않을 때 까지 반복 수행한다.
ISO/IEC 14443A 표준의 경우 ID 길이가 4, 7, 10바이트 중 하나이며 ID 길이에 따라서 종속 접속 레벨(cascade level)을 증가시키며 충돌 방지 과정을 최대 두 번 더 실행해야 한다.
2.2 ISO/IEC 14443 타입 B 표준
Fig. 1의 (b)는 ISO/IEC 14443 타입 B 표준[3](이하 14443B)의 충돌 방지 과정을 보여준다. 14443B 표준의 충돌 방지 알고리즘은 타임 슬롯(time-slot) 방식을 사용한다. 상세한 알고리즘은 래와 같다.
1) PCD는 PICC로 REQB 명령을 보내며 ID를 요청하는 동시에 총 타임 슬롯의 수를 알려준다.
2) PICC는 1, 2, ... ,(총 슬롯 수) 중에 하나를 무작위로 선택하여 1일 경우에 ID를 ATQB 응답을 통해 전송한다.
3) PCD는 응답이 없거나 충돌이 발생할 경우 SLOT 명령을 통해 슬롯 번호를 변경하여 ID를 재요청한다.
4) PICC는 PCD로부터 전송받은 슬롯 번호가 자신이 선택한 슬롯 번호와 같은 경우 다시 ATQB를 전송하여 ID를 보낸다.
5) 모든 슬롯을 시도해도 선택하지 못한 경우, REQB의 슬롯 필드의 슬롯 수를 늘려 ID를 다시 요청한다.
2.3 ISO/IEC 18092 표준
ISO/IEC 18092 표준[4](이하 18092)은 발신기(Initiator)와 목표기(Target) 간의 통신 방식을 규정한다. 해당 표준은 목표기의 RF(radio frequency) 생성 여부에 따라서 수동 및 능동 통신 방식으로 구분된다. 수동 통신 방식은 14443A 표준과 동일한 변조, 부호화 및 충돌 방지 방식을 사용한다. 능동 통신 방식의 경우, 충돌 방지 및 프레이밍(framing)에서 14443A 표준과 차별화된다. 해당 표준의 충돌 방지 알고리즘은 타임 슬롯 방식을 사용하지만, 14443B 표준과 달리 전체 슬롯의 수가 4개로 고정되며, 충돌발생 시 슬롯 번호을 선택할 수 없다. 또, 목표기는 통신 시에 자신의 RF를 생성하며 데이터를 전송한다. 구체적인 충돌 방지 과정은 다음과 같다.
1) 발신기는 목표기로 ATR_REQ 명령을 전송하여 ID를 요청한다.
2) 목표기는 RNG(random number generator) 장치를 통해 4개의 슬롯 중 무작위로 하나를 선택한다.
3) 목표기는 슬롯 번호에 따라 정해진 시간에 RF를 켠다. 단, 슬롯 번호가 작을수록 RF를 빨리 켠다.
4) 목표기는 자신이 RF를 켜기 전에 다른 목표기가 RF를 켰는지 확인하고, 이미 다른 목표기가 RF를 켰을 경우 응답하지 않는다. 그렇지 않을 경우, ATR_RES 응답을 통해 ID를 전송한다.
5) 만약 목표기가 같은 슬롯 번호를 가진 경우 같은 시간에 서로 다른 ID로 응답하므로 충돌이 발생한다. 이 경우에 1)∼4)을 다시 수행한다.
3. NFC 모뎀 설계
Fig. 2는 SoC 형태로 구현된 통합 통신 장치의 구조를 보여준다. 프로세서(ARM929EJ-S)가 각 모듈들과 시스템 버스[10]를 통해 연결되어 있으며, 각 모듈은 시스템 버스의 메모리 요청으로 제어된다. 시스템 버스는 계층적으로 구성되어 있으며, NFC의 경우 동작 주파수가 낮기 때문에 상대적으로 느린 APB (advanced peripheral bus)에 연결되어 있다. NFC 모뎀은 표준에서 정의한 반송 주파수(13.56MHz)를 사용하기 위해서 별도의 클럭으로 동작하며 시스템 버스와 인터페이스하기 위해서 별도의 비동기 인터페이스 로직이 추가되었다.
Fig. 2.Block diagram of integrated connectivity device.
NFC 모뎀은 NFC 기술표준 중 가장 일반적인 14443A/B 및 18092 표준을 지원한다. 각 기술표준은 서로 다른 변조, 부호화, 프레이밍, 충돌 방지 알고리즘을 채택하기 때문에 독립된 모듈로 설계되었다. 아날로그 전단부(analog front-end)는 모든 모듈이 공유하며, 디지털 신호로 변조된 각 비트 정보를 13.56 MHz 신호와 혼합하여 전송하고 수신된 RF 신호를 아날로그/디지털 변환기를 통해 디지털화하여 각 비트 정보를 복원하는 기능을 수행한다. 각 표준별 모듈은 모뎀 제어에 필요한 소프트웨어 연산을 최소화하기 위해서 변조, 부호화, 프레이밍, 충돌 방지 기능을 하드웨어적으로 수행한다. NFC 모뎀은 호스트 프로세서의 시스템 버스(system bus)에 메모리맵 입출력(memory mapped I/O) 방식으로 연결된다. 초기 모뎀 설정 이후 특정 주소의 레지스터 비트를 설정하는 방식으로 충돌 방지 기능을 시작한다. 충돌방지 기능이 완료되어 PICC(또는 목표기)가 선택되면 인터럽트 신호를 발생시켜 호스트 프로세서에 알려 데이터 송수신을 시작한다.
3.1 ISO/IEC 14443 타입 A 모듈 설계
14443A 모듈은 송신부, 수신부, 그리고 명령 생성을 위한 상태머신(state machine)으로 구성된다. 송신부는 상태머신으로부터 전송할 명령을 순차적으로 전달받아 에러 코드(error code) 삽입 모듈을 통해 CRC와 패리티 비트(parity bit)를 추가하고, 이후 수정된 밀러 부호기(modified Miller encoder)를 통해 부호화하여 아날로그 전단부에 전달한다. 수신부는 PICC로 부터의 응답을 전송받아 부반송파(subcarrier)를 제거하고 맨체스터 복호기(Manchester decoder)를 통해 복원하여 패리티 비트와 CRC를 확인한 후에 상태머신으로 전달한다. 단, REQA 명령을 포함한 일부 14443A 명령어는 에러 코드가 없기 때문에 상태머신에서 에러 코드 삽입 모듈로 관련 정보를 전달하여 선택적으로 에러 코드가 삽입된다.
Fig. 3에서 보듯이, 14443A의 상태머신은 충돌 방지 기능에 필요한 모든 명령과 응답을 처리하도록 설계되었다. 앞서 설명한 것과 같이, 14443A의 충돌방지 기능은 충돌이 발생한 비트의 위치를 확인해야 하며 부반송파를 제거할 때 확인된다. 충돌이 발생하지 않으면 1 비트 주기 동안 부반송파가 처음 반주기 또는 마지막 반주기 동안 4번 발생한다. 반면에 충돌이 발생하면 부반송파가 8번 발생하게 된다. 첫 번째 충돌이 발생하면 해당 위치를 레지스터에 저장한다.
Fig. 3.State machine of ISO/IEC14443 type A module.
호스트 프로세서로부터 충돌 방지 시작 신호가 시스템 버스를 통해 상태머신에 전달되면 상태머신은 대기(IDLE) 상태에서 REQA 명령 전송 상태로 전환된다. 전송이 완료된 후 ATQA 응답을 전달 받으면 ID 정보를 요청하는 명령어인 ANTICOLLISION 명령을 전송한다. 만약, PICC 부재 등의 이유로 ATQA 응답을 수신하지 못해 타임아웃(timeout)이 발생하면 상태머신은 다시 대기 상태로 전환된다. ANTICOLLISION 응답에서 충돌이 발생하면 ANTICOLLISION 명령을 다시 생성하여 전송한다. 이 때, ANTICOLLISION 명령은 첫 번째 충돌이 발생한 위치까지의 ID도 함께 전송한다.
ANTICOLLISION 명령의 응답을 통해 충돌이 발생하지 않음이 확인되면 SELECT 명령을 전송하고 SAK 응답을 기다린다. SAK 응답을 통해 PICC는 모든 ID가 전송되었는지 uid_complete 신호를 통해 알려준다. ID 수신이 완료되면 상태 머신은 SELECT 상태로 전환되고 인터럽트를 발생시켜 호스트에게 데이터 전송이 가능한 상태임을 알린다. 남은 ID가 있는 경우에는 종속 레벨을 증가시킨 후 ANTICOLLISION 명령을 재전송한다.
3.2 ISO/IEC 14443 타입 B 모듈 설계
14443B도 송신부, 수신부, 그리고 명령 생성을 위한 상태머신으로 구성된다. 이와 더불어, 14443B 송신부는 프레이밍 모듈을 포함하도록 설계되었다. 이는 14443A의 프레임 구조는 고정되어 있지만, 14443B는 프레임 구조가 가변적이기 때문이다. 예를 들어, SOF(start of frame)과 EOF(end of frame)의 길이가 가변적이며 생략도 가능하다. EGT(extra gaurd time)의 경우도 마찬가지로 그 길이가 가변적이다. 송신 시 SOF, EOF, 그리고 EGT의 길이는 메모리에 매핑된 레지스터 값에 의해 조절 가능하도록 설계되었다. 수신부에서 프레임 데이터를 추출하는 모듈은 SOF, EOF, 그리고 EGT의 길이를 자동으로 감지할 수 있도록 설계되었다. 또, 14443B는 에러 코드로 패리티 비트를 제외한 CRC만 사용한다.
충돌 방지 기능은 타임 슬롯 방식을 사용하며 슬롯 수는 Fig. 4에 표현된 상태머신에 의해 자동으로 조절된다. 충돌 방지 기능을 수행할 때, 상태머신은 Tx_REQB 상태로 이동하고 슬롯의 수를 낙관적으로 1로 설정하여 REQB 명령어를 전송한다. 만약 Rx_ATQB 상태에서 응답을 수신 중에 충돌이 발생하면 Tx_REQB 상태로 돌아와서 슬롯의 수를 2배로 늘려서 다시 REQB를 전송한다. 슬롯의 수가 1이 아닐 경우 Tx_SLOT 상태로 이동하여 다른 슬롯 번호로 ATQB 응답을 요청한다. 모든 슬롯을 시도해도 충돌이 발생할 경우 단계적으로 슬롯의 수를 증가시켜서 충돌방지를 수행한다.
Fig. 4.State machine of ISO/IEC14443 type B module.
3.3 ISO/IEC 18092 모듈 설계
18092의 충돌 방지 기능에서는 슬롯 수가 고정되어 있어 Fig. 5와 같이 명령 생성을 위한 상태머신의 구조가 단순하다. 충돌이 발생하면 발신기는 ATR_REQ 명령어를 재전송한다.
Fig. 5.State machine of ISO/IEC18092 module.
18092 모듈은 14443 A/B 모듈에 비해 높은 전송속도를 지원하도록 설계되었다. 해당 기술의 표준에서 전송 속도에 따라 부호화 방법과 프레임 구조를 다르게 정의하고 있다. 송신 속도는 시스템 버스에 연결된 레지스터의 값을 통해 변경 가능하도록 설계되었다. 수신부는 자동으로 전송 속도를 감지하고 복호화를 수행하도록 설계되었다.
Fig. 6은 전송 속도에 따라 상이하게 부호화된 신호를 보여준다. 전송 속도를 자동으로 감지하는 모듈은 하강 엣지와 상승 엣지 사이의 시간과 상승 엣지와 하강 엣지의 시간을 각각 카운터로 측정하고 그 값을 고정된 값과 비교하여 비트 주기를 판단한다.
Fig. 6.Encoding method of each bit rate.
Fig. 7에서 보듯이, 18092의 프레임은 전송 속도에 따라 서로 다른 구조를 가진다. 106K의 경우, 명령 또는 응답 앞에 SB(start byte)와 명령의 길이를 나타내는 LEN(length byte)가 붙는다. 하지만, 212K와 424K의 경우 PREAMBLE과 SYNC, LEN가 붙는 다. PREAMBLE의 길이는 가변적이며 최소 48 bit 이상이다. SYNC 필드의 경우 2 byte 상수이다. 위두 가지 프레임 구조에서 명령 또는 응답을 분리하기 위해서 간단한 상태머신을 추가했다. 이 상태머신은 감지된 전송 속도에 따라서 프레임의 헤더 부분의 상수 값이 올바른지 비교하고 올바를 경우에 나머지 부분을 명령 생성을 위한 상태머신에 전달한다.
Fig. 7.Frame of ISO/IEC 18092 standard (top: 106kbps, bottom : 212kbps, 424kbps).
4. 결과 및 평가
4.1 테스트 환경
Fig. 8은 제작된 통합 통신 장치의 동작을 테스트하기 위한 테스트 보드를 보여준다. 해당 장치는 SoC 형태로 개발되었으며 Fig. 2에서 보듯이 NFC, WiFi, 블루투스 통신을 지원하도록 설계되었다. NFC 모뎀의 Tx, Rx 신호는 아날로그 전단부를 거쳐 안테나 보드에 연결된다. 또한 NFC 모뎀의 제어를 위한 펌웨어는 ARM923EJ-S 상에서 동작하고, JTAG 연결을 통해 프로그래밍 가능하도록 설계되었다.
Fig. 8.Test board for verifying the NFC modem.
4.2 전력 소모 및 면적
Table 2은 NFC 모뎀을 구성하는 각 기술표준 모듈의 라우팅 제외한 면적과 전력 소모를 나타내며, 합성 프로그램인 Synopsys DesignCompiler[9]에서 측정된 것이다. 14443B 모듈의 면적이 작은 이유는 충돌 방지 과정이 단순하며 14443A에 비해서 짧은 ID를 사용하기 때문이다.18092 모듈이 다른 모듈에 비해 전력소모가 높은 이유는 높은 전송속도를 지원하기 위해 클럭을 분주하지 않고 사용하기 때문이다. Fig. 9는 합성 이후 칩 레이아웃을 보여준다.
Table 2.Area and power consumption of each module
Fig. 9.layout of the NFC modem.
4.3 소프트웨어 비용 분석 결과
Table 3는 기존 상용 NFC 모뎀과 본 논문에서 설계한 NFC 모뎀을 소프트웨어 비용 측면에서 비교한 결과를 보여준다. Table 3에서 언급된 상용 NFC 칩은 NFC 칩 제조사에서 출시한 NFC 칩 중에 가장 많은 표준을 지원하는 칩이며 같은 제조사의 다른 NFC 칩도 비슷한 기능을 제공하기 때문에 비교 대상으로 선정되었다. 본 논문에서 제안된 모뎀은 기존 상용 NFC 모뎀과 같이 각 표준에 맞게 정의된 프레이밍 규칙에 따라 명령을 생성하고 응답을 수신할 때, 프레임 데이터를 추출하는 기능을 제공한다. 동시에 에러 감지 코드를 생성하여 송신 명령에 추가하고 수신시에 에러 코드를 확인하여 에러를 감지하는 기능을 제공한다. 모뎀에서 이러한 기능을 제공하기 때문에 소프트웨어에서 프레임을 생성하거나 에러코드를 계산하는 비용을 줄여준다. 추가적으로 본 논문에서 설계된 모뎀은 기존 상용 NFC 모뎀과 다르게 충돌 방지 기능을 수행하는 중에 수신하는 응답에 따라 필요한 명령을 자동으로 생성하기 때문에 충돌방지 관련 응답을 확인하고 명령을 생성하는 작업을 소프트웨어적으로 처리할 필요가 없다. 또한, 18092의 통신 모듈은 수신 전송 속도를 자동을 감지하는 기능을 지원하기 때문에 전송 속도를 변경하기 위해서 수신단의 설정을 변경할 필요 없이 수신 속도에 따라 다르게 정의된 프레임 구조와 해독 방식을 적용하여 데이터를 추출한다. 이와 같은 기능을 제공하기 때문에 NFC 리더가 태그를 선택할 때, 프로세서의 연산 자원을 사용하지 않고 모뎀 자체적으로 태그와 통신할 수 있다.
Table 3.Comparison of functionality with commercial NFC modem
5. 결 론
논문에서는 소프트웨어 비용을 최소화하기 위한 NFC 모뎀의 설계 방법을 제안하였다. 특히, 각 기술표준의 충돌 방지 알고리즘이 하드웨어적으로 구현되어 소프트웨어 연산 처리의 부담을 최소화하였다. 이와 더불어 14443A 모듈은 종속 레벨을 자동으로 감지하여 반복적인 충돌 방지 기능을 수행하고, 14443B 모듈은 프레이밍 규칙을 유연하게 수용하도 록 설계되었으며, 18092 모듈은 전송 속도를 자동 감지하고 그에 따른 프레이밍 규칙에 맞게 데이터를 추출하도록 설계되었다. 본 연구에서 제안된 소프트웨어 비용을 최소화하는 NFC 모뎀 설계 방식을 통해 통합 통신 장치에서의 NFC 기술 효용성을 높일수 있다.
References
- J.B. Lim and Y.M. Lim, “The Vibration Bell System Development Using NFC Tag and Smart Phone“, Journal of Korea Multimedia Society, Vol. 18, No. 8, pp.968-979, 2015. https://doi.org/10.9717/kmms.2015.18.8.968
- NFC Technical Specifications, http://nfc-forum.org (accessed Oct., 8, 2015).
- ISO/IEC, Identification Cards-Contactless Integrated Circuit Cards-Proximity Cards, ISO/IEC 14443, 2001.
- ISO/IEC, Information Technology-Telecommunications and Information Exchange between Systems-Near Field Communication-Interface and Protocol (NFCIP-1), ISO/IEC 18092, 2004.
- Texas Instruments, TRF7970A Multiprotocol Fully Integrated 13.56-MHz RFID and Near Field Communication (NFC) Transceiver IC, http://www.ti.com (accessed Oct., 8, 2015).
- NXP Semiconductors, PN532/C1-Near Field Communication (NFC) Controller, http://www.nxp.com (accessed Oct., 8, 2015).
- Broadcom, Single Chip, Dual-Band (2.4GHz/5GHz) 802.11 G/N MAC/Baseband/Radio With Integrated Bluetooth 4.0, NFC + FM Receiver, https://www.broadcom.com (accessed Oct., 8, 2015).
- ISO/IEC, Information technology-Telecommunications and Information Exchange between Systems-Near Field Communication Interface and Protocol-2, (NFCIP-2), ISO/IEC 21481, 2005.
- Design Compiler Graphical, http://www.synopsys.com (accessed Oct., 8, 2015).
- ARM, AMBA Specification, http://infocenter.arm.com (accessed Oct., 8, 2015).