본 발명은, 인터럽트 요인으로 되는 복수의 검출 신호로부터 생성하는 인터럽트 신호의 순위를 변경 가능하게 구성하고, 복수의 검출 신호로부터 해당 검출 신호의 수보다 적은 수의 인터럽트 신호를 생성 가능하게 구성하며, 또는 인터럽트 처리중에 검출 신호를 수신했을 때에 해당 인터럽트 처리 종료후에 후발 인터럽트의 처리를 실행 가능하게 구성하여 상기 과제를 해결했다. 또, 여기서 말하는 인터럽트 신호의 순위란, CPU의 인터럽트 포트의 수에 대응한 것으로, 예컨대 CPU에 4개의 인터럽트 포트가 있으면, 인터럽트 신호에 최대 4개의 순위를 설정하는 것이 가능하다. 통상, CPU의 각 인터럽트 포트에는, 다른 인터럽트 포트에 대한 우선 순위를 설정하는 것이 가능하다. 본 발명에서는, 인터럽트 요인으로 되는 복수의 검출 신호로부터 생성하는 인터럽트 신호의 순위를, 그 인터럽트 요인의 우선도에 따라서, 우선 순위가 높은 인터럽트 포트에 할당하도록 변경할 수 있다. 즉, 본 발명에서는, 인터럽트 요인으로 되는 복수의 검출 신호로부터 생성하는 인터럽트 신호에 우선 순위를 설정하고, 그 우선 순위를 변경 가능하게 구성했다.
또한, 본 발명에서는, 동작 환경의 변화를 검지하기 위해서 마련된 많은 센서 등으로부터 생성된 각 인터럽트 요인마다 검출 신호를 필요에 따라 그룹화하고, 그룹화한 신호로부터 소정의 순위의 인터럽트 신호를 생성하는 것에 의해, 상기 목적을 달성할 수 있다.
또한, 인터럽트 처리중에 검출 신호를 수신한 경우에는, 인터럽트 신호의 출력을 제한 또는 금지함과 동시에 그 검출 신호의 수신 이력(履歷)을 기억해 두고,현재의 인터럽트 처리의 종료후에, 기억하고 있는 검출 신호에 대응하는 인터럽트 신호를 출력하도록 구성하는 것에 의해, 인터럽트 처리중인 인터럽트 요구를 적절히 처리하는 것이 가능해진다. 이하에 그 특징을 설명한다.
본 발명의 제 1 특징에 따른 인터럽트 신호 생성 장치는, 센서 또는 감시 장치로부터의 출력 신호에 근거하여 복수 종류의 인터럽트 요인의 발생을 감시하고, 인터럽트 요인의 발생을 검출했을 때에 각 인터럽트 요인마다 다른 종류의 검출 신호를 출력하는 인터럽트 검출부와, 검출 신호를 수신했을 때에 인터럽트 요인에 대응하는 소정의 순위의 인터럽트 신호를 출력하는 인터럽트 신호 출력부와, 인터럽트 요인에 대응하여 출력되는 인터럽트 신호의 순위의 설정을 변경 가능하게 기억하는 순위 설정부를 포함하는 인터럽트 처리부를 구비하는 것을 특징으로 한다. 예컨대, 인터럽트 검출부에서는 입력 신호를 그대로 검출 신호로서 출력하고, 인터럽트 처리부에서는 그 인터럽트 검지 신호의 입력 순서대로 높은 순위를 부여하여 인터럽트 신호를 출력할 수도 있다.
또한, 필요에 따라 순위 설정부로부터 검출 신호에 대응하여 출력되는 인터럽트 신호의 순위를 변경하는 것이 가능하다.
본 발명의 제 2 특징에 따른 인터럽트 신호 생성 장치는 상기 순위 설정부의 상기 순위의 설정을 CPU 및/또는 외부 입력 장치로부터의 신호에 근거하여 변경 가능한 것을 특징으로 한다.
CPU에서 프로그램에 의해 변경하는 것도, 조작 패널에서 매뉴얼에 의해 설정 변경하는 것도 가능하다. CPU에서의 액세스는 버스 라인을 통하여 실행할 수 있다.
본 발명의 제 3 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 검출부가, 슬립 모드중의 CPU의 웨이크 업 이벤트(wake up event)의 발생을 검출하여 검출 신호를 출력하는 검출부를 구비하는 것을 특징으로 한다. 동작 모드의 변경을 위한 인터럽트에 적용 가능하다.
본 발명의 제 4 특징에 따른 인터럽트 신호 생성 장치는 인터럽트 요인의 감시 대상 장치가 가동중이더라도, 상기 인터럽트 요인에 대한 상기 인터럽트 신호의 순위의 설정을 수시로 변경 가능한 것을 특징으로 한다. 예컨대, 프린터와 같은 인터럽트 감시 대상의 장치가 가동중에도 소정의 설정 변경이 가능하기 때문에, 동작 모드 변경시에 CPU에서 프로그램에 의해 순위를 변경하도록 구성할 수 있다. 이것에 의해, 슬립 모드, 전력 절약 모드, 통상 동작 모드 등의 각 동작 모드에 따라서, 최적의 순위 설정에 적절하게 변경 가능해진다.
본 발명의 제 5 특징에 따른 인터럽트 신호 생성 장치는, 센서 또는 감시 장치로부터의 출력 신호에 근거하여 복수 종류의 인터럽트 요인의 발생을 감시하고, 인터럽트 요인의 발생을 검출했을 때에 각 인터럽트 요인마다 생성되는 복수의 검출 신호를 출력하는 인터럽트 검출부와, 인터럽트 검출부로부터 수신한 복수의 검출 신호의 일부 또는 전부를 2 이상의 그룹으로 분할하는 그룹 설정부와, 각 그룹에 속하는 복수의 검출 신호가 소정의 조건을 만족할 때에 소정의 순위의 인터럽트 신호를 생성하여 출력하는 인터럽트 신호 출력부를 갖는 인터럽트 처리부를 구비하는 것을 특징으로 한다. 이 구성에 의해 많은 인터럽트 요인을 적은 인터럽트 신호로 관리가 가능해진다. 소정의 조건으로서, 복수의 인터럽트 요인이 논리합, 논리곱으로 조합하는 것도 가능하다.
본 발명의 제 6 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 처리부에 있어서는, 그룹에 속하는 복수의 검출 신호의 논리합 조건에 근거하여 해당 그룹에 할당된 상기 인터럽트 신호를 생성하는 것을 특징으로 한다. 이것에 의해, 단순하지만, 확실히 인터럽트 요인을 특정하는 것이 가능해진다.
본 발명의 제 7 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 처리부에 있어서는, 인터럽트 신호의 1단위를 구성하는 그룹을 확정하기 위한 그룹 설정부의 설정 및 변경을 CPU 및/또는 외부 입력 장치로부터의 신호에 근거하여 제어 가능한 것을 특징으로 한다. 그룹 구성의 변경할 수 있음으로써 특정한 인터럽트 요인마다 출력되는 인터럽트 신호의 순위를 변경하는 것이 가능해진다. CPU에서 프로그램에 의해 변경하는 것도, 조작 패널에서 매뉴얼에 의해 설정 변경하는 것도 가능하다. CPU로부터의 액세스는 버스 라인을 통하여 실행할 수 있다.
본 발명의 제 8 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 처리부가 또한 각 그룹에 대응하는 인터럽트 신호의 순위를 변경 가능한 것을 특징으로 한다. 이것에 의해, 그룹 단위에서의 순위의 변경이 가능해진다.
본 발명의 제 9 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 검출부가, 슬립 모드중의 CPU의 웨이크 업 이벤트의 발생을 검출하여 검출 신호를 출력하는 검출부를 구비하는 것을 특징으로 한다. 동작 모드의 변경을 위한 인터럽트에 적용 가능하다.
본 발명의 제 10 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 요인의 감시 대상 장치가 가동중이더라도, 그룹 설정부의 그룹 설정 및/또는 변경을 실행하는 것이 가능한 것을 특징으로 한다. 예컨대, 프린터와 같은 인터럽트 감시 대상의 장치가 가동중에도 소정의 설정 변경이 가능하기 때문에, 동작 모드 변경시에 CPU로부터 프로그램에 의해 순위를 변경하도록 구성할 수 있다. 이것에 의해, 슬립 모드, 전력 절약 모드, 통상 동작 모드 등의 각 동작 모드에 따라서, 최적의 그룹화, 우선 순위 설정으로 변경하는 것이 변경 가능해진다.
본 발명의 제 11 특징에 따른 인터럽트 신호 생성 장치는, 센서 또는 감시 장치로부터의 출력 신호에 근거하여 복수 종류의 인터럽트 요인의 발생을 감시하고, 인터럽트 요인의 발생을 검출했을 때에 각 인터럽트 요인마다 생성되는 복수의 검출 신호를 출력하는 인터럽트 검출부와, 인터럽트 검출부로부터 수신한 검출 신호에 근거하여 소정의 인터럽트 신호를 출력하는 인터럽트 신호 출력 제어부와, 복수의 검출 신호의 수신 상태를 기억하는 상태 기억부와, 인터럽트 신호의 출력후의 인터럽트 처리중에 수신한 검출 신호를 상기 상태 기억부에 기억하고, 현재의 인터럽트 처리의 종료후에, 상태 기억부에 기억된 검출 신호에 근거하여 대응하는 인터럽트 신호를 출력시키도록 상태 기억부 및 상기 인터럽트 출력부를 제어하는 인터럽트 모드 제어부를 구비하는 것을 특징으로 한다. 이에 따라, 간단한 구성에 의해, 인터럽트 처리중에 또한 인터럽트가 발생한 경우이더라도, 확실히 적확(的確)한 인터럽트 처리를 실행하는 것이 가능해진다.
본 발명의 제 12 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 신호 출력 제어부가 인터럽트 검출부로부터 수신한 복수의 검출 신호의 일부 또는 전부를 2 이상의 그룹으로 분할하는 그룹 설정부와, 상기 그룹 설정부에 의해 설정된 그룹에 속하는 상기 복수의 검출 신호중 어느 하나를 수신했을 때에 해당 그룹에 할당된 소정의 순위의 인터럽트 신호를 생성하여 출력하는 인터럽트 신호 출력부를 구비하고, 인터럽트 모드 제어부가, 인터럽트 처리중에 해당 인터럽트 처리의 원인으로 된 검출 신호와 동일 그룹에 속하는 상기 검출 신호를 수신했을 때에, 해당 검출 신호를 다른 검출 신호와 구별 가능하게 상기 상태 기억부에 기억하며, 현재의 인터럽트 처리의 종료후에, 구별 가능하게 기억한 검출 신호에 대응하는 인터럽트 신호를 출력시키도록 인터럽트 신호 출력부를 제어하는 것을 특징으로 한다. 그룹화된 검출 신호의 경우에 대한 처리에 대응하는 것이다. 동일 그룹내에서 후속하는 인터럽트가 발생한 경우에만, 인터럽트 처리 종료후의 처리를 실행하도록 구성하고 있다. 인터럽트 신호가 동시에 발생하더라도, 다른 순위의 인터럽트 신호는 서로 독립하고 동시에 병렬적으로 인터럽트 처리 가능한 것도 있기 때문이다.
본 발명의 제 13 특징에 따른 인터럽트 신호 생성 장치는, 인터럽트 모드 제어부가, 인터럽트 처리중에 상태 기억부에 기억된 검출 신호 또는 구별 가능하게 기억된 검출 신호에 대응하는 인터럽트 신호의 출력을 현재의 인터럽트 처리가 종료할 때까지 금지하는 것을 특징으로 한다. 이것에 의해, CPU의 제어를 간소화하는 것이 가능해진다.
본 발명의 제 14 특징에 따른 인터럽트 신호 생성 장치는, 상태 기억부가 검출 신호의 수신 내용을 순차적으로 기억하는 상태 레지스터와, 상태 레지스터의 기억 내용과 동일 내용을 기억하고 있고 상태 레지스터의 기억 내용의 변경에 따라 기억 내용을 갱신하는 이력 레지스터를 구비하고 있으며, 인터럽트 모드 제어부는, 인터럽트 처리중에 해당 인터럽트 처리의 원인으로 된 검출 신호와 동일 그룹에 속하는 검출 신호를 수신했을 때에, 해당 수신한 검출 신호에 대응하는 부분의 이력 레지스터의 갱신을 금지하고, 인터럽트 처리의 종료후에 상태 레지스터와 이력 레지스터를 비교하여 기억 내용이 불일치의 경우에 불일치 부분에 대응하는 인터럽트 신호를 출력하도록 인터럽트 신호 출력부를 제어하는 것을 특징으로 한다. 상태 레지스터와 이력 레지스터에 의해, 인터럽트 처리중의 인터럽트 발생을 확인하는 구성으로 한 것이다.
본 발명의 제 1 특징에 따른 인터럽트 신호의 생성 방법은, (a) 각종 설정 조건의 변경 요구의 유무 및 인터럽트 요인의 발생을 감시하는 감시 공정과, (b) 소정의 설정 변경 요구에 따라서, 인터럽트 요인에 대응하여 출력되는 인터럽트 신호의 순위의 설정을 변경하는 공정과, (c) 인터럽트 요인의 발생을 검지했을 때에 순위의 설정에 따라서, 검지한 인터럽트 요인에 대응하는 순위의 인터럽트 신호를 출력하는 공정을 구비하는 것을 특징으로 한다.
본 발명의 제 2 특징에 따른 인터럽트 신호의 생성 방법은, 감시 공정 (b)이 또한 동작 모드의 변경시에 상기 순위의 설정을 변경하는 것을 특징으로 한다.
본 발명의 제 3 특징에 따른 인터럽트 신호의 생성 방법은, (a) 복수의 검출 신호의 발생의 유무를 적어도 1 이상의 그룹 단위로 감시하는 감시 공정과, (b) 그룹에 속하는 검출 신호중 어느 1개에 대하여 검출 신호를 수신했을 때에, 해당 검출 신호가 속하는 상기 그룹에 대응하는 인터럽트 신호를 출력하는 것을 특징으로 한다.
본 발명의 제 4 특징에 따른 인터럽트 신호의 생성 방법은, 상기 감시 공정 (a)이 또한 그룹 구성의 변경 요구의 유무를 감시하는 공정과, 그룹 구성의 변경 요구에 따라 상기 그룹을 구성하는 검출 신호를 변경하는 공정을 포함하는 것을 특징으로 한다.
본 발명의 제 5 특징에 따른 인터럽트 신호의 생성 방법은, (a) 인터럽트 요인의 발생을 감시하고, 인터럽트 요인이 발생했을 때에 검출 신호를 생성하여 출력하는 공정과, (b) 검출 신호를 수신했을 때에, 해당 수신한 상기 검출 신호에 대응하는 인터럽트 신호를 출력하는 공정과, (c) 인터럽트 신호의 출력에 의한 인터럽트 처리의 실행 처리의 개시에 의해 인터럽트 처리 모드에 이행하고, 후속하는 인터럽트 요인의 발생을 감시하는 공정과, (d) 인터럽트 모드중에 인터럽트 요인이 발생하는 것에 의해 검출 신호를 수신했을 때에 수신한 검출 신호를 기억하는 공정과, (e) 인터럽트 모드가 종료했을 때에, 인터럽트 모드중에 후속하는 검출 신호를 수신했는지 여부 확인하고, 검출 신호를 수신하고 있을 때에는 상기 공정 (b)∼공정 (e)의 처리를 반복하며, 후속하는 검출 신호를 수신하지 않고 있을 때에는, 감시 공정 (a)의 처리로 이행하는 공정을 구비하는 것을 특징으로 한다.
본 발명의 상기 및 그 밖의 목적, 특징, 국면 및 이익 등은 첨부 도면을 참조로 하여 설명하는 이하의 상세한 실시예로부터 더욱 명백해질 것이다.
이하, 도면을 참조하면서, 본 발명의 실시예를 상세히 설명한다.
본 명세서에서는, 본 발명의 구성을 설명하기 위해서, 본 발명을 프린터에 적용한 예를 이용하여 설명하지만, 본 발명은 프린터에 한정되지 않고, CPU에 의해 제어되어 복수의 인터럽트 요인에 근거하여 인터럽트 처리를 행하는 전자기기에 적용 가능하다.
우선, 도 2를 이용하여, 본 발명이 적용되는 장치의 기본 구성예를 설명한다. 도 2는 본 발명에 따른 인터럽트 신호 생성 장치를 프린터에 적용한 구성예를 나타내는 블럭도이다. 도면중, 참조 부호 (1)는 CPU이고, 통상, 통상의 동작 모드와, 전력 절약 모드 또는 슬립 모드 등의 동작 모드를 갖고 있다. CPU에는, 버스 라인(25)을 거쳐서, 인쇄 기구(2), 인터페이스(I/F)(7), ROM(8), RAM(9) 등이 접속되어 있다.
ROM(8) 및 RAM(9)에는 CPU(1)의 제어용 소프트웨어(펌웨어를 포함함) 및 데이터가 기억되어 있다. CPU(1)는, 이들 제어용 소프트웨어 등에 의한 제어하에서, 인터페이스(7)를 거쳐서 호스트 장치로부터 송신된 인쇄 명령 및 인쇄 데이터에 따라 인쇄를 행하도록 인쇄 기구(2)를 제어한다.
인쇄 기구(2)는 인쇄 기구 구동 회로(3) 및 이것에 접속된 헤드(4), 모터(5) 및 플런저(plunger)(6)등에 의해 구성되어 있고, 인쇄 기구 구동 회로(3)가 CPU(1)의 지시에 근거하여 각 부를 제어한다.
CPU(1)에는 인터럽트 신호 생성 장치(10)가 더 접속되어 있다. 인터럽트 신호 생성 장치(10)는, 오류의 발생 등의 인터럽트 요인에 따라 인터럽트 신호를 생성하여, 인터럽트 신호 라인(26)을 거쳐서, CPU(1)의 인터럽트 포트에 대응하는 인터럽트 신호를 출력한다. 또한, 인터럽트 신호 생성 장치(10)는 CPU(1)가 슬립 모드인 때이더라도 동작하도록 구성되어 있다. 슬립 모드중인 CPU(1)의 인터럽트 포트에 인터럽트 신호가 입력되면, CPU(1)는 기동하여, 슬립 모드로부터 동작 상태로 되돌리기 위해서, 각종 인터럽트 처리를 실행한다.
본 발명은 CPU(1)에 대한 인터럽트 처리 요구 신호의 생성에 관한 것으로, 통상 동작 모드, 전력 절약 모드, 슬립 모드와는 무관계이지만, 인터럽트 요인에는 통상 동작 모드, 전력 절약 모드, 슬립 모드 등의 전자기기의 동작 모드에 관련되는 것과 이들 동작 모드와는 무관계인 것이 존재한다. 이하의 설명에서는, 필요에 따라, 슬립 모드에 있어서의 인터럽트 처리에 대해서도 설명한다.
CPU(1)는, 전력 절약을 위해 일정 시간 이상 동작하지 않는 경우에는, 동작 상태에서 슬립 모드로 이행한다. 어떠한 상황하에서, 슬립 모드로 천이시킬지는 그 장치의 종류, 사용 형태 등에 따라 결정할 수 있다. 모드의 천이에 대해서는, 전술한 일본 특허 공개 평성 제 5-32018 호 공보에 상세히 설명되어 있다. 본 발명은 인터럽트 신호의 생성에 관한 것이기 때문에, 동작 모드로부터 슬립 모드로의 천이에 대해서는, 더 이상의 설명은 하지 않는다. 필요가 있으면, 상술한 공보를 참조하라.
CPU가 동작중에 오류의 발생 등의 소정의 상황 변화가 발생한 경우에는, 그 변화에 대처하기 위해서 인터럽트 처리를 실행할 필요가 있다. 예컨대, 전원에 이상이 발생한 경우 등에는, 즉각 소정의 경고를 발해야 하는 외에, 필요에 따라서전원의 절단 등의 처치가 필요하게 된다. 또한, 잉크 탱크가 분리되거나, 커버를 열거나 한 경우에도, 그 상태에 따라 적절히 처리하는 것이 필요해진다. 이것은, CPU(1)이 슬립 모드 상태에 있는 경우라도 마찬가지이며, 이 경우에는 CPU(1)를 기동하여 동작 모드로 복귀시킬 필요가 있다. 어떠한 상황 변화가 있었을 때에 인터럽트 처리를 실행하고, 또는 CPU를 동작 모드로 복귀시킬지는, 그 장치의 기본적인 설계 사상 혹은 장치에 어떠한 기능을 부여시킬 지에 의해 달라지기 때문에, 인터럽트 요인 및 그 우선 순위의 설정 및 변경은 자유도가 높은 것이 바람직하다.
도 2에서는, 전원 이상 검출(11), 프린터 커버 오픈(12), 인자 용지가 없어졌을 때의 인자 용지 없음의 검지(13), 잉크 없음의 검지(14) 등의 신호가 인터럽트 신호 생성 장치(10)에 입력되는 것이 예시되어 있다. 예컨대, 슬립 모드중에 잉크 탱크가 분리된 경우에는, 잉크 탱크가 분리된 내용의 경고를 발생하는 외에, 인쇄 명령이 있더라도 인쇄를 개시하지 않도록 제어해야 한다. 전원 전압이 높아진 경우 등 전원 이상이 발생한 경우에는, 다른 정상인 부분을 고장내지 않도록 하기 위해서, 즉시 전원을 차단하는 등의 처치가 필요하게 된다.
도 3에 인터럽트 신호를 발생시키는 요인을 인터럽트 신호 생성 장치(10)로의 입력 신호 1∼n으로서 예시한다. 슬립 모드시에 이들 요인이 발생했을 때에는, 인터럽트 신호를 발생시키는 것에 의해 CPU(1)를 슬립 모드에서 동작 모드로 천이시키기 위한 인터럽트 처리와 인터럽트 원인에 대처하기 위한 인터럽트 처리의 쌍방을 실행할 필요가 있다. 도 3에 나타낸 바와 같이, 기본적으로는, 전원 전압의 이상(異常), 기타 각종 센서에 의해 이상 상태를 검지한 경우 등에 인터럽트 신호를 발생하여, CPU를 동작 모드로 천이시키는 것이 많다. 이 밖에, 도 3에도 나타낸 바와 같이, 슬립 모드중에 오퍼레이터가 페이퍼 피드(paper feed) 등의 스위치를 누르는 등의 동작 지시가 있었던 경우도 인터럽트 원인으로 된다. 또한, 도 3에서는, CPU(1)을 슬립 모드에서 동작 모드로 천이시키는 요인을 나타내고 있지만, 이들 요인은 슬립 모드시뿐만 아니라 동작 모드에도 인터럽트 요인으로 된다. 단지, CPU(1)의 동작 모드시에는, 도 3에 기재한 요인뿐만 아니라, 예컨대, 와치독 타이머(watchdog timer)의 타임아웃(time-out) 등도 CPU(1)로의 인터럽트 요인으로 된다. 와치독 타이머는 CPU(1)의 폭주를 검지하기 위한 타이머로서, 폭주 상태가 발생하면, 인터럽트 처리에 의해 CPU(1)의 폭주를 정지시켜, 소정의 대응 처리를 실행하는 것이다.
또한, 도 3에 나타내고 있는 슬립 모드로부터의 인터럽트 요인은 예시이며, 이 밖의 요인에 의해 인터럽트 신호를 발생시키는 것도 할 수 있다. 예컨대, 후술하는 바와 같이, 호스트 장치로부터 슬립 모드중의 장치에 웨이크 업(wake up) 명령을 출력하는 것에 의해, 인터럽트 신호를 생성시켜 슬립 모드로부터 동작 모드로 천이시키도록 구성하는 것도 가능하다.
(인터럽트 신호 생성 장치)
(실시예 1)
다음에 도 1을 이용하여, 본 발명의 인터럽트 신호 생성 장치(10)의 실시예 1을 설명한다. 프린터의 각 부에 마련된 센서 등으로부터 입력 신호 1∼n의 각각이 인터럽트 신호 생성 장치(10-1)의, 대응하는 인터럽트 검출부(20)에 입력된다. 인터럽트 검출부(20)는, 입력 신호 1∼n이 소정의 조건을 만족하고 있을 때에 한정 검출 신호를 출력하도록 구성하더라도, 입력 신호 1∼n을 수신하면 무조건적으로 검출 신호를 출력하도록 구성하더라도 좋다.
검출 신호는 인터럽트 처리부(15)에 출력된다. 인터럽트 처리부(15)에서는, 사전 설정된 조건에 따라서, 수신한 검출 신호를 소정의 순위의 인터럽트 신호 1∼n으로서 출력한다. 이러한 구성으로 하는 것에 의해, 입력 신호 1∼n과 인터럽트 검출부(20)의 접속 등이 물리적인 접속과는 무관하게 입력 신호에 대응하는 인터럽트 신호의 순위를 설정하는 것이 가능해진다. 예컨대, 물리적으로는 최저 위(位)의 단자(인터럽트 검출부(20))에 입력된 검출 신호 n을, 최고 위의 순위의 인터럽트 신호 1로 하여 출력하는 것 등이 가능해진다.
각 인터럽트 신호 1∼n은 인터럽트 신호 라인(26)을 거쳐서, CPU(1)의 인터럽트 포트에 각각 입력된다. CPU(1)에서는, 입력 포트마다 우선도를 결정할 수 있어, 입력 포트에 따른 우선 순위로 인터럽트 처리가 실행된다. CPU(1)의 내부에서, 입력 포트의 우선 순위를 변경하는 것에 의해, 인터럽트 처리의 우선 순위를 변경하는 것도 가능하다.
인터럽트 처리부(15) 및 인터럽트 검출부(20)는 CPU(1)으로부터 버스 라인(25)을 통하여 제어 정보를 수취하고, 수신한 제어 정보에 근거하여 인터럽트 검출 및 인터럽트 신호의 순위의 설정 또는 변경을 행하도록 하는 것도 가능하다.
(실시예 2)
도 4에 더 구체적인 본 발명의 인터럽트 신호 생성 장치의 실시예 2를 나타낸다. 실시예 2에 있어서는, 인터럽트 처리부(15-1)가 제어부(17), 상태 기억부(18), 순위 변경부(19) 및 인터럽트 신호 생성부(29)에 의해 구성되어 있다. 검출 신호 1∼n은 우선, 인터럽트 처리부(15-1)의 순위 변경부(19)에 입력된다. 순위 변경부(19)는 입력과 출력의 단자를 전환하는 멀티플렉서 또는 인코더 등에 의해 구성될 수 있다.
도 5를 이용하여 더 상세히 설명한다. 도 5는 순위 변경부(19)를 인코더로 구성한 경우의 예를 나타내는 도면이다. 인터럽트 신호 1∼n의 입력은 각 인코드부(19-1~19-n)에 제각기 입력된다. 순위 변경부(19)는 n 개의 인코드부(19-1∼19-n)로 구성되어 있다. 도 5의 예에서는, 알기 쉽게 하기 위해서, 제 1 번째의 인코드부(19-1)와 제 n 번째의 인코드부(19-n)만을 기재하고 있다. 이하의 설명에서는 인코드부(19-1)만을 인용하지만, 각 인코드부(19-1∼19-n)는 특별히 설명하는 부분을 제외하면, 동일한 구성 및 기능을 갖고 있다.
인코드부(19-1)는 입력 신호의 수 n과 동일한 비트수 n을 기억 가능한 선택 레지스터(46)를 갖고 있다. 선택 레지스터(46)의 각 비트 1∼n은, 각 인코드부(19-1~19-n)에 입력되는 인터럽트 신호 1∼n과 1:1로 대응하도록 AND 게이트 A1∼An에 입력되고, AND 게이트 A1∼An으로부터는 입력 신호인 인터럽트 신호와 선택 레지스터의 출력 비트와의 논리곱이 출력된다.
따라서, 선택 레지스터(46)의 1∼n 비트중 특정한 1 비트만을 온 "1"으로 해두면, 온으로 되어 있는 비트에 대응하는 AND 게이트만이 AND 조건을 만족시킬 수 있는 상태로 되고, 그 밖의 AND 게이트는 검출 신호의 유무에 관계없이, AND 조건을 만족시키지 않는다. 입력되는 n개의 검출 신호 1∼n의 각각을 n개의 인코더부(19-1∼19-n)중 어느 하나에만 할당하도록, 선택 레지스터(46)의 비트를 설정하는 것에 의해, 검출 신호와 인터럽트 신호를 1:1로 대응짓는 것이 가능해진다. 또한, 선택 레지스터(46)의 설정 비트를 인코더(19-1∼19-n)의 상호간에서 바꾸는 것에 의해, 검출 신호에 대응하는 인터럽트 신호의 순위를 바꾸는 것이 가능해진다. 따라서, 선택 레지스터(46)는 검출 신호로부터 생성되는 인터럽트 신호의 순위 설정부로서 기능한다.
도 5의 예에서는, 제 1 인코드부(19-1)에 있어서는 선택 레지스터(46)의 제 3 번째의 비트만이 "1"로 설정되어 있다. 따라서, 검출 신호 3이 입력되었을 때만, AND 게이트 A3의 조건이 만족되어, OR 게이트(47)로부터 "1"이 출력된다. 이것에 의해, 검출 신호 3으로부터, 순위 변경부(19)의 제 1 번째의 단자로부터 신호가 출력된다. 제 1 번째의 단자로부터의 출력 신호는 인터럽트 신호 생성부(29)에 의해 최고 위의 인터럽트 신호 1로서 CPU에 출력된다. 마찬가지로, 다른 검출 신호 1∼n을 서로 중복하지 않도록 각 인코드부(19-1∼19-n)의 선택 레지스터(46)의 각 비트 1∼n으로 설정하는 것에 의해, 검출 신호(즉, 입력 신호)에 의해 생성되는 인터럽트 신호의 순위를 설정하는 것이 가능해진다.
이상의 설명으로부터 알 수 있는 바와 같이, 입력 신호와 출력 신호를 어떻게 설정할지는, 미리 선택 레지스터(46)에 소정의 값을 설정하는 것에 의해 실행한다. 선택 레지스터는 외부로부터 설정 및 변경 가능하게 구성하는 것이 바람직하다. 도 4에서는, 제어부(17)에 의해 제어하는 구성을 나타내고 있다. 조작 패널 등의 입력 장치 또는 CPU(1)으로부터 제어부(17)에 소정의 제어 신호를 송신하여, 선택 레지스터(46)의 설정 및 변경을 실행한다.
순위 변경부(19)에 의해 입력 순서와 출력 순서를 바꾼 검출 신호 1∼n은 인터럽트 신호 생성부(29)에 입력된다. 인터럽트 신호 생성부(29)에서는, 예컨대 입력 단자의 나열 순서대로 높은 순위의 인터럽트 신호 1∼n으로서 출력한다. 이상의 구성에 의해, 검출 신호 1∼n에 대응하는 인터럽트 신호의 순위를 변경하는 것이 가능해진다. 또한, CPU(1)는, 버스 라인(25)을 거쳐서 제어부(17)로 제어 데이터를 송신하는 것에 의해, 제어부(17)를 거쳐서 각 부(18, 19, 29)를 제어하는 것이 가능하다.
상태 기억부(18)는, 인터럽트 처리부(15)가 검출 신호 1∼n을 수신했을 때에, 어떤 검출 신호를 수신했는지를 기억해 두는 것이다. 이것에 의해 CPU(1)가 인터럽트 처리의 과정에서, 상태 기억부(18)의 내용을 판독하는 것에 의해, 인터럽트 원인을 확인하는 것이 가능해져, 인터럽트 원인에 대응한 적절한 인터럽트 처리를 실행할 수 있다.
(실시예 3)
도 6을 이용하여, 본 발명의 인터럽트 신호 생성 장치의 실시예 3을 설명한다. 도 6의 실시예 3에 있어서는, 인터럽트 처리부(15-3)가 합성 처리부(16), 제어부(17), 상태 기억부(18)에 의해 구성되어 있다. 제어부(17) 및 상태 기억부(18)는 실시예 2와 동일하기 때문에, 합성 처리부(16)만을 설명한다. 합성 처리부(16)는, 검출 신호 1∼n을 소정의 조건하에서 그룹화하고, 입력 신호보다 적은 수의 인터럽트 신호 1∼m으로서 출력하는 것이다. 어떠한 조건으로 그룹화할 지는 제어부(17)에 의해 제어된다. 제어부(17)는, 상술한 바와 같이 버스 라인(25)을 거쳐서 CPU(1)로부터 제어 가능하다.
본 발명의 실시예 3에 의하면, 다수의 검출 신호 1∼n을 소정의 조건으로 그룹화하고, 검출 신호 1∼n의 수보다 적은 인터럽트 신호 1∼m으로서 출력하는 것이 가능해진다. 통상, CPU에는 인터럽트 포트가 8개정도 마련되어 있지만, 인터럽트 요인으로 되는 입력 신호는 40개를 초과하는 것도 있다. 이와 같이 입력 신호가 많은 경우에도, 입력 신호를 그룹화하고, 소정의 그룹 단위로 인터럽트 신호의 순위를 할당하는 것에 의해, 적절한 인터럽트 처리가 가능해진다.
도 7에 복수의 입력 신호를 그룹화한 예를 나타낸다. 이 예에서는, 인터럽트 신호 1로부터 순서의 숫자가 커짐에 따라서 CPU가 실행하는 인터럽트 처리의 우선 순위가 낮게 되는 것으로 한다. 전원 전압 이상(異常)은, 기기를 고장나게 할 우려가 있는 것 및 정상 동작이 불능으로 되는 것으로부터, 통상 최고 위의 우선 순위(priority)의 인터럽트 처리가 CPU에 의해서 행해진다. 도 7의 예에서도, 전원 전압 이상, 리셋 입력, 와치독 타이머가 최고 위의 우선 순위로 되어 있다. 또한, 도 7에서는, 와치독 타이머도 검출 신호로서 나타내고 있지만, 슬립 모드시에는 CPU의 폭주는 있을 수 없기 때문에, 와치독 타이머의 타임아웃에 의한 인터럽트는 통상 발생하지 않는다. 따라서, 슬립 모드시에는, 와치독 타이머 입력의 인터럽트 신호의 순위를 낮추고, 인터럽트 요인의 우선 순위를 낮추도록, 슬립 모드 이행 처리에 있어서 우선 순위를 변경하도록 구성하는 것도 가능하다. 이와 같이, 본 발명에서는, 전자기기의 정지시에 정적으로 우선 순위 등을 설정하여 또는 변경할 뿐만 아니라, 동작시에 있어서도 동작 상황에 따라 우선 순위 등의 설정 또는 변경(동적 설정 변경과 칭함)하는 것도 가능하다.
2번째의 우선 순위로서, 잉크 카트리지(ink cartridge) 오픈, 인쇄 용지 없음 등의 인쇄 처리에 지장을 초래하는 상황의 발생이 할당되고 있다. 그 다음 순위에는, 오퍼레이터가 페이퍼 피드 버튼을 누른 경우, 센서에 의한 홈 포지션(home position)의 검지로 연속되고 있다. 이들은 예시이며, 어떠한 우선 순위를 부여할 지는, 그 제품의 설계 사상에 근거하여 변경 가능하다. 또한, 이 예에서는, 4개의 그룹으로 나누고 있지만, 필요에 따라, 또한 CPU(1)의 포트 수에 따라 그 그룹 분할의 수를 설정하는 것이 가능하다.
도 8에 인터럽트 신호 생성 장치의 실시예 3에 이용되는 합성 처리부(16)를 m개의 인코드부(16-1∼16-m)에 의해 구성한 실시예를 나타낸다. 도 8의 인코드부(16-1∼16-m)도 도 5에 나타낸 순위 변경부(19)로서 나타낸 인코드부(19-1) 등과 거의 마찬가지의 인코더를 사용할 수 있다. 다른 것은 이하의 2가지이다. 첫째로, 순위 변경부(19)의 경우에는, 입력되는 검출 신호 1∼n과 동일한 수인 n개의 인코드부(19-1∼19-n)가 마련되어 있는 데 반하여, 합성 처리부(16)에서는 검출 신호의 수인 n개보다 적은 m개의 인코드부(16-1∼16-m)가 마련되어 있는 점이 다르다. 둘째로, 선택 레지스터(62)에 설정되는 설정 비트 "1"가 1개만이 아니라, 그룹화하고자 하는 입력의 수만큼 설정되는 점도 다르다.
예컨대 도 8에 나타내는 제 1 인코드부(16-1)의 선택 레지스터(62)에서는, 비트 2, 3, 4가 "1"로 설정된다. 따라서, AND 게이트 A2, A3, A4가 인에이블 상태로 되어 있고, 검출 신호 2, 3, 4중 어느 하나가 입력되더라도 OR 게이트(63)로부터 "1"이 출력된다. 이것에 의해, 3개의 검출 신호 2, 3이 제 1 인코드부(16-1)에 의해 1개의 인터럽트 신호인 인터럽트 신호 1이 출력된다. 따라서, 선택 레지스터(62)는 그룹 설정부로서 기능하며, AND 게이트 A1∼An 및 OR 게이트(63)는 인터럽트 신호 출력부로서 기능한다.
이와 같이 검출 신호 1∼n이 몇 개의 그룹으로 정리되기 때문에, 인코드부는 n개보다 적은 수의 m개로 충분하다. 검출 신호를 어떻게 그룹화할 지는, 미리 선택 레지스터(62)에 소정의 값을 설정하는 것에 의해 실행한다. 선택 레지스터의 설정은, 도 4와 마찬가지로 제어부(17)에 의해 제어 가능하다. 또한, 전술한 바와 같이, 제어부(17)는 버스 라인(25)을 거쳐서 CPU에 의해 제어 가능하기 때문에, 선택 레지스터(62)의 설정을 CPU(1) 또는 외부 조작 패널 등에서 제어하도록 구성하는 것도 가능하다.
(실시예 4)
또한, 도 9를 이용하여 본 발명의 인터럽트 신호 생성 장치의 실시예 4를 설명한다. 실시예 4의 인터럽트 처리부(15-3)에서는, 실시예 2 및 실시예 3의 순위변경부(19)와 합성 처리부(16)가 조합되어 있다. 인터럽트 처리부(15-3)의 구성에 의해, 우선 순위의 설정의 변경이 용이하게 됨과 동시에, 복수의 입력 신호를 그룹화하여 인터럽트 신호를 발생시키는 것도 가능해진다.
다음에 도 10을 이용하여, 인터럽트 처리중에 검출 신호를 수신한 경우의 처리에 대하여 더 설명한다. 도 10은, 인터럽트 처리중에 동일한 그룹의 검출 신호를 수신한 경우에, 적절히 인터럽트 처리를 실행할 수 있는 인터럽트 처리부(15)의 실시예 4를 나타내는 기능 블럭도이다. 이 인터럽트 처리부(15-4)는, 설명을 쉽게 하기 위해서, 합성 처리부(16-1), 제어부(17), 상태 기억부(18-1), 인터럽트 모드 레지스트(73)를 구비하는 구성으로 하고 있다.
상태 기억부(18-1)는 상태 레지스터(71) 및 이력 레지스터(72)로 구성되어 있다. 상태 레지스터(71)는 검출 신호의 수신 상태를 각 검출 신호마다 기억한다. 이력 레지스터(73)는 통상 상태시에 상태 레지스터(71)의 내용을 기억하는 레지스터이며, CPU의 인터럽트 처리시에 CPU로부터 버스(25)를 거쳐서 판독된다. 인터럽트 모드 레지스트(73)는, 인터럽트 처리 상태가 발생했을 때에, CPU로부터의 제어 신호에 근거하여 인터럽트 모드로 이행한 것을 기억하는 레지스터이다. 인터럽트 모드로의 천이는 각 인터럽트 신호마다 관리된다.
인터럽트가 발생하면, CPU로부터 인터럽트 모드로의 이행 지시가 출력되어, 인터럽트 모드 레지스트가 설정된다. 인터럽트 모드는, 인터럽트 신호 단위로 관리되기 때문에, 현재 인터럽트 처리를 속행하고 있는 인터럽트 신호 라인 이외의 그룹에는 영향을 주지 않고, 인터럽트 처리중 이외의 라인은 통상 모드로 동작한다. 인터럽트 모드 레지스트(73)가 설정되면, 상태 레지스터(71) 및 이력 레지스터(72)는 제어부(17)에 의해 다음과 같이 제어된다.
인터럽트 처리중에 인터럽트 처리중인 그룹 이외의 검출 신호를 수신한 경우에는, 통상 모드와 마찬가지로 상태 레지스터를 갱신하고, 동일한 내용을 이력 레지스터(72)에도 기억시킨다. 인터럽트 처리중에 동일 그룹의 검출 신호를 수신한 경우에는, 상태 레지스터(72)는 갱신하지만, 상태 레지스터(71)의 내용은 이력 레지스터(72)에 기억되지 않는다. 그 때문에, 상태 레지스터(71)의 내용과 이력 레지스터(72)의 내용이 상이하게 된다.
인터럽트 처리가 종료하여, CPU로부터 인터럽트 모드의 해제 지령을 수신하면, 제어부(17)는 상태 레지스터(71)의 내용과 이력 레지스터(72)의 내용을 비교한다. 비교한 결과, 내용이 다른 경우에는, 제어부(17)로부터 합성 처리부(16-1)에 제어 신호를 출력하고, 합성 처리부(16)로부터 대응하는 인터럽트 신호를 송신한다. 이것에 의해, 다시 인터럽트 처리가 실행되어, 마찬가지의 처리가 반복된다.
도 11은 인터럽트 신호 생성 장치의 인터럽트 신호 출력의 처리 순서와, CPU에 의한 인터럽트 처리의 순서를 나타내는 흐름도이고, 도 12는 상태 레지스터(71), 이력 레지스터(72) 및 인터럽트 모드 레지스트(73)의 설정 내용의 예를 나타내는 도표이다. 도 11의 흐름도와 도 12의 도표를 이용하여, 인터럽트 신호 출력과 CPU의 처리 순서의 예를 설명한다. 또한, 이 설명에 있어서는, 설명을 간단히 하기 위해서, 4종류의 인터럽트 신호 1∼4만 사용하는 것으로 한다.
우선, 검출 신호를 수신하면(S101 ; 예), 인터럽트 신호가 출력되어(S102),상태 레지스터(71)의 대응 비트 Fx를 "1"로 세트하고, 그 후 상태 레지스터(71)의 내용을 이력 레지스터(72)에 전송한다(S103). 지금, 검출 신호 3을 수신했다고 하면, 도 12의 (a) 및(b)에 도시하는 바와 같이 상태 레지스터(71) 및 이력 레지스터(72)의 비트 3이 각각 "1"로 세트된다. 도 12의 도표에 도시하는 바와 같이 검출 신호 3은 인터럽트 신호 1의 그룹에 속하기 때문에, CPU에는 인터럽트 신호 1이 출력된다.
CPU에서는, 인터럽트 신호의 수신에 의해(S201 ; 예), 해당 인터럽트 포트(포트 1)를 무능화하고, 이후의 인터럽트의 접수를 금지한다(S202). 다음에, 인터럽트 신호를 송신한 인터럽트 신호 생성 장치에 인터럽트 모드로의 이행 지시를 출력함과 동시에(S203), 이력 레지스터(72)의 내용을 판독하여, 인터럽트 요인의 확인(S204), 대응 처리를 실행한다(S205, S206).
인터럽트 신호 생성 장치는, CPU로부터 인터럽트 모드로의 이행 지시를 수신하면(S104 ; 예), 도 12의 (c)에 도시하는 바와 같이 인터럽트 모드 레지스트(73)의 인터럽트 신호 1을 인터럽트 모드 "1"에 설정한다(S105). 이것에 의해, 제어부(17)는 상태 레지스터(71)의 비트 1∼5의 내용의 이력 레지스터(72)로의 전송을 제한한다(S106). 즉, 인터럽트 신호 1의 그룹에 속하는 검출 신호 1∼5를 수신하더라도, 비트 1로부터 비트 5에 대해서는 이력 레지스터(72)로는 전송하지 않는다.
인터럽트 처리중에 인터럽트가 더 있으면(S107 ; 예), 그 인터럽트가 인터럽트 신호 1의 그룹 이외의 검출 신호인 경우에는, 다시 단계 S102∼단계 S107 및CPU의 단계 S201∼단계 S206을 반복한다. 그 인터럽트가 인터럽트 신호 1의 그룹의 검출 신호인 경우, 단계 S102∼단계 S107의 처리가 실행되지만, 지금 인터럽트 모드중이기 때문에, 상태 레지스터(71)는 갱신되지만 이력 레지스터(72)의 갱신은 제한된다. 따라서, 예컨대 검출 신호 1을 수신했다고 하면, 상태 레지스터(71)는 도표 도 12의 (d)와 같이 비트 1 및 3이 "1"로 설정되지만, 이력 레지스터(72)는 도 12의 (b)에 도시하는 바와 같이 비트 3만이 "1"로 설정된 상태대로 있다.
또한, 단계 S102에 의해 인터럽트 신호 생성 장치로부터 CPU에 인터럽트 신호 1이 출력되게 되지만, 지금, CPU의 인터럽트 포트 1은 무능화되어 있기 때문에, CPU에 의한 인터럽트 처리는 행해지지 않는다. 이와 같이 인터럽트 처리 도중에서 동일한 레벨의 인터럽트 처리를 실행하기 위해서는, 복잡한 제어가 필요해지기 때문이다. 또한, 도 11의 흐름도에서는, 인터럽트 처리중과 동일한 검출 신호가 발생해도, 인터럽트 신호를 출력하는 구성을 나타내었지만, 후술하는 바와 같이 이러한 경우에는, 인터럽트 신호 1을 출력하지 않도록 구성하는 것도 가능하다.
CPU에 의한 인터럽트 처리가 완료되면(S206 ; 예), CPU는 인터럽트 모드의 클리어 요구를 행하여(S207), 인터럽트 포트(포트 1)의 수신을 가능하게 하고(S208), 해당 인터럽트 처리를 종료한다.
인터럽트 신호 생성 장치에서는, 인터럽트 모드의 클리어 요구를 수신하면, 상태 레지스터(71)와 이력 레지스터(72)의 내용을 비교한다(S109). 이들 내용이 동일하면(S110 ; 예), 인터럽트 처리중에 동일한 그룹내의 검출 신호를 수신하고 있지 않기 때문에, 모든 관련 레지스터 등을 리셋하여, 해당 인터럽트 처리를 종료한다. 지금, 인터럽트 처리중에 검출 신호 1을 수신하고 있기 때문에, 상태 레지스터(71)와 이력 레지스터(72)의 내용은 도 12의 (b)와 (d)에 나타내는 바와 같이 서로 다르다. 이 경우(S110 ; 아니오)에는, 단계 S102로 또한 되돌아가, 검출 신호 1에 대응하는 인터럽트 신호 1을 출력함과 동시에, 전술한 마찬가지의 처리(단계 S102∼S111)가 실행된다. CPU에서도, 인터럽트 포트는 이미 수신 가능 상태로 되어 있고, 전술한 것과 같은 인터럽트 처리(단계 S201∼S208)가 실행된다.
(인터럽트 처리부의 다른 실시예)
도 13은, 인터럽트 처리중에 동일한 그룹의 검출 신호를 수신한 경우에, 적절히 인터럽트 처리를 실행할 수 있는 인터럽트 처리부(15)의 다른 실시예를 나타내는 기능 블럭도이다. 도 13에서는, 도 10의 합성 처리부(16-1)에 있어서의 인터럽트 모드 출력 제어부의 구성을 알기 쉽게 하기 위해서, 인터럽트 모드 출력 제어부(75)를 합성 처리부의 외부로 출력한 구성으로 하고 있다. 즉 인터럽트 모드 출력 제어부(75)를 도 6 및 도 8 등에 나타낸 합성 처리부(16)의 내부에 마련하는 것도, 합성 처리부(16)의 외부에 마련하는 것도 가능하다. 합성 처리부(16)의 내부에 인터럽트 모드 출력 제어부(75)를 마련하는 것에 의해 도 10의 합성 처리부(16-1)로 된다. 도 13에서도 인터럽트 신호는 1∼4의 4종류를 사용하는 예를 나타내고 있다.
도 13에서는, AND 게이트(76) 및 인버터(77)는 1개밖에 나타내고 있지 않지만, 각각 4개 존재하는 것으로 하여, 인터럽트 모드 레지스트(73)의 각 출력 단자1∼4가 각각의 AND 게이트(76) 및 인버터(77)에 제각기 접속되어 있는 것으로 한다. 또한, 제어부(17)로부터의 상태 레지스터(71)와 이력 레지스터(72)의 비교 결과는 라인(74)을 거쳐서 모든 AND 게이트(76)에 공통으로 접속되는 것으로 한다.
인터럽트 모드 레지스트(73)의 소정의 인터럽트 신호 대응 부분, 예컨대 인터럽트 신호 1에 상당하는 인터럽트 모드가 설정되면, 인터럽트 모드 레지스트(73)의 출력 단자 1이 "하이(high)" 또는 "1"로 된다. 인터럽트 모드 레지스트(73)의 출력 단자 1이 "하이"로 되면 인버터(77)를 거쳐서 인터럽트 신호 1의 AND 게이트 B1의 한 입력이 " 로우"로 되어, 인터럽트 모드 기간 동안, 인터럽트 신호 1의 출력은 AND 게이트 B1에 의해 무능화된다.
한편, 모드 클리어 요구를 수신하면 제어부(17)는 상태 레지스터(71)와 이력 레지스터(72)의 내용을 비교하고, 비교 결과가 불일치한 경우에는 라인(74)을 "하이"로 한다. 이 단계에서는 인터럽트 모드 레지스트(73)는 클리어되어 있지 않고 출력 단자 1로부터는 "하이"가 출력되고 있다. 그 때문에, 인터럽트 모드 레지스트(73)의 출력 단자 1에 상당하는 AND 게이트(76)의 입력만이 AND 조건을 만족하여 "하이"를 출력한다. 이것에 의해, 인터럽트 모드 레지스트의 출력 단자에 대응하는 인터럽트 신호 1의 OR 게이트 C1의 1 입력이 "하이"로 되어, 인터럽트 신호 1이 출력된다. 그 후, 제어부(17)에 의해 인터럽트 모드 레지스트(73)가 클리어되도록 구성하더라도, 그대로 인터럽트 모드를 유지하도록 구성하더라도 좋다. 비교 결과가 일치한 경우에는, 인터럽트 모드 레지스트(73)는 클리어된다.
(인터럽트 검출부)
다음에, 이상의 본 발명의 인터럽트 신호 생성 장치에 사용하는 인터럽트 검출부(20)의 실시예를 설명한다. 또한, 이하의 설명에서는, 인터럽트 처리부(15)로서, 도 6에 나타내는 인터럽트 처리부(15-2)를 이용한 구성예를 나타내고 있지만, 이것은 설명을 간단하게 하는 편의상 때문이며, 그 밖의 실시예에 따른 인터럽트 처리부를 사용하는 것도 가능하다.
(실시예 1)
도 14는 본 발명에 따른 인터럽트 신호 생성 장치(10)에 사용 가능한 인터럽트 검출부(20)의 실시예 1의 구성을 나타내는 기능 블럭도이다. 인터럽트 신호 생성 장치(10)에는 도 2의 전원 이상 검지(11), 커버 오픈(12) 등의 센서의 출력 신호가 입력 신호 1∼n으로서 입력된다. 인터럽트 신호 생성 장치(10)에는 각 입력 신호 1∼n에 대응하여 각각 인터럽트 검출부(20)가 총 n개 마련되어 있다.
각 인터럽트 검출부(20)는 동일한 구성의 것을 사용 가능하기 때문에, 도 14에서는 입력 신호 1에 대응하는 인터럽트 검출부(20)에 대해서만 내부 구성을 나타내고 있다.
인터럽트 검출부(20)는 패턴 생성부(21), 패턴 비교부(22) 및 검출 신호 생성부(23)로 구성되어 있다. 패턴 생성부(21)에서는 입력 신호로부터 소정의 신호 패턴을 생성한다. 패턴 생성부(21)에 있어서의 신호 패턴의 생성은 버스 라인(25)을 거쳐서 CPU로부터 설정되는 조건 등에 의해서 제어된다. 패턴 생성부(21)에서생성된 신호 패턴은 패턴 비교부(22)에 출력된다.
패턴 비교부(22)에서는 패턴 생성부(21)로부터 수신한 신호 패턴과 소정의 패턴 데이터를 비교한다. 비교하는 소정의 패턴 데이터는 버스 라인(25)을 거쳐서 CPU(1)로부터 송신된다. 패턴 비교부(22)에 의한 비교의 결과, 신호 패턴이 소정의 패턴 데이터와 일치하면, 일치 신호가 검출 신호 생성부(23)와 상태 기억 레지스터(24)에 출력된다.
상태 기억 레지스터(24)는 출력된 일치 신호를 대응하는 비트 신호로서 기억한다. CPU(1)는, 인터럽트 발생후의 처리 루틴에서, 이 상태 기억 레지스터의 내용을 판독하는 것에 의해, 인터럽트 원인을 아는 것 및 어떠한 오류가 발생하고 있는지 등의 장치의 상태를 확인하는 것이 가능해진다. 또한, 인터럽트 처리부(15)내에 상태 기억부(18)를 마련하는 경우에는, 이 상태 기억 레지스터(24)는 마련할 필요는 없다.
검출 신호 생성부(23)에서는, 일치 신호를 수신했을 때에, 검출 신호를 인터럽트 처리부(15)에 송출할지 여부를 확정한다. 즉, 일치 신호를 수신했을 때에 즉시 검출 신호를 출력하는 것이 아니라, 소정의 조건을 만족하고 있는 경우에만, 검출 신호를 출력한다. 이것은, 각종의 입력 신호 1∼n중 어느 하나가 소정의 신호 패턴이었다고 해도, 또한 다른 조건을 만족하지 않는 한, 슬립 모드를 유지하도록 하는 것을 가능하게 하는 것이다. 이 경우에는, 검출 신호는 출력되지 않기 때문에, CPU(1)로의 인터럽트는 행해지지 않지만, 일치 신호가 발생한 상태는 상태 기억 레지스터(24)에 기억된다. 따라서, 이후에 인터럽트가 발생했을 때에, 그 사실을 CPU(1)로부터 확인 가능하고, 그 오류 상태 등에 따른 적절한 처리를 행하는 것이 가능하다.
검출 신호를 출력하기 위한 조건은, 버스 라인을 거쳐서 CPU(1)로부터 설정 가능하고, 구체적인 조건은 그 장치의 기본 설계 사항으로서, 자유롭게 설정 가능하다.
이와 같이, 입력 신호로부터 신호 패턴을 생성하는 조건의 설정, 일치 신호를 출력하기 위한 패턴 데이터의 설정, 및 검출 신호를 발생하기 위한 조건의 설정을 CPU(1)로부터 자유롭게 설정 가능하다. 그 때문에, 각종 장치의 다종(多種) 다용한 실제의 사용 환경에 맞게, 상황 변화의 시간축 스케일의 상위 및 복잡한 조건 등을 고려한 정확한 할당 처리를 실행하게 하는 것이 가능해진다.
(실시예 2)
다음에 도 15를 이용하여, 본 발명의 인터럽트 검출부(20)의 실시예 2를 설명한다. 도 15는 본 발명에 적용하는 인터럽트 검출부(20)의 실시예 2의 기능 블럭도이다. 도 15에 있어서는, 패턴 생성부(21)가 클럭 선택부(31) 및 시프트 레지스터(30)에 의해 구성되어 있다. 클럭 선택부(31)에는 분주기(37)에 의해 복수의 클럭으로 분주된 클럭이 입력되고, 클럭 선택 정보 기억부(32)의 출력에 의해 사용하는 클럭이 선택된다. 이와 같이 클럭을 선택 가능하게 하는 것에 의해, 검지하고자 하는 사상에 대응하는 적절한 클럭을 사용하여, 신호 패턴을 생성하는 것이 가능해진다.
어떤 클럭을 사용할 지는 CPU(1)으로부터 미리 클럭 선택 정보 기억부(32)에 설정되고, 필요에 따라 CPU(1)로부터 적절히 변경 가능하다. 또한, 분주기(37)를 인터럽트 검출부(20)의 외부에 마련한 것은, 입력 신호 1∼n에 공통하여 1개의 분주기(37)를 마련하는 것에 의해, 모든 인터럽트 검출부(20)에 복수의 클럭을 제공할 수 있도록 하기 위해서이다.
시프트 레지스터(30)에는 입력 신호 1이 입력되고, 선택된 클럭 신호에 의해 순차적으로 시프트된다. 도 15에서는 4단의 시프트 레지스터를 사용하고 있지만, 4단 이상 또는 이하의 시프트 레지스터를 이용하는 것도 가능하다. 시프트 레지스터(30)의 각 출력단의 출력 신호는 신호 패턴으로서 패턴 비교부(22)에 출력된다.
패턴 비교부(22)는 일치 검출부(33)와 패턴 데이터 기억부(34)로 구성되어 있다. 일치 검출부(33)는, 미리 CPU(1)로부터 패턴 데이터 기억부(34)에 설정된 패턴 데이터와 시프트 레지스터(30)의 각 출력단으로부터의 패러렐 출력을 비교하여, 일치한 경우에 일치 신호를 상태 기억 레지스터(24) 및 검출 신호 생성부(23)에 출력한다.
검출 신호 생성부(23)는 상태 변화 검출부(35)와 인터럽트 설정 레지스터(36)로 이루어진다. 상태 변화 검출부(35)는 인터럽트 설정 레지스터(36)에 기억하고 있는 조건을 만족하고 있을 때에 검출 신호를 출력한다. 인터럽트 설정 레지스터(36)로의 조건 설정은 버스 라인(25)을 거쳐서 CPU(1)로부터 제어된다.
도 16을 이용하여, 시프트 레지스터(30)의 출력과 일치 신호의 관계를 설명한다. 도 16은 클럭과, 입력 신호 1과, 일치 신호의 출력 타이밍을 나타내는 타이밍차트이다. 또한, 이 예에서는, 패턴 데이터로서 "1110"이 설정되어 있는 것으로 한다.
지금, 소정의 클럭이 선택되어, 입력 신호 1이 도 16에 나타내는 타이밍으로 하이 레벨(이하, "H"로 표시함)이 되었다고 가정한다. 또한, 본 시프트 레지스터는, 클럭의 상승으로 시프트 입력 데이터를 순차적으로 시프트하는 것으로 한다. 클럭 "0"의 상승 타이밍에서는, 입력 신호 1은 로우 레벨(이하, "L"로 표시함)이기 때문에, 시프트 레지스터(30)는 입력 신호의 변화를 파악할 수 없다. 따라서, 이 시점에서는, 시프트 레지스터(30)의 각 출력단의 출력은 "0000"이다.
다음 클럭 신호인 클럭 "1"의 상승시에는, 입력 신호 1은 "H"로 되어 있기 때문에, 시프트 레지스터(30)의 출력단 1로부터 "H"가 출력된다. 따라서, 이 시점에 있어서의 시프트 레지스터(30)의 각 출력단의 출력은 "1000"이다.
클럭 "2"의 상승시에도 입력 신호 1은 입력되어 있기 때문에, 이 타이밍에서는, 출력단 1 및 3의 출력이 "H"로 되고, 시프트 레지스터(30)의 각 출력단의 출력은 "1100"으로 된다.
마찬가지로 해서, 클럭 "3"인 때의 시프트 레지스터(30)의 각 출력단의 출력은 "1110"으로 된다. 이것은, 패턴 데이터 "1110"과 일치하기 때문에, 샘플링 신호의 타이밍으로, 일치 신호가 "H"로 된다.
클럭 "4"의 타이밍에서는, 시프트 레지스터(30)의 각 출력단의 출력은 "1111"로 되기 때문에, 패턴 데이터 "1110"과 일치하지 않고, 일치 신호는 이것 이후 출력되지 않는다. 이러한 구성으로 하는 것에 의해, 이하와 같은 효과를 얻을수 있다. 우선, 일정 기간 이상 연속하여 신호의 입력이 없는 한 일치 신호는 출력되지 않기 때문에, 노이즈에 의한 오동작을 방지할 수 있다. 또한, 패턴 데이터 "1110"과 일치한 경우에만 일치 신호를 출력하는 구성이기 때문에, 입력 신호가 장기간 계속하고 있는 경우라도 일치 신호는 패턴이 일치하고 있는 소정의 기간에만 출력되지 않아, 인터럽트 신호가 연속하여 출력되는 것을 방지할 수 있다.
반대로 일치 신호를 연속하여 출력시켜 두고, 검출 신호 생성부(23)에 있어서, 다른 조건으로 인터럽트 신호의 발생을 제어하고 싶은 경우에는, 일치 신호가 발생하거나 그 상태를 래치 또는 플립플롭 등으로 유지하도록 구성하는 것도 가능하다. 또한, 패턴 데이터를 "1111"로 설정해 두는 것에 의해, 일치 신호를 유지시키는 것도 할 수 있다. 패턴 데이터가 "1111"로 설정되어 있으면, 도 16의 최하단에 나타내는 바와 같이, 시프트 레지스터(30)의 모든 출력이 "H"로 된 후, 입력 신호 1이 "H"인 한, 일치 신호가 계속하여 출력된다. 이와 같이 패턴 데이터를 "1111"로 설정하여 일치 신호를 연속 출력시키는 경우에는, 입력 신호 1∼n이 없어지면, 자동적으로 일치 신호도 출력되지 않기 때문에, 래치 등에 기억시키는 경우와 다른 리셋 동작이 불필요하다는 효과도 갖는다.
이와 같이, 신호 패턴과 패턴 데이터가 일치할 때에 검출 신호를 출력하는 구성으로 하는 것에 의해, 호스트 장치(50)로부터의 제어 데이터에 의해, CPU(1)를 슬립 모드로부터 동작 모드로 천이시키는 것이 가능해진다.
도 17을 이용하여 설명한다. 도 17은 슬립 모드중의 프린터와 같은 통신 단말 장치(60)를 본 발명에 따른 인터럽트 신호 생성 장치(10)를 사용하여, 호스트장치(50)로부터 동작 모드로 천이시키는 경우를 설명하기 위한 기능 블럭 구성도이다. 도 17에는, 호스트 장치(50)와, 호스트 장치에 접속된 통신 단말 장치(예컨대, 프린터)(60)를 나타내고 있고, 통신 단말 장치(60)는 본 발명에 따른 인터럽트 신호 생성 장치(10)를 갖고 있다. 도 17에서는, 설명을 간단히 하고, 설명의 요점을 알기 쉽게 하기 위해서, 통신 단말 장치(60)의 상세 부분은 생략한다. 지금, 통신 단말 장치(60)의 인터럽트 신호 생성 장치(10)의 패턴 데이터 기억부(34)(도 15)에는 패턴 데이터 "1110"이 기억되어 있는 것으로 한다.
호스트 장치(50)가 통신 단말(60)의 CPU(1)를 동작 모드로 천이시키는 것을 희망하는 경우, 호스트 장치(50)는 데이터 "1110"을 통신 단말(60)에 송신한다. 통신 단말(60)의 레벨 변환부(27), 프로토콜 변환부(28) 및 인터럽트 신호 생성 장치(10)는, CPU(1)가 슬립 모드중이더라도, 동작하고 있다. 따라서, 호스트 장치(50)로부터 송신된 데이터 "1110"은 수신되고, 레벨 변환기(27), 프로토콜 변환기(28)를 지나서 인터럽트 신호 생성 장치(10)의 시프트 레지스터(30)에 입력된다.
지금, 패턴 데이터 기억부(34)에는 패턴 데이터 "1110"이 기억되어 있기 때문에, 일치 검출부(33)로부터 일치 신호가 출력된다. 이것에 의해, 검출 신호 생성부(23)로부터 인터럽트 처리부(15)에 검출 신호가 출력된다. 인터럽트 처리부(15)에서는 검출 신호에 근거하여 인터럽트 신호를 작성해서, 인터럽트 라인(26)을 거쳐 CPU(1)가 인터럽트 포트에 인터럽트 신호를 송출한다. 이것에 의해, CPU(1)는 인터럽트 처리 루틴에 의해 슬립 모드로부터 동작 모드로 천이한다.
호스트 장치(50)로부터의 수신 데이터 "1110"을 시프트 레지스터(30)에 설정하는 방법은, 당업자에 있어서 주지(周知)의 각종 수단을 채용 가능하지만, 여기서는, 시리얼 인터페이스의 경우와, 패러렐 인터페이스의 경우로 나눈 대표적인 예를 설명한다.
시리얼 인터페이스인 경우, 프로토콜 변환부(28)로부터 수신 데이터를 소정의 클럭에 동기시켜 시리얼 데이터로서 시프트 레지스터(30)에 출력하도록 구성한다. 이 때, 클럭 선택부(31)에 의해, 시리얼 데이터의 동기 클럭(도시하지 않음)을 시프트 클럭으로서 선택하는 것에 의해, 프로토콜 변환부(28)로부터 수신 데이터가 시리얼로 시프트 레지스터(30)에 입력된다. 패러렐 인터페이스인 경우에는, 예컨대 수신 데이터 "1110"을 시프트 레지스터(30)에 패러렐로 직접 입력하도록 구성한다.
(실시예 3)
도 18을 이용하여, 본 발명에 적용 가능한 인터럽트 검출부(20)의 실시예 3을 설명한다. 도 18은 실시예 3에 따른 인터럽트 검출부(20)의 기능 블럭도를 나타낸다. 도 18의 인터럽트 검출부(20)와 도 16의 인터럽트 검출부(20)의 차이는, 도 18의 인터럽트 검출부(20)에 있어서는, 클럭 선택부(31)와 시프트 레지스터(30) 사이에 타이머(38)와 타이머 선택 기억부(39)를 마련한 점이다. 이러한 구성으로 하는 것에 의해, 시프트 레지스터(30)에 입력하는 클럭 신호의 주기를 더 변화시킬 수 있어, 시프트 클럭을 다양하게 변화시키는 것이 가능해진다.
(실시예 4)
다음에 도 19를 이용하여, 본 발명에 적용 가능한 인터럽트 검출부(20)의 실시예 4를 설명한다. 도 19는 인터럽트 검출부(20)의 실시예 4의 기능 블럭도이며, 이미 설명한 다른 실시예와의 공통 부분은 일부 생략하여 나타내고 있다. 기술한 다른 실시예와 다른 부분은, 검출 신호 생성부(23)가 16 비트 카운터(41), 카운트 비교부(42) 및 카운트 기억부(43)로 구성되어 있는 점이다.
이 실시예에서는, 일치 신호는 16 비트 카운터(41)의 인에이블 입력 단자 En 및 클리어 입력 단자와 CLR에 입력되어 있다. 따라서, 일치 신호가 출력되고 있는 한, 카운트를 계속하지만, 일치 신호가 출력되지 않으면 리셋되어, 다음 일치 신호가 출력되었을 때에 다시 카운트를 재개한다. 이러한 구성은 일정한 기간 이상일치 신호가 연속하여 장기간 출력되는 경우에 유용하다. 또한, 본 실시예에서는 16 비트 카운터(41)를 사용하고 있지만, 이것은 예시이며, 16 비트 이상의 카운터 또는 이것 이하의 카운터를 사용할 수도 있다.
16 비트 카운터(41)의 출력은 카운트 비교부(42)에 입력된다. 카운트 비교부(42)에는 카운트 기억부(43)로부터의 출력도 입력되어 있어, 양 입력이 비교된다. 카운트 기억부(43)에는 미리 CPU(1)에 의해 소정의 카운트가 설정되어 있다. 16 비트 카운터(41)의 카운트와 카운터 기억부(43)의 카운트가 일치하면, 검출 신호가 인터럽트 처리부(15)에 출력된다. 인터럽트 처리부(15)는, 검출 신호에 근거하여 소정의 순위의 인터럽트 신호를 작성해서, 작성한 인터럽트 신호를 인터럽트 라인(26)을 거쳐서 CPU(1)의 인터럽트 포트에 송신한다. 인터럽트 포트에 인터럽트 신호가 입력되면 CPU가 기동되어, ROM(8)또는 RAM(9)에 기억된 인터럽트 처리 루틴에 따라서, 인터럽트 원인의 확인 및 필요한 대응 처리 등이 실행된다.
이러한 실시예 4에 따른 인터럽트 검출부(20)는 통상의 신호보다 긴 입력 신호 1∼n의 존재를 조건으로 인터럽트 신호를 발생시키는 경우에 유효하다. 긴 입력 신호의 존재를 짧은 주기의 클럭으로 검지하는 경우에는 시프트 레지스터(30)의 출력단의 수를 상당수 늘릴 필요가 있다. 한편, 입력 신호 1∼n은 다종 다양하기 때문에, 패턴 생성부(21)의 입력 신호를 일률적으로 길게 할 수 없다. 예컨대, 인터럽트 요인으로서 판단하는 경우에 필요한 신호의 주기는, 짧은 것과 긴 것에서는 1000배를 넘는 경우(짧은 신호에서는 20㎛, 긴 신호에서는 20㎳ 등)도 생각된다.
검지하고자 하는 입력 신호의 길이가 1000배 길게 되면, 분주기(37)에 의해 대응하는 주파수의 클럭을 작성하는 것은 현실적이지 않을 뿐만 아니라, 정확한 패턴을 생성할 수 없게 된다고 하는 문제가 있다. 시프트 레지스터(30)에서는 시프트 클럭의 상승 또는 하강하는 타이밍으로 입력 신호를 샘플링한다. 따라서, 시프트 클럭의 1주기의 중간에서 입력 신호 1∼n이 없어지더라도, 다음 샘플링 타임에 입력 신호 1∼n이 존재하면, 아무 일도 없도록 입력 신호가 순차적으로 시프트되어 버려, 그 변화를 인식할 수 없다.
시프트 클럭의 주기가 길게 되면 이러한 위험이 커지기 때문에, 시프트 클럭의 주기를 그다지 길게 하는 것은 바람직하지 않다. 이것은, 인터럽트 검출부(20)의 실시예 3에 있어서 타이머(38)에 의해, 클럭의 주기를 길게 하도록 한 경우에도 마찬가지이다.
이러한 문제를 피하기 위해서, 짧은 주기의 시프트 클럭을 사용하자면, 긴 입력 신호의 신호 패턴을 생성하기 위해서는, 패턴 생성부(21)의 시프트 레지스터(30)의 시프트단을 대단히 길게 하지 않으면 안된다.
이상의 설명으로 알 수 있는 바와 같이, 도 19에 나타내는 실시예 4에 따른 인터럽트 검출부(20)는, 그 입력 신호의 성질에 따라서, 실시예 2 또는 실시예 3에 따른 인터럽트 검출부(20)를 조합시켜 사용하는 경우에 지극히 유용해진다. 즉, 일반적인 길이의 입력 신호의 인터럽트 검출에는 실시예 2 또는 실시예 3의 인터럽트 검출부(20)를 사용하여, 이들 입력 신호보다 상당히 긴 입력 신호의 인터럽트 검출에는 실시예 4에 따른 인터럽트 검출부(20)를 사용한다고 하도록, 다른 종류의 인터럽트 검출부(20)를 조합하여 사용할 수 있다.
다음에 도 20의 타이밍차트를 이용하여, 도 19의 인터럽트 검출부(20)에 의해 검출 신호가 출력되는 타이밍을 설명한다. 16 비트 카운터(41)는 클럭 신호 2에 의해 카운트된다. 대단히 긴 입력 신호를 검출하는 경우에는, 일반적으로는 클럭 신호 2는 패턴 생성부(21)의 클럭 1보다 긴 클럭을 사용하는 것이 바람직하다. 일치 신호가 "L"에서 "H"로 변화되면, 카운터 인에이블이 "H"로 되어, 카운트가 시작된다. 16 비트 카운터(41)의 카운트가 카운트 기억부(43)의 카운트와 일치하면, 일치 신호가 출력되어, 이것에 의해 검출 신호가 일정 기간 출력된다.
일치 신호가 카운트 일치전에 출력되어 없어지면(파선으로 표시), 카운터는 클리어되어(도 20의 최하단), 카운트 일치 신호가 출력되지 않는다. 그 때문에, 검출 신호도 출력되지 않아, 인터럽트는 발생하지 않는다.