KR850000119B1 - Control method of electronic engine - Google Patents

Control method of electronic engine Download PDF

Info

Publication number
KR850000119B1
KR850000119B1 KR1019800001563A KR800001563A KR850000119B1 KR 850000119 B1 KR850000119 B1 KR 850000119B1 KR 1019800001563 A KR1019800001563 A KR 1019800001563A KR 800001563 A KR800001563 A KR 800001563A KR 850000119 B1 KR850000119 B1 KR 850000119B1
Authority
KR
South Korea
Prior art keywords
program
task
register
level
irq
Prior art date
Application number
KR1019800001563A
Other languages
Korean (ko)
Other versions
KR830002993A (en
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 KR1019800001563A priority Critical patent/KR850000119B1/en
Publication of KR830002993A publication Critical patent/KR830002993A/en
Application granted granted Critical
Publication of KR850000119B1 publication Critical patent/KR850000119B1/en

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/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

A process for electronically controlling an internal combustion engine employs a plurality of engine controlling programs to be executed by a central processing unit classified into a number of task programs in accordance with processing functions of the CPU. The periods at which the task programs are to be activated are determined in consideration of the influential significance of the tasks in controlling the engine, whereby the task programs are executed in accordance with the activation periods thereof under supervision of a program for monitoring the plurality of the engine control programs.

Description

전자식 엔진 제어방법Electronic engine control method

제1도∼제23도는 본 발명의 제어방법을 기화기를 갖춘 내연기관에 적용한 경우의 제1실시예를 나타낸 도면으로서,1 to 23 show a first embodiment when the control method of the present invention is applied to an internal combustion engine equipped with a vaporizer.

제1도는 엔진의 드로틀 챔버의 단면도.1 is a cross-sectional view of a throttle chamber of an engine.

제2도는 점화장치의 개략도.2 is a schematic view of an ignition device.

제3도는 백기가스 환류장치의 시스템도.3 is a system diagram of a white gas reflux apparatus.

제4도는 제어시스템의 전체 구성 블록도.4 is an overall block diagram of a control system.

제5도는 제4도의 제어회로의 프로그램 시스템도.5 is a program system diagram of the control circuit of FIG.

제6도는 ROM내에 기억된 프로그램 내용을 나타내는 메모리의 구성도.6 is a configuration diagram of a memory showing program contents stored in a ROM.

제7도는 초기 프로그램의 상세한 플로우챠아트.7 is a detailed flowchart of the initial program.

제8도는 감시 프로그램의 상세한 플로우챠아트.8 is a detailed flowchart of the monitoring program.

제9도는 엔진 시동시의 점화시기를 나타내는 특성도.9 is a characteristic diagram which shows the ignition timing at engine start.

제10도는 엔진 시동시의 연료공급량을 나타내는 특성도.10 is a characteristic diagram showing fuel supply amount at engine start-up.

제11도는 엔진 시동시의 공기공급량을 나타내는 특성도.11 is a characteristic diagram showing an air supply amount at engine start-up.

제12도는 EGRCAL과 FISC 프로그램의 상세도.12 is a detailed view of the EGRCAL and FISC programs.

제13도는 제5도의 프로그램(224)의 상세한 플로우챠아트도.13 is a detailed flowchart art of the program 224 of FIG.

제14도는 타스크 스케듈러(TASK SCHEDULER)의 상세한 플로우 챠아트.14 is a detailed flowchart of the task scheduler (TASK SCHEDULER).

제15도는 타스크 레벨 프로그램의 기동요구 발생동작을 설명하기 위한 설명도.15 is an explanatory diagram for explaining the operation of generating a start request for a task level program;

제16도는 EXIT 프로그램의 상세한 플로우챠아트.16 is a detailed flowchart of the EXIT program.

제17도는 프로그램의 처리순서의 설명도.17 is an explanatory diagram of a processing procedure of a program.

제18도는 레벨 프로그램의 상태변화를 나타내는 도면.18 is a view showing a state change of a level program.

제19도는 배경 조브(BACKGROUND JOB)의 상태변화를 설명하기 위한 도면.19 is a view for explaining a state change of the background job (BACKGROUND JOB).

제20도는 레벨 제로(0) 타스크의 프로그램의 상세한 플로우챠아트.20 is a detailed flowchart of the program of the level zero task.

제21도는 레벨 1타스크의 프로그램의 상세한 플로우챠아트.21 is a detailed flowchart of the program of the level 1 task.

제22도는 IRQ 발생회로도.22 is an IRQ generation circuit diagram.

제23도∼제28도까지는 본 발명의 제어방법을 연료분사형의 내연기관에 적용한 경우의 제 1실시예를 나타낸 도면으로서,23 to 28 show a first embodiment in which the control method of the present invention is applied to a fuel injection type internal combustion engine.

제23도는 엔진 제어장치의 개략구성을 나타내는 단면도.Fig. 23 is a sectional view showing a schematic configuration of an engine control device.

제24도는 제어장치의 전체구성 블록도.24 is a block diagram of the overall configuration of the control device.

제25도는 초기 프로그램의 상세한 플로우챠아트.25 is a detailed flowchart of the initial program.

제26도는 엔진 시동시의 연료공급량을 나타내는 특성도.Fig. 26 is a characteristic diagram showing a fuel supply amount at engine start-up.

제27도는 EGRCAL과 FISC 프로그램의 상세한 플로우챠아트.27 is a detailed flowchart of EGRCAL and FISC programs.

제28도는 레벨 1 타스크의 프로그램의 상세한 플로우챠아트.28 is a detailed flowchart of the program of the level 1 task.

제29도는 제4도의 CABC(162), FSC(176) 및 제24도의 IFSC 레지스터 및 EGRC 레지스터에 관련한 상세한 블록회로도.FIG. 29 is a detailed block circuit diagram relating to the CABC 162, FSC 176 and FIG. 24 IFSC registers and EGRC registers of FIG.

제30도는 제4도 및 제24도의 IGNC(168), (1138)에 관련한 상세한 블록회로도.30 is a detailed block diagram of the IGNCs 168 and 1138 of FIGS. 4 and 24;

제31도는 제4도 및 제24도의 이산형 입출력회로(DIO)(128)에 관련한 상세한 회로도.FIG. 31 is a detailed circuit diagram relating to the discrete input / output circuitry (DIO) 128 of FIGS. 4 and 24. FIG.

제32도는 제24도의 INJD 레지스터에 관련한 상세한 블록회로도.32 is a detailed block circuit diagram related to the INJD register of FIG.

제33도는 제32도에 있어서의 회로 동작을 설명하기 위한 파형도이다.FIG. 33 is a waveform diagram for explaining the circuit operation in FIG.

본 발명은 내연기관의 전자식 제어방법에 관한 것으로서, 특히 중앙처리장치(이하 CPU라 함)에 의한 디지틀 연산처리에 의하여 내연기관을 제어하는 제어방법에 관한 것이다.The present invention relates to an electronic control method for an internal combustion engine, and more particularly, to a control method for controlling an internal combustion engine by digital arithmetic processing by a central processing unit (hereinafter referred to as a CPU).

CPU를 사용하여 소정의 프로그램에 따라 엔진을 제어하는 방법 및 장치는 미국 특허 3,969,614 및 4,163,282에 게시되어 있다. 이러한 종래의 기술에 의하면, 그 제어대상마다 센서로 부터의 정보인출에서부터 엔진을 제어하고자 하는 모든 기능에 대한 제어량의 설정까지의 일련의 프로그램을 엔진의 상태에 따라 실행하고 있었다. 이와 같은 제어프로그램으로서는 예컨대, 연료량 제어프로그램이나 점화시기 제어 프로그램 및 엔진 시동 프로그램 등이 있었다. 연료량 제어프로그램이나 점화시기 제어프로그램등은 예컨대, 엔진 회전의 일정 크랭크각에 동기하여 실행되며, 상기 프로그램의 연산결과인 연료공급량이나 점화시기 진각량을 펄스출력회로에 출력함으로써 상기 프로그램의 타스크 처리를 종료시키고 있었다.Methods and apparatus for controlling an engine in accordance with a predetermined program using a CPU are disclosed in US Pat. Nos. 3,969,614 and 4,163,282. According to this conventional technique, a series of programs are executed in accordance with the state of the engine for each control object from information extraction from the sensor to setting of the control amount for all functions to control the engine. Such control programs include, for example, a fuel amount control program, an ignition timing control program and an engine start program. The fuel amount control program, the ignition timing control program, and the like are executed in synchronization with, for example, a constant crank angle of the engine rotation, and the task processing of the program is executed by outputting the fuel supply amount or the ignition timing advance amount, which is the result of the calculation, to the pulse output circuit. Was shutting down.

이와 같이 엔진의 어떤 상태에서 프로그램을 실행하게 되면, 제어시스템인 CPU의 부하상태가 엔진의 동작상태에 따라 크게 변동한다.When the program is executed in any state of the engine as described above, the load state of the CPU, which is the control system, varies greatly depending on the operation state of the engine.

따라서 엔진상태가 급변하는 상태에서는 CPU의 부하가 급변하는 상태에 따라서 현저히 커져 CPU의 서어비스(serviceablity : 하드웨어 혹은 소프트웨어의 착오검출, 진단 및 수리의 용이성에 대한 정도)가 저하한다. 예컨대, 엔진속도가 저속에서 중속, 그리고 고속으로 변화하는 경우, 종래의 시스템에서는 CPU에의 타스크 처리의 실행회수인 연산요구회수가 엔진속도에 따라 증대하여, CPU는 이 요구에 응할 수 없는 경우가 있을 수 있다.Therefore, in a state in which the engine state is suddenly changed, the CPU load is significantly increased in accordance with the state in which the CPU load is suddenly changed, thereby degrading the serviceability of the CPU (easiness of error detection, diagnosis and repair of hardware or software). For example, when the engine speed changes from low speed to medium speed and high speed, in the conventional system, the number of times of operation request, which is the number of executions of task processing to the CPU, increases with the engine speed, and the CPU may not be able to meet this request. Can be.

한편, 저속시에는 CPU의 부하율이 저하하여 CPU의 능력이 쓸모없이 된다. 이와 같이 종래의 장치 및 방법에서는 제어계 전체로서 CPU의 능력에 상응하는 서어비스 를 얻을 수 없다는 불편이 있었다.On the other hand, at low speeds, the load factor of the CPU decreases, and the capability of the CPU becomes useless. As described above, in the conventional apparatus and method, it is inconvenient to obtain a service corresponding to the capability of the CPU as a whole of the control system.

또 상기한 특허에서는 복수의 제어프로그램중 하나의 프로그램 내용을 변경할 필요가 생겼을 경우나 또는 새로운 프로그램을 추가하는 경우에는, 일부분만의 변경으로는 안되며, 결국 복수제어프로그램의 전체를 재작성하지 않으면 안된다는 불편이 있었다.In addition, in the above patent, when it is necessary to change the contents of one of a plurality of control programs or when a new program is added, only a partial change is necessary, and eventually, the entire control programs must be rewritten. There was inconvenience.

본 발명의 목적은 엔진의 상태변화에 영향을 받지 않고, 항상 높은 제어성능을 얻을 수 있는 엔진의 제어방법을 제공하는데 있다.It is an object of the present invention to provide a control method of an engine which can always obtain a high control performance without being affected by a change in the state of an engine.

본 발명은 CPU가 행하는 복수의 엔진 제어내용을 그 CPU의 처리기능에 따라 몇개의 타스크로 나누어, 그 각 처리기능이 엔진의 제어성에 미치는 영향에 따라 즉, 중요성에 따라 그 기동주기를 결정하고, 그 기동주기에 따라서 타스크의 프로그램을 실행한다. 이와 같이 하면, 엔진의 제어성에 있어서 높은 서어비스성을 필요로 하는 타스크 서어비스의 비율을 크게 높일 수 있고, 그리고 CPU의 부하상태는 엔진의 상태 즉, 엔진 회전수 등이 변동하더라도 거의 변화하지 않는다.The present invention divides a plurality of engine control contents performed by a CPU into several tasks according to the processing functions of the CPU, and determines the start cycle according to the influence of each processing function on the engine controllability, that is, the importance. The program of the task is executed in accordance with the start cycle. In this way, the ratio of the task service which requires high serviceability in engine controllability can be raised significantly, and the load state of a CPU hardly changes even if the state of an engine, ie, engine speed, etc. changes.

따라서 CPU의 능력을 충분히 발휘한 제어성능이 뛰어난 제어를 할 수 있게 된다.Therefore, it is possible to control with excellent control performance that fully exhibits the capabilities of the CPU.

또 본 발명은 복수의 엔진 제어내용(제어프로그램)의 실행을 관리하기 위한 관리프로그램을 갖추고, 또 복수의 제어프로그램중의 하나의 프로그램 내용을 변경할 경우 또는 새로운 프로그램을 추가하는 경우에는 다른 제어프로그램에 하등의 영향을 주지 않고 해당 프로그램의 내용을 변경 또는 추가하면 되므로, 프로그램 내용의 변경이 대단히 용이하다.In addition, the present invention has a management program for managing the execution of a plurality of engine control contents (control program), and when a program content of one of the plurality of control programs is changed or a new program is added to another control program. The contents of the program can be changed or added without any influence, and thus the contents of the program can be easily changed.

본 발명의 기타 목적 및 이점은 이하의 도면에 따른 설명에 의하여 명백해질 것이다.Other objects and advantages of the present invention will become apparent from the following description of the drawings.

우선, 본 발명은 기화기를 갖춘 내연기관에 적용한 경우의 제1실시예에 관해 제1도∼제22도를 참조하여 설명한다.First, the present invention will be described with reference to FIGS. 1 to 22 with reference to the first embodiment when applied to an internal combustion engine equipped with a vaporizer.

제1도는 엔진의 드로틀 챔버의 단면도이다. 먼저 이 드로틀챔버 주변에 설치된 각 솔레노이드의 동작에 의하여 드로틀 챔버에 공급되는 연료량 및 바이페스 공기량의 제어를 설명한다. 가속페달(도시치 않음)에 의하여 저속측 드로틀밸브(12)의 개방정도가 제어되고, 이에 따라 공기청정기(도시생략)로부터 엔진의 각 실린더에 대한 공급공기량에 제어된다. 이 저속 드로틀밸브의 개구를 크게함에 따라 저속측 벤튜리(34)의 통과공기량이 증대하면, 이 저속측 벤튜리의 부압(負壓)에 의존하는 다이어프램(도시생략)에 의하여 고속측 드로틀밸브(14)가 개구된다. 이로써 흡입공기량 증가에 따른 저항의 증대가 경감한다. 이와 같이 하여 드로틀밸브(12), (14)의 제어하에 엔진에 공급되는 공기의 유량은, 부압센서(도시생략)에 의하여 아날로그량으로써 변환한다. 이 아날로그량 및 기타 후술하는 센서로부터의 신호에 의거하여 제1도의 각 솔레노이드밸브(16), (18), (20), (22)의 개방정도가 제어된다.1 is a cross sectional view of a throttle chamber of an engine. First, the control of the amount of fuel and the bypass air supplied to the throttle chamber by the operation of each solenoid installed around the throttle chamber will be described. The opening degree of the low-speed side throttle valve 12 is controlled by an accelerator pedal (not shown), thereby controlling the amount of air supplied to each cylinder of the engine from the air cleaner (not shown). If the passage air volume of the low speed side venturi 34 increases as the opening of the low speed throttle valve is enlarged, the high speed side throttle valve 14 is caused by a diaphragm (not shown) depending on the negative pressure of the low speed side venturi 34. ) Is opened. As a result, the increase in resistance due to the increase in the amount of intake air is reduced. In this way, the flow rate of the air supplied to the engine under the control of the throttle valves 12 and 14 is converted into an analog amount by a negative pressure sensor (not shown). The opening degree of each solenoid valve 16,18,20,22 of FIG. 1 is controlled based on this analog quantity and the signal from the sensor mentioned later.

다음에 연료공급량의 제어에 관하여 설명한다. 연료탱크로부터 공급된 연료는 도관(24)으로부터 메인제트관(26)을 거쳐 도관(28)으로 유입된다. 또한 도관(24)의 연료는 메인 솔레노이드 밸브(18)를 거쳐 도관(28)으로 유입된다. 따라서 도관(28)으로 유입된 연료는 메인 솔레노이드 밸브(18)의 개구가 커지면 커질수록 많아지며, 이들 연료는 다시 엔진 에멀션 튜브(30)에서 공기와 혼합되고 메인 노즐(32)을 통과하여 벤튜리(34)에 공급된다. 고속드로틀밸브(14)의 개방시에는 메인노즐(32)에 연통한 노즐(36)에서도 벤튜리(38)에 연료가 공급된다. 한편, 메인 솔레노이드 밸브(18)와 동시에 슬로우(slow) 솔레노이드 밸브(16)도 제어되어 이 슬로우 솔레노이드 밸브(16)가 개방되면, 공기 청정기를 거친 공기는 개방구(40)로부터 도관(42)으로 공급된다. 한편 도관(28)으로부터의 연료는 슬로우 에멀션 튜브(44)를 거쳐 도관(42)으로 공급된다. 따라서 도관(42)의 연료량은 슬로우 솔레노이드 밸브(16)로부터의 공기량이 증대하는 만큼 적어진다. 이 도관(42)의 연료와 공기의 혼합물은 구멍(46)으로부터 드로틀 챔버에 공급된다.Next, control of the fuel supply amount will be described. Fuel supplied from the fuel tank flows from the conduit 24 to the conduit 28 via the main jet pipe 26. Fuel in conduit 24 also enters conduit 28 via main solenoid valve 18. Therefore, the fuel introduced into the conduit 28 increases as the opening of the main solenoid valve 18 increases, and these fuels are mixed with air in the engine emulsion tube 30 again and pass through the main nozzle 32 to venturi. 34 is supplied. When the high speed throttle valve 14 is opened, fuel is supplied to the venturi 38 even through the nozzle 36 communicating with the main nozzle 32. On the other hand, when the slow solenoid valve 16 is controlled at the same time as the main solenoid valve 18 and the slow solenoid valve 16 is opened, the air passing through the air purifier is discharged from the opening 40 to the conduit 42. Supplied. Meanwhile, fuel from conduit 28 is supplied to conduit 42 via slow emulsion tube 44. Therefore, the amount of fuel in the conduit 42 becomes smaller as the amount of air from the slow solenoid valve 16 increases. The mixture of fuel and air in this conduit 42 is supplied to the throttle chamber from the aperture 46.

연료 솔레노이드 밸브(20)는 연료량을 증가시키기 위한 밸브로서 엔진 시동을 위하여 연료량을 증가시키거나 엔진을 난기시키기 위하여 연료를 증가시키는데 사용된다. 도관(24)과 연통된 구멍(42)으로부터 유입된 연료는 연료 솔레노이드 밸브(20)의 개방정도에 따라, 드로틀 챔버로 통하는 도관(50)에 유입된다.The fuel solenoid valve 20 is a valve for increasing the amount of fuel, and is used to increase the amount of fuel for starting the engine or to increase the fuel for warming the engine. Fuel introduced from the hole 42 in communication with the conduit 24 flows into the conduit 50 leading to the throttle chamber, depending on the opening degree of the fuel solenoid valve 20.

공기 솔레노이드 밸브(32)는 엔진에 공급되는 공기량을 제어하는 밸브로서, 공기청정기로부터의 공기가 개방구(52)로부터 공기 솔레노이드 밸브(22)로 공급되고, 그 개방의 정도에 따라 드로틀챔버로 통하는 도관(54)에 유입된다.The air solenoid valve 32 is a valve for controlling the amount of air supplied to the engine. The air from the air cleaner is supplied from the opening 52 to the air solenoid valve 22, and passes through the throttle chamber according to the degree of the opening. Flows into conduit 54.

제1도의 슬로우 솔레노이드 밸브(16)와 메인 솔레노이드 밸브(18)에 의하여 공연비를 제어하여, 연료 솔레노이드 밸브(20)에 의해 연료량을 증가시킨다. 또 슬로우 솔레노이드 밸브(16)와 메인 솔레노이드 밸브(18) 및 공기 솔레노이드 밸브(22)로써 무부하시의 엔진속도를 제어한다.The air fuel ratio is controlled by the slow solenoid valve 16 and the main solenoid valve 18 of FIG. 1, and the fuel amount is increased by the fuel solenoid valve 20. FIG. Moreover, the engine speed at no load is controlled by the slow solenoid valve 16, the main solenoid valve 18, and the air solenoid valve 22. FIG.

