KR840001367B1 - 엔진 제어 장치 - Google Patents

엔진 제어 장치 Download PDF

Info

Publication number
KR840001367B1
KR840001367B1 KR1019810000615A KR810000615A KR840001367B1 KR 840001367 B1 KR840001367 B1 KR 840001367B1 KR 1019810000615 A KR1019810000615 A KR 1019810000615A KR 810000615 A KR810000615 A KR 810000615A KR 840001367 B1 KR840001367 B1 KR 840001367B1
Authority
KR
South Korea
Prior art keywords
circuit
signal
shift register
task
data
Prior art date
Application number
KR1019810000615A
Other languages
English (en)
Other versions
KR830005676A (ko
Inventor
시게오 구보기
다께시 히라야마
히데오 나까무라
Original Assignee
가부시기 가이샤 히다찌 세이사꾸쇼
요시야마 히로기찌
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시기 가이샤 히다찌 세이사꾸쇼, 요시야마 히로기찌 filed Critical 가부시기 가이샤 히다찌 세이사꾸쇼
Priority to KR1019810000615A priority Critical patent/KR840001367B1/ko
Publication of KR830005676A publication Critical patent/KR830005676A/ko
Application granted granted Critical
Publication of KR840001367B1 publication Critical patent/KR840001367B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B11/00Automatic controllers
    • G05B11/01Automatic controllers electric
    • G05B11/26Automatic controllers electric in which the output signal is a pulse-train

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)

Abstract

내용 없음.

Description

