티스토리 뷰

조사

ERC-32의 UART 구조

덕쑤 2013. 3. 21. 13:38

UART

MEC는 비동기 전이중 송수신기(UARTs)를 포함하고있다.

UART의 데이터 포멧은 8bit이며, 짝수,홀수 페리티bit 를 가질수도 있고 안가질수 있다. 또한 MEC Control Register를 프로그래밍하여 한개에서 두개의 StopBit를 가질수 있다. 시스템 초기화시 홀수 페리티와 하나의 Stopbit를 가진다. UART의 baud rate는 또한 MEC Control Register로 정할수 있다. (시스템 초기화시 설정되있는 baud rate는 아마 사용하지 못할것이다 system clock frequency 를 32로 나눈 값이 있기 때문이다.) It follows that the baud rate in the MEC Control Register must be programmed after system reset.

UART는 double buffering를 제공한다. UART는 각각 transsmitter holding register, receiver holding register, transmitter shift register, receiver shiftregister으로 구성되어있다. 각각의 레지스터들은 8bit의 폭을 가지고 있다. 또 각각의 UART는 RX and TX Register를 가지고 있다. 그리고 공통적인 UART Status Register를 가지고 있다. 

// 그러니까 ERC-32 UART 제어와 관련된 레지스터는 MEC register, UART Status Register와 UART Chanel A와 B가 있다.


수신기는 시리얼 시작 비트와 테이터 워드, 페리티비트, 정지 비트를 병렬적으로 수정한다. 송신기는 시작 비트, 페리티 비트, 정지비트를 추가적으로 자동적으로 직렬 형태로 병렬데이터를 변환한다.

시리얼 출력에 바이트를 출력하여면 다음과 같은 절차를 따라야 한다. // 여기 부터 중요 출력할때.

먼저 Transmiter holding register가 비어 있는지를 확인하기 위해 UART Status register를 읽어야한다.(bit2 or 18 THEA,THEB) 그렇지 않으면 출력 하고 있는 이전 데이터가 손실될수 있기 때문이다. (note that the TSE bit is not useful for the purpose of checking if a character may be written to the RX/TX register)

그런다음 출력하려는 바이트를 (RTD ,bit 0-7)is written in the Rx and Tx Register. byte가 써지면 자동적으로 송신기 에 전달되며 직렬 통신 통으로 변환된다. 또한 시작 비트, 페리티 비트, 정지 비트가 추가 된다. 위에서 설명한 시쿼스는 트랩 헨들이나 UART interrupt의 일부분 일수 있다. 

//여기부터 입력 들어올때

데이터 바이트가 들어올때 IU 로 부터 인터럽트가 발생된다. 들어온 데이터 바이트는 병렬형태로 변환되며 리시브 데이터 레지스터에 로드된다. 로드되면 데이터를 오류 프레임을 잡는다 (FE, PE, OE, CU) 올바른 데이터 라면 DRA or DRB를 on한다.

UART는 데이터 워드가 리시브 될때마다 각 시간에 인터럽트를 발생한다. 그래고 애러를 감지한다. UART는 각자 인터럽트를 가지고 있으며  데이터가 올바르게 들어 왔거나 트렌스미터 레지스터가 비어있음을 알린다. 오류를 알리는 인터럽트는 UART 공통이다.

UART는 baud-rate 보다 16배 빠른 내부 시간을 사용한다. and samples each bit 16 times, to ensure error free reception.

The baudrate of the UARTs can be programmed in the Scaler field and UBR bit of the MEC Control Register. The scaler shall be set to:





mecspec_41.pdf


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함