제2도는 점화장치를 나타내며, 증폭기(62)를 거쳐 전력 트랜지스터(64)에 펄스전류가 공급되며 이 전류에 의하여 트랜지스터(64)는 온(ON)된다. 이로 인하여 축전지(66)로부터 점화코일(68)에 1차코일 전류가 흐른다. 입력펄스 전류의 하강으로 트랜지스터(64)는 오프(off)상태가 되고 점화코일(68)의 2차코일에 고전압을 발생시킨다. 이 고전압은 엔진회전에 동기하여 배전기(70)를 거쳐 엔진의 각 실린더에 있는 점화플로그(72)의 각각에 공급된다.2 shows an ignition device, in which a pulse current is supplied to the power transistor 64 via the amplifier 62, and the transistor 64 is turned on by this current. As a result, the primary coil current flows from the storage battery 66 to the ignition coil 68. As the input pulse current falls, the transistor 64 is turned off and generates a high voltage at the secondary coil of the ignition coil 68. This high voltage is supplied to each of the ignition plugs 72 in each cylinder of the engine via the distributor 70 in synchronization with engine rotation.

제3도는 배기가스 완류(이하 EGR라 함) 시스템을 설명하기 위한 것으로서, 부압원(80)의 일정한 부압이 압력제어밸브(84)를 거쳐 제어밸브(86)에 가해진다. 압력제어밸브(84)는 트랜지스터(90)에 인가되는 반복펄스의 온듀티 사이클에 따라 부압원(80)의 일정부압을 대기(88)로 개방하는데 대한 비율을 제어하여 제어밸브(86)에 인가되는 부압을 제어한다. 따라서 제어밸브(86)에 인가되는 부압은 트랜지스터(90)의 듀티사이클을 근거로 정해진다. 이 압력제어밸브(84)의 제어부압에 의하여 배기관(92)으로부터 흡기관(82)까지의 EGR량이 제어된다.3 is for explaining the exhaust gas complete (hereinafter referred to as EGR) system, in which a constant negative pressure of the negative pressure source 80 is applied to the control valve 86 via the pressure control valve 84. The pressure control valve 84 controls the ratio of opening the constant negative pressure of the negative pressure source 80 to the atmosphere 88 and applies it to the control valve 86 according to the on-duty cycle of the repetitive pulse applied to the transistor 90. To control the negative pressure. Therefore, the negative pressure applied to the control valve 86 is determined based on the duty cycle of the transistor 90. The amount of EGR from the exhaust pipe 92 to the intake pipe 82 is controlled by the control pressure of the pressure control valve 84.

제4도는 제어시스템의 전체 구성도이다. 이 제어시스템은 (102)와, 읽기전용메모리(104)(이하 ROM이라 함)와, 랜덤 억세스 메모리(106)(이하 RAM이라 함)와, 입출력회로(108)들로써 구성되어 있다.4 is an overall configuration diagram of the control system. This control system is composed of 102, read-only memory 104 (hereinafter referred to as ROM), random access memory 106 (hereinafter referred to as RAM), and input / output circuits 108. As shown in FIG.

상기 CPU(102)는 ROM(104)내에 기억된 각종의 프로그램에 따라 입출력회로(108)로부터의 입력데이터를 연산하여, 그 연산결과를 다시 입출력회로(108)에 되돌려보낸다. 이러한 연산에 필요한 일시적인 데이터 기억은 RAM(106)을 사용한다. CPU(102), ROM(104), RAM(106), 입출력회로(108)간의 각종 데이터를 주고 받는 것은 데이터버스와, 제어버스와 어드레스 버스 등으로 구성되는 버스 라인(110)에 의하여행해진다. 입출력회로(108)에는 제1아날로그-디지틀 콘버어터(122)(이하 ADC1이라 함)와, 제2의 아날로그-디지틀 콘버어터(124)(이하 ADC2라 함)와, 각도 신호처리회로(126)와 1비트 정보를 입출력하기 위한 이산형 입출력회로(128)(이하 DIO라 함)의 입력수단을 갖는다.The CPU 102 calculates input data from the input / output circuit 108 in accordance with various programs stored in the ROM 104, and returns the operation result back to the input / output circuit 108. The temporary data storage required for this operation uses the RAM 106. The transfer of various data between the CPU 102, the ROM 104, the RAM 106, and the input / output circuit 108 is performed by the bus line 110 composed of a data bus, a control bus, an address bus, and the like. The input / output circuit 108 includes a first analog-digital converter 122 (hereinafter referred to as ADC1), a second analog-digital converter 124 (hereinafter referred to as ADC2), and an angle signal processing circuit 126. And input means of a discrete input / output circuit 128 (hereinafter referred to as DIO) for inputting and outputting 1-bit information.

ADC1에는 축전지 전압 검출센서(132)(이하 VBS라 함)와 냉각수온도 센서(134)(이하 TWS라 함)와 대기온도센서(136)(이하 TAS라함)와, 조정전압발생기(138)(이하 VRS라 함)와, 드로틀 각도센서(140)(이하 θTHS라 함)와, λ센서(142)(이하 λS라 함) 등의 출력이 멀티플렉서(162)(이하 MPX라 함)에 인가되고, MPX(162)에 의하여 그 중의 하나를 선택하여 아날로그-디지틀 컨버어터(164)(이하 ADC라 함)에 입력시킨다. ADC(164)의 출력인 디지틀 값은 레지스터(166)(이하 REG라 함)에 기억된다.The ADC1 includes a battery voltage detection sensor 132 (hereinafter referred to as VBS), a coolant temperature sensor 134 (hereinafter referred to as TWS), an atmospheric temperature sensor 136 (hereinafter referred to as TAS), and a regulated voltage generator 138 (hereinafter referred to as "a"). VRS), the throttle angle sensor 140 (hereinafter referred to as θ THS ), and the λ sensor 142 (hereinafter referred to as λS) are applied to the multiplexer 162 (hereinafter referred to as MPX), One of them is selected by the MPX 162 and input to the analog-to-digital converter 164 (hereinafter referred to as an ADC). The digital value that is the output of the ADC 164 is stored in the register 166 (hereinafter referred to as REG).

또 부압센서(144)(이하 VCS라 함)는 ADC2(124)에 입력되어 아날로그-디지틀 컨버어터(172)(이하 ADC라 함)를 거쳐 디지틀 변환되어 레지스터(124)(이하 REG라 한다)에 기억된다. 각도센서(146)(이하 ANGS라 함)로부터는 기준 크랭크각 예를 들면, 180도 크랭크각을 나타내는 신호(이하 RES라 함)와, 미소각 예를 들면, 1도 크랭크각을 나타내는 신호(이하 POS라 함)가 출력되어 각도신호 처리회로(126)에 인가되고, 여기서 파형 정형된다. DIO(128)에는 무부하 스위치(148)(이하 IDLE-SW라 함)와 톱기어스위치(150)(이하 TOP-SW라 함)와 시동스위치(152)(이하 START-SW라 함)의 출력이 입력되고 있다.The negative pressure sensor 144 (hereinafter referred to as VCS) is input to ADC2 124 and digitally converted via an analog-to-digital converter 172 (hereinafter referred to as ADC) to register 124 (hereinafter referred to as REG). I remember. From the angle sensor 146 (hereinafter referred to as ANGS), a signal indicating a reference crank angle, for example, 180 degrees crank angle (hereinafter referred to as RES), and a signal indicating a small angle, for example, 1 degree crank angle (hereinafter referred to as POS) is output and applied to the angle signal processing circuit 126, where the waveform is shaped. The output of the no-load switch 148 (hereinafter referred to as IDLE-SW), the top gear switch 150 (hereinafter referred to as TOP-SW) and the start switch 152 (hereinafter referred to as START-SW) is provided in the DIO 128. It is being input.

다음에 CPU(102)의 연산결과에 의거한 펄스출력회로 및 제어대상에 관하여 설명한다. 공연비 제어장치(165)(이하 CABC라 함)는 이 실시예에서는 펄스신호의 듀티사이클을 바꾸어 슬로우 솔레노이드밸브(16)와 메인 솔레노이드 밸브(18)를 제어하는 것이다.Next, the pulse output circuit and the control target based on the calculation result of the CPU 102 will be described. The air-fuel ratio control device 165 (hereinafter referred to as CABC) controls the slow solenoid valve 16 and the main solenoid valve 18 by changing the duty cycle of the pulse signal in this embodiment.

CABC(165)의 듀티사이클을 증가시켜, 메인 솔레노이드 밸브(18)에 의한 연료공급을 감소시키기 때문에 CABC(165)로부터의 출력신호는 인버어터(163)를 거쳐 메인 솔레노이드 밸브(18)에 인가된다. 한편, 슬로우 솔레노이드 밸브(16)는 CABC(165)로부터의 펄스신호의 듀티 사이클이 증가함에 따라 연료공급량을 증대시킨다. CABC(165)는 반복펄스 주기를 기억하는 레지스터(이하 CABP라 함)와 동일펄스신호의 듀티사이클을 기억하는 레지스터(이하 CABD라 함)가 설치되어 있으며, CPU(102)내로 이들 데이터가 개별적으로 기억된다.The output signal from CABC 165 is applied to main solenoid valve 18 via inverter 163 because the duty cycle of CABC 165 is increased, thereby reducing the fuel supply by main solenoid valve 18. . On the other hand, the slow solenoid valve 16 increases the fuel supply amount as the duty cycle of the pulse signal from the CABC 165 increases. The CABC 165 is provided with a register for storing the repetitive pulse period (hereinafter referred to as CABP) and a register for storing the duty cycle of the same pulse signal (hereinafter referred to as CABD), and these data are separately stored in the CPU 102. I remember.

점화펄스 발생회로(168)(이하 IGNC라 함)는 점화시기 데이터를 기억하는 레지스터(이하 ADV라 함)와 점화코일 1차전류 통전시간을 제어하는 레지스터(이하 DWL라 함)를 포함하고 있으며, 이들 데이터는 CPU(102)내에 기억된다. 이 IGNC(168)의 출력펄스는 점화장치(170)에 인가된다. 이 점화장치(170)의 상세한 설명은 제2도에 나타내는 바와 같으며, 출력펄스는 제2도의 증폭기(62)에 인가된다.The ignition pulse generation circuit 168 (hereinafter referred to as IGNC) includes a register for storing ignition timing data (hereinafter referred to as ADV) and a register for controlling the ignition coil primary current energization time (hereinafter referred to as DWL). These data are stored in the CPU 102. The output pulse of this IGNC 168 is applied to the ignition device 170. The details of this ignition device 170 are as shown in FIG. 2, and the output pulse is applied to the amplifier 62 of FIG.

연료량 증가펄스 발생회로(176)(이하 FSC라 함)는 펄스의 듀티사이클을 제어하여 제1도의 연료 솔레노이드 밸브를 제어하는 것으로서, 반복주기를 기억하는 레지스터(이하 FSCP라함)와 동일펄스의 듀티사이클을 기억하기 위한 레지스터(이하 FSCD라 함)을 갖고 있다. EGR량 제어펄스 발생회로(178)(이하 EGRC라 함)에는 펄스반복주기의 데이터를 기억하기 위한 레지스터(이하 EGRP라 함)와 펄스신호의 듀티사이클의 데이터를 기억하기 위한 레지스터(이하 EGRD라 함) 등이 설치되어 있으며, 반복펄스가 AND 게이트(184)를 거쳐 공기 솔레노이드 밸브(22)에 인가되며, 이 AND 게이트(184)에는 DIO(128)의 출력 DIO1의 신호가 인가되며, 이 DIO1 신호가 저레벨일때 AND 게이트(184)는 동작상태로 되어 공기 솔레노이드밸브(22)가 제어된다.The fuel amount increase pulse generation circuit 176 (hereinafter referred to as FSC) controls the duty cycle of the pulse to control the fuel solenoid valve of FIG. 1, and the duty cycle of the same pulse as the register (hereinafter referred to as FSCP) that stores the repetition period. It has a register (hereafter referred to as FSCD) to store. The EGR amount control pulse generation circuit 178 (hereinafter referred to as EGRC) includes a register for storing data of pulse repetition period (hereinafter referred to as EGRP) and a register for storing data of duty cycle of the pulse signal (hereinafter referred to as EGRD). ), And a repetitive pulse is applied to the air solenoid valve 22 via the AND gate 184, and the signal of the output DIO1 of the DIO 128 is applied to the AND gate 184, which is a DIO1 signal. Is at a low level, the AND gate 184 is in an operating state, and the air solenoid valve 22 is controlled.

한편, DIO1이 고레벨일때는 AND 게이트(186)가 동작상태로 되어 EGR 장치(188)를 제어한다. EGR 장치(188)의 기본구성은 제3도에서 이미 설명한 바와 같다. DIO(128)는 상술한 바와 같이 1비트 신호의 입출력회로로, 입력 또는 출력을 결정하기 위한 데이터를 기억하는 레지스터(이하 DDR이라 함)(192)와, 출력되는 데이터를 기억하는 레지스터(194)(이하 DOUT라 함)를 갖고 있다.On the other hand, when the DIO1 is at a high level, the AND gate 186 is brought into an operating state to control the EGR device 188. The basic configuration of the EGR device 188 is as already described in FIG. As described above, the DIO 128 is an input / output circuit of a 1-bit signal, and includes a register 192 (hereinafter referred to as DDR) 192 for storing data for determining input or output, and a register 194 for storing output data. (Hereinafter referred to as DOUT).

이 DIO(128)에 의해 연료펌프(190)를 제어하기 위한 신호 DIOO가 출력된다.The DIO 128 outputs a signal DIOO for controlling the fuel pump 190.

제5도는 제4도 제어회로의 프로그램 시스템이다. 키이스위치(도시생략)에 의하여 전원이 온 되면, CPU(102)는 스타아트 모우드로 되어 조기프로그램의 INITIALIZ(204)을 실행한다. 다음에 감시프로그램의 MONIT(106)을 실행한다 하여 배경조부(BACKGROUND JOB)(208)를 실행한다.5 is a program system of the control circuit of FIG. When the power is turned on by the key switch (not shown), the CPU 102 enters the star art mode to execute the INITIALIZ 204 of the early program. Next, the MONIT 106 of the monitoring program is executed to execute the BACKGROUND JOB 208.

이 배경조브로서 예컨대, EGR량의 계산타스크(이하EGRCAL TASK라 함)나 연료 솔레노이드 밸브와 공기 솔레노이드 밸브의 계산타스크(이하 FISC라 함)를 실행한다. 이 타스크의 실행중에 개입중단요구(이하 IRQ라 함)가 발생하면 IRQ의 개시스텝(222)에서 IRQ 요구분석 프로그램(224)(이하 IRQ ANAL이라 함)을 실행한다. 이 IRQ ANAL의 프로그램은 다시 ADC1의 종료 개입중단 처리(이하 ADC1 END IRQ라 함) 프로그램(226)과, ADC2의 종료 개입중단처리(이하 ADC2 END IRQ라 함) 프로그램(228)과, 일정기간 경과개입중단처리(이하 INTV IRQ라 함) 프로그램(230)과, 엔진정지 개입중단처리(이하 ENST IRQ라 함) 프로그램(232) 등으로 이루어져 후술하는 각 타스크의 기동이 필요한 타스크에 각각 기동요구(이하 QUEUE라 함)를 낸다. 이 IRQ ANAL 프로그램(224)내의 각 프로그램 ADC1 END IRQ(226), ADC2 END IRQ(228)와, INTV IRQ(230)의 각 프로그램에 의하여 QUEUE가 출력되는 각 타스크는 레벨 "0"타스크군(252). 레벨 "1" 타스크군(254), 레벨 2 타스크군(256)이나, 레벨 3 타스크군(258), 또는 그 각 타스크군을 구성하는 타스크이다. 또 ENST IRQ 프로그램(232)에 의하여 QUEUE가 발생하는 타스크는 엔진 정지시의 처리타스크(262)(이하 ENST TASK라 함)이다. 이 ENST TASK(262)가 실행되면 다시 제어시스템은 스타아트 모우드로 되어 개시스텝(202)으로 되돌아간다.As this background jog, for example, an EGR calculation task (hereinafter referred to as "EGRCAL TASK") or a fuel solenoid valve and an air solenoid valve ("FISC") are executed. If an interruption interruption request (hereinafter referred to as IRQ) occurs during the execution of this task, the IRQ request analysis program 224 (hereinafter referred to as IRQ ANAL) is executed at the start step 222 of the IRQ. The program of IRQ ANAL is again executed by the termination intervention processing of ADC1 (hereinafter referred to as ADC1 END IRQ) program 226, the termination intervention processing of ADC2 (hereinafter referred to as ADC2 END IRQ) program 228, and a predetermined time elapses. It is composed of an interruption interruption processing program (hereinafter referred to as INTV IRQ) program 230 and an engine interruption interruption interruption processing (hereinafter referred to as ENST IRQ) program 232, and the like. QUEUE). The tasks in which the QUEUE is output by the respective programs ADC1 END IRQ 226, ADC2 END IRQ 228, and the INTV IRQ 230 programs in the IRQ ANAL program 224 are the level "0" task group 252. ). It is a task which comprises the level "1" task group 254, the level 2 task group 256, the level 3 task group 258, or each task group. The task in which the QUEUE is generated by the ENST IRQ program 232 is the processing task 262 (hereinafter referred to as ENST TASK) at the engine stop. When this ENST TASK 262 is executed, the control system again becomes a star art mode and returns to the start step 202.

타스크 스케쥴러(242)는 QUEUE가 발생하고 있는 타스크군이나 또는 실행중단 타스크군중의 레벨이 높은 타스크군(여기서는 레벨 "0"를 최고로 한다)에서 실행하도록 타스크군의 실행순서를 결정한다. 타스크군의 실행이 종료하면, 종료보고 프로그램(260)(이하 EXIT라 함)에 의하여 종료보고된다. 이 종료보고에 의하여 실행대기중인 타스크군의 가장 레벨이 높은 타스크군을 다음에 실행한다. 실행중단 타스크군이나 QUEUE가 발생하고 있는 타스크군이 없어지면 타스크 스케쥴러(242)로부터 다시 배경조브(208)가 실행된다. 다시 레벨 "0" 타스크군으로부터 레벨 "3" 타스크군의 어느 것인가를 실행중에 IRQ가 발생하면 IRQ 처리프로그램의 개시스텝(222)으로 되돌아간다.The task scheduler 242 determines the execution order of the task group to execute in the task group in which the QUEUE occurs or in the task group having a high level among the suspended task group (here, level "0" is the highest). When the execution of the task group ends, the end report is reported by the end report program 260 (hereinafter referred to as EXIT). By the end report, the task group with the highest level of task groups waiting to be executed is executed next. When the task group where the interrupt task group or the QUEUE is generated disappears, the background job 208 is executed again from the task scheduler 242. If an IRQ occurs while executing any of the level "3" task groups from the level "0" task group, the process returns to the start step 222 of the IRQ processing program.

제1표에 각 타스크의 기동과 그 기능을 나타낸다.The first table shows the start of each task and its function.

[제 1 표][Table 1]

Figure kpo00001
Figure kpo00001

제1표는 제5도의 시스템을 관리하기 위한 프로그램으로서, IRQ ANAL, TASK SCHEDULER와 EXIT가 있다. 이들의 프로그램(이하 OS라 함)은 제6도와 같이 ROM(104)의 어드레스(A000) 내지 어드레스(A300)에 유지되어 있다. 또, 레벨 "0" 프로그램으로서 AD1 IN, AD1 ST, AD2 IN, AD2 ST RPM IN의 각 프로그램이 있고, 이는 10(msec)마다 발생하는 INTV IRQ에 의하여 기동된다. 레벨 "1" 프로그램으로써 CARBC, IGNCAL, DWLCAL 프로그램이 있고, 이들은 20(m sec)마다 발생하는 INTV IRQ에 의하여 기동된다. 레벨 "2" 프로그램으로써 LAMBDA 프로그램이 있고, 이는 40(m sec)마다 발생하는 INTV IRQ에 의하여 기동된다. 레벨 "3" 프로그램으로서 HOSEI 프로그램이 있고, 100(m sec)마다 발생하는 INTV IRQ에 의하여 기동된다. 또 배경조브로서 EGRCAL과 FISC 프로그램이 있다. 레벨 "0" 프로그램은 PROG1으로서, 각각 제6도의 ROM(104)의 어드레스 A700내지 어드레스 AAFF에 기억되어 있다.Table 1 is a program for managing the system of FIG. 5, which includes IRQ ANAL, TASK SCHEDULER, and EXIT. These programs (hereinafter referred to as OS) are held at addresses A000 to A300 of the ROM 104 as shown in FIG. In addition, there are programs of AD1 IN, AD1 ST, AD2 IN, and AD2 ST RPM IN as level "0" programs, which are activated by INTV IRQs generated every 10 (msec). As the level "1" program, there are CARBC, IGNCAL, and DWLCAL programs, which are activated by INTV IRQs that occur every 20 (m sec). As a level "2" program, there is a LAMBDA program, which is started by an INTV IRQ that occurs every 40 (m sec). As a level "3" program, there is a HOSEI program, which is activated by an INTV IRQ that occurs every 100 (m sec). There are also EGRCAL and FISC programs as backgroundzob. The level "0" program is PROG1 and is stored in addresses A700 to AAAA of the ROM 104 in FIG. 6, respectively.