엔진 제어 장치
제1도는 본 발명이 적용된 엔진 드로틀실의 단면도.
제2도는 점화장치의 구조도.
제3도는 배기가스 재순환계의 계통도.
제4도는 제어계의 전체 구성도.
제5도는 제4도의 제어계에 대한 프로그램의 계통도.
제6도는 제5도의 프로그램도표.
제7도는 제5도에 도시한 프로그램(224)의 순서도.
제8도는 과업스케듈러(task scheduler)에 대한 프로그램의 순서도.
제9도는 과업제어표.
제10도는 EXIT 프로그램의 순서도.
제11도는 개입중단interruption)회로의 상세도.
제12도는 펄스변환회로의 기본회로도.
제13a도 및 제13b도는 제12도의 회로를 구성하는 기본소자를 도시한 도면.
제14도는 제13도에 도시한 회로소자의 동작을 설명하는 파형도.
제15a도 및 제15b도는 제12도의 회로를 구성하는 다른 기본 소자를 도시한 도면.
제16도는 제12도의 시프트(shift) 레지스터 래치(latch), 레지스터등을 구성하는 MOS회로도.
제17a도 및 제17b도는 시프트 레지스터의 동작 설명도.
제18도는 데이터 기록회로의 상세도.
제19도는 제18도에 도시한 회로의 동작을 설명하는 파형도.
제20도는 데이터 판독회로의 상세도.
제21도는 데이터 판독동작을 설명하는 파형도.
제22a도 및 제22b도는 데이터 판독 및 기록신호의 발생회로도.
제23도는 제22a도 및 제22b도의 동작을 설명하는 파형도.
제24도는 제12도에 도시한 가감회로 및 0(영) 검출회로의 상세도.
제25도는 제24도의 회로의 동작을 설명하는 파형도.
제26도는 충격펄스(duty pulse) 변환회로도.
제27도는 제26도의 회로의 동작을 설명하는 파형도.
제28도는 점화계에 대한 제어회로도.
제29도는 제28도에 도시한 회로의 동작설명도.
제30도는 제29도의 동작 설명을 위한 파형도.
제31도는 INTDP 펄스변환 회로도.
제32도는 제31도에 대한 파형도.
제33도는 회전속도 검출회로도.
제34도는 제33도의 회로의 동작을 설명하는 파형도.
제35도는 연료분사회로도.
제36도는 제35도에 도시한 회로의 동작 설명도.
제37도는 타이밍 신호발생회로도.
제38도는 레지스터, 가감회로, 0(영) 검출회로, 데이터라인 및 제어신호라인의 배열을 도시한 도면이다.
본 발명은 중앙처리장치(CPU)의 디지탈 연산동작에 의하여 내연기관을 제어하는 전자식 엔진제어장치에 관한 것으로, 특히 CPU의 입/출력단에 있는 펄스신호처리회로에 관한 것이다.
프로그램된 CPU에 의하여 엔진이 제어되기 위해서는, CPU의 요구에 응하여 CPU에 전달될 수 있는 형태로 된 엔진상태검출센서의 출력정보를 수용하는 입력회로와, CPU의 디지탈신호를 엔진제어계를 구동하는 펄스신호로 변환시키는 출력회로가 요구된다. 이 입/출력회로는 고밀도 집적회로의 형태로 제작될 필요가 있다.
그런데 엔진제어회로는 차량에 장착되기 때문에 주위온도가 차량동작조건에 따라 심각하게 변하게 된다.
따라서 회로는 이러한 최악의 조건을 고려하여 고안되어야 하는데, 이 열적 요건으로 인하여 고밀도 집적에 어려움이 있었다. 예컨데 차량에 열대지방에서 운영되거나 혹서(酷暑)의 날씨속에서 운영되는 경우가 있다.
이러한 여건을 고려하면, 주위온도가 매우 높은 온도(엔진의 방열량을 고려한 경우에는 100°C)까지 오르게된다.
따라서 열축적 현상을 피하여 회로소자의 접합온도가 위와 같은 여건하에서도 상기 온도 이하로 유도되도록 할 필요가 있는데, 이러한 이유로 집적농도가 증가될 수 없었다.
상기 문제점을 해결하기 위해서는 입/출력회로의 구성이 발열량이 적은 회로소자로 이뤄지도록 하는 것이 요구된다.
이에 본 발명의 목적은 발열량이 적은 회로소자로 제작될 수 있는 엔진제어장치를 제공하는데 있다.
본 발명에 의한 펄스변환블록은 레지스터와, 정보내용이 소정의 상태에 이르렀는지를 판단하는 검출회로 그리고 레지스터의 정보내용을 가감시키는 가감회로로 구성되며, CPU의 출력신호에 대하여 1:1의 비율로 설치된다. 또한 펄스변환블록들은 공통클럭펄스에 의하여 구동되므로 계수동작 및 블록의 상태검출 동작이 공통클럭펄스에 동기하여 실행된다.
상기 배열의 펄스변환회로의 시프트레지스터는 각각 매우 간단한 소자를 규칙적으로 배열하여 조립되므로 회로의 구성이 간단하고 규칙적이다. 그 결과, 전체회로의 발열량이 적게되고 열축적 현상도 발생하지 않는다.
더우기 본 발명의 배열에 필요하다면 동적회로소자를 사용할 수 있는데, 이 경우에는 발열량이 종래의 디지탈 엔진제어회로의 발열량의 40%로 감소하게 된다.
본 발명의 상기한 목적 및 기타 특징은 첨부도면을 참고한 다음의 설명에서 분명하여질 것이다.
먼저 본 발명의 실시예를 설명하기에 앞서, 본 발명의 적용된 전자식 엔진제어계의 일례를 도면(1∼10)을 참고하여 설명하기로 한다.
제1∼10도에 도시한 엔진제어계는, “전자식 엔진제어방법 및 장치”의 명칭으로 본 출원의 양수인인 도시오 후루하시에 의하여 1980년 4월 4일에 출원된 미국특허 출원번호 제137519호에 기술되어 있다.
제1도는 본 발명이 적용된 내연기관의 드로틀실의 단면도이다. 드로틀실에 공급될 열료량과 측로의 공기유량을 제어하는 드로틀실의 주변에는 다음에 설명할 솔레노이드 밸브가 여러개 설치되어 있다.
저속운전용 드로틀 밸브(12)의 개구(開口)는 가속폐달(도시하지 않음)에 의하여 제어되며, 이에 따라 공기 청정기(도시하지 않음)로부터 엔진의 개개의 실린더에 공급되는 공기유량이 제어된다. 드로틀밸브(12)의 개구가 증가하여 저속용 벤튜리(34)를 통하여 흐르는 공기유량이 증가하게 되면, 다이어프램장치(도시하지 않음)가 저속운전용 벤튜리에서 발생된 부압(負壓)에 의존하여 고속운전용 드로틀 밸브(14)를 개방시킴으로써 증가하는 공기유량에 의하여 증가될 수 있는 공기유량 저항을 감소시킨다.
드로틀 밸브(12), (14)의 제어하에 엔진실린더에 유입되는 공기유량은 부압센서(도시하지 않음)에 의하여 검출되어 아날로그 신호로 변환된다. 이 아날로그 신호와 이후에 기술할 기타 센서의 출력신호에 따라서 제1도에 도시한 여러 솔레노이드 밸브(16),(18),(20),(22)의 개구도(開口度)가 제어된다.
다음은 연료공급 제어에 대하여 설명한 것이다.
도관(24)를 통하여 연료탱크로부터 공급된 연료는 주제트 오리피스(26)를 거쳐 도관(28)에 유입된다.
또한 연료는 주 솔레노이드 밸브(18)를 통하여 도관(28)에 유입된다. 결과적으로 주 솔레노이드 밸브(18)의 개구도가 증가함에 따라 도관(28)에 유입되는 연료량은 증가하게된다. 그 다음, 연료는 주 유화관(emulsion tube)(30)에 이르러 공기와 혼합된 뒤, 주노즐(32)를 통하여 벤튜리(34)에 공급된다 고속운전용드로틀 밸브(14)가 개방될때는, 연료가 노즐(36)을 통하여 벤튜리(38)에 부가적으로 공급된다.
한편 완속솔레노이드밸브(16)가 주솔레노이드 밸브(18)와 동시에 제어되는 것에 의해, 공기 청정기로부터 입구(40)를 거쳐 공급된 공기가 도관(42)으로 유입된다. 도관(28)에 유입된 연료는 또한 완속유화관(44)을 통하여 도관(42)에도 공급된다.
그 결과, 완속솔레노이드 밸브(16)를 통하여 공급된 공기량이 증가함에 따라 도관(42)에 공급되는 연료량이 감소하게 된다. 도관(42)에서 생성된 공기와 연료의 혼합기는 일명 완속분출공(slow hole)이라고도 불리는 구멍(46)을 통하여 드로틀실에 공급된다.
연료솔레노이드 밸브(20)는 엔진시등 및 예열동작을 위해 급유량을 증가시키는 작용을 한다. 도관(24)에 연결되어 있는 구멍(48)을 통하여 유입된 연료를 실에 연결되어 있는 도관(50)으로 연료솔레노이드 밸브(20)의 개구도에 의존하여 공급된다.
공기솔레노이드 밸브(22)는 엔진 실린더에 공급되는 공기량을 제어하는 작용을 한다. 즉 공기솔레노이드 밸브(22)는 공기청정기로부터 입구(52)를 공급 받아서, 자체의 개구도에 상당하는 양의 공기를 도관(54)를 통하여 드로틀 실안으로 유입시킨다.
완속솔레노이드 밸브(16)는 주 솔레노이드 밸브(18)와 공동으로 연료/공기의 비율을 제어하는 반면, 연료솔레노이드 밸브(20)는 급유량을 증가시키는 작용을 한다.
한편 완속운전시의 엔진속도는 완속솔레노이드 밸브(16), 주솔레노이드 밸브(18) 및 공기솔레노이드 밸브(22)의 공동작용에 의하여 제어된다.
점화장치의 구조를 도시한 제2도에서, 펄스전류가 증폭회로(62)를 통하여 전력트랜지스터(64)에 인가될때 전력트랜지스터(64)가 도통상태가 되어 축전지(66)로부터 점화코일(68)의 1차권선에 전류가 흐르게 된다. 펄스전류의 후연(trailing edge)에 응동하여 트랜지스터(64)가 차단상태가 되면 점화코일(68)의 2차 권선에 고전압이 유도된다.
이렇게 발생된 고전압은 배전기(70)을 통하여 엔진회전에 동기하여 내연기관의 개개의 실린더에 내장된 점화플러그(72)에 인가된다.
제3도는 배기가스 재순환계(이하 EGR계라함)의 동작을 설명하는 도면이다. 정부압원(定負壓源)(80)에서 나온 일정한 부압은 정압(定壓) 밸브 즉, 압력제어 밸브(84)를 거쳐 제어밸브(86)에 가해지는데, 이 압력제어 밸브(84)는 부압원(80)에서 나온 일정한 부압이 트랜지스터(90)에 인가되는 펄스신호의 충격계수(duty cycle)에 따라 대기(88)로 이탈되어지는, 비율을 제어함으로써 제어밸브(86)에 가해지는 부압의 세기를 제어하는 기능을 갖고 있다. 즉 제어밸브(86)에 가해지는 부압은 트랜지스터(90)의 충격계수에 따라 결정된다.
한편 배기관(92)에서 흡입관(82)으로 재순환된 배기가스량은 정압밸브(84)에서 나온 제어부압에 의하여 제어된다.
제4도는 전체 엔진계의 구성을 도시한 도면이다.
제어계의 구성은 중앙처리장치(CPU)(102), 읽기 전용 기억장치(read only memory:ROM)(104), 등속호출기억장치(random access memory:RAM)(106) 및 입/출력 접속회로(input/output interface circuit)(108)로 이뤄진다. CPU (102)는 RON(104)에 기억된 다수의 프로그램에 따라 입/출력회로(108)의 입력데이터에 대하여 연산동작을 실행하여, 그 연산결과를 다시 입/출력회로(108)에 귀환시킨다.
연산동작을 수행하는데 필요상 데이터를 일시 저장하기 위하여 RAM (106)을 사용한다. CPU (102), ROM(104), RAM(106) 및 입/출력회로(108)간의 데이터의 이동 및 교환은 데이터버스, 제어버스 및 번지버스로 구성되는 버스라인(110)을 통하여 수행된다.
입/출력 접속회로(108)내에 함입된 입력장치의 구성은 제1 AD변환기(이하 ADC1이라함), 제2AD 변환기(이하 ADC2이라함), 각도신호처리회로(126) 및 1비트 정보를 입력 또는 출력시키는 이산치(discrete)입/출력회로(이하 DIO라 함)(128)로 이뤄진다.
ADC1(122)에 함입된 다중절환기(이하 MPX라함)(162)의 입력단자에는 축전지 전압측정센서(이하 VBS라함), 냉각수온측정센서(이하 TWS라함), 주위온도에서(이하 TAS라함)가, 감전압발전기(이하 VRS라함), 드로틀 각측정센서(이하 THS라함) 및 λ센서(이하 λS라함)등의 출력들이 인가된다. MPX(162)는 그의 입력단자에 입력된 다수의 신호중에서 하나의 신호만을 선택하여 AD 변환회로(이하 ADC라함)(164)에 송출한다.
ADC(164)의 디지탈 출력신호는 레지스터(이하 REG라함)(174)에 세트된다.
각도센서(이하 ANGS라함)(146)는 기준크랭크각 예컨데, 180°를 나타내는 신호(이하 REF 신호라함)와 미소크랭크각 예컨데 1°를 나타내는 신호(이하 POS 신호라함)를 작출하도록 되어있다. 이 REF 및 POS 신호는 둘다 각도신호처리회로(126)에 인가된다.
DIO(128)의 입력단자는 완속스위치(이하 IDLE-SW라함), 고속기어 스위치(이하 TOP-SW라함) 및 시동기 스위치(이하 START-SW라함)에 연결되어 있다.
다음은 CPU(102)의 연산동작의 결과에 따라 제어되는 펄스출력회로의 목적 및 기능에 대하여 설명한 것이다. 연료/공기 혼합비 제어장치(이하 CABC라함)(165)는 제어목적상 주솔레노이드밸브(18)와 완속솔레노이드밸브(16)에 인가되는 펄스신호의 충격계수를 변환시키는 작용을 한다.
CABC(165)에 제어에 의하여 펄스신호의 충격계수가 증가할때 주솔레노이드밸브(18)를 통한 급유량은 감소해야 하므로, CABC(165)의 출력신호는 인버어터(163)를 거쳐 주 솔레노이드 밸브(18)에 인가된다. 반면에 CABC(165)에서 작출된 펄스신호의 충격계수가 증가하게되면, 완속솔레노이드밸브(16)를 통하여 제어되는 급유량이 증가하게 된다. CABC(165)내에서는 상기 펄스신호의 반복주기가 세트되는 레지스터(이하 CABP라함)와 펄스신호의 충격계수가 세트되는 레지스터(이하 CABD)가 함입되어 있다. 이 CABP와 CABD에 격납된 펄스반복주기 및 충격계수의 데이터는 CPU(102)로부터 얻을수 있다.
점화펄스 발생회로(이하 IGNC라함)(168)에는 점화시간 데이타를 세트하기 위한 레지스터(이하 AVD라함)와 점화 코일의 1차권선을 통하여 흐르는 전료의 지속시간을 세트하기위한 레지스터(이하 DWL이라함)가 구비되어 있다. 이 제어용 데이터들 역시 CPU(102)에서 얻을 수 있다.
IGNC(168)의 출력신호는 제4도의 점화계(170)에 인가된다. 점화계(170)의 설비는 제2도에서 설명한 바와 같은 배열로 구성된다. 즉 IGNC(168)의 출력펄스는 제2도에 도시한 증폭회로의 입력에 인가된다.
급유증가펄스 발생회로(이하 FSC라함)(176)는 제1도의 연료솔레노이드 밸브(20)에 인가되는 펄스신호의 충격계수를 제어하는 기능을(가지며, 이를 위하여 상기 펄스신호의 반복주기를 세트하기 위한 레지스터(이하 FSCP라함)와 이 펄스신호의 충격계수를 세트하기 위한 레지스터(이하 FSCD라함)를 구비하고 있다.
재순환 배기가스량(EGR) 제어용 펄스발생회로(이하 EGRC라함)(178)에는 펄스신호의 반복주기를 세트하기 위한 레지스터(이하 EGRD라함)와 이 펄스의 충격계수를 세트하기 위한 레지스터(이하 EGRC라함)가 함입되어 있으며, EGIC에서 나온 펄스는 다른 일 입력단자에 DIO(128)의 출력신호(DIO 1)가 인가되어 있는 AND 게이트(184)를 거쳐 공기솔레노이드 밸브(22)에 인가된다.
따라서 신호(DIO 1)가 저레벨이 될때, AND게이트 (184)는 공기 솔레노이드 밸브(22)를 제어하는 제어펄스신호를 전동시킨다. 반면에 신호(DIO 1)가 고레벨이 되면, AND 게이트(186)가 도전상태로 되어 제3도에 도시한 EGR계를 제어하게 된다.
상기한 바와 같이 DIO(128)는 1비트 신호에 대한 입/출력회로로서, 입력동작을 행할 것인가 아니면 출력동작을 행할 것인가를 결정할 수 있는 데이터를 보전하는 레지스터(이하 DDR이라함)와 출력될 데이터를 보전하는 레지스터(이하 DOUT라함)로 구성된다.
DIO(128)의 출력신호(DIOO)는 연료펌프(190)를 제어한다.
제5도는 제4도의 제어회로에 대한 프로그램시스템을 도시한 것이다. 전원이 키이스위치(도시하지 않음)에 의하여 “ON”상태가 될때, CPU(102)는 초기치설정 프로그램(INITIALIZ)을 실행하는 시동모우드로 된다. 이어서 조정프로그램(MONIT)(206)이 실행되는데, 여기에는 배경작업(BACKGROUND JOB)(208)의 실행이 수반된다.
이 배경작업에는 EGR량을 계산하는 과업(이하 EGRCAL 과업이라 함)과, 연료솔레노이드밸브(20) 및 공기솔레노이드밸브(22)에 대한 제어량을 계산하는 과업(이하 FISC라함)등이 포함된다. 이 과업(task)들의 실행도중에 개입중단요구(interrupt request:IRQ)가 발생하면, IRQ 분석프로그램(이하 IRQ ANAL이라함)의 실행이 단계(222)에서 개시한다. 이 IRQ ANAL 프로그램은 ADC1에 대한 종료개입중단처리프로그램(이하 ADC/END IRQ라함)(226), ADC 2에 대한 종료 개입중단처리프로그램(이하 ADC2 END IRQ라함)(228), 시간격 개입중단 처리프로그램(이하 INTV IRQ라함)(230) 및 엔진정지 개입중단 처리프로그램(이하 ENST IRQ라함)(232)으로 구성되며, 아래에 기술한 과업중에서 동작되어야 할 과업에 대하여 기동요구(이하 QUEUE라함)를 내린다.
프로그램 IRQ ANAL(224)의 서브프로그램 ADC 1 END IRQ(226), ADC2 END IRQ (228) 및 INRV IRQ (230)로부터 요구 QUEUE를 받는 과업으로서 순위“0”의 과업군(252), 순위 “1”의 과업군(254), 순위 “2”의 과업군(256), 순위 “3”의 과업군(258) 또는 이 과업군의 일부를 구성하는 개개의 과업등이 있다.
프로그램 ENST IRQ (232)로부터 요구 QUEUE를 받는 과업은 엔진정지를 처리하는 과업프로그램(이하 ENST TASK라함)(262)이다. 과업프로그램ENST TASK(262)가 실행되었을때, 제어프로그램은 시동모우드로 되돌아가 시동단계(202)에 귀착된다.
과업스케듈러(242)의 기능은, 요구 QUEUE를 받았거나 실행개입 중단된 과업군이 고순위의 과업군으로부터 시동되어 실행되는 것과 같이 과업이 실행되어가는 순서를 결정하는 것이다. 도시예에서는 순위 “0”가 최고순위다.
최고순위의 과업군의 실행이 종료하였을때, 이 사실을 과업스케듈러(242)에 통보하기 위해 종료표시프로그램(이하 EXIT라함)(260)이 실행된다. 이어서 QUEUE 상태에 있는 과업군중에서 다음 순위의 과업군이 수행된다. 실행이 개입중단되었거나 요구 QUEUE를 받은 과업군이 남아 있지 않을때는, 과업스케듈러(242)의 명령을 받아 배경작업(208)의 실행으로 다시 옮겨진다. 더우기 순위 “0”∼“3” 사이의 과업군의 실행도중에 IRQ가 발생하면 IRQ처리 프로그램의 시등단계(222)로 귀착된다.
표 1에 과업프로그램의 기능 및 기등에 관하여 작성되어있다.
(표 1 삽입)
표1에서 보는 바와 같이 프로그램 IRQ ANAL, TASK SCHEDULER 및 EXIT는 제5도에 제어계를 조정감시한다. 이 프로그램들은 제6도에 도시한 바와 같이 ROM(104)의 번지 AOOO∼A2FF에 격납된다.
순위 “0”인 프로그램 AN1IN, AD1ST, AD2IN, AD2ST 및 RPMIN은 10msec마다 발생되는 INTV IRQ에 의하여 기동된다. 순위 “1”인 프로그램에는 20msec의 시간격의 주기로 발생되는 INTV IRQ에 의하여 기동되는 CARBC, IGNCAL 및 DWLCAL 프로그램이 있다.
순위 “2”의 프로그램에서는 40msec마다 발생되는 INTV IRQ에 의하여 구동되는 LAMBDA가 있다.
[표 1]
Figure kpo00001
순위 “3”의 프로그램 HOSE는 10msec마다 INTV IRQ에 의하여 기동된다. 프로그램 EGRCAL 및 FISO는 배경작업을 위한 것이다. 제6도에 도시한 바와 같이 순위 “0”의 프로그램(PROG1)은 ROM(104)의 번지 A700∼AAFF에 격납된다. 순위 “1”의 프로그램(PROG2)은 ROM(104)의 번지 ABOO∼ABFF에 격납되며 순위 “2”의 프로그램(PROG3)은 ROM(104)의 번지AEOO∼AEFF에 격납되고, 순위 “3”의 프로그램(PROG4)은 ROM(104)의 번지 AFOO∼AFFF에 격납된다. 배경작업에 대한 프로그램은 번지 BOOO∼B1FF에 격납된다. 상기한 프로그램 PROG1∼PROG4의 시동 번지리스트(이하 SFTMR이라 함)는 번지 B200∼B2FF에 격납되는 한편, 개개의 프로그램의 기동주기를 나타내는 값(이하 TTM이라 함)은 번지 B300∼B3FF에 격납된다. 그외 필요한 데이터는 ROM(104)의 번지 B400∼B4FF에 격납되고, 계속해서 번지 B500∼B7FF에는 데이터 ADV MVP(도표), AFMAP 및 EGRMAP가 격납된다.
다음은 제5도를 참조하여 IRQ의 발생으로 인한 처리과정을 설명하기로 한다.
IRQ의 발생원인을 분석하는 프로그램(IRQ ANAL)(224)은 ADC1 END IRQ(226), ADC2 END IRQ(228), INTV IRQ(230) 및 ENST IRQ(232)의 처리를 위한 서브 프로그램들로 구성된다. 이 서브 프로그램들을 실행하기 위해서는 먼저 관련IRQ의 내용을 검사해야 하는데, 이를 위해서 우선 IRQ의 발생원인을 판단할 목적으로 제4도에 도시한 상태(STATUS) 레지스터(198)의 내용을 검사한다. 그 다음, 분석된 IRQ의 발생원인에 따라 서브 프로그램(226),(228),(230) 또는 (232)이 실행되며, 그 결과 과업(252),(254),(256),(258),(262) 중에서 실행될 필요가 있는 과업에 기등요구 QUEUE가 내려진다.
여기서 부언하고자 하는 점은, 너무 과다한 TRQ가 발생하면 감시 프로그램(이하 OS 프로그램이라 함)을 실행하는데 많은 시간이 요구되어 결과적으로 엔진 제어를 위한 연산동작을 활용할 수 있는 시간이 제한된다는 점이다. 따라서 앞으로 설명할 실시예에서는, ADC2 END IRQ(228)가 서브프로그램 INITIALIZ(204)나 MONIT(206)의 실행도중에만 발생하고 그 외에는 금지되도록 하고 있다. 다시 말해서 상기 서브 프로그램의 실행도중 외에는, ADC2 END IRQ에 대한 금지명령을 표시하는 저레벨이 제4도에 도시한 마스크(MASK) 레지스터(제11도의 플립플롭, 776) (200)에 세트된다. ADC1 END IRQ(226)는 본래부터 금지되어 있다. 즉 시동단계(202)에서 입/출력 회로에 대한 총정지신호가 MASK 레지스터에 세트되어 있으므로 모든 개입 중단요구가 금지된 상태에 있는 것이다. ADC1 END IRQ는 금지제거 명령이 발생되지 않는한 금지상태로 존속된다.
제7도에서는 프로그램 IRQ ANAL(224)의 일례가 도시되어 있다. 이 프로그램은 단계(222)에서 개시된 후 단계(502)로 이동하여, 발생된 IRQ가 ADC2 END IRQ인가를 판단한다. 긍정적(“YES”)인 경우, 단계(516)에서 과업순위 “0”인 프로그램에 기동요구가 내려진다.
이 동작은 제9도에 도시한 RAM(106)내의 과업 제어단어 TCWO의 b6에 플랙 “1”을 세트시킴으로써 완수된다. 상기한 바와 같이 ADC2 END IRQ는 제5도에 도시한 INITIALIZ 프로그램(204)의 실행도중에만 발생되고 그 이외에는 금지되고 있다.
단계(502)에서 “NO”판정이 나오면, 프로그램은 단계(504)로 이동하여, 발생된 IRQ가 소정의주기로 발생되는 INTV IRQ인지 그 여부를 판단한다. 단계(504)에서 “YES”판정이 나오면, 프로그램은 단계(506)로 진행한다.
단계(506∼514)에서는 INTV IRQ가 과업순위 “0”∼“3”의 프로그램에 대한 기동 타이밍과 연관되어 검사된다. 먼저 과업순위 “0”의 프로그램에 관하여 검사가 행해진다. 다시 말해서 과업순위 “0”의 과업제어 단어 즉, 제9도에 도시한 TCWO의 비트 b0∼b5로 구성되는 카운터 0(이하 CNTRO라함)가 (+1) 증가한다. 이 경우에는 비록 상향계수(upcounting)가 채택되었으나 하향계수(down counting)도 채택할 수 있음은 물론이다. 단계(508)에서는 TCWO의 카운터 CNTRO의 내용이 제9도에 도시할 과업기동 타이머 TTMO의 내용과 비교된다. 여기서 TTMO 내에 “1”이 존재한다는 것은 과업순위 “0”의 프로그램(제5도의 252)이 10m.sec마다 기동된다는 것을 의미한다. 그 이유는 INTV IRQ가 10m.sec의 주기로 발생되기 때문이다. 단계(508)에서 카운터 CNTRO의 내용이 과업타이머 TTMO의 내용과 비교되어 이 두 내용이 일치할때는 프로그램이 단계(510)로 진행되어 과업제어단어 TOWO의 b6에 플랙 “1”이 세트된다. 도시예에서 모든 TCW의 b6은 관련과업의 기동을 요구하는 플랙을 나타낸다. 단계(510)에서 TCWO의 b6에 플랙 “1”이 세트되면 카운터 CNTRO의 비트 b0∼b5가 모두 지워진다.
단계(512)에서 과업순위 “1”인 프로그램에 대한 기동 타이밍의 검색이 수행된다. 단계(514)에서는 순위 “3”의 과업이 종료되었는지 즉, n=4인지의 여부가 판단된다. 그런데 여기서 n=1이기 때문에, 프로그램은 단계(506)로 귀환되어 과업순위 “1”의 프로그램에 대한 과업제어단어를 나타내는 RAM(제9도의 106)내의 TCW1의 카운터 CONTR1 내용을 (+1) 증가시킨다. 단계(508)에서 이 증가된 내용이 ROM(제9도의 104)의 TTM1의 내용과 비교된다. 도시예에서 TTM1의 내용이 “2”라고 가정한다. 이는 과업순위 “1”의 프로그램에 대한 기동 타이밍의 주기가 20m.sec라는 것을 나타낸다. 카운터 CNTR1의 내용이 “1”이므로 단계(508)의 판단 결과는 “NO”가 되는데, 이는 기동 타이밍이 과업순위 “1”의 프로그램(254)을 위한 것이 아니라는 것을 나타낸다. 따라서 프로그램은 단계(512)로 진행하여 검색된 프로그램의 과업순위를 다시 과업순위 “2”로 갱신한다.
같은 방법으로 순위 “3”의 과업에 대한 처리가 행하여지며, 이때 n은 단계(512)에서 4가 된다. 따라서 단계(514)의 조건 n=MAX가 충족된다.
단계(504)에서 IRQ가 INTV IRQ가 아니라고 판단될 경우, 프로그램은 단계(518)에서 문제의 IRQ가 ENST IRQ라고 판단할다. 단계(504)에서 “NC”판정이 나오면, IRQ는 필연적으로 ENST IRQ가 되어야 한다. 따라서 단계(518)는 생략될 수 있으며, 프로그램은 곧바로 단계(520)로 진행하여 엔진정지에 관한 소정의 프르그램에 따라 연료펌프의 동작을 정지시킨다. 이외에도 점화계와 연료공급 제어계에 대한 모든 신호가 리세트된다. 그 다음에 프로그램은 제5도에 도시한 시동단계(202)로 귀환한다.
제8도는 과업스케듈러(242)에 대할 프로그램의 순서도이다. 단계(530)에서는 순위 “n”의 과업에 대한 실행 여부를 결정한다. 맨처음의 과업순위 n은 0(영)이므로 먼저 순위 “0”의 과업의 실행 필요성을 판단한다. 다시 말해서 과업기동 요구의 존재여부를 과업 순위의 순서대로 검사하는 것이다. 이 검사는 개개의 과업 제어단어의 비트 b6 및 b7의 검색을 통하여 수행된다. 비트 b6은 기동요구 플랙용으로 할당되어 있다. 이 비트 b6에 “1”이 나타나면 기동요구가 발생한 것으로 간주한다. 아울러 비트 b7은 관련 과업이 실행중임을 표시하는 플랙용으로 사용된다.
비트 b7에 “1”이 출현하면, 관련 과업이 실행중이며 현재 개입중단된 상태에 있음을 의미하는 것이다. 따라서 비트 b6 및 b7중에 한곳에라도 “1”이 출현할때, 스케듈러 프로그램은 단계(538)로 이동하게 된다.
단계(438)에서는 비트 b7에 세트된 플랙이 검사된다. 비트 b7에 출현된 “1”은, 실행이 개입 중단되고 있음을 나타낸다. 따라서 프로그램은 단계(540)에서 그때까지 개입 중단되고 있는 실행을 계속 유지한다.
만약 비트 b6 및 b7에 플랙 “1”이 세트되어 있으면, 단계(538)의 판단과정에서 “YES”라는 응답이 나오게 되어 개입중단 되고 있는 과업프로그램이 재개된다. 비트 b6에만 “1”이 세트되어 있는 경우에는, 해당 과업순위의 과업에 대한 기동요구 플랙이 단계(542)에서 지워지며, 이어서 단계(544)에서는 비트 b7에 플랙(이하 RUN 플랙이라함)이 세트된다. 단계(542) 및 (544)는, 해당과업순위의 과업에 대한 기동요구가 과업이 실행될 수 있는 상태에 이르렀음을 나타낸다. 따라서 단계(546)에서는 관련과업 순위의 과업 프로그램에 대한 시동 번지가 검색된다.
이 번지는 다수의 과업순위의 TCW와 관계되는 ROM(104)내의 시동번지표 TSA로부터 결정된다. 다음 처리동작은 위에서 결정된 시동번지로 점프하여 해당 과업 프로그램을 실행한다.
제8도의 판단 단계(530)에서 “NO”라는 결과가 발생할때, 이는 검색된 과업순위의 프로그램에 대하여 기동 요구가 내려지지 않았을 뿐만 아니라 이 프로그램이 잠시도 개입중단 상태에 있지 않음을 의미하는 것이다. 이러한 경우 스케듈러 프로그램은 다음 순위의 과업의 검색으로 진행한다. 다시 말해서 과업순위 n은 (n+1)로 증가한다. 이때 증가된 순위의 지표(n+1)이 최대(MAX)인지 즉, (n+1)=4인지의 여부가 검사된다. 만약 그렇지 않은 경우에는 스케듈러 프로그램이 단계(530)으로 진행한다.
상기 처리과정은 n이 최대 즉, 4로 될때까지 반복 수행되며, n이 4일때 배경작업을 위해 개입 중단된 프로그램이 단계(536)에서 실행된다. 다시 말해서 단계(536)에서는 순위 “0”∼“3”의 과업에 대한 모든 프로그램이 실행될 필요는 없으며, 따라서 처리 과정은 IRQ의 발생에 의하여 프로그램이 중단되어 있는 배경작업 프로그램의 지점으로 귀환한다.
제9도는 과업 기동시간의 주기를 나타내는 ROM내의 과업 시동번지표 TTM과 RMA내의 과업제어단어 TCW 사이의 관계를 나타낸 것이다. 과업제어단어 TCW0∼TCW3에 일치하여 ROM 내에는 과업기동주기 TTM0∼TTM3이 격납되어 있다. INTV IRQ가 발생할때마다, TCW의 카운터 CNTR이 계속적으로 갱신되며 카운터와 과업의 TTM의 내용이 서로 일치할때 관련되는 TCW의 비트 b6에 플랙이 세트된다. 이와같이 플랙이 세트되면, 과업에 대한 시동번지가 과업 시동번지 TSA로부터 검색된다. 그 다음 처리과정은 검색된 시동번지로 점프하여, 프로그램 1∼4중에서 선택된 하나의 프로그램을 실행한다. 이 프로그램의 실행중에, 실행되고 있는 프로그램에 해당하는 RVM(106) 내의 TCW의 비트 b7에 플랙이 세트된다. 따라서 이 플랙이 세트되어 있는한, 관련 프로그램이 실행되고 있는 중이라고 단정할 수 있다. 이러한 방법으로 제5도의 과업스케듈러(242)에 대한 프로그램이 실행된다. 그 결과 과업순위 “0”∼“3”인 과업 프로그램(252∼248)중에서 하나의 프로그램이 실행된다. 이 프로그램의 실행도중에 IRQ가 발생하게 되면, 이 실행은 다시 개입중단되어 IRQ를 처리하게 된다. IRQ가 발생되지 않을 때는, 실행되고 있는 과업에 대한 처리과정이 곧 끝나게 된다. 이 과업 프로그램의 실행이 중료된 후에는 EXIT 프로그램이 실행된다.
EXIT프로그램(260)은 제10도에 상세히 도시되어 있다. 이 프로그램은 종료된 과업을 확인하는 단계(562)및 (564)로 구성된다. 단계(562) 및 (564)에서는 순위 “0”의 과업부터 검색을 시작하여 종료된 과업의 과업순위를 규명한다. 다음 단계(568)에서는, 종료된 과업에 해당하는 TCW의 비트 b7에 세트된 플랙 RUN이 리세트되는데, 이는 확인된 과업에 대한 프로그램이 완전히 종료되었음을 나타낸다. 그다음 과정을 다시 과업스케듈러(242)로 귀환되어, 다음에 실행될 프로그램을 결정한다.
제11도는 제4도의 IRQ회로를 상세하게 도시한 것이다. CPU에 대하여 IRQ를 요구할수 있는 조건이 성립되었을때, STATUS레지스터의 해당비트이 플랙이 세트된다. 상기 조건을 근거로 CPU에 대하여 IRQ의 기동을 요구할 수 있는 조건은 상기한 바와같이 MASK레지스터에 격납된다. MASK레지스터 및 STATUS레지스터의 비트들은 AND게이트(748),(750),(770) 및 (772)의 해당입력에 접속되며, MASK레지스터와 STATUS레지스터의 조건이 서로 일치하는 비트에 대한 IRQ요구신호는 OR게이터(751)를 거쳐 발생된다.
CPU는 버스(110)를 통하여 STATUS레지스터의 내용을 독출한다. 제7도에 도시한 단계(502),(504),(518)에서는, 개입중단의 원인을 분석하기 위하여 STATUS레지스터의 내용을 해독(decode)한다.
다음은 STATUS레지스터에 IRQ기동요구 조건이 설정되어 있음을 표시하기위해 플랙을 세트시키는 동작에 관하여 설명한다. 먼저 INTV IRQ의 조건이 성립되어는지의 여부를 검사하기 위하여, 타이머 입개중단주기(예컨데 10msec)를 나타내는 데이터를 CPU로부터 버스(110)를 통하여 레지스터(735)에 세트시킨다. 카운터(736)는 클럭펄스를 계수하여, 이 계수치가 레지스터(735)에 프리세트된 값과 일치할때 비교기(737)가 동작한다. 그 결과 플립플롭(738)및 동작되어 STATUS레지스터의 해당플랙비트가 세트된다.
AND게이트(747)는 플립플롭(738) 및 카운터(736)를 리세트시키는 작용을 한다. 플립플롭(738)은 리세트된 데이터가 카운터(736)로 진행되는 것을 방지한다.
다음은 엔진정지(즉 소정치 이하의 엔진회전속도)를 검출하는 회로에 대하여 설명하기로 한다. 소정의 타이머 주기를 나타내는 데이터는 CPU로부터 레지스터(741)에 격납된다. 한편 카운터(742)는 클럭펄스를 계수한다. 카운터(742)의 리세트단자에 인가되는 SREFP펄스(제29도에 기술됨)는 엔진회전에 동기되어 있다. 엔진이 회전하는 동안, 카운터(742)는 계속 SREFP펄스에 의하여 리세트되므로 카운터(742)의 내용이 레지스터(741)에 프리세트된 값에 도달하지 못한다. 그런데 엔진회전속도가 매우 많아 줄었을때는, 카운터(742)의 계수치가 레지스터(741)에 프리세트된 값에 도달하여 비교기(743)의 출력신호가 플립플롭(744)에 보내지므로, STATUS레지스터에 플랙이 세트된다. AND게이트는(749) AND게이트(747)와 같은 리세트 기능을 가지고 있다. ADC1 END IRQ 및 AND2 END IRQ역시 같은 기능을 가지고 있다.
ADC1의 AD변환동작이 완료되었을때는 플립플롭(794)에 “1”이 세트된다. CPU로부터 버스라인(110)을 통하여 플립플롭(762)에 “1”이 세트될때, AND게이트(770)의 AND조건이 성립되어 ADC1 END IRQ의 동작요구가 OR게이트(751)를 통하여 CPU에 하달된다. 그런데, 플립플롭(762)에 “1”이 세트되지 않으면, ADC1 END IRQ가 금지된다. 이 처리과정은 ADC2에 대해서도 마찬가지로 적용된다. ADC2의 실행이 종료되었을때 플립플롭(762)에 “1”이 세트된다. 플립플롭(766)에 “1”이 세트되어 있는 경우에는 ADC2 END IRQ가 AND게이트(772) 및 OR게이트(751)를 거쳐 발생되지만, 플립플롭(766)에 “1”이 세트되어 있지 않은 경우에는 AND게이트(772)의 AND조건이 성립되지 않으므로 ADC2 END IRQ가 발생되지 않는다. 따라서 플립플롭(739),(745),(762) 또는 (766)에 “1”이 세트되면 IRQ가 발생하고, “0”이 세트되면 IRQ의 발생이 금지된다.
제12도는 제4도의 CABC(165)를 구성하는 레지스터 CABD 및 CABP와, IGNC (168)의 레지스터 ADV 및 DWL과, FSC(176)의 레지스터 FSCD 및 FSCP와, EGRC(178)의 레지스터 EGRD 및 EFRP와, 레지스터(735)로 구성되는 INTV IRQ회로와, 제11도의 카운터(736) 및 비교기(737)와, 레지스터(741), 카운터(742) 및 비교기(743)로 구성되는 ENST IRQ회로등의 출력펄스의 동작원리를 설명하는 블록선도이다. CPU를 구동하는 2상(two phase)클럭 ø1및 ø2에 의하여 만들어진 클럭 G1, G2, G3 및 G4는 시프트레지스터(1002)에 인가된다. 레지스터(1002)의 개개의 비트를 형성하는 래치회로는 각각 마스터-슬레이브(master slave)플립플롭을 포함하고 있다. 래치회로는 4상(four phase) 클럭 G1, G2, G3 및 G4에 의하여 자리이동(shift)동작을 수행한다. 본 실시예의 시프트 레지스터(1002)는 8-비트 레지스터로서 4상클럭에 의하여 구동되지만, 비트의 갯수는 제어의 정확도에 따라 변할 수 있으며, 따라서 16비트가 될수도 있다. 상기한 클럭은 2상 또는 다상(multi phase)클럭이 될수도 있다.
8-비트 래치 레지스터(1006)는 CPU에 내장된 접속회로(interface circuit)에 의하여 버스라인(110)를 거쳐 CPU로부터 데이터를 독출해 낼수 있으며, 동시에 CPU에 데이터를 기록해 넣을수도 있다. 데이터이동회로(1004)는 제어신호 G4SET 또는 G2MOVE에 응동하여, 래치 레지스터(1006)와 시프트레지스터(1002)사이에 데이터를 이동시킨다. 가감회로(1008)는 자리올림(carry)를 처리한다. 0(영)검출회로(1009)는 가감회로(1008)의 출력을 조정함으로써 시프트 레지스터(1002)의 내용이 모두 0이 되는 상태를 검출한다. 가감회로(1008)는 시프트 레지스터(1002)의 2° 비트래치 회로로부터 1-비트 테이터를 수납하여 자리올림을 처리한 다음, 시프트 레지스터(1002)의 2″ 비트 래치회로에 1-비트데이터를 보낸다.
다음은 시프트레지스터(1002) 및 가감회로(1008)의 동작에 관하여 설명한 것이다. 시프트 레지스터(1002)의 2° 비트래치회로의 데이터 Q.는 감쇠계(decrementer)로서 작용하는 가감회로(1008)에 인가된다.
시프트 레지스트(1002)에 맨 처음 격납된 데이터가 “10001100”일때, 2° 비트에 있는 “0”가 Q.가 된다.
가감회로(1008)는 현재 감쇠계로서 작용되고 있으므로, 상기 데이터중의 “1”들은 입력단자 DEC 및 CIN에 인가된다. “0”이 입력단자 CIN에 인가되면, 가감회로(1008)는 입력데이터를 가감작용을 행하지않고 그대로 송출해 해린다. “1”이 단자 CIN에 인가될때, 가감회로(1008)는 다음과 같은 부울 식(Boolean equation)에 따라 제1출력신호 QOo을 작출한다.
Figure kpo00002
단, 현상태에서 Qo=1, CIN=1이고,
Figure kpo00003
는 두입력 Qo와 CIN에 대한 배타논리합(Exclusive OR)을 다타내는 연산자이다. 따라서 QOo=1이 된다.
제1 자리올림 Co는 다음 부울식에서 결정된다.
Figure kpo00004
Qo=O이미로
Figure kpo00005
=1이 되고, CIN=1이다. 따라서 Co=1이 된다.
상기 동작을 통하여 출력단자 QOi의 “1”이 시프트 레지스터(1002)의 2″비트래치회로에 보내지므로, 시프트레지스터(1002)의 내용이 “11000110”을 갱신된다. 다음 클럭에 의하여, 초기데이터 “10001100”의 제2비트신호인 “0”이 Q1신호로서 시프트 레지스터(1002)의 2 래치회로로부터 가감회로(1008)의 입력단자 Qi에 인가된다. 따라서 가감회로(1008)의 출력단자 QOi는 다음의 부울식으로 표현되는 신호 QO1을 작출시킨다.
Figure kpo00006
Q1=0, Co=1이므로 QO1=1이 된다.
CO의 값은 앞의 비트에서 처리된 자리올림으로서 가감회로(1008)에 보전되어 있었다. 가감회로(1008)는 출력뿐만 아니라 자리올림도 처리한다. 자리올림 C1은 다음의 부울식으로 표현된다.
Figure kpo00007
Figure kpo00008
=1, CO=1이므로 C1=1이 된다. 따라서 C1의 “1”은 자리올림으로서 가감회로(1008)에 보전된다. 이제 가감회로(1008)는 “1”을 작출하므로, 시프트레지스터(1002)의 내용이 “11100011”로 갱신된다.
제3클럭에 의하여, “1”은 Q2의 입력신호로서 가감회로(10080)에 인가된다. 따라서 출력 QO2는 다음 부울식으로 표현된다.
Figure kpo00009
Q2=1, C1=1이므로 QO2=0이 된다. 자리올림 C2는 다음식으로 표현된다.
Figure kpo00010
Figure kpo00011
=0이므로 C1=1이므로 C2=0이 된다. 따라서 이 C2의 “0”은 자리올림으로서 보전되며, 시프트레지스터(1002)의 내용이 “01110001”로 갱신된다.
상기 연산에서 알수 있는 바와같이, 가감회로(1008)의 출력에 대한 부울식은 다음과 같이 표현된다.
Figure kpo00012
여기서 QO는 시프트 레지스터(1002)에서 가감회로(1008)로 인가되는 제1입력이다. CIN과 DEC는 감쇠동작을 위한 제어입력이다. 입력 CIN 및 DEC가 “1”일때, 가감회로(1008)는 감쇠되며, 입력 CIN이 “0”일때 가감회로(1008)는 입력신호를 감소시킴없이 그대로 송출한다.
가감회로(1008)는 보전된 자리올림은 다음식으로 표현된다.
Figure kpo00013
Qi는 가감회로(1008)에 인가되는 i번째 입력이며, C(i-1)은 이전의 연산과정에서 결정되어 가감회로 (1008)에 보전되어 있는 자리올림이다.
식 (7)∼(10)으로부터 알수 있는 바와같이, 4번째 클럭에 의하여 시프트레지스터의 내용이 “10111000”으로 갱신되며, 5번째 클럭에 의하여 “01011100”으로, 6번째 클럭에 의하여 “00101110”으로, 7번째 클럭에 의하여 “00010111”로, 그리고 8번째 클럭에 의하여 “10001011”로 갱신된다.
위에서 보는 바와같이, ø1및 ø2에 의하여 만들어진 8개의 4상클럭이 모두 인가되었을때, 초기내용 “10001100”이 “10001011”로 감소한다. 따라서 시프트 레지스터(1002)의 비트갯수에 해당하는 클럭이 인가된후에, 시프트레지스터(1002)의 초기내용이 감소동작인 경우(-1)감소하며, 증가동작인 경우(+1)증가하게 된다.
제13a도, 제13b도 및 제14도에는 시프트 레지스터(1002), 가감회로(1008), 래치레지스터(1006) 및 데이터 이동회로(1004)의 기본회로에 대하여 설명되어 있다.
제13a도는 동적 인버어터(1010) 및 (1012)로 구성되는 1-비트 시프트 회로를 도시한 것이다. 인버어터(1010)의 기호 ① 및 ②는, 인버어터(1010)가 클럭 G1 및 G2에 의하여 구동됨을 나타내고, 인버어터(1012)의 기호 ③ 및 ④는, 인버어터(1012)가 클럭 G3 및 G4에 의하여 구동됨을 나타낸다. 제13b도는 제13a도의 MOS회로도이다.
제13b도의 동작은 제14도에 도시한 동작파형도를 참조하면서 설명하기로 한다. 우선, 4상클럭 G1∼G4가 클럭 ø1및 ø2에 의하여 만들어진다. C1시간 동안에는, G1=1이고 G2=1이므로 트랜지스터 TR1및 TR2가 “on”상태로 된다. 그런데 트랜지스터 TR3의 게이트-소오스(gate-source)전압은 한계전압(threshold voltage)에 이르지 못하기 때문에, TR3는 “off”상태가 된다. 따라서 인버어터(1010)의 출력단자 OUT1에 접속된 분포용량(distributed capacitance) C와 같은 외부부하가 충전된다.
다음시간 D1동안에는, G1=0이고 G2=1이므로 트랜지스터TR1은 “off”상태가 되고 트랜지스터 TR2는 “on”상태가 된다. IN1은 “0”이므로 트랜지스터 TR3는 “off”상태로 존속된다. 따라서 분포용량 C는 Vcc(전원전압)에 의하여 충전되었던 전하를 그대로 보전한다. 결과적으로 인버어터(1010)는 입력 IN1=0에 대하여 출력 OUT=1이 되도록 한다.
시간 E1동안에는, G3 및 G4가 “1”이 되므로 트랜지스터 TR4 및 TR5가 “on”상태로 된다. IN2인력과 G3가 모두 “1”이므로 트랜지스터 TR6은 “off”상태로 된다. 따라서 인버어터(1012)의 출력 OUT2에 접속된 분포용량은 트랜지스터 TR4를 통하여 전원전압 Vcc에 의해 충전된다. 시간 F1동안에는, 논리연산이 수행된다. G3=0, G4=1이고 IN2=1이므로, 트랜지스터 TR4는 ”off”상태로되는 한편 트랜지스터 TR5및 TR6은 “on”상태로된다. 따라서 출력 OUT2에 접속된 분포용량에 충전되었던 전하는 트랜지스터 TR5 및 TR6을 통하여 방전된다. 그결과 출력 OUT2는 “0”이 된다.
제15a도는 다른 기본회로를 도시한 것이며, 제15b도는 이의 MOS회로도이다. 이 회로의 동작원리는 제13도의 회로의 동작과 근본적으로 같다. 우선 트랜지스터 TR1 및 TR2가 클럭 G3및 G4에 의하여 “on”상태로 되어, 단자 OUT에 접속된 부유용량(stray capacitance)이 충전된다. 그 다음에는 트랜지스터 TR3,TR4,TR5 및 TR6으로 구성되는 논리회로에 의하여 논리연산이 수행된다. 동도에서 보는 바와같이 트랜지스터 TR3 및 TR4, 그리고 트랜지스터 TR5 및 TR6은 각각 직렬로 접속되어 AND게이트를 형성한다. 이 직렬회로들은 다시 병렬 접속되어 NOR게이트를 형성한다.
제16도는 제12도에 도시한 시프트레지스터, 데이터 이동회로 및 래치 레지스터의 1비트를 나타낸 것이다. 블록(1022)은 1-비트 시프트 레지스터이고, 블록(1024)은 1-비트 데이터 이동회로이며, 블록(1026)은 1-비트 래치회로를 나타내고, 블록(1028)은 래치회로(1026)와 데이터 버스사이의 1-비트접속회로를 나타낸다.
제12도의 회로는 제16도의 회로가 8개 직렬 접속되어 구성된 것이다.
제17a도는 1-비트 시프트 회로를 설명한 것이다.
클럭 G1=“1”인 시간에는, 제17a도의 회로중에서 직선부분은 동작상태가 되며 파선부분은 비동작상태가 된다. 즉 트랜지스터(1027),(1029)가 “on”상태로 되어, 입력신호 SIN이 트랜지스터(1027),(1029) 및 인버어터(1048)를 거쳐 신호라인(1030)에 전달된다. 이때 신호라인(1030)에 존재하는 용량이 충전되어, 입력 SIN이 신호라인(1030)에 보전된다.
G1=“0”인 시간에는, 트랜지스터(1027),(1029)가 “off”상태로 되므로 신호라인(1032) 및 (1030)이 서로 차단된다. 이 시간동안에는 후술할 래치회로의 인버어터(1042) 및 (1044)역시 비동작 상태로 된다. 클럭 G1 및 G2의 다음에오는 클럭 G3 및 G4에 의하여 동작상태가 되는 회로는 제17b도에 도시되어 있다. 신호라인(1030)에 보전된 신호는 제13도에서 설명한 바와같이 클럭 G3의 하향(즉, 후연)에 동기하여 출력 SOUT에 전달된다. 따라서 클럭 G1 및 G2에 의하여 입력 SIN에 있던 데이터는 신호라인(1030)에 보전되며, G3 및 G4에 의하여 이것은 인버어터(1040)로 부터 송출된다.
이와같이 입력 SIN이 클럭 G1,G2,G3 및 G4에 동기하여 출력 SOUT로서 송출될때, 1비트의 자리이동(shift)동작이 완료되는 것이다. 이 클럭 G1∼G4의 반복에 의해 시프트레지스터는 자리이동 동작을 반복수행한다. 8-비트 시프트레지스터가 제12도에 도시한 바와같이 8개의 1-비트 시프트레지스터를 직렬 접속하는 것에 의해 제작되었을때, 자리이동 동작은 개개의 1-비트시프트레지스터에 인가되는 클럭 G1∼G4에 의하여 수행된다. 클럭 G1∼G4가 8번 인가되면, 저장된 8-비트 데이터는 시프트 레지스터를 통하여 1회전하게 된다. 래치회로(1026)의 동작에 관해서는 제17a도 및 제17b도를 참조하면서 설명한다. 제17a도에서 직선으로 도시한 바와같이, 신호라인(1036)에 보전된 데이터는 클럭이G1 및 G2에 의해 동적 인버어터(1042) 및 인버어터(1044)를 거쳐 신호라인(1036)에 저장된다. 클럭 G3 및 G4에 의하여 신호라인(1036)에 저장된 데이터는 제17b도에 도시한 바와같이 동적 인버어터(1046) 및 인버어터(1048)을 통하여 트랜지스터(1049)에 전달된다. 이 트랜지스터(1049)는 클럭 G4에 의하여 “on”상태가 되므로, 신호라인(1036)에서 트랜지스터(1049)로 이동된 데이터는 신호라인(1034)로 더욱 이동된다. 클럭 G3 및 G4의 시간에 트랜지스터(1027),(1029)가 “off”상태로 되는 것에 의해, 신호라인(1038)의 직렬회로와 인버어터(1048)그리고 신호라인(1032)이 1-비트시프트회로(1022)의 입력 및 출력으로부터 차단되므로 이는 래치회로(1026)의 일부로서 작용하게 된다. 이 직렬회로는 1-비트 시프트 회로와 래치회로에 의해 공유되므로, 클럭 G1 및 G2의 시간에는 시프트회로의 입력데이터 SIN이 이 직렬회로를 통과하게 되며, 클럭 G3 및 G4시간에는 래치회로의 데이터가 이 직렬회로를(통과하게 된다. 클럭 G3 및 G4에 의하여 신호라인(1034)에 있는 데이터는 신호라인(1036)으로 보내지며, 신호라인(1036)에 있는 데이터는 신호라인(1034)으로 다시 보내진다.
이러한 방법으로, 데이터는 클럭 G1∼G4에 의하여 페루우프 래치회로를 통하여 회전함으로써 보전된다.
다음은 CPU로부터 버스라인을 통하여 데이터를 기록하는 동작에 관하여 설명하기로 한다. 데이터 세트동작에 관계되는 제12도의 회로부분은 제18도에서 직선으로 도시되어 있으며, 이의 동작을 설명하는 파형도가 제19도에 나타나있다. 제어라인 WCS(write chip select)의 신호는 CPU로 부터 번지 버스를 통해 이송되는 번지데이터와, 제어버스를 통해 이송되는 제어신호로 구성되는데, 이는 데이터 버스 DB를 구성하는 1-비트라인과 래치회로 사이의 접속을 제어하는 기능을 갖고 있다. 제어라인 WCS의 신호는 클럭 G2 및 G4의 전연(rising edgd)에 등기되어 있다. 제어라인 G4SET의 신호는 래치회로에서 시프트회로로 데이터를 이동시키는 작용을 한다.
데이터-기록을 나타내는 신호가 CPU로부터 제어버스 또는 번지버스를 통하여 전달될때, 제어라인 WCS의 신호는 “1”을 취하게 된다. 이 시간은 제19도에서 P로 도시되어 있다. 이 시간동안에는, 기록데이터가 데이터 버스 DB를 통해 운반되며 트랜지스터(1052)를 거쳐 신호라인(1034)에 전달된다. 클럭 G1 및 G2에 의하여 신호라인(1034)의 신호는 동적 인버어터(1042) 및 인버어터(1044)를 거쳐 신호라인(1036)에 전달된다. 이러한 방법으로, 데이터버스 DB의 데이터는 트랜지스터(1052)를 통하여 래치회로에 전달된다.
데이터를 시프트 레지스터에 전달하기 위해서는, 데이터 버스 DB의 신호가 래치회로의 신호라인(1038)에 전달되었을때 신호 G4SET를 발생시켜 트랜지스터(1054)를 “on”상태로하여 데이터를 신호라인(1030)에 전달하면, 이 데이더는 클럭 G3 및 G4에 의하여 출력 SOUT로 이동해간다.
제19도 및 제20도를 참조하면서 제12도의 회로의 데이터 판독동작을 설명하기로 한다. 클럭 G1에 의하여 트랜지스터(1027),(1029)가 “on”상태로 되어있기 때문에 시프트레지스터의 신호는 시프트회로의 신호라인(1032)에 보전된다. 신호 G2MOVE에 응동하여 신호라인(1032)의 신호는 트랜지스터(1050)를 통하여 신호라인(1034)에 이동된 후, 클럭 G1 및 G2에 의하여 신호라인(1036)으로 더욱 이동한다. CPU로부터 제어버스 및 번지버스를 통하여 보내진 신호에 의하여 만들어지는 신호 RCS(read chip select)가 발생될때, 트랜지스터(1054)가 “on”상태로 되므로 신호라인(1036)에 보전된 신호는 데이터버스 DB로 이동된다.
이러한 방법으로 시프트회로의 신호가 독출된다. 제12도의 회로가 병렬로 여러개 배열되면, 그 기본구조인 제16도의 회로는 행렬(matrix)형태로 규칙적으로 나열되며, 클럭 G1∼G4와 데이터버스 DBO∼DB7 그리고 신호라인 G2MOVE, G4SET, WCS 및 RCS는 규칙적으로 알루미늄 도선에 의하여 연결된다.
제22a도 및 제22b도는 신호 G4SET, G2MOVE, 및 RCS의 발생회로를 도시한 것이며, 제23도는 이의 동작 설명도이다. 제22A도는 기록호출(write access)에 대한 신호 G4SET를 발생시키는 회로를 도시한 것이다. 판독/기록신호(R/W)는 본 발명에서 사용되고 있는 M-6800마이크로 컴퓨터에 의하여 만들어진 신호일수도 있다.
저레벨의 R/W신호는 기록호출을 나타내는 반면, 고레벨은 판독호출(read access)을 나타낸다. 기호
Figure kpo00014
는 보통 고레벨)부논리)상태로 된 칩 선택신호이며, FF100은 D형 플립플롭을 나타낸다. 플립플롭(FF100)은, 스트로브 입력(strobe input:ST)에 인가되는
Figure kpo00015
는 트리거시간에 입력된 D입력을 래치한다. 즉 FF100은
Figure kpo00016
의 전연시간에 D입력을 세트시키고, 이 세트 조건에 의하여 신호 G4SET가 결정된다. D입력에는 NOR게이트의 출력에서 나온
Figure kpo00017
와 R/W의 NOR함수가 인가된다. 즉 플립플롭(FF100)의 출력
Figure kpo00018
Figure kpo00019
의 전연시간에 신호 R/W 및
Figure kpo00020
에 의하여 결정된다.
제23도의 시간 A동안에는, 신호
Figure kpo00021
및 R/W가 모두 0이므로 NOR 게이트의 출력은 “1”이 된다.
따라서 플립플롭의 출력
Figure kpo00022
는 클럭
Figure kpo00023
의 전연시간에 “0”이 된다. 다음시간 B동안에는, 신호
Figure kpo00024
및 R/W가 모두 “1”이므로 NOR게이트의 출력은 “0”이 된다. 따라서 플립플롭의 출력
Figure kpo00025
는 클럭의 전연시간에 “1”이 된다., 신호 G4SET의 상태는 출력
Figure kpo00026
및 클록
Figure kpo00027
에 의하여 NOR 게이트를 통해 결정된다.
제22b도는 판독호출용 신호 G2MOVE 및 신호 RCS를 발생하는 회로를 도시한 것이다. 신호 R/W 및
Figure kpo00028
는 NOR 게이트를 통하여 AND 게이트의 1입력 및 플립플롭(FF101)의 D입력에 인가된다. 클록 ø1은 AND 게이트의 다른 1입력 및 플립플롭(FF101)의 ST 입력에 인가된다. 플립플롭(FF101)의 출력
Figure kpo00029
는 ø1와 함께 NOR 게이트에 인가되며, 이 NOR 게이트는 출력 RCS를 작출한다. 따라서 신호 G2MOVE의 상태는 신호 R/W,
Figure kpo00030
및ø1의 상태에 의하여 결정된다. 더우기 플립플롭(FF101)의 출력
Figure kpo00031
에 대한 상태는 ø1(또는 G2)의 전연시간에 R/W 및
Figure kpo00032
의 상태에 의하여 결정된다. 신호 RCS는 출력
Figure kpo00033
와 클럭에 의하여 결정된다.
제24도는 제12도의 가감회로가 상세하게 도시되어 있으며, 제25도는 이의 동작 설명도이다. 신호 Qi는 시프트레지스터의 최하위비트(LSB)의 시프트회로에서 밖으로 이동된 1-비트 신호이다. 이 입력에 응동하여 가감회로(1008)의 출력은 단자 QOi에서 시프트레지스터의 최상위비트(MSB)로 이동한다. 가감회로(1008)가 감쇠계로 작용할때 입력과 출력 사이의 관계는 전기한 부울식(7),(8),(9),(10)에 의하여 정의되며, 이를 다시 써보면 다음과 같다.
Figure kpo00034
가감회로(1008)가 증가계(incrementer)로서 작용할때는, 입력 및 출력간의 관계는 다음과 같이 주어진다.
Figure kpo00035
감소동작시 신호 IEC=1이고 INC=O인데, 증가동작시에는 INC=1이고 DEC=O가 된다. 식(7),(8)과 식(11),(12)로부터 알 수 있는 바와 같이, 가감회로의 입력 및 출력간의 관계는 증가동작시나 감소동작시나 동일하게 된다.
제12도에 도시한 8-비트시프트레지스터에 있어서, LSB 비트 신호는 먼저 Qi로서 가감회로에 인가된다.
시프트동작의 개시를 표시하는 타이밍 1마다 동기회로로부터 신호 GC가 제공된다.
제24도의 동적인버어터(1076),(1088)는 자리올림 Ci 발생회로(1092)를 구성한다. 제1신호 GC가 로레벨인 시간에 AND 게이트(1080)는 도통상태가 되고 AND 게이트(1078)는 차단상태가 되므로, 신호 CIN이 독입되는 것이다. 즉, 제1신호 GC의 시간에는 신호 CIN이 자리올림으로서 간주되며, 제2 및 후속신호 GC의 시간에는 자리올림들이 식(10) 또는 (14)에 따라 논리적으로 결정된다. 그 이유는 AND 게이트(1080)가 차단되고 AND 게이트(1078)이 도통상태가 되어, 이전시간에서 얻어진 자리올림 출력 C(i-1)이 NOR 게이트(1088)에 인가되기 때문이다. NOR 게이트(1088)는 이전자리올림 C(i-1)과 논리연산회로(1090)를 통해 인가되는 새로운 데이터 Qi를 비교하여, 자리올림 C(i-1)=O일때는 출력 Ci=O를 작출함으로써 자리올림 동작을 수행하지 않는다. 자리올림 C(i-1)=1이고 새로운 데이터 Qi=1일때 NOR 게이트는 출력 Ci=1을 작출하여 자리올림 동작을 수행한다.
논리연산회로(1090)는 식(7) 또는 (8)로 표시되는 입력데이터 Qi와 자리올림 C(i-1)을 근거로 배타 논리합 연산을 수행한다. 인버어터(1072)의 출력은 배타적 논리합 연산의 결과 QOi로서 얻어진다.
O검출회로(1094)는 출력신호 QOi를 적산하여 적산치 Zm 또는 Zs를 발생시킨다. 즉, O검출회로는
Figure kpo00036
QOi의 동작을 수행하는데, 이 경우 N은 8이 된다. 출력신호 QOi는 신호 Zm과 함께 NOR 게이트(1084)에 인가된다. NOR 게이트의 출력은 클럭 G2 시간에 트랜지스터(1062)를 통하여 인버어터(1076)의 출력으로 전달되어, 인버어터(1077)와 트랜지스터의 사이에 있는 라인에 신호 Zs로서 보전된다. 이 신호 Zs는 클럭 G4 시간에 트랜지스터(1064)를 통하여 AND 게이트(1076)의 출력에 전달되어 그 안에서 신호 Zm으로 보전된다.
트랜지스터(1056), (1058) 및 인버어터(1068), (1070)는 식(7), (8), (11) 및 (12)에 대한 논리연산회로(1090)를 구성한다. 이는 자리올림 발생회로의 출력 C(I-1)에 의존하여 인버어터로써 입력신호의 반전(inversion)을 제어한다. 클럭 G3 및 G4 시간에는, 출력신호 QOi가 신호 C(i-1) 및 입력 Qi에 의해 결정된다. 출력 QOi는 또한 AND 게이트(1076),(1082)와 NOR 게이트(1084) 그리고 트랜지스터(1062) 및 인버어터(1077)로 구성되는 O검출회로(1094)에 보내진다.
클럭 G1 및 G2의 시간에는, CIN 및 QO(또는
Figure kpo00037
)로 표현되는 신호
Figure kpo00038
가 식(9) 또는 (13)에 따라 자리올림을 발생시키는 동적 NOR 게이트(1088)로 인가된다. 감소동작시에는, 트랜지스터(1060)가 신호 DEC에 의하여 “on” 상태로 되며 신호 QO이 NOR 게이트(1088)에 인가된다. 증가동작시에는, 신호 INC가 트랜지스터(1061)를 “ON“ 상태로 만들어 주므로 신호
Figure kpo00039
가 NOR 게이트(1088)에 인가된다. 따라서 동적 NOR 게이트(1088)의 출력 Ci는 식(9) 또는 (13)으로 표현되는 값을 갖게 된다. 0 검출회로에서는, 출력 QOi가 클럭 G2의 시간에 Zs로서 보전된다.
다음 타이밍 2에서는, 신호 GC가 0이 되어 AND 게이트(1080)가 “OFF” 상태로 되는반면 AND 게이트(1078)는 “on”상태로 된다. 따라서 신호 Ci는 AND 게이트(1078) 및 NOR 게이트(1086)를 통하여
Figure kpo00040
로서 보전된다. 한편 다음 비트는 입력 Qi로서 인가된다.
Figure kpo00041
및 입력 Qi는 출력 QOi를 작출하는 논리연산회로(1090)에 인가된다. 출력 QOi는 시프트레지스터에 귀환되는 동시에 0 검출회로(1094)에도 보내진다. 클럭 G1 및 G2 시간에는 자리올림 발생회로가 입력 Ci 및 Qi 저장된 자리올림
Figure kpo00042
를 근거로 동적 NOR 게이트(1088)에 의하여 발생된다. 신호 Zs는 클럭 G2의 시간에 출력 QOi 및 보전된 신호 Zm을 근거로 발생된다. 타이밍 3∼7에서는, 상기 동작이 반복 수행되어 시프트레지스터에 보전된 데이터가 증가 또는 감소하게 된다. 다음 타이밍 1에서는, 0검출회로가 보전된 신호 Zs를 출력 Zo로서 작출시킨다. GC의 시간에
Figure kpo00043
가 0이면 시프트레지스터에 보전된 데이터가 모두 0임을 의미한다.
신호 GC가 발생되는 타이밍 1의 시간에 신호 CIN(=0)가 인가되면,
Figure kpo00044
는 “1”이 되고 입력데이터가 가감되지 않은채 그대로 송출된다.
제25도에 도시한 신호
Figure kpo00045
Qi, QOi 및 Ci의 “0”, “1” 표시는, 데이터 “10001100”을 보유하고 있는 시프트레지스터에 대하여 감소동작이 행하여졌다는 가정하에서 만들어진 것이다. 타이밍 1∼8이 발생된 후 시프트레지스터의 내용은 “10001011”로 변하게 된다.
제26도의 회로는 제4도의 CABC(162), FSC(172) 및 EGRC(178)에 의하여 공용되는 회로이다. 동기펄스발생회로(1096)는 제4도의 CABP, FSCP 및 RGRP에 해당한다. 충격펄스(Duty Pulse) 발생회로(1098)는 CABD, FSCD 및 EGRD에 해당한다.
펄스주기데이터 및 충격계수데이터는 각각 회로(1096) 및 (1098)에 세트된다. 제27도는 제26도의 동작파형도이다. 회로(1096) 및 (1098)의 상세도는 제12도에 도시되어 있으며, 이의 기본동작을 상기한 바와 같다. 신호 Zp 또는 G4SET에 응동하여, 회로(1096) 및 (1098)를 구성하는 래치레지스터로부터 시프트레지스터로 데이터가 이동된다. 동시에 플립플롭(1100)은 신호 Zp에 의하여 세트된다. 래치레지스터내의 데이터는 출력으로서 CPU로부터 송출된다. 제24도 및 25도를 참조하여 위에서 설명한 바와 같이, 클럭 ø1및 ø2가 시프트레지스터의 비트 갯수만큼 즉, 8번 발생되었을때, 시프트레지스터의 데이터 감소동작의 1싸이클이 완료된다. 바로 이때 GC가 발생된다. 회로(1096) 및 (1098)의 시프트레지스터와 가감회로는 상기 신호 GC에 동기하여 감소동작을 수행한다. 회로(1098)의 시프트레지스터의 내용이 0이 되었을때 0검출회로는 신호
Figure kpo00046
를 저레벨(“0”)로 만들고, 플립플롭(1100)은 신호 ZD에 의하여 리세트된다.
회로(1096)의 시프트레지스터의 내용이 0이 될때, 0검출회로는 신호
Figure kpo00047
를 저레벨로 만들고, 신호 ZP가 발생된다. 플립플롭(1100)이 다시 신호 ZP에 의하여 세트됨으로써, 신호 G4SET가 회로(1096) 및 (1098)에 인가된다. 그 결과, 데이터는 다시 래치스터로부터 시프트레지스터로 이동하여 격납된다. 이러한 방법으로 CPU에 의해 격납된 데이터를 근거로 결정되는 충격계수를 가진 펄스가 플립플롭(1100)에서 발생된다. 제24도에 도시한 3개의 회로는 제4도의 CABC(162), FSC(172) 및 EGRC(178)를 구성한다. 제28도는 제4도에 도시한 IGNC(164)의 상세도이다. ADV 펄스발생회로(1102)는 제4도에 도시한 ADV 레지스터의 기능을 가지며, DWL 펄스발생회로(1104)는 제4도의 레지스터의 기능을 가지고 있다. ADV 펄스발생회로(1102) 및 DWL 펄스발생회로(1104)의 상세도는 제12도에 도시되어 있다.
ADV 데이터 및 DWL 데이터는 CPU에 의하여 처리된 다음 ADV 펄스발생회로(1102) 및 DWL 펄스발생회로(1104)로 격납된다. 제29도에 도시한 바와 같이, ADV 데이터는 기준크랭크각도신호 INTDP와 점화위치 사이에 있는 펄스 POS의 갯수를 나타내며, DWL 데이터는 점화위치와 다음 점화를 위한 점화코일 급전개시점 사이에 있는 펄스 POS의 갯수를 나타낸다. 제27도에 도시한 신호 IGNOUT가 발생되어 있는 동안, 점화코일에는 전류가 흐르게 된다.
펄스 INTDP는 신호 G4SET로서 ADV 펄스 발생회로에 인가된다. 그리하여 ADV데이터는 래치레지스터로부터 시프트레지스터로 이동하게 된다. 상기 펄스 INTDP는 또한 신호 CIN으로서 OR 게이트(1108)를 통하여 인가된다. 이때 입력 DEC는 “1”이고 입력 INC는 “0”이므로 감소동작이 개시된다. 시프트레지스터의 내용이 0로 될때까지 고레벨인 신호 CIN이 출력
Figure kpo00048
로부터 OR 게이트(1108)를 통하여 인가된다.
신호 SPOSP는 단자 GC에 인가된다. 이 신호는 GC의 시간에 크랭크 각센서의 펄스 POS를 근거로 만들어진다. ADV 펄스발생회로의 시프트레지스터는 신호 SPOSO에 응동하여 감소동작을 수행한다.
ADV 시프트레지스터의 내용이 0으로 될때, 출력 ZO는 저레벨이 되며, 인버어터(1118)를 통하여 인가되는 신호 SPOSP에 응동하여 NOR 게이트(1114)는 플립플롭(1120)을 리세트시키는 출력 ADVP를 작출한다. 그결과 신호 IGNOUT가 멈추게 된다. 따라서 제4도에 도시한 점화장치(170) 내의 점화코일의 1차권선을 흐르는 전류가 차단되므로 점호가 발생된다.
제29도 및 30도에 도시한 바와같이, DWL 펄스 발생회로는 점화시간을 나타내는 출력 ADVP로부터 감소동작을 개시시킨다. 따라서 출력 ADVP가 신호 G4SET로서 인가될때, 데이터는 DWL 펄스발생회로(1004) 내의 래치회로로부터 시프트레지스터로 이동한다. DWL 펄스발생회로 내의 신호 DEC는 “1”이고 신호 INC는 “0”이므로, 감소동작을 지시하는 신호 CIN은 신호 ADVP의 시간에 OR 게이트(1112)를 통하여 인가되며, 시프트 레지스터의 내용이 0으로되어 0검출회로의 출력 ZO이 고레벨에서 저레벨로 될때, 신호 DWLP가 신호 SPOSP의 시간에 NOR 게이트(1116)로부터 작출되며 플립플롭(1120)이 세트된다. 그결과 신호 IGNOUT가 발생하여 점화코일의 1차권선에 전류가 흐른다.
상술한 바와같이, 플립플롭(1120)은 펄스발생회로(1102)의 출력에 의하여 라세트되므로 점화코일의 1차코일에 흐르는 전류는 차단되어 점화가 발생한다.
제31도는 제28도의 입력신호 INTDP 및 SPOSP를 발생시키는 회로를 도시한 것이며, 이의 동작타이밍은 제30도에 도시되어 있다. 신호 REF 및 POS는 제4도에 도시한 센서(146)로부터 송출된다. 엔진의 기준 크랭크각도 신호인 REF는 엔진의 실린더수에 의하여 결정되는 각도 즉, 4실린더 엔진에 대해서는 180°마다 6실린더 엔진의 경우에는 120°마다 그리고, 8실린더엔진의 경우에는 90°마다 발생되는 펄스열(Pulse train)이다. 신호 POS는 1°의 크랭크각마다 발생되는 펄스열이다. 이 펄스들은 엔진회전에 동기되어 있기 때문에 회로의 내부클럭에 대해서는 비동기된다.
신호 REF는 D형 플립플롭(1122)에 인가되는 반면, 신호 POS는 D형 플립플롭(1126)에 인가된다. 이 D형 플립플롭(1122) 및 (1126)은 클럭GC에 응동하여 출력을 작출한다. D형 플립플롭(1124) 및 (1128)은 클럭 ø(ø1또는 ø2)에 동기될 수도 있으나, 본 실시예에서는 내부신호 GC에 동기되어 있다. 신호 SREFP는, 입력신호(기준각도펄스) REF가 상승된 후 제1클럭 ø의 신호 GC의 시간에 NOR 게이트(1130)의 출력에서 작출된다. 배타논리합 게이트(1132)의 출력 SPOSP는, 입력신호(각도펄스) POS가 상승된 후의 제1GC의 시간과 압력신호 SPOS가 하강된 후의 제1GC의 시간에 작출된다. 그결과, 신호SPOSP는 0.5°의 크랭크 각도마다 펄스 POS로부터 발생되는데, 이 펄스 PoS는 1°의 크랭크 각도마다 발생된다.
INTL 펄스 발생회로(1042)는 신호 SREFP에 의하여 제어에 필요한 기준크랭크 각도신호 INTDP를 발생시킨다. 신호 SREFP가 신호 G4SET로서 INTL 펄스 발생회로(1042)에 인가될때, 데이터는 래치회로로부터 시프트레지스터로 이동하여 격납된다. 이 데이터는 신호 SREFP와 기준신호 INTDP간의 위상차를 나타낸다. 그다음, 시프트 레지스터는 OR 게이트(1036)을 통하여 GC에 인가된 신호 SPOSP에 응동하여 감소동작을 수행하며, 상기 시프트레지스터의 내용이 0으로 될때, 출력 ZO는 저레벨이 되는 한편 신호 INTDP는 신호 SPOSP에 동기하여 NOR 게이트(1040)를 통하여 송출된다.
제33도는 엔진회전속도 검출회로를 도시한 것이며, 제34도는 이의 동작을 설명하는 파형도이다.
주기펄스 발생회로 RPMT(1050)의 주기를 결정하기 위한 데이더는 CPU로부터 RPMT의 래치회로에 격납된다. 회로 RPMT의 출력 ZO에 의존하는 NOR 게이트(1044)의 출력 RPMTP는 신호 G4SET로서 RPMT 회로(1050)에 인가되므로, 데어터가 신호 RPMTP에 응동하여 RPMT 회로의 래치레지스터로부터 시프트 레지스터에 격납된다. ″1″이 신호 CIN으로서 항상 인가되므로, 회로 RPMT(1050)의 시프트레지스터는 GC에 인가되는 클럭 CLK에 응동하여 감소동작을 수행한다. 제34도에 도시한 바와 같이, 회로 RPMT 내의 시프트 레지스터의 내용이 0으로 될때, 0검출회로는 신호 ZO를 저레벨로 만들며 NOR게이트(1044)에서는 고레벨의 신호 RPMT가 작출된다. 이 신호 RPMT에 응동하여, 데이터가 RPMT 회로(1050)의 래치레지스터로부터 시프트레지스터에 격납된다.
따라서 신호 RPMTP는 CPU에서 이동되어 온 데이터에 의하여 결정되는 주기로 NOR 게이트(1044)에서 작출된다. 펄스 계수회로 RPMD(1052)의 시프트레지스터는 신호 RPMTP의 주기로 발생되는 신호 SPOSP를 계수하며, 신호 RPMTP에 응동하여 이 계수치를 다시 시프트레지스터에 래치레지스터로 보낸다. 그결과, 회로 RPMD의 시프트레지스터의 내용은 지연회로(1048)를 거쳐 이송되어온 신호 RPMTP에 의하여 리세트된다. RPMTP 회로는 단자 DEC에서 ″0″을 단자 INC에서 ″1″을 수납하므로 증가동작을 행한다. 증가동작 시간은 단자 GC에 인가되는 신호 SPOS에 의하여 결정된다.
따라서 RPMD 회로의 시프트레지스터는 소정주기 즉, 신호 RPMTP의 주기동안 신호 SPOSP의 적산된 계수치를 부유한다. 이 계수치는, 신호 G2MOVE로서 회로 RPMD에 인가되는 신호 RPMTP에 응동하여 시프트레지스터로부터 래치레지스터로 이동되어 격납되므로, 회전속도를 나타내는 데이터를 얻기 위해서는 CPU에 의해 래치 레지스터에 격납된 데이터를 판독하면 된다.
제35도는 본 발명이 적용된 연료분사 장치를 도시한 것이다. CYL 펄스발생회로(1070)는 신호 SREFP를 계수한다. 예컨데 6실린더 엔진의 경우, 제34도에 도시한 바와같이 3개의 SREFD 신호가 계수될때 마다 하나의 CYLP 신호가 발생한다. 이 계수치는 실린더수에 따라 다르며, 이는 CPU에서 송출되어 CYL 회로의 래치레지스터에 보전된다. 소정갯수의 신호가 발생되어 신호 CYLP로서 인가될때, 래치레지스터내의 데이터는 시프트레지스터로 격납된다.
데이터는 신호 INTDP에 응동하여 감소되는데, 그때마다 시프트레지스터의 내용이 0으로 되고 출력 ZO는 저레벨이 된다.
신호 CYLP는 신호 SREFP의 시간에 NOR 게이드(1054)를 통하여 작출된다. 플립플롭(1068)은 신호 CYLP에 의하여 세트된다. 연료분사시간을 나타내는 데이터는 CPU에서 INJ 펄스발생회로로 격납된다. 이 데이터는, 신호 G4SET로서 인가되는 신호 CYLP에 응동하여 시프트레지스터로 격납된다. 이 데이터는 OR 게이트(1060)를 거쳐 GC에 인가되는 신호 CLK2에 응동하여 감소된다. 신호 CLK2 대신에 클럭 GC가 인가되면, 감소동작은 클럭 GC에 따라 수행된다.
제36도에 도시한 바와 같이, INJ 데이터에 관계되는 시간은 신호 CYLP에 응동하여 측정되기 시작한다.
INJ 데이터가 클럭 CLK2를 따르는 감소동작에 의하여 0으로 될때, 출력 ZO는 저레벨이 되고 신호 INJP는 NOR 게이트(1058)를 거쳐 플립플롭(1068)의 리세트단자에 인가되어 플립플롭(1068)을 리세트 시킨다. 그결과, 플립플롭(1068)의 출력 INJOUT는 CPU로부터 격납되어진 INJ 데이터에 의존하여 신호를 작출한다.
출력신호는 증폭회로(1074)에 의하여 증폭된 다음 분사기(1076)에 인가됨으로써 연료를 분사시킨다.
제37도는 발진기(1078)로부터 신호 ø1및 ø2를 발생시키는 신호발생회로이다.
클럭 G1∼G4는 제25도에 도시한 바와같이 상기 신호들로부터 분주회로(分周回路)(1080)에 의하여 작출되며, 신호 GC 역시 분주회로(1082)에 의하여 작출된다. 분주회로(1082)의 출력 GC는 다시 분주회로(1084) 및 (1086)에 의하여 분할되어 타이밍 펄스 CLK1 및 CLK2로 작출된다.
제38도는 제12도에 도시한 기본회로써 구성되는 입/출력 변환회로(제4도)의 일 실시예를 나타낸다.
레지스터 CABD,CABP,ADV,DWL,FSCD,FSCP,EGRD,EGRP,RPMT,RPMD와 관련되는 가감회로(1008) 및 검출회로(1009)는 규칙적으로 배열된다. 각각의 레지스터는 8비트로 구성되며, 클럭 G1∼G4 및 제어신호 WCS,RCS,G4SET 및 G2MOVE는 개개의 비트에 인가된다.
제어신호 INC,DEC,GC 및 CIN는 가감회로에 인가된다.
본 발명에 따라, 펄스변환회로 및 계수회로는 간단한 소자들로 구성되는 시프트레지스터 및 가감회로에 의하여 제작되므로, 이들은 규칙적으로 배열되며 발열량이 적게된다. 더우기 동적소자(dynamice lement)를 본 실시예에서 도시한 바와 같이 사용할 수 있다. 이러한 경우, 발열량이 종래의 디지탈 엔진제어회로의 발열량의 1/2로 줄어든다.
아울러 상기한 소자들은 규칙적으로 배열되므로, 집적효율이 증가하게 되고 크기도 종래장치의 거의 1/2로 축소된다.
한편 제38도에 도시한 바와같이 데이터 버스의 비트라인의 배열을 다층화(multi-layer)할수 있으므로, 데이터 버스 영역이 함입되어 집적효율이 더욱 증가하게 된다.
제11도에 도시한 엔진정지 검출회로 및INTV 개입중단회로도 유사한 방식으로 제12도의 기본소자로 제작할수 있다.

