KR850000933B1 - 엔진 제어 방법 - Google Patents

엔진 제어 방법 Download PDF

Info

Publication number
KR850000933B1
KR850000933B1 KR1019810000535A KR810000535A KR850000933B1 KR 850000933 B1 KR850000933 B1 KR 850000933B1 KR 1019810000535 A KR1019810000535 A KR 1019810000535A KR 810000535 A KR810000535 A KR 810000535A KR 850000933 B1 KR850000933 B1 KR 850000933B1
Authority
KR
South Korea
Prior art keywords
task
engine
output
interruption
air
Prior art date
Application number
KR1019810000535A
Other languages
English (en)
Other versions
KR830005475A (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 KR1019810000535A priority Critical patent/KR850000933B1/ko
Publication of KR830005475A publication Critical patent/KR830005475A/ko
Application granted granted Critical
Publication of KR850000933B1 publication Critical patent/KR850000933B1/ko

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/02Circuit arrangements for generating control signals
    • F02D41/18Circuit arrangements for generating control signals by measuring intake air flow
    • F02D41/182Circuit arrangements for generating control signals by measuring intake air flow for the control of a fuel injection device
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/0002Controlling intake air

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (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도는 제1도의 점화 장치의 회로도.
제3도는 배기가스 재순환계의 설명도.
제4도는 엔진 제어계의 총 블록선도.
제5도는 엔진 제어방법의 일 실시예를 위한 프로그램 시스템의 기본 배열을 나타낸 블록선도.
제6도는 타스크분배기에 의하여 제어되는 RAM에 내장된 타스크 제어블록표를 나타내는 도면.
제7도는 다수의 개입중단에 의하여 시동되는 타스크 군(群)에 대한 시동 번지표를 나타내는 도면.
제8도 및 제9도는 타스크 분배기의 처리순서를 나타내는 순서도.
제10도는 매크로 처리 프로그램의 처리순서를 나타내는 순서도.
제11도는 타스크 순위 제어를 나타내는 도면.
제12도는 타스크 순위 제어시 타스크의 상태 천이도.
제13도는 제5도의 실시예를 나타내는 블록선도.
제14도는 RAM에 내장된 스프트 타이머표를 나타내는 도면.
제15도는 INTV개입 중단처리 프로그램의 처리순서를 나타내는 순서도.
제16도는 다수의 타스크의 기동 및 정지가 엔진의 동작상태에 의거하여 수행되는 상황을 나타낸 파형도.
제17도는 개입중단 발생기의 블록회로도.
제18도는 INJ프로그램의 순서도.
제19도는 IGNCAL프로그램의 순서도.
제20도는 ISC프로그램의 순서도.
제21도는 EGRCAL프로그램의 순서도.
제22도는 공기 유량센서의 출력을 검지하기 위한 샘플링시간(sampling time)을 나타내는 파형도.
제23도는 개입중단 처리 프로그램의 처리순서를 나타내는 순서도.
제24도는 RAM의 데이터 영역을 나타내는 도면.
제25도는 제23도의 순서도의 동작에 관계되는 ROM의 데이터 영역을 나타내는 도면.
제26도는 ADIN 2프로그램의 순서도.
제27도는 공기 유량센서의 실시예를 나타낸 블록선도이다.
본 발명은 엔진 제어방법, 구체적으로 말하면 마이크로 컴퓨터를 사용한 자동차의 엔진 제어방법에 관한 것이다. 최근에는 엔진의 제어기능을 향상시킬 목적으로 마이크로 컴퓨터를 이용한 엔진의 총합적 제어가 행해지고 있다. 자동차의 제어에 있어서는 그 차종 및 용도에 따라 엔진에 필요한 제어기능은 다양하므로, 마이크로 컴퓨터를 사용한 엔진 제어시스템에서는 엔진 제어장치를 작동시키는 소프트웨어는 차종 및 용도가 변하더라도 공통적으로 사용할 수 있고, 또는 차종 및 용도의 변경에 따라 제어 기능의 수정, 변경 및 추가가 가능한 것이 가격면 또는 제어성의 향상이라는 관점에서 요청된다.
종래 내연기관이 흡입하는 공기량은 원가절하가 가능하다는 점에서 열 센서가 사용되는 경향이 있었다.
그러나 엔진흡입공기량은 일정하지 않고, 맥동하고 있으며, 또한 유량센서로 부터의 출력신호는 흡입공기의 흐름에 대하여 비선형 관계를 가지며 응답속도가 빠르다.
이때문에 센서로 부터 샘플링된 흡입공기량은 정확한 값을 나타내지 못한다.
또 엔진의 제어소프트웨어가 전체적으로 복잡하고, 자동차의 종류 및 용도 변경에 따른 소프트웨어의 수정이 곤란하였다.
본 발명의 목적은 엔진의 회전에 따라 엔진을 정확하게 제어할 수 있는 엔진제어 방법을 제공하는데 있다.
본 발명에서는 엔진의 회전에 동기(同期)하여 흡입공기량의 샘플링 타이밍을 결정하고 각 샘플링 타이밍에 의거한 순시 흡입공기량을 계측하여 복수의 순시 흡입공기량으로 부터 엔진으로의 흡입공기량을 연산하고, 이 연산결과에 의거하여 제어신호를 만들어 내고 있기 때문에 정확하게 엔진을 제어할 수가 있다.
또 이하에 나타낸 실시예에서는, 엔진제어소프트웨어가 예를 들면 흡입공기량의 검출 소프트웨어나 연료 공급량연산 소프트웨어등의 기능별 소프트웨어로 분할되어 있으며, 각 분할된 소프트웨어가 각각 독립적으로 기동되기 때문에 소프트웨어의 수정이나 변경이 용이하다.
다음 본 발명을 첨부도면을 참고하여 상세하게 설명한다. 제1도에서 흡입공기는 공기여과기(2), 트로틀챔버(4) 및 흡입관(6)을 통하여 실린더(8)에 공급된다. 실린더(8)에서 연소된 가스는 대기관(10)을 통하여 대기중으로 배출된다. 드로틀챔버(4)에는 연료를 분사하기 위한 분사기(12)가 설치되어 있다. 분사기(12)로 부터 분사된 연료는 드로틀챔버(4)의 통기로내에서 흡입공기와 혼합되어 무화(霧化)되어 혼합기를 형성한다. 히 혼합기는 흡기관(6)을 지나 흡기밸브(20)의 개변(開弁)에 의해 실린더(7)의 연소실에 공급된다.
분사기(12)의 제트부 근처에는 드로틀챔버(14)(16)가 설치되어 있다.
드로틀밸브(14)의 구조는 운전자에 의하여 작동되는 가속폐달에 기계적으로 연동할 수 있도록 구성되어 있다.
한편 드로틀밸브(16)는 다이아프래임(18)에 의하여 구동되도록 배치되고 공기유량이 작으면 전폐상태가 된다.
공기유량이 증가함에 따라 다이아프래임(18)에 가해지는 부압이 증가하므로 이에 의하여 드로틀밸브는 점차 열리기 시작하여 흡입저항의 증가를 억제시킨다.
드로틀챔버(4)의 드로틀밸브(14), (16)의 상류에는 통기로(22)가 설치되어 있다. 이 통기로(22)에는 열형(熱型) 공기유량계를 구성하는 전열소자(24)가 설치되어 전열소자의 열전달량과의 관계로 부터 결저되는 공기유속에 따라 변화하는 전기신호를 발생한다. 이 발열소자(24)는 통기로 (22)내에 설치되어 있으므로 실린더(8)의 역화(逆化)시에 발생하는 고온가스로부터 보호됨과 동시에 흡입공기중의 먼지 등에 의한 오염으로 부터 보호된다.
이 통기로(22)의 토출구는 벤튜리관(Venturi tube)의 협지부 근처에 개구되어 있고, 통기로(22)의 흡입구는 벤튜리관의 상류측에 개구되어 있다.
분사기(12)에 공급되는 연료는 연료탱크(30)로 부터 연료펌프(32), 연료댐퍼(34) 및 여과기(36)를 거쳐 연료압력조절기(38)로 공급된다. 한편, 가압된 연료는 연료압력조절기(38)로부터 파이프(40)를 통하여 분사기(12)에 공급된다. 분사기(12)로 부터 연료가 분사되는 흡기관(6)의 압력과 상기 분사기(12)로의 연료압력과의 차가 항상 일정하게 되도록 연료압조절기(38)로부터 연료탱크(30)에 귀환 펌프(42)를 거쳐 연료가 귀환(return)되도록 되어 있다. 흡기밸브(20)로부터 흡입된 혼합기는 피스톤(50)에 의하여 압축된 후 점화플러그(52)의 전극간에 발생되는 스파아크에 의하여 점화, 연소됨으로써 운동 에너지로 변환된다. 실린더(8)는 냉각수(54)에 의하여 냉각되고, 이 냉각수의 온도는 수온센서(56)에 의하여 계측되고, 이 계측값은 엔진 온도로 이용된다. 점화 플러그(52)에는 점화코일(58)로부터 점화 타이밍과 일치하는 고전압이 인가된다. 크랭크축(51)에는 엔진의 회전에 따라 기준 크랭크 각(예컨대, 180도) 및 일정각도마다(예컨대 0.5도)기준각, 위치신호를 발생하는 크랭크 각(角)센서(53)가 설치되어 있다. 이 크랭크 각 센서(53)의 출력, 수온센서(56)의 출력 및 전열소자(24)로 부터의 전기신호는 마이크로 컴퓨터 등으로 구성된 제어회로(64)에 입력되어 연산 처리된다. 분사기(12) 및 점화코일(58)은 제어회로(64)의 출력에 의하여 구동된다.
상기한 바와 같은 구성에 의하여 제어되는 엔진시스템에서, 드로틀챔버(4)에는 드로틀 챔버의 드로틀 밸브(16)를 가로질러 흡입관(6)에 연통하는 측로(26)에 설치된 측로밸브(62)의 개구각이 제어되도록 설치되어 있다.
제어회로(64)로 부터의 제어입력이 측로밸브의 구동부에 인가되므로 측로밸브(62)의 개폐제어가 수행된다.
측로밸브(62)는 드로틀밸브(16)을 우회하여 설치된 측로(26)에 면하여 있고, 펄스전류에 의하여 개폐가 제어된다. 이 측로밸브(62)의 기능은 밸브의 리프트(Lift)량에 따라 측로(26)의 단면적을 변화시키는 것이다.
이 리프트양은 제어회로(64)의 출력에 의해 구동계가 구동되어 제어된다. 즉, 제어회로(64)에서 구동계를 제어하기 위한 주기적인 개폐신호를 발생하고 구동계는 이 개폐주기신호에 의거하여 측로밸브(62)의 리프트량을 조절하기 위한 측로밸브(62)의 구동부의 구동부 제어신호를 보낸다.
제2도에서 플스전류는 증폭기(68)를 통하여 전력 트랜지스터(72)에 공급되고, 이 전류에 의하여 트랜지스터(72)는 "ON"상태가 된다. 따라서 축전지(66)로 부터 점화코일(58)의 1차권선에 전류가 흐른다. 이 플스 전류의 하강으로 트랜지스터(72)는 "OFF"상태가 되어 점화코일(58)의 2차권선의 양단간에는 고전압을 발생시킨다.
이 고전압은 배전기(70)를 거쳐 엔진의 각 실린더에 설치된 점화 플러그(52)에 엔진회전에 동기하여 배전된다.
제3도는 배기가스 재순환계(이하 "EGR"게라 칭함)을 설명한 것이다.
부압원(負壓源)(80)의 일정부압(負壓)이 압력제어밸브(84)를 통하여 제어밸브(86)에 가해진다. 압력제어밸브(84)는 트랜지스터(90)의 베이스 전극에 가해지는 반복 펄스의 "ON"듀티(duty)률에 따라 부압원의 일정부압을 대기(88)로 개방하는 비율을 제어함으로써 제어밸브(86)에 가해지는 부압의 인가상태를 제어한다. 따라서 제어밸브(86)에 가해지는 부압은 트랜지스터(90)의 "ON"듀티률에 의하여 결정된다. 배기관(10)으로부터 흡입관(6)으로 재순환되는 EGR량은 정압 제어밸브(84)에 의해 제어되는 부압에 의해 제어된다.
제4도는 제어시스템의 전체 구성되이다 CPU(104), ROM(102), RAM(106)및 입, 출력회로(108)등으로 구성되어 있다. CPU(104)은 ROM(102)에 기억된 각종의 프로그램에 따라 연산하고 그 연산결과를 다시 입, 출력회로(108)에 되돌려 보낸다.
이러한 연산에 필요한 중간 기억장치로서는 RAM(106)을 사용한다.
CPU(104), ROM(102), RAM(106)및 입, 출력회로(108)간의 각종 데이터 교환은 버스라인(110)에 의하여 행해지며, 이 버스라인(110)은 데이터버스, 제어버스 및 어드레스버스로 구성된다.
입·출력회로(108)에는 제1아날로그-디지탈(AD) 변환기(이하 ADC1라 함). 제2AD변환기 (ADC 2), 각(角)신호처리 회로(126) 및 1비트정보를 입출력하는 이산치(discrete) 입출력회로(DIO)를 포함한다.
ADC1에러는, 전지전압검출센서(이하 VBS라 함)(132), 냉각수온센서(TWS)(56), 대기온도센서(TAS)(112), 조정전압발생기(VRW)(114), 드로를 각 센서(θTHS)(116) 및 λ센서(λS)(118)의 출력들이 다중절환기(MPS)(120)에 입력시킨다. ADC(122)의 출력인 디지탈 값은 레지스터(REG)(124)에 기억된다.
공기유량센서(AFS)(24)의 출력은 ADC2에 입력되고 ADC(128)에 의하여 디지탈 값으로 변환되고 이값은 REG(130)에 세트된다.
각 센서(ANGS)(146)로 부터는 기준 크랭크각, 예컨데 180도 크랭크각("REF"라 함)을 표시하는 신호와 기준 크랭크각으로 부터 미소변위각, 예컨데 1도 크랭크각("POS"라 함)을 타나내는 신호를 출력한다. 이 신호들은 각 신호처리회로(126)에 인가되어 파형정형된다.
DIO에는 완속스위치(이하 "IDLE-SW"라함)(148), 톱기어스위치(TOP-SW)(150) 및 시동기스위치(STA-RS-SW)(152)로 부터의 출력이 입력된다.
다음에 펄스 출력회로 및 CPU의 연산결과에 의거한 제어대상에 대하여 설명한다. 분사기제어회로(INJC)는 연살결과의 디지탈 값을 펄스출력으로 변환시키는 회로이다.
즉, INJC(134)에서 분사될 연료량에 비례하는 펄스폭을 갖는 펄스를 발생하고 AND게이트(136)를 거처분사기(12)에 인가된다. 정화펄스 발생회로(IGNC)(138)은 점화시기를 세트하는 레지스터(ADV)와 점화코일 급전시간을 세트하는 레지스터(DWL)를 포함한다. 이 데이터들은 CPU로 부터 세트되어 기억된다. 이 세트된 데이터에 의거하여 발생되는 펄스는 AND게이트(140)를 거쳐 제2도에 상세히 설명한 증폭기(68)에 인가된다.
측로밸브(62)의 밸브 개폐율은 제어회로(ISCC)(142)로 부터 발생되어 AND게이트(144)를 거쳐 인가되는 펄스에 의하여 제어된다. ISCC(142)는 펄스폭을 세트하는 레지스터(ISCD)와 반복펄스주기를 기억하는 레지스터(ISCP)를 갖고 있다. 제3도에 나타낸 EGR제어밸브(86)를 제어하는 트랜지스터(90)를 제어하는 EGR량 제어펄스 발생회로(EGRC)(154)에는 펄스 듀티가 세트되는 레지스터(EGRD)와 펄스반복주기가 세트되는 레지스터(EGRP)를 갖는다. EGRC의 출력펄스는 AND게이트(156)를 통하여 트랜지스터(90)에 베이스 전극에 인가된다.
또 1비트인 입·출력신호는 DIO회로에 의하여 제어된다. 입력신호로서는 IDLE-SW신호, TOP-SW 신호 및 START-SW신호가 있으며, 출력신호로서는 연료펌프를 구동하기 위한 펄스출련신호가 있다. DIO회로에는 단자를 입력단자로 사용할 것인가, 출력단자로 사용할 것인가를 결정하기 위한 레지스터(DDR)와 출력 데이터를 레치(latch)하기 위한 레지스터(DOUT)를 구비하고 있다.
레지스터(160)는 입·출력회로단(108)내부의 여러가지 상태를 지령하는 명령을 보유하는 레지스터(MOID)이다. 예를들면 이 레지스터에 명령을 세트함으로써, AND게이트(136), (140), (144), (156)를 모두 "ON" 또는 "OFF"시키게 된다. 이리하여 INJC의 출력과 IGNG 또는 ISCC의 출력의 기둥 및 정지가 제어된다.
제5도는 제4도의 제어회로의 프로그램 시스템의 기본구성을 나타내는 도이다.
제5도에서, 초기처리프로그램(202), 개입중단 처리프로그램(206), 매크로 처리프로그램(228) 및 타스크분배기(208)는 타스크 군을 관리하는 관리프로그램이다. 초기 처리프로그램(202)은 마이크로 컴퓨터를 작동시키기 위한 사전처리를 행하기 위한 프로그램이다. 예를 들면 이 프로그램은 RAM(106)에 기억된 내용을 클리어 하거나 입·출력 인터페이스 회로(108)의 레지스터 등의 초기치를 설정한다.
또한 이 프로그램은 엔진제어에 필요한 사전처리를 행하기 위한 입력정보, 예를 들면 냉각수온데이터(TW) 또는 전지전압 등의 데이터를 입력시키기 위한 처리를 행한다.
또한 개입 중단 처리 프로그램(206)은 각종의 개입중단을 받아들여 그 개입중단요인을 분석하여 타스크군(210-226)중의 필요한 타스크를 가동하기 위한 기동요구를 타스크 분배기(208)에 출력한다.
나중에 언급하겠지만 개입중단 요인에는 전원전압 또는 냉각수온등의 입력정보를 아날로그-디지탈 변환 후에 발생하는 아날로그-디지탈 변환개입중단(ADC)엔진 회전에 동기하여 발생되는 초기 개입중단(INTL)과 설정된 시간(예컨데 10ms)마다 발생하는 인터발 개입중단(INTV) 그리고 엔진의 정지상태를 검출하였을때 발생되는 엔진 실속(失速)개입중단(ENST)등이 있다.
타스크군(210-226)의 각 타스크에는 우선순위를 나타내는 타스크 번호가 할당되어 있으며, 각 타스크는 타스크레벨 "0"-"2"에 속하는 어느하나의 타스크 레벨에 속한다. 즉, 타스크 0-2는 타스크레벨 "0"에, 타스크 3-5는 타스크레벨 "1"에, 타스크 6-8은 타스크레벨 "2"에 속한다.
타스크 분배기(208)는 상기 각종 개입중단의 기동요구를 받아, 이 기동요구에 해당하는 타스크에 부여된 우선 순위에 의거하야 CPU의 점유 시간을 할당한다.
여기서 과업 분배기(208)에 의한 타스크의 우선 제어는 다음과 같은 방법에 준한다.
(가) 우선도가 낮은 타스크를 중단하고 우선도가 높은 타스크의 실행권의 이동은 타스크 레벨간에서만 가능하다. 주의할 것은 레벨 "0"가 가장 우선도가 높은 것으로 한다.
(나) 동일 타스크 레벨 내에서 현재 시행중이거나 중단되어 있는 타스크가 있을 경우에는, 그 타스크가 가장 우선도가 높고, 이 타스크가 종료될때까지 기타의 타스크는 동작되지 않는다.
(다) 동일 타스크 레벨내에서 복수의 타스크에 기동요구가 있는 경우에는 타스크 번호가 작을수록 우선도가 높은 것으로 한다.
타스크 분배기(208)의 처리 내용에 대해서는 후술하겠으나, 본 발명에서는 상기 우선 제어를 행하기 위하여 타스크 단위로 RAM에 소프트 타이머를 설치하고, 또 타스크 레벨 단위로 타스크를 관리하는 제어 블럭을 RAM내에 설정하도록 구성하고 있다. 그리고 상기 각 타스크의 실행이 종료했을 때마다 그 타스크의 실행 종료보고를 매크로 처리 프로그램(228)에 의하여 타스크 분배기(208)에 통보하도록 되어 있다.
다음은 제6도-제12도를 참고하여 타스크분배기(208)의 처리 내용에 대하여 설명한다.
제6도는 타스크 분배기(208)에 의하여 관리되는 RAM에 설치된 타스크 제어블록을 나타낸 도면이다.
이 타스크 제어블록이 타스크 레벨의 수 즉, 본 실시예에서는 "0"-"2"에 해당하는 3개가 설치되어 있다. 각 제어블록에는 각각 8비트가 할당되어 있다. 이 중에서 비트 0-2(Q0~Q2)가 기동 요구 타스크를 나타내는 기동비트이고, 비트 7(R)은 동일 타스크 레벨중의 어떤 타스크가 현재 실행중인지 또는 중단되어 있는지를 나타내는 실행비트(run bit)이다. 기동비트(Q0~Q2)는 각각 각 타스크레벨중에서 실행 우선도가 높은 순으로 배열되어 있다.
예를 들면 제5도의 타스크 4에 해당되는 기동비트는 타스크레벨 "1"인 Q0이다. 여기서 타스크의 기동요구가 있었을 때는, 상기 기동비트중 어느 하나에 플랙(flag)이 나타난다.
한편, 타스크분배기(208)는 나타난 기동요구를 높은 레벨의 타스크에 해당하는 기동비트로부터 순차적으로 검색하여 이 기동요구에 해당하는 플랙을 리세트함과 동시에 실행 비트에 플랙 "1"을 표시한 다음, 해당 타스크를 기동하기 위한 처리를 행한다.
제7도는 타스크 분배기(208)에 의하여 관리되는 RAM(106)에 설치된 스타아트 어드레스 테이블을 나타내며, 스타아트 어드레스(SA0~SA8)는 제5도에 나타낸 타스크(210-226)내의 타스크 0-8에 해당한다. 각 스타아트 번지 정보에는 16비트가 할당되고, 이 스타아트 번지 정보는, 후술하는 바와같이 타스크 분배기(208)에 의해 기동요구가 된 타스크를 기동시키는데 사용된다.
제8도 및 제9도에 타스크 분배기의 처리 플로우를 나타낸다. 스텝(300)에서 타스크 분배기의 처리가 개시되면, 스텝(302)에서 타스크 레벨 l에 속하는 타스크가 실행중인지 아닌지의 여부가 판단된다. 좀더 상세히 설명하면, 실행 비트에 "1"이 표시되어 있으면 매크로 처리프로그램(228)에 의해 아직 타스크종료가 과업분배기(208)에 통보되지 않은 상태이므로 실행주이었던 타스크가 보다 우선 레벨이 높은 개입 중단 발생으로 인하여 중단되어 있는 상태를 나타낸다.
따라서 실행비트에 플랙 "1"이 나타나 있으며, 스텝(314)로 점프하여 중단되었던 타스크를 재개시하게 된다.
반면에 실행비트에 플랙 "1"이 나타나 있지 않으면 즉, 실행표시 플랙이 리세트되어 있는 경우에는 스텝(304)로 이동하여 레벨 l에 기동대기 타스크(start queuing task)가 있는지의 여부가 판단된다. 즉 레벨 l의 기동비트를 해당 타스크의 실행 우선도가 높은 순서 즉 Q0, Q1, Q2의 순서로 검색한다. 타스크 레벨 l에 속하는 기동비트에 플랙 "1"이 나타나 있지 않을 경우에는 스텝(306)으로 이동하여, 타스크 레벨의 갱신이 행해진다. 즉 타스크 레벨 l은 (+1)증가되어 l+1이 된다. 타스크 레벨의 갱신이 스텝(306)에서 완수되었을 때는 스텝(308)로 이동하여 모든 타스크 레벨이 체크되었는지가 판단된다. 모든 타스크레벨이 체크되지 않았으면 즉, l=2가 아니면 스텝(302)으로 되돌아가서 상기와 같은 수순으로 처리가 반복 수행된다. 모든 타스크 레벨이 스텝(308)에서 체크되었을 경우에는, 스텝(310)으로 이동하여 개입 중단이 해제된다. 개입중단 해제가 이 스텝에서 이루어지는 까닭은 스텝(302-308)까지의 처리 기간동안은 개입중단을 금지하고 있기 때문이다. 그리고 다음 스텝(312)에서 다음의 개입중단을 대기하게 된다.
기동 대기 타스크가 스텝(304)내의 타스크 레벨 l에 있을 경우 즉, 타스크 레벨 l에 속하는 기동비트에 플랙 "1"이 나타나 있을 경우에는 스텝(400)으로 이동한다.
스텝(400), (402)의 루우프에서 타스크 레벨 l의 어떤 기동비트에 플랙"1"이 나타나 있으면 대응하는 우선 실행도가 높은 레벨순으로 즉 Q0, Q1, Q2의 순서로 검색한다. 해당 기동비트가 발견되면 스텝(404)로 이등한다. 스텝(404)에서는, 플랙이 나타난 기등비트를 리세트하고 동시에, 해당 타스크 레벨 l의 실행 비트(이하 R 비트라함)에 플랙 "1" 이 세트된다.
스텝(406)에서는, 기등 타스크 번호가 산출되고, 스텝(408)에서는 제7도에 나타낸 바와 같은 RAM내에 설치된 스타아트 어드레스표에 의하여 해당 기동 타스크의 기동 어드레스 정보를 인출(fetch)한다.
계속해서 스텝(410)에서는 해당 기동 타스크가 실행되고 있는지의 여부가 판단되다. 만약 인출된 기동 어드레스 정보가 특정값, 예컨대 0일 경우에는 해당 타스크는 실행할 필요가 없다고 판단된다. 이 판단 스텝은 엔진제어를 행하는 타스크군 중에서 각 차량의 종류에 따라 선택적으로 특정의 타스크 기능만을 부여하는데 필요하다. 스텝(410)에서 해당 타스크의 실행이 정지됐다고 판단되었을 경우는 스텝(414)로 이동하여 해당 타스크 레벨 l의 R비트를 리세트 한다.
그리고 다시 스텝(302)으로 귀환하여, 타스크 레벨 l이 개입 중단된 상태인지 아닌지의 여부가 판단된다. 동일 타스크 레벨 l 중의 복수의 기동브트에 플랙이 나타나 있을 경우가 있을 수 있기 때문에, 스텝(414)에서 R비트를 리세트 시킨후 스텝(302)으로 이동하도록 구성되어 있다.
한편 스텝(410)에서 해당 타스크의 실행이 정지하고 있지 않고 계속 시행중이라고 판단되면, 스텝(412)으로 이동하여 그 해당 타스크를 샐행한다.
제10도는 매크로 처리프로그램(228)의 처리 플로우로서 이 프로그램은 종료 타스크를 찾는 스텝(562)(564)로 구성된다. 스텝(562), (564)에서 먼저 타스크 레벨"0"부터 검색하고 종료된 타스크 레벨을 검색한다. 그 다음 스텝(568)으로 진행하여, 종료된 타스크의 타스크 제어블록의 7비트째의 실행 플랙을 리세트 한다. 이로서 타스크의 실행이 완전히 종료된다. 다시 과업 분배기(208)로 귀환하여 다음에 실행해야할 타스크를 결정한다.
다음은 제11도를 참조하여 과업 분배기(208)에 의하여 타스크 우선 제어가 행해지는 경우의 타스크의 실행 및 개입 중단의 형태에 관하여 설명한다.
기동요구 NMN에서 m은 타스크 레벨, n은 타스크 레벨 m중 우선도의 순위를 타나낸다. CPU는 관리프로그램 OS를 실행하고 있다고 가정한다. 관리 프로그램 OS의 실행중에 기동요구 N21이 발생했을 경우에는 시각 T1에서 기동요구 N21에 해당하는 타스크 즉 타스크 6의 실행이 개시된다. 타스크 6의 실행중에 시간 T2에서 실행 우선도가 높은 타스크의 기동요구 N1가 발생하면, 관리프로그램 OS의 실행으로 이동하여 앞에서 언급한 소정의 처리가 실행된 후 시각 T3에서 기동요구 N1에 해당하는 타스크 즉 타스크 0의 실행이 개시된다. 이 타스크 0의 실행중에 다시 기동요구 N11가 시각 T4에서 발생하면, 관리프로그램 OS로 일단 이동하여 소정의 처리를 실행한 다음, 개입중돤된 타스크 0의 실행이 시각 T5에서 재개된다. 타스크 0의 실행이 시각 T6에서 종료하면, 다시 관리프로그램 OS의 실행으로 옮아간다. 여기서 매크로 처리프로그램(228)에 의하여 타스크 분배기(208)에 타스크 0으 실행 종료가 통보된다. 시각 T7에서 대기 상태에 놓여 있던 기동요구 N11에 해당하는 타스크 3의 실행이 다시 개시된다. 이 타스크의 3의 실행중에 동일 타스크 레벨 1중에서 우선도가 낮은 기동요구 N12가 시각 T8에서 발생하면, 타스크 3의 실행은 일단 중지된다. 실행은 관리프로그램 OS로 옮겨져 소정의 처리를 실행한 다음, 타스크 3의 실행이 시각 T9에서 재개된다. 타스크 3의 실행이 시각 T10에서 종료되며, CPU의 실행은 관리 프로그램 OS로 옮겨지고, 타스크 3의 실행 종료가 매크로 처리 프로그램(228)에 의하여 타스크분배기(208)에 통보된다. 이어서 우선 레벨이 낮은 기동요구 N12에 해당하는 타스크 4의 실행이 시각 T11에서 개시된다. 타스크 4의 실행이 시각 T12에서 종료되면 CPU는 관리프로그램 OS으로 옮겨져 소정의 처리를 실행한 다음, 그때까지 개입중단 되어 있던 기동요구 N21에 해당하는 타스크 6의 실행이 시각 T13에서 재개된다.
이상 설명한 바와 같은 타스크의 우선 제어가 행하여진다. 제12도는 타스크의 우선 제어에 있어서의 상태변화를 나타낸 도면이다.
완속(Idle)상태는 어떤 타스크에 대한 기동요구가 아직 발생하지 않은 상태이다. 이때 기동요구가 발생하면, 타스크제어블록의 기동 비트에 플랙이 세트되어 기동이 필요함을 나타낸다. 완속 상태로부터 대기(Queue)상태로 이동하는 시간은 각 타스크의 레벨에 따라 결정된다. 계속해서 대기 상태에서도 실행되는 순서는 우선도에 따라 결정된다. 타스크가 기동 상태가 되는 것은 관리프로그램 OS내의 타스크 분배기에 의하여 타스크 제어블록의 기동비트의 플랙이 리세트 되고, 7번째 비트인 R 비트에 플랙이 나타난후, 타스크의 실행이 개시된다. 이 상태가 런(Run)상태이다. 실행이 종료되면 타스크 제어블록의 R비트의 플랙은 클리어 되고, 종료 통보가 끝나게 된다. 이리하여 Run상태는 꺼ㅌ나고, 다시 완속 상태가 되어 다음의 기동 요구가 다시 발생하는 것을 기다린다. 그러나 타스크의 실행중에 개입중단 IRQ가 발생하면, 그 특정 타스크는 개입 중단이 되어야 한다. 이를 위하여 CPU의 내용이 대피(shunt)되고 실행이 개입중단된다. 이 상태가 준비(Ready)상태이다.
다음에 아 타스크가 다시 시행되는 상태가 되면, 대피되어 있던 내용은 CPU로 귀환시켜 실행이 재개된다. 즉 준비상태로부터 실행상태로 복귀된다.
이러한 방법으로 각 레벨의 프로그램은 제12도의 4개의 상태를 반복한다. 제12도는 대표적인 플로우이나, 준비상태에서 타스크 제어 블록의 기동 비트에 플랙이 세트될 가능성이 있다. 이것은 예컨데 기동 개입중단중에 특정 타스크 다음에 기동요구 타이밍이 되어 버린 경우에 해당한다. 이때에는 R비트의 플랙이 우선순위가 되어 개입중단되어 있던 타스크를 먼저 종료시킨다. 따라서 R비트의 플랙은 소거되고, 기동비트의 플랙에 의하여 완속 산태를 거치지 않고 바로 준비 상태가 된다. 이와같이 타스크 0-8은 각각 제12도의 어느 하나의 상태가 된다.
제13도에서 관리프로그램 OS는 초기처리 프로그램(202), 개입중단처리 프로그램(206), 타스크 분배기(208) 및 매크로처리 프로그램(228)으로 구성된다.
개입중단처리 프로그램(206)에는, 여러가지 개입중단처리 프로그램들이 포함된다. 초기 개입 중단처리(이하 "INTL개입 중단처리"라함)(602)는 엔진 회전에 동기하여 발생하는 초기 개입중단 신호에 의하여, 엔진의 매회전마다 엔진실린더 수의 1/2(예컨대 4실린더이면 두번) 초기 개입중단이 발생한다.
이 초기 개입중단에 의하여 EGI타스크(621)에서 계산한 연료 분사 시간을 입·출력 인터페이스 회로(108)의 EGI레지스터에 세트된다. AD변환 개입중단처리(604)에는 두 종류 즉, 제 1 AD변환기(1)(ADC1)개입중단과, 제2 AD변환기(2)(ADC2)개입중단이 있다. 제1 AD변환기(1)는 8비트의 정밀도를 가지며, 전원전압, 냉각수 온도 및 흡기온도 및사용조정등의 입력에 사용된다. 이 변환기는 다중절환기(120)에 대한 입력 포인트를 설정함과 동시에 이를 변환하여 ADC1 개입중단을 발생한다. 이 개입중단은 엔진을 시동하기전에만 사용한다. 반면에 AD변환기(128)는 공기 유량의 입력에 사용되며, 변환이 완료된후 ADC2 개입중단을 발생한다. 이 개입중단 역시 엔진시동전에만 사용된다. 시간격 개입중단 처리프로그램(이하 INTV개입중단 처리프로그램)(606)에서는 INTV개입중단 신호는 INTV레지스터에 설정된 펄스주기(예컨대 10ms)마다 발생하고 일정주기로 기동해야 할 타스크의 시간을 감시하기 위한 기준 신호로 사용된다.
이 개입중단 신호에 의하여 소프트 타이머는 갱신되고, 상술한 주기에 달한 타스크를 기동한다. 또한 엔진실속(ENST)개입 중단처리 프로그램(608)에서는 엔진의 정지상태를 검출한다. INTL개입 중단신호를 검출하면 계수를 계시한다. INTL개입 중단신호가 소정시간(예컨대 1초) 내에 검출되지 않으면, 소프트 웨어에서 ENST개입 중단이 발생한다. 엔진이 실속되었다고 판단된 경우, 점화 코일에 대한 전력 공급 및 연료 펌프의 작동이 정지된다. 이후의 제어는 기동기스위치(152)가 "ON" 될때까지 기다리게 된다.
표 1에는 상기한 개입중단 요인에 대한 처리 개요를 나타낸다.
[표 1]
개입중단 요인 처리 개요
Figure kpo00001
초기 처리프로그램(202) 및 매크로 처리프로그램(228)에 관해서는 이미 언급한 처리가 실행된다.
상기 각종의 개입중단에 의하여 기동되는 일련의 타크군은 다음과 같다. 타스크 레벨 0에 속하는 타스크는 ADC2입력타스크(이하 "ADIN2타스크"이라함), 연료분사 제어 타스크(EGI타스크) 및 기동감시 타스크 처리 타스크(AFSIA타스크)이 있다. 타스크 순위 2에 속하는 타스큰 완속 회전 제어타스크(ISC타스크), 보정 계산 타스크(HOSEI타스크) 및 기동 사전처리 타스크(ISTRT타스크)가 있다. (표 2 삽입)
표 2에는 여러 타스크 레벨 배정 및 타스크 기능에 대하여 나타내고 있다.
표 2에 나타낸 바와 같이, 각종 개입중단에 의하여 기동되는 각 타스크의 기동기는 미리 결정되어 있다. 이들 정보는 ROM(102)에 격납되어 있다.
[표 2]
과업순위 배정 및 과업기능
Figure kpo00002
Figure kpo00003
다음에 INRV개입중단 처리에 대하여 제14도-제16도를 참조하여 설명한다. 제14도는 RAM(106)에 설치된 시동소프트 타이머표로서, 여기에는 각종 개입 중단에 의하여 기동되는 서로 다른 기동주기의 수와 같은 타이머 블록이 있다. "타이머 블록"이란 ROM9104)내에 격납된 타스크의 기동주기에 관한 시간정보가 전송되어 격납되는 기억영역을 의미한다. TMB는 RAM(106)내에 있는 소프트 타이머 표의 제1번지를 나타낸다. (예컨대 10ms마다 실행되는 INTV개입중단인 경우의) 기동주기에 관한 시간정보는 엔진 시동시 ROM(104)으로부터 소프트 타이머표의 각 터이머 블록으로 전송되어 격납된다.
제15도는 INTV개입중단 처리(606)의 플로우챠아트이다. 스텝(626)에서 프로그램이 기동되면, RAM(106)에 설치된 소프트 타이머표의 초기값이 스텝(628)에서 설정된다. 즉, 인덱스 레지스터의 내용 i를 0(영)으로 하고, 소프트 타이머표의 번지 TMB+0의 타이머 블록에 기억된 잔여 시간(Ti)을 체크한다. 이 경우 Ti=To이다. 이어서 스텝(630)에서 스텝(628)에서 체크된 소프트 타이머가 정지되었는지의 엽부가 판단된다. 다시 말해서 소프트 타이머표에 기억되어 있는 잔여시간(Ti)이 Ti=0인 경우에는 소프트 타이머는 정지 중이라고 판단되고 소프트 타이머에 의해 기동되어야 할 해당 타스크는 정지중이라고 판단되고, 스텝(640)로 점프하여 소프트 타이머표의 값으로 갱신한다.
한편, 소프트 타이머표의 잔여시간 Ti이 Ti≠0인 경우에는 스텝(632)로 이동하여 상기 타이머 블록의 잔여시간을 갱신한다. 즉 잔여시간은 Ti로부터(-1) 감소한다. 스텝(534)에서는 타이머표의 소프트 타이머가 기동주기에 달했는지의 여부가 판단된다. 특, 잔여시간 Ti이 Ti=0일 경우에는 기동주기에 도달한 것으로 판단하여 스텝(636)으로 이동한다. 한편 소프트 타이머가 기동 주기에 도달하지 않은 것으로 판단될 경우는 스텝(640)으로 점프하여, 소프트 타이머표를 갱신한다. 소프트 타이머표가 기동주기에 도달했을 경우에는 스텝(636)에서 소프트 타이머표의 잔여시가 Ti를 초기화한다. 즉 ROM(102)로부터 RAM(106)으로 해당 타스크의 기동주기에 관한 시간정보를 전송한다.
스텝(636)에서 소프트 타이머표의 잔여시간 Ti을 초기화한후 스텝(638)에서 소프트 타이머표에 해당하는 타스크의 기동요구를 한다. 이어서 스텝(640)에서 소프트 타이머표를 갱신한다. 즉, 인덱스 레지스터의 내용을 (+1)증가시킨다. 스텝(642)에서는 전체의 소프트 타이머표를 모두 체크하였는지의 여부가 판단된다. 제14도에 나타낸 바와 같이 본 실시예에서는 소프트 타이머표를 (N+1)개 설치되어 있으므로 인덱스 레지스터의 내용 i가 i=N+1인 경우에는 모든 소프트 타이머표의 체크가 완료된 것으로 판단된다. 이 경우, INTV개입 중단처리 프로그램(606)은 스텝(644)에서 끝난다. 반면에 스텝(642)에서 모든 소프트 타이머표의 체크가 아직 완료되지 않았다고 판단됐을 경우에는 스텝(630)으로 귀환하여 상기한 바와 같은 동일한 처리가 행해진다.
이상과 같은 방법으로 각종 개입 중단에 따르는 해당 타스크의 기동요구가 발생하고, 이 기동요구에 의하여 해당 타스크의 실행이 행하여 진다. 그러나 표 2에 기재된 모든 타스크가 항상 실행되는 것은 아니다.
엔진의 운정 정보를 토대로 ROM(102)에 설치되어 있는 타스크군중에서 한 타스크의 기동주기에 관한 시간 정보만을 선택하여 RAM(106)의 소프트 타이머표에 전송하여 격납한다.
일례로 주어진 타스크의 기동 주기기 20ms라고 하면 이 타스크는 그때마다 기동되는 것이다. 그러나 타스크의 기동이 운전조건에 따라 연속적으로 수행될 필요가 있으면 항상 그 타스크에 해당하는 소프트 타이머표의 초기치가 항상 갱신되어 초기화 된다.
다음은 엔진의 운전 조건에 따라 여러 개입중단에 의하여 타스크군이 기동 및 정지되는 상태를 제16도의 파형도를 참고하여 설명한다.
기동기스위치(152)의 작동으로 전력이 ON상태가 되면 CPU(104)가 작동하여 소프트 웨어 플랙(IST) 및 (EM)에 "1"이 세트된다. 소프트 웨어플랙(IST)은 엔진이 기동전인 상태에 있음을 나타내는 플랙이고 소프트 웨어플랙(EM)은 ENST개입중단을 금지하기 위한 플랙이다. 이 두 개의 플랙에 의하여 엔진이 기동준비 상태인지, 기동중인지 또는 기동된 후 인지가 판단된다. 기동기스위치(152)를 조작하여 전력이 공급되면 제일 먼저 타스크 ADIN1이 기동되어, 각종 센서로부터 엔진 기동에 필요한 데이터, 예컨대 냉각수온 및 전지전압과 같은 입력정보가 다중절환기(120)를 거쳐 AD변환기 (122)에 인가된다. 타스크 HOSEI는 이러한 데이터의 입력주기 마다 기동되고, 이 입력 정보에 의거하여 보정 계산이 행해진다. 타스크 ADIN1에 의하여 복수세서로부터 AD변환기9122)로 인가되는 데이터의 입력주기마다 타스크 ISTRT가 기동되어 엔진시동중에 필요한 연료 분사량을 계산하게 된다. 상기한 3개의 타스크 즉, 타스크 ADIN1, 타스크 HOSEI 및 타스크 ISTRT는 초기처리 프로그램(202)에 의하여 기동된다.
기동스위치(152)가 "ON"되면 타스크 ISTRT에 의하여 발생되는 "Q"플랙들이 세트되므로써, 타스크 ADIN1, 타스크 MONIT 및 타스크 ADIN2등 3개의 타스크에 기동이 걸린다. 타스크 ADIN1과 NOMIT는 기동기스위치(152)가 "ON"상태에 있는 기간동안에만 실행되어야 한다. 이 기간동안에서는 소정의 기동주기에 관한 시간정보가 ROM(102)으로부터 RAM(106)에 있는 소프트 타이머표에 이동되어 격납된다. 이 기간동안 소프트 타이머표의 기동주기의 잔여 시간 Ti은 초기치화 되어, 기동주기 설정이 반복적으로 행해진다. 타스크 MONIT는 엔진기동시의 연료 분사량을 계산하는 타스크로서 엔진이 기동된 후에는 불필요한 타스크이다. 따라서 타스크의 실행이 소정의 횟수만큼 완료되었을때, 소프트 타이머의 기동은 정지하고, 타스크 종료시에 발생되는 정지 신호는 엔진이 시동된 후에 필요한 기타 타스크군을 기동시키는데 사용된다.
여기서 타스크의 종료를 나타내는 신호에 의하여 해당소프트 타이머표에 "0"이 격납하는 것 즉, 소프트 타이머의 내용이 틀리어 됨으로써 타스크가 종료한다.
이상 설명한 바와 같이 본 발명이 실시에에서는 소프트 타이머에 의하여 타스크의 정지 및 기동을 수행하도록 구성되었다는 것을 알 수 있으며, 따라서 불균일한 기동주기를 가진 다수의 타스크를 효과적으로 정확하게 조정할 수 있다.
제17도에 IRQ발생회로를 나타낸다. 레지스터(735), 카운터(736), 비교기(737) 및 플립플롭(FF)(738)으로 구성되는 IRQ발생회로는 INTV IRQ를 발생시킨다. INTV IRQ의 발생주기(본 실시에에서는 10ms)는 레지스터(735)에 세트된다. 클럭펄스는 카운터(736)에 세트된다. 카운터(736)의 계수치가 레지스터(735)의 내용과 일치할때, FF(738)이 세트 상대가 된다. 이 세트 동작에 의하여 카운터(736)는 그 내용이 클리어 되고, 계수를 재개한다. 따라서 INTV IRQ는 일정한 시간(10ms)마다 발생된다.
이 외에도 IRQ발생회로에는 레지스터(741), 카운터(742), 비교기(743) 및 FF(744)이 포함되는데, 이 조합회로는 ADC2에 의하여 발생되는 데이터를 입력시킬 타이밍을 검출하는 QA IRQ를 발생시킨다. 레지스터(741), 카운터(742) 및 비교기(743)의 동작 상태는 상기한 INTV IRQ와 같으며, 카운터(742)의 계수치가 레지스터(741)의 내용에 도달하면 QA IRQ가 발생한다. FF(738)에서 발생한 INTV IRQ, FF(744)에서 발생되는 QA IRQ 및 ADC1(또는 ADC2)에서 발생되는 IRQ는 각각 FF(740), (764) 및 (764 또는 768)에 세트된다. IRQ를 발생, 저지시키는 신호 FF(739), (745), (762) 및 (766)에 세트된다.
만일 FF(739), (745), (762) 및 (766)에 H가 세트되면, AND게이트(748), (750)(770) 및 (772)는 능동상태가 된다.
이때 IRQ가 발생하면 OR게이트(751)로부터 출력이 발생한다.
따라서 FF(739), (745), (762) 및 (766)에 H 또는 L이 인가되느냐에 따라 IRQ를 발생 또는 금지시킬 수 있는 것이다.
IRQ가 발생하였을 때, IRQ의 발생원인은 FF(740), (746), (764) 및 (768)의 내용을 CPU(104)에 로드시킴으로써 알 수 있다.
CPU가 각 IRQ에 해당하는 프로그램을 실행하기 시작했을 경우, 그 IRQ신호는 클리어 되어야 하므로 따라서 실행을 시작한 IRQ에 관한 FF(740), (746), (764), (768) 중의 한개가 클이어되어야 한다.
제18도는 20ms의 시간격으로 동작되는 INJ프로그램의 플로우차아트이다. 스텝(800)에서 공기 유량계(24)의 출력과, AD변환후의 타스크 ADIN 2의 실행을 거쳐 RAM(106)에 격납된 디지탈 값 QA가 독출된다. 스텝(802)에서는 스텝(800)에서 독출된 QA의 실제값이 ROM(102)의 AF도표의 Xn에 세트된 AQ값과 비교하여, QA의 실제값에 해당하는 Xn의 n이 결정된다. 스텝(804)에서는 타스크 ADIN2의 실행에 의하여 RAM(106)에 격납된 엔진속도 데이터 N가 독출된다. 스텝(806)에서는 독출된 N의 실제값이 AF도표의 Yn에 세트되어 있는 N의 값과 비교되어, N의 실제값에 해당하는 Yn의 n이 비교된다. 스텝(808)에서는 AF도표의 어드레스가 스텝(802)에서 각각 결정된 Xn및 Yn에 의거하여 결정된다. 스텝(810)에서는 위에서 결정된 어드레스에 기억된 연료 공급량이 독출되고, 제4도의 레지스터 INJD(134)에 격납된다.
제19도는 프로그램 IGNCAL의 플로우차아트이다. 스텝(820)에서는 공기 유량계의 출력으로 프로그램 ADIN2의 실행을 거쳐 RAM(106)에 격납된 디지탈 값 QA가 독출된다. 스텝(822)에서 ROM(102)에 설치된 ADV 도표의 Xn에 세트된 QA값과 비교되어 QA의 실제값에 상응하는 Xn의 n이 결정된다. 스텝(824)에서는 ADIN2의 실행을 거쳐 RMA(106)에 격납된 엔진회전속도 데이터 N이 독출된다. 스텝(826)에서는 독출된 N의 실제값이 ADV도표의 Yn에 세트된 N값과 비교되어 N의 실제값에 상응하는 Yn의 n이 결정된다. 스텝(828)에서는 ADV내의 어드레스가 스텝(822) 및 (826)에서 결정된 Xn및 Yn에 의거하여 각각 결정된다. 스텝(830)에서 위의 결정된 어드레스에 기억된 점화 타이밍을 독출하여 제4도에 나타낸 레지스터 ADV에 격납한다.
프로그램 HOSEI는 대기 및 냉각수의 온도에 대한 보정계수를 결정하는데 제공된다. 이 파라미터들은 단지 서서히 변화하기 때문에, 장시간격을 두고 보정계수를 결정하여도 충분하다.
제20도에서 프로그램 ISC는 엔진이 완속 상태일때 공기측로밸브(62)의 개구각을 제어하게 된다.
스텝(850)에서는 완숙 스위치(148)가 제4도의 DIO의 모니터로 "ON"상태가 되었는가를 레지스터 DOUT의 제1비트가 L 레벨이 되어 공기측로밸브(62)가 선정된다. 즉, 공기측로밸브는 제4도의 레지스터 EGRD에 격납된 값에 따라 제어된다. 측로의 공기유량을 제어하는 공기측로밸브(62)는 특정한 동작조건에서 제어된다. 다시 말해서, 겨울과 같이 엔진이 냉각된 상태에서 기동운전을 한다든지 또는 차의 공기조화기의 사용으로 인하여 부하가 큰 상태에서 운전하는 것과 같이 주위 온도가 낮을때 운전을 할 경우에는 측로를 통한 공기 유량이 증가하게 된다.
스텝(852)에서는 공기측로밸브의 충격계수가 엔진냉각수의 온도에 따라 결정되어 레지스터 EGRD에 세트된다. 스텝(854)에서는 완속 스위치(148)가 온인지의 여부를 판단한다. 만약 스위치가 ON이 되어 있으면, 프로그램 ISC에 대한 기동요구 플랙이 스텝(856)에서 세트된다. 즉 비트 "1"이 제16도에 나타낸 RAM의 타스크 제어블럭의 타스크 레벨 2의 22에 세트된다.
한편 완속 스위치가 개방되었을 때는 즉시로 종료 표시가 나온다. 따라서 이 프로그램은 더 이상 실행되지 않는다. 이러한 방법으로 완속 스위치가 스텝(856)에서 닫혀질때는 프로그램 ISC에 대한 기동요구 플랙이 세트되고, 이어서 종료표시가 나온다.
제21도는 프로그램 EGRCAL의 플로우차아트이다. 완속 스위치가 개방 상태일때 공기측로밸브(90)는 제어되지 않으나, 배기 가스의 재순환은 실행된다. 이를 위해서 배기가스 재순환량을 제어하는 EGR시스템은 구동된다. EGR시스템을 구동시키기 위하여 DIO의 레지스터 DOUT의 제1비트가 스텝(860)에서 고레벨로 세트되고, 이에 의해 제3도에 나타낸 EGR시스템이 제4도의 레지스터 GERD에 세트된 값에 따라 구동된다. 다음에는 EGR량을 결정하는 연산동작이 수행된다. 스텝(862)에서 냉각수온 TW가 규정치 TA℃보다 높은지, 그 여부가 체크된다. 만약 높다면, EGR동작은 저지 또는 중단된다. 이를 위해 스텝(866)에서는 레지스터 EGR중단용 EGRD에 0(영)이 세트된다. 냉각수온 TW가 규정치 TA℃보다 낮은때는, 프로그램이 스텝(864)로 진행하여 냉각수온 TW가 규정치 TB℃보다 낮은지, 그 여부가 판정된다. 만약 그렇다면, EGL동작은 저지된다. 이를 위해서 스텝(866)에서 레지스터 EGRD에 0이 세트된다. 스텝(362)에서 온도 TA는 상한(上限)을 나타내며, 스텝(864)에서의 오도 TB는 하한(下限)을 나타낸다. 엔진의 냉각수온 TW가TB-TA의 범위에 있을때만, EGR동작이 실행된다. 프로그램은 스텝(868)로 진행하여 EGR량이 도표검색을 통하여 구해진 공기흡입량 QA와 엔진흡전수 N에 의거하여 계산된다. 이 검색에 사용되는 도표는 ROM(102)에 들어 있다. 검색된 값은 레지스터 EGRD에 세트된다.
이러한 방법으로 EGR용 벨브가 레지스터 EGRD에 격납된 값과 레지스터 EGRD에 미리세트된 듀티사이클에 따라 개방된다.
스텝(872)에서는 DIO를 모니터 함으로써 완속 스위치가 ON상태에 있는지의 여부를 판단한다. 완속스위치가 개방되어 있을때는, 프로그램 EFRCAL을 위한 기동 요구 플랙이 세트된다.
다음에 본 발명에 관한 열선유량센서의 신호 처리방법의 일 실시예를 나타내는 처리에 관하여 설명한다. 열선유량센서의 신호는, INTL개입중단에 의해 최초의 샘플링이 행해진다. 그 샘플링 시간은 엔진 회전수에 따라 3가지 모드로 나뉘며 각 모드마다 다르다. 즉 제22도에 나타낸 바와같이 모드 0는 엔진 회전속도 N가 N<1600rpm, 모드 1은 엔진 회전속도가 N가 1600rpm
Figure kpo00004
N
Figure kpo00005
3200rpm, 모드 2는 회전수 N가 3200rpm<N로 하여 4기통 엔진에 관해서 나타낸 것이다. 따라서 크랭크 회전각도 180°가 1흡기공정이다. 모드 0은 본 실시예에서 N=1600rpm에 관하여, 또 모드 1은 N=3200rpm, 모든 2는 N=+6400rpm에 관하여 각각 나타낸 것이다. 따라서 모드 0에 대하여 모드 1은 동일 시간에 2배의 회전각도로 회전하고, 다시 모드 2에서는 모드 0의 4배, 모드 1의 2배의 회전 각도로 회전하는 것이 되고 이를 제22도에 나타낸다.
본 실시예에서는 모드 0에 있어서의 엔진회전수의 범위에서 5개의 샘플링을 행하도록 설정하였다. 즉 모드 0인때는 크랭크 회전각도 36°에 상당하는 시간마다 샘플링을 행하고, 모드 1인때는 회전수 N가 2배로되어 있기 때문에 샘플링타이밍이 크랭크 회전각도 72°에 상당하는 시간이 되고, 다시 모드 2인때는 회전수 N가 모드 0인때의 4배가 되어 있으므로 크랭크 회전각도 144°에 상당하는 시간마다 샘플링을 행한다. 따라서 각모드는 모두 1흡기공정에 있어서의 크랭크 회전각도로 고치면, 모드 0에서 샘플링한 데이터와 같은 크랭크 회전각도에서 데이트를 샘플링한 것과 같다. 이와같이 엔진 회전수에 따라 데이터 샘플링 타이밍을 변화시키므로써, 데이터 처리시간은 엔진 회전수의 변동에 의해 좌우되는 일이 없다.
제23도에는 이와같은 열선유량 센서의 신호 샘플링의 처리 플로우를 나타낸다.
동도에서 개입중단이 발생하면 제5도 및 제13도의 204로 동작이 이행된다. 그리고 제23도의 스텝(902)로 진행하여 INTL개입중단 여부를 판단한다. INTL개입중단인 경우에는 단계(904)에서, 순시공기유량의 샘플링을 관리하는 아날로그카운터가 0인지의 여부를 판정한다. 아날로그 카운터는 소프트적으로 계수되는 카운터로서 RAM(106)의 어드레스 AAB 3에 설치되어 있고, 제24도에 표시되어 있다. 이 아날로그 카운터 값은 제22도의 샘플링점 V1-V5를 나타낸다. V값은 RAM에 일시적으로 유지되나 이에 관해서는 제24도에서는 표시되어 있지 않다. 아날로그 카운터가 0인 경우에는 스텝(906)에서 AD변환기(제4도의 128)를 기동시켜 공기유량 V1(제22도)의 샘플링을 개시하기 위해 준비한다. 이 거동에 의거한 V1의 샘플링은 스텝(924)에서 행한다. 스텝(908)에서는 엔진회전수 N을 RAM(106)을 어드레스 AAA1으로부터 독출한다. RAM(106)은 제24도에 상술되어 있다. 엔진회전수 모드를 스텝(910)에서 결정한다. 이 결정은 먼저 RAM(제24도의 106)의 어드레스 AAB4를 0으로 하고 다음에 엔진속도 N와 제25도에 나타낸 ROM(102)의 어드레스 AAC1의 값 1600과 비교한다. 이 엔진속도 N가 1600보다 클대, RAM(106)의 어드레스 AAB4의 모드값을(+1) 증가시킨다. 그리고 제25도의 ROM(102)의 어드레스 AAC2의 값 3200과 비교한다. 이 3200의 값보다 엔진속도 N가 클때는 다시 RAM(106)의 어드레스 AAB4의 모드값을(+1) 증가시킨다. 이와 같이 하여 모드가 0-2중에서 설정된다. 이 제24도의 RAM(106)의 어드레스 AAB4의 모드값에 의거하여, 스텝(912)에서 ROM(702)의(모드값+AAC3)의 어드레스로부터 데이터를 독출한다. 이 값은 모드값이 0인때 어드레스 AAC3의 내용이 되어 36°로, 모드값이 1인때 어드레스 AAC4의 내용이 되어 72°로, 모드값이 2인때 어드레스 AAC5의 내용이 되어 144°로 되어, 제22도에서 나타낸 각 모드의 샘플링 각도를 나타낸다. 스텝(914)에서는 이 샘플링 각도와 엔지축의 속도 N(제24도의 RAM(16)의 어드레스 AAA 1의 값)으로부터 샘플링 시간이 연산되어 제17도의 레지스터(741)에 세트된다. 한편, FF(774)가 리세트되어, AND게이트(776)를 부동작 상태로 시킨다. 이 스텝에서 타이머 시간 세트가 행해지면, 스텝(916)에서 INJD, ADV, DWL REG의 세트등이 행해지고, 다음 스텝(918)에서 INTR IRQ용의상태(STATUS) FF을 리세트하여 INTL개입중단처리 프로그램은 종료한다. 스텝(904)에서 아날로그 카운터가 0이 아닌 경우에는 스텝(916)로 이동한다. 또 스텝(902)에서 INTL개입중단이 아닌 경우에는 스텝(920)에서 QA용의 타이머 개입중단인 QA개입 중단인지의 여부를 판정한다.
QA개입중단인 경우에는 스텝(922)에서 센서 출력 샘플링금지 플랙이 세트되어 있는지의 여부를 판정한다 금지 플랙이 세트되어 있는 경우에는 이 소프트 웨어는 종료한다. 또, 금지 플랙이 세트되어 있지 않는 경우에는, 스텝(924)에서 V의 샘플링을 행한다. 스텝(926)에서 아날로그 카운터 값인 제24도의 어드레스 AAB 3의 내용을(+) 증가시킨다. 다음에 스텝(928)에서는 V의 샘플링이 완료되었는지의 여부(아날로그 카운터에서 표시되는 샘플링 회수가 규정회수에 달했는지 여부)를 판정한다. V의 샘플링이 완료하면 스텝(934)에서 제17도의 카운터를 리세트 하기 위해 FF(774)를 세트하여 AND게이트(776)를 동작 상태로 한다. 이 때문에 REF신호로 FF(742)는 리세트 되고, 스텝(936)에서 아날로그 카운터가 리세트 된다. 또 스텝(928)에서 샘플링이 완료되어 있지 않은 경우에는, 스텝(930)에서 공기유량센서의 출력을 샘플링하기 위한 ADC 2의 기동을 행한다. 이 기동에 의거한 디지탈 값은 ADC 2의 디지탈 변환이 끝난후, 제4도의 레지스터(130)에 격납되어 있으므로 다음 사이클의 스텝(924)에서 인출된다. 스텝(932)에서는 스텝(924)에서 인출된 값을 사용하여(V-C)2의 연산을 행한다. 이 식에서 C는 정수이다. 이 (V-C)2의 연산치는 제24도의 어드레스 AAA 4~AAA 8로 나타낸 RAM내에 순차적으로 세트된다. 즉 제22도의 점 "1"에 대응하는 값은 어드레스 AAA 4에, "2"에 대응하는 갑은 어드레스 AAA 5에 이런 순으로 격납되어 점"5"에 대응하는 값은 어드레스 AAA 8에 격납된다. 이러한 어드레스의 결정은(AAA 4)+(아날로그 카운터 값)-1이 된다. 또 스텝(920)에서 개입중단이 아니라고 판정하면, 스텝(938)에서 ADCEND개입중단인지의 여부를 판정한다. 스텝(938)에서 ADCEND개입중단인 경우에는, 스텝(940)에서 제16도의 플랙 IST=1인지의 여부를 판정하고, 플랙 IST=1의 경우에는, 스텝(942)에서 공기유량센서, 출력(V)의 인출을 행한다. 이 센서출력(V)은 엔진기동기 모우터를 사용하지 않은 기동 검출에 사용된다. 또 스텝(938)에서 ADCEND개입중단이 아닌 경우와 스텝(940)에서 플랙 IST=1 이 아닌 경우에는, 모두 제15도의 스텝(628)에서 기동하는 INTV개입중단 처리로 이동한다.
다음에 제13도에 나타낸 공기량 신호처리 ADCEND(610)의 타스크에 관하여 제26도를 사용하여 설명한다. 공기량 신호처리 타스크는 동도에 나타낸 바와 같이, 스텝(950)에서 타스크를 기동한다. 타스크가 기동되면 스텝(952)에서 공기유량 센서의 출력(V)의 샘플링 금지플랙을 세트한다. 다음 스텝(953)에서 {(V-C)2}3의 계산을 행하여 그 결과를 제24도의 RAM의 어드레스 AAA 9~AAAD에 순서적으로 격납한다. 다음에 스텝(954)에서 샘플링 금지플랙을 리세트한다. 샘플링 금지플랙을 리세트하면 단계(955)에서 상기 스텝(953)에서 RAM에 격납된 값 {(V-C)2}3을 적산하여 평균한다. 적산하여 평균한 값이 엔진으로 공급된 공기량이다. 이 공기량을 QA로 하여 스텝(956)에서 엔진이 가속상태인지의 여부를 판정한다. 이 스텝(956)에서 가속상태라고 판정되면, 스텝(957)에서 가속분사를 행한다. 스텝(956)에서 비가속상태로 판정됐을 경우에는, 스텝(958)에서 엔진 회전속도의 샘플링을 행한다. 이 엔진회전 속도의 계측은 제4도의 회로(126)에서 행해진다. 이 회로(126)에는 카운터가 있어 일정시간 ANGL센서(53)의 POS출력을 계수한다. 이 계수값이 엔진 전회속도를 나타낸다. 이 엔진 회전속도 N는 제24도의 RAM(106)의 어드레스 AAA1에 격납한다. 그리고 제23도의 스텝(932)와 제26도의 스텝(953)대신에, ROM내에 연산결과치를 격납해 두고, 스텝(944)에서 그것을 독출해도 무방하다.
제27도는 제4도에 나타낸 공기 유량센서(24)의 상세도이다. 감온성(感溫性) 저항(1003), (1006)은 같은 재료 예컨대 온도계수 α인 백금으로 제조된다. 감온성 저항(1006)은 측로를 흐르는 공기의 온도를 측정할 수 있도록 측로(22)에 설치된다. 기동회로(1023)의 작동은 다음과 같다. 전원이 "ON"되면, 증폭기(1008)는 일시적으로 출력신호를 출력하여 트랜지스터(1002)를 "ON"시킴으로써, 제27도의 회로를 동작시킨다. 전원이 "OFF"가 되면, 트랜지스터(1002)는 "OFF"상태가 되고 연산증폭기(1008), (1012)의 출력신호가 0이 된다. 전원이 "ON"될때, 전원 전압 Vcc는 트랜지스터(1002)의 콜렉터와 회로(1023)에 인가된다. 따라서 다이오우드(1019), (1020)는 각각 순방향 전압강하 Vd를 가지므로, 아이오우드(1018)의 양극전위는 2Vd가 되고, 또 아이오우드(1018)의 순방향 전압강하도 Vd이므로 연산증폭기(1008)의 비반전 입력단위 전위는 1Vd가 된다. 이때 증폭기(1008)의 반전입력단위 전위는 0이 되고, 따라서 연산증폭기(1008)의 출력신호는 H레벨이 되어 트랜지스터(1002)는 도통상태가 된다. 감온성 저항(1003), (1006)을 포함한 회로가 평형상태가 될때, 연산증폭기(1008)의 반전 입력단 및 비반전 입력단의 전압이 모두 다이오우드 양단의 순방향 전압 강하 Vd보다 커지므로 다이오우드(1018)는 역바이어스 되고 기동회로(1023)는 전기적으로 연산 증폭기(1008)로부터 차단된다.
제27도에 도시된 NPN트랜지스터(1002) 대신에 PNP트랜지스터를 사용할때는, 다이오우드(1018)의 음극이 연산증폭기(1008)의 비반전 입력 대신에 반전입력에 접속되어야 한다.
기동회로에 의하여 트리거(trigger)되는 트랜지스터(1002)가 도통상태가 될때, 트랜지스터(1002)의 에미터 전류는 저항(1003), (1004)의 직렬회로와 저항(1009), (1010)로 구성되는 전압분압회로에 흐르게 된다.
저항(1003), (1004), (1006), (1009), (1010), (1011)의 저항치를 R3, R4, R6, R9, R10, R11로 표기하고 저항(1004)의 전압 강하를 V4로, 저항(1003)의 전압강하를 V3로 표기하자.
연산증폭기(1012)는 그의 반전입력단자의 전위와 비반전 입력단자의 전위 즉, 저항(1003), (1004)의 접점(node) 전위와 저항(1006), (1011)의 접점 전위를 비교하여 그 입력전위가 서로 같아지도록 출력 전위를 조정한다. 연산증폭기(1012)의 출력전위는 V4×R6/R11×V4가 된다.
연산증폭기(1008)는 트랜지스터(1002)의 베이스 전압을 제지함으로써, 저항(1003)의 분압전압인 저항(1009), (1010)의 접점전위{V4+R10×V3/(R9×R10)}과 연산증폭기(1012)의 출력 전위가 서로 같아지게 한다. 주의할 것은 증폭기(1008)가 저항(1003)의 양 단간 전압이 저항(1006)의 외양단간 전압이 같아지도록 제어하는 것이 아니고, 감온 저항(1003)의 양단간의 분압 전압과 감온 저항(1006)의 양단간 전압을 비교하여 이 전압들이 서도 등전위가 되도록 제어한다는 점이다. 결과적으로 저항(1006)양단간의 전압은 저항(1003)양단간의 전압보다 훨씬 작게 선택된다.
평형 상태가 된 제27도의 회로의 출력은, 다음과 같이 구하여 진다. 저항(1009), (1010)의 저항치의 합은 감온 저항(1003)의 저항치보다 크게 설정된다. 감온저항(1003), (1006)의 저항치는 다음식에 의한다.
R3=R30(1+αT3)……(1)
R6=R60(1+αT6)……(2)
이며, 여기서
R30은 기준 온도에서 저항(1003)의 저항치, R60은 기준 온도에서 저항(1006)의 저항치, T3은 저항(1003)의 표면 온도, T6은 저항(1006)의 표면 온도이다.
제27도로부터 R4×R6=K×R11×R3……(3)의 관계가 주어지며, 여기서 K=R10/(R9+R10)이다. 식 (1), (2)를 식 (3)에 대입하면, T3-T6=ΔT=1/α×(1-K×R11·R4/R4·R60)(1+αT3)……(4)의 관계를 얻을 수 있다.
유체내에 있는 감온성 저항의 발열량과 유체에 의하여 방출되는 열량사이의 관계는 다음과 같은 관게가 있다.
Q=I2R3=(C1+C2
Figure kpo00006
)ΔT……(5)
여기서, I는 저항(1003)을 흐르는 전류, C1과 C2는 상수, qam은 공기유량, Q는 감온성 저항(1003)의 발열량이다.
식 (1), (5)로부터 Q=I2R30=(1+αT3)(C1+C2
Figure kpo00007
)ΔT……(6) 를 얻을 수 있고, 다시 식 (4), (6)으로부터 Q=I2R30=(1+αT3)=1/α×(C1+C2
Figure kpo00008
)(1-K×R11·R30/R4·R60)×(1×αT3)……(7) 를 얻을 수 있다. 따라서 I2=1/R30×(C1+C2
Figure kpo00009
)(1-K×R11·R30R4·R60)=K(C1+C2
Figure kpo00010
)……(8)
단 K=1/R30(1-KXR11·R30/R4·R60)이다.
식(4)에서 알수 있는 바와 같이, 온도차 ΔT는 단지 T3의 함수이므로 회수 소자값을 조정할 필요은 없다.
이 온도차 ΔT는 식(8)을 만족하므로 감온저항(1003)을 흐르는 전류는 단지 공기유량(qam)의 함수가 된다.
따라서 회로가 평형 상태일때 감온성 저항(1003)과 저항(1004)을 흐르는 전류는 서로 같으므로, 공기유량은 저항 R4양단간의 전압을 측정하므로 구할 수 있다.
즉 본 실시에에서 저항 R4양단간의 전압은 연산증폭기(1013)에 의하여 발생된다. 저항(1014), (1016)는 연산증폭기 (1013)의 증폭도를 1로 하였으므로 연산 증폭기(1013)의 출력단(1024)의 전압은 다음 식으로 주어진다.
V=I·R4=R4T3 ……(9)
이 전압식은 공기유량의 함수이다.
따라서 qam은 전압 V의 함수가 된다. 감온저항 (1003), (1006)의 양단간 전압비 V3/V6은, V3/V6=R3·R11/R6·R4……(10)가 된다. 감온저항 (1003), (1006)의 저항치기 사로 같을때 전압비는, V3/V6=R11·R4……(11)가 된다. 식(11)은, 저항(1011)의 저창치가 저항(1004)의 저항치보다 훨씬 크게 하면 감온성저항(1006)에 인가되는 전압은 감온성 저항(1003)에 인가되는 전압보다 훨씬 작아진다. 따라서 감온성 저항(1006)은 자체적으로 가열되지 않으므로, 공기의 온도가 정확하게 측정될 수 있고, 공기 온도 변화에 대한 온도 보정을 올바르게 행할 수 있다. 더우기 감온성 저항(1003)을 흐르는 전류를 크게 설정할 수 있다.
공기유량에 대한 감도가 양호해지므로, 제27도의 회로가 자동차에 장착될 때 축전지의 전압이 12V정도로 낮도라도 양호한 감도를 얻을 수 있다. 또한 본 발명에 의한 회로에서는 감온성 저항을 동일 저항이 사용 가능해지므로 측정의 정확도가 향상되고, 또한 경제적인 생산성도 높아지게 된다.
제너 다이오우드(1016)의 동작은 다음과 같다.
제27도의 회로가 정상 상태에서 동작할때, 감온성 저항(1003), (1004)로 구성되는 직렬회로의 양단간의 전압 즉, 단자(1025)의 전위와, 저항(1004)의 양단 단자전압인, 연산증폭기(1012)의 비반전 입력단자의 전위는 서로 비례적으로 변한다.
감온성 저항(1003)이 차단되거나 트랜지스터(1002)가 항복상태(break down)가 되어 도통되면, 전압변화의 비례관계가 저해되어 저항(1009), (1010), (1004)을 흐르는 전류와 저항(1004)양단간의 전압이 증가하게 된다.
이때 단자(1025)의 전위는 제니아이오우드(1016)의 파괴전압까지 상승하게 되어 제너다이오우드는 도통상태가 되고, 연산증폭기(1013)의 반전 입력단자의 전위는 증가하게 된다. 그 결과 연산증폭기의 출력 전압이 저하하여 이는 공기유량이 거의 0에 달했음을 의미한다.
따라서 연료 분사의 오동작 즉, 연료분사기(12)가 과량의 연료를 분사시키는 것이 방지되고, 또한 화재와 같은 사고를 초래하는 과전류가 과열된 감온성 저항(1003)에 흐르는 것이 방지된다.