레벨 "1" 프로그램은 PROG2로서, ROM(104)의 어드레스 AB00에서 ABFF에 기억되어 있다. 레벨 "2" 프로그램은 PROG 3로서 ROM(104)의 어드레스 AE00에서부터 AEFF까지 기억되어 있다. 레벨 "2" 프로그램은 PROG 4로서 ROM(104)의 어드레스 AF00에서부터 AFFF에 기억되어 있다.The level "1" program is PROG2 and is stored in the ABFF at the address AB00 of the ROM 104. The level "2" program is stored from the addresses AE00 to AEFF of the ROM 104 as PROG3. The level "2" program is stored in the AFFF from the address AF00 of the ROM 104 as PROG4.

또 배경조브 프로그램은 B000에서 B1FF에 기억되어 있다 또한 상기 프로그램 PROG1에서 PROG4 까지의 각 프로그램의 스타아트 어드레스의 리스트(이하 SFTMR이라 함)가 어드레스(B200에서 B2FF까지)에 기억되고, PROG1에서 PROG4까지의 각 프로그램 기동주기를 나타내는 값(이하 TTM이하함)이 어드레스 B300에서 B3FF에 기억되고 있다.The background job program is stored in B000 to B1FF. Also, a list of star art addresses (hereinafter referred to as SFTMR) of each program from the programs PROG1 to PROG4 is stored in the address (B200 to B2FF), and from PROG1 to PROG4. A value indicating each program start cycle (hereinafter, referred to as TTM or less) is stored in address B300 at B3FF.

기타의 데이타는 필요에 따라 제6도의 ROM의 어드레스 B400에서 B4FF에 기억된다. 계속하여 연산을 위한 데이터 ADV MAP나 AF MAP, EGR MAP를 각각 기억하고 있다.Other data are stored in address B400 to B4FF in the ROM of FIG. 6 as necessary. Subsequently, data ADV MAP, AF MAP, and EGR MAP for calculation are stored respectively.

제5도에서의 초기 프로그램(204)을 제7도를 사용하여 상세히 설명한다. 스탭(282)에서 IRQ 발생시의 대기영역을 설정한다. 다음에 스탭(284)에서 RAM(106)을 모두 클리어 한다. 스탭(286)에서 입출력회로(108)의 레지스터내에 초기치의 설정을 행한다. 이 초기치의 설정으로서 예컨대, 엔진의 실린더수나 각도 센서(146)의 초기치나 DIO(128)의 DDR의 설정, INTV IRQ발생을 위한 타이머의 설정, ENST IRQ발생을 위한 검출기간의 설정과 엔진 회전수 검출을 위한 계측시간의 설정이 있다.The initial program 204 in FIG. 5 will be described in detail using FIG. In the step 282, a waiting area at the time of IRQ generation is set. Next, all of the RAM 106 is cleared by the staff 284. The staff 286 sets initial values in the registers of the input / output circuit 108. As the setting of the initial value, for example, the number of cylinders of the engine, the initial value of the angle sensor 146 or the DDR of the DIO 128, the setting of the timer for generating the INTV IRQ, the setting between the detectors for generating the ENST IRQ, and the engine speed There is a measurement time setting for detection.

스탭(288)에서 ADC1이 트리거되게 하고, 그리고 ADC1 END IRQ를 위한 금지를 해제한다. 이 경우 AD1ST 프로그램의 스타아트, 어드레스인 제6도의 어드레스 A700로 점프한다. 이에 의해 제4도의 ADC1(122)의 MPX(162)의 입력의 하나인 축전지 전압검출센서 VBS(132)의 출력이 선택되어 ADC(164)에 입력된다.Step 288 causes ADC1 to be triggered and releases the prohibition for ADC1 END IRQ. In this case, it jumps to the address A700 of FIG. 6 which is the star art and address of the AD1ST program. Thereby, the output of the battery voltage detection sensor VBS 132 which is one of the inputs of the MPX 162 of the ADC1 122 of FIG. 4 is selected and input to the ADC 164.

스탭(290)으로 되돌아가서, 여기서 ADC1 END IRQ를 기다린다. ADC(164)의 동작이 완료하여 REG(166)에 디지틀 값이 입력되면 스테이터스 레지스터 STATUS(198)에 ADC(164)의 동작완료가 보고되어, ADC1 END IRQ가 CPU(102)에 입력된다. 이에 의해 프로그램 AD1 IN이 실행되어 축전지 전압센서(132)의 출력이 취입된다.Returning to step 290, where we wait for the ADC1 END IRQ. When the operation of the ADC 164 is completed and the digital value is input to the REG 166, the operation completion of the ADC 164 is reported to the status register STATUS 198, and the ADC1 END IRQ is input to the CPU 102. As a result, the program AD1 IN is executed to take in the output of the battery voltage sensor 132.

스탭(292)에서 VBS(132)에서부터 λS(142)의 값을 모두 인출하였는지를 확인한다. 이 경우의 VBS(132)의 입력의 인출이 종료되므로 스탭(288)으로 되돌아간다. 이 스탭(288)에서, 다시 AD1 ST프로그램이 기동되고, MPX(162)는 다음의 입력으로써 TWS(134)의 출력을 선택한다. TWS(134)의 출력의 아날로그-디지틀 변환이 끝나면 다시 스텝(292)에서, 프로그램 AD1 IN인출이 실행되고, 레지스터 REG(166)내에 기억되어 있는 TWS(134)의 출력의 디지틀 값이 인출되어 ROM(104)의 DATA영역에 기억된다. 스탭(292)에서, 다시 스탭(288)으로 되돌아간다. 이와 같이 스탭(288)에서부터 스탭(292)까지의 루우프를 반복실행으로 VBS(132) 내지 λS(142)까지의 출력의 디지틀 값이 차례로 인출되고, λS(142)의 출력치의 인출이 끝나면 스탭(294)으로 진행한다. 스탭(294)에서 시동의 점화시기를 연산한다.In step 292, it is checked whether all values of λ S 142 are extracted from the VBS 132. Since the withdrawal of the input of the VBS 132 in this case is finished, the process returns to the staff 288. At this step 288, the AD1 ST program is started again, and the MPX 162 selects the output of the TWS 134 as the next input. After the analog-digital conversion of the output of the TWS 134 is finished, in step 292, the program AD1 IN withdrawal is executed, and the digital value of the output of the TWS 134 stored in the register REG 166 is retrieved and the ROM is retrieved. It is stored in the DATA area of 104. At the staff 292, the process returns to the staff 288 again. In this manner, the loop values from the staff 288 to the staff 292 are repeatedly executed, and the digital values of the outputs from the VBS 132 to the? S 142 are fetched sequentially, and when the extraction of the output values of the? S 142 is completed, the staff ( Proceed to 294). The ignition timing of the start is calculated by the staff 294.

이 점화시기 QADV(START)는 엔진의 냉각수의 온도 TW의 함수로써 연산한다. 이 함수를 제9도에 나타낸다. 제9도의 특성에 따라 QADV(START)를 연산하여, 이 연산결과는 제4도 ADC(164)의 레지스터 ADV(166)에 입력된다.This ignition timing Q ADV (START) is calculated as a function of the temperature TW of the engine coolant. This function is shown in FIG. Q ADV (START) is calculated in accordance with the characteristic of FIG. 9, and this calculation result is input to the register ADV 166 of the ADC of FIG.

스탭(296)에서 시등시의 공기 솔레노이드 밸브(22)의 개방정도를 연산한다. 이 연산은 제11도에 나타내는 특성에 의거하여 행해지고 그 연산출력은 레지스터 EGRD에 세트된다. 또 공기 솔레노이드 밸브의 개방 정도에 대한 고정치가 EGRP에 세트된다. 제11도에서 엔진 기동을 위한 공기 솔레노이드 밸브(22)의 밸브 개방정도는 EGRP에 기억되고 정지에 대한 세트치의 비이다.In step 296, the opening degree of the air solenoid valve 22 at the time of lighting is calculated. This operation is performed based on the characteristics shown in FIG. 11 and the operation output is set in the register EGRD. In addition, a fixed value for the degree of opening of the air solenoid valve is set in the EGRP. The valve opening degree of the air solenoid valve 22 for starting the engine in FIG. 11 is stored in EGRP and is the ratio of the set value to the stop.

스탭(298)에서 연료솔레노이드 듀티계수의 초기치가 연산된다. 이 연산치는 제10도에 의하여 행해지는 것이며, 레지스터 FSCP의 세트치에 대한 레지스터 FSCD의 세트치의 비율이 제10도의 특성도로서 도시 되어 있다.In step 298, the initial value of the fuel solenoid duty coefficient is calculated. This calculation value is performed by FIG. 10, and the ratio of the set value of the register FSCD to the set value of the register FSCP is shown as a characteristic diagram of FIG.

레지스터 FSCP와 FSCD에 데이터를 세트함에 따라, 제5도의 프로그램 INITIALIZ(204)의 실행이 종료되고, 제8도에 나타내는 MONIT프로그램(206)이 실행된다. 프로그램(206)는 스탭(302)에서부터 개시되고 스탭(302)에서 제4도의 시동스위치(152)가 온상태인지의 여부를 DIO(128)의 DIO5 입력을 감시함으로써 결정한다. 만일 시동 스위치(152)가 온 상태이면 DIO(128)의 제5비트 DIO5가 고논리 "H"로 된다. 또 반대로 오프가 되어 있으면 저논리 "L"로 된다. 지금 엔진이 시동전이라고 하면 시동 스위치는 오프이며, 스탭(302)으로부터 스탭(312)으로 진행되고 여기서 프로그램이 시동후인지의 여부를 판단한다. 이러한 판단은 예컨대, 시동표식(flag)이 되어 있는지의 여부를 판단한다. 이 시동표식은 스탭(308)에서 세트된다. 이 시동표식은 제15도의 RAM내의 소정위치에 세트된다. 시동전은 시동표식이 세트되지 않으므로 스탭(312)에서 부정(NO)되고 다시 스탭(302)으로 되돌아 간다.As data is set in the registers FSCP and FSCD, execution of the program INITIALIZ 204 in FIG. 5 ends, and the MONIT program 206 shown in FIG. 8 is executed. The program 206 starts from the step 302 and determines in step 302 whether the start switch 152 of FIG. 4 is on by monitoring the DIO5 input of the DIO 128. If the start switch 152 is in the ON state, the fifth bit DIO5 of the DIO 128 becomes high logic " H ". On the contrary, when turned off, the low logic "L" is obtained. If the engine is now before starting, the start switch is turned off, and the process proceeds from the step 302 to the step 312, where it is determined whether the program is after starting. This determination determines, for example, whether a start flag has been made. This start up marker is set in the staff 308. This start-up marker is set at a predetermined position in the RAM of FIG. Before startup, since the startup marker is not set, it is negative (NO) at the staff 312 and returns to the staff 302 again.

시동스위치(152)가 온될때까지 스탭(302)과 스탭(312)사이에서 루우틴 루프가 반복된다. 이러한 경로를 밟으면서 시동스위치의 감시를 행한다.The routine routine is repeated between the step 302 and the step 312 until the start switch 152 is turned on. The start switch is monitored while following this path.

시동 스위치가 온되고 스탭(302)에서의 판단이 긍정(YES)으로 되면 스탭(304)으로 진행한다. 여기서 이미 시동스위치가 온되어 있었던 것인지의 여부를 판단한다. 스탭(304)으로 진행한 경우는 시동스위치의 온을 검출한 직후여서 스탭(304)에서 판단이 부정(NO)으로 된다. 스탭(304)의 판단도 시동 표식이 되어 있는지 아닌지의 여부에 의해서 판단된다. 시동 표식이 나와있지 않은때는 판단을 부정(NO)으로 하여 스탭(306)으로 진행시켜 시동을 위한 준비가 된다.When the start switch is turned on and the judgment at the step 302 is affirmative (YES), the process proceeds to the step 304. At this point, it is determined whether the start switch is already on. In the case where the operation proceeds to the step 304, it is immediately after the start switch is detected to be turned on, so that the determination of the step 304 becomes negative (NO). The judgment of the staff 304 is also determined by whether or not the start mark is made. When the start mark is not shown, the judgment is made negative (NO), and the process proceeds to the step 306 to be ready for start-up.

예컨대, 본 실시예에서는 연료펌프(190)의 기동을 위하여 DIO(128)의 DOUT레지스터(194)의 제"0" 비트에 고논리 "H"를 세트한다.For example, in the present embodiment, high logic "H" is set in the "0" bit of the DOUT register 194 of the DIO 128 to start the fuel pump 190.

이에 의하여 연료펌프가 작동된다.Thereby the fuel pump is operated.

다음에 스탭(306)에서 DOUT레지스터(194)의 제1비트를 저논리 "L"로 한다. 이에 의해 EGRC회로(178)의 출력으로 공기 솔레노이드 밸브(22)가 제어된다. 실제로는 DOUT레지스터(194)의 제"0"비트와 제1비트의 세트는 동시에 행해진다.Next, in the step 306, the first bit of the DOUT register 194 is set to low logic "L". Thereby, the air solenoid valve 22 is controlled by the output of the EGRC circuit 178. In practice, the set of the "0" bit and the first bit of the DOUT register 194 are performed at the same time.

스탭(308)에서 INTV IRQ의 금지 해제가되어 점화출력 금지의 해제가 된다. 이 INTV IRQ의 금지해제는 예컨대, 제4도의 MASK레지스터(200)의 제4비트(제22도의 플립-플롭(739))를 고논리"H"로 함으로써 행한다. 다시 스탭(308)에서 시동 표식을 낸다. 이 시동표식은 이미 시동스위치가 온 임을 나타내고 있어 스탭(304)과 스탭(312)에서 이 표식을 판단에 사용한다.In step 308, the prohibition of the INTV IRQ is released, and the ignition output prohibition is released. The prohibition of this INTV IRQ is performed by, for example, setting the fourth bit (the flip-flop 739 in FIG. 22) of the MASK register 200 in FIG. The start mark is issued again by the staff 308. The start mark already indicates that the start switch is on, and the step 304 and the step 312 use this mark for judgment.

스탭(310)에서 입출력회로(108)의 출력부인 CABC(165)와 IGNC(168)와 FSC(176)와 EGRC(178)등에 기동을 걸기 때문에 후술하는 모우드 레지스터에 고논리 "H"를 세트한다. 이에 의하여 각 제어장치에 펄스 출력이 보내진다.Since the step 310 starts the CABC 165, the IGNC 168, the FSC 176, the EGRC 178, etc., which are the outputs of the input / output circuit 108, a high logic " H " . This sends a pulse output to each control device.

스탭(310)으로부터 스탭(302)으로 되돌아가 스탭(302)에서 시동스위치(152)가 온인지 여부가 판단된다. 시동 중에는 스위치가 온이어서 긍정(YES)으로 되면 스탭(304)으로 진행한다. 이 스탭(304)에서 시동표식을 점검하고 표식이 되어 있으면 이미 시동 중인 것으로 하여 스탭(302)으로 되돌아 간다.Returning from the step 310 to the step 302, it is determined whether or not the start switch 152 is turned on in the step 302. During start-up, if the switch is on and is affirmative (YES), the process proceeds to the step 304. The start mark is checked at this step 304, and if it is marked, the start mark is regarded as being already started and the process returns to the step 302.

이와 같이 시동 모우터가 구동되고 있는 동안은 스탭(302)의 긍정(YES)과 스탭(304)의 긍정(YES)에 의하여 이루어진 루우프를 반복 수행한다.As described above, while the starting motor is being driven, the loop made by the positive YES of the staff 302 and the positive YES of the staff 304 is repeatedly performed.

엔진이 시동되면 시동 스위치(152)가 오프되므로 스탭(302)의 판단은 부정(NO)되면 스탭(312)으로 진행한다. 스탭(312)에서 시동표식이 점검되고 시동 표식이 되어 있으므로 스탭(314)으로 진행한다. 이 스탭(314)에서 ENST IRQ의 금지 해제가 행해져 이 스탭(316)이후 엔진의 정지는 이 ENST IRQ에서 검출할 수 있다.Since the start switch 152 is turned off when the engine is started, determination of the step 302 proceeds to the step 312 when it is negative (NO). Since the start mark is checked at the staff 312 and the start marker is made, the process proceeds to the step 314. This step 314 releases the prohibition of ENST IRQ, and the engine stop after this step 316 can be detected by this ENST IRQ.

다음에 배경조브의 프로그램(208)으로 진행한다. 이 프로그램을 제12도에 상세하게 나타낸다.The program then proceeds to background job program 208. This program is shown in detail in FIG.

제12도에서, 스탭(410)에서 무부하스위치(148)가 온인지의 여부가 판단된다. 만일 온이면 배기가스 환류는 행해지지 않는다.In FIG. 12, it is determined whether the no-load switch 148 is on in the step 410. If on, no exhaust gas reflux is performed.

따라서 스탭(3412)으로 진행하여 여기서 공기솔레노이드 밸브(22)를 DIO의 레지스터 DOUT(194)의 제1비트를 저논리 "L"로 함으로써 지정된다. 이 때문에, 레지스터 EGRD에 세트된 값에 따라 제1도의 공기 솔레노이드 밸브(22)가 제어된다. 바이패스 통로의 공기유량을 제어하는 공기솔레노이드 밸브(22)는 특정한 운전 상태에 따라 제어된다. 즉, 기온이 낮은 겨울철의 운전이나, 엔진이 식어있는 상태에서의 시동운전 및 엔진에 부하가 걸려있는, 즉 자동차 에어콘 사용중에 운전하는 경우에는 바이패스 통로의 공기 유량을 증가시킨다. 스탭(414)에서 냉각수 온도에 따라 공기 솔레노이드 밸브(22)의 듀티가 레지스터 EGRD에 설정된다. 또한, 수온 TW에 따른 연료 솔레노이드 밸브로부터의 연료 공급량이 레지스터 FSCD에 세트된다. 이들 값에 따라 연료 솔레노이드 밸브(20)와 공기 솔레노이드 밸브(22)가 제어되어 무부하시의 엔진이 제어된다. 이 스탭(416)이 종료함으로써 스탭(410)으로 진행하여 이 플로우를 반복실행한다.Therefore, the process proceeds to the step 3412, where the air solenoid valve 22 is designated by setting the first bit of the register DOUT 194 of the DIO to low logic " L ". For this reason, the air solenoid valve 22 of FIG. 1 is controlled according to the value set in the register EGRD. The air solenoid valve 22 for controlling the air flow rate in the bypass passage is controlled according to a specific operating state. That is, in the case of winter operation at low temperature, start-up operation when the engine is cooled, and load on the engine, that is, when driving while using the car air conditioner, the air flow rate in the bypass passage is increased. At the step 414, the duty of the air solenoid valve 22 is set in the resistor EGRD according to the coolant temperature. Further, the fuel supply amount from the fuel solenoid valve according to the water temperature TW is set in the register FSCD. In accordance with these values, the fuel solenoid valve 20 and the air solenoid valve 22 are controlled to control the engine at no load. When the step 416 ends, the process proceeds to the step 410 and repeats this flow.

