googlead

text_newadd

mouse block


EBI & CS ARM microprocessor


EBI (External BUS Interface)
외부장치와 정보를 주고 받기위한 통로를 EBI라고 부릅니다.
여러개의 Bit Data가 지나가는 통로를 BUS라고 부릅니다.
앞서 Address Map에서 보신것과 같이 CPU는 여러장치와 정보를 주고 받아야 합니다.
정보를 주고 받기 위해서 제일 필요한것은 Address입니다. 그리고 Data입니다. 
일반적인 메모리의 경우 읽기와 쓰기가 가능합니다.
Data BUS를 통해 값이 쓰는지 읽는지를 구분해야 하기 때문에 Read, Write Line이 별도로 필요하게 됩니다.
Pin 이름이 / 또는 -  로 표시되어 있다면 Digital 회로에서 0일경우 동작하고 1일경우는 동작하지 않는다는 의미입니다.
따로 표시되어 있지 않을경우는 1일경우 동작하고 0일경우는 동작하지 않는다는 의미가 됩니다.

이정도면 외부 Device를 연결할 수 있습니다.

그런데 외부에 붙은 Device가 1개가 아니라 여러개가 대부분입니다.
Address나 Data BUS를 따로 만들게 되면 Pin 수가 많아져야 하기 때문에 외부에 여러개의 Device가 붙을 수 있도록
Address와 Data BUS를 공유하도록 설계를 합니다. BUS공유시 해당 Device만 동작하도록 하기 위해 Chip Enable 또는 Chip Select라는 핀을 별도로 두게 됩니다. 같은 BUS에 연결된 Device중에 1개만 동작되며 동작되는 Device는 Chip Enable Pin이 0으로 되어야만 동작됩니다.

EBI에 기본적으로 필요한것은 Address Line/Data Line/Read Enable/Write Enable/Chip Select Pin이 필요합니다.

SDRAM의 경우 위의 Pin으로만 동작하지 않습니다. SDRAM은 Capacitor를 이용한 메모리이기 때문에 동작시에 방전이 됩니다.
따라서 주기적으로 Refresh를 해주어야 값을 유지할 수 있고, 주소번지도 일반적인 주소가 아니라  Column Address/Row Address 형식으로 Data를 읽어 오기 때문에 /RAS,/CAS라는 별도의  Pin 이 추가 되어야 하며  32Bit Data에서 8Bit Data만 읽을 수 있도록 Data Mask 관련 Pin 들도 필요로 합니다.  이러한 복잡한 일들을 대신 해주는것이 Memory Controller 입니다.

NAND Flash의 경우 Address Line을 사용하지 않습니다. Data Line으로 Address/Command/Data가 다 이동을 하게 됩니다.
따라서 이경우도 대부분 Nand Flash Controller를 내장해서 동작을 하게 됩니다.

Booting시 관련된 Controller를 초기화 해줍니다.
CPU는 모든 Device를 메모리로 인식을 해서 해당번지를 읽고 쓰기를 합니다.
SDRAM의 경우도 해당번지를 읽게 되면 메모리 Controller가 Chip Enable/Address/Read Pin을 제어해서 Data를 읽어오게 됩니다.Nand Flash의 경우 Controller에 읽어오기 명령을 내리면 Controller가 해당핀들을 제어해서 Data를 읽어오게 됩니다.

EBI에 여러 개의 Device가 붙게 되면 속도가 느려 질 수 있습니다.
예를 들어 LCD는 속도가 느린데 SDRAM도 같이 붙어 있다면 LCD가 동작중에는 SDRAM이 동작할 수 없어
기다리는 상황이 발생하게 됩니다.
이런 현상을 개선하기 위해 EBI를 여러개 사용하는 경우도 있습니다.
EBI1에는 빠른 Device만 연결해서 빨리 빨리 처리하고 EBI2에서는 느린 Device만 연결해서
느린 Device가 동작중에도 다른 Device가 동작 가능하도록 만든 경우도 있습니다.

핑백

덧글

  • 히언 2012/02/24 14:24 # 답글

    임베디드 레시피의 히언입니다 ^^.
    EBI & CS 좋은 글을 Season 2에 link 걸었습니다.
    부디 이쁘게 이해해 주시고~
    자주 놀러오세요~ ^^
  • slgi97 2012/02/24 14:51 #

    네 감사합니다.
    좋은글 많이 부탁드려요.
댓글 입력 영역


test1