Title of Invention


Abstract Method arid device for controlling processes in vehicle, in particular for controlling a drive in the vehicle, using at least one: processor, with control functions being stored in the form of program code in a processor-addressble address space of at least one memory. The address space is divided into segments of equal length, and the program code is stored as program parts per control function individual, consecutive sections in the segment. At least two segments are linked so that a section of a first segment ierogrammed as an exit label from the first segment, and a second section in the second segmentis programmed as an entry label to the second segment. A transition from the exit label of the first segment to the entry label of the second segment brackets the code segments and thus expands the possible segment area.
Full Text

Background information
The present invention relates to a method and A device for
controlling processes in a vehicle, in particular for
controlling a drive in a vehicle according to ijhe preambles of
the independent claims.
The address spaces of popular computers are dimded into multiple segments of equal size, for example 64 kilobytes. While a program is running, it ia possible to use an explicit command to switch from one code segment to the inext following interrupt processing- For example, the individual functions of an engine controller are programmed as program parts, known as program sections, on pages 3-4 and 9-4 of the 80166 Cross-Aseembler User's Guide by Tasking Software B. % These program parts are divided into consecutive sections for each interrupt or computing level. There ia no jump instruction for switching from one section to the next. Therefore, che sectioned program parts must be located in the same segment for the program code.
Baaed on the related art cited, different engine control functions can be implemented aa subroutines, and these subroutines can be called in one or more sectioned program sequences. The actual comprehensive program com is thus located in an unspecified segment, and only the small subroutine calls need to fit into the code segment, i.e., program segment (of 64 kilobytes in size, for example) in which the remaining sectioned program parts of lelated engine controller control functions are located.

It haa been found that the related art cited is unable to auppXy optimum results in every situaticn. ThiS even when using tha subroutine calls, the latter and any additional sectioned programe parts of related engine functions have to be arranged within the same code segment. In the case of powerful controllers, in particular those used to control processes in conjunction with an internal combustion engine| tha codes segment limit of 64 kilobytes, for example; is exceeded by various computing levels.
Even simply expanding existing functions by adding additional
sections that contain program code, i.e., programe parts, of recently added control functions quickly run up against or even exceed the existing code segment limit. Aa the central procesaing unit (CPU) uses 16-bit internal addtessing, for example, it is not possible to expand the segments to any desired size, and thus increase the scope of the program code and control functions.
The object is therefore to link program code, i.e., program parts, belonging to related control functions, jeven if the latter exceed the maximum possible segment limit of 64 kilobytes, for example, when using 2 to the power of IS-bit addressability.
This problem naturally arises even in the case pf larger and smaller code segments, such as when using 4, ..}, S, .*,, 12, ..-, 16, ..., 24, ..., or 32-bit addressability!
Advantages of the Invention
The present invention describes a method and device for controlling processes in a vehicle, in particular for controlling a drive in a vehicle, using at least one processor, with the control functions being stored the form of program code in a processor-addressable address space in at
NYOl 378679 v1

least one memory; the address space being divided into segments of equal length; and the program code in.program parts of each control function being stored in individual, consecutive sections in the segment. To allow(related control functions, i.e., their program code, to exceed the maximum segment size, at least two segments are advan|ageously linked ao that a section of a first segment contains Ian exit label, i.e,, an exit instruction or an exit routine |i.e,, program sequence) from the first segment, and a eecqnci section in the second segment contains an entry label, i.e., an entry instruction or an entry routine(i.e., progranj sequence), and the entry and exit labels are linked with ©acn! other in a way that provides a transition from the first eegmpnt to the second one By bracketing at least two code segments in this manner, it is possible to use related control function, i.e., their program code of nearly any size beyond the segment limits.
The exit label is advantageously programmed in the last section of the first segment, and/or the entry llabel is programmed in the first section of the second segment In the first segment, the program code thus grows from the end to the beginning of the segment, while in the second segment, it grows in the opposite direction from the beginning to the end of the segment The sections containing progranu code are therefore sequenced in the segments in reverse torder, depending on the control function i.e program parts, stored in them which doubles the available segment size when bracketing two segments. This method can also be used in a suitable manner for more than two code segmenta i.e program segments, and more than one interrupt/computing level. It is also unnecessary for the code segment in question to be arranged consecutively in the address apace•
The segments do not necessarily have to be stors^d in the same memory area or the same memory. This segmentaticm has to do with processor addressability. This means that ape processor
NYOI 378579 vt