한편, 무부하 스위치(148)가 온이 아닌 상태에서는 공기 솔레노이드 밸브(22)는 사용되지 않고, 대신 배기가스 환류가 행해진다. 이 때문에 EGR량을 제어하는 EGR장치(188)가 구동되고 이 장치를 구동하기 위하여 스탭(418)에서 DIO의 DOUT레지스터(194)의 제1비트가 고논리 "H"로 세트되며, 레지스터 EGRD에 세트된 값으로 EGR장치(188)가 구동된다. 다음에 스탭(420)에서 레지스터 FSCD에 "0"이 세트되어 연료솔레노이드(15)의 구동을 정지한다. 스탭(422)에서, 냉각수온의 일정치 예컨대, TA℃보다 높은지의 여부를 판단하여 만일 높으면 EGR작동을 하지 않게 한다. 이 때문에 스탭(426)에서 EGR CUT를 행하기 위한 값을 세트한다. 또 스탭(422)에서 냉각수온이 일정치(TA℃) 보다 낮은 값이면 스탭(424)으로 진행한다. 스탭(424)에서 냉각 수온이 TB℃보다 낮은지의 여부를 판단한다. 만일 낮을 경우 역시 EGR작동을 하지 않게 함으로 스탭(426)에서 EGR CUT를 행하는 값을 세트한다. 이들의 값은 스탭(430)에서 EGRD레지스터에 세트된다.On the other hand, in the state where the no-load switch 148 is not on, the air solenoid valve 22 is not used, and exhaust gas reflux is performed instead. For this reason, the EGR apparatus 188 which controls the EGR amount is driven, and the first bit of the DOUT register 194 of the DIO is set to high logic " H " The EGR device 188 is driven to the set value. Next, at step 420, " 0 " is set in the register FSCD to stop the driving of the fuel solenoid 15. In the staff 422, it is determined whether or not a certain value of the cooling water temperature is higher than TA ° C, for example, and if it is high, the EGR operation is not performed. For this reason, the value for performing EGR CUT in the step 426 is set. If the cooling water temperature in the staff 422 is lower than a predetermined value (TA ° C), the process proceeds to the staff 424. In step 424, it is determined whether the cooling water temperature is lower than TB 占 폚. If it is low, the EGR CUT is set by the staff 426 by disabling the EGR operation as well. These values are set in the EGRD register at step 430.

한편, 냉각 수온 TW가 TB℃보다 높고 TA℃보다 낮은 경우 EGR을 행한다. 이때의 EGR량은 부압센서(144)의 출력 VC와 엔진 회전속도(N)에 따라 결정된다.On the other hand, when cooling water temperature TW is higher than TB degreeC and lower than TA degreeC, EGR is performed. The EGR amount at this time is determined according to the output VC of the negative pressure sensor 144 and the engine rotation speed (N).

출력 VC와 N에 의한 EGR량의 맵(MAP)은 제6도 ROM의 어드레스 B700∼B7FF에 세트되어 있고, 이 맵으로부터 검색하여 EGR량을 정한다. 스탭(428)에서 검색을 하여 이 값을 스탭(430)에서 레지스터 EGRD에 세트한다. 이 레지스터 EGRD의 세트값에 따라 제4도에 나타낸 장치(188)는 구동된다.The map MAP of the amount of EGR by the outputs VC and N is set at addresses B700 to B7FF of the ROM of FIG. 6, and is searched from this map to determine the amount of EGR. A search is made at step 428 and this value is set at register EGRD at step 430. The apparatus 188 shown in FIG. 4 is driven in accordance with the set value of this register EGRD.

제12도에 도시한 플로우차아트에서는 스탭(430) 또는 스탭(416)의 종료에 따라 다시 스탭(410)으로 되돌아간다. 이와 같이 함으로써, 계산기는 공기 솔레노이드 밸브(22)를 제어하기 위한 스탭(410)으로부터 (416)까지의 플로우차아트나 또는 스탭(418)으로부터 스탭(430)까지의 스탭의 플로우차아트를 항상 실행할 수가 있다. 따라서 IRQ등의 발생이 생기지 않는 것으로 하면 개시스탭(202)으로부터 출발한 프로그램은 INITIALIZ(204), MONIT(206)을 거쳐 배경조브(208)의 FISC 또는 EGRCAL를 항상 실행을 계속하게 된다. MONIT(206)이나 배경조브(208)는 개입중단 요구(IRQ)를 발생시켜 그 처리를 중단할 수 있게 되어있고 IRQ에 의한 처리가 끝나면 다시 상기 프로그램의 실행을 제개한다.In the flowchart illustrated in FIG. 12, the flow returns to the staff 410 as the staff 430 or the staff 416 ends. By doing so, the calculator always executes the flowchart art of the staff 410 through 416 for controlling the air solenoid valve 22 or the flowchart art of the staff from the staff 418 to the staff 430. There is a number. Therefore, if no occurrence of IRQ or the like occurs, the program starting from the start step 202 always continues to execute FISC or EGRCAL of the background job 208 via the INITIALIZ 204 and the MONIT 206. The MONIT 206 and the background job 208 generate an interruption request (IRQ) and can abort the processing. When the processing by the IRQ is finished, the execution of the program is resumed.

다음에 제5도에서 IRQ의 발생에 의거한 처리에 대한 설명을 한다. IRQ의 요인 분석의 프로그램(224)은 ADC1 END IRQ(226)의 처리와, ADC2 END IRQ(228)의 처리와, INTV IRQ(230)의 처리와, ENST IRQ(232)의 처리등으로 구성되어 있다. 여기서 각 프로그램(226), (228), (230), (232)의 각각을 실행하기 위해서는 먼저, IRQ의 요구내용이 무엇인가를 조사한다. 이를 위하여 제4도의 STATUS레지스터(198)의 내용이 조사된다. 이 STATUS레지스터의 내용을 봄으로써 IRQ의 발생용인이 판명된다. 이 발생요인에 따라 상기 각 프로그램 (226), (228), (230), (232)을 실행하고 이에 의해 TASK (252), (254), (256), (258), (256)내의 실행이 필요한 TASK에 기동요구(QUEUE)를 낸다.Next, the processing based on the generation of the IRQ will be described in FIG. The program 224 of factor analysis of IRQ is comprised of the process of ADC1 END IRQ 226, the process of ADC2 END IRQ 228, the process of INTV IRQ 230, the process of ENST IRQ 232, etc. have. In order to execute each of the programs 226, 228, 230, and 232, first, what is the content of the IRQ is examined. For this purpose, the contents of the STATUS register 198 of FIG. By looking at the contents of this STATUS register, it can be found that the IRQ is allowed. According to this occurrence factor, the respective programs 226, 228, 230, and 232 are executed, thereby executing in the TASKs 252, 254, 256, 258, and 256. A QUEUE is issued to this required TASK.

단, IRQ의 발생을 많게하면 관리 프로그램(이하 OS라함)의 실행시간이 많아져 실질적인 엔진 제어를 위한 연산시간을 취할 수 없게되는 결점이 있다. 따라서 이 실시예에서는, ADC2 END IRQ(228)은 INITIALIZ(204) 또는 MONIT(206)의 실행중에만 발생시키고 그 외는 발생시키지 않는다. 즉 MONIT(206)의 제8도에 도시한 스탭(314)에서 제4도의 MASK레지스터(200)(제22도의 플립플롭(766))에 ADC2 END IRQ의 금지명령 저논리 "L"를 세트한다. 또 ADC1 END IRQ(226)는 처음부터 발생시키지 않는 즉, 개시 스탭(202)에서 모든 개입중단이 금지되도록 입출력 회로의 일반적 리세트신호로 IRQ발생금지 상태가 되도록 MASK레지스터를 세트한다. 그후 금지해제의 명령을 내지 않도록 함으로써 ADC1 END IRQ를 금지상태로 한다.However, if the occurrence of the IRQ increases, the execution time of the management program (hereinafter referred to as OS) increases, and thus, there is a drawback that it is impossible to take a calculation time for actual engine control. Therefore, in this embodiment, ADC2 END IRQ 228 is generated only during the execution of INITIALIZ 204 or MONIT 206, but not otherwise. That is, the step 314 shown in FIG. 8 of the MONIT 206 sets the prohibition command low logic " L " of the ADC2 END IRQ in the MASK register 200 of FIG. 4 (flip-flop 766 in FIG. 22). . In addition, the ADC1 END IRQ 226 sets the MASK register so that it does not generate from the beginning, i.e., the IRQ generation prohibition state is set as the general reset signal of the input / output circuit so that all interruption is prevented at the start step 202. After that, the ADC1 END IRQ is set to the prohibited state by not issuing a command to release the inhibition.

STATUS레지스터(224)의 프로그램에 대한 구체적인 예를 제13도에 나타낸다. IRQ의 입구 개시스탭(222)으로부터 스탭(500)에서 ADC1 END IRQ가 발생하지 않았음이 판단되면 스탭(502)으로 진행한다. 여기서 IRQ의 발생요구가 ADC2 END IRQ인지의 여부를 판단하여 긍정(YES)일 경우 스탭(516)에서 타스크 레벨 "0" 타스크의 프로그램에 기둥요구를 낸다.A specific example of the program of the STATUS register 224 is shown in FIG. If it is determined that the ADC1 END IRQ has not occurred in the step 500 from the inlet start step 222 of the IRQ, the process proceeds to the step 502. Here, it is determined whether the generation request of the IRQ is the ADC2 END IRQ, and if it is YES, the staff 516 makes a pillar request to the program of the task level "0" task.

이것은 제15도에 도시한 RAM(106)내의 타스크 콘트롤 워어드 TCWO의 b6에 "1"의 표식을 세트한다. 그리하여 TASK SCHEDULE(242)로 진행한다. ADC2 END IRQ가 발생하는 것은 이 실시예에서는 제5도의 INITIALIZ(204)의 프로그램이 실행중이기 때문이다. 그 이외의 상태에서는 ADC2 END IRQ는 금지 된다. 스탭(502)의 판단이 "부정(NO)"인 경우 스탭(504)으로 진행한다.This sets a mark of " 1 " to b6 of the task control word TCWO in the RAM 106 shown in FIG. Thus, the process proceeds to TASK SCHEDULE 242. The reason why the ADC2 END IRQ occurs is that the program of the INITIALIZ 204 in FIG. 5 is running in this embodiment. Otherwise, ADC2 END IRQ is prohibited. If the judgment of the staff 502 is "Negative", the process proceeds to the staff 504.

스탭(504)에서 IRQ의 요인이 일정 주기로 발생하는 INTV IRQ인지의 여부를 판단한다.In step 504, it is determined whether the factor of the IRQ is an INTV IRQ that occurs at a predetermined period.

"긍정(YES)"인 경우 스탭(506)으로 진행한다. 스탭(506)에서부터 스탭(514)까지는 타스크 레벨 "0"에서부터 타스크 레벨 "3"까지의 프로그램의 기동 타이밍인지의 여부를 판단하는 기능을 갖는다. 먼저 타스크 레벨 "0"을 조사한다. 타스크 레벨 "0"의 타스크 콘트롤 워어드 즉, 제15도의 TCWO의 b0∼b5까지의 카운터는 0을 +1만큼씩 증가시킨다. 이와 같이 본 실시예에서는 가산법을 채용했으나 감산법을 채용할 수도 있다. 스탭(508)에서 TCWO의 카운터 0의 값과 제15도의 타스크 기동 타이머 TTMO를 비교한다. 여기서 TTMO에는 "1"이 인가되어 있다. 여기서 INTV IRQ는 10msec마다 발생하는 것으로 하고 있으므로 TTMO에 "1"이 인가되어 있다고 하는 것은 타스크 레벨 "0" 프로그램(제5도의 252)은 10msec마다 기동됨을 나타낸다. 제15도의 카운터 CNTRO와 TTMO를 스탭(508)에서 비교하여 일치하는 경우 긍정되며 이 경우 스탭(510)으로 진행하여 타스크 콘트롤 워어드 TCWO의 b6에 표식 "1"을 세트한다.If YES, go to staff 506. The step 506 to the step 514 have a function of judging whether or not the start timing of the program from the task level "0" to the task level "3" is started. First examine task level "0". The task control word of task level " 0 ", i.e., the counters b0 to b5 of TCWO in FIG. 15 increments 0 by +1. As described above, although the addition method is employed in this embodiment, the subtraction method may be employed. The staff 508 compares the value of the counter 0 of the TCWO with the task start timer TTMO of FIG. Here, "1" is applied to the TTMO. Here, the INTV IRQ is generated every 10 msec, so that "1" is applied to the TTMO indicates that the task level "0" program (252 in FIG. 5) is activated every 10 msec. The counter CNTRO and TTMO of FIG. 15 are compared at the staff 508 and are positive if they match. In this case, the process proceeds to the staff 510 and sets a marker " 1 " to b6 of the task control wared TCWO.

이 실시예에서는 각 TCWO의 b6는 그 타스크의 기동요구의 표식"1"이 세트된다. 스탭(510)에서 TCWO의 b6에 표식 "1"을 세트하므로 이 TCWO의 b0∼b5에 세트된 카운터 CNTRO를 클리어 한다.In this embodiment, b6 of each TCWO is set with the mark " 1 " of the start request of the task. The staff 510 sets the mark " 1 " to b6 of the TCWO, so that the counter CNTRO set to b0 to b5 of the TCWO is cleared.

스탭(512)에서 타스크 레벨 "0"으로부터 타스크 레벨 "1"의 기동 타이밍 검색이 실행된다. 스탭(514)에서 타스크 레벨 "3"이 종료 되었는지를 판단한다. 즉 n=4인지를 판단한다. 이 경우 n=1이므로 스탭(506)으로 되둘아 간다. 스탭(506)에서 타스크 레벨 "1"의 프로그램의 타스크 콘트롤 워어드인 제15도의 RAM(106)내의 TCW1의 카운터 CNTR1의 내용을 +1 증가시킨다. 스탭(508)에서 제15도의 ROM(104)의 TTM1과 비교한다. 이 실시예에서는 TTM1의 내용은 "2"이다. 즉, 타스크 레벨 "1"의 기등 타이밍은 20msec이다. 지금 카운터 CNTR1의 내용이 "1"이라고 가정하면 스탭(508)의 판단은 "부정"되고, 즉 타스크 레벨 1 타스크(254)는 기등 타이밍이 아님이 판단되어 스탭(512)으로 진행한다. 여기서 다시 검색되는 타스크 레벨이 갱신되고 다음은 타스크 레벨 "2"로 된다.In the step 512, the start timing search of the task level "1" is performed from the task level "0". In step 514, it is determined whether task level "3" is finished. In other words, it is determined whether n = 4. In this case, since n = 1, the process returns to the staff 506. In step 506, the content of counter CNTR1 of TCW1 in RAM 106 of FIG. 15, which is the task control word of the program at task level "1", is increased by +1. The staff 508 compares the TTM1 of the ROM 104 of FIG. 15. In this embodiment, the content of TTM1 is "2". That is, the lamp timing of the task level "1" is 20 msec. If it is assumed that the content of the counter CNTR1 is "1" at this time, the judgment of the staff 508 is "negative", that is, the task level 1 task 254 is judged that it is not the timing to proceed to the staff 512. Here, the task level retrieved again is updated, and then the task level becomes "2".

마찬가지로 타스크 레벨 "3"까지 끝나면 스탭(512)에서 n=4가 되고 스탭(514)에서 n=MAX의 조건이 만족된다. 그리고 타스크 스케쥴리(242)로 진행한다. 스탭(504)에서 INTV IRQ가 부정되면 스탭(518)으로 진행한다. 여기서 엔진 정지를 나타내는 ENST IRQ 인지의 여부를 판단한다. 스탭(504)에서 "부정"된 경우 반드시 ENST IRQ일 것이므로 스탭(518)을 생략하고 스탭(520)으로 진행해도 된다. 스탭(520)은 엔진정지에 의거한 특별한 프로그램으로 연료펌프를 정지시키고 다시 점화계, 연료계의 모든 출력계의 신호를 리세트 상태로 하고 제5도의 개시스탭(202)으로 되돌아 간다.Similarly, if task level "3" is reached, n = 4 in step 512 and n = MAX in step 514 is satisfied. The process proceeds to task schedule 242. If the INTV IRQ is negated at the staff 504, the process proceeds to the staff 518. In this case, it is determined whether the ENST IRQ indicating the engine stops. If it is "negative" in the staff 504, it will necessarily be ENST IRQ, so the staff 518 may be omitted and the process proceeds to the staff 520. The staff 520 stops the fuel pump with a special program based on the engine stop, resets the signals of the ignition system and all the output systems of the fuel system, and returns to the start step 202 of FIG.

제14도는 타스크 스케쥴리(242)의 상세한 플로우차아트로서, 스탭(530)에서 타스크 레벨 "n"의 실행이 필요한가를 판단한다. 맨 처음에는 n=0이므로, 타스크 레벨 "0"의 프로그램의 실행의 필요에 따라 판단된다. 즉, 우선 순위가 높은 타스크의 순으로 기등 요구의 존재를 조사해 나간다. 그것은 타스크 콘트롤 워어드 TCWO의 b6와 b7을 검색함으로써 판단할 수 있다. b6은 기동요구 표식으로서 "1"이 세트되어 있으면 기동요구가 "있음"을 알 수 있다. 또 b7에는 실행중을 나타내는 표식으로서 여기에 "1"이 세트되어 있으면 실행중인 현시점에서는 중단되어 있음을 나타낸다. 따라서 b6과 b7중 적어도 어느 한쪽에 "1"이 세트되어 있으면 실행이 필요하게 되어 스탭(538)으로 진행한다.14 is a detailed flowchart art of the task schedule 242. It is determined whether the task level "n" needs to be executed by the staff 530. In the beginning, since n = 0, it is determined according to the necessity of executing the program of the task level "0". In other words, the existence of the request for registration is examined in order of the highest priority tasks. It can be determined by searching for b6 and b7 of the task control word TCWO. b6 indicates that the start request is "present" when "1" is set as the start request marker. In addition, b7 is a marker indicating execution, and if "1" is set here, it indicates that it is stopped at the present execution. Therefore, if " 1 " is set in at least one of b6 and b7, execution is required to proceed to the step 538.

스탭(538)에서 b7의 표식을 판단하여, b7이 "1"이면 실행중단 중이므로 스탭(540)에서 중단하고 있던 실행을 재개한다. b6과 b7양쪽에 표식이 세트되어 있어도 스탭(538)의 판단이 긍정되면 중단중인 프로그램이 다시 기동된다. b6만이 "1"인 경우, 레벨의 기동요구 표식 즉, b6를 스탭(542)에서 클리어하여 스탭(544)에서 b7의 표식(이하 RUN표식이라 함)을 세트한다. 스탭(542)과 (544)는 타스크 레벨의 기동요구 상태로부터 실행상태로 진행했음을 나타낸다. 스탭(546)에서 타스크 레벨프로그램의 스타아트 어드레스를 검색한다. 이것은 제15도에 도시한 ROM(104)내에 각 타스크 레벨의 TCW에 대응시켜 세트된 스타아트어드레스 테이블 TSA에 의하여 구해지며 이 스타아트 어드레스로 점프함으로써 그 타스크의 실행이 행해진다.The staff 538 determines the mark of b7. If b7 is " 1 ", the execution that has been interrupted by the staff 540 is resumed since the execution is interrupted. Even if the marks are set in both b6 and b7, if the judgment of the staff 538 is affirmed, the suspended program is restarted. When only b6 is " 1 ", the level start request marker, i.e., b6 is cleared by the staff 542, and the staff 544 sets a marker of b7 (hereinafter referred to as RUN marker). Steps 542 and 544 indicate that the process proceeds from the task level start request state to the execution state. The step 546 searches for the star art address of the task level program. This is obtained by the star art address table TSA set in correspondence with the TCW of each task level in the ROM 104 shown in Fig. 15, and the task is executed by jumping to this star art address.

제14도로 되둘아가, 스탭(530)에서 "부정"이라고 판단됐을 경우, 이 경우는 검색타스크 레벨의 프로그램에는 기동요구가 나와있지 않고, 또한 실행중단도 아님을 나타내고 있다. 이 경우 다음의 타스크 레벨의 검색으로 옮긴다.Returning to Fig. 14, when it is judged as "negative" by the staff 530, this case indicates that the start request is not indicated in the search task level program and the execution is not interrupted. In this case, move on to the next task level search.