Claims (1)

  1. 흡기통로로부터 흡입된 공기와 연료공급장치로부터 공급된 연료로 만들어진 공기-연료 혼합기를 연소시켜 얻은 열에너지를 기계적 에너지로 변환하고, 이 기게적 에너지로 출력축을 회전시키고, 상기 연소에 의하여 발생한 배기 가스를 배기 통로로부터 배출하는 엔진과, 상기 엔진의 흡기통로내의 흡입공기의 상태에 따라 출력을 발생하는 공기유량센서와, 이 공기유량센서의 출력에 의거하여 상기 연료장치를 구동하는 제어 신호를 출력하는 연산회로로 구성되는 엔진 제어계를 제어하기 위하여 상기 공기 유량센서의 출력으로 부터 엔진으로 흡입되는 공기량을 연산하는 스텝과 이 공기량 연산스텝의 출력으로부터 상기 제어신호를 만드는 스텝과 이 제어신호에 의거하여 상기 연료공급장치를 구동하는 스텝으로 구성되는 엔진 제어방법에 있어서, 상기 공기량 연산 스텝은 엔진의 회전에 동기하여 상기 공기유량센서의 출력을 샘플링하기 위한 센서 출력 샘플링 타이밍을 나타내는 데이터를 발생하는 제1스텝, 상기 센서출력 샘플링 타이밍을 나타내는 데이터에 의거하여 상기 센서출력을 샘플링 하기 위한 타이밍을 나타내는 타이밍 신호를 발생하는 제2스텝과, 이 제2스텝의 타이밍 신호에 의거하여 공기유량 센서의 출력을 샘플링하는 제3스텝과, 이 제3스텝에 의해 샘플링된 복수개의 값으로부터 흡입 공기량을 구하는 제4스텝으로 구성되는 것을 특징으로 하는 엔진제어 방법.