addresses an address space that can include, at least one physical memory, but also several different ones, thus defining ita own separate virtual memory, Due to processor addressability, this address space, i.e.. memory, is divided into segment of maximum size.
The entry label and the exit label each advantageously include a complete section in a aingle code segment, making it possible to easily append this section to existing; sections or to eaeily start programming from these special section (entry and/or exit labels) without having to take the|labels (entry and/or exit labels) into consideration in the Additional program code of the control functions.
All program parts or program code, i.e the sections for the control functions, can thus be advantageously programmed and integrated using conventional software development methods without having to undergo any additional adaptation. This means that existing software modules do not have to be adapted/ either. The latter can continue to be jused for small systems, i.e systems coutainirig program code jin one segment, as well as for large systems i.e., systems that exceed the code segment limits.
Another advantage is that there is no need for iLterative postprocessing, such as inserting jumps and jump labels. compilation, aasemblyv testing, etc, of possily two or more control functions per program version. Furthermore, iterative conversion of control functions to subroutines or the like, as in the related art, is suitably eliminated, which means there is no need for retesting or rechecking the programe version.
All advantages of sectioning as opposed to a pure subroutine method, can thus remain intact, such as modular [programming and minimising computing runtime and program storage apace, which, in the end, lowers development and controller costs.

It is therefore possible Co advantageously inlluence the distribution of program code to the code segments exclusively during software integration. It hae no effect bn the software module implementation proceas. This means than- control function distribution can be defined in a controller task distribution syatem even before actual development, and it can also be advantageously expanded later on for a new program version.
When the expanded code segment limit9 are about to be exceeded^ suitable linker/locator instructions can be used to ensure that unwanted limit overshooting does not inadvertently occur. In addition, adding another bracketed segment can directly avoid exceeding such limits.
I Further advantages and advantageous embodiments! are derived
from the description and the claims.
The present invention ia explained in greater dptail below on the basis of the figures illustrated in the drawing where Figure 1 shows the components in a controller needed for illustrating the present invention, including aj central processing unit and at least one memory; and Figure 2 shows two segments in at least one memory that are bracketed by the labels according to the present invention.
Description of the Exemplary Embodiments
In Figure 1, reference number 100 designates a (Controller to which are sent signals that represent measured operating quantities of the drive unit, power train, and/dr vehicle or from which such operating quantities can be derived, using illustrated input/output unit 103, in particular these are operating quantities that can be evaluated to control a drive unit, in particular of an internal combustion engine. This
NYOI 37867$ V 1

unit 103 is also used to output signals that Operate control elements, i.e. actuators, to aet at least one vehicle operating quantity in particular that of a drive unit. This input/output unit 103 can also be designed as two separate units, namely an input unit and an output unit
As a function of the input signals, operating tjuantities and/or internal quantities derived from these signals, proceasor unit 101 generates values for the output control quantities to be output that set the control element according to a preset open-loop or closed-loop control setrategy, within the scope of programs implemented in at least |)ne memory 102, i,e control functions in the form of program:code. Control unit l00 can be used for tranemiesion control, chassis control (ABS, ASC, ES&, etc in particular brake, convenience and safety electronics control, etc.
However, because controller 100 is preferably a control unit for controlling a drive unit, in particular that of an internal combustion engine of a vehicle, the position of a control element operated by the "driver ia detected and evaluated in the kown manner, and a setpoint is determined for a torque of the drive unit. This results in the determination of a eetpoint, e.g., for the torqjae, taking into account aetpoints of other control systems received via input/output unit 103 including an anti-spin cpntrol system, a transmission control system, etc. as well as aetpoints generated internally (limits, etc.)* According |fo the preferred embodiment of an internal combustion engine controller, these setpointa are then converted so a setpoint for the throttle valve position aet by a poaitidn control circuit. Depending on the configuration of the Internal combustion engine, additional performance-determining functions are also provided, for example controlling a turbccharger of an exhaust gas recirculator, idle speed controller, etc.
NYOt 376679 VI

Furthermore, in the case of internal combusticn engines with direct gasoline injection, not only the air setting but also the denermination of fuel volume to be injecteji, determination of an air/fuel ratio to be aet> the specificacton of the injection cycle (pilot injection, secondary injection), control of a charge circulation valve, etc. determine performance, ao that a plurality of other prog:fama, i.e., control functions, that affect the performance,of the intern;^! cotnbustion engine - and thus vehicle safety - inuat be provided in addition to the ones illustratedv
In addition to ueing the present invention for jdrive control.
at is also conceivable to apply it to all othes] vehicle processes, as mentioned above. As described in relation to the internal combustion engine controller, this means that other control processes are conceivable, such as chasjeis control processes^ in particular the brake, transmissiofa, convenience electronics (such as window actuators and door |p.ocks) , etc.
This plurality of control functional i.e.,, progprams, is stored in or can be loaded into respective program memories 102 and
105 or 106, respectively, in the form of prograin code. For example/ memory 102 can be a nonvolatile memory!and memory lOS a volatile one. These memories 102, 105, as well as input/output unit 103 and central processing un|t (CPU) lOl are linked by an internal bus aystem 104, Optioaally, additional components and/or units can be Gonne«ted to bus system 104, These additional optional elements |an be, for examle, additional storage elements, additionai input/output interfaces additional central processing units,, etc. Memory
106 is optional and external to controller 100, jand it can be located, for example, in a further control unit/: an intelligent sensor, a signal processor, etc.
Processor 101 uses internal addressing [with] an autoincrement of a certain number of bits. This internal addressing function sets the size of the code segments in the indiviaual memories
NY01 378679 v1

addressable by GPU 101. An autoincrement: of l6 bits, for example; thus yields a 64K code segment. Even When using higher bit numbers for addressing, 1 . larger code segments, the failure of the present segment size to matph the new scope of control functions, thua exceeding it repeatedly occurs during the course of development. Thia situation occurs with
increasing frequency due to the addition of new control
functions and function scopes. More and more related functions, such as a function 1 (lambda control), a function 2 (ignition calculation with ignition angle and Smock control), a function 3 (start) with ever more complex hierarchical levels or subordinate functions, exceed the specified code segment limits. This results in a nearly unlimited degree of complexity and hierarchical depth for these functions.
The segments do not necessarily have to be stored in the same memory area or the same memory. This segmentati'pn has to do with processor addressability. This means that ithe processor addresses an address space that can include at [Least one physical memory, but also several different physical memories 102, 105, 106, thua defining its own aeparate, virtual memory. Due to processor addressability, this address space, i,e memory, is divided into segments. As a consequence of bracketing individual (at least two) segments, the entry and exit labels can be programmed in the same memory. The interface is thus advantageously located in the same memory, as shown in Figure 2.
Figure 2 now shows a means for achieving this object according to Che present invention, Reference number 200 designates a first code segment in a first memory, for example 102. Reference number 201 represents a second code segment, i.e, [programme segment, in either the same memory or janother memory, for example 105 or 106, Sections contaiiling program code of the control functions are arranged consecutively in the segments. In the case of comprehensive funcntions, the relevant function can also overlay one or more sections,
NY01 378579 v1

depending on the hierarchical depth. The consecutive sections in a first segment are shown in block 204 in segment 200. The storage space not yet occupied by sections is a free memory 202/ illustrated by a broken line, and also located in code segment 200, Depending on the direction in which the memory is programmed or written* the free memory can be Located at the beginning or end.
The program code can be divided into aectiona either on a time level i .e. time-synchronously, or event-synchronpously, for example synchronized with speed or crankshaft.|Section 1 in Figure 2, for example, includes a function 1 ;|or example lambda control. Sections 2, 3, and 4 can inclutje a function 2, for example an ignition calculation. Knock conljrol/ for example, is carried out in Section 4, while thn ignition angle is calculated in Section 3, and the ignition cc^lculation coordinated in Section 2* Sections 5 through 8 pontain additional control functions, i.e., the correaljonding program code, e.g., a function 3 (start)• If a further pontrol function, i,e., corresponding program code, is fco be added once the code segment has been completely filleji — making free memory 200 illustrated by the dotted line too sfnall or even completely unavailable for additional functional— the above-mentioned problems will arise.
To remedy this situation, GWl represents a section that is programmed as an exit label in the first segmenlt. Likewise, an entry label CW2 is programmed in a second segmeit 201, which can be located anywhere. If new control functiowe 9 through 16 need to be added, for example following an upgr^jde, they can be placed in a second code segment 201 if the ni}mber or size of the sections exceeds the storage capacity of 'free memory 202 for the next control function. Bracketing, ij.e./ linking the code segments, is achieved by exit and entr^j labels GWl and CW2,

The present invention thus enables all programme parts, i.e,, aectione, to be programmed unchanged for control functiona without any jump instructions or jump labels, kdding two aections that need to be programmed only once |nd that bracket the code segment transition, to the resulting overall syatem. Programming complete sections as entry and exit labels has the advantage that these jump labels, in particula| jump instructions with entry and exit addreeaes. reijpectively, do not have to be included in a control function flection, enabling development, i.e., task distribution,[to take place flexibly without taking into account code segment limits and labels. Reference number 203 represents the freje memory located in code segment 201. The consecutive sections are combined into block 205.
The labels can, of course, alao be programmed tpgether in a section with additional program code for contrail functions,
AB shown in Figure 2, it is especially advantagljsous to store the sections containing the entry and exit labej-s not juat anywhere in corresponding code segments 200 and|20l, respectively^ but to place section CWl of the first segment, which contains or referencea the exit label, at;the end of first segment 200 and section CW2 of segment 20.U which
contains or reference© the entry label, at the beginning of
this segment 201, i.e at the beginning of the';second code segment. This means that what in this case is tMce the code segment size is available right at the beginnimjf, and the related control functions can be stored in the lorm of their program code in the first and/or second code se NY01 378679 V 1

instructions being Inserted between the individaual sections;
Indeed, the entire range of control functions Irom sections 1
through 16 greatly exceeds the aize of the code segment. This
preserves the advantages of sectioning, like runtime
advantages due to fewer jump instructions, for example in
conjunction with a crash, and formation of the smallest
poasible function-oriented modules.

What is claimed is;
1. A method for controlling processes in a vehicle in particular for controlling a drive in the vehicle, using at least one processor, with control functions b^ajhg stored in
5. The method according to Claims 1 and 3,
wherein the sections in the first segment are arranged
sequentially and stored from the end of the first segment
NYD1 378670 VI

starting with the exit label to. the beginning of the first segment.
6, The method according to Claims and 4,
wherein the sections in the second segment are arranged sequentially and stored from the beginning of the second segment starting with the entry label to the end of the second segment.
7, The method according to Claim 1,
wherein the at least two gegmenta have at least!'one segment as a space between them-
a. A device for controlling processes in a vehicle, in particular for controlling a drive in the vehicle, having at least one processor that addresses an address space in at least one memory, and having the at least one memory, with control functions being stored in the form of p:rogram code in the address space via at least one memory; the address space being divided into segments of equal length; and the program code being stored in individual consecutive sections of the segment wherein means are provided chat link at least tvto segments so
that an exit label from the first segment is prclgrammed in one
section of a first segment and an entry label t
9. A method for controlling processes in a vehicle substantially as herein
described with reference to the accompanying drawings.
10. A device for controlling processes in a vehicle substantially as herein
described with reference to the accompanying drawings.




in-pct-2001-932-che-claims filed.pdf

in-pct-2001-932-che-claims granted.pdf






in-pct-2001-932-che-form 1.pdf

in-pct-2001-932-che-form 19.pdf

in-pct-2001-932-che-form 26.pdf

in-pct-2001-932-che-form 3.pdf

in-pct-2001-932-che-form 5.pdf

Patent Number 209796
Indian Patent Application Number IN/PCT/2001/932/CHE
PG Journal Number 50/2007
Publication Date 14-Dec-2007
Grant Date 06-Sep-2007
Date of Filing 04-Jul-2001
Name of Patentee M/S. ROBERT BOSCH GMBH
Applicant Address Postfach 30 02 20, D-70442 Stuttgart
# Inventor's Name Inventor's Address
1 SOMMER, Rainer Lindental 26A, 70499 Stuttgart,
2 STOBER, Markus Richard-Wagner-Strasse 24 71701 Schwieberdingen,
3 EGE, Taskin Murrhardter Weg 33/1 71732 Tamm,
PCT International Classification Number G06F 12/06
PCT International Application Number PCT/DE2000/003134
PCT International Filing date 2000-09-09
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 199 49 048.1 1999-10-11 Germany