즉, 타스크 레벨의 n이 n+1로 되어 레벨이 하나 이동한다. 여기서 n이 MAX 즉, 여기서는 4인지를 결정하고, 4가 아니면 다시 스탭(530)으로 진행한다. 이를 반복하여, n=4가 되면 스탭(536)으로부터 배경조브의 개입중단 프로그램으로 되둘아간다.In other words, n of the task level becomes n + 1, and the level moves by one. Here, it is determined whether n is MAX, that is, 4 here, and if not 4, the process proceeds to the step 530 again. This is repeated, and when n = 4, it returns from the staff 536 to the background interruption interruption program.

즉, 스탭(536)에서는 타스크 레벨 0 내지 3까지의 모든 프로그램의 실행이 필요없음이 판명되므로 IRQ의 발생전 배경조브의 개입중단 프로램으로 복귀한다.In other words, the staff 536 turns out that it is not necessary to execute all programs up to task levels 0 to 3, and returns to the interruption interruption program of the background job before generating the IRQ.

제15도는 상술한 타스크 콘트롤 워어드 TCW와 ROM내의 타스크 기동 주기를 나타내는 TTM, 타스크 스타아트 어드레스 테이블의 관계를 나타낸 것이다. 타스크 콘트롤 워어드의 0∼3에 대응하여 ROM내에 타스크 기동 주기 TTM이 있어 INTV IRQ마다 TCW의 카운터 CNTR이 연속갱신되어 각 타스크트의 TTM과 일치함으로써, 그 TCW의 b6에 표식이 세트된다. 이 표식에 의하여 다음에 내의 타스크 스타아트 어드레스 TSA로부터 2타스크의 스타아트 어드레스가 검색되어 그 스타아트 어드레스로 점프함으로써 프로그램 1∼4의 선택된 프로그램이 실행된다.FIG. 15 shows the relationship between the above-described task control word TCW and TTM indicating the task start cycle in the ROM and the task star art address table. There is a task start cycle TTM in the ROM corresponding to 0 to 3 of the task control word, and the counter CNTR of the TCW is continuously updated for each INTV IRQ, and the mark is set in b6 of the TCW by coinciding with the TTM of each task. By this marker, the star art addresses of two tasks are retrieved from the next task star art address TSA and jumped to the star art address to execute the selected programs of programs 1 to 4.

타스크 프로그램의 실행중에는 RAM(106)내의 프로그램에 대응된 TCW의 b7에 표식이 세트된다. 이 표식이 세트되어 있는 동안은 실행중임을 판단할 수 있다. 이와 같이 하여 제5도의 타스크 스케쥴러(242)의 프로그램이 실행된다. 그리고 예컨대, 0∼3까지의 프로그램(252∼258)중의 어느 하나가 실행된다.During execution of the task program, a mark is set at b7 of the TCW corresponding to the program in the RAM 106. While this marker is set, it can be determined that it is running. In this way, the program of the task scheduler 242 of FIG. 5 is executed. For example, any one of the programs 252 to 258 for 0 to 3 is executed.

이 타스크의 실행중에 IRQ가 발생하면 다시 그 타스크를 중단시켜 IRQ의 처리를 한다. 지금 IRQ가 발생하지 않는다고 하면 실행중의 타스크의 처리는 드디어 종료된다. 이에 의해 종료 보고를 하기 위하여 EXIT(260)로 진행한다. 이 EXIT프로그램의 상세한 것을 제16도에 나타낸다. 이 프로그램은 종료타스크를 찾아내기 위한 스탭(562)과 (564)로 구성된다. 이 스탭(562), (564)에서 먼저 타스크 레벨의 "0"부터 검색하여 종료된 타스크 레벨을 찾아낸다.If an IRQ occurs during the execution of this task, the task is stopped again to process the IRQ. If no IRQ occurs at this time, processing of the running task is finally terminated. This proceeds to EXIT 260 to report termination. The details of this EXIT program are shown in FIG. The program consists of staffs 562 and 564 for finding end tasks. In the steps 562 and 564, the task level is first found by searching from "0" of the task level to find the finished task level.

이에 의해 스탭(568)을 진행하여 여기서 종료한 타스크의 콘트롤 워어드의 b7의 RUN표식을 리세트 한다. 이에 의해 프로그램의 실행이 완전히 끝난 것이 된다. 그리고 다시 타스크 스케쥴러로 되돌아가 다음의 실행프로그램이 결정된다. 프로그램의 실행과 중단을 제17도로 다시 설명한다. 지금 가장 우선도가 낮은 배경조브(208)를 실행하고 있었다고 한다면, 시간(t1)에서 INTV IRQ가 발생하면 관리 프로그램(이하 OS프로그램이라함)으로 실행이 옮겨진다. 그리고 여기서 제5도의 STATUS레지스터(224) 및 타스크 스케쥴러(242)의 실행에 의하여 예컨대, 레벨 "0" 타스크(252)가 실행요구 됐음을 알게된다. 그리고 시간(t2)에서의 b7에 "1"이 세트되고 또한 b6가 클리어되며 레벨 "0" 타스크(252)가 실행된다. 또 동시에 레벨 "1"인 프로그램도 기동 요구가 나왔다고 하면 TCW1의 b6에도 표식 "1"이 세트된다.By this, the staff 568 advances, and the RUN marker of b7 of the control word of the task finished here is reset. This completes the execution of the program. The program then returns to the task scheduler to determine the next executable. The execution and interruption of the program is explained again in FIG. 17. If the background zov 208 having the lowest priority is being executed at this time, if INTV IRQ occurs at time t 1 , execution is transferred to the management program (hereinafter referred to as OS program). In this case, the execution of the STATUS register 224 and the task scheduler 242 of FIG. 5 indicates that the level “0” task 252 is required to be executed. And " 1 " is set in b7 at time t 2 and b6 is cleared and level " 0 " task 252 is executed. At the same time, if a program having a level "1" also has a start request, the marker "1" is also set in b6 of TCW1.

그러나 먼저 우선도가 높은 레벨 0 타스크(252)를 실행한다. 시간(t2)에서 이 레벨 0 타스크의 실행을 종료하면 다시 프로그램으로 되둘아가 TCWO의 b7의 표식을 클리어하여 다음의 레벨인 레벨 "1"의 타스크 실행요구의 검지와 실행준비가 되어 t4에서 실행이 시작된다. 여기서 레벨 "1"의 타스크를 처리하는데 시간이 걸리면 다시 다음의 INTV IRQ가 발행하고, t5에서 레벨 1의 프로그램을 중단하여 OS프로그램으로 되둘아 간다. 그리고 OS 프로그램을 실행하여 이 INTV IRQ로 기동해야 할 프로그램 예컨대, 레벨 "0" 타스크(252)에 기동요구를 낸다. 그리고 우선도가 가장 높은 레벨 "0" 타스크(252)를 시간(t6)에 실행한다.However, first, a high priority level 0 task 252 is executed. Time (t 2) at the level Exiting the execution of zero task is the detection and execution preparation of reprogrammed to doedul agar TCWO b7 marker cleared by execution of a level "1", the next level of a task to the needs of the t 4 Execution begins. If it takes time to process the task of level "1", the next INTV IRQ is issued again, and the program of level 1 is interrupted at t 5 and returned to the OS program. The OS program is executed to make a start request to a program to be started with this INTV IRQ, for example, the level "0" task 252. And it executes the priority level, the highest level "0" task (252) to the time (t 6).

즉, TCWO의 b7에 표식 "1"을 세트하고 그리고 b6의 표식을 클리어하여 TSAO부터 레벨 "0" 타스크(252)의 스타아트 어드레스를 검색하고 레벨 "0" 타스크(252)를 실행한다. 시간(t7)에서 레벨 "0" 타스크(252)의 실행을 끝내고 프로그램으로 돌아가 EXIT에서 TCWO의 b7을 클리어한다.That is, the marker " 1 " is set in b7 of the TCWO and the marker in b6 is cleared to retrieve the star art address of the level " 0 " task 252 from TSAO and execute the level " 0 " task 252. At time t 7 the execution of level “0” task 252 is finished and the program returns to clearing b7 of the TCWO at EXIT.

그리고 OS프로그램의 타스크 스케쥴리(242)에서 기동요구 또는 중단 프로그램을 검색한다. 이 타스크 스케쥴러(242)에 의하여 레벨 "1" 타스크(254)의 중단을 검지하여 실행을 다시 수행한다. 레벨 "1" 타스크의 재기동은 시간(t5)에서 CPU(102)의 내용이 대기되어 있던 것을 시간(t8)에서 다시 CPU로 되둘림으로써 행해진다. 레벨 "1" 타스크(254)를 재기동시켜 시간(t9)에서 그 실행을 종료하면 OS프로그램으로 되둘아가 EXIT프로그램을 실행함으로써 프로그램(254)의 종료 보고가 된다.The task schedule 242 of the OS program searches for a start request or a stop program. The task scheduler 242 detects the interruption of the level "1" task 254 and executes the execution again. Level "1" of the restart task is carried out by CPU dulrim back to back in time (t 8) that had been waiting, the contents of the CPU (102) in the time (t 5). When the level " 1 " task 254 is restarted and the execution is terminated at time t 9 , the program returns to the OS program and executes the EXIT program, resulting in the end report of the program 254.

즉, TCW1의 b7의 표식이 클리어된다. 계속하여, 타스크 스케쥴러(242)의 실행에 의하여 기동 요구가 나와 있는 프로그램이나 실행 중단인 프로그램이 없는지의 여부를 검색하여 예컨대, 프로그램(256)의 TCW2의 b2에 표식 "1"이 세워져 있는 가를 확인한다. 이에 의하여 레벨 "2"타스크(256)의 스타아트 어드레스인 TSA2를 검색하여 프로그램(256)의 스타아트 어드레스로 점프하고 프로그램의 레벨 "2" 타스크(256)를 실행한다. 이때 전술한 바와 같이 TCW2의 b6표식을 클리어 하여 b7의 표식을 세트한다. 그리고 시간(t11)에서 프로그램의 레벨 "2" 타스크(256)의 실행이 종료되면 OS 프로그램으로 되돌아가 프로그램에 의하여 TCW b7의 표식을 클리어 하여 종료보고 한다.That is, it is clear the mark of the TCW b 7 1. Subsequently, by executing the task scheduler 242, it is searched whether or not there is a program whose start request is issued or a program which is stopped. For example, it is checked whether the mark "1" is set on b2 of TCW2 of the program 256. do. As a result, the TSA 2 which is the star art address of the level "2" task 256 is searched for and jumped to the star art address of the program 256, and the level "2" task 256 of the program is executed. The clear mark of the TCW b 6 2 as described above, and sets the mark of b7. When the execution of the level " 2 " task 256 of the program at the time t 11 is completed, the program returns to the OS program to clear the TCW b7 mark by the program and reports the completion.

그리고 다시 기동 요구와 실행 중단의 검색을 행한다. 이 검색에 의하여 기동 요구나 실행 중단의 프로그램이 없다면 배경조브(208)의 대기 영역으로 부터 CPU에 각 데이터를 재공급하여 처리되게 한다. 그리고 t 13에서 INTV IRQ가 들어가면 CPU의 내용을 다시 대기영역에 전번시켜 OS 프로그램으로 되둘아가 IRQ의 요구분석을 하여 다시 프로그램에 기동 요구를 건다.Then, the start request and the execution stop are searched again. If there is no start request or execution stop program by this search, each data is supplied to the CPU from the standby area of the background job 208 to be processed. When the INTV IRQ is entered at t 13, the contents of the CPU are transferred back to the waiting area, returned to the OS program, the IRQ request analysis is performed, and the program is requested to start again.

이상의 설명으로 부터 알 수 있는 바와 같이, 각 프로그램의 실행중 개입 중단이 발생하면 그 프로그램을 중단하고, 프로그램으로 되돌아가 가장 높은 레벨의 프로그램부터 실행한다. 이와 같이 함으로써 보다 중요한 프로그램에 우선적으로 처리 시간을 할당한다.As can be seen from the above description, if an interruption of interruption occurs during the execution of each program, the program is stopped, and the program is returned to the program and executed from the highest level program. In this way, processing time is preferentially allocated to more important programs.

또 각프로그램을 우선도에 따라 각 레벨로 나누어, 각 레벨에 포함되는 각각의 처리 프로그램을 연속적으로 실행시켜 각각의 레벨의 프로그램에 대하여 그 전체적인 처리의 종료를 보고시키고 있으므로, OS프로그램이 차지하는 비율이 적어도 되고 처리효율이 향상한다. 또 이와 같이 함으로써 둥일 레벨내의 프로그램에 대하여 상호간에 개입 중단이 발생하는 일이 없으므로 개입 중단을 위한 대기 영역을 각 레벨을 프로그램에 대응시켜 설정함으로써 실행이 가능하므로 대기 영역이 대폭적으로 감소한다.In addition, since each program is divided into levels according to the priority, each processing program included in each level is continuously executed, and the end of the overall processing is reported to the program of each level. It is minimal and the processing efficiency is improved. In this way, no interruption of intervention occurs for the programs in the same level, so that the standby area for interruption can be executed by setting each level to correspond to the program, so that the standby area is greatly reduced.

제5도 및 제17도에서 설명한 각 레벨의 프로그램 즉 레벨 "0" 타스크(252) 레벨 "1" 타스크(254), 레벨 "2" 타스크(256), 레벨 3타스크(258)의 실행상태를 제18도에 나타낸다. IDLE상태는 기동 대기의 상태이고 프로그램에 대한 기둥 요구가 나가지 않는 상태이다. 다음에 기동 요구가 나가면, TCW의 b6에 표식에 세트되어 기동이 필요함을 표시한다. IDLE상태로 부터 QUEUE상태로 이동하는 시간은 각 프로그램레벨에 따라 정해진다. 또 QUEUE상태로 되었어도 실행되는 순서는 우선도에 따라 정해진다.The execution status of the program of each level described in FIGS. 5 and 17, that is, the level "0" task 252, the level "1" task 254, the level "2" task 256, and the level 3 task 258 are shown. It is shown in FIG. The IDLE state is a waiting state for starting and no pillar request for a program is issued. The next time the start request is issued, it is set in the b6 of the TCW to indicate that start is required. The time to move from IDLE state to QUEUE state is determined by each program level. Even if the status is QUEUE, the order of execution depends on the priority.

프로그램이 실행 상태로 들어가는 것을 OS프로그램에서 TCW의 b6의 표식이 클리어되어 b7에 표식이 세트되기 때문이다. 이로써 프로그램의 실행이 시작된다. 이러한 상태가 RUN상태이다. 그리고 실행이 끝나면 TCW의 b7표식이 클리어 되어 종료 보고를 완료한다. 이로써 RUN상태는 끝나고 다시 IDLE상태가 되어 다음의 기동요구가 나오는 것을 기다린다. 그러나 프로그램의 실행중 즉, RUN중에 IRQ가 발생되면 그 프로그램은 실행을 중단하지 않으면 안된다. 이 때문에 CPU의 내용이 대기되어 실행이 중단된다.The reason why the program enters the execution state is because the b6 mark of the TCW is cleared in the OS program and the b7 is set. This starts the execution of the program. This state is the RUN state. When the execution ends, the b7 marker of the TCW is cleared and the completion report is completed. This completes the RUN state and returns to the IDLE state, waiting for the next start request. However, if an IRQ occurs during program execution, that is, during RUN, the program must stop execution. As a result, the contents of the CPU are waited and execution is interrupted.

이 상태가 READY상태이다. 다음에 개입중단 프로그램에 다시 실행되게한 상태가 되면 대기 영역에 대기해 있던 내용을 다시 CPU에 보내어 실행이 재개되게 한다. 즉 READY상태로 부터 다시 RUN상태로 되둘아간다. 이와 같이 각 레벨 프로그램은 제18도의 4가지의 상태를 반복한다. 제18도는 대표적인 흐름도이지만, READY상태에서 TCW의 b6에 표식 "1"이 세트될 가능성이 있다. 이것은 예컨대 기등중단 중에 프로그램의 다음 기동 요구 타이밍이 되어 버렸을 경우이다. 이때는 b7 표식이 우선되어 먼저 중단중인 타스크 프로그램을 실행한다. 이로 인하여 b7표식이 리세트되고 b6표식에 의하여 IDLE상태를 거치지 않고, QUEUE상태가 된다.This state is READY state. The next time the interrupted program is run again, the contents of the waiting area are sent back to the CPU to resume execution. That is, it returns from the READY state to the RUN state again. In this way, each level program repeats four states of FIG. 18 is a representative flowchart, but it is possible that the marker " 1 " is set in b6 of the TCW in the READY state. This is the case, for example, when the next start request timing of a program comes to a stop during the stop. In this case, the b7 marker takes precedence and the task program that is suspended is executed first. As a result, the b7 marker is reset and the QUEUE state is not passed through the IDLE state by the b6 marker.

이와 같이 각 레벨 프로그램 즉, 레벨 타스크(252), (254), (256), (258)은 각각 제18도의 어느 한 상태에 있다. 또 각 레벨프로그램이 READY상태로 되는 것은 각 프로그램마다에 존재한다고 할 수 없고 각 레벨 프로그램 마다에 존재한다. 즉, 예컨대 레벨 "1" 타스크 프로그램은 제1표에 나타낸 CARCB프로그램이나, IGNCAL프로그램이나, DWLCAL프로그램으로 구성되어 있다. 그러므로 레벨 "1" 타스크 프로그램에 대하여 READY상태가 존재하지만 상기 각 CARBC, IGNCAL, DWLCAL, 프로그램에 대하여서는 READY상태가 존재하는 것이 아니므로, 각 레벨 프로그램에 대응하여 대기영역을 갖도록 하면된다. 제15도의 RAM(106)의 대기영역(602)은 각 레벨에 대응한 크기만큼 설정되어 있다. 제19도는 배경조브의 상태변화를 나타내는 도면으로서, 실행중에 RUN상태이고, IRQ가 발생하면 CPU의 내용을 대기시켜 READY상태가 된다. 또, 개입 중단 처리가 종료하면 대기해 있던 내용을 CPU로 다시 보내 실행재개 상태 즉, RUN이 된다. IRQ의 발생으로 CPU의 내용을 대기시키는 경우 제15도의 RAM내에 나타낸 대기영역(602)에 대기된다.In this manner, each level program, that is, the level tasks 252, 254, 256, and 258, respectively, is in any one state of FIG. In addition, it is not possible for each level program to be in the READY state for each program, but for each level program. That is, for example, the level "1" task program is composed of the CARCB program shown in the first table, the IGNCAL program, or the DWLCAL program. Therefore, the READY state exists for the level "1" task program, but the READY state does not exist for each of the CARBC, IGNCAL, DWLCAL, and programs. Therefore, it is sufficient to have a standby area corresponding to each level program. The standby area 602 of the RAM 106 of Fig. 15 is set by the size corresponding to each level. FIG. 19 is a diagram showing a change in the state of a background jog. The state of the background job is in the RUN state while the IRQ is generated. When the interruption interruption processing ends, the waited contents are sent back to the CPU, and the execution resume state, that is, RUN. When waiting for the contents of the CPU due to the occurrence of the IRQ, the waiting area 602 shown in the RAM of FIG. 15 is waited.

제20도는 레벨 "0"타스크의 프로그램이다. 이 프로그램은 제1표에 나타낸 바와 같이 10m sec마다 기동요구가 나온다. 스탭(650)에서 ADC1의 데이터의 인출을 행하고 스탭(654)에서 ADC1의 다음의 데이터를 인출하기 위한 기동요구를 한다. 또, 652의 스탭은 시등전에 ADC END IRQ를 실행시키도록한 것이고, 시동전인 표식이 나와있을 경우 시동전이기 때문에 RT1 즉, 개입중단 프로그램으로 되돌아간다. 이 프로그램은 제5도의 INITIALIZ(204)이다. 스탭(656)에서 ADC2의 데이터를 인출하고 다시 스탭(658)에서 ADC2의 다음의 데이터 인입을 위한 기동을 세트되게 한다. 스탭(660)에서 엔진 속도를 인출 한다. 이들의 스탭이 종료되면 OS의 EXIT프로그램을 실행하여 TCW의 b7의 표식을 클리어 한다.20 is a program of level "0" tasks. This program has a maneuver requirement every 10m sec as shown in the first table. The step 650 pulls out the data of ADC1 and the step 654 makes a start request for pulling out the data of the next ADC1. In addition, the staff of 652 is to execute the ADC END IRQ before the light-up, and if the pre-starting mark is displayed, it is before start-up, so it returns to RT1, that is, the interrupt program. This program is INITIALIZ 204 in FIG. At step 656 the data of ADC2 is fetched and again at step 658 a start for the next data entry of ADC2 is set. The engine speed is extracted from the staff 660. When these staff are finished, the EXIT program of the OS is executed to clear the b7 mark of the TCW.

