노무현 대통령 배너


2007. 4. 5. 12:58

VME 보드 설계자료-3

VMEbus 마스터/슬레이브 보드 설계
VMEbus의 마스터/슬레이브 기능을 모두 지원하는 보드는 그리 흔하지 않으며 마스터 기능을 위한 마이크로프로세서나 VMEbus DMA 컨트롤러가 있고, 슬레이브 보드로서 VMEbus에서 액세스할 수 있는 메모리를 가지고 있음을 의미한다. 마스터/슬레이브 기능 이외에도 인터럽터 기능, 인터럽터 핸들러 기능, 시스템 컨트롤러 기능을 가질 수도 있다.
ㆍ시스템 컨트롤러 기능은 disable/enable이 가능하도록 한다.
ㆍSlave select를 disable할 수 있도록 하는 것이 유리하다.
상황에 따라 마스터 기능만 동작시켜야 할 때도 있다.
ㆍSYSRESET* 입력에 무관하게동작할 수도 있으면 좋다.

Deadlock 방지
VMEbus 마스터/슬래이브 보드를 설계하면서 가장 주의할 점은 로컬 버스 데드록이 일어나지 않도록 설계하는 것이다. 데드록이 발생하는 것은 보드내의 프로세서가 VMEbus 액세스 사이클을 시작하여 로컬 버스를 장악하고 VMEbus requester에 의해 VBRX*가 드라이브되는 시점에서 VMEbus의 다른 마스터가 이미 VMEbus 사이클을 시작하여 로컬 보드를 액세스해 왔을 때 발생한다. 이 때 로컬 보드의 프로세서는 VMEbus 액세스할 수 없기 때문에 (VMEbus를 획득할 수 없다) 사이클을 끝낼 수 없고, VMEbus의 다른 마스터는 로컬 보드를 액세스할 수 없기 때문에 (로컬 보드내의 프로세서가 로컬 버스를 잡고 있다) 사이클을 끝낼 수 없다.
결국은 VMEbus time out이 발생할 때까지 기달서 의도하지 않은 버스에러 처리를해야 한다. 이런 상태를 피하기 위한 방법은 다음의 두가지가 있다.

모토로라 계열의 프로세서에 있는 retry 기능 이용

MC68030은 BERR* 핀과 HALT* 핀을 동시에 드라이브 했을 때, MC68040은 TA* 핀과 TEA* 핀을 동시에 드라이브하면 현재 진행중인 사이클을 중단하고 잠시 후에 다시 시작하는 기능이 있는데 이를 이용한다. 즉, 로컬 아비터는 프로세서가 VMEbus 액세스 사이클에서 버스 grant를 받지 못했을 때 슬레이브 select가 되면 프로세서의 사이클을 retry시킨다.
프로세서가 진행중인 사이클을 중지하고 로컬 버스를 릴리스 했을때 VMEbus 마스터에게 로컬 버스의 사용권을 주어서 사이클을 완료하는 방법이다. 이 방법의 단점은 만약 프로세서의 VMEbus 액세스 사이클이 burst 사이클이면 뜻밖의 상황이 발생할 수도 있다는 점이다.

프로세서의 VMEbus액세스 사이클일 경우 VMEbus grant를 얻을 때까지 로컬 버스의 사용권을 주지 않는다.
버퍼를 사용하여 deadlock을 방지한다. 인텔 계열의 i80960 등은 retry 기능이 없는데 이럴 경우에 사용한다. 즉, 프로세서가 VMEbus 사이클을 시작하면 로컬 버스 아비터는 프로세서에게 로컬 버스의 사용권을 주지 않아 로컬 버퍼는 열리지 않고, VMEbus requester는 MEbus REQUEST를 한다. VMEbus의 다른 마스터에 의해 슬레이브 액세스가 들어와도 deadiock이 발생하지 않는다. 로컬 버스 아비터는 VMEbus를 획득했을 때 로컬 버퍼와 VMEbus 버퍼를 동시에 열어서 VMEbus 액세스가 가능하게 한다.
이 방법의 단점은 어드레스와 데이터 버스를 모두 버퍼 조절하여야 하기 때문에 로컬 버퍼의 수가 많게 된다는 점이다.

