플렉스레이 통신 제어기{FLEXRAY COMMUNICATION CONTROLLER}
목차
1. 본 문서에 관하여
1.1 변경 제어
1.1.1 현재 상태
1.1.2 변경 이력
1.2 규약
1.3 범위
1.4 참조 문헌
1.5 용어 및 약어
2. 개요
2.1 블록도
3. 범용 인터페이스
3.1 범용 CPU 인터페이스
3.1.1 범용 인터페이스를 통한 호스트 액세스
3.2 물리 계층 인터페이스
3.3 임베디드 RAM 블록에의 인터페이스
3.3.1 입력 버퍼 인터페이스
3.3.2 출력 버퍼 인터페이스
3.3.3 메시지 RAM 인터페이스
3.3.4 천이 버퍼 RAM 인터페이스
3.3.5 임베디드 RAM 블록에 대한 판독/기록 액세스
4. 프로그래머의 모델
4.1 레지스터 맵
4.2 고객 레지스터
4.3 특수 레지스터
4.3.1 테스트 레지스터 1(TEST1)
4.3.2 테스트 레지스터 2(TEST2)
4.3.2.1 RAM 테스트 모드
4.3.3 로크 레지스터(LCK)
4.4 인터럽트 레지스터
4.4.1 에러 인터럽트 레지스터(EIR)
4.4.2 상태 인터럽트 레지스터(SIR)
4.4.3 에러 인터럽트 라인 셀렉트(EILS)
4.4.4 상태 인터럽트 라인 셀렉트(SILS)
4.4.5 에러 인터럽트 인에이블 세트/리셋(EIES, EIER)
4.4.6 상태 인터럽트 인에이블 세트/리셋(SIES, SIER)
4.4.7 인터럽트 라인 인에이블(ILE)
4.4.8 타이머 0 구성(T0C)
4.4.9 타이머 1 구성(T1C)
4.4.10 스톱 워치 레지스터(STPW)
4.5 CC 제어 레지스터
4.5.1 SUC 구성 레지스터 1(SUCC1)
4.5.2 SUC 구성 레지스터 2(SUCC2)
4.5.3 PRT 구성 레지스터 1(PRTC1)
4.5.4 PRT 구성 레지스터 2(PRTC2)
4.5.5 MHD 구성 레지스터 1(MHDC1)
4.5.6 MHD 구성 레지스터 2(MHDC2)
4.5.7 MEM 구성 레지스터(NEMC)
4.5.8 GTU 구성 레지스터 1(GTUC1)
4.5.9 GTU 구성 레지스터 2(GTUC2)
4.5.10 GTU 구성 레지스터 3(GTUC3)
4.5.11 GTU 구성 레지스터 4(GTUC4)
4.5.12 GTU 구성 레지스터 5(GTUC5)
4.5.13 GTU 구성 레지스터 6(GTUC6)
4.5.14 GTU 구성 레지스터 7(GTUC7)
4.5.15 GTU 구성 레지스터 8(GTUC8)
4.5.16 GTU 구성 레지스터 9(GTUC9)
4.5.17 GTU 구성 레지스터 10(GTUC10)
4.5.18 GTU 구성 레지스터 11(GTUC11)
4.6 CC 상태 레지스터
4.6.1 CC 상태 및 에러 벡터(CCSEV)
4.6.2 슬롯 카운터 값(SCV)
4.6.3 매크로틱 및 사이클 카운터 값(MTCCV)
4.6.4 클럭 정정 상태 1(CCS1)
4.6.5 클럭 정정 상태 2(CCS2)
4.6.6 동기 프레임 상태(SFS)
4.6.7 심볼 창 및 NIT 상태(SWNIT)
4.6.8 종합 채널 상태(ACS)
4.6.9 짝수 동기 ID [0..15](ESIDn)
4.6.10 홀수 동기 ID [0..15](OSIDn)
4.6.11 짝수 도달 채널 A,B [0..15](EAABn)
4.6.12 홀수 도달 채널 A,B [0..15](OAABn)
4.6.13 네트워크 관리 벡터 [1..3](NMVn)
4.7 메시지 버퍼 제어 레지스터
4.7.1 메시지 RAM 구성(MRC)
4.7.2 FIFO 차단 필터(FRF)
4.7.3 FIFO 차단 필터 마스크(FRFM)
4.8 메시지 버퍼 상태 레지스터
4.8.1 전송 요청 레지스터 1/2(TXRQ1/2)
4.8.2 새 데이터 레지스터 1/2(NDAT1/2)
4.8.3 메시지 핸들러 상태(MHDS)
4.9 입력 버퍼
4.9.1 기록 데이터 섹션 [1..64](WRDSn)
4.9.2 기록 헤더 섹션 1(WRHS1)
4.9.3 기록 헤더 섹션 2(WRHS2)
4.9.4 기록 헤더 섹션 3(WRHS3)
4.9.5 입력 버퍼 커맨드 요청(IBCR)
4.9.6 입력 버퍼 커맨드 마스크(IBCM)
4.10 출력 버퍼
4.10.1 판독 데이터 섹션 [1..64](RDDSn)
4.10.2 판독 헤더 섹션 1(RDHS1)
4.10.3 판독 헤더 섹션 2(RDHS2)
4.10.4 판독 헤더 섹션 3(RDHS3)
4.10.5 메시지 버퍼 상태(MBS)
4.10.6 출력 버퍼 커맨드 요청(OBCR)
4.10.7 출력 버퍼 커맨드 마스크(OBCM)
5. 기능 설명
5.1 통신 사이클
5.1.1 정적 세그먼트
5.1.2 동적 세그먼트
5.1.3 심볼 창
5.1.4 네트워크 아이들 시간(Network Idle Time, NIT)
5.2 통신 모드
5.2.1 시간-트리거 분산(Time-triggered Distributed, TT-D)
5.3 클럭 동기화
5.3.1 글로벌 시간
5.3.2 로컬 시간
5.3.3 동기화 프로세스
5.3.3.1 오프셋(위상) 정정
5.3.3.2 레이트(주파수) 정정
5.3.4 외부 클럭 동기화
5.4 에러 처리
5.4.1 클럭 정정 실패 카운터
5.4.2 수동 대 능동 카운터
5.4.3 HALT 커맨드
5.4.4 FREEZE 커맨드
5.5 통신 제어기 상태
5.5.1 통신 제어기 상태도
5.5.2 CONFIG 상태
5.5.3 MONITOR 상태
5.5.4 READY 상태
5.5.5 WAKEUP 상태
5.5.5.1 호스트 활동
5.5.5.2 웨이크업 심볼(WUS)
5.5.6 STARTUP 상태
5.5.6.1 콜드스타트-금지(ColdStart-Inhibit) 모드
5.5.6.2 기동 타임아웃(Startup Timeout)
5.5.6.3 기동 노드 개시 콜드스타트의 경로
5.5.6.4 기동 노드 통합의 경로
5.5.6.5 비기동 노드 통합의 경로
5.5.7 NORMAL_ACTIVE 상태
5.5.8 NORMAL_PASSIVE 상태
5.5.9 HALT 상태
5.6 네트워크 관리
5.7 필터링 및 마스킹
5.7.1 필터링 메카니즘
5.7.2 채널 ID 필터링
5.7.3 프레임 ID 필터링
5.7.4 사이클 카운터 필터링
5.7.5 FIFO 필터링
5.8 전송 프로세스
5.8.1 전송 버퍼
5.8.2 널 프레임 전송
5.8.3 정적 세그먼트
5.8.4 동적 세그먼트
5.8.5 프레임 전송
5.9 수신 프로세스
5.9.1 수신 버퍼
5.9.2 널 프레임 수신
5.9.3 프레임 수신
5.10 FIFO 버퍼 기능
5.10.1 설명
5.10.2 FIFO 버퍼의 구성
5.10.3 FIFO 버퍼에의 액세스
5.11 메시지 처리
5.11.1 입력/출력 버퍼 <-> 메시지 RAM
5.11.1.1 데이터 전송 입력 버퍼 -> 메시지 RAM
5.11.1.2 데이터 전송 메시지 RAM -> 출력 버퍼
5.11.2 플렉스레이(FlexRay) 프로토콜 제어기 <-> 메시지 RAM
5.12 메시지 RAM
5.12.1 헤더 섹션
5.12.2 데이터 섹션
5.12.3 패리티 검사
5.13 모듈 인터럽트
6. 부록
6.1 레지스터 비트 개요
도면 목록
표 목록
1. 본 문서에 관하여
1.1 변경 제어
1.1.1 현재 상태
개정판 0.62
1.1.2 변경 이력
발행판 일자 발행자 변경
개정판 0.1 18.09.02 C.Horst 초안
개정판 0.2 19.03.03 C.Horst PWD 0.8에 맞게 조정됨
개정판 0.3 12.08.03 C.Horst 제3장, 제5장, 제6장 완성됨
개정판 0.4 10.10.03 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.5 19.12.03 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.51 12.02.04 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.52 12.03.04 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.53 07.05.04 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.6 21.05.04 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.61 24.06.04 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
개정판 0.62 19.07.04 C.Horst 프로토콜 개발의 실제 상태에
맞게 조정됨
1.2 규약
이하의 규약은 이 사용자 매뉴얼 내에서 사용된다.
Helvetica 굵은체 비트 및 신호의 이름
Helvetica 이탤릭체
1.3 범위
이 문서는 애플리케이션 프로그래머의 관점에서 이-레이(E-Ray) 플렉스레이 IP-모듈 및 그의 특징을 설명한다. 이-레이 모듈을 사용자-정의 ASIC에 통합시키는 데 필요한 모든 정보는 모듈 통합 가이드에 있다. 특정의 고객 CPU 인터페이스에 관한 정보는 각자의 고객 CPU 인터페이스 규격 문서에서 찾아볼 수 있다.
이 문서는 개발 중인 이-레이 IP-모듈의 실제 상태를 반영한다. 이-레이 IP-모듈 규격의 장래의 버전에 대해 호환성이 보장되지 않는다.
1.4 참조 문헌
이 문서는 이하의 문서들을 참조한다.
참조 번호 저작자(들) 제목
1 FlexRay Group 플렉스레이 통신 시스템 프로토콜 규격 v2.0
1.5 용어 및 약어
이 문서는 이하의 용어 및 약어를 사용한다.
용어 의미
AP Action Point(동작점)
BCA Bit Clock Alignment(비트 클럭 정렬)
BD Bus Driver(버스 드라이버)
BDe Electrical Bus Driver(전기 버스 드라이버)
BDo Optical Bus Driver(광학 버스 드라이버)
BG Bus Guardian(버스 가디언)
BGE Capitalize guardian and enable(가디언 및 인에이블 캐피털화)
BGSME Bus Guardian Schedule Monitor Error(버스 가디언 스케쥴 모니터 에러) (에러 신호)
BGSM Bus Guardian Schedule Monitor(버스 가디언 스케쥴 모니터)
BGT Capitalize guardian and tick, add the word signal(가디언 및 틱 캐피털화 및 워드 신호)
BSD Bit Stream Decoding(비트 스트림 디코딩)
BSE Bit Stream Encoding(비트 스트림 인코딩)
BSS Byte Start Sequence(바이트 시작 시퀀스)
CAS Collision Avoidance Symbol(충돌 회피 심볼)
CC Communication Controller(통신 제어기)
CCFC Clock Correction Failed Counter(클럭 정정 실패 카운터)
CCLR Clock Correction Limit Reached(클럭 정정 한계 도달) (에러 신호)
CCMS Coldstart Count Maximum Signal(콜드스타트 카운트 최대 신호) (에러 신호)
CE Communication Element(통신 요소)
CHI Controller Host Interface(제어기 호스트 인터페이스)
CHIRP Channel Idle Recognition Point(채널 아이들 인식 포인트)
CRC Cyclic Redundancy Check(순환 중복 검사)
CSEI Channel Status and Error Information(채널 상태 및 에러 정보)
DTS Dynamic Trailing Sequence(동적 트레일링 시퀀스)
ECU Electronic Control Unit(전자 제어 유닛). 노드와 동일함.
EMC Electro Magnetic Compatibility(전자 자기 호환성)
ERRN Error Not signal(에러 없음 신호)
FES Frame End Sequence(프레임 종료 시퀀스)
FIFO First In, First Out(선입 선출) (데이터 버퍼 구조)
FSEI Frame Status and Error Information(프레임 상태 및 에러 정보)
FSP Frame and Symbol Processing(프레임 및 심볼 프로세싱)
FSS Frame Start Sequence(프레임 시작 시퀀스)
FTA Fault Tolerant Average(장애 허용 평균)
FTDMA Flexible Time Division Multiple Access(유연한 시분할 다중 접속) (매체 접근 방법)
FTM Fault Tolerant Midpoint(장애 허용 중간점)
IBF Input Buffer(입력 버퍼)
ICW Initial Check Window(초기 검사 창)
IFG Inter Frame Gap(프레임간 갭)
INH Inhibit signal(금지 신호)
ISG Inter-slot gap(슬롯간 갭)
LLI Logical Line Interface(논리적 라인 인터페이스)
MAC Media Access Control(매체 접근 제어)
MAS Media Access Scheme(매체 접근 방식)
MOCS Missing Offset Correction Signal(누락된 오프셋 정정 신호) (에러 신호)
MRCS Missing Rate Correction Signal(누락 레이트 정정 신호) (에러 신호)
MT Macrotick(매크로틱)
MTS Media Access Test Symbol(매체 접근 테스트 심볼)
NCT Network Communication Time(네트워크 통신 시간)
NIT Network Idle Time(네트워크 아이들 시간)
NM Network Management(네트워크 관리)
NRZ Non-Return to Zero(비제로 복귀) (인코딩 방법)
OBF Output Buffer(출력 버퍼)
SDL Specification and Description Language(규격 및 설명 언어)
SMMS Startup Majority Missed Signal(기동 다수 누락 신호) (에러 신호)
SPI Serial Peripheral Interface(직렬 주변 인터페이스)
STBN Standby Not signal(대기 없음 신호)
SW Symbol Window(심볼 창)
TBD To Be Determined(결정될 것)
TDMA Time Division Multiple Access(시분할 다중 접속) (매체 접근 방법)
TRP Time Reference Point(시간 기준점)
TSS Transmission Start Sequence(전송 시작 시퀀스)
TT-D Time Triggered Distributed Synchronization(시간 트리거 분산 동기화) (프로토콜 방식)
TT-M Time Triggered Master Controlled Synchronization(시간 트리거 마스터 제어 동기화) (프로토콜 방식)
TxEN Transmit enable signal from CC (CC로부터의 전송 인에이블 신호)
μT Microtick(마이크로틱)
VCW Validation Check Window(유효 검사 창)
WDT Watchdog disable time(와치독 디스에이블 시간)
WU Wakeup(웨이크업)
WUS Wakeup Symbol(웨이크업 심볼)
2. 개요
이-레이 모듈은 독립형 장치로서 또는 ASIC의 일부로서 통합될 수 있는 플렉스레이 IP-모듈이다. 이는, 합성을 위해 준비되어 있는, RTL 레벨에서 VHDL로 기술되어 있다. 이-레이 IP-모듈은 플렉스레이 프로토콜 규격 v2.0에 따라 통신을 수행한다. 비트레이트는 최대 10 MBit/s까지의 값으로 프로그램될 수 있다. 물리 계층으로의 연결을 위해, 부가적인 버스 가디언(BG) 및 버스 드라이버(BD)가 필요하다.
플렉스레이 네트워크 상에서의 통신을 위해, 최대 254 데이터 바이트를 갖는 개개의 메시지 버퍼가 구성된다. 메시지 저장 장치는 최대 64개의 메시지 버퍼를 보유하는 단일-포트 메시지 RAM으로 이루어져 있다. 메시지를 처리하는 것에 관한 모든 기능은 메시지 핸들러에 구현되어 있다. 이들 기능으로는, 수락 필터링(acceptance filtering), 2개의 플렉스레이 프로토콜 제어기와 메시지 RAM 간의 메시지의 전송, 전송 스케쥴을 유지하는 것은 물론, 메시지 상태 정보를 제공하는 것이 있다.
이-레이 IP-모듈의 레지스터 세트는 모듈 호스트 인터페이스를 통해 외부 CPU에 의해 직접 액세스될 수 있다. 이들 레지스터는 플렉스레이 프로토콜 제어기, 메시지 핸들러, 글로벌 타이밍 유닛, 시스템 범용 제어(system universal control), 프레임 및 심볼 프로세싱, 네트워크 관리, 인터럽트 제어를 제어/구성/모니터링하는 데 및 입력/출력 버퍼를 통해 메시지 RAM에 액세스하는 데 사용된다.
이-레이 IP-모듈은 그의 8/16/32-비트 범용 CPU 인터페이스(generic CPU interface)를 통해 광범위한 고객-관련 호스트 CPU에 연결될 수 있다.
이-레이 IP-모듈은 이하의 특징을 지원한다.
플렉스레이 프로토콜 규격 v2.0에 부합한다.
각각의 채널 상에서의 최대 10 Mbit/s의 데이터 레이트
예를 들어 최대 56 바이트 데이터 필드를 갖는 64개 메시지 또는 254 바이트 데이터 필드를 갖는 최대 16개 메시지를 저장하기 위한 4.6 Kbyte의 메시지 RAM
서로 다른 페이로드 길이를 갖는 메시지 버퍼의 구성도 역시 가능
각각의 메시지 버퍼는 수신 버퍼로서, 전송 버퍼로서 또는 수신 FIFO의 일부로서 구성될 수 있다.
입력 및 출력 버퍼를 통해 메시지 버퍼에의 호스트 액세스
입력 버퍼: 메시지 RAM으로 전송될 메시지를 보유함
출력 버퍼: 메시지 RAM으로부터 판독된 메시지를 보유함
프레임 ID, 채널 ID 및 사이클 카운터를 위한 필터링
광범위한 고객-관련 호스트 CPU에 연결가능한 8/16/32-비트 범용 CPU 인터페이스
2.1 블록도
도 1: 이-레이 블록도
고객 CPU 인터페이스(CIF)
범용 CPU 인터페이스를 통해 고객 관련 호스트 CPU를 이-레이 IP-모듈에 연결시킨다.
범용 CPU 인터페이스(GIF)
이-레이 IP-모듈은 광범위한 고객-관련 호스트 CPU에의 연결을 위해 8/16/32-비트 범용 CPU 인터페이스를 구비하고 있다. 구성 레지스터, 상태 레지스터, 및 인터럽트 레지스터가 각각의 블록에 연결되어 있고 또 범용 CPU 인터페이스를 통해 액세스될 수 있다.
입력 버퍼(IBF)
메시지 RAM에 구성된 메시지 버퍼에의 기록 액세스를 위해, 호스트 CPU는 특정의 메시지 버퍼에 대한 헤더 및 데이터 섹션을 입력 버퍼에 기록할 수 있다. 이어서, 메시지 핸들러는 데이터를 메시지 RAM 내의 선택된 메시지 버퍼로 전송한다.
출력 버퍼(OBF)
메시지 RAM에 구성된 메시지 버퍼에의 판독 액세스를 위해, 메시지 핸들러는 선택된 메시지 버퍼를 출력 버퍼로 전송한다. 이 전송이 완료된 후에, 호스트 CPU는 전송된 메시지 버퍼의 헤더 및 데이터 섹션을 출력 버퍼로부터 판독할 수 있다.
메시지 핸들러(MHD)
이-레이 메시지 핸들러는 이하의 구성요소 간의 메시지 전송을 제어한다.
2개의 플렉스레이 프로토콜 제어기 및 메시지 RAM의 천이 버퍼 RAM
메시지 RAM
메시지 RAM은 관련된 구성 데이터(헤더 및 데이터 섹션)와 함께 최대 64개의 플렉스레이 메시지 버퍼를 저장하는 단일-포트 RAM으로 이루어져 있다.
RAM A/B
천이 버퍼 RAM. 다음에 전송될 가장 최근에 수신된 메시지 또는 메시지들을 버퍼링한다. 2개의 전체 메시지의 데이터 섹션을 저장한다.
PRT A/B
플렉스레이 프로토콜 제어기는 시프트 레지스터 및 플렉스레이 프로토콜 FSM으로 이루어져 있다. 이들은 중간 메시지 저장을 위해 천이 버퍼 RAM에 또한 버스 가디언(BG) 및 버스 드라이버(BD)를 통해 물리 계층에 연결되어 있다.
이들은 이하의 기능을 수행한다.
플렉스레이 프로토콜 제어기는 이하의 것으로의 인터페이스를 갖는다.
글로벌 시간 유닛(GTU)
이 타이밍 유닛은 이하의 기능을 수행한다.
FTM 알고리즘에 의한 장애 허용 클럭 동기화
- 레이트 정정
- 오프셋 정정
동적 세그먼트의 타이밍 제어(미니 슬롯팅(mini slotting))
시스템 범용 제어(SUC)
시스템 범용 제어는 이하의 기능을 제어한다.
프레임 및 심볼 프로세싱(FSP)
프레임 및 심볼 프로세싱은 이하의 기능을 제어한다.
수신된 프레임의 구문적(syntactical) 및 의미론적(semantical) 정확성을 테스트한다
네트워크 관리(NEM)
네트워크 관리는 이하의 기능을 수행한다.
인터럽트 제어(INT)
인터럽트 제어는 이하의 기능을 수행한다.
인터럽트 소스의 인에이블/디스에이블을 제어한다
2개의 모듈 인터럽트 라인에 대한 인터럽트 소스의 할당을 제어한다
3. 범용 인터페이스
범용 인터페이스는 이-레이 설계(이-레이 코어)의 동기화가능 코드를 캡슐화한다. 고객 CPU 인터페이스 및 RAM 블록과 같은 모든 고객 관련 컴포넌트는 범용 인터페이스에 연결되어 있다. 도 2는 이-레이 코어가 그의 범용 인터페이스를 통해 외부 세계에 연결되어 있는 것을 나타낸 것이다.
도 2: 이-레이 코어의 범용 인터페이스
범용 인터페이스는 범용 CPU 인터페이스, 임베디드 RAM 블록에의 인터페이스, 및 물리 계층 인터페이스로 이루어져 있다.
3.1 범용 CPU 인터페이스
범용 CPU 인터페이스는 고객 CPU 인터페이스를 통해 이-레이 모듈을 고객 관련 호스트 CPU에 연결시킨다. 범용 CPU 인터페이스는 광범위한 고객 관련 CPU에의 연결을 위해 설계되었다. 이는 8/16/32 비트 액세스를 지원하며 이하의 포트를 갖는다.
<표 1> 범용 호스트 인터페이스
신호 |
유형 |
설명 |
eray_sclk |
I |
샘플 클럭, 80 MHz |
eray_bclk |
I |
버스 클럭, > 40 MHz |
eray_reset |
I |
모듈 리셋 |
eray_select |
I |
모듈 선택 |
eray_addr[10:0] |
I |
주소 입력 |
eray_byten[3:0] |
I |
바이트 인에이블 |
eray_write |
I |
기록/판독 제어: '1' = 기록, '0' = 판독 |
eray_wdata[31:0] |
I |
기록 데이터 입력 |
eray_stpwt |
I |
스톱 워치 트리거 입력 |
eray_wrdy |
O |
기록 준비완료 출력 |
eray_rrdy |
O |
판독 준비완료 출력 |
eray_rdata[31:0] |
O |
판독 데이터 출력 |
eray_int0 |
O |
CPU에 대한 인터럽트 라인 0 |
eray_int1 |
O |
CPU에 대한 인터럽트 라인 1 |
eray_tint0 |
O |
타이머 인터럽트 0 출력 |
eray_tint1 |
O |
타이머 인터럽트 1 출력 |
eray_ibusy |
O |
입력 버퍼 RAM를 메시지 RAM으로 전송중 |
eray_obusy |
O |
메시지 RAM을 출력 버퍼 RAM으로 전송중 |
3.1.1 범용 인터페이스를 통한 호스트 액세스
도 3: 이-레이 레지스터 및 입력/출력 버퍼 RAM에의 기록 액세스
레지스터에의 기록 액세스는 1 클럭 사이클이 소요된다. RAM 주소에의 기록 액세스는 2 클럭 사이클이 소요된다.
도 4: 이-레이 레지스터 및 입력/출력 버퍼 RAM에의 판독 액세스
동기 RAM으로 인해, 내부 RAM 블록에의 판독 액세스는 2 클럭 사이클이 소요되는 반면, 레지스터로부터의 데이터는 1 클럭 사이클 내에 유효하다. 신호 eray_byten[4]은 판독 액세스 시에 무시된다.
도 5: 입력 버퍼 RAM으로부터 메시지 RAM으로 및 메시지 RAM으로부터 출력 버퍼 RAM으로의 데이터 전송
입력 버퍼로부터 메시지 RAM으로의(또는 메시지 RAM으로부터 출력 버퍼로의) 데이터 전송은 각자의 커맨드 요청 레지스터(IBCR/OBCR)에의 기록 액세스에 의해 개시된다. 각자의 작동중(busy) 신호(eray_ibusy 또는 eray_obusy) 신호가 리셋될 때까지의 지연 시간은 메시지의 페이로드 길이 및 메시지 핸들러의 실제 상태에 의존한다.
3.2 물리 계층 인터페이스
물리 계층 인터페이스는 이-레이 모듈을 버스 가디언(BG) 및 버스 드라이버(BD)에 연결시킨다.
<표 2> 물리 계층 인터페이스
신호 |
유형 |
설명 |
eray_arm |
O |
버스 가디언 ARM 신호, BG에 통신 사이클의 시작을 알려준다. |
eray_bgt |
O |
버스 가디언 틱, 주파수 분할기에 의해 eray_sclk로부터 도출되고, BG의 MT 와치독에 의해 사용된다. |
eray_mt |
O |
버스 가디언 매크로틱, MT 신호는 CC의 내부 정정 매크로틱 클럭의 정확한 표현이다. |
채널 A |
eray_rxd1 |
I |
데이터 수신기 입력 |
eray_txd1 |
O |
데이터 송신기 출력 |
eray_txen1_n |
O |
전송 인에이블 신호, CC 스케쥴의 관리를 위해 BG에 의해 평가되고, eray_bge1이 비활성인 동안에 eray_txen1_n이 활성인 경우 스케쥴 불일치가 검출된다. HIGH = 전송 비활성, LOW = 전송 활성 |
eray_bge1 |
I |
버스 가디언 인에이블 신호, 통신 매체에의 전송 액세스를 제어하고, 또한 BG 스케쥴의 관리를 위해 CC에 의해 사용된다. HIGH = 전송 인에이블됨, LOW = 전송 디스에이블됨 |
채널 B |
eray_rxd2 |
I |
데이터 수신기 입력 |
eray_txd2 |
O |
데이터 송신기 출력 |
eray_txen2_n |
O |
전송 인에이블 신호, CC 스케쥴의 관리를 위해 BG에 의해 평가되고, eray_bge2이 비활성인 동안에 eray_txen2_n이 활성인 경우 스케쥴 불일치가 검출된다. HIGH = 전송 비활성, LOW = 전송 활성 |
eray_bge2 |
I |
버스 가디언 인에이블 신호, 통신 매체에의 전송 액세스를 제어하고, 또한 BG 스케쥴의 관리를 위해 CC에 의해 사용된다. HIGH = 전송 인에이블됨, LOW = 전송 디스에이블됨 |
2개의 채널 각각에 대해, 별개의 버스 드라이버 및 버스 가디언 장치가 요구 된다. 버스 가디언은 선택적이다.
3.3
임베디드
RAM 블록에의 인터페이스
이-레이 설계에 의해 사용되는 7개의 임베디드 RAM 블록은 이하에 기술되는 인터페이스를 통해 이-레이 코어에 연결되어 있다. 이-레이 모듈은 동기 RD/WR을 갖는 단일-포트 RAM에의 연결을 위해 설계되어 있다. 모든 RAM 블록에 대한 폭은 33 비트, 즉 32 데이터 비트 및 1 패리티 비트이다.
3.3.1 입력 버퍼 인터페이스
입력 버퍼 RAM 1 인터페이스는 이하의 포트를 갖는다.
<표 3> 입력 버퍼 RAM 1에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_ibf1_addr[5:0] |
O |
주소 출력 |
eray_ibf1_cen |
O |
RAM 선택 |
eray_ibf1_wren |
O |
기록 제어 |
eray_ibf1_data[32:0] |
O |
기록 데이터 출력 |
eray_ibf1_q[32:0] |
I |
판독 데이터 입력 |
입력 버퍼 RAM 2 인터페이스는 이하의 포트를 갖는다.
<표 4> 입력 버퍼 RAM 2에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_ibf2_addr[5:0] |
O |
주소 출력 |
eray_ibf2_cen |
O |
RAM 선택 |
eray_ibf2_wren |
O |
기록 제어 |
eray_ibf2_data[32:0] |
O |
기록 데이터 출력 |
eray_ibf2_q[32:0] |
I |
판독 데이터 입력 |
3.3.2 출력 버퍼 인터페이스
출력 버퍼 RAM 1 인터페이스는 이하의 포트를 갖는다.
<표 5> 출력 버퍼 RAM 1에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_obf1_addr[5:0] |
O |
주소 출력 |
eray_obf1_cen |
O |
RAM 선택 |
eray_obf1_wren |
O |
기록 제어 |
eray_obf1_data[32:0] |
O |
기록 데이터 출력 |
eray_obf1_q[32:0] |
I |
판독 데이터 입력 |
출력 버퍼 RAM 2 인터페이스는 이하의 포트를 갖는다.
<표 6> 출력 버퍼 RAM 2에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_obf2_addr[5:0] |
O |
주소 출력 |
eray_obf2_cen |
O |
RAM 선택 |
eray_obf2_wren |
O |
기록 제어 |
eray_obf2_data[32:0] |
O |
기록 데이터 출력 |
eray_obf2_q[32:0] |
I |
판독 데이터 입력 |
3.3.3 메시지 RAM 인터페이스
메시지 RAM은 최대 64개 메시지 버퍼의 헤더 및 데이터 섹션을 저장한다. 메시지 RAM 인터페이스는 이하의 포트를 갖는다.
<표 7> 메시지 RAM에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_mbf_addr[10:0] |
O |
주소 출력 |
eray_mbf_cen |
O |
RAM 선택 |
eray_mbf_wren |
O |
기록 제어 |
eray_mbf_data[32:0] |
O |
기록 데이터 출력 |
eray_mbf_q[32:0] |
I |
판독 데이터 입력 |
3.3.4 천이 버퍼 RAM 인터페이스
2개의 플렉스레이 채널 각각은 연관된 천이 버퍼 RAM을 갖는다. 채널 A의 천이 버퍼 RAM 인터페이스는 이하의 포트를 갖는다.
<표 8> 천이 버퍼 RAM A에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_tbf1_addr[6:0] |
O |
주소 출력 |
eray_tbf1_cen |
O |
RAM 선택 |
eray_tbf1_wren |
O |
기록 제어 |
eray_tbf1_data[32:0] |
O |
기록 데이터 출력 |
eray_tbf1_q[32:0] |
I |
판독 데이터 입력 |
채널 B의 천이 버퍼 RAM 인터페이스는 이하의 포트를 갖는다.
<표 9> 천이 버퍼 RAM B에의 인터페이스
신호 |
유형 |
설명 |
eray_bclk_out |
O |
모듈 클럭 |
eray_tbf2_addr[6:0] |
O |
주소 출력 |
eray_tbf2_cen |
O |
RAM 선택 |
eray_tbf2_wren |
O |
기록 제어 |
eray_tbf2_data[32:0] |
O |
기록 데이터 출력 |
eray_tbf2_q[32:0] |
I |
판독 데이터 입력 |
3.3.5
임베디드
RAM 블록에 대한 판독/기록 액세스
4. 프로그래머의 모델
4.1 레지스터 맵
이-레이 모듈은 2Kbyte의 주소 공간(0x0000 내지 0x07FF)을 할당한다. 레지스터는 32-비트 레지스터로 구성되어 있다. 8/16-비트 액세스도 역시 지원된다. 메시지 RAM에의 호스트 액세스는 입력 및 출력 버퍼를 통해 행해진다. 이들은 메시지 핸들러의 제어 하에서 메시지 RAM으로/로부터 전송될 데이터를 버퍼링하여, 호스트 액세스와 메시지 수신/전송 간의 충돌을 방지한다.
주소 0x0000 내지 0x000F는 고객 관련 목적을 위해 예비되어 있다. 이들 주소와 관련된 모든 기능은 고객 CPU 인터페이스에 위치되어 있다. 주소 0x0010 내지 0x0014에 위치하고 있는 테스트 레지스터는 4.3 특수 레지스터에 기술된 조건 하에서만 기록 가능하다.
메시지 버퍼의 할당은 이하의 표 10에 나타낸 방식에 따라 행해진다. 이용가능한 메시지 버퍼의 개수 N은 구성된 메시지 버퍼의 페이로드 길이에 의존하며 16개(254 데이터 바이트)에서 최대 64개(56 데이터 바이트) 메시지 버퍼까지 변할 수 있다.
메시지 버퍼는 3개의 연속적인 그룹으로 분할된다.
정적 버퍼 - 정적 세그먼트에 대한 전송/수신 버퍼
동적 버퍼 - 동적 세그먼트에 대한 전송/수신 버퍼
메시지 버퍼 분할 구성은 메시지 RAM 구성 레지스터를 프로그래밍함으로써 CONFIG 상태에서 변경될 수 있다. 정적 세그먼트에 할당되는 일련의 메시지 버퍼는 메시지 버퍼 0에서 기동하여 동적 세그먼트에 할당된 제1 메시지 버퍼 이전에 끝난다.
메시지 핸들러 구성 레지스터 2에서 SFID[9:0]에 의해 구성된 키 슬롯 ID를 보유하는 메시지 버퍼는 기동/동기 프레임(노드가 기동/동기 노드인 경우)(SUC 구성 레지스터 1에서 TXST 및 TXSY에 의해 구성됨) 또는 단일 슬롯 프레임을 보유하는 데 전용되어 있다.
동적 세그먼트에 할당된 일련의 메시지 버퍼는 마지막 정적 버퍼에서 기동하여 FIFO 버퍼 이전에 끝난다. 정적 세그먼트에 또는 동적 세그먼트에 할당되지 않은 모든 메시지 버퍼는 단일의 FIFO 버퍼에 연결(concatenate)되어 있다. FIFO 버퍼는 마지막 동적 버퍼 이후에 기동한다. 모든 이용가능한 메시지 버퍼가 정적 세 그먼트에 및/또는 동적 세그먼트에 할당되어 있는 경우 FIFO 버퍼가 없다.
4.2 고객 레지스터
0x0000 내지 0x000F의 주소 범위는 고객 관련 레지스터를 위해 예비되어 있다. 이들 레지스터는, 구현되는 경우, 고객 CPU 인터페이스 블록에 위치되어 있다. 특정의 고객 CPU 인터페이스 규격 문서에서 설명을 찾아볼 수 있다.
4.3 특수 레지스터
4.3.1 테스트 레지스터 1(TEST1)
테스트 레지스터 1은 이-레이 모듈의 테스트 모드를 구성하기 위한 제어 비트를 보유한다. 이 레지스터에의 기록 액세스는 WRTEN 비트가 세트되어 있는 경우 에만 가능하다.
WTREN Write Test Register Enable(기록 테스트 레지스터 인에이블)
테스트 레지스터에의 기록 액세스를 인에이블한다. 이 비트를 '0'에서 '1'로 설정하기 위해, 테스트 모드 키는 섹션 4.3.3 로크 레지스터(Lock Register)(LCK)에 정의된 바와 같이 기록되어야만 한다. 이 레지스터의 다른 비트들이 변경되는 동안 WRTEN이 '1'에 유지되는 경우 언로크 시퀀스(unlock sequence)가 필요하지 않다. 이 비트는 언제라도 '0'으로 리셋될 수 있다.
1 = 테스트 레지스터에의 기록 액세스가 인에이블됨
0 = 테스트 레지스터에의 기록 액세스가 디스에이블됨
TMC[2:0] Test Mode Control(테스트 모드 제어)
000 = 정상 동작 모드(Normal operation mode), 디폴트(default)
001 = RAM 테스트 모드(RAM Test mode) - 이-레이 모듈의 모든 RAM 블록이 호스트 CPU에 의해 직접 액세스가능하다. 이 모드는 제조 테스트 동안에 임베디드 RAM 블록의 테스트를 가능하게 해주기 위한 것이다.
010 = 루프 백 모드(Loop Back mode) - 루프 백 모드에서, 이-레이 모듈은 비동기 전송 모드에서 동작하며, 그 자신의 전송 메시지를 수신 메시지로서 취급하 고, (이들이 수락 필터링을 통과하는 경우) 이들을 제1 매칭 수신 버퍼(matching Receive Buffer)에 저장한다.
011 = I/O 테스트 모드(I/O Test mode) - 출력 핀 eray_txdl, eray_txd2, eray_txenl_n, eray_txen2_n, eray_arm, erayjbgt, eray_mt은 비트 TXA, TXB, TXENA, TXENB, ARM, BGT, MT에 의해 정의된 값으로 구동된다. 입력 핀 eray_rxdl, eray_rxd2, eray_bgel, eray_bge2에 인가되는 값은 레지스터 비트 RXA, RXB, BGEA, BGEB로부터 판독될 수 있다.
100..111 = 미사용(unused) - 정상 동작 모드에 매핑됨.
이하의 테스트 레지스터 1 비트는 각각의 핀을 구동/판독함으로써 물리 계층에의 인터페이스를 테스트(연결성 테스트)하는 데 사용된다.
RXA 모니터 채널 A 수신 핀(Monitor Channel A Receive Pin)
0 = eray_rxdl = '0'
1 = eray_rxdl = '1'
RXB 모니터 채널 B 수신 핀(Monitor Channel B Receive Pin)
0 = eray_rxd2 = 'O'
1 = eray_rxd2= 'l'
TXA 채널 A 전송 핀의 제어(Control of Channel A Transmit Pin)
0 = eray_txdl 핀은 '0'을 구동함
1 = eray_txdl 핀은 '1'을 구동함
TXB 채널 B 전송 핀의 제어(Control of Channel B Transmit Pin)
0 = eray_txd2 핀은 '0'을 구동함
1 = eray_txd2 핀은 '1'을 구동함
TXENA 채널 A 전송 인에이블 핀의 제어(Control of Channel A Transmit Enable Pin)
0 = eray_txenl_n 핀은 '0'을 구동함
1 = eray_txenl_n 핀은 '1'을 구동함
TXENB 채널 B 전송 인에이블 핀의 제어(Control of Channel B Transmit Enable Pin)
0 = eray_txen2_n 핀은 '0'을 구동함
1 = eray_txen2_n 핀은 '1'을 구동함
BGEA 모니터 채널 A 버스 가디언 인에이블 핀(Monitor Channel A Bus Guardian Enable Pin)
0 = eray_bgel = 'O'
1 = eray_bgel = '1'
BGEB 모니터 채널 B 버스 가디언 인에이블 핀(Monitor Channel B Bus Guardian Enable Pin)
0 = eray_bge2 = '0'
1 = eray_bge2 = T
ARM 버스 가디언 ARM 핀의 제어(Control of Bus Guardian ARM Pin)
0 = eray_arm 핀은 '0'을 구동함
1 = eray_arm 핀은 '1'을 구동함
BGT 버스 가디언 틱 핀의 제어(Control of Bus Guardian Tick Pin)
0 = eray_bgt 핀은 '0'을 구동함
1 = eray_bgt 핀은 '1'을 구동함
MT 버스 가디언 매크로틱 핀의 제어(Control of Bus Guardian Macrotick Pin)
0 = eray_mt 핀은 '0'을 구동함
1 = eray_mt 핀은 '1' 을 구동함
비동기 전송 모드(Asynchronous Transmit Mode) (ATM)
비동기 전송 모드 상태는, CC가 CONFIG 상태에 있고 테스트 레지스터 1에서의 비트 WRTEN이 '1'로 설정되어 있는 동안, "1100"를 SUC 구성 레지스터 1 내의 CHI 커맨드 벡터(CHI Command Vector) CMD[3:0]에 기록(CHI 커맨드: ATM)함으로써 입력된다. 임의의 다른 상태에서 호출되는 경우, 또는 비트 WRTEN이 세트되어 있지 않은 경우, CMD[3:0]는 "0000" = command_not_valid로 리셋된다.
SUC 구성 레지스터 1에서 "0001" (CHI 커맨드: CONFIG)를 CHI 커맨드 벡터 CMD[3:0]에 기록함으로써 비동기 전송 모드에서 빠져나올 수 있다. CC 상태 및 에러 벡터에서의 POCS[5:0]는, 이-레이 모듈이 ATM 모드에 있는 동안에, "00 1000"를 나타낸다.
ATM 모드에서, 플렉스레이 프레임의 전송은, 입력 버퍼 커맨트 마스크 레지스터에서의 비트 STXR이 '1'로 세트되어 있는 동안에, 각각의 메시지 버퍼의 번호 를 입력 버퍼 커맨드 요청 레지스터에 기록함으로써 트리거된다. 이 모드에서, 웨이크업, 기동 및 클럭 동기화는 무시된다.
루프 백 모드(Loop Back Mode)
CC가 CONFIG 상태에 있고 테스트 레지스터 1에서의 비트 WRTEN이 '1'로 설정되어 있는 동안, "1101"를 SUC 구성 레지스터 1 내의 CHI 커맨드 벡터(CHI Command Vector) CMD[3:0]에 기록(CHI 커맨드: LOOP_BACK)함으로써 입력된다. 임의의 다른 상태에서 호출되는 경우, 또는 비트 WRTEN이 세트되어 있지 않은 경우, CMD[3:0]는 "0000" = command_not_valid로 리셋된다.
SUC 구성 레지스터 1에서 "0001" (CHI 커맨드: CONFIG)를 CHI 커맨드 벡터 CMD[3:0]에 기록함으로써 루프 백 모드에서 빠져나올 수 있다. CC 상태 및 에러 벡터에서의 POCS[5:0]는, 이-레이 모듈이 루프 백 모드에 있는 동안에, "00 1001"를 나타낸다.
>>>루프 백 모드에 대한 설명<<<
4.3.2 테스트 레지스터 2 (TEST2)
테스트 레지스터 2는 이-레이 모듈의 임베디드 RAM 블록의 RAM 테스트에 필요한 모든 비트를 보유한다. 이 레지스터에 대한 기록 액세스는 테스트 레지스터 1에서의 비트 WRTEN이 세트되어 있을 때에만 가능하다.
RS[2:0] RAM 선택(RAM Select)
RAM 테스트 모드에서, RS[2:0]에 의해 선택된 RAM 블록은 모듈 주소 0x400 내지 7FF (1024 바이트 주소)에 매핑된다.
000 = 입력 버퍼 RAM 1(Input Buffer RAM 1)
001 = 입력 버퍼 RAM 2(Input Buffer RAM 2)
010 = 출력 버퍼 RAM 1(Output Buffer RAM 1)
011 = 출력 버퍼 RAM 2(Output Buffer RAM 2)
100 = 천이 버퍼 RAM A(Transient Buffer RAM A)
101 = 천이 버퍼 RAM B(Transient Buffer RAM B)
110 = 메시지 RAM(Message RAM)
111 = 미사용(unused)
SSEL[2:0] 세그먼트 선택(Segment Select)
전체 메시지 RAM(4608 바이트 주소)에의 액세스를 인에이블하기 위해, 메시지 RAM이 세그먼트화된다.
000 = RAM 바이트 000Oh 내지 03FFh에의 액세스 인에이블됨
001 = RAM 바이트 040Oh 내지 07FFh에의 액세스 인에이블됨
010 = RAM 바이트 0800h 내지 OBFFh에의 액세스 인에이블됨
011 = RAM 바이트 OCOOh 내지 OFFFh에의 액세스 인에이블됨
100 = RAM 바이트 100Oh 내지 11FFh에의 액세스 인에이블됨
101..111 = 미사용(unused)
WRPB 기록 패리티 비트(Write Parity Bit)
선택된 RAM 위치에 기록될 패리티 비트의 값
RDPB 판독 패리티 비트(Read Parity Bit)
선택된 RAM 위치로부터 판독된 패리티 비트의 값
4.3.2.1 RAM 테스트 모드(RAM Test Mode)
RAM 테스트 모드(TMC[2:0] = "001")에서, RS[2:0]을 각자의 값으로 프로그래밍함으로써 직접 RD/WR 액세스를 위해 7개의 RAM 블록 중 하나가 선택될 수 있다.
000: IBFl = 입력 버퍼 RAM(Input Buffer RAM)
001: IBF2 = 입력 버퍼 쉐도우 RAM(Input Buffer Shadow RAM)
010: OBFl = 출력 버퍼 RAM(Output Buffer RAM)
011: OBF2 = 출력 버퍼 쉐도우 RAM(Output Buffer Shadow RAM)
100: TBFl = 천이 버퍼 RAM A(Transient Buffer RAM A)
101: TBF2 = 천이 버퍼 RAM B(Transient Buffer RAM B)
110: MBF = 메시지 RAM(Message RAM)
외부 액세스를 위해, 선택된 RAM 블록이 주소 공간 40Oh 내지 7FF (1024 바이트 주소 또는 256 워드 주소)로 매핑된다.
메시지 RAM의 길이가 이용가능한 주소 공간을 초과하기 때문에, 메시지 RAM은 1024 바이트의 세그먼트들로 세그먼트화된다. 이들 세그먼트는 테스트 레지스터 2에서의 SSEL[2:0]를 프로그래밍함으로써 선택될 수 있다.
도 7: 이-레이 RAM 블록에의 테스트 모드 액세스
4.3.3
로크
레지스터(Lock Register)(
LCK
)
로크 레지스터는 기록 전용이다. 이 레지스터를 판독하면 0x0000를 반환한다.
CLK[7:0] 구성 로크 키(Configuration Lock Key)
SUC 구성 레지스터 1에서의 CMD[3:0]에 기록함으로써 CONFIG 상태로부터 빠져나오기 위해, 기록 동작에 바로 앞서 구성 로크 키에의 2번의 연속적인 기록 액세스가 선행되어야만 한다. 이 기록 시퀀스가 다른 장소에의 판독 액세스 또는 기록 액세스에 의해 방해되는 경우, CC는 CONFIG 상태에 있고 시퀀스가 반복되어야만 한다.
첫번째 기록: OxCE = Ob1lOO 1110
두번째 기록: 0x31 = ObOO11 0001
TMK[7:0] 테스트 모드 키(Test Mode Key)
테스트 레지스터에서의 비트 WRTEN를 '1'로 기록하기 위해, 기록 동작에 바 로 앞서 테스트 모드 키에의 2번의 연속적인 기록 액세스가 선행되어야만 한다. 이 기록 시퀀스가 다른 장소에의 판독 액세스 또는 기록 액세스에 의해 방해되는 경우, 비트 WRTEN은 '1'로 설정되지 않으며 시퀀스가 반복되어야만 한다.
첫번째 기록: 0x75 = ObOl1l 0101
두번째 기록: 0x8A = Ob1000 1010
4.4 인터럽트 레지스터(Interrupt Register)
4.4.1 에러 인터럽트 레지스터(Error Interrupt Register)(EIR)
CC가 열거된 에러 조건 중 하나를 검출할 때 플래그가 세트된다. 이들은, 호스트가 이들을 클리어할 때까지, 세트된 채로 있다. 대응하는 비트 위치에 '1'을 기록함으로써 플래그가 클리어된다. '0'을 기록하는 것은 플래그에 아무런 효과가 없다. 하드 리셋(hard reset)도 역시 레지스터를 클리어한다.
PEMC POC 에러 모드 변경됨(POC Error Mode Changed)
이 플래그는 CC 상태 및 에러 벡터 레지스터에서의 ERRM[1:0]에 의해 신호되는 에러 모드가 변경될 때마다 세트된다.
1 = 에러 모드 변경됨(Error mode has changed)
0 = 에러 모드 변경되지 않음(Error mode has not changed)
CNV 커맨드 유효하지 않음(Command Not Valid)
이 플래그는 SUC 구성 레지스터 1에서의 CHI 커맨드 벡터 CMD [3:0]가 잘못된 CHI 커맨드로 인해 "0000"으로 리셋되었음을 알려준다.
1 = 잘못된 CHI 커맨드 검출됨(Illegal CHI command detected)
0 = 잘못된 CHI 커맨드 검출되지 않음(No illegal CHI command detected)
NSF 동기 프레임 수신되지 않음(No Sync Frame Received)
이 플래그는 마지막 통신 사이클 동안에 동기 프레임이 수신되지 않았음을 알려준다. 통신 사이클당 동기 프레임의 최소 수는 2이다.
1 = 마지막 통신 사이클 동안 동기 프레임 수신되지 않음
0 = 마지막 통신 사이클 동안에 하나 이상의 동기 프레임 수신됨
MSF 동기 프레임의 최대 수가 초과됨(Maximum Number of Sync Frames Exceeded)
이 플래그는 수신된 동기 프레임의 수가 GTU 구성 레지스터 2에서의 SNM[3:0]에 의해 구성된 통신 사이클당 동기 프레임의 최대수를 초과함을 알려준다.
1 = 구성된 것보다 더 많은 동기 프레임이 수신됨
0 = 수신된 동기 프레임의 수가 구성된 범위 내에 있음
CCF 클럭 정정 실패(Clock Correction Failure)
이 플래그는 이하의 에러가 발생했을 때마다 사이클의 끝에서 세트된다.
레이트 정정 신호 누락(Missing Rate Correction Signal)
오프셋 정정 신호 누락(Missing Offset Correction Signal)
클럭 정정 실패 카운터가 15에서 멈춤(Clock Correction Failed Counter stopped at 15)
클럭 정정 한계에 도달함(Clock Correction Limit Reached)
클럭 정정 상태는 클럭 정정 상태 레지스터 1에서 모니터링된다. CCF의 리셋도 역시 클럭 정정 상태 레지스터 1에서의 CCLR 플래그를 클리어시킨다.
1 = 클럭 정정 실패(Clock correction failed)
0 = 클럭 정정 에러 없음(No clock correction error)
SCE 슬롯 구성 에러(Slot Configuration Error)
이 플래그는 슬롯 구성 에러를 호스트에 알려준다. 이 플래그는, 메시지 핸들러가 메시지 RAM으로부터 프레임 ID를 판독할 때 슬롯 구성 에러를 검출하는 경우, 메시지 핸들러에 의해 세트된다(섹션 5.11 메시지 처리를 참조).
1 = 슬롯 구성 에러 검출됨(Slot configuration error detected)
0 = 슬롯 구성 에러 검출되지 않음(No slot configuration error detected)
PERR 패리티 에러(Parity Error)
이 플래그는 패리티 에러를 호스트에 알려준다. 이 플래그는, CC가 RAM 블록들 중 하나로부터 판독하는 동안에 패리티 에러를 검출하는 경우, CC의 패리티 로직에 의해 세트된다(역시 4.8.3 메시지 핸들러 상태(MHDS) 레지스터를 참조할 것).
1 = 패리티 에러 검출됨(Parity error detected)
0 = 패리티 에러 검출되지 않음(No parity error detected)
채널 관련 에러 플래그:
BCEA 비트 코딩/CRC 에러 채널 A(Bit Coding/ CRC Error Channel A)
1 = 채널 A 상에서 비트 코딩, 헤더 CRC 또는 프레임 CRC 에러 검출됨(Bit coding, header CRC or frame CRC error detected on channel A)
0 = 비트 코딩, 헤더 CRC 또는 프레임 CRC 에러 검출되지 않음(no bit coding, header CRC or frame CRC error detected)
SMA 슬롯 불일치 채널 A(Slot Mismatch Channel A)
이 비트는, 성공적으로 수신된 메시지의 프레임 ID가 현재 타임 슬롯과 다른 경우, 세트된다. 이 에러는 통신 사이클의 양쪽 부분에서 검출된다. 통신 사이클의 정적 세그먼트에서, 타임 슬롯은 현재의 정적 슬롯에 있다. 통신 사이클의 동적 세그먼트에서, 타임 슬롯은 현재의 미니슬롯이다.
1 = 채널 A 상에서 슬롯 불일치 검출됨(Slot mismatch detected on channel A)
0 = 슬롯 불일치 검출되지 않음(No slot mismatch detected)
CCMA 사이클 카운터 불일치 채널 A(Cycle Counter Mismatch Channel A)
1 = 채널 A 상에서 사이클 카운터 불일치 검출됨(Cycle counter mismatch detected on channel A)
0 = 사이클 카운터 불일치 검출되지 않음(No cycle counter mismatch detected)
LMA 길이 불일치 채널 A(Length Mismatch Channel A)
1 = 채널 A 상에서 길이 불일치 검출됨(Length mismatch detected on channel A)
0 = 길이 불일치 검출되지 않음(No length mismatch detected)
USA 비수락 심볼 채널 A(Unaccepted Symbol Channel A)
1 = 채널 A 상에 비수락 심볼 있음(Unaccepted symbol on channel A)
0 = 채널 A 상에 비수락 심볼 없음(No unaccepted symbol on channel A)
SVA 침묵 위반 채널 A(Silence Violation Channel A)
이 비트는, 채널 A 상에서 침묵 위반이 발생했을 때, 세트된다.
1 = 채널 A 상에서 침묵 위반이 검출됨
0 = 채널 A 상에서 침묵 위반이 검출되지 않음
SMEA BG 스케쥴 모니터링 에러 채널 A(BG Schedule Monitoring Error Channel A)
이 플래그는 채널 A 상에서의 버스 가디언 스케쥴 모니터링 위반을 호스트에 알려준다.
1 = 채널 A 상에서 버스 가디언 스케쥴 모니터링 에러 검출됨
0 = 버스 가디언 스케쥴 모니터링 에러 검출되지 않음
WSCA 웨이크업 심볼 충돌 표시자 채널 A(Wakeup Symbol Collision Indicator Channel A)
이 플래그는 채널 A 상에서의 웨이크업 심볼을 호스트에 알려준다.
1 = 채널 A 상에서 웨이크업 심볼 충돌 검출됨
0 = 채널 A 상에서 웨이크업 심볼 충돌 검출되지 않음
BCEB 비트 코딩/CRC 에러 채널 B(Bit Coding/ CRC Error Channel B)
1 = 채널 B 상에서 비트 코딩, 헤더 CRC 또는 프레임 CRC 에러 검출됨
0 = 비트 코딩, 헤더 CRC 또는 프레임 CRC 에러 검출되지 않음
SMB 슬롯 불일치 채널 B(Slot Mismatch Channel B)
이 비트는, 성공적으로 수신된 메시지의 프레임 ID가 현재의 타임 슬롯과 다른 경우, 세트된다. 이 에러는 통신 사이클의 양쪽 부분에서 검출된다. 통신 사이클의 정적 세그먼트에서, 타임 슬롯은 현재의 정적 슬롯이다. 통신 사이클의 동적 세그먼트에서, 타임 슬롯은 현재의 미니슬롯이다.
1 = 채널 B 상에서 슬롯 불일치 검출됨
0 = 슬롯 불일치(slot mismatch) 검출되지 않음
CCMB 사이클 카운터 불일치 채널 B(Cycle Counter Mismatch Channel B)
1 = 채널 B 상에서 사이클 카운터 불일치 검출됨
0 = 사이클 카운터 불일치 검출되지 않음
LMB 길이 불일치 채널 B(Length Mismatch Channel B)
1 = 채널 B 상에서 길이 불일치 검출됨
0 = 길이 불일치 검출되지 않음
USB 비수락 심볼 채널 B(Unaccepted Symbol Channel B)
1 = 채널 B 상에 비수락 심볼 있음
0 = 채널 B 상에 비수락 심볼 없음
SVB 침묵 위반 채널 B(Silence Violation Channel B)
이 비트는, 채널 B 상에서 침묵 위반이 발생했을 때, 세트된다.
1 = 채널 B 상에서 침묵 위반이 검출됨
0 = 채널 B 상에서 침묵 위반이 검출되지 않음
SMEB BG 스케쥴 모니터링 에러 채널 B(BG Schedule Monitoring Error Channel B)
이 플래그는 채널 B 상에서의 버스 가디언 스케쥴 모니터링 위반을 호스트에 알려준다.
1 = 채널 B 상에서 버스 가디언 스케쥴 모니터링 에러가 검출됨
0 = 버스 가디언 스케쥴 모니터링 에러가 검출되지 않음
WSCB 웨이크업 심볼 충돌 표시자 채널 B(Wakeup Symbol Collision Indicator Channel B)
이 플래그는 채널 B 상에서의 웨이크업 심볼 충돌을 호스트에 알려준다.
1 = 채널 B 상에서 웨이크업 심볼 충돌이 검출됨
0 = 채널 B 상에서 웨이크업 심볼 충돌이 검출되지 않음
4.4.2 상태 인터럽트 레지스터(Status Interrupt Register)(SIR)
이들 플래그는 대응하는 이벤트가 발생할 때 CC에 의해 세트된다. 이들은, 호스트가 이들을 클리어할 때까지, 세트된 채로 있다. 인에이블되어 있는 경우, 그 비트들 중 하나가 세트되어 있는 동안 인터럽트가 보류된 상태로 있다. '1'을 대응하는 비트 위치에 기록함으로써 플래그가 클리어된다. '0'을 기록하는 것은 플래그에 아무런 영향도 주지 않는다. 하드 리셋도 역시 레지스터를 클리어시킨다.
WST 웨이크업 상태(Wakeup Status)
이 플래그는 CC 상태 및 에러 벡터 레지스터에서의 웨이크업 상태 벡터 WSV[2:0]가 변경될 때마다 세트된다.
1 = 웨이크업 상태 변경됨
0 = 웨이크업 상태 변경되지 않음
CAS 충돌 회피 심볼(Collision Avoidance Symbol)
이 플래그는 CAS가 수신될 때 CC에 의해 세트된다.
1 = CAS 심볼 수신됨
0 = CAS 심볼 수신되지 않음
CYCS 사이클 시작 인터럽트(Cycle Start Interrupt)
이 플래그는 통신 사이클이 시작할 때 CC에 의해 세트된다.
1 = 통신 사이클 시작됨
0 = 통신 사이클 시작되지 않음
TXI 전송 인터럽트(Transmit Interrupt)
이 플래그는, 성공적인 프레임 전송 이후에, CC에 의해 세트된다.
1 = 적어도 하나의 프레임이 성공적으로 전송되었음
0 = 프레임이 전송되지 않음
RXI 수신 인터럽트(Receive Interrupt)
이 플래그는, 프레임이 수신되어 전용 수신 버퍼 중 하나에 저장될 때, CC에 의해 세트된다.
1 = 적어도 하나의 수신 버퍼가 채워져 있음
0 = 모든 수신 버퍼가 비어 있음
RFNE 수신 FIFO 비어있지 않음(Receive FIFO Not Empty)
이 플래그는 프레임이 수신되어 FIFO 버퍼에 저장되어 있을 때 CC에 의해 세트된다.
1 = 수신 FIFO가 비어 있지 않음
0 = 수신 FIFO가 비어 있음
RFO 수신 FIFO 오버런(Receive FIFO Overrun)
이 플래그는, 수신 FIFO 오버런이 검출되었을 때, CC에 의해 세트된다.
1 = 수신 FIFO 오버런이 검출됨
0 = 수신 FIFO 오버런이 검출되지 않음
NMVC 네트워크 관리 벡터 변경됨(Network Management Vector Changed)
이 인터럽트 플래그는 눈에 보이는 네트워크 관리 벡터에서의 변화를 호스트에 알려준다.
1 = 네트워크 관리 벡터 변경됨
0 = 네트워크 관리 벡터 변경없음
TIO 타이머 인터럽트 0(Timer Interrupt 0)
이 플래그는, 타이머 인터럽트 0 구성 레지스터에 프로그램되어 있는 조건이 충족될 때마다, 세트된다. 타이머 인터럽트 0는 또한 핀 eray_tint0 상으로 신호된다.
1 = 타이머 인터럽트 0 발생됨
0 = 타이머 인터럽트 0 발생하지 않음
TIl 타이머 인터럽트 1(Timer Interrupt 1)
이 플래그는, 타이머 인터럽트 1 구성 레지스터에 프로그램된 조건이 충족될 때마다, 세트된다. 타이머 인터럽트 1은 또한 핀 eray_tint1 상으로 신호된다.
1 = 타이머 인터럽트 1 발생함
0 = 타이머 인터럽트 1 발생하지 않음
TIBC 입력 버퍼 전송 완료됨(Transfer Input Buffer Completed)
이 플래그는, 입력 버퍼로부터 메시지 RAM으로의 데이터 전송이 완료되고 입력 버퍼 커맨드 요청 레지스터에서의 비트 IBSYS가 메시지 핸들러에 의해 리셋될 때마다, 세트된다.
1 = 입력 버퍼와 메시지 RAM 간의 전송이 완료됨
0 = 비트가 리셋된 이래로 전송이 완료되지 않음
TOBC 출력 버퍼 전송 완료됨(Transfer Output Buffer Completed)
이 플래그는, 메시지 RAM으로부터 출력 버퍼로의 데이터 전송이 완료되고 출력 버퍼 커맨드 요청 레지스터에서의 비트 OBSYS가 메시지 핸들러에 의해 리셋될 때마다, 세트된다.
1 = 메시지 RAM과 출력 버퍼 간의 전송이 완료됨
0 = 비트가 리셋된 이래로 전송이 완료되지 않음
SWE 스톱 워치 이벤트(Stop Watch Event)
스톱 워치 레지스터에 위치한 각자의 제어 비트에 의해 인에이블되어 있는 경우, 핀 eray_stpwt 상의 검출된 엣지는 스톱 워치 이벤트를 발생한다.
1 = 스톱 워치 이벤트 발생됨
0 = 스톱 워치 이벤트 없음
채널 관련 상태 플래그:
WUSA 웨이크업 심볼 채널 A(Wakeup Symbol Channel A)
이 플래그는, 웨이크업 심볼이 채널 A을 통해 수신되었을 때, 세트된다.
1 = 채널 A 상에 웨이크업 심볼 있음
0 = 채널 A 상에 웨이크업 심볼 없음
MTSA 채널 A 상으로 MTS 수신됨(MTS Received on Channel A)(vSS!ValidMTSA)
마지막 심볼 창 동안에 채널 A 상으로 수신되는 매체 접근 테스트 심볼. 심볼 창의 끝에서 각각의 채널에 대해 CC에 의해 갱신됨.
1 = MTS 심볼이 채널 A 상으로 수신됨
0 = MTS 심볼이 수신되지 않음
WUSB 웨이크업 심볼 채널 B(Wakeup Symbol Channel B)
이 플래그는, 웨이크업 심볼이 채널 B를 통해 수신되었을 때, 세트된다.
1 = 채널 B 상에 웨이크업 심볼 있음
O = 채널 B 상에 웨이크업 심볼 없음
MTSB 채널 B 상으로 MTS 수신됨(MTS Received on Channel B)(vSS!ValidMTSB)
마지막 심볼 창 동안에 채널 B를 통해 수신된 매체 접근 테스트 심볼. 심볼 창의 끝에서 각각의 채널에 대해 CC에 의해 갱신됨
1 = 채널 B 상으로 MTS 심볼 수신됨
0 = MTS 심볼 수신되지 않음
4.4.3 에러 인터럽트 라인 선택(Error Interrupt Line Select)(
EILS
)
에러 인터럽트 라인 선택 레지스터에서의 설정은 특정의 에러 인터럽트 플래그에 의해 발생된 인터럽트를 2개의 모듈 인터럽트 라인(eray_int0 또는 eray_intl) 중 하나에 할당한다.
PEMCL POC 에러 모드 변경 인터럽트 라인(POC Error Mode Changed Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
CNVL 커맨드 유효하지 않음 인터럽트 라인(Command Not Valid Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
NSFL 동기 프레임 수신되지 않음 인터럽트 라인(No Sync Frame Received Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
MSFL 동기 프레임의 최대수가 초과됨 인터럽트 라인(Maximum Number of Sync Frames Exceeded Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
CCFL 클럭 정정 실패 인터럽트 라인(Clock Correction Failure Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SCEL 슬롯 구성 에러 인터럽트 라인(Slot Configuration Error Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
PERRL 패리티 에러 인터럽트 라인(Parity Error Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
BCEAL 비트 코딩/CRC 채널 A 인터럽트 라인(Bit Coding/CRC Error Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SMAL 슬롯 불일치 채널 A 인터럽트 라인(Slot Mismatch Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
CCMAL 사이클 카운터 불일치 채널 A 인터럽트 라인(Cycle Counter Mismatch Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
LMAL 길이 불일치 채널 A 인터럽트 라인(Length Mismatch Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
USAL 비수락 심볼 채널 A 인터럽트 라인(Unaccepted Symbol Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SVAL 침묵 위반 채널 A 인터럽트 라인(Silence Violation Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SMEAL BG 스케쥴 모니터링 에러 채널 A 인터럽트 라인(BG Schedule Monitoring Error Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
WSCAL 웨이크업 심볼 충돌 표시자 채널 A 인터럽트 라인(Wakeup Symbol Collision Indicator Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
BCEBL 비트 코딩/CRC 에러 채널 B 인터럽트 라인(Bit Coding/CRC Error Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SMBL 슬롯 불일치 채널 B 인터럽트 라인(Slot Mismatch Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
CCMBL 사이클 카운터 불일치 채널 B 인터럽트 라인(Cycle Counter Mismatch Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
LMBL 길이 불일치 채널 B 인터럽트 라인(Length Mismatch Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
USBL 비수락 심볼 채널 B 인터럽트 라인(Unaccepted Symbol Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SVBL 침묵 위반 채널 B 인터럽트 라인(Silence Violation Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SMEBL BG 스케쥴 모니터링 에러 채널 B 인터럽트 라인(BG Schedule Monitoring Error Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
WSCBL 웨이크업 심볼 충돌 표시자 채널 B 인터럽트 라인(Wakeup Symbol Collision Indicator Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
4.4.4 상태 인터럽트 라인 선택(Status interrupt Line Select)(
SILS
)
상태 인터럽트 라인 선택 레지스터에서의 설정은 특정의 상태 인터럽트 플래그에 의해 발생된 인터럽트를 2개의 모듈 인터럽트 라인(eray_int0 또는 eray_intl) 중 하나에 할당한다.
WSTL 웨이크업 상태 인터럽트 라인(Wakeup Status Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
CASL 충돌 회피 심볼 인터럽트 라인(Collision Avoidance Symbol Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
CYCL 사이클 시작 인터럽트 라인(Cycle Start Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
TXIL 전송 인터럽트 라인(Transmit Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
RXIL 수신 인터럽트 라인(Receive Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
RFNEL 수신 FIFO 비어있지 않음 인터럽트 라인(Receive FIFO Not Empty Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
RFOL 수신 FIFO 오버런 인터럽트 라인(Receive FIFO Overrun Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
NMVCL 네트워크 관리 벡터 변경됨 인터럽트 라인(Network Management Vector Changed Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
TIOL 타이머 인터럽트 0 라인(Timer Interrupt 0 Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
TIlL 타이머 인터럽트 1 라인(Timer Interrupt 1 Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
TIBCL 입력 버퍼 전송 완료됨 인터럽트 라인(Transfer Input Buffer Completed Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
TOBCL 출력 버퍼 전송 완료됨 인터럽트 라인(Transfer Output Buffer Completed Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
SWEL 스톱 워치 이벤트 인터럽트 라인(Stop Watch Event Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
WUSAL 웨이크업 심볼 채널 A 인터럽트 라인(Wakeup Symbol Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
MTSAL 매체 접근 테스트 심볼 채널 A 인터럽트 라인(Media Access Test Symbol Channel A Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
WUSBL 웨이크업 심볼 채널 B 인터럽트 라인(Wakeup Symbol Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
MTSBL 매체 접근 테스트 심볼 채널 B 인터럽트 라인(Media Access Test Symbol Channel B Interrupt Line)
1 = 인터럽트가 인터럽트 라인 eray_intl에 할당됨
0 = 인터럽트가 인터럽트 라인 eray_int0에 할당됨
4.4.5 에러 인터럽트
인에이블
세트/리셋(Error interrupt Enable Set/Reset)(EIES,
EIER
)
에러 인터럽트 인에이블 레지스터에서의 설정은 에러 인터럽트 레지스터에서의 어느 상태 변화가 인터럽트를 가져오는지를 결정한다. 인에이블 비트는, 주소 0x0030에 기록함으로써 세트되고, 주소 0x0034에 기록함으로써 리셋된다. '1'을 기록하는 것은 특정의 인에이블 비트를 세트/리셋시키고, '0'은 아무런 효과가 없다.
PEMCE POC 에러 모드 변경됨 인터럽트 인에이블(POC Error Mode Changed Interrupt Enable)
1 = 프로토콜 에러 모드 변경됨 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
CNVE 커맨드 유효하지 않음 인터럽트 인에이블(Command Not Valid Interrupt Enable)
1 = 커맨드 유효하지 않음 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
NSFE 동기 프레임 수신되지 않음 인터럽트 인에이블(No Sync Frame Received Interrupt Enable)
1 = 동기 프레임 수신되지 않음 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
MSFE 동기 프레임의 최대수 초과됨 인터럽트 인에이블(Maximum Number of Sync Frames Exceeded Interrupt Enable)
1 = 동기 프레임의 최대수 초과됨 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
CCFE 클럭 정정 실패 인터럽트 인에이블(Clock Correction Failure Interrupt Enable)
1 = 클럭 정정 실패 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SCEE 슬롯 구성 에러 인터럽트 인에이블(Slot Configuration Error Interrupt Enable)
1 = 슬롯 구성 에러 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
PERRE 패리티 에러 인터럽트 인에이블(Parity Error Interrupt Enable)
1 = 패티리 에러 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
BCEAE 비트 코딩/CRC 에러 채널 A 인터럽트 인에이블(Bit Coding/CRC Error Channel A Interrupt Enable)
1 = 비트 코딩/CRC 에러 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SMAE 슬롯 불일치 채널 A 인터럽트 인에이블(Slot Mismatch Channel A Interrupt Enable)
1 = 슬롯 불일치 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
CCMAE 사이클 카운터 불일치 채널 A 인터럽트 인에이블(Cycle Counter Mismatch Channel A Interrupt Enable)
1 = 사이클 카운터 불일치 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
LMAE 길이 불일치 채널 A 인터럽트 인에이블(Length Mismatch Channel A Interrupt Enable)
1 = 길이 불일치 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
USAE 비수락 심볼 채널 A 인터럽트 인에이블(Unaccepted Symbol Channel A Interrupt Enable)
1 = 비수락 심볼 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SVAE 침묵 위반 채널 A 인터럽트 인에이블(Silence Violation Channel A Interrupt Enable)
1 = 침묵 위반 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SMEAE BG 스케쥴 모니터링 에러 채널 A 인터럽트 인에이블(BG Schedule Monitoring Error Channel A Interrupt Enable)
1 = BG 스케쥴 모니터링 에러 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
WSCAE 웨이크업 충돌 표시자 채널 A 인터럽트 인에이블(Wakeup Collision Indicator Channel A Interrupt Enable)
1 = 웨이크업 충돌 표시자 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
BCEBE 비트 코딩/CRC 채널 B 인터럽트 인에이블(Bit Coding/CRC Error Channel B Interrupt Enable)
1 = 비트 코딩/CRC 에러 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SMBE 슬롯 불일치 채널 B 인터럽트 인에이블(Slot Mismatch Channel B Interrupt Enable)
1 = 슬롯 불일치 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
CCMBE 사이클 카운터 불일치 채널 B 인터럽트 인에이블(Cycle Counter Mismatch Channel B Interrupt Enable)
1 = 사이클 카운터 불일치 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
LMBE 길이 불일치 채널 B 인터럽트 인에이블(Length Mismatch Channel B Interrupt Enable)
1 = 길이 불일치 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
USBE 비수락 심볼 채널 B 인터럽트 인에이블(Unaccepted Symbol Channel B Interrupt Enable)
1 = 비수락 심볼 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SVBE 침묵 위반 채널 B 인터럽트 인에이블(Silence Violation Channel B Interrupt Enable)
1 = 침묵 위반 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SMEAE BG 스케쥴 모니터링 에러 채널 B 인터럽트 인에이블(BG Schedule Monitoring Error Channel B Interrupt Enable)
1 = BG 스케쥴 모니터링 에러 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
WSCAE 웨이크업 충돌 표시자 채널 B 인터럽트 인에이블(Wakeup Collision Indicator Channel B Interrupt Enable)
1 = 웨이크업 충돌 표시자 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
4.4.6 상태 인터럽트 인에이블 세트/리셋(Status Interrupt Enable Set/Reset)(SIES, SIER)
상태 인터럽트 인에이블 레지스터에서의 이 설정은 상태 인터럽트 레지스터에서의 어느 상태 변화가 인터럽트를 가져오는지를 결정한다. 인에이블 비트는 주소 0x0038에 기록함으로써 세트되고 주소 0x003C에 기록함으로써 리셋된다. '1'을 기록하는 것은 특정의 인에이블 비트를 세트/리셋시키고, '0'은 아무런 효과가 없다.
WSTE 웨이크업 상태 인터럽트 인에이블(Wakeup Status Interrupt Enable)
1 = 웨이크업 상태 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
CASE 충돌 회피 심볼 인터럽트 인에이블(Collision Avoidance Symbol Interrupt Enable)
1 = 충돌 회피 심볼 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
CYCSE 사이클 시작 인터럽트 인에이블(Cycle Start Interrupt Enable)
1 = 사이클 시작 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
TXIE 전송 인터럽트 인에이블(Transmit Interrupt Enable)
1 = 전송 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
RXIE 수신 인터럽트 인에이블(Receive Interrupt Enable)
1 = 수신 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
RFNEE 수신 FIFO 비어있지 않음 인터럽트 인에이블(Receive FIFO Not Empty Interrupt Enable)
1 = 수신 FIFO 비어있지 않음 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
RFOE 수신 FIFO 오버런 인터럽트 인에이블(Receive FIFO Overrun Interrupt Enable)
1 = 수신 FIFO 오버런 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
NMVCE 네트워크 관리 벡터 변화됨 인터럽트 인에이블(Network Management Vector Changed Interrupt Enable)
1 = 네트워크 관리 벡터 변화됨 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
TIOE 타이머 인터럽트 0 인에이블(Timer Interrupt 0 Enable)
1 = 타이머 인터럽트 0 인에이블됨
0 = 인터럽트 디스에이블됨
TH1E 타이머 인터럽트 1 인에이블(Timer Interrupt 1 Enable)
1 = 타이머 인터럽트 1 인에이블됨
0 = 인터럽트 디스에이블됨
TIBCE 입력 버퍼 전송 완료됨 인터럽트 인에이블(Transfer Input Buffer Completed Interrupt Enable)
1 = 입력 버퍼 전송 완료됨 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
TOBCE 출력 버퍼 전송 완료됨 인터럽트 인에이블(Transfer Output Buffer Completed Interrupt Enable)
1 = 출력 버퍼 전송 완료됨 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
SWEE 스톱 워치 이벤트 인터럽트 인에이블(Stop Watch Event Interrupt Enable)
1 = 스톱 워치 이벤트 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
WUSAE 웨이크업 심볼 채널 A 인터럽트 인에이블(Wakeup Symbol Channel A Interrupt Enable)
1 = 웨이크업 심볼 채널 A 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
MTSAE 채널 A를 통해 MTS 수신됨 인터럽트 인에이블(MTS Received on Channel A Interrupt Enable)
1 = 채널 A를 통해 MTS 수신됨 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
WUSAE 웨이크업 심볼 채널 B 인터럽트 인에이블(Wakeup Symbol Channel B Interrupt Enable)
1 = 웨이크업 심볼 채널 B 인터럽트 인에이블됨
0 = 인터럽트 디스에이블됨
MTSBE 채널 B를 통해 MTS 수신됨 인터럽트 인에이블(MTS Received on Channel B Interrupt Enable)
1 = 채널 B를 통해 MTS 수신됨 인터럽트 인에이블됨
O = 인터럽트 디스에이블됨
4.4.7 인터럽트 라인 인에이블(Interrupt Line Enable)(ILE)
호스트 CPU에의 2개의 인터럽트 라인(eray_int0, eray_intl) 각각은 EINTO 및 EINTl를 프로그램함으로써 개별적으로 인에이블/디스에이블될 수 있다.
EINTO 인에이블 인터럽트 라인 0(Enable Interrupt Line 0)
1 = 인터럽트 라인 eray_int0 인에이블됨
0 = 인터럽트 라인 eray_int0 디스에이블됨
EINT1 인에이블 인터럽트 라인 1(Enable Interrupt Line 1)
1 = 인터럽트 라인 eray_int1 인에이블됨
0 = 인터럽트 라인 eray_int1 디스에이블됨
4.4.8 타이머 0 구성(Timer 0 Configuration)(
TOC
)
절대 타이머(absolute timer). 타이머 0 인터럽트가 발생하는 시점을 사이클 카운터 및 매크로틱의 관점에서 규정한다. 타이머 0 인터럽트가 어써트될 때, 출력 신호 eray_tint0가 한 매크로틱의 지속 기간 동안 '1'로 세트된다.
타이머 0는, POC가 NORMAL_ACTTVE 상태에 또는 NORMAL_PASSIVE 상태에 있는 한, 활성화될 수 있다. 타이머 0는, NORMAL_ACTTVE 상태 또는 NORMAL_PASSIVE 상태 간의 천이를 제외하고는 이들 상태에서 빠져 나올 때, 비활성화된다.
타이머의 재구성 이전에, 타이머는 먼저 비트 TORC를 '0'으로 기록함으로써정지(halt)되어야만 한다.
TORC 타이머 0 동작 제어(Timer 0 Run Control)
1 = 타이머 0 동작중
0 = 타이머 0 정지됨
TOMS 타이머 0 모드 선택(Timer 0 Mode Select)
1 = 연속 모드(Continuous mode)
0 = 단일-샷 모드(Single-shot mode)
T0CC[6:0] 타이머 0 사이클 코드(Timer 0 Cycle Code)
이 7-비트 타이머 0 사이클은 타이머 0 인터럽트의 발생에 사용되는 사이클 세트를 결정한다. 사이클 코드의 구성의 상세에 대해서는, 5.7.4 사이클 카운터 필터링을 참조하기 바란다.
T0MO[13:0] 타이머 0 매크로틱 오프셋(Timer 0 Macrotick Offset)
인터럽트가 일어나게 될 사이클의 시작으로부터의 매크로틱 오프셋을 구성한다. 타이머 0 인터럽트는 사이클 세트 내의 각각의 사이클에 대해 이 오프셋에서 일어난다.
4.4.9 타이머 1 구성(Timer 1 Configuration)(
T1C
)
상대 타이머(relative timer). 지정된 수의 매크로틱이 만료된 후에, 1 매트로틱의 지속 기간 동안에 출력 신호 eray_tintl을 '1'로 설정함으로써 타이머 1 인터럽트가 어써트된다.
타이머 1은, POC가 NORMAL_ACTIVE 상태에 또는 NORMAL_PASSIVE 상태에 있는 한, 활성화될 수 있다. 타이머 1은 NORMAL_ACTIVE 상태 또는 NORMAL_PASSIVE 상태 간의 천이를 제외하고 이들 상태로부터 빠져 나올 때 비활성화된다.
타이머의 재구성 이전에, 타이머는 먼저 비트 TlRC를 '0'으로 기록함으로써 정지되어야만 한다.
TlRC 타이머 1 동작 제어(Timer 1 Run Control)
1 = 타이머 1 동작중(Timer 1 running)
0 = 타이머 1 정지됨(Timer 1 halted)
TIMS 타이머 1 모드 선택(Timer 1 Mode Select)
1 = 연속 모드(Continuous mode)
0 = 단일-샷 모드(Single-shot mode)
T1MC[13:O] 타이머 1 매크로틱 카운트(Timer 1 Macrotick Count)
구성된 매크로틱 카운트에 도달될 때, 타이머 1 인터럽트가 발생된다. 유효한 값은 2 내지 16,383 MT이다.
4.4.10
스톱 워치
레지스터(
Stop
Watch
Register
)(
STPW
)
스톱 워치 이벤트는 핀 eray_stpwt 상에서의 상승 또는 하강 엣지에 의해 또는 호스트에서 비트 SWT를 '1'로 기록함으로써 발생될 수 있다. 스톱 워치 이벤트에서, 실제의 사이클 카운터 및 매크로틱 값은 스톱 워치 레지스터에 저장되고 호스트에 의해 판독될 수 있다.
ESW 스톱 워치 인에이블(Enable Stop Watch)
단일-샷 모드에서, 이 비트는 스톱 워치 이벤트가 발생한 후에 리셋된다.
1 = 스톱 워치 인에이블됨
0 = 스톱 워치 디스에이블됨
SWMS 스톱 워치 모드 선택(Stop Watch Mode Select)
1 = 연속 모드(Continuous mode)
0 = 단일-샷 모드(Single-shot mode)
EDGE 스톱 워치 트리거 엣지 선택(Stop Watch Trigger Edge Select)
1 = 상승 엣지
0 = 하강 엣지
SWT 소프트웨어 트리거(Software Trigger)
호스트가 이 비트를 '1'로 기록할 때, 스톱 워치 이벤트가 발생된다. 그 다음 스톱 워치 이벤트를 발생하기 위해, 호스트는 이 비트를 다시 '1'로 기록해야만 한다. 이 비트는, ESW = '0'인 동안에만, 기록가능하다.
1 = 스톱 워치 이벤트 발생됨
0 = 스톱 워치 이벤트 발생되지 않음
SCCV[S:0] 정지된 사이클 카운터 값(Stopped Cycle Counter Value)
스톱 워치 이벤트가 발생했을 때의 사이클 카운터의 상태. 유효한 값은 0 내지 63이다.
SMTV[13:0] 정지된 매크로틱 값(Stopped Macrotick Value)
스톱 워치 이벤트가 발생했을 때의 매크로틱 카운터의 상태. 유효한 값은 0 내지 16,000이다.
유의할 점: 비트 ESW 및 SWT는 동시에 '1'로 설정될 수 없다. 이 경우에, 기록 액세스가 무시되고, 양 비트는 그의 이전의 값을 유지한다.
4.5 CC 제어 레지스터(CC Control Register)
이 섹션은 호스트가 CC의 동작을 제어할 수 있도록 하기 위해 CC에 의해 제공되는 레지스터를 열거하고 있다. CC가 CONFIG 상태에 있지 않은 경우, 구성 데이터의 대부분은 호스트에 의해 변경될 수 없다. 하드웨어 리셋으로부터 CONFIG 상태에 들어갈 때 또는 HALT 상태로부터 CONFIG 상태에 들어갈 때, 데이터가 리셋된다. 호스트가 CC가 CONFIG 상태로부터 빠져나오기를 원하는 경우, 호스트는 섹션 4.3.3 로크 레지스터(LCK)에 기술된 바와 같이 진행해야만 한다.
별표로 표시된 모든 비트는 CONFIG 상태에서만 갱신될 수 있다!
4.5.1
SUC
구성 레지스터 1(
SUC
Configuration Register 1)(
SUCC1
)
CMD [3:0] CHI 커맨드 벡터(CHI Command Vector)
호스트는 임의의 CHI 커맨드를 임의의 시간에 기록할 수 있지만, 어떤 커맨드는 어떤 상태에서만 인에이블된다. 커맨드가 인에이블되지 않은 경우, 그 커맨드는 실행되지 않으며, CHI 커맨드 벡터 CMD[3:0]는 "0000" = command_not_valid로 리셋된다. 예비된 CHI 커맨드는 하드웨어 테스트 기능에 속하며 통상 모드에서는 인에이블되지 않는다.
0000 = command_not_valid
0001 = CONFIG
0010 = READY
0011 = WAKEUP
0100 = RUN
0101 = ALL_SLOTS
0110 = HALT
0111 = FREEZE
1000 = SEND_MTS
1001 = ALLOW_COLDSTART
1010 = RESET_STATUS_INDICATORS
1011 = MONITOR_MODE
1100 = 예비됨
1101 = 예비됨
1110 = 예비됨
1111 = 예비됨
CHI 커맨드는 이하의 동작을 트리거한다.
command_not_valid
어떤 상태에서도 동작하지 않음. 잘못된 커맨드로 인해 CMD[3:0]가 "0000"으로 리셋될 때, 에러 인터럽트 레지스터에서의 비트 CNV는 세트되고, 인에이블되어 있는 경우, 인터럽트가 발생된다.
CONFIG
상태 MONITOR 또는 READY에서 호출될 때 상태 CONFIG로 간다. HALT 상태에서 호출되는 경우, CC 상태 및 에러 벡터 레지스터에서의 상태 플래그 DCREQ를 리셋시키기 위해서는 이 커맨드에 앞서 커맨드 RESET_STATUS_INDICATORS가 선행되어야만 하며, 그렇지 않은 경우 상태 CMD[3:0]가 "0000" = command_not_valid로 리셋된다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid로 리셋된다.
READY
상태 CONFIG, NORMAL_ACTIVE, NORMAL_PASSIVE, STARTUP, 또는 WAKEUP 상태에서 호출되는 경우 상태 READY로 간다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid로 리셋된다.
WAKEUP
상태 READY에서 호출되는 경우 상태 WAKEYP으로 간다. 비트 SWU가 '1'로 설 정되면, CC는 WAKEUP_SEND 상태로 천이하고 웨이크업 패턴을 전송한다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid로 리셋된다.
RUN
상태 READY에서 호출되는 경우 상태 STARTUP으로 간다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid으로 리셋된다.
ALL_SLOTS
상태 NORMAL_ACTIVE 또는 NORMAL_PASSIVE에서 호출되는 경우 그 다음 end_of_cycle에서 성공적인 시작/통합 이후에 단일 슬롯 모드에서 빠져나온다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid으로 리셋된다.
HALT
상태 NORMAL_ACTIVE 또는 NORMAL_PASSIVE에서 호출되는 경우 그 다음 end_of_cycle에서 상태 HALT로 간다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid으로 리셋된다.
FREEZE
상태 HALT로 가고 CC 상태 및 에러 벡터 레지스터에서의 프리즈 상태 표시자(Freeze Status Indicator) FSI 비트를 세트시킨다.
SEND_MTS
이하의 사이클의 심볼 창 동안에 MTSA, MTSB에 의해 구성된 채널 상으로 단일의 MTS 심볼을 전송한다.
ALLOW_COLDSTART
노드의 콜드스타트(coldstart)를 인에이블시키기 위해 CSI비트를 리셋시킨다.
RESET_STATUS_INDICATORS
CC 상태 및 에러 벡터 레지스터에 위치하고 있는 상태 플래그 CSNI, CSAI, SMRI, 및 DCREQ를 리셋시킨다.
MONITOR_MODE
상태 CONFIG에서 호출되는 경우 상태 MONITOR_MODE로 간다. 이 상태에서, CC는 플렉스레이 프레임 및 CAS/MTS 심볼을 수신할 수 있다. 이는 또한 코딩 에러도 검출할 수 있다. 수신된 프레임의 시간 무결성이 검사되지 않는다. 플렉스레이 네트워크의 기동(Startup)이 실패하는 경우 디버깅을 위해 이 상태가 사용될 수 있다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]은 "0000" = command_not_valid으로 리셋된다.
유의할 점:
MONITOR_MODE 상태에서, 유효 우선 선택 메카니즘(pick first valid mechanism)이 디스에이블된다. 이것은 수신 메시지 버퍼가 단지 하나의 채널을 통해 수신하도록 구성될 수 있음을 의미한다.
CC가 이미 요청된 상태에 있는 동안에 상태 변경 커맨드를 적용할 때, 이것은 CMD[3:0]를 "command_not_valid"로 리셋하지 않는다.
TXST 키 슬롯으로 시작 프레임 전송(Transmit Startup Frame in Key Slot)(pKeySlotUsedForStartup)
키 슬롯이 시작 프레임을 전송하는 데 사용되는지 여부를 정의한다.
1 = 키 슬롯이 기동 프레임을 전송하는 데 사용됨
0 = 키 슬롯으로 기동 프레임이 전송되지 않음
TXSY 키 슬롯으로 동기 프레임 전송(Transmit Sync Frame in Key Slot)(pKeySlotUsedForSync)
키 슬롯이 동기 프레임을 전송하는 데 사용되는지 여부를 정의한다.
1 = 키 슬롯이 동기 프레임을 전송하는 데 사용됨
0 = 키 슬롯으로 동기 프레임이 전송되지 않음
CSI 콜드 스타트 금지(Cold Start Inhibit)(vColdStartlnhibit)
이 비트는 콜드스타트 노드로 하여금 콜드스타트를 개시하지 못하게 한다. 비트 CSI는 CONFIG 상태에서만 세트될 수 있다. CSI는 임의의 시간에 "1001"를 CMD[3:0]에 기록함으로써 리셋될 수 있다.
1 = 노드의 콜드 스타트 디스에이블됨
0 = 노드의 콜드 스타트 인에이블됨
CSA[4:0] 콜드 스타트 시도(Cold Start Attempts)(gColdStartAttempts)
다른 노드로부터 어떤 유효한 응답도 수신하지 않고 콜드 스타트 노드가 네트워크를 기동시키려고 시도하도록 허용되어 있는 시도의 최대 수를 구성한다. 이는 CONFIG 상태에서만 수정될 수 있다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 2 내지 31이다.
PTA[4:0] 수동에서 능동으로(Passive to Active)(pAllowPassiveToActive)
CC가 NORMAL_PASSIVE에서 NORMAL_ACTIVE 상태로 천이할 수 있기 이전에 유효한 클럭 정정 항을 가져야만 하는 연속한 짝수/홀수 사이클 쌍의 수를 정의한다. "00000"으로 설정되어 있는 경우, CC는 NORMAL_PASSTVE로부터 NORMAL_ACTIVE 상태로 천이할 수 없다. 이는 CONFIG 상태에서만 수정될 수 있다. 유효한 값은 0개 내지 31개 짝수/홀수 사이클 쌍이다.
WUCS 웨이크업 채널 선택(Wakeup Channel Select)(pWakeupChannel)
이 비트를 사용하여, 호스트는 CC가 웨이크업 패턴을 전송하는 채널을 선택한다. CC는, CONFIG 상태에 있지 않은 경우, 이 비트의 상태를 변경하려는 어떤 시도도 무시한다.
1 = 채널 B를 통해 웨이크업 패턴을 전송함
0 = 채널 A를 통해 웨이크업 패턴을 전송함
TSM 전송 슬롯 모드(Transmission Slot Mode)(pSingleSlotEnabled)
기동의 완료 후에 선택된 전송 슬롯 모드에 들어간다. SINGLE 슬롯 모드에서, CC는 사전 구성된 키 슬롯으로만 전송을 할 수 있다. 이 슬롯은 MHD 구성 레지스터 2에 위치하는 동기 프레임 ID SFID[10:0]에 의해 정의된다. ALL 슬롯 모드에서, CC는 모든 슬롯으로 전송을 할 수 있다. 이 비트는 CONFIG 상태에서만 세트될 수 있다. 이 비트는 CMD[3:0] = "0101"를 기록함으로써 호스트가 성공적으로 ALL_SLOTS 커맨드를 적용했을 때 리셋된다.
1 = SINGLE 슬롯 모드
0 = ALL 슬롯 모드
HCSE 클럭 동기 에러로 인한 정지(Halt due to Clock Sync Error)(pAllowHaltDueToClock)
클럭 동기화 에러에 대한 CC의 반응을 제어한다. 이 비트는 CONFIG 상태에서만 수정될 수 있다.
1 = CC가 HALT 상태에 들어감
0 = CC가 NORMAL_PASSIVE 상태에 들어가거나 그 상태에 있음
CF 사이클 필터링(Cycle Filtering)
이 비트가 호스트에 의해 세트되어 있을 때, CC는 모든 전송, 수신 및 FIFO 버퍼에 대해 구성된 사이클 카운터 필터링을 적용한다. CONFIG 상태에 있지 않은 경우, CC는 이 비트의 상태를 변경하려는 어떤 시도도 무시한다. 이는 클러스터의 모든 노드에서 동일하게 구성되어야만 한다.
1 = 사이클 카운터 필터링 인에이블됨
0 = 사이클 카운터 필터링 디스에이블됨
MTSA MTS 전송을 위해 채널 A를 선택함(Select Channel A for MTS Transmission)
이 비트는 요청되는 경우 "1010"을 CMD[3:0]에 기록함으로써 MTS 심볼 전송을 위해 채널 A를 선택한다. 이 플래그는 디폴트로 리셋되며, CONFIG 상태에서만 수정될 수 있다.
1 = MTS 전송을 위해 채널 A 선택됨
0 = MTS 전송을 위해 채널 A 선택되지 않음
MTSB MTS 전송을 위해 채널 B를 선택함(Select Channel B for MTS Transmission)
이 비트는 요청되는 경우 "1010"을 CMD[3:0]에 기록함으로써 MTS 심볼 전송을 위해 채널 B를 선택한다. 이 플래그는 디폴트로 리셋되며, CONFIG 상태에서만 수정될 수 있다.
1 = MTS 전송을 위해 채널 B 선택됨
0 = MTS 전송을 위해 채널 B 선택되지 않음
CCHA 채널 A에 연결됨(Connected to Channel A)(pChannels)
노드가 채널 A에 연결되어 있는지 여부를 구성한다.
1 = 노드가 채널 A에 연결되어 있음
0 = 채널 A에 연결되어 있지 않음
CCHB 채널 B에 연결됨(Connected to Channel B)(pChannels)
노드가 채널 B에 연결되어 있는지 여부를 구성한다.
1 = 노드가 채널 B에 연결되어 있음
0 = 채널 B에 연결되어 있지 않음
4.5.2
SUC
구성 레지스터 2(
SUC
Configuration Register 2)(
SUCC2
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
LT [20:0] 리슨 타임아웃(Listen Timeout)(pdListenTimeout)
기동 및 웨이크업 리슨 타임아웃의 상한을 구성한다. 유효한 값은 1444 내지 1,283,846 μT이다.
LTN[3:0] 리슨 타임아웃 노이즈(Listen Timeout Noise)(gListenNoise)
클러스터 상수 pdListenTimeout의 배수로서 표현되는 노이즈의 존재 시의 기동 및 웨이크업 리슨 타임아웃에 대한 상한을 구성한다. 하드웨어에 의한 이 값의 해석은 여기에서 프로그램된 값보다 1 많은 값이 사용되도록 되어 있다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 2 내지 16이다.
4.5.3 PRT 구성 레지스터 1(PRT Configuration Register 1)(PRTC1)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
TSST [3:0] 전송 시작 시퀀스 송신기(Transmission Start Sequence Transmitter)(gdTSSTransmitter)
비트 시간의 관점에서 전송 시작 시퀀스(TSS)의 지속 기간을 구성한다(1 비트 시간 = 4 μT = 100ns @ lOMbps). 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 5 내지 15 비트 시간이다.
BRP[l:0] 보드 레이트 프리스케일러(Baud Rate Prescaler)(gdSampleClockPeriod, pSamplePerMicrotick)
보드 레이트 프리스케일러는 플렉스레이 버스 상에서의 보드 레이트를 구성한다. 이하에 열거된 보드 레이트는 샘플 클럭 eray_sclk = 80 MHz에서 유효하다.
00 = lO MBit/s
01 = 5 MBit/s
10 = 2.5 MBit/s
11 = 1.25 MBit/s
RXW[8:0] 웨이크업 심볼 수신 창 길이(Wakeup Symbol Receive Window Length)(gdWakeupSymbolRxWindow)
수신기가 심볼을 웨이크업으로서 인식하기 위한 비트 시간의 배수로 되어 있는 심볼이 수신되어야만 하는 창 길이를 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 76 내지 301 비트 시간이다.
RWP[5:0] Tx 웨이크업 패턴의 반복(Repetitions of Tx Wakeup Pattern)(pWakeupPattern)
Tx 웨이크업 심볼의 반복(시퀀스) 횟수를 구성한다. 하드웨어에 의한 이 값의 해석은 여기에 프로그램된 값보다 하나 많은 값이 사용되도록 되어 있다. 유효한 값은 2 내지 63이다.
4.5.4
PRT
구성 레지스터 2(
PRT
Configuration Register 2)(
PRTC2
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
RXI [5:0] 웨이크업 심볼 수신 아이들(Wakeup Symbol Receive Idle)(gdWakeupSymbolRxIdle)
수신기가 심볼을 웨이크업으로서 인식하기 위한 비트 시간의 배수로 되어 있는 아이들/리세시브 하이 레벨(idle/recessive high level)의 RXLnimum 지속 기간을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 14 내지 59 비트 시간이다.
RXL[5:0] 웨이크업 심볼 수신 로우(Wakeup Symbol Receive Low)(gdWakeupSymbolRxLow)
수신기가 심볼을 웨이크업으로서 인식하기 위한 비트 시간의 배수로 되어 있는 활성 로우 레벨(active low level)의 최소 지속 기간을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 14 내지 59 비트 시간이다.
TXI[7:0] 웨이크업 심볼 전송 아이들(Wakeup Symbol Transmit Idle)(gdWakeupSymbolTxIdle)
비트 시간의 배수로 되어 있는 웨이크업 심볼의 아이들/하이 레벨(idle/high level)의 지속 기간을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 45 내지 180 비트 시간이다.
TXL[5:0] 웨이크업 심볼 전송 로우(Wakeup Symbol Transmit Low)(gdWakeupSymbolTxLow)
비트 시간의 배수로 되어 있는 웨이크업 심볼의 활성 로우 레벨(active low level)의 지속 기간을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 15 내지 60 비트 시간이다.
4.5.5
MHD
구성 레지스터 1(
MHD
Configuration Register 1)(
MHDC1
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
SFDL [6:0] 상태 프레임 데이터 길이(State Frame Data Length)(gPayloadLengthStatic)
더블 바이트(double byte) 단위로 정적 세그먼트로 전송되는 모든 프레임에 대한 (고정된) 프레임 길이를 구성한다. 프레임 길이는 클러스터의 모든 노드에 대해 동일해야만 한다. 유효한 값은 0 내지 127이다.
SLT[12:0] 마지막 전송의 시작(Start of Latest Transmit)(pLatestTx)
사이클의 동적 세그먼트에서의 새로운 프레임 전송을 금지하기 이전에 허용된 최대 미니슬롯을 구성한다. 유효한 값은 1 내지 7992 미니슬롯이다.
4.5.6
MHD
구성 레지스터 2(
MHD
Configuration
Register
2)(
MHDC2
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
SFID [9:0] 동기 프레임 ID(Sync Frame ID) (pKeySlotID)
기동 프레임, 동기 프레임, 또는 지정된 단일 슬롯 프레임을 전송하는 데 사용되는 슬롯 ID를 보유한다. 유효한 값은 1 내지 1023이다.
4.5.7
NEM
구성 레지스터(
NEM
Configuration Register)(
NEMC
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
WCP [3:0] 클럭 정정 패시브 없는 최대값(Maximum Without Clock Correction Passive) (gMaxWithoutClockCorrectionPassive)
NORMAL_ACTIVE에서 NORMAL_PASSIVE로의 천이를 야기하는 누락된 클럭 정정 항을 갖는 연속적인 짝수/홀수 사이클 쌍의 수를 정의한다. 클러스터의 모든 노드에 대해 동일해야만 한다. 유효한 값은 1 내지 15 사이클 쌍이다.
WCF[3:0] 클럭 정정 페이탈 없는 최대값(Maximum Without Clock Correction Fatal) (gMaxWithoutClockCorrectionFatal)
NORMAL_ACTIVE 또는 NORMAL_PASSIVE에서 HALT 상태로의 천이를 야기하는 누락된 클럭 정정 항을 갖는 연속적인 짝수/홀수 사이클 쌍의 수를 정의한다. 클러스터의 모든 노드에 대해 동일해야만 한다. 유효한 값은 1 내지 15 사이클 쌍이다.
NML[3:0] 네트워크 관리 벡터 길이(Network Management Vector Length) (gNetworkManagementVectorLength )
이들 비트는 NM 벡터의 길이를 구성한다. 이 구성된 길이는 클러스터이 모든 노드에서 동일해야만 한다. 유효한 값은 0 내지 12 바이트이다.
BGT[5:0] 버스 가디언 틱(Bus Guardian Tick)
CC 마이크로틱의 배수로 되어 있는 CC에 의해 버스 가디언에 제공될 버스 가디언 틱(BGT)의 길이를 정의한다. 유효한 값은 10 내지 63μT이다.
BGD 버스 가디언 디스에이블됨(Bus Guardian Disabled)
이용가능한 버스 가디언이 없거나 버스 가디언이 디스에이블되어 있음을 나타낸다. 이 경우에, 입력 신호 eray_bgel,2가 결코 상승되지 않는다.
1 = BG 디스에이블됨
0 = BG 인에이블됨
DSE 동적 세그먼트 인에이블(Dynamic Segment Enable) (pDynamicSegmentEnable)
동적 세그먼트 동안에 노드가 전송을 할 수 있다는 것을 BG 스케쥴 모니터링 서비스에 알려준다.
1 = 동적 세그먼트에서의 BG 스케쥴 모니터링 모드가 RELAXED임
0 = 동적 세그먼트에서의 BG 스케쥴 모니터링 모드가 DISABLED임
4.5.8
GTU
구성 레지스터 1(
GTU
Configuration Register 1) (
GTUC1
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
UT[19:0] 사이클당 마이크로틱(Microtick per Cycle) (pMicroPerCycle)
마이크로틱 단위로 클러스터 사이클의 지속 기간을 구성한다. 유효한 값은 720 내지 640,000 μT이다.
4.5.9
GTU
구성 레지스터 2(
GTU
Configuration Register 2) (
GTUC2
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
MPC [13:0] 사이클당 매크로틱(Macrotick Per Cycle) (gMacroPerCycle)
매크로틱 단위로 하나의 통신 사이클의 지속 기간을 구성한다. 사이클 길이는 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 12 내지 16,000 MT이다.
SNM[3:0] 동기 노드 최대(Sync Node Max) (gSyncNodeMax)
동기 프레임 표시자 비트가 세트되어 있는 클러스터 내에서의 프레임의 최대수. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 2 내지 15이다.
4.5.10
GTU
구성 레지스터 3(
GTU
Configuration Register 3) (
GTUC3
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
UIOA [7:0] 마이크로틱 초기 오프셋(Microtick Initial Offset) (pMicroInitialOffset[A])
gMacroInitialOffset에 의해 기술되는 매크로틱 경계와 정확한 2차 시간 참조점 간의 거리를 기술하는 마이크로틱의 수를 구성한다. 이 파라미터는 pDelayCompensation[A]에 의존하며 따라서 각각의 채널에 대해 독립적으로 설정되어야만 한다. 유효한 값은 0 내지 240 μT이다.
UIOB[7:0] 마이크로틱 초기 오프셋(Microtick Initial Offset) (pMicroInitialOffset[B])
gMacroInitialOffset에 의해 기술되는 매크로틱 경계와 정확한 2차 시간 참조점 간의 거리를 기술하는 마이크로틱의 수를 구성한다. 이 파라미터는 pDelayCompensation[B]에 의존하며 따라서 각각의 채널에 대해 독립적으로 설정되어야만 한다. 유효한 값은 0 내지 240 μT이다.
MTIO[5:0] 매크로틱 초기 오프셋(Macrotick Initial Offset) (gMacroInitialOffset)
구성된 초기 매크로틱 길이를 사용하여 정적 슬롯 경계(static slot boundary)와 2차 시간 참조점의 닫힌 매크로틱 경계(closed macrotick boundary) 간의 거리를 기술하는 매크로틱의 수를 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 1 내지 37 MT이다.
4.5.11
GTU
구성 레지스터 4(
GTU
Configuration Register 4) (
GTUC4
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
NIT[13:0] 네트워크 아이들 시간 시작(Network Idle Time Start) (gMacroPerCycle - gdNIT - 1)
사이클의 시작으로부터의 매크로틱의 관점에서 표현된 통신 사이클의 끝에서 네트워크 아이들 시간(NIT)의 시작점을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 10 내지 15,998 MT이다.
OCS[13:0] 오프셋 정정 시작(Offset Correction Start) (gOffsetCorrectionStart - 1)
사이클의 시작으로부터 계산되는, NIT 단계 내에서의 오프셋 정정의 시작을 결정한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 10 내지 15,998 MT이다.
4.5.12
GTU
구성 레지스터 5(
GTU
Configuration Register 5) (
GTUC5
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
DCA [7:0] 지연 보상 채널 A(Delay Compensation Channel A) (pDelayCompensation[A])
채널 A에 대한 평균 지연 보상 값을 구성한다. 유효한 값은 0 내지 200 μT이다.
DCB[7:0] 지연 보상 채널 B(Delay Compensation Channel B) (pDelayCompensationfB])
채널 B에 대한 평균 지연 보상 값을 구성한다. 유효한 값은 0 내지 200 μT이다.
CDD[2:0] 클러스터 드리프트 감쇠(Cluster Drift Damping) (pClusterDriftDamping)
반올림 에러의 누적을 최소화하기 위해 클럭 동기화에서 사용되는 클러스터 드리프트 감쇠 값을 구성한다. 유효한 값은 1 내지 20 μT이다.
4.5.13
GTU
구성 레지스터 6(
GTU
Configuration Register 6) (
GTUC6
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
ASR [10:0] 수락된 기동 범위(Accepted Startup Range) (pdAcceptedStartupRange)
기동 프레임의 경우에 측정된 편차의 확장된 범위. 유효한 값은 0 내지 1875 μT이다.
MOD[10:0] 최대 발진기 드리프트(Maximum Oscillator Drift) (pdMaxD[pi]ft)
한 통신 사이클에 걸쳐 비동기화된 클럭으로 동작하는 2개의 노드 간의 최대 드리프트 오프셋(단위: μT). 유효한 값은 2 내지 1,923 μT이다.
4.5.14
GTU
구성 레지스터 7(
GTU
Configuration Register 7) (
GTUC7
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
SSL [10:0] 정적 슬롯 길이(Static Slot Length) (gdStaticSlot)
매크로틱 단위로 정적 슬롯의 지속 기간을 구성한다. 정적 슬롯 길이는 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 5 내지 2047 MT이다.
NSS [9:0] 정적 슬롯의 수(Number of Static Slots) (gNumberOfStaticSlots)
사이클에서의 정적 슬롯의 수를 구성한다. 적어도 2개의 기동 노드가 플렉스레이 네트워크를 기동시키도록 구성되어야만 한다. 정적 슬롯의 수는 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 2 내지 1,023이다.
4.5.15
GTU
구성 레지스터 8(
GTU
Configuration Register 8) (
GTUC8
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
MSL [5:0] 미니슬롯 길이(Minislot Length) (gdMmislot)
매크로틱 단위로 미니슬롯의 지속 기간을 구성한다. 미니슬롯 길이는 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 2 내지 63 MT이다.
NMS[12:0] 미니슬롯의 수(Number of Minislots) (gNiimberOfMmislots)
사이클의 동적 세그먼트에서의 미니슬롯의 수를 구성한다. 미니슬롯의 수는 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 0 내지 7,994이다.
4.5.16
GTU
구성 레지스터 9(
GTU
Configuration Register 9) (
GTUC9
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
APO [4:0] 작동점 오프셋(Action Point Offset) (gdActionPomtOffset)
매크로틱 단위로 작동점 오프셋을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 1 내지 31 MT이다.
MAPO[4:0] 미니슬롯 작동적 오프셋(Minislot Action Point Offset) (gdMimslotActionPomtOffset)
매크로틱 단위로 작동점 오프셋을 구성한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 1 내지 31 MT이다.
DSI[1:O] 동적 슬롯 아이들 단계(Dynamic Slot Idle Phase) (gdDynamicSlotldlePhase)
동적 슬롯 아이들 단계의 지속 기간은 아이들 검출 시간보다 크거나 같아야만 한다. 클러스터의 모든 노드에서 동일해야만 한다. 유효한 값은 1 내지 3 미니슬롯이다.
4.5.17
GTU
구성 레지스터 10(
GTU
Configuration Register 10) (
GTUC10
)
CC는 CONFIG 상태에서만 레지스터의 수정을 수락한다.
OC [12:0] 최대 오프셋 정정(Maximum Offset Correction) (pOffsetCorrectionOut)
정규의 클럭 동기화 알고리즘 동안에 적용될 최대 허용 오프셋 정정 값을 보유한다. CC는 최대 오프셋 정정 값에 대해 내부 및 외부 오프셋 정정의 합을 검사한다. 유효한 값은 1 내지 7680 μT이다.
RC[10:0] 최대 레이트 정정(Maximum Rate Correction) (pRateCorrectionOut)
내부 클럭 동기화 알고리즘에 의해 적용될 최대 허용 레이트 정정 값을 보유한다. CC는 최대 레이트 정정 값에 대해 내부 및 외부 레이트 정정의 합을 검사한다. 유효한 값은 2 내지 1,923 μT이다.
4.5.18
GTU
구성 레지스터 11(
GTU
Configuration Register 11) (
GTUC11
)
ECC [1:O] 외부 클럭 정정(External Clock Correction)
ECC[1:0]에 기록함으로써, 외부 오프셋/레이트 정정이 이하에 규정된 바와 같이 인에이블된다.
00, 01 = 외부 클럭 정정 없음
10 = 계산된 오프셋/레이트 정정 값으로부터 차감되는 외부 오프셋/레이트 정정 값
11 = 계산된 오프셋/레이트 정정 값에 가산된 외부 오프셋/레이트 정정 값
EOC[2:0] 외부 오프셋 정정(External Offset Correction) (pExternOffsetCorrection)
내부 클럭 동기화 알고리즘에 의해 적용될 마이크로틱 단위의 외부 클럭 오프셋 정정 값을 보유한다. 이 값은 계산된 오프셋 정정 값으로부터 차감/그에 가산된다. 이 값은 NIT 동안에 적용되며, 따라서 NIT 외부에서만 수정되어야 한다. 유효한 값은 0 내지 7 μT이다.
ERC[2:0] 외부 레이트 정정(External Rate Correction) (pExtemRateCorrection)
내부 클럭 동기화 알고리즘에 의해 적용될 마이크로틱 단위의 외부 클럭 레이트 정정 값을 보유한다. 이 값은 계산된 레이트 정정 값으로부터 차감/그에 가산된다. 이 값은 NIT 동안에 적용되며, 따라서 NIT 외부에서만 수정되어야 한다. 유효한 값은 0 내지 7 μT이다.
4.6 CC 상태 레지스터(CC Status Registers)
8 비트 이상으로 코딩된 상태 변수에의 바이트-액세스 동안에, 변수는 2개의 액세스 간에 CC에 의해 갱신될 수 있다.
4.6.1 CC 상태 및 에러 벡터(CC Status and Error Vector) (
CCSEV
)
POCS [5:0] 프로토콜 동작 제어 상태(Protocol Operation Control Status)
CC 프로토콜 동작 제어의 동작의 실제 상태를 나타낸다(vPOC!State).
00 0000 = CONFIG 상태
00 0001 = READY 상태
00 0010 = WAKEUP 상태
00 0011 = STARTUP 상태
00 0100 = NORMAL_ACTIVE 상태
00 0101 = NORMAL_PASSIVE 상태
00 0110 = HALT 상태
00 0111 = MONITOR_MODE 상태
00 1000..00 1111 = 예비됨
웨이크업 경로에서의 POC의 동작의 실제 상태를 나타냄(VPOC!WakeupStatus)
01 0000 = WAKEUP_STANDBY 상태
01 0001 = WAKEUP_LISTEN 상태
01 0010 = WAKEUP_SEND 상태
01 0011 = WAKEUP_DETECT 상태
10 0100..1O 111l = 예비됨
기동 경로에서의 POC의 동작의 실제 상태를 나타냄
10 0000 = STARTUP_STANDBY 상태
10 0001 = COLDSTART_LISTEN 상태
10 0010 = COLDSTART_COLLISION_RESOLUTION 상태
10 0011 = COLDSTART_CONSISTENCY_CHECK 상태
10 0100 = COLDSTART_GAP 상태
10 0101 = COLDSTART_JOIN 상태
10 0110 = INTEGRATION_COLDSTART_CHECK 상태
10 0111 = INTEGRATION_LISTEN 상태
10 1000 = INTEGRATION_CONSISTENCY_CHECK 상태
10 1001 = INITIALIZE_SCHEDULE 상태
10 1010..11 llll = 예비됨
FSI 프리즈 상태 표시자(Freeze Status Indicator) (vPOC!Freeze)
CHI 커맨드 FREEZE로 인해 또는 즉각적인 POC 정지를 요구하는 에러 조건으로 인해 POC가 HALT 상태에 들어갔음을 나타낸다.
HRQ 정지 요청(Halt Request) (vPOC!CHIHaltRequest)
통신 사이클의 끝에서 POC를 정지시키라는 호스트로부터의 요청이 수신되었음을 나타낸다. HALT 상태에 도달될 때 사이클의 끝에서 리셋된다.
SLM [1:O] 슬롯 모드(Slot Mode) (vPOC!SlotMode)
POC의 실제 슬롯 모드를 나타낸다. 디폴트는 NOT_SYNCHRONIZED이다. 구성 비트 TSM에 따라 CHI 커맨드 RUN 이후에 SINGLE 또는 ALL로 변화된다. NORMAL_ACTIVE 또는 NORMAL_PASSIVE 상태에서, CHI 커맨드 ALL_SLOTS은 슬롯 모드를 SINGLE로부터 ALL_PENDING를 거쳐 ALL로 변경한다. CHI 커맨드 READY, HALT, 및 FREEZE는 슬롯 모드를 NOT.SYNCHRONIZED로 리셋시킨다.
00 = NOT_SYNCHRONIZED
01 = SINGLE
10 = ALL_PENDING
11 = ALL
ERRM[l:0] 에러 모드(Error Mode) (vPOC!EirorMode)
POC의 실제 에러 모드를 나타낸다.
00 = ACTIVE (녹색)
01 = PASSIVE (황색)
10 = COMM_HALT (적색)
11 = 예비됨
CSNI 콜드스타트 노이즈 표시자(Coldstart Noise Indicator) (vColdStartNoise)
콜드 스타트 절차가 시끄러운 조건 하에서 발생했음을 나타낸다. CHI 커맨드에 의해 호스트의 제어 하에서 리셋된다.
CSAI 콜드스타트 중지 표시자(Coldstart Abort Indicator)
콜드스타트가 중지된다. CHI 커맨드에 의해 호스트의 제어 하에서 리셋된다.
SMRI BG 스케쥴 모니터링 리셋 표시자(BG Schedule Monitoring Reset Indicator)
CHI 커맨드에 의해 호스트의 제어 하에서 리셋된다.
DOCREQ 디폴트 구성 요청(Default Config Request)
HALT 상태로부터 빠져나오기 위해, 호스트는 CHI 커맨드 RESET_STATUS_ INDICATORS에 의해 비트를 리셋시켜야만 한다. 호스트는 구성을 검사하고 필요한 경우 구성을 복원해야만 한다. 이어서, 구성의 재초기화는 CONFIG 상태에서 호스트에 의해 행해져야만 한다.
WSV [2:0] 웨이크업 상태(Wakeup Status) (vWakeupStatus)
현재의 웨이크업 시도의 상태를 나타낸다.
000 = 웨이크업 시도 없음
001 = RECEIVED_HEADER. 이 플래그는, 웨이크업 리슨 상태에서 코딩 위반 없이 프레임 헤더의 수신으로 인해 CC가 웨이크업을 완료하는 경우, 세트된다.
010 = RECEIVED_WUS. 이 플래그는, 웨이크업 리슨 상태에서 유효한 웨이크업 심볼의 수신으로 인해 웨이크업을 완료하는 경우, 세트된다.
011 = COLLISION_HEADER. 이 플래그는, 유효한 헤더의 수신으로 웨이크업 패턴 전송 동안에 검출된 충돌로 인해 CC가 웨이크업을 중단하는 경우, 세트된다.
100 = COLLISION_WUS. 이 플래그는, 유효한 WUS의 수신으로 웨이크업 패턴 전송 동안에 검출된 충돌로 인해 CC가 웨이크업을 중단하는 경우, 세트된다.
101 = COLLISION_UNKNOWN. 이 플래그는, 계속되는 유효한 수신 없이 검출된 충돌로 인해 CC가 웨이크업을 중단하는 경우에, 세트된다.
110 = TRANSMITTED. 이 플래그는, CC가 웨이크업 패턴의 전송을 성공적으로 완료한 경우에, 세트된다.
111 = 예비됨
RCA[4:0] 나머지 콜드스타트 시도(Remaining Coldstart Attempts) (vRemainingColdstartAttempts)
나머지 콜드스타트 시도의 수를 나타낸다. 콜드스타트 시도의 최대수는 SUC 구성 레지스터 1에서의 CSA[4:0]에 의해 구성된다.
PTAC[4:0] 수동-능동 카운트(Passive to Active Count) (vAllowPassiveToActive)
노드가 NORMAL_PASSIVE 상태에서 NORMAL_ACTIVE 상태로 천이하기 위해 기다리는 동안 유효한 레이트 및 오프셋 정정 항을 전달하는 연속적인 짝수/홀수 사이클 쌍의 수를 나타낸다. 이 천이는, PTAC[4:0]이 SUC 구성 레지스터 1에 정의되어 있는 PTA[4:0]과 같을 때, 일어난다.
4.6.2 슬롯 카운터 값(
Slot
Counter
Value
) (
SCV
)
매크로틱 및 사이클 카운터 값 레지스터는 매크로틱 카운터 및 사이클 카운터의 현재 값을 보유하고 있다. 이 레지스터는 하드 리셋 동안 또한 CONFIG 상태 에 들어갈 때 클리어된다.
SCCA [10:O] 슬롯 카운터 채널 A(Slot Counter Channel A) (vSlotCounter[A])
현재 슬롯 카운터 값 채널 A. 이 값은 CC에 의해 증가되고 통신 사이클의 시작 시에 리셋된다. 유효한 값은 1 내지 2,047이다.
SCCB [10:O] 슬롯 카운터 채널 B(Slot Counter Channel B) (vSlotCounter[B])
현재 슬롯 카운터 값 채널 B. 이 값은 CC에 의해 증가되고 통신 사이클의 시작 시에 리셋된다. 유효한 값은 1 내지 2,047이다.
4.6.3
매크로틱
및 사이클 카운터 값(
Macrotick
and Cycle Counter Value) (
MTCCV
)
매크로틱 및 사이클 카운터 값 레지스터는 매크로틱 카운터 및 사이클 카운터의 현재 값을 보유하고 있다. 이 레지스터는 하드 리셋 동안에 또한 CONFIG 상태에 들어갈 때 클리어된다.
MTV[13:0] 매크로틱 값(Macrotick Value) (vMacrotic)
현재 매크로틱 값. 이 값은 이 값은 CC에 의해 증가되고 통신 사이클의 시작 시에 리셋된다. 유효한 값은 1 내지 16,000이다.
CV[5:0] 사이클 카운터 값(Cycle Counter Value) (vCycleCounter)
이 값은 통신 사이클의 시작 시에 CC에 의해 증가된다. 유효한 값은 0 내지 63이다.
4.6.4
클럭
정정 상태 1(Clock Correction Status 1) (
CCS1
)
CCLR 클럭 정정 한계 도달(Clock Correction Limit Reached)
클럭 정정 한계 도달 플래그는 오프셋 또는 레이트 정정 값이 그의 한계에 도달하였음을 호스트에 알려준다. CC는 단지 이 플래그를 세트시킬 수 있다. 이 플래그는 호스트가 에러 인터럽트 레지스터에서의 플래그 CCF를 클리어할 때 리셋된다.
MRCS 누락 레이트 정정 신호(Missing Rate Correction Signal)
누락 레이트 정정 신호는 (짝수/홀수) 동기 프레임의 쌍이 수신되지 않았기 때문에 레이트 정정이 수행될 수 없다는 것을 호스트에 알려준다. 이 플래그는 성공적인 레이트 정정 이후에 CC에 의해 리셋된다.
MOCS 누락 오프셋 정정 신호(Missing Offset Correction Signal)
누락 오프셋 정정 신호는 홀수 사이클에서 동기 프레임이 수신되지 않았기 때문에 오프셋 정정이 수행될 수 없다는 것을 호스트에 알려준다. 이 플래그는 성공적인 오프셋 정정 이후에 CC에 의해 리셋된다.
CCFC[3:0] 클럭 정정 실패 카운터(Clock Correction Failed Counter) (vClockCorrectionFailed)
클럭 정정 실패 카운터는, 누락 오프셋 정정 에러 또는 누락 레이트 정정 에러가 활성인 경우에, 홀수 통신 사이클의 끝에서 1만큼 증가된다. 오프셋 정정 실패 에러도 레이트 정정 실패 에러도 활성이 아닌 경우에 클럭 정정 실패 카운터는 홀수 통신 사이클의 끝에서 '0'으로 리셋된다. 클럭 정정 실패 카운터는 15에서 멈춘다.
4.6.5
클럭
정정 상태 2(Clock Correction Status 2) (
CCS2
)
OCV [13:0] 오프셋 정정 값(Offset Correction Value) (vOffsetCorrection)
현재 사이클(내부 + 외부)에서 클럭 동기에 의해 적용되는 오프셋 정정 값(2의 보수). 유효한 값은 -7687 내지 +7687 μT이다.
RCV[11:O] 레이트 정정 값(Rate Correction Value) (vRateCorrection)
현재 사이클(내부 + 외부)에서 클럭 동기에 의해 적용되는 레이트 정정 값(2 의 보수). 유효한 값은 -1,930 내지 +1,930 μT이다.
4.6.6 동기 프레임 상태(
Sync
Frame
Status
)(
SFS
)
VSAE [3:0] 유효 동기 프레임 채널 A, 짝수 통신 사이클(Valid Sync Frames Channel A, even communication cycle) (vSyncFramesEvenA)
짝수 통신 사이클에서 채널 A를 통해 수신 및 전송되는 유효한 동기 프레임의 수를 보유하고 있다. 이 값은 각각의 짝수 통신 사이클의 시작 시에 리셋되고 짝수 통신 사이클에 걸쳐 각각의 통신 슬롯의 끝에서 증가된다. 통신 사이클에서의 유효한 동기 프레임의 최대수는 15이다.
VSAO[3:0] 유효한 동기 프레임 채널 A(Valid Sync Frames Channel A, odd communication cycle) (vSyncFramesOddA)
홀수 통신 사이클에서 채널 A를 통해 수신 및 전송되는 유효한 동기 프레임의 수를 보유하고 있다. 이 값은 각각의 홀수 통신 사이클의 시작 시에 리셋되고 홀수 통신 사이클에 걸쳐 각각의 통신 슬롯의 끝에서 증가된다. 통신 사이클에서의 유효한 동기 프레임의 최대수는 15이다.
VSBE[3:0] 유효한 동기 프레임 채널 B, 짝수 통신 사이클(Valid Sync Frames Channel B, even communication cycle) (vSyncFramesEvenB)
짝수 통신 사이클에서 채널 B를 통해 수신 및 전송되는 유효한 동기 프레임 의 수를 보유하고 있다. 이 값은 각각의 짝수 통신 사이클의 시작 시에 리셋되고 짝수 통신 사이클에 걸쳐 각각의 통신 슬롯의 끝에서 증가된다. 통신 사이클에서의 유효한 동기 프레임의 최대수는 15이다.
VSBO[3:0] 유효한 동기 프레임 채널 B, 홀수 통신 사이클(Valid Sync Frames Channel B, odd communication cycle) (vSyncFramesOddB)
홀수 통신 사이클에서 채널 B를 통해 수신 및 전송되는 유효한 동기 프레임의 수를 보유하고 있다. 이 값은 각각의 홀수 통신 사이클의 시작 시에 리셋되고 홀수 통신 사이클에 걸쳐 각각의 통신 슬롯의 끝에서 증가된다. 통신 사이클에서의 유효한 동기 프레임의 최대수는 15이다.
SFO 동기 프레임 오버플로우(Sync Frame Overflow)
수신된 동기 프레임의 수가 GTU 구성 레지스터 2에서의 SNM[3:0]에 의해 정의된 동기 프레임의 최대수를 초과할 때 세트된다. 이 플래그는 호스트의 제어 하에서 리셋된다.
4.6.7
심볼
창 및 NIT 상태(Symbol Window and NIT Status) (
SWNIT
)
심볼 창 관련 상태 정보. 각각의 채널에 대한 심볼 창의 끝에서 CC에 의해 갱신된다.
SESA 심볼 창 채널 A에서의 신택스 에러(Syntax Error in Symbol Window Channel A) (vSS!SyntaxErrorA)
채널 A 상에서 검출된 심볼 창 동안의 신택스 에러
SBSA 심볼 창 채널 A에서의 슬롯 경계 위반(Slot Boundary Violation in Symbol Window Channel A) (vSS!BViolationA)
채널 A 상에서 검출된 심볼 창 동안의 슬롯 경계 위반
TCSA 심볼 창 채널 A에서의 전송 충돌(Transmission Conflict in Symbol Window Channel A) (vSS!TxConflictA)
채널 A 상에서 검출된 심볼 창에서의 전송 충돌
SESB 심볼 창 B에서의 신택스 에러(Syntax Error in Symbol Window Channel B) (vSS!SyntaxErrorB)
채널 B 상에서 검출된 심볼 창 동안의 신택스 에러
SBSB 심볼 창 채널 B에서의 슬롯 경계 위반(Slot Boundary Violation in Symbol Window Channel B) (vSS!BViolationB)
채널 B 상에서 검출된 심볼 창 동안의 슬롯 경계 위반
TCSB 심볼 창 채널 B에서의 전송 충돌(Transmission Conflict in Symbol Window Channel B) (vSS!TxConflictB )
채널 B 상에서 검출된 심볼 창에서의 전송 충돌
NIT 관련 상태 정보. 각각의 채널에 대해 NIT의 끝에서 CC에 의해 갱신된다.
SENA NIT 채널 A 동안의 신택스 에러(Syntax Error during NIT Channel A) (vSS!SyntaxErrorA)
채널 A 상에서 검출된 NIT 동안의 신택스 에러
SBNA NIT 동안의 슬롯 경계 위반 채널 A( Slot Boundary Violation during NIT Channel A) (vSS!BViolationA)
채널 A 상에서 검출된 NIT 동안의 슬롯 경계 위반
SENB NIT 동안의 신택스 에러 채널 B(Syntax Error during NIT Channel B) (vSS!SyntaxErrorB)
채널 B 상에서 검출된 NIT 동안의 신택스 에러
SBNB NIT 동안의 슬롯 경계 위반 채널 B(Slot Boundary Violation during NIT Channel B) (vSS!BViolationB)
채널 B 상에서 검출된 NIT 동안의 슬롯 경계 위반
4.6.8 종합 채널 상태(Aggregated Channel Status) (ACS)
종합 채널 상태는, 통신 슬롯들이 전송을 위해 할당되어 있는지 수신을 위해 가입되어 있는지에 상관없이, 호스트에 모든 통신 슬롯에 대한 채널 활동의 미수 상태(accrued status)를 제공한다. 종합 채널 상태는 또한 심볼 단계로부터의 상태 데이터 및 네트워크 아이들 시간을 포함한다. 상태 데이터는 호스트에 의해 정의된 기간에 걸쳐 종합된다. 종합 채널 상태는 호스트에 의해 리셋된다.
VFRA 채널 A 상으로 수신되는 유효한 프레임(Valid Frame Received on Channel A) (vSS!ValidFrameA)
하나 이상의 프레임이 관찰 기간 동안에 임의의 정적 또는 동적 슬롯으로 채널 A 상으로 수신되었다.
SEDA 채널 A 상에서 검출된 신택스 에러(Syntax Error Detected on Channel A) (vSS!SyntaxErrorA)
심볼 창 및 NIT를 포함하는 정적 또는 동적 슬롯에서의 하나 이상의 신택스 에러가 채널 A 상에서 관찰되었다.
CEDA 채널 A 상에서 검출된 컨텐츠 에러(Content Error Detected on Channel A) (vSS!ContentErrorA)
컨텐츠 에러를 갖는 하나 이상의 프레임이 관찰 기간에 걸쳐 임의의 정적 또는 동적 슬롯으로 채널 A 상으로 수신되었다.
CIA 통신 표시자 채널 A(Communication Indicator Channel A)
하나 이상의 유효한 프레임이 관찰 기간 동안에 임의의 부가적인 통신도 역시 포함한 슬롯으로 채널 A 상으로 수신되었다, 즉 하나 이상의 슬롯이 유효한 프레임을 수신하였고 AND 신택스 에러 OR 컨텐츠 에러 OR 슬롯 경계 위반의 임의의 조합을 갖는다.
SBVA 채널 A 상에서의 슬롯 경계 위반(Slot Boundary Violation on Channel A) (vSS!BViolationA)
관찰 기간 동안의 임의의 시간에 채널 A 상에서 하나 이상의 슬롯 경계 위반이 관찰되었다(심볼 창 및 NIT를 포함하는 정적 또는 동적 슬롯).
VFRB 채널 B 상으로 수신되는 유효한 프레임(Valid Frame Received on Channel B) (vSS!ValidframeB)
관찰 기간 동안에 임의의 정적 또는 동적 슬롯으로 하나 이상의 유효한 프레임이 채널 B 상으로 수신되었다. 호스트의 제어 하에서 리셋된다.
SEDB 채널 B 상에서 검출된 신택스 에러(Syntax Error Detected on Channel B) (vSS!SyntaxErrorB)
심볼 창 및 NIT를 포함하는 정적 또는 동적 슬롯에서의 하나 이상의 시맨틱 에러가 채널 B 상에서 관찰되었다.
CEDB 채널 B 상에서 검출된 컨텐츠 에러(Content Error Detected on Channel B) (vSS!SyntaxErrorB)
관찰 기간 동안에 임의의 정적 또는 동적 슬롯으로 컨텐츠 에러를 갖는 하나 이상의 프레임이 채널 B 상으로 수신되었다.
CIB 통신 표시자 채널 B(Communication Indicator Channel B)
관찰 기간 동안에 임의의 부가적인 통신도 역시 포함한 하나 이상의 유효한 프레임이 채널 B 상으로 수신되었다, 즉 하나 이상의 슬롯이 유효한 프레임을 수신 하였고 AND 신택스 에러 OR 컨텐츠 에러 OR 슬롯 경계 위반의 임의의 조합을 갖는다.
SBVB 채널 B 상에서의 슬롯 경계 위반(Slot Boundary Violation on Channel B) (vSS!SyntaxErrorB)
관찰 기간 동안의 임의의 시간에 채널 B 상에서 하나 이상의 슬롯 경계 위반이 관찰되었다(심볼 창 및 NIT를 포함하는 정적 또는 동적 슬롯).
4.6.9 짝수 동기 ID(Even Sync ID)[0..15] (
ESIDn
)
레지스터 ESIDl 내지 ESID15는 짝수 통신 사이클에서 수신되고, 오름차순으로 정렬되어 있는 동기 프레임의 프레임 ID를 보유하고 있으며, 레지스터 ESID1이 가장 낮은 수신 동기 프레임 ID를 보유하고 있다. 레지스터 ESIDO는, 노드가 동기 프레임을 전송하는 경우, 노드 자체에 의해 전송된 동기 프레임의 프레임 ID를 보유하고 있다.
ESID [9:0] 짝수 동기 ID(Even Sync ID) (vsSyncIDListA,B even)
동기 프레임 ID 짝수 통신 사이클
RXEA 채널 A 상으로 수신된 짝수 동기 ID(Received Even Sync ID on Channel A)
저장된 짝수 동기 ID에 대응하는 동기 프레임이 채널 A 상으로 수신되었음을 나타낸다.
1 = 동기 프레임 채널 A 상으로 수신됨
0 = 동기 프레임 채널 A 상으로 수신되지 않음
RXEB 채널 B 상으로 수신된 짝수 동기 ID(Received Even Sync ID on Channel B)
저장된 짝수 동기 ID에 대응하는 동기 프레임이 채널 B 상으로 수신되었음을 나타낸다.
1 = 동기 프레임 채널 B 상으로 수신됨
0 = 동기 프레임 채널 B 상으로 수신되지 않음
4.6.10 홀수 동기 ID(Odd Sync ID) [0..15] (
OSIDn
)
레지스터 OSIDl 내지 OSID15는 짝수 통신 사이클에서 수신되고 오름차순으로 정렬되어 있는 동기 프레임의 프레임 ID를 보유하고 있으며, 레지스터 OSID1은 가장 낮은 수신된 동기 프레임 ID를 보유하고 있다. 레지스터 OSIDO는, 노드가 동기 프레임을 전송하는 경우, 노드 자체에 의해 전송된 동기 프레임의 프레임 ID를 보유하고 있다.
OSID [9:0] 홀수 동기 ID(OddSync ID) (vsSyncIDListA,B odd)
동기 프레임 ID 홀수 통신 사이클
RXOA 채널 A 상으로 수신된 홀수 동기 ID(Received Odd Sync ID on Channel A)
저장된 홀수 동기 ID에 대응하는 동기 프레임이 채널 A 상으로 수신되었음을 나타낸다.
1 = 동기 프레임 채널 A 상으로 수신됨
0 = 동기 프레임 채널 A 상으로 수신되지 않음
RXOB 채널 B 상으로 수신된 홀수 동기 ID(Received Odd Sync ID on Channel B)
저장된 홀수 동기 ID에 대응하는 동기 프레임이 채널 B 상으로 수신되었음을 나타낸다.
1 = 동기 프레임 채널 B 상으로 수신됨
0 = 동기 프레임 채널 B 상으로 수신되지 않음
4.6.11 짝수 도달 채널 A,B(Even Arrival Channel A,B) [0..15] (
EAABn
)
레지스터 EAABl 내지 EAAB15는 작동점에 대해 측정된, 채널 A 및 B 상으로 짝수 통신 사이클에서 수신된 동기 프레임에 대한 동기 프레임 도달 시간을 보유한다. 레지스터 EAABO는, 노드가 동기 프레임을 전송하는 경우, 노드 자체에 의해 전송된 동기 프레임의 동기 프레임 전송 시간을 보유하고 있다.
EAA [11:O] 짝수 도달 채널 A(Even Arrival Channel A)
채널 A 상에서의 도달 시간, 짝수 통신 사이클. 유효한 값은 0 내지 2120 μT이다.
EAB[11:0] 짝수 도달 채널 B(Even Arrival Channel B)
채널 B 상에서의 도달 시간, 짝수 통신 사이클. 유효한 값은 0 내지 2120 μT이다.
4.6.12 홀수 도달 채널 A,B(Odd Arrival Channel A,B) [0..15] (
OAABn
)
레지스터 OAAB1 내지 OAAB15는 작동점에 대해 측정된, 채널 A 및 B 상으로 홀수 통신 사이클에서 수신된 동기 프레임에 대한 동기 프레임 도달 시간을 보유하고 있다. 레지스터 OAABO는, 노드가 동기 프레임을 전송하는 경우, 노드 자체에 의해 전송되는 동기 프레임의 동기 프레임 전송 시간을 보유하고 있다.
OAA [11:O] 홀수 도달 채널 A(Odd Arrival Channel A)
채널 A 상에서의 도달 시간, 홀수 통신 사이클. 유효한 값은 0 내지 2120 μT이다.
OAB[11:0] 홀수 도달 채널 B(Odd Arrival Channel B)
채널 B 상에서의 도달 시간, 홀수 통신 사이클. 유효한 값은 0 내지 2120 μT이다.
4.6.13 네트워크 관리 벡터(Network Management Vector) [1..3] (
NMVn
)
3개의 네트워크 관리 레지스터는 미수 VM 벡터(구성가능한 0 내지 12 바이트)를 보유하고 있다. 미수 VM 벡터는 각각의 채널 상으로 수신된 각각의 VM 벡터(NM 표시 비트가 세트되어 있는 프레임)를 비트별로 OR함으로써 CC에 의해 발생된다. CC는 각각의 통신 사이클의 끝에서 VM 벡터를 갱신한다.
4.7 메시지 버퍼 제어 레지스터(Message Buffer Control Registers)
4.7.1 메시지 RAM 구성(Message RAM Configuration) (MRC)
메시지 RAM 구성 레지스터는 정적 세그먼트, 동적 세그먼트, 및 수신 FIFO에 할당된 메시지 버퍼의 수를 정의한다. 게다가, 수신 FIFO에 속하는 모든 메시지 버퍼에 대한 데이터 길이가 여기에서 구성된다. 이 레지스터는 CONFIG 상태에서만 기록될 수 있다.
FDB [6:0] 제1 동적 버퍼(First Dynamic Buffer)
유효한 값은 0 내지 64이다.
0 = 정적 버퍼가 구성되지 않음
>63 = 동적 버퍼가 구성되지 않음
FFB[6:0] 제1 FIFO 버퍼(First FIFO Buffer)
유효한 값은 0 내지 64이다.
0 = 정적 및 동적 버퍼가 구성되지 않음
>63 = FIFO 버퍼가 구성되지 않음
LCB[5:0] 마지막 구성된 버퍼(Last Configured Buffer)
유효한 값은 0 내지 63이다.
0 = 하나의 메시지 버퍼가 구성됨
63 = 64개 메시지 버퍼가 구성됨
DLF [6:0] 데이터 길이 FIFO 버퍼(Data Length FIFO Buffer)
FIFO에 할당된 모든 메시지 버퍼에 대한 페이로드 길이를 구성한다.
유효한 값은 0 내지 127이다.
유의할 점: 이용가능한 메시지 버퍼의 최대수는 메시지 버퍼당 데이터 바이트의 구성된 수에 의존한다(예: 254 바이트를 갖는 16 MB, 128 바이트를 갖는 32 MB, 56 바이트 이하를 갖는 64 MB). 프로그래머는 FDB[6:0], FFB[6:0], 및 LCB[5:0]에 의해 정의된 구성이 가능하도록 보장해야만 한다. CC는 에러있는 구성에 대해 검사하지 않는다.
4.7.2 FIFO 차단 필터(FIFO Rejection Filter) (
FRF
)
FIFO 차단 필터는 들어오는 메시지의 채널, 프레임 ID 및 사이클 카운트가 비교되는 사용자 정의 비트 시퀀스를 정의한다. FIFO 차단 필터 마스크와 함께, 이 레지스터는 메시지가 FIFO에 의해 차단되는지 여부를 판정한다. FRF 레지스터는 CONFIG 상태 동안에만 기록될 수 있다.
CH[1:0] 채널 필터(Channel Filter)
11 = 수신 없음
10 = 채널 A 상으로만 수신함
01 = 채널 B 상으로만 수신함
00 = 양 채널 상으로 수신함(유효한 것 먼저 선택(pick first valid))
FID[10:O] 프레임 ID 필터(Frame ID Filter)
1..2047 = 가능한 프레임 ID 값
CYF[6:0] 사이클 코드 필터(Cycle Code Filter)
7-비트 사이클 코드 필터는 차단 필터링을 위해 사용되는 사이클 세트를 결정한다. 사이클 코드의 구성에 관한 상세에 대해, 5.7.4 사이클 카운터 필터링(Cycle Counter Filtering)을 참조할 것.
RSS 정적 세그먼트 차단(Reject Static Segment)
시간-트리거 애플리케이션에서, FIFO 버퍼는 동적 세그먼트에서 사용되어야만 한다.
1 = 정적 세그먼트에서의 메시지를 차단함
0 = FIFO도 역시 정적 세그먼트에서 사용됨
4.7.3 FIFO 차단 필터 마스크(FIFO Rejection Filter Mask) (
FRFM
)
FIFO 차단 필터 마스크는 대응하는 FRF 비트 중 어느 것이 차단 필터링에 관련있는지를 지정한다. 비트가 세트되어 있는 경우, 이는 FRF 레지스터에서의 대응하는 비트의 상태가 메시지가 FIFO에 의해 차단되는지 여부에 영향을 주지 않는다는 것을 나타낸다. FRF 레지스터의 마스크되지 않은 비트 전부가 일치하는 경우 FIFO에 의해 메시지가 차단된다. FRFM 레지스터는 CONFIG 상태 동안에만 기록될 수 있다.
MFID [10:O] FIFO 차단 필터 마스크 비트(FIFO Rejection Filter Mask Bits)
1 = 대응하는 FIFO 차단 필터 비트를 무시함
0 = 대응하는 FIFO 차단 필터 비트를 매칭시킴
4.8 메시지 버퍼 상태 레지스터(Message Buffer Status Registers)
4.8.1 전송 요청 레지스터 1/2(Transmission Request Registers 1/2) (TXRQ1/2)
2개의 레지스터가 모든 구성된 메시지 버퍼의 TXR 플래그의 상태를 반영한다. 구성된 메시지 버퍼의 수가 64보다 작은 경우, 나머지 TXR 플래그는 의미가 없으며 '0'으로서 판독된다.
TXR [63:0] 전송 요청(Transmission Request)
이 플래그가 세트되어 있는 경우, 각자의 메시지 버퍼는 전송 준비가 되어 있으며, 각각 이 메시지 버퍼의 전송이 진행중이다. 이 플래그는 전송이 완료된 후에 리셋된다(단일-샷 모드 전용).
4.8.2 새 데이터 레지스터 1/2(New Data Registers 1/2) (
NDAT1
/2)
2개의 레지스터는 모든 구성된 메시지 버퍼의 ND 플래그의 상태를 반영한다. 구성된 메시지 버퍼의 수가 64보다 작은 경우, 나머지 ND 플래그는 의미가 없으며 '0'으로서 판독된다.
ND[63:0] 새 데이터(New Data)
메시지 핸들러가 유효한 수신된 메시지를 각자의 메시지 버퍼에 저장할 때 이 플래그는 세트된다. 메시지 버퍼가 출력 버퍼로 전송될 때 이 플래그는 리셋된다.
4.8.3 메시지
핸들러
상태(Message Handler Status) (
MHDS
)
메시지 핸들러 상태 레지스터는 메시지 핸들러의 실제 상태에의 호스트 CPU 액세스를 제공한다.
이하의 플래그는 호스트 CPU에 의해 명시적으로 리셋되어야만 한다.
PIBF 패리티 에러 입력 버퍼 RAM 1, 2(Parity Error Input Buffer RAM 1 ,2)
메시지 핸들러가 입력 버퍼 RAM 1, 2를 판독할 때 패리티 에러가 발생함
POBF 패리티 에러 출력 버퍼 RAM 1, 2(Parity Error Output Buffer RAM 1 ,2)
CPU가 출력 버퍼 RAM 1, 2를 판독할 때 패리티 에러가 발생함
PMR 패리티 에러 메시지 RAM(Parity Error Message RAM)
메시지 RAM을 판독할 때 패리티 에러가 발생함
PTBFl 패리티 에러 천이 버퍼 RAM A(Parity Error Transient Buffer RAM A)
천이 버퍼 RAM A를 판독할 때 패리티 에러가 발생함
PTBF2 패리티 에러 천이 버퍼 RAM B(Parity Error Transient Buffer RAM B)
천이 버퍼 RAM B를 판독할 때 패리티 에러가 발생함
FMB [5:0] 고장난 메시지 버퍼(Faulty Message Buffer)
FMB[5:0]에 의해 참조되는 메시지 버퍼로부터 판독/에 기록할 때 패리티 에러가 발생함. 플래그 PIBF, PMR, PTBFl, 또는 PTBF2 중 하나가 세트되어 있 을 때에만 값이 유효하다.
MBT[5:0] 메시지 버퍼 전송됨(Message Buffer Transmitted)
마지막으로 성공적으로 전송된 메시지 버퍼의 수. 메시지 버퍼가 단일-샷 모드에 대해 구성되어 있는 경우, 전송 요청 레지스터 1/2에서의 각자의 TXR 플래그가 리셋된다.
MBU[5:O] 메시지 버퍼 갱신됨(Message Buffer Updated)
마지막으로 수신 및 수락된 메시지를 저장한 메시지 버퍼의 수. 이 메시지 버퍼에 대해, 새 데이터 레지스터 1/2에서의 각자의 ND 플래그도 역시 세트된다.
4.9 입력 버퍼(Input Buffer)
메시지 RAM 내의 선택된 메시지 버퍼로 전송될 헤더 및 데이터 섹션을 보유하는 더블 버퍼 구조. 메시지 RAM 내의 메시지 버퍼를 구성하고 전송 버퍼의 데이터 섹션을 갱신하는 데 사용됨.
정적 세그먼트 또는 FIFO에 속하는 메시지 버퍼의 헤더 섹션은 CC가 CONFIG 상태에 있는 경우에만 변경될 수 있다.
입력 버퍼(IBF)와 메시지 RAM 간의 데이터 전송은 섹션 5.11.1.1 입력 버퍼 -> 메시지 RAM 데이터 전송에서 상세히 기술되어 있다.
4.9.1 기록 데이터 섹션(Write Data Section) [1..64] (
WRDSn
)
어드레싱된 메시지 버퍼의 데이터 섹션으로 전송될 데이터 워드를 보유한다. 데이터 워드는 DWl (바이트O, 바이트l)에서 DWpL로의 전송 순서로 메시지 RAM에 기록된다(DWpL = 페이로드 길이에 의해 정의된 데이터 워드의 수).
VID [31:0] 메시지 데이터(Message Data)
MD[7:0] = DWn, 바이트O
MD[15:8] = DWn, 바이트l
MD[23:16] = DWn+ 1, 바이트3
MD[31:24] = DWn+ 1, 바이트4
4.9.2 기록 헤더 섹션 1(Write Header Section 1) (
WRHS1
)
FID [10:0] 프레임 ID(Frame ID)
선택된 메시지 버퍼의 프레임 ID. 프레임 ID는 각자의 메시지의 전송을 위한 슬롯 번호를 정의한다. 프레임 ID = '0'을 갖는 메시지 버퍼는 유효하지 않은 것으로 간주된다. 버퍼가 전송 준비가 되어 있는 경우(TXR = '1'), 버퍼가 전송된 이후가 될 때(TXR = 'O')까지는 프레임 ID 비트가 기록될 수 없다. 최대 정적 슬롯 번호(동적 버퍼)보다 더 큰 프레임 ID만 런타임 동안에 변경될 수 있다. 정적 슬롯에 대한 프레임 ID는 CONFIG 상태에서만 기록될 수 있다.
CYC[6:0] 사이클 코드(Cycle Code)
7-비트 사이클 코드는 사이클 카운터 필터링을 위해 사용되는 사이클 세트를 결정한다. 사이클 코드의 구성에 관한 상세에 대해서는, 5.7.4 사이클 카운터 필터링을 참조하기 바란다.
CHA, CHB 채널 필터 제어(Channel Filter Control)
각각의 버퍼와 연관된 2-비트 채널 필터링 필드는 수신 버퍼에 대한 필터로서 또한 전송 버퍼에 대한 제어 필드로서 역할한다.
CHA |
CHB |
전송 버퍼 이하의 것을 통해 프레임을 전송 |
수신 버퍼 이하의 것으로부터 수신된 유효한 프레임을 저장 |
1 |
1 |
양 채널 |
채널 A 또는 B(유효한 것을 먼저 선택) |
1 |
0 |
채널 A |
채널 A |
0 |
1 |
채널 B |
채널 B |
0 |
0 |
전송 없음 |
프레임을 무시함 |
CFG 메시지 버퍼 구성 비트(Message Buffer Configuration Bit)
이 비트는 대응하는 버퍼를 전송 버퍼로서 또는 수신 버퍼로서 구성하는 데 사용된다. 수신 FIFO에 속하는 메시지 버퍼에 대해, 이 비트는 평가되지 않는다.
1 = 대응하는 버퍼가 전송 버퍼로서 구성됨
0 = 대응하는 버퍼가 수신 버퍼로서 구성됨
NME 네트워크 관리 인에이블(Network Management Enable)
이 비트는 전송 프레임에서의 페이로드 프리앰블 표시자의 상태를 제어하는 데 사용된다. 이 비트가 세트되어 있는 경우, 각각의 메시지 버퍼는 네트워크 관리 정보를 보유하고 있다. 정적 세그먼트에서의 전송 버퍼에 대해서만 평가된다. 동적 세그먼트에서의 메시지 ID 필터링은 이-레이 모듈에 의해 지원되지 않는다.
1 = 페이로드 프리앰블 표시자 세트됨
0 = 페이로드 프리앰블 표시자 세트되지 않음
TXM 전송 모드(Transmission Mode)
이 비트는 전송 모드를 선택하는 데 사용된다.
1 = 단일-샷 모드(정적 세그먼트: 버퍼가 갱신되지 않는 경우, TXR = 'O'인 경우, 널 프레임을 전송함)
0 = 연속 모드
MBI 메시지 버퍼 인터럽트
이 비트는 대응하는 메시지 버퍼에 대한 수신/전송 인터럽트를 인에이블시킨다. 수신 메시지가 메시지 버퍼에 저장된 후에, 상태 인터럽트 레지스터에서의 RXI 플래그가 세트된다. 성공적인 전송 이후에, 상태 인터럽트 레지스터에서의 TXI 플래그가 세트된다.
1 = 대응하는 메시지 버퍼 인터럽트가 인에이블됨
0 = 대응하는 메시지 버퍼 인터럽트가 디스에이블됨
4.9.3 기록 헤더 섹션 2(Write Header Section 2) (
WRHS2
)
CRC [10:0] 헤더 CRC(Header CRC) (vRF!Header!HeaderCRC)
수신 버퍼: 헤더 CRC가 수신된 프레임으로부터 갱신됨
전송 버퍼: 헤더 CRC가 호스트에 의해 계산되고 구성됨
PLC[6:0] 페이로드 길이 구성됨(Payload Length Configured)
호스트(= 버퍼 길이)에 의해 구성된 데이터 필드의 길이(2-바이트 워드의 수)
4.9.4 기록 헤더 섹션 3(Write Header Section 3) (
WRHS3
)
DP[10:0] 데이터 포인터(Data Pointer)
메시지 RAM에서의 어드레싱된 메시지 버퍼의 데이터 섹션의 처음 32-비트 워드에 대한 포인터. CONFIG 상태에서만 기록가능하다.
4.9.5 입력 버퍼
커맨드
요청(Input Buffer Command Request) (
IBCR
)
호스트가 입력 버퍼 커맨드 요청 레지스터에서의 IBRH[5:0]에 메시지 RAM에서의 타겟 메시지 버퍼의 수를 기록할 때, IBF 및 IBF 쉐도우가 스와핑된다. 게다가, IBRH[5:0] 및 IBRS[5:0] 아래에 저장된 메시지 버퍼 수도 역시 스와핑된다(5.11.1.1 입력 버퍼 -> 메시지 RAM 데이터 전송(Data Transfer Input Buffer -> Message RAM)도 역시 참조할 것).
이 기록 동작에서, 입력 버퍼 커맨드 요청 레지스터에서의 EBSYS 비트는 '1'로 설정된다. 이어서, 메시지 핸들러는 IBF 쉐도우의 내용을, IBRS[5:0]에 의해 선택된 메시지 RAM에서의 메시지 버퍼로 전송하기 시작한다.
메시지 핸들러가 데이터를 IBF 쉐도우로부터 메시지 RAM에서의 타겟 메시지 버퍼로 전송하는 동안, 호스트는 IBF에서의 그 다음 메시지를 구성할 수 있다. IBF 쉐도우와 메시지 RAM 간의 전송이 완료된 후에, IBSYS 비트는 다시 '0'으로 설정되고, 메시지 RAM으로의 그 다음 전송이 각각의 타겟 메시지 버퍼 번호를 IBRH[5:0]에 기록함으로써 호스트에 의해 시작될 수 있다.
IBSYS가 '1'인 경우에 IBRH[5:0]에의 기록 액세스가 일어나는 경우, IBSYH는 '1'로 설정된다. IBF 쉐도우로부터 메시지 RAM으로의 계속되는 데이터 전송의 완료 후에, IBF 및 IBF 쉐도우가 스와핑되고, IBSYH가 '0'으로 리셋된다. IBSYS는 '1'로 설정된 채로 있고, 메시지 RAM으로의 그 다음 전송이 시작된다. 게다가, IBRH[5:0] 및 IBRS[5:0]아래에 있는 메시지 버퍼 번호도 역시 스와핑된다.
IBRH [5:0] 입력 버퍼 요청 호스트(Input Buffer Request Host)
입력 버퍼로부터의 데이터 전송을 위해 메시지 RAM에서의 타겟 메시지 버퍼를 선택한다.
유효한 값은 0x0000 내지 0x003F(0..63)이다.
IBSYH 입력 버퍼 작동중 호스트(Input Buffer Busy Host)
IBSYS가 여전히 '1'인 동안에 IBRH[5:0]을 기록함으로써 '1'로 설정한다. IBF 쉐도우와 메시지 RAM 간의 계속되는 전송이 완료된 이후에, IBSYH는 다시 '0'으로 설정된다.
1 = IBF 쉐도우와 메시지 RAM 간이 전송이 진행 중인 동안의 요청
0 = 보류 중인 요청 없음
IBRS[5:0] 입력 버퍼 요청 쉐도우(Input Buffer Request Shadow)
실제로 갱신된/마지막으로 갱신된 타겟 메시지 버퍼의 수
유효한 값은 0x0000 내지 0xO03F(0..63)임.
IBSYS 입력 버퍼 동작중 쉐도우(Input Buffer Busy Shadow)
IBRH[5:0]을 기록한 후에 '1'로 설정됨. IBF 쉐도우와 메시지 RAM 간의 전송이 완료되었을 때, IBSYS는 다시 '0'으로 설정된다.
1 = IBF 쉐도우와 메시지 RAM 간의 전송이 진행 중임
0 = IBF 쉐도우와 메시지 RAM 간의 전송이 완료됨
4.9.6 입력 버퍼
커맨드
마스크(Input Buffer Command Mask) (
IBCM
)
입력 버퍼 커맨드 요청 레지스터에 의해 선택된 메시지 RAM에서의 메시지 버퍼가 어떻게 갱신되는지를 구성한다. IBF 및 IBF 쉐도우가 스와핑될 때, 이들이 입력 버퍼 커맨드 요청 레지스터로부터의 각각의 메시지 버퍼 번호에 부착된 채로 있도록 비트 LHSH, LDSH, 및 STXRH은 비트 LHSS, LDSS, 및 STXRS와 스와핑된다.
LHSH 헤더 섹션 호스트 로드(Load Header Section Host)
1 = 헤더 섹션이 입력 버퍼로부터 메시지 RAM으로의 전송을 위해 선택됨
0 = 헤더 섹션 갱신되지 않음
LDSH 데이터 섹션 호스트 로드(Load Data Section Host)
1 = 데이터 섹션이 입력 버퍼로부터 메시지 RAM으로의 전송을 위해 선택됨
0 = 데이터 섹션이 갱신되지 않음
STXRH 전송 요청 호스트 설정(Set Transmission Request Host)
이 비트가 '1'로 설정되는 경우, 전송을 위한 메시지 버퍼를 릴리스하기 위해 선택된 메시지 버퍼에 대한 전송 요청 플래그 TXR이 전송 요청 레지스터에서 설정된다. 단일-샷 모드에서, 플래그는 전송이 완료된 후에 CC에 의해 클리어된다.
1 = 전송 요청 플래그를 설정, 전송 버퍼가 전송을 위해 릴리스됨
0 = 전송 요청 플래그를 리셋함
LHSS 헤더 섹션 쉐도우 로드(Load Header Section Shadow)
1 = 헤더 섹션이 입력 버퍼로부터 메시지 RAM으로의 전송을 위해 선택됨
0 = 헤더 섹션이 갱신되지 않음
LDSS 데이터 섹션 쉐도우 로드(Load Data Section Shadow)
1 = 데이터 섹션이 입력 버퍼로부터 메시지 RAM으로의 전송을 위해 선택됨
0 = 데이터 섹션이 갱신되지 않음
STXRS 전송 요청 쉐도우 설정(Set Transmission Request Shadow)
이 비트가 '1'로 설정되는 경우, 선택된 메시지 버퍼에 대한 전송 요청 플래 그 TXR이 전송을 위한 메시지 버퍼를 릴리스하기 위해 전송 요청 레지스터에서 세트된다. 단일-샷 모드에서, 이 플래그는 전송이 완료된 후에 CC에 의해 클리어된다.
1 = 전송 요청 플래그 설정, 전송 버퍼가 전송을 위해 릴리스됨
0 = 전송 요청 플래그 리셋
4.10 출력 버퍼(Output Buffer)
메시지 RAM으로부터 전송되는 선택된 메시지 버퍼의 헤더 및 데이터 섹션을 보유하는 더블 버퍼 구조. 메시지 RAM으로부터의 메시지 버퍼를 판독하는 데 사용된다.
메시지 RAM과 출력 버퍼(OBF) 간의 데이터 전송이 섹션 5.11.1.2 메시지 RAM -> 출력 버퍼 데이터 전송에 상세히 기술되어 있다.
4.10.1 판독 데이터 섹션(Read Data Section) [1..64] (
RDDSn
)
어드레싱된 메시지 버퍼의 데이터 섹션으로부터 판독된 데이터 워드를 보유한다. 이 데이터 워드는 DWl(바이트O, 바이트l)로부터 DWPL(DWPL = 페이로드 길이에 의해 정의된 데이터 워드의 수)로의 수신 순서로 메시지 RAM으로부터 판독된다.
MD[31:0] 메시지 데이터(Message Data)
MD[7:0] = DWn, 바이트O
MD[15:8] = DWn, 바이트l
MD[23:16] = DWn+1, 바이트3
MD[31:24] = DWn+1, 바이트4
4.10.2 판독 헤더 섹션 1(Read Header Section 1) (
RDHS1
)
FID [10:0] 프레임 ID(Frame ID)
선택된 메시지 버퍼의 프레임 ID. 이 프레임 ID는 각각의 메시지의 수신을 위한 슬롯 번호를 정의한다. 프레임 ID = '0'을 갖는 메시지 버퍼는 유효하지 않은 것으로 간주된다.
CYC[6:0] 사이클 코드(Cycle Code)
7-비트 사이클 코드가 사이클 카운터 필터링을 위해 사용되는 사이클 세트를 결정한다. 사이클 코드의 구성에 관한 상세에 대해서는, 5.7.4 사이클 카운터 필터링을 참조하기 바란다.
CHA, CHB 채널 필터 제어(Channel Filter Control)
각각의 버퍼와 연관된 2 비트 채널 필터링 필드는 수신 버퍼에 대한 필터로서 또한 전송 버퍼에 대한 제어 필드로서 역할한다.
CHA |
CHB |
전송 버퍼 이하의 것을 통해 프레임을 전송 |
수신 버퍼 이하의 것으로부터 수신된 유효한 프레임을 저장 |
1 |
1 |
양 채널 |
채널 A 또는 B(유효한 것을 먼저 선택) |
1 |
0 |
채널 A |
채널 A |
0 |
1 |
채널 B |
채널 B |
0 |
0 |
전송 없음 |
프레임을 무시함 |
CFG 메시지 버퍼 구성 비트(Message Buffer Configuration Bit)
이 비트는 대응하는 버퍼를 전송 버퍼로서 또는 수신 버퍼로서 구성하는 데 사용된다. 수신 FIFO에 속하는 메시지 버퍼에 대해, 이 비트는 평가되지 않는다.
1 = 대응하는 버퍼가 전송 버퍼로서 구성됨
0 = 대응하는 버퍼가 수신 버퍼로서 구성됨
NME 네트워크 관리 인에이블(Network Management Enable)
이 비트는 페이로드 프리앰블 표시자가 '1'로 설정되어 있는 플렉스레이 프레임의 수신을 나타낸다. 이 비트가 세트되어 있는 경우, 각각의 메시지 버퍼는 네트워크 관리 정보를 보유하고 있다. 정적 세그먼트에서의 수신을 위해 구성된 메시지 버퍼에 대해서만 유효하다. 동적 세그먼트에서의 메시지 ID 필터링은 이-레이 모듈에 의해 지원되지 않는다.
1 = 페이로드 프리앰블 표시자 세트됨
0 = 페이로드 프리앰블 표시자 세트되지 않음
TXM 전송 모드(Transmission Mode)
이 비트는 전송 모드를 선택하는 데 사용된다.
1 = 단일-샷 모드(정적 세그먼트: 버퍼가 갱신되지 않는 경우, TXR = 'O'인 경우, 널 프레임을 전송함)
0 = 연속 모드
MBI 메시지 버퍼 인터럽트
이 비트는 대응하는 메시지 버퍼에 대한 수신/전송 인터럽트를 인에이블시킨다. 수신 메시지가 메시지 버퍼에 저장된 후에, 상태 인터럽트 레지스터에서의 RXI 플래그가 세트된다. 성공적인 전송 이후에, 상태 인터럽트 레지스터에서의 TXI 플래그가 세트된다.
1 = 대응하는 메시지 버퍼 인터럽트가 인에이블됨
0 = 대응하는 메시지 버퍼 인터럽트가 디스에이블됨
4.10.3 판독 헤더 섹션 2(Read Header Section 2) (
RDHS2
)
CRC [10:O] 헤더 CRC(Header CRC) (vRF!Header!HeaderCRC)
수신 버퍼: 헤더 CRC가 수신된 프레임으로부터 갱신됨
전송 버퍼: 헤더 CRC가 호스트에 의해 계산되고 구성됨
PLC[6:0] 페이로드 길이 구성됨(Payload Length Configured)
호스트(= 버퍼 길이)에 의해 구성된 데이터 필드의 길이(2-바이트 워드의 수)
PLR[6:0] 페이로드 길이 수신됨(Payload Length Received) (vRF!Header!Length)
수신된 프레임으로부터의 데이터 필드의 길이(2-바이트 워드의 길이)
4.10.4 판독 헤더 섹션 3(Read Header Section 3) (
RDHS3
)
DP[10:0] 데이터 포인터(Data Pointer)
메시지 RAM에서의 어드레싱된 메시지 버퍼의 데이터 섹션의 처음 32-비트 워드에 대한 포인터
RCC[5:0] 수신 사이클 카운트(Receive Cycle Count) (vRF!Header!CycleCount)
사이클 카운터 값이 수신된 프레임으로부터 갱신됨
RCI 채널 상으로 수신됨 표시(Received on Channel Indication) (vSS!Channel)
각각의 가입된 정적 수신 슬롯에 대해 단일 수신 버퍼가 양 채널에 할당되어 있는 경우 프레임이 어느 채널로 수신되는지를 나타낸다.
1 = 프레임이 채널 A 상으로 수신됨
0 = 프레임이 채널 B 상으로 수신됨
SFI 기동 프레임 표시 비트(Startup Frame Indication Bit) (vRF!Header!S uFIndicator)
기동 프레임이 기동 프레임 표시자에 의해 표시된다.
1 = 수신 프레임이 기동 프레임임
0 = 기동 프레임이 수신되지 않음
SYN 동기 프레임 표시 비트(Sync Frame Indication Bit) (vRF!Header!SuFindicator)
동기 프레임이 동기 프레임 표시자로 표시된다.
1 = 수신 프레임이 동기 프레임임
0 = 동기 프레임이 수신되지 않음
NFI 널 프레임 표시 비트(Null Frame Indication Bit) (vRF!Header!NFIndicator)
'0'으로 설정되면, 수신 프레임의 페이로드 세그먼트는 사용가능 데이터를 포함하지 않는다.
1 = 수신 프레임이 널 프레임이 아님
0 = 수신 프레임이 널 프레임임
PPI 페이로드 프리앰블 표시자(Payload Preamble Indicator) (vRF!Header!PPIndicator)
페이로드 프리앰블 표시자는 네트워크 관리 벡터 또는 메시지 ID가 수신 프레임의 페이로드 세그먼트 내에 포함되어 있는지 여부를 정의한다.
1 = 정적 세그먼트: 페이로드 시작에서의 네트워크 세그먼트 벡터
동적 세그먼트: 페이로드의 시작에서의 메시지 ID
0 = 수신 프레임의 페이로드 세그먼트가 네트워크 관리 벡터 또는 메시지 ID를 포함하지 않음
RES 예비된 비트(Reserved Bit) (vRF!Header!Reserved)
수신된 예비 비트의 상태를 반영한다. 예비된 비트는 '0'으로서 전송된다.
4.10.5 메시지 버퍼 상태(Message Buffer Status) (MBS)
메시지 버퍼 상태는 구성된 프레임 ID에 의해 정의되는 슬롯의 끝에서 CC에 의해 갱신되고, 호스트에 의해 검사될 수 있다. 이 플래그는, 열거된 에러 중 하나가 CC에 의해 검출되는 경우, 세트된다. 메시지 버퍼 상태는 항상 최근의 슬롯의 상태를 보여주며, 이는 이전의 사이클로부터의 에러가 덮어쓰기된다는 것을 의미한다.
전송 및 수신 버퍼
SEOA 채널 A 상에서 관찰된 신택스 에러(Syntax Error Observed on Channel A) (vSS!SyntaxErrorA)
채널 A 상의 구성된 슬롯에서 신택스 에러가 관찰됨
1 = 채널 A 상에서 신택스 에러가 관찰됨
0 = 채널 A 상에서 신택스 에러가 관찰되지 않음
SEOB 채널 B 상에서 신택스 에러가 관찰됨(Syntax Error Observed on Channel B) (vSS!SyntaxErrorB)
채널 B 상의 구성된 슬롯에서 신택스 에러가 관찰됨
1 = 채널 B 상에서 신택스 에러가 관찰됨
0 = 채널 B 상에서 신택스 에러가 관찰되지 않음
CEOA 컨텐츠 에러가 채널 A 상에서 관찰됨(Content Error Observed on Channel A) (vSS!ContentErrorA)
컨텐츠 에러가 채널 A 상의 구성된 슬롯에서 관찰됨
1 = 컨텐츠 에러가 채널 A 상에서 관찰됨
0 = 컨텐츠 에러가 채널 A 상에서 관찰되지 않음
CEOB 컨텐츠 에러가 채널 B 상에서 관찰됨(Content Error Observed on Channel B) (vSS!ContentErrorB)
컨텐츠 에러가 채널 B 상의 구성된 슬롯에서 관찰됨
1 = 컨텐츠 에러가 채널 B 상에서 관찰됨
0 = 컨텐츠 에러가 채널 B 상에서 관찰되지 않음
SVOA 슬롯 경계 위반이 채널 A 상에서 관찰됨(Slot Boundary Violation Observed on Channel A) (vSS!BViolationA)
슬롯 경계 위반이 채널 A 상에서 관찰됨, 즉 채널이 구성된 슬롯의 시작에서 또는 끝에서 활성임.
1 = 슬롯 경계 위반이 채널 A 상에서 관찰됨
0 = 슬롯 경계 위반이 채널 A 상에서 관찰되지 않음
SVOB 슬롯 경계 위반이 채널 B 상에서 관찰됨(Slot Boundary Violation Observed on Channel B) (vSS!BViolationB)
슬롯 경계 위반이 채널 B에서 관찰됨, 즉 채널이 구성된 슬롯의 시작에서 또는 끝에서 활성임
1 = 슬롯 경계 위반이 채널 B 상에서 관찰됨
0 = 슬롯 경계 위반이 채널 B 상에서 관찰되지 않음
DCE 데이터 일관성 에러(Data Consistency Error)
이 메시지 버퍼에 데이터를 기록할 때 또는 이 메시지 버퍼로부터 판독을 할 때 패리티 에러가 검출되는 경우 이 비트는 세트된다. 전송 버퍼가 이 플래그가 세트되어 있는 경우, 널 프레임이 전송된다.
1 = 패리티 에러로 인해 메시지 버퍼가 무효임
0 = 이 메시지 버퍼에 대해 패리티 에러가 검출되지 않음
전송 버퍼
TCIA 전송 충돌 표시 채널 A(Transmission Conflict Indication Channel A) (vSS!TxConflictA)
전송 충돌이 채널 A 상에서 일어난 경우 전송 충돌 표시가 세트된다.
1 = 채널 A 상에서 전송 충돌이 일어남
0 = 채널 A 상에서 전송 충돌이 일어나지 않음
TCIB 전송 충돌 표시 채널 B(Transmission Conflict Indication Channel B) (vSS!TxConflictB)
채널 B 상에서 전송 충돌이 일어난 경우 전송 충돌 표시가 세트된다.
1 = 채널 B 상에서 전송 충돌이 일어남
0 = 채널 B 상에서 전송 충돌이 일어나지 않음
VFRA 채널 A 상으로 유효한 프레임이 수신됨(Valid Frame Received on Channel A) (vSS!ValidFrameA)
채널 A 상의 전송 슬롯에서 유효한 프레임이 수신되는 경우 유효한 프레임 표시가 세트됨.
1 = 채널 A 상으로 유효한 프레임이 수신됨
0 = 채널 A 상으로 유효한 프레임이 수신되지 않음
VFRB 채널 B 상으로 유효한 프레임이 수신됨(Valid Frame Received on Channel B) (vSS!Valid!FrameB)
채널 B 상의 전송 슬롯에서 유효한 프레임이 수신되는 경우 유효한 프레임 표시가 세트된다.
1 = 채널 B 상으로 유효한 프레임이 수신됨
0 = 채널 B 상으로 유효한 프레임이 수신되지 않음
수신 버퍼
PLE 페이로드 길이 에러(Payload Length Error)
구성된 페이로드 길이와 수신 프레임의 페이로드 길이 간의 불일치가 검출된다. 정적 세그먼트에서 이러한 불일치가 검출되는 경우, CEOA 및/또는 CEOB 플래그도 역시 세트된다.
1 = 페이로드 길이 에러 검출됨
0 = 페이로드 길이 에러 검출되지 않음
MLST 메시지 손실(Message Lost)
메시지 버퍼가 새 메시지로 갱신되지 이전에 호스트는 메시지를 판독하지 않는다.
1 = 미처리 메시지가 덮어쓰기됨
O = 메시지 손실 없음
4.10.6 출력 버퍼
커맨드
요청(Output Buffer Command Request) (
OBCR
)
출력 버퍼 커맨드 요청 레지스터에서의 OBRS[5:0]에 의해 선택된 메시지 버퍼는, 호스트가 REQ를 '1'로 설정하자마자, 메시지 RAM으로부터 출력 버퍼로 전송된다. OBSYS가 '0'인 동안에만 비트 REQ는 '1'로 설정될 수 있다(역시, 5.11.1.2 메시지 RAM -> 출력 버퍼 데이터 전송을 참조할 것).
REQ를 '1'로 설정한 후에, OBSYS는 '1'로 설정되고, OBRS[5:0]에 의해 선택된 메시지 버퍼의 메시지 RAM으로부터 OBF 쉐도우로의 전송이 시작된다. 메시지 RAM과 OBF 쉐도우 간의 전송이 완료된 후에, OBSYS 비트는 다시 '0'으로 설정된다.
OBSYS가 '0'인 동안에 VIEW 비트를 '1'로 설정함으로써, OBF 및 OBF 쉐도우가 스와핑된다. 이제 메시지 핸들러가 그 다음 메시지를 메시지 RAM으로부터 OBF 쉐도우로 전송할 수 있는 동안 호스트가 OBF로부터 전송된 메시지 버퍼를 판독할 수 있다.
OBRS [5:0] 출력 버퍼 요청 쉐도우(Output Buffer Request Shadow)
메시지 RAM으로부터 OBF 쉐도우로 전송될 소스 메시지 버퍼의 수. 유효한 값은 OxOOOO 내지 OxO0BF(0..63)이다. 수신 FIFO의 제1 메시지 버퍼의 수가 이 레지스터에 기록되어 있는 경우, 메시지 핸들러는 GET 인덱스 레지스터(GIDX)에 의해 어드레싱된 FIFO 버퍼를 OBF 쉐도우로 전송한다.
VIEW 쉐도우 버퍼 보기(View Shadow Buffer)
OBF 쉐도우와 OBF 간을 토글한다.
OBSYS = '0'일 동안에만 기록가능하다.
1 = OBF 쉐도우 및 OBF를 스와핑함
0 = 작용 없음
REQ 메시지 RAM 전송 요청(Request Message RAM Transfer)
OBRS[5:0]에 의해 어드레싱된 메시지 버퍼의 메시지 RAM으로부터 OBF 쉐도우로의 전송을 요청한다. OBSYS = 'O'인 동안에만 기록가능하다.
1 = 요청된 OBF 쉐도우로 전송함
0 = 요청 없음
OBSYS 출력 버퍼 쉐도우 동작중(Output Buffer Shadow Busy)
비트 REQ를 세트시킨 후에 '1'로 설정됨. 메시지 RAM과 OBF 쉐도우 간의 전 송이 완료될 때, OBSYS는 다시 '0'으로 설정된다.
1 = 메시지 RAM과 OBF 쉐도우 간의 전송이 진행중임
0 = 진행 중인 전송 없음
OBRH[5:0] 출력 버퍼 요청 호스트(Output Buffer Request Host)
OBF에 저장되는 전송된 메시지 버퍼의 수. VIEW를 '1'로 기록함으로써, OBF 쉐도우 및 OBF가 스와핑되고 전송된 메시지 버퍼는 호스트에 의해 액세스가능하다. 유효한 값은 0x0000 내지 0x003F(0..63)이다.
4.10.7 출력 버퍼
커맨드
마스크(Output Buffer Command Mask) (
OBCM
)
출력 버퍼의 헤더 섹션이 메시지 RAM에서의 선택된 메시지 버퍼로부터 어떻게 갱신되는지를 구성한다.
RHSS 헤더 섹션 쉐도우 판독(Read Header Section Shadow)
1 = 헤더 섹션이 메시지 RAM으로부터 출력 버퍼로의 전송을 위해 선택됨
0 = 헤더 섹션이 판독되지 않음
RDSS 데이터 섹션 쉐도우 판독(Read Data Section Shadow)
1 = 데이터 섹션이 메시지 RAM으로부터 출력 버퍼로의 전송을 위해 선택됨
0 = 데이터 섹션이 판독되지 않음
RHSH 헤더 섹션 호스트 판독(Read Header Section Host)
1 = 헤더 섹션이 메시지 RAM으로부터 출력 버퍼로의 전송을 위해 선택됨
0 = 헤더 섹션 판독되지 않음
RDSH 데이터 섹션 호스트 판독(Read Data Section Host)
1 = 데이터 섹션이 메시지 RAM으로부터 출력 버퍼로의 전송을 위해 선택됨
0 = 데이터 섹션이 판독되지 않음
유의할 점: 메시지 RAM으로부터 출력 버퍼로의 전송이 완료된 후에, 새 데이터 레지스터에서의 선택된 메시지 버퍼의 새 데이터 플래그 ND가 클리거된다.
5. 기능 설명(Functional Description)
5.1 통신 사이클(Communication Cycle)
도 8: 통신 사이클의 구조
플렉스레이에서의 통신 사이클은 이하의 요소로 이루어져 있다.
네트워크 아이들 시간(Network Idle Time) (NIT)
정적 세그먼트, 동적 세그먼ㅌ, 및 심볼 창은 네트워크 통신 시간(NCT)을 형성한다. 각각의 통신 채널에 대해, 슬롯 카운터는 1에서 시작하고 MHD 구성 레지스터 1에서 구성된 '최근 전송의 시작'('Start of Latest Transmit')에 도달될 때까지 카운트 업한다. 양쪽 채널은 동일한 중재 그리드(arbitration grid)를 공유 하며 이는 이들이 동일한 동기화된 매크로틱을 사용함을 의미한다.
5.1.1 정적
세그먼트
(Static Segment)
정적 세그먼트는 이하의 특징을 갖는다.
각각의 정적 슬롯의 작동점에서 프레임 전송의 시작
마지막 정적 슬롯의 정적 슬롯 아이들 단계로 끝남
모든 프레임에 대해 페이로드 길이가 동일함(양쪽 채널에서)
파라미터: 정적 슬롯의 수, 정적 슬롯의 지속 기간, 정적 슬롯 작동점 오프셋
5.1.2 동적
세그먼트
(Dynamic Segment)
동적 세그먼트는 이하의 특징을 갖는다.
버스 가디언 디스에이블됨, 모든 제어기가 버스 액세스를 가짐
슬롯의 가변적인 지속 기간, 양 채널에 대해 서로 다름
파라미터: 미니슬롯의 수, 미니슬롯의 지속기간, 미니슬롯 작동점 오프셋, 전송을 시작하는 마지막 미니슬롯
5.1.3
심볼
창(Symbol Window)
심볼 창은 이하의 특징을 갖는다.
플렉스레이 프로토콜 규격 v2.0은 3개의 심볼을 정의한다.:
- 웨이크업 심볼(Wake-up Symbol) (WUS), WAKEUP 상태에서만 전송됨
- 충돌 회피 심볼(Collision Avoidance Symbol) (CAS), STARTUP 상태에서만 전송됨
- 매체 접근 테스트 심볼(Media Access Test Symbol) (MTS), 버스 가디언을 테스트하기 위해 NORMAL_ACTIVE 상태에서 전송됨
중재 제공되지 않음(상위 레벨 레벨 프로토콜)
파라미터: 동적 세그먼트의 끝, 네트워크 아이들 시간의 시작
5.1.4 네트워크 아이들 시간(Network Idle Time) (NIT)
네트워크 아이들 시간 동안에 통신 제어기는 이하의 작업을 수행해야만 한다.
구현 관련 클러스터 사이클 관련 작업을 수행함
파라미터: 네트워크 아이들 시간의 시작
5.2 통신
모드
(Communication Modes)
플렉스레이 프로토콜 규격 v2.0은 시간-트리거 분산(Time-triggered Distributed) (TT-D)모드를 정의한다.
5.2.1 시간-
트리거
분산(Time-triggered Distributed) (
TT
-D)
TT-D 모드에서, 이하의 구성이 가능하다.
순수 정적(pure static): 최소 2 정적 슬롯 + 심볼 창(선택적)
혼합 정적/동적 : 최소 2 정적 슬롯 + 동적 세그먼트 + 심볼 창 (선택적)
분산 시간-트리거 동작을 위해 최소 2개의 기동 노드가 구성될 필요가 있다. 클러스터 기동을 위해 2개의 고장 없는 기동 노드가 필요하다. 각각의 기동 프레임은 동기 프레임이어야 하며, 따라서 모든 기동 노드는 동기 노드이다.
5.3
클럭
동기화(Clock Synchronization)
TT-D 모드에서, 분산 클럭 동기화가 사용된다. 각각의 노드는 다른 노드들로부터 전송된 동기 프레임의 타이밍을 관찰함으로써 개별적으로 그 자체를 클러스터에 동기화시킨다.
5.3.1 글로벌 시간(Global Time)
플렉스레이 노드에서, 통신을 비롯한 활동은 글로벌 시간의 개념에 기초하지만, 각각의 개별적인 노드는 그 자신의 시점을 유지한다. 클럭 동기화 메카니즘이 플렉스레이 클러스터를, 독립적인 클럭 메카니즘을 갖는 다른 노드 집합체를 구분한다. 글로벌 시간은 2개의 값, 사이클(사이클 카운터) 및 사이클 시간(매크로틱 카운터)의 벡터이다.
클러스터 관련(Cluster specific):
매크로틱(MT) = 플렉스레이 네트워크에서의 시간 측정의 기본 단위, 매크로틱은 정수개의 마이크로틱(μT)으로 이루어져 있다.
사이클 길이 = 매크로틱(MT) 단위로 된 통신 사이클의 지속 기간
5.3.2 로컬 시간(Local Time)
내부적으로, 노드는 마이크로틱 해상도로 그의 행동을 타이밍 조절한다. 마이크로틱은 특정 노드의 발진기 클럭 틱으로부터 도출된 시간 단위이다. 따라서, 마이크로틱은 제어기-관련 단위이다. 이들은 서로 다른 제어기에서 서로 다른 지속 기간을 가질 수 있다. 노드의 로컬 시간 차 측정치의 정밀도는 마이크로틱(μT)이다.
노드 관련(Node specific):
발진기 클럭 -> 프리스케일러 -> 마이크로틱(μT)
μT = CC에서의 시간 측정의 기본 단위, 클럭 정정이 μT의 단위로 행해진다.
클럭 카운터 + 매크로틱 카운터 = 글로벌 시간의 노드 로컬 관점
5.3.3 동기화 프로세스(Synchronization Process)
클럭 동기화는 동기 프레임에 의해 수행된다. 양 채널(2-채널 클러스터)에 연결된 사전 구성된 노드(동기 노드)만이 동기 프레임을 전송할 수 있다.
플렉스레이에서의 동기화의 경우, 이하의 제약 조건이 고려되어야만 한다.
최대. 하나의 통신 사이클에서 노드당 하나의 동기 프레임
최대. 하나의 통신 사이클에서 네트워크당 15개 동기 프레임
모든 노드는 클럭 동기화를 위해 모든 이용가능한 동기 프레임을 사용해야 한다.
최소 2개의 동기 노드가 클럭 동기화를 위해 필요하다.
장애 허용 클럭 동기화를 위해, 최소 3개의 동기 노드가 필요하다.
동기화 에러는 심각한 에러이다, 즉 제어기는 재통합되어야 한다.
클럭 동기화의 경우, 정적 세그먼트 동안에 수신되는 동기 프레임의 예상된 도달 시간과 관찰된 도달 시간 간의 시간차(양 채널에서 유효함(2채널 클러스터))가 측정된다. 정정 항의 계산은 FTA/FTM 알고리즘을 사용하여 NIT(오프셋: 모든 사이클, 레이트: 홀수 사이클) 동안에 행해진다.
5.3.3.1 오프셋(위상) 정정(Offset (phase) Correction)
사용되는 현재 사이클에서 편차값만이 측정되고 저장됨
2 채널 노드의 경우, 더 작은 값이 취해진다.
모든 통신 사이클의 NIT 동안에 계산, 값은 음수일 수 있다.
오프셋 정정 값은 에러 검사만을 위해 사용되는 짝수 사이클에서 계산됨
한계값에 대해 검사됨(위반: NORMAL_ACTIVE -> NORMAL_PASSIVE -> HALT)
정정은 홀수 번호 사이클에서 행해지고, 사이클의 그 다음 시작에서 노드를 시프트하기 위해 NIT를 포함하는 매크로틱에 걸쳐 분산됨(MT 연장/단축됨)
5.3.3.2
레이트
(주파수) 정정(Rate (frequency) Correction)
편차값의 쌍이 사용되는 짝수/홀수 사이클 쌍에서 측정되고 저장됨
2채널 노드의 경우, 2개의 채널로부터의 차이의 평균이 사용됨
홀수 번호 사이클의 NIT 동안에 계산됨, 값이 음수일 수 있음
클러스터 드리프트 감쇠 항이 추가됨(= 양의 정수)
한계값에 대해 검사됨(위반: NORMAL_ACTIVE -> NORMAL_PASSIVE -> HALT)
그 다음 짝수/홀수 사이클 쌍을 포함하는 매크로틱에 걸쳐 분산됨(MT 연장/단축됨)
5.3.4 외부
클럭
동기화(External Clock Synchronization)
정상 동작 동안에, 독립적인 클러스터는 상당히 드리프트할 수 있다. 클러스터들 간에 동기 동작이 요망되는 경우, 각각의 클러스터 내의 노드들이 동기화되어 있지만, 외부 동기화가 필요하다. 이것은 호스트-추론 레이트 및 오프셋 정정 항을 클러스터에 동기하여 적용함으로써 달성될 수 있다.
외부 오프셋/레이트 정정 값은 부호있는 정수(signed integer)임
외부 오프셋/레이트 정정 값이 계산된 오프셋/레이트 정정값에 가산됨
정정값 중 하나가 한계 밖에 있는 경우, 즉 노드가 동기를 벗어나 있는 경우, 종합된 오프셋/레이트 정정 항(외부 + 내부)이 구성된 한계에 대해 검사됨
5.4 에러 처리(Error Handling)
구현된 에러 처리 개념은 영향을 받지 않는 노드들 간의 통신이 단일 노드에서의 하위 계층 프로토콜 에러의 존재시에 유지될 수 있도록 하기 위한 것이다. 어떤 경우에, CC가 정상 동작을 재개하기 위해 상위 계층 프로그램 커맨드 활동이 요구된다. 에러 처리 상태의 변화는 에러 인터럽트 레지스터에서의 비트 PEMC를 세트시키게 되고, 인에이블되어 있는 경우 호스트에 대한 인터럽트를 트리거할 수 있다. 실제 에러 모드는 CC 상태 및 에러 벡터 레지스터에서의 ERRM[1:0]에 의해 신호된다.
<표 12> POC의 에러 모드(열화 모델)
에러 모드 |
활동 |
ACTIVE (녹색) |
완전 동작 CC는 완전히 동기화되고 클러스터 전반적 클럭 동기화를 지원한다. 호스트는 (인에이블되어 있는 경우) 인터럽트에 의해 또는 에러 및 상태 인터럽트 레지스터로부터 에러 및 상태 플래그를 판독함으로써 임의의 에러 조건(들) 또는 상태 변동을 통보받는다. BG는 CC와 동기화되어 있다. |
PASSIVE (황색) |
축소 동작, CC 자체 구조 허용됨. CC는 프레임 및 심볼의 전송을 중단하지만, 수신된 프레임은 여전히 처리된다. 클럭 동기화 메카니즘은 수신된 프레임에 기초하여 계속된다. 클러스터 전반적 클럭 동기화에 적극적 기여 없음. 호스트는 (인에이블되어 있는 경우) 인터럽트에 의해 또는 에러 및 상태 인터럽트 레지스터로부터 에러 및 상태 플래그를 판독함으로써 임의의 에러 조건(들) 또는 상태 변동을 통보받는다. CC가 계속하여 ARM, MT 및 BGT 신호를 제공함에 따라 BG는 동기화된 채로 있다. |
COMM_HALT (적색) |
동작 정지. CC 자체 구조가 허용되지 않음. CC는 프레임 및 심볼 처리, 클럭 동기화 처리 및 매크로틱 발생을 중단한다. 호스트는 여전히 에러 및 상태 인터럽트 레지스터로부터 에러 및 상태 플래그를 판독함으로써 에러 및 상태 정보에 액세스한다. BG는 ARM, MT 또는 BGT 신호가 전송되지 않기 때문에 FailSilent 상태에 들어간다. 버스 드라이버가 디스에이블된다. |
5.4.1
클럭
정정 실패 카운터(Clock Correction Failed Counter)
클럭 정정 실패 카운터가 WCP[3:0]에 의해 정의된 클럭 정정 패시브 없는 최대 한계(Maximum Without Clock Correction Passive limit)에 도달할 때, POC는 N0RMAL_ACTIVE에서 NORMAL_PASSIVE 상태로 천이한다. 카운터가 WCF[3:0]에 의해 정의된 클럭 정정 페이탈 없는 최대 한계(Maximum Without Clock Correction Fatal limit)에 도달할 때, POC는 NORMAL_ACTIVE 또는 NORMAL_PASSIVE에서 HALT 상태로 천이한다. 양 한계는 NEM 구성 레지스터에 정의되어 있다.
클럭 정정 실패 카운터 CCFC[3:0]는 CC가 기동 단계를 통과한 후에 호스트로 하여금 노드가 클럭 정정 항을 계산할 수 없는 지속 기간을 모니터링할 수 있게 해 준다. 이 카운터는, 누락 오프셋 정정 신호 MOCS 또는 누락 레이트 정정 신호 MRCS가 세트되어 있는 경우, 임의의 홀수 번호 통신 사이클의 끝에서 1씩 증가된다. 카운터 및 2개의 플래그는 클럭 정정 상태 1 레지스터에 위치하고 있다.
클럭 정정 실패 카운터는, 누락 오프셋 정정 신호도 누락 레이트 정정 신호도 활성이 아닌 경우, 홀수 통신 사이클의 끝에서 0으로 리셋된다.
NEM 구성 레지스터에 정의되어 있는 클럭 정정 페이탈 없는 최대(Maximum Without Clock Correcion Fatal) 값 WCF[3:0]에 도달할 때 클럭 정정 실패 카운터는 증가를 중단한다(즉, 그의 최대값에서 카운터를 증가시키는 것은 카운터를 0으로 다시 "되돌아가게" 하지 않는다). CC가 CONFIG에서 READY 상태로의 천이를 수행할 때, 클럭 정정 실패 카운터는 0으로 초기화된다.
5.4.2 수동-능동 카운터(Passive to Active Counter)
수동-능동 카운터는 POC의 NORMAL_PASSIVE에서 NORMAL_ACTIVE 상태로의 천이를 제어한다. SUC 구성 레지스터 1에서의 PTA[4:0]는 CC가 NORMAL_PASSIVE에서 NORMAL_ACTIVE 상태로 천이할 수 있기 이전에 유효한 클럭 정정 항을 가져야만 하는 연속적인 짝수/홀수 사이클 쌍의 수를 정의한다. PTA[4:0]가 0으로 설정되어 있는 경우, CC는 NORMAL_PASSIVE에서 NORMAL_ACTIVE 상태로 천이할 수 없다.
5.4.3 HALT
커맨드
(HALT Command)
호스트가 에러 조건을 검출하는 경우, 호스트는, HALT 커맨드를 어써트함으로써, CC를 HALT 상태로 가게 할 수 있다. 이것은 SUC 구성 레지스터 1에서 CMD[3:0] = "0110"을 기록함으로써 행해질 수 있다. NORMAL_ACTIVE 또는 NORM AL_PASSIVE 상태에서 호출될 때, POC는 그 다음 end_of_cycle에서 HALT 상태로 천이한다. 임의의 다른 상태에서 호출되는 경우, CMD[3:0]는 "0000" = command_not_valid로 리셋되고 에러 인터럽트 레지스터에서의 비트 CNV는 '1'로 세트된다. 인에이블되어 있는 경우, 호스트에 대한 인터럽트가 발생된다.
5.4.4 FREEZE
커맨드
(FREEZE Command)
호스트가 심각한 에러 조건을 검출하는 경우에, 호스트는 FREEZE 커맨트를 어써트함으로써 CC를 HALT 상태로 가게 한다. 이것은 SUC 구성 레지스터 1에서 CMD[3:0] = "0111"를 기록함으로써 행해질 수 있다. FREEZE 커맨드는 실제 POC 상태에 상관없이 즉각적으로 HALT 상태의 진입을 트리거한다.
5.5 통신 제어기 상태(Communication Controller States)
5.5.1 통신 제어기 상태도(Communication Controller State Diagram)
도 9: 이-레이 통신 제어기의 전체 상태도
상태 천이는 외부 핀 eray_reset 및 eray_rxdl,2, POC 상태 머신에 의해 또한 SUC 구성 레지스터 1에 위치하고 있는 CHI 커맨드 벡터 CMD[3:0]에 의해 제어된다.
<표 13> 이-레이 전체 상태 머신의 상태 천이
T# |
조건 |
에서 |
로 |
1 |
하드웨어 리셋 |
HW 리셋 |
CONFIG |
2 |
언로크 시퀀스에 뒤이어서 커맨드 MONITOR_MODE, CMD[3:0] = "1100"가 옴 |
CONFIG |
MONITOR_MODE |
3 |
커맨드 CONFIG, CMD[3:0] = "0001" |
MONITOR_MODE |
CONFIG |
4 |
언로크 시퀀스에 뒤이어서 커맨드 READY, CMD[3:0] = "0010"이 옴 |
CONFIG |
READY |
5 |
커맨드 CONFIG, CMD[3:0] = "0001" |
READY |
CONFIG |
6 |
커맨드 WAKEUP, CMD[3:0] = "0011" |
READY |
WAKEUP |
7 |
완료, 웨이크업 패턴의 전송 비중단 OR WUS 수신 OR 프레임 헤더 수신 OR 커맨드 READY, CMD[3:0] = "0010" |
WAKEUP |
READY |
8 |
커맨드 RUN, CMD[3:0] = "0100" |
READY |
STARTUP |
9 |
성공적인 기동 |
STARTUP |
NORMAL_ACTIVE |
10 |
클럭 정정 실패 카운터가 WCP[3:0]에 의해 구성된 클럭 정정 패시브 없는 최대 한계에 도달함 |
NORMAL_ACTIVE |
NORMAL_PASSIVE |
11 |
유효한 정정 항의 수가 PTA[4:0]에 의해 구성된 능동-수동 한계에 도달함 |
NROMAL_PASSIVE |
NORMAL_ACTIVE |
12 |
커맨드 READY, CMD[3:0] = "0010" |
STARTUP, NORMAL_ACTIVE, NORMAL_PASSIVE |
READY |
13 |
클럭 정정 실패 카운터가 WCF[3:0]에 의해 구성된 클럭 정정 페이탈 없는 최대 한계에 도달함 |
NORMAL_ACTIVE |
HALT |
14 |
클럭 정정 실패 카운터가 WCF[3:0]에 의해 구성된 클럭 정정 페이탈 없는 최대 한계에 도달함 |
NORMAL_PASSIVE |
HALT |
15 |
커맨드 FREEZE, CMD[3:0] = "0111" |
모든 상태 |
HALT |
16 |
커맨드 CONFIG, CMD[3:0] = "0001" |
HALT |
CONFIG |
5.5.2
CONFIG
상태(
CONFIG
State)
CONFIG 상태에서, CC가 정지된다. 모든 구성 레지스터는 액세스가능하고, 물리 계층에 대한 핀은 그의 비활성 상태에 있다. 이 상태는 CC 구성을 초기화하는 데 사용된다.
하드웨어 리셋으로부터 빠져나올 때(외부 리셋 신호 eray_reset가 디어써트될 때)
MONITOR 상태, READY 상태 또는 HALT 상태로부터 빠져나올 때,
CC가 이 상태에 들어간다.
CONFIG 상태로부터 나오기 위해, 호스트는 섹션 4.3.3 로크 레지스터(LCK)에 기술된 바와 같이 언로크 시퀀스를 수행해야만 한다. CONFIG 상태를 언로크한 직후에, 호스트는 그 다음 상태에 들어가기 위해 SUC 구성 레지스터 1에서의 CMD[3:0]을 기록해야만 한다.
5.5.3 MONITOR 상태(MONITOR State)
CONFIG 상태를 언로크하고 CMD[3:0] = "1100"를 기록한 후에, CC는 MONITOR 상태에 들어간다. 이 상태에서, CC는 플렉스레이 프레임 및 CAS/MTS 심볼을 수신할 수 있다. CC는 또한 코딩 에러를 검출할 수 있다. 수신된 프레임의 시간 무결성이 검사되지 않는다. 이 상태는 플렉스레이 네트워크의 기동이 실패하는 경우에 디버깅을 위해 사용될 수 있다. CMD [3:0] = "0001"를 기록한 후에, CC는 다시 CONFIG 상태로 천이한다.
5.5.4 READY 상태(READY State)
CONFIG 상태를 언로크하고 CMD[3:0] = "0010"를 기록한 후에, CC는 READY 상태에 들어간다. 이 상태로부터, CC는 WAKEUP 상태로 천이하여 클러스터 웨이크업을 수행하거나 STARTUP 상태로 천이하여 콜드스타트를 수행하거나 실행 중인 통신에 통합할 수 있다.
CMD[3:0] = "0010"(READY 커맨드) 기록함으로써 CONFIG, WAKEUP, STARTUP, NORMAL_ACTIVE, 또는 NORMAL_PASSIVE 상태로부터 빠져나올 때,
CC는 이 상태에 들어간다.
CC는 이 상태로부터
CMD[3:0] = "0001" (CONFIG 커맨드)를 기록함으로써 CONFIG 상태로
CMD[3:0] = "0011 " (WAKEUP 커맨드)를 기록함으로써 WAKEUP 상태로
CMD[3:0] = "0100" (RUN 커맨드)를 기록함으로써 STARTUP 상태로
빠져나간다.
5.5.5
WAKEUP
상태(
WAKEUP
State)
콜드스타트 기능을 갖는, STARTUP에 들어가는 임의의 노드(CSI = '0'을 갖는 기동 노드)는 연결된 양 채널이 어웨이크(awake)되도록 해주어야만 한다. 그렇지 않으면, 노드가 기동 절차를 시작하기 이전에 클러스터가 어웨이크되도록(또는 적어도 웨이크업이 트리거되도록) 보장될 수 없다.
클러스터 웨이크업에 대한 최소 요건은 모든 버스 드라이버가 전력을 공급받아야 한다는 것이다. 버스 드라이버는 그의 채널 상으로 웨이크업 심볼을 수신할 때 그의 노드의 다른 컴포넌트를 웨이크업하는 기능을 갖는다. 클러스터 내의 적어도 하나의 노드는 외부 웨이크업 소스를 필요로 한다.
도 10: POC 상태 WAKEUP의 구조
<표 14> 상태 천이 WAKEUP
T# |
조건 |
에서 |
로 |
1 |
커맨드 WAKEUP, CMD[3:0] = "0011" |
READY |
WAKEUP_LISTEN |
2 |
WUS 또는 프레임 헤더의 수신을 기다림 |
WAKEUP_LISTEN |
WAKEUP_LISTEN |
3 |
WUS 또는 프레임 헤더를 수신함 |
WAKEUP_LISTEN |
READY |
4 |
웨이크업 OR 웨이크업 노이즈 타이머 만료 AND 아이들 상태에서 웨이크업 채널이 SUC 구성 레지스터 1에서의 비트 WUCS에 의해 선택됨 AND 커맨드 WAKEUP, CMD[3:0]="0011" |
WAKEUP_LISTEN |
WAKEUP_SEND |
5 |
완료, 웨이크업 패턴의 전송 비중단 |
WAKEUP_SEND |
READY |
6 |
충돌 검출됨 |
WAKEUP_SEND |
WAKEUP_DETECT |
7 |
이하의 이벤트 중 하나가 READY 상태로의 천이를 트리거함: 웨이크업 타이머 만료됨 OR 웨이크업 심볼 검출됨 OR 프레임 헤더 수신됨 |
WAKEUP_DETECT |
READY |
8 |
호스트가 커맨드 READY, CMD[3:0]="0010"에 의해 READY 상태로의 변경을 명령함 |
모든 웨이크업 상태 |
READY |
호스트는 웨이크업 절차를 완전히 제어한다. 이는 버스 드라이버 및 CC에 의해 클러스터의 상태에 관해 통보를 받으며 또한 클러스터 웨이크업을 수행하도록 버스 가디언(이용가능한 경우) 및 CC를 구성한다. CC는 그의 이용가능한 채널 각각을 통해 개별적으로 호스트에 특수 웨이크업 패턴(웨이크업 심볼)을 전송하는 기능을 제공한다.
한번에 단 하나의 채널을 통해 웨이크업이 수행될 수 있다. CC는 이 채널 상에서 진행 중인 통신이 방해되지 않도록 보장한다. CC는 웨이크업 패턴의 전송으로 인해 구성된 채널에 연결된 모든 노드가 어웨이크되도록 보장할 수 없는데, 그 이유는 이들 노드가 기동 단계 때까지 피드백을 제공하지 않기 때문이다.
일반적으로, 수신 노드의 버스 드라이버는 웨이크업 패턴을 인식하고 노드 웨이크업을 트리거한다. CC는 웨이크업 및 기동 단계 동안에만 웨이크업 패턴을 인식할 필요가 있다.
웨이크업 절차는 2-채널 시스템에서 단일-채널 장치가, 그가 연결되어 있는 단일 채널을 통해 웨이크업 패턴을 전송하는 것만으로, 웨이크업을 트리거할 수 있게 해준다. 다른(기동) 노드는 이어서 다른 채널을 웨이크시킬 책임을 지고 있다.
웨이크업 절차는 임의의 수의 노드가 동시에 단일 채널을 웨이크업하도록 시도하는 것을 허용하며, 단지 하나의 노드가 패턴을 전송하도록 이 상황을 해결한다. 게다가, 웨이크업 패턴은 충돌 탄성적이며, 따라서 2개의 노드가 동시에 웨이크업 패턴을 전송하게 하는 고장의 존재 시에도, 그 결과 생긴 충돌된 신호가 여전히 다른 노드를 웨이크할 수 있다.
웨이크업은 WAKEUP_LISTEN 상태 동안에만 CC에 의해 인식된다. CC를 웨이크업시킨 후에, CC는 READY 상태로 복귀하고, 상태 인터럽트 레지스터에서의 비트 WST를 세트시킴으로써 웨이크업 상태의 변화를 호스트에 알려준다. 웨이크업 상태 벡터 WSV[2:0]는 CC 상태 및 에러 벡터 레지스터로부터 판독될 수 있다. 유효한 웨이크업 심볼이 수신된 경우, 역시 상태 인터럽트 레지스터에서의 비트 WUSA 또는 WUSB가 세트된다. 웨이크업으로부터 복귀한 후에, 호스트는 STARTUP 상태에 들어가도록 CC를 구성해야만 한다.
호스트는 웨이크업의 가능한 실패를 알고 있고 그에 따라 동작해야만 한다. 다른 기동 노드가 어웨이크되고 구성되는 데 걸리는 최소 시간으로 웨이크업을 야기한 노드의 임의의 가능한 기동 시도를 지연시키는 것이 바람직하다.
어떤 유형의 고장을 방지하기 위해, 단일의 CC가 양 채널을 어웨이크해서는 안된다. 그 대신에, 2개의 서로 다른 CC가 2개의 채널을 어웨이크해야만 한다.
WAKEUP_LISTEN 상태는 2개의 μT 타이머, 웨이크업 타이머 및 웨이크업노이즈 타이머에 의해 제어된다. 웨이크업 타이머는 노이즈 없는 환경에서 빠른 클러스터 웨이크업을 가능하게 해주는 반면, 웨이크업노이즈 타이머는 노이즈 간섭에 관한 보다 어려운 조건 하에서 웨이크업을 가능하게 해준다.
5.5.5.1 호스트 활동(Host activities)
호스트는 BG 및 CC 웨이크업 모드를 조정해야만 한다. 호스트는 2개의 채널의 웨이크업을 조정해야만 하며 특정의 채널을 웨이크할지 여부를 결정해야만 한다. 웨이크업 시퀀스의 전송은 호스트에 의해 개시되고 CC에 의해 발생된다. 웨이크업 시퀀스는 원격 BD에 의해 검출되고 그의 로컬 호스트로 전달된다.
호스트에 의해 제어되는 웨이크업 절차
BG 제1 채널에 대해 WAKEUP에 들어가도록 명령함(BG가 설치된 경우)
- CC는 WAKEUP_LISTEN에 들어가고 vdWakeup의 만료를 기다림
- CC는 WAKEUP_SEND에 들어가고 웨이크업 패턴을 전송함
- CC는 READY 상태로 복귀함
- CC는 웨이크업 시도의 상태를 호스트에 알려줌
BG 제1 채널에 대해 웨이크업에서 빠져나오도록 명령함(BG가 설치된 경우)
필요한 경우 제2 채널을 웨이크업시키기 위해 상기 단계들을 반복함
콜드스타트 금지 플래그(CSI)를 세트시키고 CC에 대해 INTEGRATION_LISTEN 상태에 들어가도록 명령함
다른 노드들이 그 자신을 웨이크업 및 구성할 수 있도록 해주기 위해 미리 정해진 시간을 기다림
콜드스타트 금지 플래그(CSI)를 리셋시키고 CC에 대해 COLDSTART_LISTEN 상태에 들어가도록 명령함
BD에 의해 트리거되는 웨이크업 절차:
BD가 호스트의 전원 켜기를 트리거함(요구되는 경우)
필요한 경우 호스트가 제2 채널의 웨이크업을 명령하고 다른 노드들이 그 자신을 웨이크업하고 구성할 수 있도록 해주기 위해 미리 정해진 시간 기다림
호스트가 CC에 대해 STARTUP 상태에 들어가도록 명령함
5.5.5.2
웨이크업
심볼(
WUS
)
WUS는 PRT 구성 레지스터 1, 2에 의해 구성된다.
최대 2개의 전송 노드에 대해 충돌 탄성적임, 2개의 중복하는 웨이크업 심볼이 여전히 인식가능함
구성가능한 수의 반복 pWakeupPattern(2..63)
웨이크업을 위해 적어도 2개의 Tx-웨이크업 심볼이 필요함
단일 채널 웨이크업, 웨이크업 심볼이 동시에 양 채널을 통해 전송될 수 없음
버스 상에서의 활동을 리스닝하기 위해 gdWakeupSymbolTxIdle 시간이 사용됨
도 11: 웨이크업 패턴의 타이밍
5.5.6 STARTUP 상태
클러스터 웨이크업은 기동을 위해 정의된 모든 메카니즘이 적절히 동작하도록 보장하기 위해 통신 기동에 선행되어야만 한다. 기동 동안에, 노드는 기동 프레임만을 전송할 수 있다.
모든 노드 및 스타가 완전히 어웨이크되기 위해 또 구성되기 위해 동일한 양의 시간을 필요로 하는 것으로 가정할 수 없다. 적어도 2개의 노드가 클러스터 통신을 기동시키는 데 필요하기 때문에, 다른 기동 노드가 어웨이크되는데, 구성되는 데 또한 기동에 들어가는 데 걸리는 최소 시간만큼 웨이크업을 야기하는 노드의 임의의 잠재적인 기동 시도를 지연시키는 것이 바람직하다. 모든 노드 및 스타가 전부 어웨이크되고 구성되기 이전에 (사용되는 하드웨어에 따라) 수백 밀리초가 필요할 수 있다.
모든 노드의 초기 동기화를 위해 고장-허용 분산 기동 전략이 지정된다. 일반적으로, 노드는 스케쥴 동기화를 개시하는 콜드스타트 경로를 통해 또는 기존의 통신 스케쥴에 통합하는 통합 경로를 통해 NORMAL_ACTIVE 상태에 들어갈 수 있다.
콜드스타트 시도는 충돌 회피 심볼(CAS)의 전송으로 시작된다. CAS를 전송한 기동 노드만이 CAS 이후의 처음 4개의 사이클에서 프레임을 전송하며, 이는 이어서 먼저 다른 기동 노드에 의해 또한 그 이후에는 모든 다른 노드에 의해 개입된다.
각각의 기동 프레임은 또한 동기 프레임일 수도 있으며, 따라서 각각의 기동 노드는 또한 동기 노드이다. 콜드스타트 시도의 수는 SUC 구성 레지스터 1에서의 CSA[4:0]에 의해 구성된다.
각각의 클러스터에서, 적어도 2개의 노드가 기동 노드이도록 구성되어야만 한다. 4개 이상의 노드가 기동 노드인 것으로 구성될 수 있는 반면, 클러스터는 기동 알고리즘의 어떤 특성으로부터 이득을 보지 않는다. 클러스터가 기동하는 데 적어도 2개의 고장없는 기동 노드가 필요하다.
클러스터를 능동적으로 기동시키는 기동 노드는 또한 "선두 기동 노드(leading Startup node)"라고 한다. 다른 기동 노드 상에 통합되는 기동 노드는 또한 "후속 기동 노드(following Startup node)"라고 한다.
비기동 노드는 통합을 위해 서로 다른 노드로부터의 적어도 2개의 기동 프레임을 필요로 한다.
비기동 노드 및 기동 노드 모두는, 동기 프레임(이 동기 프레임으로부터 TDMA 스케쥴 정보를 도출함)을 수신하자마자, 통합 경로를 통해 수동 통합을 시작한다. 통합 동안에, 노드는 그 자신의 클럭을 글로벌 클럭(레이트 및 오프셋)에 맞추어야만 하고, 그의 사이클 시간이 네트워크에서 관찰가능한 글로벌 스케쥴과 일치하도록 해야만 한다. 그 후에, 이들 설정은 모든 이용가능한 네트워크 노드와 일관성이 있는지 검사된다. 이 노드는 이들 검사에 통과한 경우에만 통합 단계에서 빠져나올 수 있고 또 통신에 적극적으로 참여할 수 있다.
도 12: 상태도 시간-트리거 기동
5.5.6.1 콜드스타트-금지(
ColdStart
-Inhibit)
모드
콜드스타트 금지 모드에서, 노드는 TDMA 통신 스케쥴을 초기화하지 못하게 되어 있다. 호스트가 SUC 구성 레지스터 1에서의 비트 CSI를 세트시킨 경우, 이 노드는 클러스터 통신을 초기화할 수 없다, 즉 콜드스타트 경로에 들어가는 것이 금지되어 있다. 이 노드는 다른 기동 노드가 클러스터 통신의 초기화를 시작한 후에 실행중인 클러스터에 통합되거나 기동 프레임을 전송할 수 있다.
콜드스타트 금지 비트 CSI는 CONFIG 또는 READY 상태에서만 세트될 수 있다. CSI는 READY 상태에서 빠져 나온 후에는 세트될 수 없지만, 언제라도 클리어될 수 있다.
5.5.6.2 기동 타임아웃(Startup Timeout)
CC는 2개의 타임아웃 값, 즉 기동 타임아웃 및 기동노이즈 타임아웃을 지원하는 2개의 서로 다른 μT 타이머를 유지한다. 2개의 타이머는, CC가 COLDSTART_LISTEN 상태에 들어갈 때, 리셋된다. 이들 타이머 중 어느 하나의 만료는 노드로 하여금 통신을 기동시키기 위해 초기 감지 단계(COLDSTART_LISTEN 상태)에서 빠져나가게 한다.
유의할 점: 기동 및 기동노이즈 타이머는 웨이크업 및 웨이크업노이즈 타이 머와 동일하며, SUC 구성 레지스터 2로부터의 동일한 구성 값을 사용한다.
기동 타임아웃
기동 타임아웃은 다른 노드들의 통합을 적극적으로 요청하는 다른 노드들 간에 또는 적어도 하나의 기동 노드 간에 이미 통신이 있는지를 판정하기 위해 노드에 의해 사용되는 리슨 시간을 제한한다.
기동 타이머는 SUC 구성 레지스터 2에서의 LT[20:0](pdListenTimeout)를 프로그램함으로써 구성된다.
기동 타이머는 이하의 때에 리셋된다.
COLDSTART_LISTEN 상태에 들어갈 때
노드가 COLDSTART_LISTEN 상태에 있는 동안에 구성된 채널들 중 하나 상에서 통신 채널 활동이 검출되는 경우
구성된 채널들 중 하나의 채널 상태가 활성인 한, 이 타이머는 계속하여 리셋되어 있다. 이 타이머는, 모든 채널에 대해 채널 아이들 상태에 도달되면, 카운팅을 재개하고, 이 노드는 여전히 COLDSTART_LISTEN 상태에 있다.
기동 타임아웃이 만료되면, 타이머의 오버플로우도 주기적 재시작도 수행되지 않는다. 기동 상태 머신에 의한 추가적인 처리를 위해 타이머 상태가 유지된다.
기동노이즈 타임아웃
기동 타이머가 처음으로 시작되는 것(STARTUP_PREPARE 상태에서 COLDSTART_LISTEN 상태로의 천이)과 동시에, 기동노이즈 타이머가 기동된다. 이 부가적인 타임아웃은 노이즈의 존재 시에 기동 절차의 신뢰성을 향상시키기 위해 사용된다.
기동노이즈 타이머는 SUC 구성 레지스터 2에서의 LTN[3:0](gListenNoise)를 프로그래밍함으로써 구성된다.
기동노이즈 타이머는 이하의 때에 리셋된다.
COLDSTART_LISTEN 상태에 들어갈 때
노드가 COLDSTART_LISTEN 상태에 있는 동안에 정확하게 디코딩된 헤더 또는 CAS 심볼의 수신 시에
기동노이즈 타임아웃이 만료되면, 타이머의 오버플로우도 주기적 재기동도 수행되지 않는다. 이 상태는 기동 상태 머신에 의한 추가적인 처리를 위해 유지된다.
채널 활동이 감지되는 경우 기동노이즈 타이머가 리셋되지 않기 때문에, 이 타임아웃은 노드가 노이즈의 존재 시에도 통신 클러스터를 기동시키려고 시도하도록 보장하기 위해 폴백 솔루션(fallback solution)을 정의한다. 한편, 리셋 조건을 정의함으로써, 콜드스타트 진입의 동기화가 여전히 보장된다.
5.5.6.3 기동 노드 개시 콜드스타트의 경로
기동 노드가 COLDSTART_LISTEN에 들어갈 때, 기동 노드는 그의 연결된 채널을 리스닝하고 플렉스레이 프레임을 수신하려고 시도한다.
통신이 검출되지 않는 경우, 노드는 COLDSTART_COLLISION_RESOLUTION 상태에 들어가고 콜드스타트 시도를 시작한다. CAS 심볼의 초기 전송에 뒤이어서 첫번째 정규 사이클이 온다. 이 사이클은 번호 0을 갖는다.
사이클 0부터 계속하여, 노드는 그의 기동 프레임을 전송한다. 각각의 기동 노드가 콜드스타트 시도를 수행할 수 있기 때문에, 몇개의 노드가 동시에 CAS 심볼을 전송하고 콜드스타트 경로에 들어가는 일이 일어날 수 있다. 이 상황은 CAS 전송 이후에 처음 4개의 사이클 동안에 해결된다.
콜드스타트 시도를 개시하는 노드가 이들 4개의 사이클 동안에 CAS 심볼 또는 프레임 헤더를 수신하자마자, 이 노드는 COLDSTART_LISTEN 상태에 다시 들어간다. 그에 의해, 단지 하나의 노드만이 이 경로에 남는다. 사이클 4에서, 다른 기동 노드는 그의 기동 프레임을 전송하기 시작한다.
COLDSTART_COLLISION_RESOLUTION 상태에서의 4 사이클 이후에, 콜드스타트를 개시한 노드는 COLDSTART_CONSISTENCY_CHECK 상태에 들어간다. 이 노드는 사이클 4 및 5로부터 모든 기동 프레임을 수집하고 클럭 정정을 수행한다. 클럭 정정이 어떤 에러도 야기하지 않고 또 노드가 적어도 하나의 유효 기동 프레임 쌍을 수신한 경우, 노드는 COLDSTART_CONSISTENCY_CHECK에서 나와서 NORMAL_ACTIVE 상태에 들어간다.
노드가 수행할 수 있는 콜드스타트 시도의 횟수는 SUC 구성 레지스터 1에서의 CSA[4:0]에 의해 구성된다. 나머지 시도의 횟수는 각각의 시도된 콜드스타트에 대해 1씩 감소된다. 이 변수가 1보다 큰 경우에만 노드는 COLDSTART_LISTEN 상태에 들어갈 수 있고, 이 변수가 0보다 큰 경우에만 노드는 COLDSTART_COLLISION_RESOLUTION 상태에 들어갈 수 있다. COLDSTART_LISTEN 상태 에 들어가기 위해서는 1보다 큰 값이 필요한데, 그 이유는 콜드스타트 시도가 실패할 수 있는 충돌 해결을 수행하기 위해 한번의 콜드스타트 시도가 사용될 수 있기 때문이다.
5.5.6.4 기동 노드 통합의 경로
기동 노드가 COLDSTART_LISTEN 상태에 들어갈 때, 이 노드는 기동 프레임의 유효한 쌍을 수신하여 그로부터 그의 스케쥴 및 클럭 정정을 도출하려고 시도한다.
유효한 기동 프레임이 수신되자마자, INITIALIZE_SCHEDULE 상태에 들어간다. 클럭 동기화가 성공적으로 일치하는 두번째 유효 기동 프레임을 수신하고 이것으로부터 스케쥴을 도출할 수 있는 경우, INTEGRATION_COLDSTART_CHECK 상태에 들어간다.
INTEGRATION_COLDSTART_CHECK 상태에서, 클럭 정정이 정확하게 수행될 수 있고 또한 이 노드가 그의 스케쥴을 초기화한 기동 노드가 여전히 이용가능하도록 보장된다. 이 상태에서 첫번째 더블-사이클 동안에, 2개의 유효한 기동 프레임 쌍 또는 이 노드가 통합된 노드의 기동 프레임 쌍이 수신되어야만 한다. 이 상태에서의 첫번째 더블-사이클의 끝에서 통합 시도가 중단되지 않은 경우, COLDSTART_JOIN 상태에 들어간다.
COLDSTART_JOIN 상태에서, 기동 노드의 통합은 그 자신의 기동 프레임을 전송하기 시작한다. 그에 의해, 콜드스타트를 기동시킨 노드 및 그에 참가하는 노드는 그의 스케쥴이 서로 일치하는지를 검사할 수 있다. 그 다음 3 사이클 동안에 클럭 정정이 에러를 신호하지 않고 또 적어도 하나의 다른 기동 노드가 보이는 경 우, 이 노드는 COLDSTART_JOIN 상태에서 나와서 NORMAL_ACTIVE 상태에 들어간다. 그에 의해, 이 노드는 콜드스타트를 개시한 노드보다 적어도 한 사이클 이후에 STARTUP에서 나온다.
5.5.6.5
비기동
노드 통합의 경로
비기동 노드가 INTEGRATION_LISTEN 상태에 들어갈 때, 이 노드는 그의 연결된 채널을 리스닝하고 플렉스레이 프레임을 수신하려고 시도한다.
유효한 기동 프레임이 수신되자마자, INITIALIZE_SCHEDULE 상태에 들어간다. 클럭 동기화가 일치하는 두번째 유효 기동 프레임을 성공적으로 수신하고 이것으로부터 스케쥴을 도출할 수 있는 경우, INTEGRATION_CONSISTENCY_CHECK 상태에 들어간다.
INTEGRATION_CONSISTENCY_CHECK 상태에서, 클럭 정정이 정확하게 수행될 수 있는지 및 충분한 기동 노드(적어도 2개)가 노드 자신의 스케쥴과 일치하는 기동 프레임을 전송하는지가 검증된다. 적어도 2개의 기동 노드로부터 2개의 연속적인 더블-사이클에 대한 유효한 기동 프레임 쌍을 수신한 후에, 이 노드는 INTEGRATION_CONSISTENCY_CHECK 상태에서 나와서 N0RMAL_ACTIVE 상태 또는 NORMAL_PASSIVE 상태에 들어간다. 그에 의해, 이 노드는 콜드스타트를 개시한 노드보다 적어도 2 사이클 이후에 STARTUP에서 빠져나온다. 이것은 클러스터의 모든 노드가 사이클 7의 끝에서 사이클 8에 들어가기 직전에 STARTUP에서 빠져나올 수 있음을 의미한다.
5.5.7 NORMAL_ACTIVE 상태
첫번째 CAS 심볼을 전송한 노드(잠재적인 액세스 충돌을 해결하고 콜드스타트 경로를 통해 STARTUP에 들어감) 및 하나의 부가적인 노드가 NORMAL_ACTIVE 상태에 들어가자마자, 클러스터의 기동 단계가 완료된다. NORMAL_ACTIVE 상태에서, 모든 구성된 메시지는 전송을 위해 스케쥴링된다. 이것은 동기 프레임 뿐만 아니라 모든 데이터 프레임을 포함한다. 레이트 및 오프셋 측정은 모든 짝수 사이클에서 시작된다(짝수/홀수 사이클 쌍이 필요함).
NORMAL_ACTIVE 상태에서, CC는 정규의 통신 기능을 지원한다.
CC는 구성된 바와 같이 플렉스레이 버스를 통해 전송 및 수신을 수행함
CC는 그 상태로부터 빠져나와 이하의 상태로 된다.
CMD[3:0] = "0110"(HALT 커맨드)을 기록함으로써 HALT 상태로
CMD[3:0] = "0111" (FREEZE 커맨드)을 기록함으로써 HALT 상태로
ACTIVE에서 COMM_HALT로의 에러 상태의 변화로 인해 HALT 상태로
ACTIVE에서 PASSIVE로의 에러 상태의 변화로 인해 NORMAL_PASSIVE 상태로
CMD[3:0] = "0010" (READY 커맨드)를 기록함으로써 READY 상태로
5.5.8 NORMAL_PASSIVE 상태
에러 상태가 ACTIVE (녹색)에서 PASSIVE (황색)으로 변화할 때 NORMAL_ACTIVE 상태에서 NORMAL_PASSIVE 상태에 들어간다.
NORMAL_PASSIVE 상태에서, 노드는 모든 프레임을 수신할 수 있다(노드는 완 전히 동기화되어 있고 클럭 동기화를 수행한다). NORMAL_ACTIVE 상태와 비교하여, 이 노드는 적극적으로 통신에 참여하지 않는다, 즉 심볼도 프레임도 전송되지 않는다.
NORMAL_PASSIVE 상태에서,
CC는 구성되어 있는 경우 플렉스레이 버스를 통해 수신을 수행함
CC는 플렉스레이 버스를 통해 어떤 프레임도 전송하지 않음
CC는 이 상태에서 빠져나와 이하의 상태로 된다.
CMD[3:0] = "0110" (HALT 커맨드)를 기록함으로써 HALT 상태로
CMD[3:0] = "0111" (FREEZE 커맨드)를 기록함으로써 HALT 상태로
ACTIVE 또는 PASSIVE에서 COMM_HALT로의 에러 상태의 변화로 인해 HALT 상태로
PASSIVE에서 ACTIVE로의 에러 상태의 변화로 인해 NORMAL_ACTIVE 상태로. 이 천이는 CC 상태 및 에러 벡터 레지스터로부터의 PTAC[4:0]가 SUC 구성 레지스터 1에 정의된 PTA[4:0]와 같을 때 일어난다.
CMD[3:0] = "0010" (READY 커맨드)를 기록함으로서 READY 상태로
5.5.9 HALT 상태
호스트가 SUC 구성 레지스터에서의 CMD[3:0] = "0110" (HALT 커맨드)을 '1'로 기록할 때, 현재 통신 사이클이 완료된 후에 CC는 HALT 상태에 들어간다.
호스트가 SUC 구성 레지스터에서의 CMD[3:0] = "0111" (FREEZE 커맨드)를 '1'로 기록할 때, CC는 즉각적으로 HALT 상태에 들어가고 CC 상태 및 에러 벡터 레지스터에서의 FSI 비트를 세트시킨다.
이 상태에서, 모든 통신(수신 및 전송)이 중단되고, 호스트는 모든 내부 클럭을 정지시킴으로써 CC를 전력 절감 모드에 들어가게 할 수 있다.
CC가 HALT 상태에서 CONFIG 상태로 천이할 때, 모든 구성 및 상태 데이터가 분석을 행하기 위해 유지된다. CONFIG 상태에서 빠져나오기 이전에, 호스트는 고장 없는 구성을 복원해야만 한다. CC가 CONFIG에서 READY 상태로 천이할 때, 모든 내부 카운터 및 CC 상태 플래그는 리셋된다.
유의할 점: 메시지 RAM에 저장된 상태 데이터는 하드웨어 리셋에 의해 또는 POC의 CONFIG에서 READY 상태로의 천이에 의해 영향을 받지 않는다.
5.6 네트워크 관리
네트워크 관리(VM) 벡터는 네트워크 관리 레지스터 1..3에 위치하고 있다. CC는 NM 표시 비트가 세트되어 있는 모든 수신된 유효 NM 프레임 중에서 모든 NM 벡터에 걸쳐 논리적 OR 연산을 수행한다. CC는 각각의 사이클의 끝에서 NM 벡터를 갱신한다.
NM 벡터의 길이는 NEM 구성 레지스터에서의 NML[3:0]에 의해 0 내지 12 바이트로 구성될 수 있다. NM 벡터 길이는 클러스터의 모든 노드에서 동일하게 구성되어야만 한다.
NM 표시 비트가 세트되어 있는 플렉스레이 프레임을 전송하도록 전송 버퍼를 구성하기 위해, 각각의 전송 버퍼의 헤더 섹션에서의 IVME 비트가 세트되어야만 한다. 게다가, 호스트는 전송 버퍼의 데이터 섹션에 NM 정보를 기록해야만 한다.
NM 벡터의 평가는 호스트 상에서 실행되는 애플리케이션에 의해 행해져야만 한다.
5.7
필터링
및
마스킹
프레임 필터링은 유효 프레임에서의 특정의 필드를 유효 메시지 버퍼의 대응하는 구성 상수와 대조하여 검사함으로써 행해진다. 요구되는 일치가 있는 경우 프레임은 추가적으로 처리된다. 그렇지 않은 경우, 프레임은 폐기된다.
이하의 프레임 필드를 바탕으로 프레임이 필터링된다.
5.7.1
필터링
메카니즘
이하에 기술되는 필터링 메카니즘은 수신 버퍼, FIFO 버퍼 및 전송 버퍼에 대해 서로 다르게 적용된다.
수신 버퍼, FIFO 버퍼
수락 필터링을 위한 이하의 필터 조합이 허용된다:
사이클 카운터 필터링은 SUC 구성 레지스터 1에서의 비트 CF에 의해 제어된 다.
CF = '0': 사이클 카운터 필터링 디스에이블됨, 디폴트
CF = 'Y: 사이클 카운터 필터링 인에이블됨
CF 비트는 클러스터 내의 모든 노드에 대해 동일하게 구성되어야만 한다.
수신된 메시지를 저장하기 위해, 모든 구성된 필터가 일치해야 한다.
전송 버퍼
이하의 필터 조합이 허용된다:
구성된 채널(들)을 통해 구성된 프레임 ID에 대응하는 타임 슬롯으로 메시지가 전송된다. 사이클 카운터 필터링이 인에이블되어 있는 경우, 구성된 사이클 필터 값도 역시 일치해야 한다. 사이클 카운터 필터링이 디스에이블되어 있는 경우, 동일한 프레임 ID가 구성되어 있는 전송 버퍼가 없어야만 한다.
5.7.2 채널 ID 필터링
메시지 RAM에서의 각각의 메시지 버퍼의 헤더 섹션에 2-비트 채널 필터링 필드(CHA, CHB)가 위치해 있다. 이는 수신 버퍼에 대해 필터로서 역할하고, 전송 버퍼에 대해 제어 필드로서 역할한다(표 15 참조).
수신 버퍼
유효한 수신 프레임이 채널 필터링 필드에 지정된 채널들을 통해 수신되는 경우, 이들은 저장된다. 정적 세그먼트에서, 단지 하나의 수신 버퍼만이 양 채 널(CHA 및 CHB 세트)을 통해 수신하도록 설정되어야만 한다. 다른 필터링 기준도 역시 충족되어야만 한다. 수신 프레임이 수락되어 수신 버퍼에 저장되는 경우, 새 데이터 레지스터에서의 각각의 새 데이터 플래그가 세트된다(ND = '1'). 게다가, 상태 인터럽트 레지스터에서의 RXI 플래그는 '1'로 설정되고, 인에이블되어 있는 경우, 인터럽트가 발생된다.
전송 버퍼
사이클 카운터 필터링 및 프레임 ID 필터링 기준도 역시 만족되는 경우 버퍼의 내용이 채널 필터링 필드에 지정된 채널을 통해서만 전송된다. 정적 세그먼트에서, 단지 하나의 전송 버퍼가 양 채널(CHA 및 CHB 세트)을 통해 전송하도록 설정되어야만 한다. 게다가, 상태 인터럽트 레지스터에서의 TXI 플래그는 '1'로 설정되고, 인에이블되어 있는 경우 인터럽트가 발생된다.
<표 15> 채널 필터링 구성
CHA |
CHB |
전송 버퍼 프레임 전송 |
수신 버퍼 유효 수신 프레임을 저장 |
1 |
1 |
양 채널 상으로 (정적 세그먼트만) |
채널 A 또는 B 상으로 수신됨 (정적 세그먼트만, 유효한 것 먼저 선택) |
1 |
0 |
채널 A 상으로 |
채널 A 상으로 수신됨 |
0 |
1 |
채널 B 상으로 |
채널 B 상으로 수신됨 |
0 |
0 |
전송 없음 |
프레임 무시 |
5.7.3 프레임 ID
필터링
모든 전송 및 전용 수신 버퍼는 헤더 섹션에 저장된 프레임 ID를 포함한다. 이 프레임 ID는 수신 버퍼 및 전송 버퍼에 대해 서로 다르게 사용된다.
수신 버퍼
수신된 메시지는, 채널 ID 및 사이클 카운터 기준도 역시 만족되기만 하다 면, 수신 프레임 ID가 구성된 프레임 ID와 일치하는 경우 제1 수신 버퍼에 저장된다.
전송 버퍼
전송 버퍼의 경우, 구성된 프레임 ID는 메시지 전송에 적절한 슬롯을 결정하는 데 사용된다. 채널 ID 및 사이클 카운터 기준도 역시 만족되기만 하다면, 프레임은 구성된 프레임 ID에 대응하는 타임 슬롯으로 전송된다.
5.7.4 사이클 카운터
필터링
사이클 카운터 필터링은 사이클 세트의 개념에 기초한다. 필터링을 위해, 사이클 세트의 요소들 중 임의의 하나가 일치하는 경우 일치가 검출된다. 사이클 세트는 각각의 메시지 버퍼의 헤더 섹션에서의 사이클 코드 필드에 정의되어 있다.
사이클 세트에 속하는 사이클 번호의 세트는 표 16에 기술된 바와 같이 결정된다.
<표 16> 사이클 세트의 정의
사이클 코드 |
일치하는 사이클 카운터 값 |
ObOOOOOOx |
모든 사이클 |
ObOOOOO1c |
(사이클 카운트)mod2 = c에서 매 2번째 사이클 |
ObOOOO1cc |
(사이클 카운트)mod4 = cc에서 매 4번째 사이클 |
ObOOO1ccc |
(사이클 카운트)mod8 = ccc에서 매 8번째 사이클 |
0b001cccc |
(사이클 카운트)mod16 = cccc에서 매 16번째 사이클 |
0b01ccccc |
(사이클 카운트)mod32 = ccccc에서 매 32번째 사이클 |
0b1cccccc |
(사이클 카운트)mod64 = cccccc에서 매 64번째 사이클 |
이하의 표 17은 사이클 카운터 필터링에 대해 사용될 유효한 사이클 세트에 대한 어떤 예들을 제공한다.
<표 17> 유효한 사이클 세트의 예
사이클 코드 |
일치하는 사이클 카운터 값 |
0b0000011 |
|
0b0000010 |
|
0b0001110 |
|
0b0011000 |
|
0b0100011 |
|
0b1001001 |
|
수신 버퍼
수신 메시지는 수신 사이클 카운터가 수신 버퍼의 사이클 세트의 요소와 일치하는 경우에만 저장된다. 채널 ID 및 프레임 ID 기준도 역시 만족되어야만 한다.
전송 버퍼
사이클 세트의 요소가 현재 사이클 카운터 값과 일치하고 프레임 ID가 슬롯 카운터 값과 일치하는 경우, 버퍼의 내용은 구성된 채널을 통해 전송된다.
5.7.5 FIFO
필터링
FIFO 필터링의 경우, 하나의 차단 필터 및 하나의 차단 필터 마스크가 이용가능하다. FIFO 차단 필터는 채널(2 비트), 프레임 ID(11 비트) 및 사이클 코드(7 비트)를 위해 20 비트로 이루어져 있다. 양 레지스터는 CONFIG 상태에서만 구성될 수 있다. FIFO 버퍼에 속하는 메시지 버퍼의 헤더 섹션에서의 필터 구성은 무시된다.
채널 ID, 프레임 ID 및 사이클 카운터가 구성된 차단 필터 및 차단 필터 마스크에 의해 차단되지 않는 경우 및 일치하는 전용 수신 버퍼가 없는 경우 유효한 수신 프레임은 그 다음 비어있는 FIFO 버퍼에 저장된다.
5.8 전송 프로세스
5.8.1 전송 버퍼
메시지 버퍼의 일부는 각각의 메시지 버퍼의 헤더 섹션에서의 비트 CFG를 '1'로 프로그래밍함으로써 전송 버퍼로서 구성될 수 있다. 이것은 기록 헤더 섹션 1 레지스터를 통해 행해질 수 있다.
메시지 버퍼의 전송을 위한 이하의 방법들이 존재한다.
정적 세그먼트: 채널 A 또는 채널 B, 채널 A 및 채널 B
메시지 핸들러 구성 레지스터 2에서의 SFID[9:0]에 의해 구성되는 프레임 ID를 보유하는 메시지 버퍼는 노드가 기동/동기 노드(SUC 구성 레지스터 1에서의 TXST 및 TXSY에 의해 구성됨)인 경우 기동/동기 프레임을 보유하도록 전용되어 있다. 이는 CONFIG 상태에서만 재구성될 수 있다. 이것은 임의의 노드가 통신 사이클 당 기껏해야 하나의 기동/동기 프레임을 전송하도록 보장해준다. 다른 메시지 버퍼로부터의 기동/동기 프레임의 전송은 가능하지 않다. 기동/동기 프레임의 경우, 동기 비트, 기동 프레임 표시자, 동기 프레임 ID, 페이로드 길이 및 대응하는 헤더 CRC는 CONFIG 상태에서만 변경될 수 있다.
동일한 프레임 ID 및 사이클 카운터 필터 값을 갖는 2개 이상의 전송 버퍼를 구성할 수 없다.
동적 세그먼트에서의 전송 프레임의 경우, 재구성가능 메시지 버퍼가 사용될 수 있다. 프레임 ID, 사이클 필터, 채널 필터 및 헤더 CRC는 런타임 동안에 재구성가능하다. 메시지 RAM(데이터 포인터로 참조)에서의 데이터 섹션의 구성으로 인 해, 페이로드 길이는 CONFIG 상태에서 구성된 값과 관련하여 단축될 수 있다.
CC는 헤더 CRC를 계산하는 기능을 가지고 있지 않다. 호스트는 모든 전송된 프레임에 대해 헤더 CRC를 제공하여야 한다. 네트워크 관리가 필요한 경우, 호스트는 각각의 메시지 버퍼의 헤더 섹션에서의 NME 비트를 '1'로 설정해야만 한다. 이것은 기록 헤더 섹션 1 레지스터를 통해 행해질 수 있다.
모든 메시지(정적 및 동적)에서의 길이 필드는 플렉스레이 프레임 포맷에 정의된 프레임 페이로드 데이터 길이를 반영한다. CC는 정적 세그먼트에서 실제 구성된 데이터 프레임 길이보다 짧은 전송 버퍼 구조를 사용할 수 있다. 이 경우에, CC는 프레임이 적절한 물리적 길이를 갖도록 보장하기 위해 패딩 바이트를 발생한다. 패딩 패턴은 논리적 0이다. 패딩 기능은 정적 세그먼트로 전송될 프레임에만 적용된다.
각각의 전송 버퍼는 호스트로 하여금 정적 세그먼트에서 전송 버퍼의 전송 모드를 구성할 수 있게 해주는 전송 모드 플래그 TXM을 제공한다. 이 비트가 세트되어 있는 경우, 송신기는 단일-샷 모드에서 동작한다. 이 비트가 클리어되어 있는 경우, 송신기는 연속 모드에서 동작한다.
호스트 CPU는 전송 버퍼가 갱신되고 전송 준비가 되어 있을 때 전송 요청 플래그 TXR을 명시적으로 설정한다. 단일-샷 모드에서, CC는 전송이 완료된 후에 TXR 플래그를 리셋시킨다. 이제, 호스트는 그 다음 메시지로 전송 버퍼를 갱신할 수 있다. CC는 전송 요청 플래그 TXR을 다시 세트시킴으로써 호스트가 갱신이 완료되었음을 나타내기 이전에 전송 버퍼로부터 메시지를 전송하지 않는다. 호스트 CPU는 전송 요청 레지스터를 판독함으로써 모든 메시지 버퍼의 TXR 플래그의 실제 상태를 검사할 수 있다.
5.8.2 널 프레임 전송
메시지 버퍼가 "단일-샷 모드"로 구성되어 있는 경우, 구성된 프레임은, 호스트가 전송 요청 플래그 TXR을 설정한 후에 한번만, 송신기에 의해 전송된다. 전송 후에, TXR 플래그는 CC에 의해 리셋된다. 정적 세그먼트에서 호스트가 전송 시간 이전에 전송 요청 플래그를 설정하지 않은 경우 및 일치하는 프레임 ID 및 사이클 카운터 필터를 갖는 다른 전송 버퍼가 없는 경우, CC는 널 프레임 표시 비트가 세트되어 있고 페이로드 데이터가 0으로 설정된 널 프레임을 전송한다.
메시지 버퍼가 "연속 모드"로 구성되어 있는 경우, CC는 전송 이후에 전송 요청 플래그 TXR을 리셋시키지 않는다. 전송 요청 플래그가 세트되어 있는 경우, 프레임은 프레임 ID 및 사이클 카운터 필터가 일치할 때마다 전송된다. 정적 세그먼트에서 호스트가 전송 요청 플래그를 클리어하는 경우, CC는 각각의 슬롯에서 널 프레임 표시 비트가 세트되어 있고 페이로드 데이터가 0인 널 프레임을 전송한다.
이하의 경우에서, CC는 널 프레임 표시 비트가 세트되어 있고 프레임 헤더의 나머지 및 프레임 길이가 변경되지 않은 널 프레임을 전송한다.
모든 전송 버퍼가 현재 사이클과 일치하지 않는 사이클 필터를 갖는 슬롯에 대해 구성됨
일치하는 프레임 ID 및 사이클 카운터가 있지만, 이들 전송 버퍼 중 어느 것도 전송 요청 플래그 TXR이 세트되어 있지 않다.
동적 세그먼트에서 널 프레임이 전송되지 않는다.
5.8.3 정적
세그먼트
정적 세그먼트의 경우, 전송을 위해 보류되어 있는 몇개의 메시지가 있으며, 그 다음 전송 슬롯에 대응하는 프레임 ID를 갖는 메시지가 전송을 위해 선택된다. 정적 세그먼트에 할당된 전송 버퍼의 데이터 섹션은 버퍼의 전송 슬롯보다 한 슬롯 이전까지 갱신될 수 있다.
5.8.4 동적
세그먼트
동적 세그먼트에서, 몇개의 메시지가 보류되어 있는 경우, 최고 우선순위(가장 낮은 프레임 ID)를 갖는 메시지가 그 다음에 선택된다. 가장 큰 정적 프레임 ID보다 더 높은 프레임 ID만이 동적 세그먼트에 허용된다.
동적 세그먼트에서, 서로 다른 미니슬롯 시퀀스가 가능하다(양 채널을 통해 서로 다른 프레임 ID의 동시 전송). 따라서, 보류 중인 메시지는 그의 프레임 ID 및 그의 채널 구성 비트에 따라 선택된다.
MHD 구성 레지스터 1에서의 SLT[12:0]에 의해 구성된 최근 전송의 시작은 사이클의 동적 세그먼트에서 새로운 프레임 전송을 금지하기 이전에 허용된 최대 미니슬롯 값을 정의한다.
모든 활성 전송 버퍼의 프레임 ID(TXR = '1')는 이들 버퍼가 전송될 때까지(TXT = '0') 변경할 수 없다. 이것은 메시지 버퍼의 프레임 ID가 전송되기를 기다리는 동안 그의 변경을 방지한다. 성공적인 전송 후에, 상태 인터럽트 레지스터에서의 전송 인터럽트 플래그가 세트된다(TXI = '1').
5.8.5 프레임 전송
전송 버퍼에 전송 준비를 시키기 위해, 이하의 단계들이 요구된다.
기록 헤더 섹션 1 레지스터에서의 CFG 비트에 '1'을 기록함으로써 메시지 버퍼를 전송 버퍼로서 구성함
입력 버퍼에 전송 메시지(헤더 및 데이터 섹션)를 기록함
입력 버퍼로부터 메시지 RAM으로 전송 메시지를 전송하기 위해 섹션 5.11.1.1 입력 버퍼 -> 메시지 RAM 데이터 전송에 기술된 바와 같이 진행함
입력 버퍼 커맨드 마스크 레지스터에 구성되어 있는 경우, 각각의 메시지 버퍼에 대한 전송 요청 플래그가 전송이 완료되자마자 세트되고, 메시지 버퍼는 전송 준비가 된다.
전송 요청 레지스터 1, 2에서의 TXR 비트(TXR = '0')를 검사함으로써 메시지 버퍼가 전송되었는지 여부를 검사함
유의할 점: 정적 메시지 버퍼에 대한 헤더 섹션의 (재)구성은 CONFIG 상태에서만 허용된다.
5.9 수신 프로세스
5.9.1 수신 버퍼
이-레이 메시지 버퍼의 일부분은 각자의 메시지 버퍼의 헤더 섹션에서의 비트 CFG를 '0'으로 프로그래밍함으로써 전용 수신 버퍼로서 구성될 수 있다.
수신 버퍼를 CC 채널에 할당하는 이하의 방법들이 존재한다.
정적 세그먼트: 채널 A 또는 채널 B, 채널 A 및 채널 B(유효한 것을 먼저 선택)
CC는 플렉스레이 프로토콜 제어기의 시프트 레지스터(채널 A 또는 B)로부터 일치하는 필터 구성을 갖는 전용 수신 버퍼로 유효한 수신 메시지만을 전송한다. 수신 버퍼는 프레임 CRC를 제외한 모든 프레임 요소를 저장할 수 있다. 호스트에 제공된 페이로드 길이 정보는 수신된 페이로드 길이 코드로부터의 갱신된 길이를 반영한다.
슬롯으로 프레임이 수신되지 않거나 오염된 프레임이 수신되는 경우, 수신 이전의 메시지 버퍼 내용이 유지된다. 메시지 버퍼 상태 레지스터에서의 플래그는 문제의 원인을 알려준다.
새 데이터 레지스터 1, 2에서의 새 데이터 플래그 ND는 마지막 판독(ND = '1') 이래로 CC가 각각의 수신 버퍼를 갱신했음을 나타낸다. 수신된 메시지가 메시지 RAM으로부터 출력 버퍼로 전송될 때, 새 데이터 플래그는 메시지 핸들러에 의해 클리어된다(ND = '0').
호스트는 NORMAL_ACTIVE 또는 NORMAL_PASSIVE 동작 상태에서 메시지 버퍼의 헤더 섹션에 저장된 정적 수신 버퍼의 구성 데이터에의 기록 액세스를 하지 않는다. 호스트는 CONFIG 상태에서만 정적 수신 버퍼의 헤더 섹션에의 기록 액세스를 한다.
5.9.2 널 프레임 수신
수신된 널 프레임의 페이로드는 일치하는 수신 버퍼로 복사되지 않는다. 널 프레임의 수신은 각각의 메시지 버퍼의 헤더 섹션 3에서의 널 프레임 표시 비트 NFI = '0'에 의해 표시된다.
5.9.3 프레임 수신
수신을 위해 메시지 버퍼를 준비하거나 변경하기 위해, CONFIG 상태에서의 이하의 단계들이 요구된다(동적 수신 버퍼도 역시 NORMAL_ACTIVE 또는 NORMAL_PASSIVE 상태에서 (재)구성될 수 있다).
기록 헤더 섹션 1 레지스터에서의 CFG 비트에 '0'을 기록함으로써 메시지 버퍼를 수신 버퍼로서 구성함
입력 버퍼에 구성(헤더 섹션) 데이터를 기록함으로써 수신 버퍼를 구성함
타겟 메시지 버퍼의 번호를 입력 버퍼 커맨드 요청 레지스터에 기록함으로써 입력 버퍼로부터 메시지 RAM으로 구성을 전송함
이들 단계가 수행되면, 메시지 버퍼는 활성 수신 버퍼로서 기능하고, CC가 유효한 메시지를 수신할 때마다 행해지는 내부 일치 프로세스에 참여한다. 수신된 메시지는 제1 일치 수신 버퍼에 저장된다. 버퍼가 미처리된 메시지를 보유하는 경우(ND = '1'), 그 메시지는 새 메시지로 덮어쓰기되고, 각각의 메시지 버퍼 상태 레지스터에서의 MLST 비트가 세트된다.
새 데이터 레지스터 1, 2에서의 각각의 새 데이터 플래그 ND는, 버퍼가 갱신되고 또 인에이블되어 있는 경우 수신 인터럽트가 발생될 때마다, 세트된다.
출력 버퍼를 통해 메시지 RAM으로부터 수신 버퍼를 판독하기 위해, 섹션 5.11.1.2 메시지 RAM -> 출력 버퍼 데이터 전송에 기술된 바와 같이 진행한다.
유의할 점: ND 플래그는, 수신된 메시지가 출력 버퍼로 전송될 때, 메시지 핸들러에 의해 자동적으로 클리어된다.
5.10 FIFO 버퍼 기능
5.10.1 설명
메시지 버퍼의 그룹이 순환 FIFO(First-In-First-Out) 버퍼로서 구성될 수 있다. FIFO 버퍼의 그룹은 메시지 RAM 구성 레지스터에서 FFB[6:0]에 의해 참조되는 메시지 버퍼에서 시작하고 LCB[6:0]에 의해 참조되는 메시지 버퍼에서 끝나는 레지스터 맵에서 인접해 있다. 2 내지 64개 메시지 버퍼가 FIFO 버퍼 시스템에 할당될 수 있다.
임의의 전용 수신 버퍼와 일치하지 않고 프로그램가능 FIFO 필터와 일치하는 모든 유효한 들어오는 메시지는 FIFO 버퍼 시스템에 저장된다. 이 경우에, 어드레싱된 FIFO 버퍼의 프레임 ID, 페이로드 길이, 수신 사이클 카운트, 및 상태 비트는 수신된 메시지로부터의 프레임 ID, 페이로드 길이, 수신 사이클 카운트, 및 상태로 덮어쓰기되고, 메시지 식별을 위해 호스트에 의해 판독될 수 있다. 인터럽트 상태 레지스터에서의 비트 RFNE는 FIFO 버퍼 시스템이 비어 있지 않음을 보여주고, 인터럽트 상태 레지스터에서의 비트 RFO는 FIFO 버퍼 시스템 오버런이 검출되었음을 보여준다. 인에이블되어 있는 경우, 인터럽트가 발생된다.
FIFO 버퍼 시스템과 연관된 2개의 인덱스 레지스터가 있다. PUT 인덱스 레지스터(PIDX)는 FIFO 버퍼 시스템에서의 그 다음 이용가능한 위치에 대한 인덱스이다. 새 메시지가 수신될 때, 이 메시지는 PIDX 레지스터에 의해 어드레싱되는 메 시지 버퍼에 기록된다. PIDX 레지스터는 이어서 증가되고 그 다음 이용가능한 메시지 버퍼를 어드레싱한다. PIDX 레지스터가 가장 높은 숫자의 FIFO 버퍼를 지나서 증가하는 경우, PIDX 레지스터에 FIFO 체인에서의 첫번째(가장 낮은 번호의) 메시지 버퍼의 번호가 로드된다. GET 인덱스 레지스터(GIDX)는 판독될 그 다음 FIFO 버퍼를 어드레싱하는 데 사용된다. FIFO 버퍼의 내용의 출력 버퍼로의 전송 이후에 GIDX 레지스터는 증가된다.
PUT 인덱스(PIDX)가 GET 인덱스(GIDX)의 값에 도달될 때 FIFO 버퍼 시스템은 완전히 채워진다. 가장 오래된 메시지가 판독되기 이전에 그 다음 메시지가 FIFO 버퍼에 기록될 때, PUT 인덱스 및 GET 인덱스 둘다가 증가되고, 새 메시지는 FIFO 버퍼에서의 가장 오래된 메시지를 덮어쓰기한다. 이것은 상태 인터럽트 레지스터에서의 FIFO 버퍼 오버런 플래그 RFO를 세트시킨다.
도 13: FIFO 버퍼 상태: 비어 있음, 비어있지 않음, 오버런
FIFO 버퍼 비어 있지 않음 상태는 PUT 인덱스(PIDX)가 GET 인덱스(GIDX)와 다를 때 검출된다. 이 경우에, 플래그 RFNE가 세트된다. 이것은 FIFO 버퍼 시스템에 적어도 하나의 수신된 메시지가 있음을 나타낸다. PUT 인덱스 레지스터 및 GET 인덱스 레지스터는 호스트 CPU에 의해 액세스가능하지 않다. FIFO 버퍼 비어있음, FIFO 버퍼 비어있지 않음, 및 FIFO 버퍼 오버런 상태는 3 버퍼 FIFO 버퍼 시스템에 대한 도 13에 설명되어 있다.
FIFO 버퍼 시스템에 대한 프로그램가능 FIFO 차단 필터가 있다. FIFO 차단 필터 레지스터(FRF)는 차단될 메시지에 대한 필터 패턴을 정의한다. FIFO 차단 필 터는 채널 필터, 프레임 ID 필터, 및 사이클 필터로 이루어져 있다. 비트 RSS가 '1'로 설정되어 있는 경우(디폴트), 정적 세그먼트에서의 수신된 모든 메시지는 FIFO 버퍼 시스템에 의해 차단된다. FIFO 차단 필터 마스크 레지스터(FRFM)는 FIFO 차단 필터에서의 대응하는 비트 중 어느 것이 차단 필터링을 위해 "상관없음(don't care)"으로 표시되는지를 지정한다.
5.10.2 FIFO 버퍼의 구성
FIFO 버퍼 시스템에 속하는 모든 메시지 버퍼의 경우, 메시지 RAM에서의 각각의 메시지 버퍼의 데이터 섹션의 처음 32-비트 워드에 대한 데이터 포인터는 기록 헤더 섹션 3 레지스터를 통해 구성되어야만 한다. 수락 필터링을 위해 요구되는 모든 정보는 FIFO 차단 필터 및 FIFO 차단 필터 마스크로부터 취해지며, FIFO 버퍼에 속하는 메시지 버퍼의 헤더 섹션에 구성될 필요가 없다.
FIFO 버퍼 시스템에 속하는 메시지 버퍼에 대한 데이터 포인터를 프로그래밍할 때, 모든 메시지 버퍼의 페이로드 길이는 메시지 RAM 구성 레지스터에서의 DLF[6:0]에 의해 정의되는 값으로 프로그램되어야만 한다.
유의할 점: 수신된 프레임의 페이로드 길이가 DLF[6:0]에 의해 프로그램된 값보다 더 긴 경우, FIFO 버퍼 시스템의 메시지 버퍼에 저장된 데이터 필드는 그 길이로 절단된다.
5.10.3 FIFO 버퍼에의 액세스
FIFO 버퍼 시스템으로부터 판독하기 위해, 호스트는 FIFO 버퍼(FFB[6:0]에 의해 참조됨)의 제1 메시지 버퍼의 번호를 출력 버퍼 커맨드 요청 레지스터에 기록 함으로써 메시지 RAM으로부터 출력 버퍼로의 전송을 트리거해야만 한다. 이어서, 메시지 핸들러는 GET 인덱스 레지스터(GIDX)에 의해 어드레싱되는 메시지 버퍼를 출력 버퍼로 전송한다. 이 전송 후에, GET 인덱스 레지스터(GIDX)는 증가된다.
5.11 메시지 핸들링
메시지 핸들러는 입력/출력 버퍼와 메시지 RAM 간의 또한 메시지 RAM과 2개의 천이 버퍼 RAM 간의 데이터 전송을 제어한다. 내부 RAM에의 모든 액세스는 32+1 비트 액세스이다.
메시지 RAM에 저장된 메시지 버퍼에의 액세스는 메시지 핸들러 상태 머신의 제어 하에서 행해진다. 이것은 2개의 프로토콜 제어기 및 호스트 CPU의 메시지 RAM에 대한 액세스들 간의 충돌을 방지한다.
정적 세그먼트에 할당된 메시지 버퍼는 정적 세그먼트에 대해 구성된 마지막 메시지 버퍼가 가장 높은 프레임 ID를 보유하는 동안 메시지 버퍼 0가 가장 낮은 프레임 ID로 구성되는 방식으로 구성되어야만 한다. 이들 간의 프레임 ID는 오름차순으로 정렬되어야만 한다.
정적 세그먼트에 할당된 메시지 버퍼의 프레임 ID는 GTU 구성 레지스터 7에 구성되어 있는 바와 같이 1 내지 NSS[9:0]의 범위에 있어야만 한다. 동적 세그먼트에 할당된 메시지 버퍼의 프레임 ID는 NSS[9:0]+1 내지 2047의 범위에 있어야만 한다.
메시지 핸들러가 정적 메시지 버퍼에 대해 메시지 버퍼 번호와 구성된 프레임 ID의 순서 간에 불일치를 검출하는 경우(메시지 버퍼가 이전의 메시지 버퍼보다 더 낮은 번호를 갖는 프레임 ID를 보유하는 경우), 또는 정적 세그먼트에 속하는 프레임 ID가 동적 메시지 버퍼에 할당되는 경우 또는 동적 세그먼트로부터의 프레임 ID가 정적 메시지 버퍼에 할당되는 경우, 메시지 핸들러는 에러 인터럽트 레지스터에서의 슬롯 구성 에러 플래그 SCE를 세트시킨다. 이것은 인에이블되어 있는 경우 에러 인터럽트를 발생한다.
일치하는 전용 수신 버퍼(정적 또는 동적 세그먼트)를 갖지 않는 수신된 메시지는, 이들이 FIFO 차단 필터를 통과하는 경우, (구성되어 있는 경우) 수신 FIFO에 저장된다.
RAM 테스트 모드에서, 메시지 핸들러는 바이패스되고, 모든 내부 RAM 블록이 호스트 인터페이스를 통해 직접 액세스될 수 있다(섹션 4.3 특수 레지스터 참조).
5.11.1 입력/출력 버퍼 <-> 메시지 RAM
입력 버퍼와 메시지 RAM 간의 메시지 전송은 물론 메시지 RAM과 출력 버퍼 간의 메시지 전송은, 액세스될 타겟/소스 메시지 버퍼의 번호를 입력 또는 출력 버퍼 커맨드 요청 레지스터에 기록함으로써, 호스트 CPU에 의해 트리거된다.
입력/출력 버퍼 커맨드 마스크 레지스터는 선택된 메시지 버퍼의 헤더 및 데이터 섹션을 기록/판독하기 위해 사용될 수 있으며, 그에 의해 입력/출력 버퍼와 메시지 RAM 간의 데이터 전송을 위한 시간을 감소시킬 수 있다. 입력 버퍼 커맨드 마스크 레지스터에서의 비트 STXR이 세트되어 있는 경우(STXR = '1'), 선택된 메시지 버퍼의 전송 요청 플래그는 메시지 버퍼가 갱신된 이후에 자동적으로 세트된다.
입력 버퍼 및 출력 버퍼는 더블 버퍼 구조로 구성되어 있다. 이 더블 버퍼 구조의 절반은 호스트 CPU에 의해 액세스가능한 반면, 다른쪽 절반(쉐도우 버퍼는 메시지 RAM과 입력/출력 버퍼 간의 데이터 전송을 위한 메시지 핸들러에 의해 액세스된다.
도 14: 메시지 버퍼에의 CPU 액세스
5.11.1.1 입력 버퍼 -> 메시지 RAM 데이터 전송
호스트가 메시지 RAM에서의 타겟 메시지 버퍼의 번호를 입력 버퍼 커맨드 요청 레지스터에서의 IBRH[5:0]에 기록할 때, IBF 및 IBF 쉐도우가 스와핑된다. 게다가, IBRH[5:0] 및 IBRS[5:0] 아래에 저장되어 있는 메시지 버퍼 번호도 역시 스와핑된다(도 15 참조).
도 15: 더블 버퍼 구조 입력 버퍼
이 기록 동작에서, 입력 버퍼 커맨드 요청 레지스터에서의 IBSYS 비트는 '1'로 설정된다. 이어서, 메시지 핸들러는 IBF 쉐도우의 내용을 IBRS[5:0]에 의해 선택된 메시지 RAM에서의 메시지 버퍼로 전송하기 시작한다.
메시지 핸들러가 IBF 쉐도우에서 메시지 RAM에서의 타겟 메시지 버퍼로 데이터를 전송하는 동안, 호스트는 IBF에서의 그 다음 메시지를 구성할 수 있다. IBF 쉐도우와 메시지 RAM 간의 전송이 완료된 후에, IBSYS 비트는 다시 '0'으로 설정되고, 메시지 RAM으로의 그 다음 전송이 각각의 타겟 메시지 버퍼 번호를 IBRH[5:0]에 기록함으로써 호스트에 의해 시작될 수 있다.
IBSYS가 '1'인 동안에 IBRH[5:0]에의 기록 액세스가 일어나는 경우, IBSYH는 '1'로 설정된다. IBF 쉐도우로부터 메시지 RAM으로의 진행중인 데이터 전송의 완 료 후에, IBF 및 IBF 쉐도우가 스와핑되고, IBSYH는 '0'으로 리셋되며, IBSYS는 '1'로 세트된 채로 있고, 메시지 RAM으로의 그 다음 전송이 시작된다. 게다가, IBRH[5:0] 및 IBRS[5:0] 아래에 저장된 메시지 버퍼 번호도 역시 스와핑된다.
8/16 비트 호스트 액세스 순서의 예:
타겟 메시지 버퍼로의 데이터 전송을 요청함: IBRH[5:0]을 기록함
타겟 메시지 버퍼로의 데이터 전송을 요청함: IBSYS가 리셋된 후에 IBRH[5:0]를 기록함
<표 18> 입력 커맨드 요청 레지스터 비트의 할당
위치 |
액세스 |
비트 |
기능 |
31 |
r |
IBSYS |
IBF 쉐도우 사용중, IBF로부터 메시지 RAM으로의 진행중인 전송을 알려줌 |
21..16 |
r |
IBRS[5:0] |
IBF 쉐도우, 현재/최근 갱신된 메시지 버퍼의 번호 |
15 |
r |
IBSYH |
IBF 사용중, IBRH[5:0]에 의해 참조되는 메시지 버퍼에 대해 보류 중인 전송 요청 |
5..0 |
r/w |
IBRH[5:0] |
IBF, 그 다음에 갱신될 메시지 버퍼의 번호 |
5.11.1.2 메시지 RAM -> 출력 버퍼 데이터 전송
출력 버퍼 커맨드 요청 레지스터에서의 OBRS[5:0]에 의해 선택된 메시지 버퍼는, 호스트가 REQ를 '1'로 설정하자마자, 메시지 RAM에서 출력 버퍼 쉐도우로 전송된다. 비트 REQ는, OBSYS가 '0'인 동안에만, '1'로 설정될 수 있다.
도 16: 더블 버퍼 구조 출력 버퍼
REQ를 '1'로 설정한 후에, OBSYS는 '1'로 설정되고, OBRS[5:0]에 의해 선택 된 메시지 버퍼의 메시지 RAM으로부터 OBF 쉐도우로의 전송이 시작된다. 메시지 RAM과 OBF 쉐도우 간의 전송이 완료된 후에, OBSYS 비트는 다시 '0'으로 설정된다.
OBSYS가 '0'인 동안에 VIEW를 '1'로 설정함으로써, OBF 및 OBF 쉐도우는 스와핑된다. 이제, 호스트는 전송된 메시지 버퍼를 OBF로부터 판독할 수 있는 반면, 메시지 핸들러는 그 다음 메시지를 메시지 RAM으로부터 OBF 쉐도우로 전송할 수 있다.
8-비트 호스트 액세스 순서의 예:
제1 메시지 버퍼를 선택함: OBRS[5:0]를 기록함
제1 메시지 버퍼의 전송을 요청함: REQ를 기록함
제2 메시지 버퍼를 선택함: OBRS[5:0]를 기록함(또한 OBSYS = '1'인 동안 세트될 수 있음)
제1 메시지를 보고 제2 메시지 버퍼의 전송을 요청함: VIEW, REQ를 기록함
제3 메시지 버퍼를 선택함: OBRS[5:0]를 기록함
제2 메시지를 보고 제3 메시지 버퍼의 전송을 요청함: VIEW, REQ를 기록함
....
16-비트 호스트 액세스 순서의 예:
제1 메시지 버퍼를 선택 및 그의 전송을 요청함: OBRS[5:0], REQ를 기록함
제1 메시지를 보고, 제2 메시지 버퍼를 선택하고 그의 전송을 요청함: VIEW, REQ, OBRS[5:0]을 기록함
제2 메시지를 보고, 제3 메시지 버퍼를 선택하고 그의 전송을 요청함: VIEW, REQ, OBRS[5:0]을 기록함
제n 메시지를 봄: VIEW를 기록함(OBRS[5:0]가 평가되지 않음)
<표 19> 입력 커맨드 요청 레지스터 비트의 할당
위치 |
액세스 |
비트 |
기능 |
21..16 |
r |
OBRH[5:0] |
OBF, 호스트 액세스에 이용가능한 메시지 버퍼의 번호 |
15 |
r |
OBSYS |
OBF 쉐도우 사용중, 메시지 RAM에서 OBF로의 진행중인 전송을 알려줌 |
9 |
r/W |
REQ |
메시지 RAM에서 OBF로의 전송을 요청함 |
8 |
r/w |
VIEW |
OBF 쉐도우를 보고, OBF 쉐도우와 OBF를 스와핑함 |
5..0 |
R/W |
OBRS[5:0] |
OBF 쉐도우, 그 다음 요청을 위한 메시지 버퍼의 번호 |
5.11.2
플렉스레이
프로토콜 제어기 <-> 메시지 RAM
2개의 천이 버퍼 RAM이 2개의 플렉스레이 프로토콜 제어기와 메시지 RAM 간의 전송을 위해 데이터를 버퍼링하기 위해 사용된다.
각각의 천이 버퍼 RAM은 2개의 완전한 플렉스레이 메시지를 저장할 수 있는 더블 버퍼로서 구성되어 있다. 항상 하나의 버퍼가 대응하는 프로토콜 제어기에 할당되어 있는 반면 다른 하나는 메시지 핸들러에 의해 액세스가능하다.
예를 들어 메시지 핸들러가 천이 버퍼 β로 전송될 그 다음 메시지를 기록하는 경우, 플렉스레이 프로토콜 제어기는 제어기가 실제로 수신하고 있는 메시지를 저장하기 위해 천이 버퍼 α에 액세스할 수 있다. 수신이 완료된 후에, 메시지 핸들러는 이 2개의 버퍼를 스와핑한다. 이제, 플렉스레이 프로토콜 제어기는, 메시지 핸들러가 천이 버퍼 α에 액세스하는 동안에, 천이 버퍼 β로부터 그의 시프트 레지스터를 로드하고 메시지 핸들러에 의해 로드된 새 메시지를 전송할 수 있다. 천이 버퍼 β에 저장된 메시지의 전송 동안에, 메시지 핸들러는 천이 버퍼 α에 저장된 최근 수신된 메시지를 메시지 RAM으로 전송하고(이 메시지가 수락 필터링을 통과하는 경우), 각각의 메시지 버퍼를 갱신한다.
천이 버퍼 RAM과 플렉스레이 프로토콜 제어기의 시프트 레지스터 간의 데이 터 전송은 32 비트의 일부분에서 행해진다. 이것은 플렉스레이 메시지의 길이와 무관하게 32 비트 시프트 레지스터를 사용할 수 있게 해준다.
5.12 메시지 RAM
메시지 RAM에의 호스트 액세스와 플렉스레이 메시지 수신/전송 간의 충돌을 방지하기 위해, 호스트 CPU는 메시지 RAM에서의 메시지 버퍼에 직접 액세스할 수 업서다. 이들 액세스는 입력 및 출력 버퍼를 통해 처리된다. 메시지 RAM은 최대 64개 메시지 버퍼를 저장할 수 있다.
메시지 RAM이 1152 x 33 = 38,016 비트로 구성되어 있다. 각각의 32-비트 워드는 패리티 비트에 의해 보호된다. 플렉스레이 프레임당 서로 다른 수의 데이터 바이트(0...254)와 관련하여 요구되는 유연성을 달성하기 위해, 메시지 RAM은 도 18에 도시된 구조를 갖는다.
도 18: 메시지 RAM 헤더 섹션의 구조
헤더 섹션
플렉스레이 프레임의 헤더 세그먼트를 저장함:
각각의 메시지 버퍼가 4개의 32-비트 워드의 헤더를 가짐
데이터 섹션
서로 다른 길이를 갖는 페이로드 세그먼트의 유연성있는 저장. 어떤 최대값은 다음과 같다.
각각 254 바이트 데이터를 갖는 16개 메시지 버퍼
또는 각각 128 바이트 데이터를 갖는 32개 메시지 버퍼
또는 각각 56 바이트 데이터를 갖는 64개 메시지 버퍼
제한: 헤더 섹션 + 데이터 섹션이 1,152개 이상의 32-비트 워드를 차지할 수 없다.
5.12.1 헤더 섹션
각각의 메시지 버퍼의 헤더는 메시지 RAM의 헤더 섹션에서 4개의 32-비트 워드를 차지한다. 메시지 버퍼 0의 헤더는 메시지 RAM에서의 첫번째 워드에서 시작한다.
전송 버퍼의 경우, 호스트 CPU에 의해 헤더 CRC가 계산되어야만 한다. 메시지 RAM의 데이터 섹션에서의 각각의 메시지 버퍼에 대한 데이터 섹션의 시작점을 정의하기 위해 데이터 포인터가 프로그래머에 의해 계산되어야만 한다.
수신 사이클 카운트(Receive Cycle Count), 채널을 통해 수신됨 표시(Received on Channel Indication)(RCI), 기동 프레임 표시 비트(Startup Frame Indication bit)(SFI), 동기 비트(Sync bit)(SYN), 널 프레임 표시 비트(Null Frame Indication bit)(NFI), 페이로드 프리앰블 표시 비트(Payload Preamble Indication bit)(PPI), 및 예비된 비트(Reserved bit)(RES)는 수신된 유효한 프레임으로부터만 갱신된다.
메시지 버퍼의 구성을 위해 사용되는 요소는 이하의 표 20에 열거된 바와 같이 메시지 RAM의 헤더 섹션에 저장된다. 정적 메시지 버퍼 및 FIFO 버퍼의 경우, CONFIG 상태에서만 (재)구성이 가능하다.
헤더 1
NME - 네트워크 관리/메시지 ID 인에이블
MBI - 메시지 버퍼 수신/전송 인터럽트 인에이블
헤더 2
헤더 CRC - 전송 버퍼: 호스트에 의해 갱신됨(프레임 헤더 세그먼트로부 터 계산됨)
- 수신 버퍼: 수신된 프레임으로부터 갱신됨
페이로드 길이 구성됨: 호스트에 의해 구성된 데이터 필드의 길이(2-바이트 워드의 수)
수신된 페이로드 길이 - 수신된 프레임으로부터의 데이터 필드의 길이(2-바이트 워드의 수)
헤더 3
데이터 포인트 - 데이터 섹션에서의 대응하는 데이터 필드의 시작에 대한 포인터
수신 버퍼에 대해서만 유효함, 수신된 프레임으로부터 갱신됨:
수신 사이클 카운트 - 수신된 프레임에 대한 사이클 카운트
헤더 4
전송 및 수신 버퍼:
SEOA - 채널 A 상에서 관찰된 신택스 에러
SEOB - 채널 B 상에서 관찰된 신택스 에러
CEOA - 채널 A 상에서 관찰된 컨텐츠 에러
CEOB - 채널 B 상에서 관찰된 컨텐츠 에러
SVOA - 채널 A 상에서 관찰된 슬롯 경계 위반
SVOB - 채널 B 상에서 관찰된 슬롯 경계 위반
전송 버퍼:
VFRA - 채널 A 상으로 수신된 유효한 프레임
VFRB - 채널 B 상으로 수신된 유효한 프레임
수신 버퍼:
5.12.2 데이터 섹션
메시지 RAM의 데이터 섹션은 헤더 섹션에 구성된 수신/전송을 위해 구성된 메시지 버퍼의 데이터 필드를 저장한다. 각각의 메시지 버퍼에 대한 데이터 바이트의 수는 0부터 254까지 변할 수 있다. 2개의 플렉스레이 프로토콜 제어기의 시프트 레지스터와 메시지 RAM 간의 데이터 전송은 물론 호스트 인터페이스와 메시지 RAM 간의 데이터 전송을 최적화하기 위해, 메시지 RAM의 물리적 폭은 4 바이트 + 1 패리티 비트로 설정된다.
메시지 버퍼 0의 데이터 필드는 헤더 섹션의 마지막 워드 이후에 시작한다. 구성된 메시지 버퍼의 데이터 필드는 이하의 표 21에 나타낸 바와 같이 메시지 RAM에 저장된다.
헤더 섹션에 구성된 메시지 버퍼에 연결된 데이터 필드의 시작은 메시지 RAM에서의 시작 주소에 대한 포인터 DP[10:0]에 의해 참조된다. 이것은 서로 다른 데이터 길이를 갖는 메시지 버퍼의 저장을 위한 이용가능한 RAM 공간의 유연한 사용을 가능하게 해준다. 메시지 버퍼가 32-비트 데이터 워드 중 16 비트만 사용하는 경우, 나머지 16 비트는 사용되지 않는다.
메시지 RAM에서의 메시지 버퍼를 구성할 때, 프로그래머는 데이터 섹션이 헤더 섹션의 일부를 덮어쓰기하지 않도록 보장해야만 한다. 프로그래머는 또한 구성된 데이터 버퍼의 데이터 필드가 메시지 RAM에서의 서로 다른 주소 상에 위치하도록 보장해야만 한다.
5.12.3 패리티 검사
모듈의 7개의 RAM 블록에 저장된 데이터의 무결성을 보장하기 위해 이-레이 모듈에 구현된 패리티 검사 메카니즘이 있다. RAM 블록은 도 19에 도시된 바와 같이 연결된 패리티 발생기/검사기를 갖는다. 데이터가 RAM 블록에 기록될 때, 로컬 패리티 발생기는 패리티 비트를 발생한다. 이-레이 모듈은 짝수 패리티를 사용한다(32-비트 데이터 워드의 짝수개의 1이 있는 경우, 0 패리티 비트가 발생됨). 이 패리티 비트는 각각의 데이터 워드와 함께 저장된다. RAM 블록 중 임의의 것으로부터 데이터 워드가 판독될 때마다 패리티가 검사된다. 모듈 내부 데이터 버스는 32 비트의 폭을 갖는다.
패리티 에러가 검출되는 경우, 메시지 핸들러 상태 레지스터에서의 각각의 에러 플래그가 세트된다. 이들 단일 에러 플래그들을 결합하는 에러 인터럽트 레지스터에 위치하는 하나의 부가적인 에러 플래그가 있다.
도 19는 RAM 블록과 패리티 발생기/검사기 간의 데이터 경로를 나타낸 것이다.
패리티 에러가 검출된 경우에, 이하의 동작이 수행된다.
모든 경우에
메시지 핸들러 상태 레지스터에스의 각각의 패리티 에러 플래그가 세트됨
에러 인터럽트 레지스터에서의 패리티 에러 플래그가 세트되고, 인에이블되어 있는 경우, CPU에의 모듈 인터럽트가 발생된다.
부가적으로 특정의 경우에
입력 버퍼 RAM 1,2 => 메시지 RAM으로의 데이터 전송에서의 패리티 에러
FMB[5:0]는 고장난 메시지 버퍼의 수를 나타냄
각각의 메시지 버퍼에 대한 전송 요청이 세트되지 않음
메시지 RAM에서의 헤더 섹션의 스캔 동안의 패리티 에러
FMB[5:0]은 고장난 메시지 버퍼의 번호를 나타냄
메시지 RAM => 전송 버퍼 RAM 1,2로의 데이터 전송에서의 패리티 에러
FMB[5:0]은 고장난 메시지 버퍼의 번호를 나타냄
천이 버퍼 RAM 1,2 => 프로토콜 제어기 1,2로의 데이터 전송에서의 패리티 에러
천이 버퍼 RAM 1,2 => 메시지 RAM으로의 데이터 전송에서의 패리티 에러
FMB[5:0]은 고장난 메시지 버퍼의 번호를 나타냄
메시지 RAM => 출력 버퍼 RAM으로의 데이터 전송에서의 패리티 에러
FMB[5:0]는 고장난 메시지 버퍼의 번호를 나타냄
출력 버퍼 RAM => 호스트 CPU로의 데이터 전송에서의 패리티 에러
데이터 일관성 에러 비트 DCE는 각각의 메시지 버퍼의 메시지 버퍼 상태 및 에러 정보 필드에 위치하는 반면, 패리티 에러 비트(PIBF, POBF, PMR, PTBF1,2) 및 고장난 메시지 버퍼 표시자 FMB[5:0]는 메시지 핸들러 상태 레지스터에 위치한다.
5.13 모듈 인터럽트
일반적으로, 인터럽트는, 제어기에 의해 에러가 검출되거나, 프레임이 수신 또는 전송되거나 또는 구성된 타이머 인터럽트가 활성화될 때 이들 인터럽트가 거의 즉각적으로 트리거되기 때문에, 프로토콜 타이밍에 가까운 링크를 제공한다. 이것은 호스트로 하여금 특정의 에러 조건, 타이머 및 이벤트에 아주 신속하게 반응할 수 있게 해준다. 한편, 너무 많은 인터럽트는 호스트로 하여금 애플리케이션에 요구되는 마감을 놓칠 수 있게 할 수 있다. 따라서, CC는 각각의 개별적인 인터러버트에 대한 디스에이블/인에이블 제어를 개별적으로 지원한다.
인터럽트는 이하의 경우에 트리거될 수 있다.
입력 버퍼로부터 메시지 RAM으로 또는 메시지 RAM으로부터 출력 버퍼로의 메시지 전송이 완료되었을 때
상태를 추적하고 상태 변화 또는 에러가 발생할 때 인터럽트를 발생하는 것은 2가지 독립적인 작업이다. 인터럽트가 인에이블되어 있는지 여부에 관계없이, 대응하는 상태가 CC에 의해 추적되고 표시된다. 호스트는 에러 인터럽트 레지스터 및 상태 인터럽트 레지스터를 판독함으로써 실제 상태 및 에러 정보에 액세스한다.
레지스터 |
비트 |
기능 |
EIR |
PEMC |
프로토콜 에러 모드 변경됨 |
CNV |
커맨드 유효하지 않음 |
NSF |
동기 프레임 수신되지 않음 |
MSF |
동기 프레임의 최대 수 초과됨 |
CCF |
클럭 정정 실패 |
PERR |
패리티 에러 |
BCEA |
비트 코딩/CRC 에러 채널 A |
SMA |
슬롯 불일치 채널 A |
CCMA |
사이클 카운터 불일치 채널 A |
LMA |
길이 불일치 채널 A |
USA |
비수락 심볼 채널 A |
SVA |
침묵 위반 채널 A |
SMEA |
BG 스케쥴 모니터링 에러 채널 A |
WSCA |
웨이크업 심볼 충돌 표시자 채널 A |
BCEB |
비트 코딩/CRC 에러 채널 B |
SMB |
슬롯 불일치 채널 B |
CCMB |
사이클 카운터 불일치 채널 B |
LMB |
길이 불일치 채널 B |
USB |
비수락 심볼 채널 B |
SVB |
침묵 위반 채널 B |
SMEB |
BG 스케쥴 모니터링 에러 채널 B |
WSCB |
웨이크업 심볼 충돌 표시자 채널 B |
<표 22> 모듈 인터럽트 플래그 및 인터럽트 라인 인에이블
레지스터 |
비트 |
기능 |
SIR |
WST |
웨이크업 상태 |
CAS |
충돌 회피 심볼 |
CYCS |
사이클 시작 인터럽트 |
TXI |
전송 인터럽트 |
RXI |
수신 인터럽트 |
RFNE |
수신 FIFO 비어있지 않음 |
RFO |
수신 FIFO 오버런 |
NMVC |
네트워크 관리 벡터 변경됨 |
WUS |
웨이크업 심볼 |
MTS |
매체 접근 테스트 심볼 |
SUS |
기동 상태 |
TIO |
타이머 인터럽트 0 |
TI1 |
타이머 인터럽트 1 |
TIBC |
입력 버퍼 전송 완료 |
TOBC |
출력 버퍼 전송 완료 |
SWE |
스톱 워치 이벤트 |
WUSA |
웨이크업 심볼 채널 A |
MTSA |
채널 A 상으로 MTS 수신됨 |
WUSB |
웨이크업 심볼 채널 B |
MTSB |
채널 B 상으로 MTS 수신됨 |
ILE |
EINT0 |
인에이블 인터럽트 라인 0 |
EINT1 |
인에이블 인터럽트 라인 1 |
호스트로의 인터럽트 라인, eray_int0 및 eray_int1은 인에이블된 인터러버트에 의해 제어된다. 게다가, 호스트 CPU로의 2개의 인터럽트 라인 각각은 인터럽트 라인 인에이블 레지스터에서의 비트 EINTO 및 EINTl를 프로그램함으로써 개별적으로 인에이블/디스에이블될 수 있다.
인터럽트 타이머 0 및 1에 의해 발생된 2개의 타이머 인터럽트는 핀 eray_tintO 및 eray_tintl 상에서 이용가능하다. 이들은 타이머 0 및 타이머 1 구성 레지스터를 통해 구성될 수 있다.
입력 버퍼와 메시지 RAM 간의 데이터 전송 및 메시지 RAM과 출력 버퍼 간의 데이터 전송의 상태는 핀 eray_ibusy 및 eray_obusy 상으로 전달된다.
6. 부록
6.1 레지스터 비트 개요
도면의 목록
도 1: 이-레이 블록도
도 2: 이-레이 코어의 범용 인터페이스
도 3: 이-레이 레지스터 및 입력/출력 버퍼 RAM에의 기록 액세스
도 4: 이-레이 레지스터 및 입력/출력 버퍼 RAM에의 판독 액세스
도 5: 입력 버퍼 RAM에서 메시지 RAM으로 또 메시지 RAM에서 출력 버퍼 RAM으로의 데이터 전송
도 6: 임베디드 RAM 블록에의 동기 판독/기록 액세스
도 7: 이-레이 RAM 블록에의 테스트 모드 액세스
도 8: 통신 사이클의 구조
도 9: 이-레이 통신 제어기의 전체 상태도
도 10: POC 상태 WAKEUP의 구조
도 11: 웨이크업 패턴의 타이밍
도 12: 상태도 시간-트리거 기동
도 13: FIFO 버퍼 상태: 비어있음, 비어있지 않음, 오버런
도 14: 메시지 버퍼에의 CPU 액세스
도 15: 더블 버퍼 구조 입력 버퍼
도 16: 더블 버퍼 구조 출력 버퍼
도 17: 천이 버퍼 RAM에의 액세스
도 18: 메시지 RAM의 구조
도 19: 패리티 발생 및 검사
표의 목록
표 1: 범용 호스트 인터페이스
표 2: 물리 계층 인터페이스
표 3: 입력 버퍼 RAM 1에의 인터페이스
표 4: 입력 버퍼 RAM 2에의 인터페이스
표 5: 출력 버퍼 RAM 1에의 인터페이스
표 6: 출력 버퍼 RAM 2에의 인터페이스
표 7: 메시지 RAM에의 인터페이스
표 8: 천이 버퍼 RAM A에의 인터페이스
표 9: 천이 버퍼 RAM B에의 인터페이스
표 10: 메시지 버퍼의 할당
표 11: 이-레이 레지스터 맵
표 12: POC의 에러 모드(열화 모델)
표 13: 이-레이 전체 상태 머신의 상태 천이
표 14: 상태 천이 WAKEUP
표 15: 채널 필터링 구성
표 16: 사이클 세트의 정의
표 17: 유효 사이클 세트의 예
표 18: 입력 커맨드 요청 레지스터 비트의 할당
표 19: 입력 커맨드 요청 레지스터 비트의 할당
표 20: 메시지 RAM에서의 메시지 버퍼의 헤더 섹션
표 21: 메시지 RAM에서의 메시지 버퍼의 데이터 섹션의 저장
표 22: 모듈 인터럽트 플래그 및 인터럽트 라인 인에이블