제21도는 레벨 1타스크의 프로그램이고, 스탭(672)에서 시동중인지의 여부를 판단한다. 시등중인경우 시동중인 연료를 공급하고 또한 점화기시를 결정함으로 계산할 필요가 없고, 스탭(678)으로 점프한다. 스탭(674)에서 연료를 계산하기 위한 CARBCAL 프로그램을 실행하고, 다음에 스탭(676)에서 IGNCAL 프로그램을 실행한다. 이들은 각각 테이블 검색으로 행해진다. 스탭(678)에서 DWALCAL 프로그램을 실행하여, 이것으로 통전 시간을 계산한다. 레벨 "2"의 LAMBDA프로그램은 λ의 보정 프로그램이고, 레벨 "3"의 HOSEI프로그램은 각 보정 계수의 프로그램이다. 보정 계수로서는 예컨대, 대기온도나 수온등의 보정 계수를 구하는 프로그램이고, 이들의 매개변수는 특정의 시간상수가 크므로 긴 시간의 간격으로 매개변수를 계수하면 된다.21 is a program of the level 1 task, and it is determined whether or not the step 672 is being started. If it is on, it does not need to be calculated by supplying starting fuel and determining the igniter time, and jumps to staff 678. The staff 674 executes the CARBCAL program for calculating the fuel, and the staff 676 then executes the IGNCAL program. These are each done by table lookup. The step 678 executes the DWALCAL program, and calculates the energization time using this. The LAMBDA program at level "2" is a correction program of?, And the HOSEI program at level "3" is a program of each correction coefficient. As the correction coefficient, for example, a program for obtaining correction coefficients such as air temperature and water temperature, and these parameters have a large specific time constant, so that the parameters may be counted at long time intervals.

또 본 발명은 상술한 바와 같이 모든 연산제어가 엔진의 회전수에 무관하게 행해지도록 INTV IRQ를 발행하고 있다. 이와 같은 IRQ의 발생회로의 구성을 제22도에 나타낸다. 도면에서 레지스터(735)는 CPU로 부터 타이머 개입중단 주기를 설정하는 데이터(예를들면, 10msec)가 데이터 버스(752)를 통하여 세트되고, 동시에 카운터(736)에는 클럭펄스의 CLOCK이 입력된다. 그리고 이 카운트수와 상기 레지스터에 세트된 내용은 비교기(737)에서 비교되고, 레지스터(735)의 내용과 카운터(736)의 내용이 같아졌을 때, 비교기(737)에서 출력이 발생되어, 플립플롭(738) 및 (740)을 세트한다.As described above, the present invention issues an INTV IRQ so that all computational control is performed regardless of the engine speed. 22 shows a configuration of such an IRQ generation circuit. In the figure, data (for example, 10 msec) for setting the timer interruption stop period from the CPU is set via the data bus 752, and at the same time, the clock pulse CLOCK is input to the counter 736. The number of counts and the contents set in the register are compared in the comparator 737. When the contents of the register 735 and the contents of the counter 736 are the same, an output is generated in the comparator 737, and the flip-flop is generated. 738 and 740 are set.

이와 동시에 AND회로 (747)의 출력으로 카운터(736)와 플립플롭(738)을 리세트되게 한다. 한편, 플립플롭(739)이 세트되어 있으면 타이머 개입중단 신호 IRQ는 AND회로 (748), OR회로(751)를 거쳐 출력된다. 여기서 상기 플립플롭(739)은 상기 IRQ신호를 불필요로 할때(예를들면, 엔진 시등중), IRQ를 마스크(MASK)하기 위한 플립플롭이다. 그리고 이때는 CPU로 부터 플립플롭(739)에 대하여 리세트 지령을 보낸다.At the same time, the counter 736 and the flip-flop 738 are reset to the output of the AND circuit 747. On the other hand, when the flip-flop 739 is set, the timer interruption stop signal IRQ is output via the AND circuit 748 and the OR circuit 751. The flip-flop 739 is a flip-flop for masking the IRQ when the IRQ signal is unnecessary (for example, during engine light). At this time, the reset instruction is sent to the flip-flop 739 from the CPU.

또 상기한 타이머 개입중단에 대하여 엔진의 회전이 운전중에 고장 또는 조작상의 잘못으로 정지되는등의 엔진 고정시 엔진고장(ENST) 개입중단 요구는 다음과 같은 구성에 의하여 발생된다. 이 구성은 타이머 개입중단의 경우와 동일하며 레지스터(741), 카운터(742), 비교기(743), AND회로 (749), (750), 플립플롭(744), (745), (746)으로 구성되고, 동작도 상술한 경우와 동일하다. 단, 카운터(742)에 입력되는 신호는 엔진이 회전하고 있을 때에 발생되는 신호로서, 제4도에 도시한 센서(146)로 부터 발생하는 크랭크의 기준각 신호 REF이며, 예를들면 4기통인 엔진 일때는 크랭크가 180°회전할때마다 발생되는 신호이다. 그리고 카운터(742)는 상기 RES신호가 인가되고 있는 동안 리세트 되기 때문에 엔진 고장 개입중단 신호는 발생하지 않고, 엔진이 정지하면 REF신호가 정지되어 리세트가 해제되기 때문에 엔진 고장 개입중단신호가 발생한다.In addition, the engine failure (ENST) interruption interruption request when the engine is stopped, such as when the rotation of the engine stops due to a failure or an operation error during operation, is generated by the following configuration. This configuration is the same as in the case of timer interruption and is applied to registers 741, counters 742, comparators 743, AND circuits 749, 750, flip-flops 744, 745, 746. It is configured and the operation is the same as that described above. However, the signal input to the counter 742 is a signal generated when the engine is rotating, and is a reference angle signal REF of the crank generated from the sensor 146 shown in FIG. In the case of an engine, this signal is generated every time the crank turns 180 °. Since the counter 742 is reset while the RES signal is being applied, the engine failure intervention stop signal is not generated. When the engine stops, the engine failure intervention stop signal is generated because the REF signal is stopped and the reset is released. do.

이상 설명한 바와 같은 타이머 개입중단 IRQ는 상술한 제5도의 플로우차아트에 나타낸 바와 같이, 타스크의 기동을 트리거하여, 타스크의 우선 처리가 행해진다. 즉 CPU가 개입중단 요구를 받으며 그 개입중단 요구의 판정을 행한다. 그리고 이것이 타이머 개입중단이면 우선도가 높은 순으로 레벨이 분류된 타스크군(252), (254), (256), (258)의 기동을 트리거하여 타스크 스케쥴러(242)에 의해 선택한 타스크의 실행이 행해진다. 타스크 실행이 종료되면 EXIT에서 종료 보고되고, 다시 다음의 타이머 개입 중단과 타스크 스케쥴리에 의하여 다음의 타스크가 선택된다. 한편, 개입중단이 엔진 고장 개입 중단인 경우는 연료펌프를 오프로 함과 동시에 점화장치를 리세트하여 입출력 제어회로를 모두 디스에이블로 한다.The timer interruption interrupt IRQ as described above triggers the start of the task, as shown in the flowchart art of FIG. 5 described above, and the task priority processing is performed. That is, the CPU receives an interruption request and makes a determination of the interruption request. If this is the interruption of the timer, the task group 252, 254, 256, and 258 whose levels are sorted in order of high priority are triggered to execute the task selected by the task scheduler 242. Is done. When task execution ends, it is reported to exit from EXIT, and the next task is selected by the next timer interruption and task schedule again. On the other hand, when the interruption is an interruption of engine failure, the fuel pump is turned off and the ignition device is reset to disable all of the input / output control circuits.

ADC1 END IRQ와 ADC2 END IRQ도 동일하며, ADC1의 사이켄스 동작이 종료하면 플립플롭(764)에 "1"이 세트된다. 그리고 CPU로 부터 버스라인(752)을 통하여 플립플롭(762)에 "1"이 세트되면 AND게이터(770)가 이네이블되고 OR게이트 IRQ를 거쳐 CPU에 ADC1 END IRQ의 서어비스를 요구한다. 그러나 플립플롭(762)에 "1"이 세트되어 있지 않을 경우는 ADC1 END IRQ는 금지된다. ADC2에 관해서도 동일하게 적용되며, ADC2의 사이켄의 종료로 플립플롭(768)에 "1"이 세트된다.The ADC1 END IRQ and the ADC2 END IRQ are also the same, and "1" is set in the flip-flop 764 when the ADC's sequencing operation ends. When " 1 " is set in the flip-flop 762 via the bus line 752 from the CPU, the AND gate 770 is enabled and requests the service of the ADC1 END IRQ to the CPU via the OR gate IRQ. However, if "1" is not set in the flip-flop 762, the ADC1 END IRQ is prohibited. The same applies to ADC2, and "1" is set in the flip-flop 768 at the end of the psychon of ADC2.

이때 플립플롭(766)에 "1"이 세트되어 있으면, ADC2 END IRQ는 AND게이트(772)와 OR 게이트(751)에 의하여 발생하나 플립플롭(766)에 "1"이 세트되어 있지 않으면, AND게이트(772)가 디스에이블 상태로 되므로, ADC2 END IRQ는 발생하지 않는다. 따라서 플립플롭(739), (745), (762), (766)에 대하여 "1"을 세트한 것만의 IRQ가 발생하여 "0"을 세트하면 IRQ의 발생을 금지하는 상태가 된다.At this time, if "1" is set in the flip-flop 766, the ADC2 END IRQ is generated by the AND gate 772 and the OR gate 751, but if "1" is not set in the flip-flop 766, AND Since gate 772 is disabled, ADC2 END IRQ does not occur. Therefore, IRQ only for setting "1" to flip-flops 739, 745, 762, and 766 is generated. If "0" is set, the IRQ is prohibited.

이상 설명한 바와 같이 본 발명에 의하면 제1표에 나타내는 프로그램의 처리기능에 따라 그 우선도가 결정된다. 그리고 우선도에 따른 소정 파라미터의 시간 간격으로 기등 요구가 출력된다. 이와 같이 엔진제어의 주요 타스크를 엔진 회전속도에 관계없이 일정한 시간간격으로 기동되기 때문에 엔진 상태가 변화해도 CPU의 부하가 거의 변동하지 않고 항상 고성능인 제어가 가능하다.As described above, according to the present invention, the priority is determined according to the processing function of the program shown in the first table. Then, a request for output is output at a time interval of a predetermined parameter according to the priority. In this way, the main task of engine control is started at a fixed time interval regardless of the engine rotation speed, so that the load of the CPU hardly changes even when the engine state changes, and high-performance control is possible at all times.

또, 제5도의 실시예에 의하면 각 레벨 프로그램마다 기동주기를 변화시키고 있으므로 제어효율이 더욱 향상한다. 또, 동일 레벨인 프로그램에 대해서는 그 프로그램의 종료시마다 EXIT보고시키고 있으므로 동일 레벨내에서 다음의 프로그램으로 진행하는 데 하등의 OS 프로그램의 실행을 요하지 않는다. 따라서 처리시간이 빨라진다. 또 이로 인하여 동일 레벨내의 프로그램 상호간의 개입중단이 서로 걸리지 않으므로 대기영역의 설정을 각 타스크 레벨에 따라 행하면 되므로 영역이 작아도 된다.Further, according to the embodiment of Fig. 5, since the start cycle is changed for each level program, the control efficiency is further improved. In addition, since the EXIT is reported at the end of the program at the same level, the execution of the OS program is not required to proceed to the next program within the same level. Therefore, the processing time is faster. As a result, the interruption of the intervention of the programs in the same level is not mutually interrupted. Therefore, the waiting area may be set according to each task level, so the area may be small.

엔진이 시동이 된 후, ADC1END 개입중단이나 ADC2 END 개입중단이 마스크되므로, OS 프로그램의 실행시간을 단축할 수가 있어 처리효율을 향상시킨다. 제15도에 나타내는 실시예에 의하면, TCW는 각 레벨에 대하여 설정하면되고, 제1표의 각 프로그램에 대하여 설정할 필요가 없으므로 TCW의 영역이 작아도 된다. 그리고 TCW에는 기동 요구를 나타내는 표식 b6와 실행중임을 나타내는 표식 b7이 세트되어 있으므로 제17도와 제18도에 나타낸 바와 같이 프로그램의 실행과 중단 그리고 재개가 순조롭고, 또한 우선도가 높게 할 수 있고, CPU의 제어효율이 향상한다.After the engine is started, the interruption of the ADC1END interruption or the interruption of the ADC2END interruption is masked, thereby reducing the execution time of the OS program and improving the processing efficiency. According to the embodiment shown in FIG. 15, the TCW may be set for each level, and the TCW area may be small because it is not necessary to set for each program of the first table. In the TCW, a mark b6 indicating a start request and a mark b7 indicating execution are set. As shown in FIG. 17 and FIG. 18, execution, interruption, and resumption of a program can be performed smoothly and the priority can be increased. Control efficiency is improved.

다음에 본 발명을 연료분사형의 내연기관에 적용한 경우의 제2 실시예에 관해 제23도∼제33도를 참조하여 설명한다. 제1 실시예와 제2실시예와는 내연 기관의 형이 다를뿐 이므로 다음에 기술하는 상이점 이외는 등일하다.Next, a second embodiment in which the present invention is applied to a fuel injection type internal combustion engine will be described with reference to FIGS. 23 to 33. FIG. Since the type of the internal combustion engine is different from the first embodiment and the second embodiment, it is the same except for the differences described below.

특히 본 발명의 본질적 제어방법에 관해서는 거의 동일하다. 제23도에는 엔진 계통 전체의 제어장치가 도시되어 있다. 도면에서 흡입 공기는 공기청정기(1002), 드로틀쳄버(1004), 흡기관(1006)을 거쳐 실린더(1008)에 공급된다. 실린더(1008)에서 연소한 가스는 실린더(1008)로 부터 배기관(1010)을 통하여 대기중에 배출된다.In particular, the essential control method of the present invention is almost the same. FIG. 23 shows the control of the entire engine system. In the drawing, intake air is supplied to the cylinder 1008 via the air cleaner 1002, the throttle chamber 1004, and the intake pipe 1006. The gas burned in the cylinder 1008 is discharged from the cylinder 1008 to the atmosphere through the exhaust pipe 1010.

드로틀 쳄버(1004)에는 연료를 분사하기 위한 분사기(1012)가 설치되어 있고, 이 분사기(1012)로 부터 분출한 연료는 드로틀 쳄버(1004)의 공기 통로내에서 분무되면서 흡입공기와 혼합되어 혼합기를 형성하는데, 이 혼합기는 흡기관(1006)을 통하여 흡기 밸브(1020)의 밸브를 열어줌으로써 실린더(1008)의 연소실에 공급된다.The throttle chamber 1004 is provided with an injector 1012 for injecting fuel, and the fuel ejected from the injector 1012 is mixed with the intake air while being sprayed in the air passage of the throttle chamber 1004 to mix the mixer. This mixer is supplied to the combustion chamber of cylinder 1008 by opening the valve of intake valve 1020 through intake pipe 1006.

분사기(1012)의 출구 근방에는 드로틀 밸브(1014), (1016)가 설치되어 있다. 드로틀 밸브(1014)는 가속폐달과 기계적으로 연동하도록 구성되고 운전자에 의하여 구동된다. 한편, 드로틀 밸브(1016)는 다이아프램(1018)에 의하여 구동되도록 배치되고 공기유량이 적은 영역에서 전폐 상태가 되어 공기 유량이 증가함에 따라 다이아 프램(1018)내의 부압이 증가하게 되므로 드로틀 밸브(1016)는 열리기 시작하며, 흡입저항의 증가를 억제한다. 드로틀 쳄버(4)의 드로틀밸브(1014), (1016)의 상류에는 공기통로(1022)가 설치되고, 이 공기통로(1022)에는 열전대식 공기유량 장치로 구성시킨 전기적 발열체(1024)가 배치되며, 공기유속과 발열체의 전열량과의 관계로부터 정해진 공기 유속에 따라 변화하는 전기 신호가 인출된다. 발열체(1024)는 바이패스 공기통로(1022)내에 설치되어 있으므로 실린더(1008)의 역화(back fire)발생시에 생기는 고온가스로 부터 보호됨과 동시에 흡입 공기 중의 먼지 등에 의하여 오염되는 것으로 부터도 보호된다. 이 바이패스 공기통로(1022)의 출구는 벤츄리의 최대협소부의 근방에 형성되고, 그 입구는 벤츄리의 상류측에 형성되어 있다. 분사기(1012)에 공급되는 연료는 연료탱크(1030)로 부터 연료펌프(1032), 연료댐퍼(1034) 및 필터(1036)를 거쳐 연료압력 레귤레이터(1038)에 공급된다. 한편, 연료압력 레귤레이터(1038)으로 부터는 분사기(1012)에 파이프(1040)를 거쳐 가압 연료가 공급되고, 그 분사기(1012)로 부터 요연료가 분사되는 흡기관(1006)의 압력과 상기 분사기(1012)에서의 연료압력의 차가 항상 일정하게 되도록 연료압력 레귤레이터(1038)로 부터 연료탱크(1030)에 피드백 파이프(1042)를 거쳐 연료가 되둘려지도록 되어 있다. 흡기밸브(1020)로 부터 흡입된 혼합기는 피스턴(1050)에 의하여 압축되어 점화 플라그(1052)에서 발생되는 스파아크에 의하여 연소하며 이 연소는 운등 에너지로 변환된다. 실린더(1008)는 냉각수(1054)에 의하여 냉각되고, 이 냉각수의 온도는 수온센서(1056)에 의하여 계측되며, 이 계측치는 엔진 온도로서 이용된다. 점화 플라그(1052)에는 점화 코일(1058)로 부터 점화 타이밍에 맞춰 고전압이 공급된다.Throttle valves 1014 and 1016 are provided near the outlet of the injector 1012. The throttle valve 1014 is configured to mechanically interlock with the accelerator pedal and is driven by the driver. On the other hand, the throttle valve 1016 is arranged to be driven by the diaphragm 1018 and is fully closed in a region where the air flow rate is small, so that the negative pressure in the diaphragm 1018 increases as the air flow rate increases, thereby the throttle valve 1016 ) Starts to open and suppresses the increase in suction resistance. An air passage 1022 is provided upstream of the throttle valves 1014 and 1016 of the throttle chamber 4, and an electric heating element 1024 composed of a thermocouple air flow device is disposed in the air passage 1022. From the relationship between the air flow rate and the heat transfer amount of the heating element, an electric signal which changes according to the predetermined air flow rate is drawn out. Since the heating element 1024 is provided in the bypass air passage 1022, the heating element 1024 is protected from the hot gas generated at the time of the back fire of the cylinder 1008, and is also protected from being contaminated by dust or the like in the intake air. The exit of the bypass air passage 1022 is formed near the maximum narrow portion of the venturi, and the inlet thereof is formed upstream of the venturi. The fuel supplied to the injector 1012 is supplied from the fuel tank 1030 to the fuel pressure regulator 1038 via the fuel pump 1032, the fuel damper 1034, and the filter 1036. On the other hand, from the fuel pressure regulator 1038, pressurized fuel is supplied to the injector 1012 via a pipe 1040, and the pressure of the intake pipe 1006 to which urine fuel is injected from the injector 1012 and the injector ( The fuel is returned from the fuel pressure regulator 1038 to the fuel tank 1030 via the feedback pipe 1042 so that the difference in fuel pressure at 1012 is always constant. The mixer sucked from the intake valve 1020 is compressed by the piston 1050 and burned by the spark that is generated in the ignition plaque 1052, which is converted into cloud energy. The cylinder 1008 is cooled by the cooling water 1054, and the temperature of this cooling water is measured by the water temperature sensor 1056, and this measured value is used as the engine temperature. The ignition flag 1052 is supplied with a high voltage from the ignition coil 1058 in accordance with the ignition timing.

또 도시하지 않은 크랭크 축에는 엔진의 회전에 따라 기준 크랭크각마다 또는 일정각도(예를들면 0.5도)마다 기준 각신호 및 위치신호를 내는 크랭크 각 센서가 설치되어 있다. 이 크랭크각 센서의 출력, 수온센서(1056)의 출력(1056 A) 및 발열체(1024)로 부터의 전기 신호는 마이크로 컴퓨터등으로 구성되는 제어회로(1064)에 입력되고, 제어회로(1064)에서 연산처리되며, 이 제어회로(1064)의 출력에 의하여 분사기(1012) 및 점화코일(1058)이 구등된다.The crankshaft (not shown) is provided with a crank angle sensor for generating a reference angle signal and a position signal at every reference crank angle or at a predetermined angle (for example, 0.5 degrees) according to the rotation of the engine. The output of this crank angle sensor, the output 1056A of the water temperature sensor 1056, and the electric signal from the heating element 1024 are input to a control circuit 1064 composed of a microcomputer or the like, and the control circuit 1064 The injector 1012 and the ignition coil 1058 are bulbated by the output of the control circuit 1064.

이상의 구성에 의해 제어되는 엔진 장치에 있어서, 드로틀 쳄버(1004)에는 드로틀의 드로틀밸브(1016)를 지나 흡기관(1006)에 연통하는 바이패스통로(1026)가 형성되며, 이 바이패스통로(1026)에는 개폐 제어되는 바이패스 밸브(1062)가 설치되어 있다. 이 바이패스밸브(1062)의 구동에는 상기 제어회로(1064)의 제어입력이 공급되어 개폐제어되도록 되어 있다.In the engine apparatus controlled by the above configuration, the throttle chamber 1004 is provided with a bypass passage 1026 which communicates with the intake pipe 1006 via the throttle valve 1016 of the throttle, and the bypass passage 1026. ) Is provided with a bypass valve 1062 which is controlled to open and close. A control input of the control circuit 1064 is supplied to drive the bypass valve 1062 to open and close the valve.