VIC068A는 VMEbus International Trade Association (VITA) 산하의 VMEbus Technology Consortium과 Cypress 반도체가 공동으로 개발한 제품으로 현재 가장 많이 쓰이고 있는 VMEbus 인터페이스 컨트롤러 중의 하나이다.
내부에 마스터로직과 슬레이브 로직, 버스 아비터, 버스타이머, 인터럽터, 인터럽트 핸들러, Block transfer, 버퍼 control 로직 등 VMEbus 보드가 가질 수 있는 거의 대부분의 기능을 가지고 있어서 VIC068A를 사용하면 VMEbus보드를 쉽게 구현할 수 있다. 로컬 인터페이스 핀의 성격이 모토로라사의 MC68030 프로세서와는 쉽게 인터페이스된다. 최근에 많이 사용되는 MC68040과의 인터페이스는 MC68040과 VIC068A와의 동기를 맞추어 주기 위한 중간 로직이 필요하다. 그림 34는 VIC068A를 사용하였을때 어드레스 버퍼와 데이터 버퍼를 구성한 것을나타내었다.

VMEbus 설계시 주의점

① 백플레인 설계시 termination 레지스터는 반드시 장착하도록 한다. 사용하지 않더라도 VMEbus 신호가 floating되는 일이 없도록 한다.
② Word transfer(D16 통신시)시 VMEbus에서는 D15-D0만을 이용한다는 점에 주의한다.
③ 마스터/슬레이브 보드 구현시는 deadlock 상황에서 해결점이 있는지를 확인한다.
④ 드라이버의 전류 용량이 VMEbus 규격에 적합한 것을 사용한다.
(예 : 74F245, 74F543에서 →B로의 전류용량이 크므로 B쪽에 VMEbus 신호를 연결하여야 한다)
⑤ BBSY*의 노이즈에 주의한다. 실제로 BBSY*, BCLR* 라인에서는 노이즈가 많이 발생하고 있다. 특히 버스 busy 신호가 노이즈가 발생하는 일이 많은데 double trigger 방식, bead 등을 사용하여 노이즈에 대비한다.
⑥ VMEbus 신호라인은 가능한한 짧게 한다. VMEbus 버퍼는 가능한한 DIN 커넥터와 근접 시킨다.
⑦ VIRQ7* - VIRQ1*, VDTACK*, VBERR*, VBBSY*, VBR3*-VBRO* 은 반드시 74F38 드의 open collector type의 드라이버를 사용해야 한다.

VMEbus Test 보조장비
VMEbus 확장 보드가 있다. 이 장비는 가장 간단한 보조물로 단순히 VMEbus 신호를 확장하여 추적하기 쉽게 해준다.
이외에 VMEbus 아날라이저 또는 VMEbus Tracer로는 현재 METRO사에서 나온 VBT-325 VMEbus 분석기가 가장 많이 쓰이고 있다.
이것은 하나의 VMEbus 보드로서 터미널을 연결하여 VMEbus 상에서 변화하는 신호를 타이밍 레벨에서 또는 state level에서 잡을 수 있다.
충분한 버퍼 용량과 다양한 기능을 제공해주나 가격이 비싸다는 단점이 있다.
VMEbus를 전문적으로 개발하려는 곳에서는 필요한 제품이다.

'Interface > VME Bus' 카테고리의 다른 글

랙의 높이 단위 1U=4.5cm  (0) 2007.06.20
Deadlock 방지  (0) 2007.04.05
VME 보드 설계자료-2  (3) 2007.04.05
VME 보드 설계자료-1  (0) 2007.04.05
인터럽터의 동작  (3) 2007.04.05