KR101606289B1 - 프로그래머블 컨트롤러 - Google Patents
프로그래머블 컨트롤러 Download PDFInfo
- Publication number
- KR101606289B1 KR101606289B1 KR1020140169448A KR20140169448A KR101606289B1 KR 101606289 B1 KR101606289 B1 KR 101606289B1 KR 1020140169448 A KR1020140169448 A KR 1020140169448A KR 20140169448 A KR20140169448 A KR 20140169448A KR 101606289 B1 KR101606289 B1 KR 101606289B1
- Authority
- KR
- South Korea
- Prior art keywords
- output
- signal
- cpu
- bus
- input
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Hardware Redundancy (AREA)
Abstract
본 발명의 실시 형태는, FPGA를 사용하여 구성된 신호 처리 회로를 구비하는 프로그래머블 컨트롤러에 있어서, 당해 FPGA를 포함한 신호 처리 회로의 자기 진단과, 에러 검출 시의 수복 기능을 구비하는 프로그래머블 컨트롤러에 관한 것이다. 프로그래머블 컨트롤러에 있어서, 당해 FPGA를 포함한 신호 처리 회로의 자기 진단과, 에러 검출 시의 수복 기능을 구비하는 프로그래머블 컨트롤러를 제공하는 것을 목적으로 한다.
본 실시 형태의 프로그래머블 컨트롤러는, 제어 프로그램을 실행하는 CPU와, 상기 CPU의 외부 메모리와, 상기 CPU의 외부 입출력 디바이스를 구비하는 외부 디바이스와, 상기 제어 프로그램의 실행에 의하여, 상기 CPU가 상기 외부 디바이스에 기입하는 Write 데이터를 출력하는 출력 신호 및 상기 CPU가 상기 외부 디바이스로부터 판독하는 Read 데이터를 입력하는 입력 신호를 인터페이스하는 FPGA를 포함하는 FPGA 인터페이스 처리부와, 상기 CPU와 상기 FPGA 인터페이스 처리부 사이를 접속하는 CPU 버스와, 상기 FPGA 인터페이스 처리부와 상기 외부 디바이스를 접속하는, 쌍방향 패러렐 전송의 외부 입출력 버스를 구비하고, 상기 FPGA 인터페이스 처리부는, 상기 제어 프로그램을 실행하는 경우에 상기 입력 신호 및 상기 출력 신호를 인터페이스함과 함께, 상기 Write 데이터를 상기 외부 입출력 버스에 출력하는 제1 비교 타이밍 신호를 생성하고, 또한 상기 Read 데이터를 상기 CPU 버스에 출력하는 제2 비교 타이밍 신호를 생성하는 통상 인터페이스 처리 회로부와, 상기 CPU가 상기 CPU 버스를 통하여 출력한 제1 Write 데이터와, 당해 제1 Write 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 외부 입출력 버스에 출력하는 제2 Write 데이터를, 상기 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하며, 또한 상기 외부 입출력 버스를 통하여 입력되는 당해 제1 Read 데이터와, 당해 제1 Read 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 CPU 버스에 출력하는 당해 제2 Read 데이터를, 상기 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하는 비교 회로부를 구비하고, 상기 제어 프로그램의 실행 중에 상기 FPGA 인터페이스 처리부의 입출력 처리 동작의 불량을 자기 진단하도록 한 것을 특징으로 한다.
본 실시 형태의 프로그래머블 컨트롤러는, 제어 프로그램을 실행하는 CPU와, 상기 CPU의 외부 메모리와, 상기 CPU의 외부 입출력 디바이스를 구비하는 외부 디바이스와, 상기 제어 프로그램의 실행에 의하여, 상기 CPU가 상기 외부 디바이스에 기입하는 Write 데이터를 출력하는 출력 신호 및 상기 CPU가 상기 외부 디바이스로부터 판독하는 Read 데이터를 입력하는 입력 신호를 인터페이스하는 FPGA를 포함하는 FPGA 인터페이스 처리부와, 상기 CPU와 상기 FPGA 인터페이스 처리부 사이를 접속하는 CPU 버스와, 상기 FPGA 인터페이스 처리부와 상기 외부 디바이스를 접속하는, 쌍방향 패러렐 전송의 외부 입출력 버스를 구비하고, 상기 FPGA 인터페이스 처리부는, 상기 제어 프로그램을 실행하는 경우에 상기 입력 신호 및 상기 출력 신호를 인터페이스함과 함께, 상기 Write 데이터를 상기 외부 입출력 버스에 출력하는 제1 비교 타이밍 신호를 생성하고, 또한 상기 Read 데이터를 상기 CPU 버스에 출력하는 제2 비교 타이밍 신호를 생성하는 통상 인터페이스 처리 회로부와, 상기 CPU가 상기 CPU 버스를 통하여 출력한 제1 Write 데이터와, 당해 제1 Write 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 외부 입출력 버스에 출력하는 제2 Write 데이터를, 상기 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하며, 또한 상기 외부 입출력 버스를 통하여 입력되는 당해 제1 Read 데이터와, 당해 제1 Read 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 CPU 버스에 출력하는 당해 제2 Read 데이터를, 상기 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하는 비교 회로부를 구비하고, 상기 제어 프로그램의 실행 중에 상기 FPGA 인터페이스 처리부의 입출력 처리 동작의 불량을 자기 진단하도록 한 것을 특징으로 한다.
Description
본 발명의 실시 형태는, FPGA를 사용하여 구성된 신호 처리 회로를 구비하는 프로그래머블 컨트롤러에 있어서, 당해 FPGA를 포함한 신호 처리 회로의 자기 진단과, 에러 검출 시의 수복(修復) 기능을 구비하는 프로그래머블 컨트롤러에 관한 것이다.
본 출원은 일본 특허 출원 제2013-260493(출원일 2013년 12월 17일)호를 기초로 하며, 이 출원으로부터 우선권의 이익을 향수(享受)한다. 본 출원은 이 출원을 참조함으로써, 동 출원의 내용 전부를 포함한다.
FPGA(Field Programmable Gate Array)나 CPLD(Complex Programmable Logic Device) 등의 프로그래머블 로직 디바이스는, 제조 후에 사용자에 의하여 내부 논리 회로를 재구성할 수 있는 집적 회로이다.
이 프로그래머블 로직 디바이스는 휴대 전화 기기, 가전, 범용 PC 등 폭넓은 분야에서 사용되며, 제조사의 독자적인 기능이나 인터페이스, Ethernet(R)이나 RS-232C, SPI 등의 I/O 인터페이스, SDRAM이나 SRAM 등의 메모리 인터페이스를 서포트하는 등, 다양한 용도에서 사용되고 있다.
고신뢰성이 요구되는 제어 시스템 기기에 사용되는 프로그래머블 컨트롤러에 있어서는, FPGA나 CPLD를 사용하여 장치가 보급되고 있다.
이 FPGA를 사용한 회로에는, 최근 들어 제품의 소형화나 다기능화의 요구 등에 의하여, 복수의 기능을 구비한 회로 블록을 내장한 것이 사용되도록 되어 있다.
이러한 FPGA를 사용하여 제작된 로직 회로(이후, FPGA의 회로라고 칭함)에서는, 외부로부터 입력된 어드레스 신호나 데이터 신호가 복수의 회로 블록을 통하여 외부에 출력되는 일이 많고, 또한 클럭 신호의 고속화나 동작 전압의 저하 등에 의하여 크로스 토크나 정전기 등의 노이즈의 영향을 받기 쉽게 되어 있다.
또한 SRAM을 기초로 하여 회로 로직을 생성한 FPGA에서는, 일과성(一過性) 소프트 에러 등의 영향을 받을 우려도 있다.
그 때문에, 로직 회로나 동작 타이밍 설계의 불량, 로직 회로에의 노이즈의 혼입, 내부 회로의 크로스 토크 등에 의하여, 로직 회로에서 의도하지 않은 데이터로 변환될 가능성이 높아지고 있다.
종래부터 하드웨어의 신호 품질 향상을 위하여, IC 회로나 메모리 간에서 ECC(Error Check and Correct)가 구비된 신호로 데이터의 송수신을 실시하여, 의도하지 않은 데이터로 되었을 경우에도 정정, 검출할 수 있는 방법이 널리 사용되고 있다.
이 방법에서는, 어드레스 디코드 등 데이터 변환이 필요한 회로에서는 ECC 데이터를 생성하는 것이 곤란한 구성으로 되어, 데이터의 신뢰성을 향상시킬 수는 없다.
따라서 CPU 주변의 어드레스 이상 개소를 검출하여, 이상 개소나 그 원인을 용이하게 특정하는 것이 가능한, 자기 진단 기능을 구비한 회로 장치가 개시되어 있다(예를 들어 특허문헌 1 참조).
또한 정보 처리 장치를 정지시키지 않고 고장 전과 동일한 정보 처리를 계속하여 실행하는 정보 처리 장치 및 회로 재구성 장치가 알려져 있다(예를 들어 특허문헌 2 참조).
또한 회로 구성을 변경 가능한 회로가 동작하고 있는 상태에서 소프트 에러를 검출하고, 소프트 에러를 회복시킬 수 있는 전자 디바이스 및 전자 디바이스의 고장 회복 방법(예를 들어 특허문헌 3 참조)이 알려져 있다.
상술한 특허문헌 1의 에러 검출 방법은, 어드레스 신호만의 에러 검출은 할 수 있지만, 에러를 검출했을 때 올바른 데이터 신호로 수정하고, 계속적으로 프로그래머블 컨트롤러를 가동시킬 수 없는 문제가 있었다.
또한 특허문헌 2는 기능 블록의 용장화(冗長化)를 도모하고, 출력된 데이터의 다수결을 택함으로써 FPGA의 회로의 신뢰성 향상을 도모하고 있지만, 용장화되는 로직 회로는 동일하므로, 동일한 에러가 검출될 가능성이 높아지고, 동시에 에러가 검출되었을 경우에는 오판정으로 될 가능성이 높아지는 문제가 있다.
또한 특허문헌 3에 있어서는, 동일한 FPGA의 회로 2조를 실장할 필요가 있으므로, 회로를 실장하기 위한 공간에 제약이 발생하는 문제가 있다.
본 발명은 상기 문제점을 해결하기 위하여 이루어진 것이며, FPGA를 사용하여 구성된 신호 처리 회로를 구비하는 프로그래머블 컨트롤러에 있어서, 당해 FPGA를 포함한 신호 처리 회로의 자기 진단과, 에러 검출 시의 수복 기능을 구비하는 프로그래머블 컨트롤러를 제공하는 것을 목적으로 한다.
본 실시 형태의 프로그래머블 컨트롤러는, 제어 프로그램을 실행하는 CPU와, 상기 CPU의 외부 메모리와, 상기 CPU의 외부 입출력 디바이스를 구비하는 외부 디바이스와, 상기 제어 프로그램의 실행에 의하여, 상기 CPU가 상기 외부 디바이스에 기입하는 Write 데이터를 출력하는 출력 신호 및 상기 CPU가 상기 외부 디바이스로부터 판독하는 Read 데이터를 입력하는 입력 신호를 인터페이스하는 FPGA를 포함하는 FPGA 인터페이스 처리부와, 상기 CPU와 상기 FPGA 인터페이스 처리부 사이를 접속하는 CPU 버스와, 상기 FPGA 인터페이스 처리부와 상기 외부 디바이스를 접속하는, 쌍방향 패러렐 전송의 외부 입출력 버스를 구비하고, 상기 FPGA 인터페이스 처리부는, 상기 제어 프로그램을 실행하는 경우에 상기 입력 신호 및 상기 출력 신호를 인터페이스함과 함께, 상기 Write 데이터를 상기 외부 입출력 버스에 출력하는 제1 비교 타이밍 신호를 생성하고, 또한 상기 Read 데이터를 상기 CPU 버스에 출력하는 제2 비교 타이밍 신호를 생성하는 통상 인터페이스 처리 회로부와, 상기 CPU가 상기 CPU 버스를 통하여 출력한 제1 Write 데이터와, 당해 제1 Write 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 외부 입출력 버스에 출력하는 제2 Write 데이터를, 상기 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하며, 또한 상기 외부 입출력 버스를 통하여 입력되는 당해 제1 Read 데이터와, 당해 제1 Read 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 CPU 버스에 출력하는 당해 제2 Read 데이터를, 상기 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하는 비교 회로부를 구비하고, 상기 제어 프로그램의 실행 중에 상기 FPGA 인터페이스 처리부의 입출력 처리 동작의 불량을 자기 진단하도록 한 것을 특징으로 한다.
도 1은 실시 형태의 프로그래머블 컨트롤러의 블록 구성도.
도 2는 FPGA 인터페이스 처리부의 블록 구성도.
도 3은 비교 처리 회로부의 동작을 설명하는 흐름도.
도 2는 FPGA 인터페이스 처리부의 블록 구성도.
도 3은 비교 처리 회로부의 동작을 설명하는 흐름도.
이하, 본 발명에 따른 FPGA를 사용하여 구성된 신호 처리 회로를 구비하는 프로그래머블 컨트롤러의 실시예에 대하여, 도 1을 참조하여 설명한다.
도 1은, 본 발명의 실시 형태의 프로그래머블 컨트롤러의 개요를 도시하는 기능 블록 구성도이다.
프로그래머블 컨트롤러(1)는, 도시하지 않은 프로그램 메모리에 미리 기억된 제어 프로그램을 실행하는 CPU(2)와, CPU(2)의 메모리(4a)와, CPU(2)의 외부 입출력 디바이스(4b)를 구비하는 외부 디바이스(4)와, 제어 프로그램의 실행에 의하여, CPU(2)가 외부 디바이스(4)에 기입하는 Write 데이터를 출력하는 출력 신호 및 CPU(2)가 외부 디바이스로부터 판독하는 Read 데이터를 입력하는 입력 신호를 인터페이스하는 FPGA를 포함하는 FPGA 인터페이스 처리부(3)를 구비한다.
또한 CPU(2)와 FPGA 인터페이스 처리부(3) 사이를 접속하는 CPU 버스(15)와, FPGA 인터페이스 처리부(3)와 외부 디바이스(4)를 접속하는, 쌍방향 패러렐 전송의 외부 입출력 버스(16)를 구비한다.
또한 CPU 버스(15)는 어드레스 버스, 데이터 버스, 제어선을 포함하며, CPU 버스 신호는 이 CPU 버스(15)를 통하여 FPGA 인터페이스 처리부(3)에 전송된다. 또한 외부 입출력 버스(16)에는, 이 버스에 접속되는 각각의 디바이스의 어드레스 신호, 데이터 신호, 및 그 제어 신호가 전송된다.
또한 CPU(2)는 CPU 버스(15) 및 외부 입출력 버스(16)(데이터 메모리 버스(16a), 워크 메모리 버스(16b) 및 입출력 디바이스 버스(16c))를 통하여, 각각의 외부 디바이스(4)(데이터 메모리(4a1), 워크 메모리(4a2), 외부 입출력 디바이스(4b))에의 Write 데이터의 기입, Read 데이터의 판독을 쌍방향으로 전송한다.
여기서 CPU(2)와 외부 디바이스(4)의 응답은, CPU 버스(15)를 통하여 CPU(2)에 입출력하는 신호에 대하여, 각각의 인터페이스 회로(14c)로부터 레디 신호를 CPU(2)에 송신하도록 하고, CPU(2)는 레디 신호를 수신하기까지의 동안에는 다음 동작으로 천이하지 않는 웨이트 제어가 가능한 인터페이스 형식으로 해 둔다.
다음으로, 각 부의 구성에 대하여 설명한다. FPGA 인터페이스 처리부(3)는 입출력하는 데이터와의 일치/불일치를 검출하여, 불일치(에러)가 있는 경우에 데이터의 수복 처리를 실행하는 상세를 후술하는 비교 회로부(13)와, 외부 디바이스(4)와 CPU(2) 사이의 입출력 신호를 인터페이스하는 통상 인터페이스 처리 회로부(14)를 구비한다.
즉, 통상 인터페이스 처리 회로부(14)는 CPU 버스(15) 신호(어드레스 신호, 데이터 신호, 제어 신호)를 입력하고, 어드레스 신호, 데이터 신호, 제어 신호를 디코딩하여 외부 입출력 버스(16)에 출력하며, 또한 외부 입출력 버스(16)로부터 외부 디바이스(4)로부터 판독하는 Read 데이터를 입력하고, 이 신호를 인코딩하여 CPU 버스(15)에 출력하며, 각각의 외부 디바이스(4)와 CPU(2) 사이의 입출력 데이터를 인터페이스한다.
또한 통상 인터페이스 처리 회로부(14)는 Write(기입) 데이터를 외부 입출력 버스(16)에 출력하는 제1 비교 타이밍 신호를 생성하고, 또한 Read(판독) 데이터를 CPU 버스(15)에 출력하는 제2 비교 타이밍 신호를 생성한다.
비교 회로부(13)는, CPU 버스(15)를 통하여 출력된 제1 Write 데이터와, 당해 제1 Write 데이터를 통상 인터페이스 처리 회로부(14)가 처리하여 외부 입출력 버스(16)에 출력하는 제2 Write 데이터를, 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하고, 또한 외부 입출력 버스(16)를 통하여 입력되는 당해 제1 Read 데이터와, 당해 제1 Read 데이터를 통상 인터페이스 처리 회로부(14)가 처리하여 CPU 버스(15)에 출력하는 당해 제2 Read 데이터를, 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정한다.
제1 비교 타이밍 신호, 제2 비교 타이밍 신호는, 입력하는 데이터마다 미리 설정된 시간, 지연시킨 타이밍으로 한다. 즉, 메모리(13a1) 또는 메모리(13a2)에 데이터가 입력되는 타이밍으로부터, 통상 인터페이스 처리 회로부(13)에서 처리되어 대응하는 비교 데이터가 비교 가능하게 되기까지 지연시킨다.
이와 같이 구성된 프로그래머블 컨트롤러(1)는, 제어 프로그램의 실행 중에 FPGA 인터페이스 처리부(3)의 입출력 처리 동작의 불량을 자기 진단할 수 있다.
다음으로, 각 부의 상세 구성에 대하여 설명한다. 통상 인터페이스 처리 회로부(14)는, CPU(2)와 당해 통상 인터페이스 처리 회로(14) 사이에서 CPU 버스(15)를 통하여 입출력하는 CPU 버스 신호 s15를 인터페이스하는 CPU/인터페이스 회로(14a)와, 외부 디바이스(4)와 통상 인터페이스 처리 회로(14) 사이에서 외부 입출력 버스(16)를 통하여 입출력하는 외부 입출력 버스 신호 s16c를 인터페이스함과 함께, 제1 비교 타이밍 신호 및 제2 비교 타이밍 신호를 생성하는 외부 디바이스 인터페이스 회로(14c)와, 외부 디바이스(4)에의 액세스 요구와, 외부 디바이스(4)로부터의 액세스 요구를 조정하는 내부 회로(14b)를 구비한다.
또한 CPU 인터페이스 회로(14a)는, CPU 버스(15)로부터 입력한 데이터, 어드레스 및 제어 신호를 디코딩하여 내부 회로(14b)에 보내고, 또한 외부 디바이스 버스(16)로부터 입력한 데이터, 어드레스 및 제어 신호를 인코딩하여 CPU 버스(15)를 통하여 CPU(2)에 보낸다.
또한 더 상세하게는 외부 디바이스(4)는, 데이터 메모리(4a1)와 워크 메모리(4a2)를 구비하는 메모리(4a) 및 외부 입출력 디바이스(4b)를 구비하고, 외부 디바이스 인터페이스 회로(14c)는, 대응하는 메모리와의 사이를 인터페이스하는 데이터 메모리 인터페이스 회로(14c1)와, 워크 메모리 인터페이스 회로(14c2)와, 외부 입출력 디바이스 인터페이스 회로(14c3)를 구비한다.
외부 디바이스 인터페이스 회로(14c)의 각각의 회로는, 외부 디바이스(4)와 내부 회로(14b)의 상이한 신호 형태를 인터페이스하는 변환 기능을 갖는다.
일반적으로 워크 메모리(4a2)는, SRAM(Static Random Access Memory)을 포함하고, 데이터 메모리(4a1)는 SDRAM(Synchronous Dynamic Random Access Memory)을 포함하며, CPU(2)가 제어 프로그램을 실행하는 경우에 액세스된다.
또한 외부 입출력 디바이스(4b)는, CPU(2)가 제어하는 피제어 대상으로부터의 입력 신호 및 조작 단부 등의 출력 장치로부터의 신호를 인터페이스 한다.
또한 외부 입출력 버스(16)는, 데이터 메모리(4a1)와 접속하는 데이터 메모리 버스(16a) 및 워크 메모리(4a2)와 접속하는 워크 메모리 버스(16b)와, 외부 입출력 디바이스(4b)와 접속하는 입출력 디바이스 버스(16c)를 구비한다.
다음으로, 비교 회로부(13)의 상세 구성에 대하여 도 2을 참조하여 설명한다. 비교 회로부(13)는 CPU 버스 신호를 기억하는 제1 메모리(13a1)와, 외부 입출력 버스 신호를 기억하는 제2 메모리(13a2)와, CPU 버스(15)를 통하여 출력된 제1 Write 데이터와, 제1 Write 데이터를 통상 인터페이스 처리 회로부(14)가 처리하고, 외부 입출력 버스(16)에 출력하는 제2 Write 데이터를, 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하고, 또한 외부 입출력 버스(16)를 통하여 입력되는 제1 Read 데이터와, 당해 제1 Read 데이터를 통상 인터페이스 처리 회로부(14)가 처리하여 CPU 버스(15)에 출력하는 제2 Read 데이터를 상기 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하는 비교 제어 회로(13b)를 구비한다.
또한 제1 비교 타이밍에서의 판정 결과, 불일치라고 판정되었을 경우, 비교 제어 회로(13b)로부터 불일치 신호(s13b2)을 수신하여, 제1 메모리(13a1)로부터, 대응하는 제1 Write 데이터를 추출하여 재판정 요구 신호 s13c와 함께 내부 회로(14b)를 통하여 송신하고, 일치하는 경우에는 외부 디바이스(4)에 제2 Write 데이터의 송신을 지시하는 신호를, 불일치하는 경우에는 재판정 요구 신호를, 각각 대응하는 인터페이스 회로에 송신하고, 또는 제2 비교 타이밍에서의 판정 결과, 불일치라고 판정되었을 경우, 제2 메모리(13a2)로부터, 대응하는 제1 Read 데이터를 추출하여 재판정 요구 신호와 함께 내부 회로(14b)를 통하여 송신하고, 일치하는 경우에는 상기 외부 디바이스에 상기 제2 Read 데이터의 송신을 지시하는 신호를, 불일치하는 경우에는 재판정 요구 신호를, 각각 대응하는 인터페이스 회로에 송신하는 재처리 회로(13c)를 구비한다.
또한 비교 제어 회로(13b)로부터 불일치 신호 s13b2를 수신함과 함께, 불일치라고 판정된 신호를 비교 제어 회로(13b)로부터 수신하여 에러 내용을 로깅하는, 기억 유지 가능한 메모리와, 불일치 내용(에러)을 표시하는 LED 등의 표시부를 구비하는 에러 처리 회로(13d)를 구비한다. 이 에러 처리 회로(13d)는, 별도의 장소에 설치되는 외부의 표시부에 구비하도록 해도 된다.
이와 같이 구성된 FPGA 인터페이스 처리 회로(3)를 구비하는 프로그래머블 컨트롤러(1)는, 비교 회로부(13)에 의하여, FPGA 인터페이스 처리부(3)의 통상 인터페이스 처리 회로(14)에서 처리하기 전의 입력 신호와, 통상 인터페이스 처리 회로(14)에서 처리한 후의 대응하는 출력 신호(3)를 비교하여, 일치하는 경우에는 외부 디바이스(4)에 제2 Write 데이터 또는 제2 Read 데이터의 송신을 지시하는 신호를 보내고, 불일치하는 경우에는 재판정 요구 신호를, 각각 대응하는 외부 디바이스 인터페이스 회로(14c)에 송신하도록 하였다.
따라서 통상 인터페이스 처리 회로(14)의 자기 진단과, 통상 인터페이스 처리 회로(14)의 처리에 에러가 검출되었을 경우의 수복 처리를, 제어 프로그램을 정지시키지 않고 실행할 수 있는 프로그래머블 컨트롤러를 제공할 수 있다.
다음으로, 도 3을 참조하여 본 실시 형태의 FPGA를 포함한 통상 인터페이스 처리 회로(14)의 자기 진단 및 에러의 수복 기능을 구비하는 프로그래머블 컨트롤러(1)의 비교 회로부(13)의 처리 동작에 대하여 설명한다.
이 처리 동작(도 3의 s3 내지 s7)의 동안, 각각의 인터페이스 회로(14c)로부터 레디 신호를 CPU(2)에 송신하도록 하고, CPU(2)는 레디 신호를 수신하기까지의 동안에는 다음 동작으로 천이하지 않는 웨이트 제어를 실행한다.
도 3은, 본 실시 형태의 비교 회로부(13)의 처리 동작을 설명하기 위한 흐름도이다. 이 흐름도는, CPU(2)가 외부 디바이스(4)의 워크 메모리(4a2)에 Write 데이터를 기입하는 경우의 자기 진단 동작을 일례로서 설명한다.
우선 CPU(2)로부터 처리를 실행하기 위한 Write 데이터 신호(어드레스·데이터·제어 신호)가 출력되면, 이 CPU 버스 신호는 메모리(13a1)와 통상 인터페이스 처리 회로부(14)의 CPU 인터페이스 회로(14a)에 입력된다.
메모리(13a1)에 입력된 신호는, 미리 설정되는 사이클 수만큼 1차 기억된다(s1).
한편, CPU 인터페이스 회로(14a)에 입력된 CPU 버스 신호 s15는, 내부 회로(14b) 및 워크 메모리 인터페이스 회로(14c2)를 통하여 워크 메모리(4a2)에 출력된다.
그리고 비교 제어 회로(13b)에서는, 메모리(13a1)에 1차 기억된 데이터와, 통상 인터페이스 처리 회로부(14)에서 처리되어 워크 메모리 인터페이스 회로(14a2)로부터 메모리 버스(16a)에 출력된, 메모리(13a1)의 1차 기억 데이터에 대응하는 메모리(13a2)에 기억된 데이터를 제1 비교 타이밍 신호에 의해 비교한다.
비교의 데이터 입력 회로는, 잡음의 영향을 받지 않도록 배려된 구성으로 해 두고, 비교 타이밍은, 워크 메모리 인터페이스 회로(14c2)에서 생성되는, 워크 메모리 버스(16b)에 출력하는 데이터의 래치 신호에 동기한 비교 타이밍 신호 s14c2에 의해 비교한다(s2).
비교의 결과(s3), 일치(에러 없음)로 판정되었을 경우에는, 비교 제어 회로(13b)는 일치 신호 s13b1을 워크 메모리 인터페이스 회로(14c2)에 보내고, 워크 메모리 인터페이스 회로(14c2)로부터 래치된 데이터가, 그대로 메모리 버스(16b)를 통하여 워크 메모리(4a2)에 출력된다(s7).
불일치라고 판정되었을 경우에는, 비교 제어 회로(13b)는 불일치 신호 s13b2를 재처리 회로(13c), 에러 처리 회로(13d) 및 워크 메모리 인터페이스 회로(14c2)에 보낸다.
워크 메모리 인터페이스 회로(14c2)에서는, 워크 메모리(4a2)에의 신호의 출력을 정지시킨다. 또한 에러 처리 회로(13d)에서는, 에러 내용을 도시하지 않은 내부 레지스터 및 백업 가능한, 도시하지 않은 백업 메모리에 로깅한다. 또한 필요가 있을 경우에는, 도시하지 않은 표시기로부터 에러를 표시한다(s8).
에러가 통지된 재처리 회로(13c)에서는, 불일치로 된 에러 내용으로부터 대응하는 데이터를 메모리(13a1)로부터 추출하여, 대응하는 어드레스, 데이터, 제어 신호의 정보로부터, 워크 메모리(4a2)에 송신하는 데이터를 재생하고, 내부 회로(14b)에 보낸다(s4).
그리고 비교 제어 회로(13b)는, 내부 회로(14b)로부터 워크 메모리 인터페이스 회로(14c2)에서 재처리된 워크 메모리 버스(16b)에의 출력 데이터와, 메모리(13a1)로부터 재추출한 데이터를 재비교한다(s5).
비교의 결과, 일치했을 경우에는, 워크 메모리 인터페이스 회로(14c2)로부터 워크 메모리 버스(16b)를 통하여 데이터를 출력하고(s7), CPU(2)는, 이 에러는 일과성의 고장이라고 판단하여 제어 프로그램의 실행을 계속한다.
이 재비교에 있어서 에러가 검출되었을 경우, 메모리(13a1)에 기억된 데이터를 정(正)으로 하고, 재처리 회로(13c)로부터 출력된 데이터를 워크 메모리 인터페이스 회로(14c2)가 도시하지 않은 출력 레지스터에 기입하여(s6), 워크 메모리 버스(16b)를 통하여 출력한다(s7).
다른 외부 디바이스(4)에 Write 데이터를 기입하는 경우, 본 워크 메모리(4a2)에 기입하는 경우와 마찬가지이므로 그 설명을 생략한다.
또한 외부 디바이스(4)로부터 Read 데이터를 판독하는 경우의 동작은, 외부 디바이스(4)로부터 Write 데이터를 기입(Write)하는 경우에는, 비교 제어 회로(13b)에서 비교하는 한쪽 기준으로 되는 참조 데이터를 메모리(13a1)로부터 추출했지만, 외부 디바이스(4)로부터 Read 데이터를 판독하는 경우에는, 비교 제어 회로(13b)에서 비교하는 기준으로 되는 참조 데이터를 메모리(13a2)로부터 추출하는 점이 상이하다.
그 외의 동작은 외부 디바이스(4)로부터 Write 데이터를 기입하는 경우와 마찬가지이므로 그 설명을 생략한다.
이상 설명한 바와 같이 본 실시 형태에 의하면, FPGA를 사용하여 구성된 신호 처리 회로를 구비하는 프로그래머블 컨트롤러에 있어서, 제어 프로그램의 실행을 정지시키지 않고 당해 FPGA를 포함한 신호 처리 회로의 자기 진단과, 에러 검출 시의 수복 기능을 구비하는 프로그래머블 컨트롤러를 제공할 수 있다.
본 발명의 몇 가지 실시 형태를 설명했지만, 이들 실시 형태는 예로서 제시한 것이며, 발명의 범위를 한정하는 것은 의도하지 않았다. 이들 신규의 실시 형태는 그 외의 다양한 형태로 실시되는 것이 가능하며, 발명의 요지를 일탈하지 않는 범위에서 다양한 생략, 치환, 변경을 행할 수 있다. 이들 실시 형태나 그 변형은 발명의 범위나 요지에 포함됨과 함께, 특허 청구 범위에 기재된 발명과 그 균등한 범위에 포함된다.
Claims (4)
- 프로그래머블 컨트롤러로서,
제어 프로그램을 실행하는 CPU와,
상기 CPU의 외부 메모리와, 상기 CPU의 외부 입출력 디바이스를 구비하는 외부 디바이스와,
상기 제어 프로그램의 실행에 의하여, 상기 CPU가 상기 외부 디바이스에 기입하는 Write 데이터를 출력하는 출력 신호 및 상기 CPU가 상기 외부 디바이스로부터 판독하는 Read 데이터를 입력하는 입력 신호를 인터페이스하는 FPGA를 포함하는 FPGA 인터페이스 처리부와,
상기 CPU와 상기 FPGA 인터페이스 처리부 사이를 접속하는 CPU 버스와,
상기 FPGA 인터페이스 처리부와 상기 외부 디바이스를 접속하는, 쌍방향 패러렐 전송의 외부 입출력 버스를 구비하고,
상기 FPGA 인터페이스 처리부는,
상기 제어 프로그램을 실행하는 경우에 상기 입력 신호 및 상기 출력 신호를 인터페이스함과 함께, 상기 Write 데이터를 상기 외부 입출력 버스에 출력하는 제1 비교 타이밍 신호를 생성하고, 또한 상기 Read 데이터를 상기 CPU 버스에 출력하는 제2 비교 타이밍 신호를 생성하는 통상 인터페이스 처리 회로부와,
상기 CPU가 상기 CPU 버스를 통하여 출력한 제1 Write 데이터와, 당해 제1 Write 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 외부 입출력 버스에 출력하는 제2 Write 데이터를, 상기 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하며,
또한 상기 외부 입출력 버스를 통하여 입력되는 당해 제1 Read 데이터와, 당해 제1 Read 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 CPU 버스에 출력하는 당해 제2 Read 데이터를, 상기 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하는 비교 회로부
를 구비하고,
상기 통상 인터페이스 처리 회로부는,
상기 CPU와 당해 통상 인터페이스 처리 회로 사이에서 상기 CPU 버스를 통하여 입출력하는 CPU 버스 신호를 인터페이스하는 CPU/인터페이스 회로와,
상기 외부 디바이스와 당해 통상 인터페이스 처리 회로 사이에서 상기 외부 입출력 버스를 통하여 입출력하는 외부 입출력 버스 신호를 인터페이스함과 함께, 상기 제1 비교 타이밍 신호 및 상기 제2 비교 타이밍 신호를 생성하는 외부 디바이스 인터페이스 회로와,
상기 외부 디바이스에의 액세스 요구와, 상기 외부 디바이스로부터의 액세스 요구를 조정하는 내부 회로
를 구비하고,
상기 제어 프로그램의 실행 중에 상기 FPGA 인터페이스 처리부의 입출력 처리 동작의 불량을 자기 진단하도록 한 것을 특징으로 하는 프로그래머블 컨트롤러. - 제1항에 있어서,
상기 외부 디바이스는, 데이터 메모리와 워크 메모리를 구비하는 메모리 및 외부 입출력 디바이스를 구비하고,
상기 외부 디바이스 인터페이스 회로는, 상기 당해 메모리와의 사이를 인터페이스하는 데이터 메모리 인터페이스 회로와, 워크 메모리 인터페이스 회로와, 외부 입출력 인터페이스 회로를 구비하고,
상기 외부 입출력 버스는, 당해 데이터 메모리와 접속하는 데이터 메모리 버스 및 워크 메모리와 접속하는 워크 메모리 버스와, 당해 외부 입출력 디바이스와 접속하는 입출력 디바이스 버스를 구비하도록 한 프로그래머블 컨트롤러. - 제1항에 있어서,
상기 비교 회로부는,
상기 CPU 버스 신호를 기억하는 제1 메모리와,
상기 외부 입출력 버스 신호를 기억하는 제2 메모리와,
상기 CPU 버스를 통하여 출력된 제1 Write 데이터와, 당해 제1 Write 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 외부 입출력 버스에 출력하는 제2 Write 데이터를, 상기 제1 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하고, 또한 상기 외부 입출력 버스를 통하여 입력되는 당해 제1 Read 데이터와, 당해 제1 Read 데이터를 상기 통상 인터페이스 처리 회로부가 처리하여 상기 CPU 버스에 출력하는 당해 제2 Read 데이터를, 상기 제2 비교 타이밍 신호에 의해 비교하여 일치/불일치를 판정하는 비교 제어 회로와,
상기 제1 비교 타이밍에서의 판정 결과, 불일치라고 판정되었을 경우, 상기 제1 메모리로부터, 대응하는 상기 제1 Write 데이터를 추출하여 재판정 요구 신호와 함께 상기 내부 회로를 통하여 송신하며,
일치하는 경우에는, 상기 외부 디바이스에 상기 제2 Write 데이터의 송신을 지시하는 신호를, 불일치하는 경우에는 재판정 요구 신호를, 각각 대응하는 인터페이스 회로에 송신하고,
상기 제2 비교 타이밍에서의 판정 결과, 불일치라고 판정되었을 경우, 상기 제2 메모리로부터, 대응하는 상기 제1 Write 데이터를 추출하여 재판정 요구 신호와 함께 상기 내부 회로를 통하여 송신하며,
일치하는 경우에는, 상기 외부 디바이스에 상기 제2 Read 데이터의 송신을 지시하는 신호를, 불일치하는 경우에는 재판정 요구 신호를, 각각 대응하는 인터페이스 회로에 송신하는 재처리 회로
를 구비하고, 불일치하는 경우에 수복 데이터를 송신하여 제어 프로그램을 계속 실행하도록 한 것을 특징으로 하는 프로그래머블 컨트롤러. - 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013260493A JP6280359B2 (ja) | 2013-12-17 | 2013-12-17 | プログラマブルコントローラ |
JPJP-P-2013-260493 | 2013-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150070943A KR20150070943A (ko) | 2015-06-25 |
KR101606289B1 true KR101606289B1 (ko) | 2016-03-24 |
Family
ID=53413891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140169448A KR101606289B1 (ko) | 2013-12-17 | 2014-12-01 | 프로그래머블 컨트롤러 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6280359B2 (ko) |
KR (1) | KR101606289B1 (ko) |
CN (1) | CN104714459B (ko) |
IN (1) | IN2014DE03347A (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017069777A (ja) * | 2015-09-30 | 2017-04-06 | 株式会社日立製作所 | 通信処理装置、通信方法および通信システム |
CN107942894B (zh) * | 2016-10-13 | 2019-12-10 | 中国石油天然气集团公司 | 主输入输出子模块及其诊断方法、可编辑逻辑控制器 |
JP2018067148A (ja) * | 2016-10-19 | 2018-04-26 | 東洋電機製造株式会社 | シミュレーションシステム |
CN108628694B (zh) * | 2017-03-20 | 2023-03-28 | 腾讯科技(深圳)有限公司 | 一种基于可编程硬件的数据处理方法以及装置 |
JP6645467B2 (ja) * | 2017-03-28 | 2020-02-14 | 株式会社デンソー | マイクロコンピュータ |
CN106873469A (zh) * | 2017-03-31 | 2017-06-20 | 苏州时代华理电气有限公司 | 一种具有自诊断能力的数字量采集装置 |
CN107943629A (zh) * | 2017-11-20 | 2018-04-20 | 英业达科技有限公司 | 计算机装置及其控制方法 |
JP7045293B2 (ja) * | 2018-09-19 | 2022-03-31 | 日立Astemo株式会社 | 電子制御装置 |
CN109614351B (zh) * | 2018-11-30 | 2022-05-24 | 中国人民解放军陆军工程大学 | 带有纠错和自动应答机制的并行总线串行互联扩展方法 |
CN109839918B (zh) * | 2019-03-06 | 2020-10-27 | 中国核动力研究设计院 | 一种基于fpga的自诊断方法 |
CN111857074A (zh) * | 2020-07-22 | 2020-10-30 | 广东安达智能装备股份有限公司 | 一种高速高精度路径比较控制方法和路径比较控制器 |
CN115348128B (zh) * | 2022-06-27 | 2023-12-05 | 航天科工空间工程发展有限公司 | 一种基于fpga的双can总线处理管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134678A (ja) | 2008-12-04 | 2010-06-17 | Nec Corp | 電子デバイス、電子デバイスの故障検出方法および電子デバイスの故障回復方法 |
JP2011216020A (ja) | 2010-04-01 | 2011-10-27 | Mitsubishi Electric Corp | 情報処理装置および回路再構成装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61188602A (ja) * | 1985-02-16 | 1986-08-22 | Omron Tateisi Electronics Co | 入出力バスの監視回路 |
JPH01277951A (ja) * | 1988-04-28 | 1989-11-08 | Nec Ibaraki Ltd | データ転送装置 |
JPH0512189A (ja) * | 1991-07-03 | 1993-01-22 | Nec Corp | 情報処理システム |
JP3441262B2 (ja) * | 1995-09-20 | 2003-08-25 | オムロン株式会社 | データ処理装置 |
JP3015793B1 (ja) * | 1999-01-11 | 2000-03-06 | 株式会社東芝 | プログラマブルコントロ―ラ |
CN2867353Y (zh) * | 2005-04-11 | 2007-02-07 | 北京航空航天大学 | 卫星导航接收机通用数字信号处理平台 |
CN101196213B (zh) * | 2007-12-26 | 2010-09-01 | 北京航空航天大学 | 一种集成化高温超导磁悬浮储能飞轮磁轴承数字控制系统 |
JP2010039739A (ja) * | 2008-08-05 | 2010-02-18 | Koyo Electronics Ind Co Ltd | 安全plc |
CN201886095U (zh) * | 2010-11-11 | 2011-06-29 | 中国电力科学研究院 | 一种合并单元的测试装置 |
US20120159274A1 (en) * | 2010-12-21 | 2012-06-21 | Balakrishnan Kedarnath J | Apparatus to facilitate built-in self-test data collection |
JP5925507B2 (ja) * | 2012-02-07 | 2016-05-25 | 株式会社日立製作所 | データ照合装置、照合方法及びそれを用いた安全保安システム |
-
2013
- 2013-12-17 JP JP2013260493A patent/JP6280359B2/ja active Active
-
2014
- 2014-11-19 IN IN3347DE2014 patent/IN2014DE03347A/en unknown
- 2014-12-01 KR KR1020140169448A patent/KR101606289B1/ko active IP Right Grant
- 2014-12-03 CN CN201410725802.9A patent/CN104714459B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134678A (ja) | 2008-12-04 | 2010-06-17 | Nec Corp | 電子デバイス、電子デバイスの故障検出方法および電子デバイスの故障回復方法 |
JP2011216020A (ja) | 2010-04-01 | 2011-10-27 | Mitsubishi Electric Corp | 情報処理装置および回路再構成装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6280359B2 (ja) | 2018-02-14 |
KR20150070943A (ko) | 2015-06-25 |
IN2014DE03347A (ko) | 2015-08-21 |
CN104714459B (zh) | 2017-12-19 |
CN104714459A (zh) | 2015-06-17 |
JP2015118468A (ja) | 2015-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101606289B1 (ko) | 프로그래머블 컨트롤러 | |
US7444540B2 (en) | Memory mirroring apparatus and method | |
US8732532B2 (en) | Memory controller and information processing system for failure inspection | |
KR101558687B1 (ko) | 직렬 통신 테스트 장치, 시스템 및 방법 | |
US8527714B2 (en) | Secure avionics equipment and associated method of making secure | |
US10379946B2 (en) | Controller | |
EP3979527A1 (en) | System and method of network synchronized time in safety applications | |
US20030041290A1 (en) | Method for monitoring consistent memory contents in redundant systems | |
US7890831B2 (en) | Processor test system utilizing functional redundancy | |
US10467889B2 (en) | Alarm handling circuitry and method of handling an alarm | |
JP2013175118A (ja) | 制御装置、及びそのメモリ故障検出方法、その自己診断方法 | |
JP2001290710A (ja) | データエラー検出装置 | |
JP2010102565A (ja) | 二重化制御装置 | |
JP2019066983A (ja) | 半導体装置 | |
JP5632804B2 (ja) | バス診断機能を備えた制御装置 | |
Proerzza et al. | A low-cost fail-safe circuit for fault-tolerant control systems | |
JP5325032B2 (ja) | 多重系システムの高信頼性制御装置 | |
US20230055743A1 (en) | Information processing device, control method, and non-transitory computer readable medium | |
JP6618505B2 (ja) | コンフィグレーションデータ設定装置 | |
JP2559531B2 (ja) | 二重化システムのエラーチェック回路 | |
JP2012113481A (ja) | バスモジュール及びバスシステム | |
KR100775345B1 (ko) | 듀얼포트 메모리의 액세스 제어장치 및 방법 | |
JPS5917465B2 (ja) | チエツク装置 | |
JP2011145757A (ja) | 入出力装置 | |
JPH01277951A (ja) | データ転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200303 Year of fee payment: 5 |