이 바이패스 밸브(1062)는 드로틀밸브(1016)를 우회하여 설치된 바이패스통로(1026)에 설치되고 펄스전류에 의하여 개폐제어가 된다. 이 바이패스 밸브(1062)는 밸브의 편의량에에 의하여 바이패스 통로(1026)의 단면적을 변경하며, 이 편의량은 제어회로(1064)의 출력에 의하여 구동장치가 구동 제어되게 한다.The bypass valve 1062 is provided in the bypass passage 1026 provided by bypassing the throttle valve 1016 and is controlled to open and close by a pulse current. This bypass valve 1062 changes the cross-sectional area of the bypass passage 1026 by the bias amount of the valve, which causes the drive to be driven controlled by the output of the control circuit 1064.

즉 제어회로(1064)에서는 구동장치의 제어를 하기 위하여 개폐주기 신호가 발생되며, 구동장치는 이 개폐주기 신호에 의하여 바이패스 밸브(1064)의 편의량을 조절하기 위한 제어신호를 바이패스 밸브(1062)의 구동부에 부여하는 것이다.That is, the control circuit 1064 generates an open / close cycle signal for controlling the drive device, and the drive device transmits a control signal for adjusting the bias amount of the bypass valve 1064 by the open / close cycle signal. 1062).

제24도는 제어장치의 전체 구성도이다. 제24도에 있어서 제4도와 같거나 또는 동일한 구성품은 제4도의 경우와 동일한 참조번호가 병기되어 있다. 또 제4도와 다른 부품에 대하여서만 설명한다.24 is an overall configuration diagram of the control device. In Fig. 24, the same or identical components as those in Fig. 4 have the same reference numerals as in Fig. 4. 4 and other components will be described only.

유량센서로 구성시킨 발열체(1024)(이하 AFS라함)의 출력은 ADC 2에 입력되며, 아날로그-디지틀 변환회로(172) (이하 ADC라 함)를 거쳐 디지틀 변환되어 레지스터(174)(이하 REG라함)에 세트된다.The output of the heating element 1024 (hereinafter referred to as AFS) constituted by the flow sensor is input to the ADC 2, and is digitally converted through the analog-digital conversion circuit 172 (hereinafter referred to as ADC) to register 174 (hereinafter referred to as REG). Set).

다음에 CPU의 연산결과에 의거한 펄스 출력회로 및 제어대상에 관하여 설명한다. 분사기 제어회로(INJC 라함)는 연산결과의 디지틀 값을 펄스출력으로 변환하는 회로이다. 따라서 연료분사량에 상당한 펄스폭을 갖는 펄스가 INJC (1134)에서 만들어져 AND게이트 (1136)를 거쳐 분사기(1012)에 인가된다.Next, the pulse output circuit and the control target based on the CPU calculation result will be described. The injector control circuit (called INJC) is a circuit for converting the digital value of the calculation result into a pulse output. Therefore, a pulse having a pulse width corresponding to the fuel injection amount is produced at the INJC 1134 and applied to the injector 1012 via the AND gate 1136.

점화펄스 발생회로(1138)(이하 IGNC라함)는 점화시기를 세트하는 레지스터(ADV 라함)와 점화코일의 1차 전류 통전개시 시간을 세트하는 레지스터(DWL이라함)등을 가지며, CPU로 부터 이들 데이터가 세트된다. 세트된 데이터에 의거하여 펄스를 발생시켜 제2도에서 상술한 증폭기(62)에 AND게이트(1140)를 거쳐 이 펄스를 인가한다.The ignition pulse generation circuit 1138 (hereinafter referred to as IGNC) has a register for setting the ignition timing (ADV) and a register for setting the ignition coil primary current start time (called DWL). The data is set. The pulse is generated based on the set data and is applied to the amplifier 62 described above with reference to the amplifier 62 via the AND gate 1140.

바이패스 밸브(1062)의 밸브 개방 정도는 제어회로(이하 ISCC라함)(1142)로 부터 AND게이트(1144)를 거쳐 공급된 펄스에 의하여 제어된다. ISCC(1142)는 펄스록 을 세트하는 레지스터 ISCD와 반복펄스주기를 세트하는 레지스터 ISCP를 갖고 있다.The valve opening degree of the bypass valve 1062 is controlled by a pulse supplied from the control circuit (hereinafter referred to as ISCC) 1142 via the AND gate 1144. The ISCC 1142 has a register ISCD for setting a pulse lock and a register ISCP for setting a repetitive pulse period.

제3도에 도시한 EGR제어밸브(86)를 교대로 제어하는 트랜지스터(90)를 제어하도록 EGR량 제어펄스발생회로(178)(이하 EGRC라함)에는 펄스의 듀티 사이클을 나타내는 값을 세트하는 레지시터 EGRD와 펄스의 반복주기를 나타내는 값을 세트하는 레지스터 EGRP를 갖고 있다. 이 EGRC의 출력펄스는 AND게이트(1156)를 거쳐 트랜지스터(90)에 인가된다.A register for setting a value representing the duty cycle of the pulse in the EGR amount control pulse generating circuit 178 (hereinafter referred to as EGRC) to control the transistor 90 that alternately controls the EGR control valve 86 shown in FIG. It has a register EGRP that sets the sitter EGRD and a value representing the repetition period of the pulse. The output pulse of this EGRC is applied to the transistor 90 via the AND gate 1156.

또, 1비트의 입출력신호는 회로 DIO (128)에 의하여 제어된다. 입력신호로서는 IDLE-SW신호, TOP-SW신호, START-SW신호가 있다. 또 출력신호로서는 연료펌프를 구동하기 위한 펄스출력신호가 있다. 이 DIO는 단자를 입력단로서 사용할 것인가, 출력단자로서 사용할 것인가를 결정하기 위한 레지스터 DDR(192)와, 출력데이터를 래치하기 위한 레지스터 DOUT(194)가 설치되어 있다.In addition, the 1-bit input / output signal is controlled by the circuit DIO 128. The input signals include IDLE-SW signals, TOP-SW signals, and START-SW signals. As an output signal, there is a pulse output signal for driving the fuel pump. This DIO is provided with a register DDR 192 for deciding whether to use a terminal as an input terminal or an output terminal, and a register DOUT 194 for latching output data.

모우드 레지스터(1160)는 입출력회로(108)내부의 각종의 상태를 지령하는 명령기억 레지스터(이하 MOD라함)인데 예컨대, 이 모우드 레지스터(1160)에 명령을 세트함으로써 AND 게이트(1136), (1140), (1144), (1156)를 모두 이 케이블 상태로 한다든가, 디스에이블 상태로 한다. 이와 같이 모우드 레지스터(1160)에 명령을 세트함으로써 INJC나 IGNC 및 ISCC의 출력신호의 발생과 종료를 제어할 수가 있다.The mode register 1160 is an instruction memory register (hereinafter referred to as MOD) for instructing various states inside the input / output circuit 108. For example, the AND registers 1136 and 1140 are set by setting an instruction in the mode register 1160. , 1144 and 1156 are all in this cable state or are in a disabled state. In this way, by setting an instruction in the mode register 1160, generation and termination of output signals of INJC, IGNC, and ISCC can be controlled.

각 타스크의 기동과 그 기능을 나타내는 상술한 제1표에서의 레벨 "1" 타스크 프로그램 CARBC는 기화기를 사용하지 않은 본 실시예에서는 불필요한 것이고, 그 대신 프로그램 INJC가 대체되지 않으면 안된다. 이 프로그램 INJC는 연료분사량의 연산을 그 기능으로 하고 그 프로그램의 기둥은 20msec마다 발생하는 개입중단요인 INTV IRQ에 의하여 행해진다. 기타의 프로그램에 관해서는 제1 실시예의 경우와 동일하다.The level "1" task program CARBC in the above-mentioned first table showing the start of each task and its function is unnecessary in this embodiment without using a carburetor, and the program INJC must be replaced instead. This program INJC uses the calculation of fuel injection amount as its function, and the pillar of the program is performed by INTV IRQ which is an interruption factor that occurs every 20 msec. Other programs are the same as those in the first embodiment.