KR1019810000535A 1981-02-19 1981-02-19 엔진 제어 방법 KR850000933B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019810000535A KR850000933B1 (ko) 1981-02-19 1981-02-19 엔진 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019810000535A KR850000933B1 (ko) 1981-02-19 1981-02-19 엔진 제어 방법

Publications (2)

Publication Number Publication Date
KR830005475A KR830005475A (ko) 1983-08-20
KR850000933B1 true KR850000933B1 (ko) 1985-06-28

Family

ID=19220232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019810000535A KR850000933B1 (ko) 1981-02-19 1981-02-19 엔진 제어 방법

Country Status (1)

Country Link
KR (1) KR850000933B1 (ko)

Also Published As

Publication number Publication date
KR830005475A (ko) 1983-08-20

Similar Documents

Publication Publication Date Title
US4523284A (en) Method of controlling internal combustion engine
EP0017932B1 (en) Engine controlling method
EP0017219B1 (en) Electronic type engine control method and apparatus
US4310888A (en) Technique for controlling the starting operation of an electronic engine control apparatus
US4450815A (en) Internal combustion engine control apparatus
JPS6360220B2 (ko)
JPS623303B2 (ko)
US4363307A (en) Method for adjusting the supply of fuel to an internal combustion engine for an acceleration condition
GB2058406A (en) Electronic control method for an internal combustion engine
GB2054212A (en) Method of controlling air-fuel ratio for internal combustion engine
US4437445A (en) Method and apparatus for controlling the fuel feeding rate of an internal combustion engine
US4266274A (en) Microprocessor-based engine control systems
JPH0112931B2 (ko)
US4564907A (en) Electronic control apparatus for internal combustion engine
EP0189047A1 (en) Method of engine control
KR880001665B1 (ko) 연료분사제어장치
KR900000145B1 (ko) 내연기관의 연료제어장치
JPS6343579B2 (ko)
KR850000933B1 (ko) 엔진 제어 방법
US4760829A (en) Fuel control apparatus for a fuel injection system of an internal combustion engine
JPH0217703B2 (ko)
US4522178A (en) Method of fuel control in engine
KR900002316B1 (ko) 점화시기 제어장치
KR840001328B1 (ko) 내연기관의 공연비(空撚比)제어 방법
JPH0118443B2 (ko)