Claims (1)

  1. 적어도 하나의 엔진상태가 검출되고, 검출된 엔진상태를 근거로 하여 엔진을 제어하는 제어계의 기준치가 계산되며, 계산된 기준치에 따라 제어펄스 신호가 발생되어 상기한 제어계에 인가됨으로써 엔진이 상기한 기준치에 따라 제어되는 엔진 제어장치에 있어서,
    상기 기준치에 따라 제어펄스 신호를 발생시키는 장치가 소정의 시간경과마다 발생되는 클럭신호를 발생시키는 클럭신호 발생회로와 다수의 펄스신호 발생회로로 구성되며,
    상기한 펄스신호 발생회로의 구성이, 상기 기준치가 디지탈 신호형태로 격납되며 클럭신호 발생회로로부터 클럭신호가 인가되는 시프트 레지스터와,
    입력신호를 소정치에 준하여 가감시키는 가감회로와, 시프트레지스터의 내용을 검출하는 검출회로 그리고, 시프트 레지스터의 입, 출력을 가감회로를 통하여 페루우프 형태로 접속시키는 데이터 전송회로로 이뤄지는 것에 의해, 시프트레지스터의 내용이 가감회로에서 가감된 후 다시 시프트레지스더에 격납되고 검출회로가 시프트레지스터의 내용이 소정치에 달할때를 검출하여 제어펄스 신호를 만들어서 검출지점으로 보내는 엔진 제어장치.