제1실시예의 제7도에 나타낸 INITIALIZ프로그램과 서로 다른점에 관해서만 말하면, 제25도의 스탭(290)에서는 센서(1056)의 출력의 아날로그-디지틀 변환이 완료되면 다시 프로그램 AD1IN이 실행되어 레지스터 REG(166)내에 세트되어 있는 수온 센서 TWS(134)의 출력의 디지틀 값을 인출하고 제1실시예와 마찬가지로 ROM(104)의 DATA영역에 기억된다. 또 스탭(296')에서 시동시의 공기 바이패스 밸브(1062)의 개방정도의 연산을 행한다. 이 연산 은 제1 실시예와 마찬가지로 제11도에 나타내는 특성에 의거하여 행해지며, 이 인산출력은 레지스터 ISCD에 세트된다.In terms of differences from the INITIALIZ program shown in FIG. 7 of the first embodiment, in step 290 of FIG. 25, when the analog-digital conversion of the output of the sensor 1056 is completed, the program AD1IN is executed again to register REG. The digital value of the output of the water temperature sensor TWS 134 set in 166 is taken out and stored in the DATA area of the ROM 104 as in the first embodiment. The step 296 'calculates the degree of opening of the air bypass valve 1062 at startup. This calculation is performed based on the characteristics shown in FIG. 11 as in the first embodiment, and this phosphoric acid output is set in the register ISCD.

스탭(298')에서 연료분사시간의 초기치가 연산된다. 이 연산치는 제26도에 의하여 행회지며 레지스터 INJD1에 설정된다. 제26도는 수온에 대한 연료분사량의 미리 설정된 값을 나타내는 것이다. 이 도면은 제1실시예의 제10도에 대응하는 것이다.In the step 298 ', the initial value of the fuel injection time is calculated. This calculated value is traversed by FIG. 26 and set in the register INJD1. FIG. 26 shows a preset value of the fuel injection amount with respect to the water temperature. This figure corresponds to FIG. 10 of the first embodiment.

배경조브의 프로그램은 제27도에 나타내는 플루우차아트에 따라 실행된다. 제27도에 있어서, 스탭(410)에서 IDLE-SW(148)가 온인지의 여부를 판단한다. 만일 온이면 배기가스 환류를 행할 수 없다.The background job program is executed in accordance with the flucha art shown in FIG. In FIG. 27, the staff 410 determines whether the IDLE-SW 148 is on. If it is on, exhaust gas reflux cannot be performed.

따라서 스탭(412)으로 진행하여 EGRD레지스터에 "0"을 세트한다. 스탭(414)에서 냉각수온에 따라 공기 바이패스 밸브(1062)의 듀티사이클을 구하고 스탭(416)에서 이 듀티사이클을 ISCD레지스터에 세트한다. 이세트치에 따라 엔진에의 공기 바이패스량이 결정된다. 스탭(416)이 끝남에 따라 다시 스탭(410)으로 진행하며, CPU에 대한 IRQ의 서어비스의 요구가 나오지 않는한 이 페루우프에서 상기 스탭이 반복된다.Therefore, the process proceeds to step 412, where "0" is set in the EGRD register. The duty cycle of the air bypass valve 1062 is determined by the step 414 according to the cooling water temperature, and the step 416 sets the duty cycle in the ISCD register. This set value determines the amount of air bypass to the engine. As the staff 416 ends, the process proceeds to the staff 410 again, and the staff is repeated in this Peruup unless a request of the IRQ service is issued to the CPU.

한편, IDLE-SW가 오프되면 ISC는 실행할 수 없다. 따라서, 스탭(420)에서 ISCD레지스터에 "0"을 세트한다. 그리고 이 상태에서 EGR량의 연산이 행해진다. 이때문에 냉각수온 TW가 일정온도 TA℃보다 높은지의 여부가 판단된다. 만일 높은 경우 EGR을 CUT상태로 하기 위하여 스탭(426)으로 진행하여 EGRD레지스터에 "0"을 세트한다.On the other hand, ISC cannot be executed when IDLE-SW is turned off. Therefore, the staff 420 sets "0" in the ISCD register. In this state, the EGR amount is calculated. For this reason, it is judged whether cooling water temperature TW is higher than fixed temperature TA degreeC. If high, go to step 426 to set the EGR to the CUT state and set "0" to the EGRD register.

또 TW가 TA보다 낮은 경우 스탭(424)으로 진행하여 일정온도 TB보다 낮은 지의 여부를 판단하여 낮은 경우에도 EGR을 CUT한다. 따라서 스탭(426)으로 진행하여 EGRD에"0"을 세트한다. 스탭(422)의 온도레벨 TA는 상한의 온도를 나타내고, 한편 스탭(424)의 TB는 하한온도를 나타내며, 이 사이의 온도범위에서만 EGR작동을 한다. 따라서 이 사이의 범위에서는 스탭(428)으로 진행하며, 여기서 흡입공기량와 엔진회전속도 N으로부터 맵검색에 의하여 EGR량을 연산한다.If the TW is lower than the TA, the process proceeds to the step 424 to determine whether the temperature is lower than the predetermined temperature TB and to cut the EGR even when the TW is lower. Therefore, the process proceeds to the step 426, where "0" is set in the EGRD. The temperature level TA of the staff 422 represents the upper limit temperature, while the TB of the staff 424 represents the lower limit temperature, and the EGR operation is performed only in the temperature range therebetween. Therefore, in the range between these steps, the process proceeds to the step 428, where the amount of EGR is calculated by the map search from the intake air amount and the engine rotation speed N.

이에 대한 맵은 제6도의 ROM의 어드레스 B700-B7FF에 설명되어 있다. 이 검색치는 스탭(430)에서 EGRD레지스터에 세트된다. 이에 의하여 EGRD레지스터와 미리 세트되어 있는 EGRP레시스터의 듀티사이클에 의한 값으로 EGR밸브가 열러 EGR이 수행된다.The map for this is described in addresses B700-B7FF of the ROM of FIG. This search value is set in the EGRD register at step 430. As a result, the EGR valve is opened at the value due to the duty cycle of the EGRD register and the EGRP register set in advance, and EGR is performed.

제27도에 나타낸 플로우 차아트에서는 스탭(430) 또는 스탭(416)이 종료함에 따라 다시 스탭(410)으로 되돌아간다. 이와 같이 함으로써 계산기는 공기바이패스 밸브(1062)를 제어하기 위한 스탭으로(410)부터 스탭(416)까지의 플로우차아트나, 또는 EGR량을 제어하기 위한 스탭(420)에서 스탭(430)까지의 스탭플로우차아트를 항상 실행한다.In the flowchart shown in FIG. 27, as the step 430 or the step 416 ends, the flow returns to the step 410 again. By doing so, the calculator is a step 410 for controlling the air bypass valve 1062, the flow chart art from the step 416, or the step 420 to the step 430 for controlling the EGR amount. Always execute the step flow chart art.

따라서 제1 실시예와 마찬가지로 IRQ등의 발생이 생기지 않는 것이라 하면, 개시스탭(202)(제5도)으로부터 출발한 프로그램은 INITIALIZ(204), MONIT(206)을 거쳐 배경조브(208)인 ISCCO프로그램 또는, EGRCON프로그램을 항상 실행을 계속하는 것이 된다.Therefore, if the occurrence of IRQ or the like does not occur as in the first embodiment, the program starting from the start step 202 (FIG. 5) passes through the INITIALIZ 204 and the MONIT 206, and the background job 208 is ISCCO. The program or the EGRCON program is always executed.

제28도는 레벨 "1"의 타스크 프로그램을 실행하는 플로우차아트로서 스탭(672)에서 시동중인지의 여부를 판단한다. 시동중인 경우는 다른 프로그램에서 시동중의 연료나 점화시기가 결정되므로 이 프로그램군에서 계산할 필요가 없다. 따라서 제8도의 MONIT프로그램의 스탭(308)과 (310)에서 INTV IRQ의 금지가 해제되어 SFTMRI프로그램군이 기동됐을 경우, 기동표식이 세트되어 있으므로 스탭(672)에서 "긍정"으로 되면 스탭(678)으로 진행하고, 스탭(678)에서 점화코일의 일차전류 통전시간의 계산을 행하여 이 프로그램군의 연산을 종료한다. 시동중이 아닌 경우, 스탭(672)에서 스탭(674)으로 진행한다. 이 스탭(674)에서 INJC프로그램을 실행한다. 여기에서는 SFTMR에서 구한 흡입공기량와 엔진회전속도 N으로부터 제6도에 나타내는 AF맵에 의하여 연료분사량을 구한다. 이 분사량에 LAMBDA 프로그램에 의한 다른 계수(factors)로서 수정하고, 또 HOSEI프로그램에 의한 그외의 보정을 가하여 그 값을 INJD레지스터에 세트한다. 이 INJD의 프로그램을 실행 완료하면 스탭(676)에서는 IGNCAL프로그램을 실행한다. IGNCAL프로그램을 수행하므로 제6도에 도시한 맵으로부터 검색된 계수 QA와 N에 의거하여 점화시기를 구하고 그 연산결과를 ADV레지스터에 세트한다. IGNCAL프로그램의 종료에 따라 스탭(678)으로 진행하여 DWLCAL프로그램을 실행하고, 점화코일의 1차 코일전류 통전개시점을 구하여 그 값을 DWL레지스터에 기억시킨다.28 is a flowchart art for executing a task program of level " 1 ". It is determined whether or not the step 672 is being started. In case of starting, it is not necessary to calculate in this program group because fuel or ignition timing is started by other program. Therefore, when the prohibition of INTV IRQ is released in step 308 and 310 of the MONIT program of FIG. 8 and the SFTMRI program group is started, the start mark is set. ), The step 678 calculates the primary current energization time of the ignition coil to complete the calculation of this program group. If it is not starting, the process proceeds from the step 672 to the step 674. In this step 674, an INJC program is executed. Here, the fuel injection amount is calculated by the AF map shown in FIG. 6 from the intake air amount and engine rotation speed N obtained by SFTMR. The injection amount is corrected as other factors by the LAMBDA program, other corrections are made by the HOSEI program, and the value is set in the INJD register. Upon completion of the program of INJD, the staff 676 executes the IGNCAL program. Since the IGNCAL program is executed, the ignition timing is obtained based on the coefficients QA and N retrieved from the map shown in FIG. 6, and the operation result is set in the ADV register. Upon completion of the IGNCAL program, the process proceeds to the step 678 to execute the DWLCAL program, to obtain the starting point of the primary coil current energization of the ignition coil, and to store the value in the DWL register.

이상 INJC, IGNCAL, DWLCAL의 각 프로그램의 실행을 끝내고 종료보고를 위한 EXIT프로그램으로 점프하여 종료보고가 된다.The execution of each of the programs of INJC, IGNCAL, and DWLCAL is terminated, and the end report is jumped to the exit program for the end report.

제29도는 제4도의 CABC(165), FSC(176), EGRC(178) 및 제24도의 ISCC(1142)와 EGRC(178)의 상세도이다. 이 도면에서 CABD, FSCD, ISCD와 EGRD의 각 레지스터는 펄스폭을 나타내는 것으로서, 레지스터(802)에 해당한다. 또, CABP, FSCP, IFSCP와 EGRP에 해당하는 레지스터(806)가 있다.FIG. 29 is a detailed view of CABC 165, FSC 176, EGRC 178, and ISCC 1142 and EGRC 178 of FIG. In this figure, each register of CABD, FSCD, ISCD, and EGRD represents a pulse width, which corresponds to the register 802. There is also a register 806 corresponding to CABP, FSCP, IFSCP and EGRP.

지금 모우드 레지스터(1160)의 비트 bo에 고논리 "H"가 세트되어 있는 것으로 한다. 이때문에 AND게이트(1144)(도면 제24)와 (816)이 함께 동작상태이다. 카우터회로로 구성되는 타이머(804)는 AND게이트(816)로부터의 클록을 계수한다. 이 계수치 B는 레지스터(806)의 값과 비교기(810)에서 비교되어 계수치 B의 값이 레지스터(806)의 값이상이 되면 타이머(804)는 클리어된다. 따라서 타이머(804)는 레지스터(806)의 값 C에서 정하는 주기로 계수를 반복한다.It is assumed that high logic "H" is set in bit bo of the mode register 1160 at this time. For this reason, AND gate 1144 (Fig. 24) and 816 are in an operating state together. The timer 804 composed of the counter circuit counts the clock from the AND gate 816. The count value B is compared with the value of the register 806 in the comparator 810 so that the timer 804 is cleared when the value of the count value B becomes equal to or greater than the value of the register 806. Therefore, the timer 804 repeats the counting at a period determined by the value C of the register 806.

또, 타이머(804)의 계수치는 레지스터(802)의 값과 비교기(808)에서 비교된다. 이때, 레지스터(802)의 값 A가 타이머(804)의 계수치 B보다 큰 조건에서 플립플롭(812)을 세트하여 값 B가 A이상이 되는 조건에서 리세트된다. 이때문에 플립플롭(812)의 세트시간은 레지스터(802)의 값 A에 따라 정해진다. 이값 A를 크게함으로써 플립플롭(812)의 세트시간은 길어진다.In addition, the count value of the timer 804 is compared in the comparator 808 with the value of the register 802. At this time, the flip-flop 812 is set under the condition that the value A of the register 802 is larger than the count value B of the timer 804, and is reset under the condition that the value B becomes A or more. For this reason, the set time of the flip-flop 812 is determined according to the value A of the register 802. By increasing this value A, the set time of the flip-flop 812 becomes long.

또 상술한 바와 같이 타이머(804)의 계수는 레지스터(806)의 세트치에 따른 주파수로 반복되므로, 플립플롭(812)의 세트출력은 레지스터(806)의 세트치에 의하여 반복하여 주기에 따라 반복 출력된다. 모우드 레지스터(1160)(제24도)의 bo비트가 고논리 "H"레벨이므로 AND게이트(1144)를 거쳐 출력된다. 모우드 레지스터(1160)의 bo를 저논리 "L"로 하면 게이트(1144)와 (816)는 디스에이블되며 플립플롭(812)의 출력은 정지되며 동시에 타이머(804)에의 입력도 정지된다.As described above, since the count of the timer 804 is repeated at a frequency corresponding to the set value of the register 806, the set output of the flip-flop 812 is repeatedly repeated according to the period by the set value of the register 806. Is output. Since the bo bit of the mode register 1160 (FIG. 24) is a high logic " H " level, it is output via the AND gate 1144. When bo of the mode register 1160 is set to a low logic "L", the gates 1144 and 816 are disabled, the output of the flip-flop 812 is stopped, and the input to the timer 804 is also stopped.

따라서 제24도에 나타내는 모우드 레지스터에 CPU로부터 제어데이터를 세트함으로써 제29도의 회로동작의 개시 또는 정지를 제어할 수가 있다. 제29도는 모우드 레지스터의 bo에 의하여 AND게이트(1144)와 (816)이 제어되는 예이나, bo는 제24도의 ISCC(1142)의 ISCD를 제어하는 비트이다. 제24도의 EGRC(178)도 제29도와 동일한 구성이나, (1142)의 동작의 시동과 정지는 모우드 레지스터의 bo비트로 제어되고 EGRC(178)는 b2비트로 제어된다.Therefore, the start or stop of the circuit operation of FIG. 29 can be controlled by setting the control data from the CPU in the mode register shown in FIG. FIG. 29 shows an example in which the AND gates 1144 and 816 are controlled by bo in the mode register, but bo is a bit for controlling the ISCD of the ISCC 1142 of FIG. The EGRC 178 of FIG. 24 is the same as that of FIG. 29, but the start and stop of operation of 1142 are controlled by the bo bit of the mode register and the EGRC 178 is controlled by the b2 bit.

제30도는 제4도 IGNC(168) 또는 제24도의 IGNC(1138)의 상세도이다. CPU로부터 점화코일의 1차전류 통전개시시간을 제어하는 데이터가 DWL레지스터에 세트되어, 점화시기를 나타내는 데이터가 ADV레지스터에 세트된다. 지금 DWL레지스터(1168)의 세트치를 A. ADV레지스터(1169)의 세트치를 C라 한다.30 is a detailed view of the IGNC 168 of FIG. 4 or the IGNC 1138 of FIG. Data for controlling the primary current energization start time of the ignition coil from the CPU is set in the DWL register, and data indicating the ignition timing is set in the ADV register. Now, the set value of the DWL register 1168 is called A. The set value of the ADV register 1169 is C.

지금 모우드 레지스터(1160)의 b1비트가 고논리 "H"이면, AND게이트(1156)와 (860)은 신호를 전달하는 상태가 되어 있고 POS펄스가 AND게이트(860)를 거쳐 카운터(850)에 입력된다. 이 카운터(850)의 카운트치는 이때문에 엔진크랭크각에 따라 증가하여 기준각을 나타내는 REF펄스에 의하여 클리어된다. 이 계수치를 B라 한다. 계수치가 작을때는 비교기(852)의 A>B의 출력이 OR게이트를 거쳐 플립플 롭(856)에 공급되어 플립플롭(856)은 리세트상태가 된다.If the b1 bit of the mode register 1160 is now high logic " H ", the AND gates 1156 and 860 are in a state of transmitting a signal and the POS pulse is passed to the counter 850 via the AND gate 860. Is entered. For this reason, the count value of this counter 850 is increased by the engine crank angle and cleared by the REF pulse indicating the reference angle. This count is referred to as B. When the count value is small, the output of A> B of the comparator 852 is supplied to the flip flop 856 via the OR gate, and the flip flop 856 is reset.

따라서 AND게이트(1156)로부터는 펄스출력이 나오지 않는다. 카운터(850)의 계수치가 커지면 DWL레지스터(1168)의 세트치보다 카운트(850)의 계수치가 커지면 AND게이트(864)로부터의 출력에 의하여 플립플롭(856)은 세트된다. 이 세트출력이 게이트(1156)를 거쳐 점화장치에 인가되고, 점화코일에 1차전류가 흐른다. 계수치가 더 높아지면 비교기(854)의 C

Figure kpo00002
B출력에 의하여 플립플롭(856)은 다시 리세트된다. 이로 인하여 AND게이트(858)으로부터 펄스출력은 개입중단되고 점화를 위한 스파이크가 발생된다.Therefore, no pulse output comes from the AND gate 1156. If the count value of the counter 850 increases, the flip-flop 856 is set by the output from the AND gate 864 when the count value of the count 850 becomes larger than the set value of the DWL register 1168. This set output is applied to the ignition device via the gate 1156, and a primary current flows through the ignition coil. If the count is higher, C in comparator 854
Figure kpo00002
Flip-flop 856 is reset again by the B output. This interrupts the pulse output from the AND gate 858 and generates spikes for ignition.

제4도의 DIO(128) 및 제24도의 DIO(128)를 상세히 제31도에 도시한다. 이 도면에서 DDR는 DIO의 입출력포오트 DIOO∼DEO7을 입력상태로 하느냐 출력상태로 하느냐를 결정하는 것이다.DIO 128 in FIG. 4 and DIO 128 in FIG. 24 are shown in detail in FIG. In this figure, DDR determines whether the input / output ports DIOO to DEO7 of the DIO are placed in an input state or an output state.

DDR중 고논리 "H"가 세트된 비트로부터의 신호가 그에 대응한 3치상태(Tri State)의 구동기(872∼886)에 가해져 그 3치상태의 구동기는 도통상태가 된다. 이에 의하여 DDR의 고논리 "H"의 비트에 대응한 DOUT의 비트는 대응하고 있는 질문상태를 거쳐 출력된다.The signal from the bit in which the high logic " H " of the DDR is set is applied to the corresponding tri-state drivers 872 to 886 so that the tri-state driver is in a conductive state. As a result, the bits of DOUT corresponding to the bits of the high logic " H " of DDR are output through the corresponding question state.

한편, 라인 DIOO∼DIO7의 신호는 CPU로부터 버퍼증폭기(892∼904)를 거쳐 자유로이 읽어낼 수가 있다. 3치상태의 구동기(872∼856)중 부도통이 되어 있는 3치상태의 구동기에 대응하는 라인의 신호는 외부의 상태에 의존하므로 이 라인에 대해서는 외부의 상태를 읽어낼 수가 있다.On the other hand, the signals of the lines DIOO to DIO7 can be freely read from the CPU via the buffer amplifiers 892 to 904. Since the signal of the line corresponding to the ternary state driver which is in a negative conduction among the ternary state drivers 872 to 856 depends on the external state, the external state can be read out for this line.

제32도는 제24도의 INJC(1134)의 상세도로서, 크랭크각 센서로부터의 REF펄스는 크랭크각의 상사점 직전의 일정각도(예를 들면, 80도라든지 90도)에서 발생한다. 크랭크각의 상사점(TDC)과 REF의 관계를 제33도의 A, B를 나타낸다.FIG. 32 is a detailed view of the INJC 1134 of FIG. 24, wherein the REF pulse from the crank angle sensor occurs at a constant angle immediately before the top dead center of the crank angle (for example, 80 degrees or 90 degrees). A relationship between the top dead center (TDC) of the crank angle and REF is shown in FIGS.

지금 모우드 레지스터(1160)의 b4비트가 고논리 "H"가 되어 있다고 가정하므로 게이트(910), (912), (1136)(제24도)는 도전상태로 된다. 이때문에 카운터(904)의 계수치 는 제33도에 나타내는 바와 같이 REF펄스마다 클리어된다. 레지스터(902)는 연료분사 개시점을 결정하는 값(A)을 CPU로부터 수신하여 기억하는 레지스터이다.The gates 910, 912, 1136 (FIG. 24) are put into a conductive state since it is now assumed that the b4 bit of the mode register 1160 has a high logic " H ". For this reason, the count value of the counter 904 is cleared every REF pulse as shown in FIG. The register 902 is a register for receiving and storing a value A for determining the fuel injection start point from the CPU.

레지스터(902)의 값(A)은 계수치 B와 비교기(906)에 의하여 비교되고 플립플롭(908)으로 세트한다. 플립플롭(908)이 세트되어 있으면 게이트(1136)로부터 펄스가 보내져 분사밸브(1012)에 공급된다. 또 게이트(912)가 트리거되어 카운터로 이루어지는 타이머(916)는 클록펄스를 계수한다. INJD레지스터(914)는 제24도의 INJD레지스터이고, 이 레지스터의 세트치 C에 대응하는 시간동안 밸브는 열린다. 즉, 타이머(916)의 계수치 D가 C보다 작은 동안은 플립플롭(920)이 세트되어 있으나, C

Figure kpo00003
D인 조건에서 플 립플롭(920)이 세트되고 AND게이트(1136)로부터의 분사용 펄스는 정지한다.The value A of the register 902 is compared by the comparator 906 with the count B and set to the flip-flop 908. When the flip-flop 908 is set, a pulse is sent from the gate 1136 and supplied to the injection valve 1012. In addition, the timer 916 which is triggered by the gate 912 and counts a clock pulse. The INJD register 914 is the INJD register of FIG. 24, and the valve is opened for a time corresponding to the set value C of this register. That is, the flip-flop 920 is set while the count value D of the timer 916 is smaller than C, but C
Figure kpo00003
In the condition D, the flip-flop 920 is set and the injection pulse from the AND gate 1136 stops.

이와 같이하여 연료분사의 개시점과 밸브가 열리는 시간이 제어된다. 또 모우드 레지스터(1160)의 저논리 "0"(L)로 함으로써 게이트(1136)의 출력 및 모든 동작을 정지할 수가 있다. 이상과 같이 본 발명에 의하면 출력계의 동작의 시동과 정지를 CPU로 자유롭게 제어할 수가 있으므로 오동작이 생기지 않는다. 또 먼저 입출력회로의 입력회로를 동작시키기 위한 초기치 예컨대, 엔진회전속에 관한 측정을 위한 설정치의 세트나 DIO의 각 비트의 입출력의 지정등을 행하고 또 입출력회로(108)에서 CPU(102)에 대하여 서어비스를 요구하기 위한 IRQ의 조건의 설정이나 입력회로의 IRQ의 금지해제를 행한다. 다음에 시동에 필요한 입력의 인출과 그를 근거로한 시동을 위한 세트치의 연산을 행한다. 이들의 세트치를 입출력회로(108)의 각 레지스터에 세트한 후, 시동기의 시동감시를 행한다. 시동기의 시동을 확인하고 입출력회로(108)의 출력측장치를 기동한다. 이와 같이 엔진을 기동하기 위한 준비를 미리 행하고 있으므로 시동에 관계없이 출력측 장치를 기동할 수 있고, 또 기동할 때까지 출력장치를 정지시키고 있으므로 엔진의 제어장치를 오동작시키는 일이 없다. 또 전력소비도 적고 입출력회로(108)나 그 출력을 증폭하기 위한 증폭기의 발열도 억제된다.In this way, the starting point of the fuel injection and the opening time of the valve are controlled. Further, by setting the low logic " 0 " (L) of the mode register 1160, the output of the gate 1136 and all the operations can be stopped. As described above, according to the present invention, since the CPU can freely control the start and stop of the operation of the output system, no malfunction occurs. First, an initial value for operating the input circuit of the input / output circuit, for example, a set of set values for measuring the engine rotation speed, designation of the input / output of each bit of the DIO, and the like, and the input / output circuit 108 provides a service to the CPU 102. Set the conditions of the IRQ for requesting or release the IRQ of the input circuit. Next, withdrawal of input required for start-up and calculation of the set value for start-up based on that are performed. After setting these set values in each register of the input / output circuit 108, the starter is monitored. The start of the starter is confirmed and the output side device of the input / output circuit 108 is started. In this way, the preparation for starting the engine is made in advance, so that the output side device can be started regardless of the start, and the output device is stopped until the start. Therefore, the engine control device is not malfunctioned. In addition, power consumption is low, and heat generation of the input / output circuit 108 and the amplifier for amplifying the output is also suppressed.

또 제8도의 MONIT프로그램의 스탭(308)에서 INTV IRQ의 금지를 해제하고 있으므로, 시동중 즉, 스탭(302)과 스탭(304)의 공정에 의하여 만들어지는 페루우프를 실행하는 중에 INTV IRQ를 수신하고 INTV IRQ에 의거하여 CPU(102)는 그보다 중요한 일을 행한다. 이에 의하여 입출력계의 각 레지스터 IDJD, ADV, DWL, ISCD, EGRD로부터의 새로운 입력에 의거하여 연산결과의 설정을 할 수가 있다. 시동모우터의 시동에 의하여 축전지 전압이 변동하므로 그 변동에 따라 출력계의 레지스터의 설정치를 신속하게 변경시켜 주는 일은 대단히 중요하며 이것이 가능하게 된다.In addition, since the prohibition of INTV IRQ is canceled by the staff 308 of the MONIT program of FIG. 8, the INTV IRQ is received during startup, i.e., during the execution of the Perupu produced by the processes of the staff 302 and the staff 304. Based on the INTV IRQ, the CPU 102 performs a more important task. As a result, calculation results can be set based on new inputs from the registers IDJD, ADV, DWL, ISCD, and EGRD of the input / output system. Since the battery voltage is changed by the start of the starter motor, it is very important to quickly change the setting value of the register of the output meter according to the change, and this becomes possible.

본 발명에 의하면 연료분사의 연산을 타이머 개입중단으로 행하고 있으므로 연산장치의 부하가 엔진의 상태에 관계없이 안정해 있다.According to the present invention, calculation of fuel injection is performed by interrupting the timer, so that the load of the computing device is stable regardless of the engine state.

Claims (1)

프로세서가 다수의 타스크를 수행함에 따라 출력신호를 발생시키고, 이들 타스크의 기능이 프로세서제어되는 엔진운전에 영향을 미치게 하는데, 상기 타스크를 수행하는 실행을 통하여, 이들 타스크가 다수의 타스크 프로그램을 구비하게 한 전자식 엔진제어방법에 있어서, 타스크 프로그램을 실행하는 중에 프로세서가 응답하는 연속적인 개입중단신호를 발생시키는 단계(a)와, 각각의 개입중단신호에 응답하여, 메모리내에 현재 타스크 프로그램을 실행할 것을 요구하는 실행요구신호를 기억시키는 단계(b)와, 단계(b)에서 실행요구신호의 기억이 종료되자마자 상기 메로리를 검색하여 실행요구 신호의 존재여부를 확인하고 단계(b)에서 실행요구신호를 기억시킨 선택된 타스크 프로그램의 실행을 개시하는 단계(c)등으로 이루어진 것을 특징으로 하는 전자식 엔진제어방법.As the processor performs a number of tasks, it generates an output signal and the function of these tasks affects processor-controlled engine operation. Through the execution of the tasks, these tasks have a number of task programs. In an electronic engine control method, the method comprises: (a) generating a continuous interruption signal to which a processor responds during execution of a task program; and in response to each interruption signal, requesting to execute a current task program in memory. (B) storing the execution request signal, and searching for the memory as soon as the memory of the execution request signal is finished in step (b) to confirm the existence of the execution request signal, and in step (b) (C) starting the execution of the selected task program stored therein. Electronic engine control method.
KR1019800001563A 1980-04-16 1980-04-16 Control method of electronic engine KR850000119B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019800001563A KR850000119B1 (en) 1980-04-16 1980-04-16 Control method of electronic engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019800001563A KR850000119B1 (en) 1980-04-16 1980-04-16 Control method of electronic engine

Publications (2)

Publication Number Publication Date
KR830002993A KR830002993A (en) 1983-05-31
KR850000119B1 true KR850000119B1 (en) 1985-02-23

Family

ID=19216257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019800001563A KR850000119B1 (en) 1980-04-16 1980-04-16 Control method of electronic engine

Country Status (1)

Country Link
KR (1) KR850000119B1 (en)

Also Published As

Publication number Publication date
KR830002993A (en) 1983-05-31

Similar Documents

Publication Publication Date Title
US4337513A (en) Electronic type engine control method and apparatus
US4354238A (en) Method of controlling air-fuel ratio of internal combustion engine so as to effectively maintain the air fuel ratio at a desired air-fuel ratio of λ=1
US4482962A (en) Engine control method
JPS6212384B2 (en)
US4363097A (en) Electronic type engine control method
US4449502A (en) Control system for internal combustion engine
US4564907A (en) Electronic control apparatus for internal combustion engine
JPS6350546B2 (en)
EP0092828B1 (en) Fuel injection control apparatus for internal combustion engine
KR850000119B1 (en) Control method of electronic engine
JPS5996455A (en) Engine controller
JPS626097B2 (en)
JPH0138176B2 (en)
JPS5974339A (en) Fuel injector
US4522178A (en) Method of fuel control in engine
KR840001328B1 (en) Method of controlling air-fuel ratio of internal combustion engine
JPS623302B2 (en)
JPH0118443B2 (en)
JPS58150047A (en) Fuel injection controller of internal-combustion engine
JPS5974337A (en) Fuel injector
JPS5963327A (en) Method of controlling fuel injection in engine
KR850000933B1 (en) Method for controlling engine
JPS6239260B2 (en)
JPH0118256B2 (en)
JPS63314352A (en) Engine controller