KR1019810000615A 1981-02-25 1981-02-25 엔진 제어 장치 KR840001367B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019810000615A KR840001367B1 (ko) 1981-02-25 1981-02-25 엔진 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019810000615A KR840001367B1 (ko) 1981-02-25 1981-02-25 엔진 제어 장치

Publications (2)

Publication Number Publication Date
KR830005676A KR830005676A (ko) 1983-09-09
KR840001367B1 true KR840001367B1 (ko) 1984-09-20

Family

ID=19220295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019810000615A KR840001367B1 (ko) 1981-02-25 1981-02-25 엔진 제어 장치

Country Status (1)

Country Link
KR (1) KR840001367B1 (ko)

Also Published As

Publication number Publication date
KR830005676A (ko) 1983-09-09

Similar Documents

Publication Publication Date Title
US4163282A (en) Electrical control method and apparatus for combustion engines
US4476532A (en) Method and apparatus for controlling the duty cycle of an off-on type valve by monitoring the history of the state of the valve
EP0017219B1 (en) Electronic type engine control method and apparatus
US4242728A (en) Input/output electronic for microprocessor-based engine control system
JPS623303B2 (ko)
JPS6360220B2 (ko)
US4482962A (en) Engine control method
US4469072A (en) Method and apparatus for controlling the fuel-feeding rate of an internal combustion engine
EP0050364B1 (en) Method for controlling an internal combustion engine
US4363097A (en) Electronic type engine control method
JPS623304B2 (ko)
US4244339A (en) Method and system to control ignition timing of an internal combustion engine in dependence on an exhaust gas composition signal
GB2027944A (en) Electronic engine control apparatus
JPS6315465B2 (ko)
JPH0112931B2 (ko)
JPS6224616B2 (ko)
EP0092828B1 (en) Fuel injection control apparatus for internal combustion engine
KR840001367B1 (ko) 엔진 제어 장치
US4428051A (en) Electronic control apparatus for internal combustion engine
US4561056A (en) Electronic control apparatus for internal combustion engine
JPS627373B2 (ko)
JPS5974339A (ja) 燃料噴射装置
US4522178A (en) Method of fuel control in engine
JPS57206738A (en) Electronic fuel injection controller of internal combustion engine
KR840000733B1 (ko) 내연기관의 제어장치