DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE INVENTION
[0025] With reference to FIG. 1, a watercraft 30 and a controller area network (CAN) 32 for the watercraft 30 is described. The CAN 32 is one type of a local area network (LAN). While a network is described in connection with this particular type of network (i.e., the CAN 32 ) for the particular type of system (e.g., the watercraft 30 ), those of skill in the art will appreciate that the present invention may have utility in a wide range of applications for other types of networks that are used for other systems such as, for example, land vehicles, toys, game machines, factory control systems, building management systems or the like.
[0026] The watercraft 30 has a hull 34 . At least one drive unit propels the bull 34 . In the illustrated embodiment, a pair of outboard motors 36 A, 36 B preferably are mounted on a transom of the hull 34 as the drive units to propel the hull 34 . Other marine drives such as, for example, stern drives can replace the outboard motors 36 A, 36 B. Each outboard motor 36 A, 36 B incorporates a prime mover. The prime mover in the illustrated embodiment is an internal combustion engine 38 A, 38 B. Other types of prime movers such as, for example, electric motors can replace the engines 38 A, 38 B in other embodiments.
[0027] Each engine 38 A, 38 B incorporates one or more throttle valves in an air intake system to regulate a rate of airflow amount delivered to combustion chambers of the engine 38 A, 38 B. A throttle valve actuator preferably is coupled with valve shafts or a common valve shaft of the throttle valves to actuate the throttle valves. The throttle valve actuator can be formed with an electric motor or stepper motor, for example. Normally, the greater the throttle valve opens, the higher the rate of airflow amount into the engine and the higher the engine speed.
[0028] Each engine 38 A, 38 B preferably is provided with a fuel injection system that has fuel injectors spraying fuel directly into the combustion chambers or into a portion of the air intake system for combustion in the combustion chambers. Each engine 38 A, 38 B also is provided with an ignition or firing system that has spark plugs to ignite air/fuel charge in the combustion chambers of the engine.
[0029] Each outboard motor 36 A, 36 B has a propulsion unit that is powered by the engine 38 A, 38 B. The propulsion unit preferably is a propeller 40 A, 40 B. Other types of propulsion units such as, for example, a dual counter-rotating system or a hydrodynamic jet can replace the propeller 40 A, 40 B in other embodiments.
[0030] The outboard motor 36 A, 36 B also has a changeover mechanism (a transmission) that sets the propeller 40 A, 40 B for either forward, neutral or reverse operation. Each changeover mechanism preferably incorporates a changeover actuator to switch the changeover mechanism among forward, neutral and reverse positions that correspond to the forward, neutral and reverse operations of the propeller 40 A, 40 B, respectively. The changeover actuator can be formed with an electric motor, for example. The watercraft 30 proceeds forward when each propeller 40 A, 40 B is set in the forward operation, while the watercraft 30 proceeds backward when each propeller 40 A, 40 B is set in the reverse operation. The propellers 40 A, 40 B do not drive the watercraft when they are set for neutral operation.
[0031] In the illustrated embodiment, each outboard motor 36 A, 36 B is rotatable relative to the transom of the hull 34 to steer the watercraft 30 . A steering actuator such as, for example, an electric motor is provided at each outboard motor 36 A, 36 B. The outboard motors 36 A, 36 B pivot about respective steering axes that lie generally vertical. Preferably, the steering movements of both the motors 36 A, 36 B are synchronized. In one variation, the outboard motors 36 A, 36 B are mechanically linked to move together in the same steering range. Additionally, each outboard motor 36 A, 36 B can be tiltable about a generally horizontal tilt axis.
[0032] Each outboard motor 36 A, 36 B has a drive node 42 A, 42 B electrically coupled with the throttle valve actuator, the fuel injectors, the spark plugs, the changeover actuator and the steering actuator. In one variation of the illustrated embodiment, each outboard motor 36 A, 36 B can have an engine node electrically coupled with the throttle valve actuator, the fuel injectors and the spark plugs and also a propulsion node electrically coupled with the changeover actuator and the steering actuator. That is, the drive node can be divided into the engine node relating to the engine components such as the throttle valve actuator and the propulsion node relating to the propulsion components such as the changeover actuator. Further groupings or divisions of the outboard motor components are also possible in order to suit a particular application.
[0033] A watercraft velocity sensor 46 preferably is mounted on a bottom of the hull 34 at or near the stern of the watercraft 30 . The velocity sensor 46 preferably incorporates a Pitot tube and senses a water pressure in the tube to detect a velocity of the watercraft 30 ; however, other types of speed sensors (e.g., a paddle wheel sensor) can also be used. The velocity sensor 46 has a velocity sensor node 48 to transfer velocity data to the network 32 .
[0034] In the illustrated embodiment, a passenger's area 52 is defined in the hull 34 from the transom to a mid portion of the hull 34 . A remote controller 54 preferably is provided at a forward-most end of the passenger's area on the right-hand side. The illustrated remote controller 54 has a single control lever that is pivotally movable about a fulcrum to control both the throttle valve actuator and the changeover actuator. An operator can operate the control lever to set a desirable watercraft speed and to select one of the forward, neutral and reverse operations for the propeller 40 A, 40 B. The remote controller 54 has a remote controller node 56 to transfer throttle valve position control data and changeover position control data that represent how fast and in which direction the operator wants to move.
[0035] In a variation of this embodiment, the remote controller 54 can have two control levers, each of which separately controls the throttle valve actuator and the changeover actuator. In another variation, stick or sticks which slidably move can replace the control lever or levers, respectively.
[0036] A steering device 60 preferably is placed next to the remote controller 54 . The illustrated steering device 60 incorporates a steering wheel mounted on the hull 34 for pivotal movement. The steering device 60 changes the steering positions of the respective outboard motors 36 A, 36 B. The operator can operate the steering wheel to steer the outboard motors 36 A, 36 B. The steering device 60 has a steering node 62 to transfer steering position control data that represent the operator's desire to the network. The steering device, however, can take other forms, such as, for example, but without limitation, a handlebar, a joystick, or a yoke.
[0037] A display panel 66 is disposed at or near the forward-most end of the passenger's area 52 . In the illustrated embodiment, the display panel 66 is located between the remote controller 54 and the steering device 60 on the hull 34 . The illustrated display panel 66 indicates an engine speed, a watercraft velocity, a changeover position, a direction of travel (e.g., north, northwest, etc.) and other information that is informative when operating the watercraft 30 . Additionally, in the illustrated embodiment, a switch key recess 68 to receive a switch key is formed in an area of the display panel 66 . A main switch unit is formed under the panel 66 . The operator inserts the switch key into the switch key recess 68 and rotates the switch key to turn the main switch unit on. The display panel 66 has a display node 70 . The main switch unit also is electrically coupled with the display node 70 .
[0038] A fish-finder 74 preferably is placed at or near the forward-most end of the passenger's area and, in the illustrated embodiment, it is located on the left-hand side opposing to the remote controller 54 . The fish-finder 74 can be used when fishing or diving, for example. The fish-finder 74 has a fish-finder node 76 .
[0039] A bus or bus line 80 connects the drive nodes 42 A, 42 B, the velocity sensor node 48 , the remote controller node 56 , the steering node 62 , the display node 70 and the fish-finder node 74 with each other to form the CAN 32 . The drive nodes 42 A, 42 B, the velocity sensor node 48 , the remote controller node 56 , the steering node 62 , the display node 70 and the fish-finder node 74 are terminal nodes of the CAN 32 . A management node 82 also is connected to the bus 80 to manage the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 .
[0040] The illustrated bus 80 preferably is formed with twisted pair cables. Each terminal node 42 A, 42 B, 48 , 56 , 62 , 70 , 76 transfers a frame (e.g., a packet of information together with other fields, such as, for example, a header or possibly a trailer, that contain information that allows the packet to be forwarded to its destination on the network) to communicate with each other using the common bus 80 . In other words, a multi-processing communication is made among the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 . An access protocal such as, for example, a carrier sense multiple access/collision detection (CSMA/CD) method preferably is used in this network communication system.
[0041] The bus level of the bus 80 can be the logical value “0” or the logical level “1.” The logical value “0” is the dominant level of the bus 80 and is set when at least one of the nodes that is connected to the bus 80 outputs the logical value “0.” The logical value “1” is the recessive level of the bus 80 and is set when all the nodes connected to the bus 80 output the logical value “1.”
[0042] The bus 80 can be connect to the nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 , 82 in any forms such as, for example, a ring form and a star form. The bus 80 can use any cables or wires other than the twisted pair cables such as, for example, optical cables. Furthermore, a radio type bus (e.g., RF signal system) that has no cables or wires can replace the illustrated bus 80 .
[0043] The CAN 32 preferably includes an electric power source such as, for example, one or more batteries to supply electric power at least to some or all of the nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 , 82 . The power source can be used for other devices and electric components related to the outboard motors 36 A, 36 B and/or the watercraft 30 . In the illustrated embodiment, the power source is in a state to supply all of the nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 82 , except for the fish-finder node 76 , when the main switch unit is turned on. The illustrated fish-finder 74 has an own switch to activate the fish-finder 74 and the fish-finder node 76 .
[0044] With reference to FIG. 2 , each drive node 42 A, 42 B comprises a bus interface circuit 86 , a micro-computer 88 , an input circuit 90 and an output circuit 92 . The micro-computer 88 is a central processor of the drive node 42 A, 42 B and includes a communication control circuit 98 , a computing processing unit 100 , an input port 102 and an output port 104 .
[0045] The micro-computer 88 is connected to various sensors through the input circuit 90 . In the illustrated embodiment, the sensors include a throttle valve position sensor that detects an actual position of the throttle valves, an engine speed sensor and other sensors (e.g., an air pressure sensor and/or an air temperature sensor) that sense engine/drive conditions. The input circuit 90 receives actual throttle valve position data from the throttle valve position sensor, engine speed data from the engine speed sensor and other control data, if any, from the other sensors and send the data to the input port 102 .
[0046] The input port 102 receives the actual throttle valve position data, engine speed data and other control data, if any, from the inlet circuit 90 and passes those data over to the computing processing unit 102 . The conversion from an analog signal to a digital signal can occur in the input circuit 90 or at the individual sensor.
[0047] The micro-computer 88 also is connected to engine/drive (i.e., engine and/or outboard motor) components through the output circuit 92 . The engine/drive components at least include the throttle valve actuator, the fuel injectors, the spark plugs, the changeover actuator and the steering actuator. The output port 104 receives control data from the computing processing unit 100 and passes the data over to the output circuit 92 . The output circuit 92 then transfers the control data to the engine/drive components. Preferably, the engine/drive components include their own drive and/or power/charging circuits that respond to the control data sent from the device node; however, in some applications, such circuits for the various engine and outboard motor components (e.g., the throttle actuator) can be built into the output circuit 92 . For example, in the illustrated embodiment, the engine includes a separate charging circuit for the spark plugs. The output circuit 92 sends the control data to the charging circuit to instruct when to cause each spark plug to discharge and ignite the charge in the respective combustion chamber. In other forms, however, such a charging circuit can be integrated into the output circuit 92 .
[0048] Within the microprocessor 88 , the computing processing unit 100 communicates with the communication control circuit 98 that has a transferring buffer 106 and a receiving buffer 108 . The communication control circuit 98 is connected to the bus 80 through the bus interface circuit 86 .
[0049] The computing processing unit 100 incorporates at least one non-volatile storage or memory 109 such as, for example, ROM or EPROM. The non-volatile storage 109 preferably stores a classification identifier or ID allotted to the drive node 42 A, 42 B and each product or part number, manufacturing number and manufacturer model number of the outboard motor 36 A, 36 B. The classification identifier preferably is a serial number. Both the drive nodes 42 A, 42 B are assigned with the same classification identifier because the drive nodes 42 A, 42 B belong to the same classification. The product or parts number and the manufacturing number of one outboard motor 36 A, 36 B are discriminative with those of another outboard motor 36 A, 36 B. The manufacturer number may be the same as one another if the outboard motor 36 A, 36 B are manufactured by the same manufacturer. The product or parts number, the manufacturing number and the manufacturer number can be those of the engine 38 A, 38 B or other components or parts of the outboard motor 36 A, 36 B.
[0050] The computing processing unit 100 also incorporates one or more volatile storages such as, for example, RAM to store a network address (e.g., a physical address) that will be assigned from the management node 82 to each terminal node.
[0051] The drive nodes 42 A, 42 B preferably have higher ranked communication priority in the CAN 32 than the other terminal nodes 48 , 56 , 62 , 70 , 74 because the drive nodes 42 A, 42 B directly affect an operation of the engine 38 A, 38 B or an operation of the outboard motor 36 A, 36 B. In order to realize the higher ranked priority, the frame of the drive nodes 42 A, 42 B preferably has a larger number of dominants (e.g., logical level “0”) and the dominants preferably appear earlier than recessive in the sequential order. Any bus arbitration protocal that assigns a priority level to different devices can also be used.
[0052] The micro-computer 88 of each drive node 42 A, 42 B and, particularly, the computing processing unit 100 , controls the throttle valve position and the changeover position based upon the throttle valve position control data and the changeover position control data, respectively, that are sent by the remote controller node 56 . The computing processing unit 100 also controls the steering position based upon the steering position control data sent by the steering node 62 . Furthermore, the computing processing unit 100 calculates fuel injection timing and injection duration for the fuel injectors and ignition timing for the spark plugs based upon, at least in part, the watercraft velocity data transferred from the velocity sensor node 48 and the actual throttle valve position data and the engine speed data transferred from the throttle valve sensor and the engine speed sensor, respectively. The micro-computer 88 of the drive nodes 42 A, 42 B then controls the fuel injectors and the spark plugs using the calculated results.
[0053] The drive nodes 42 A, 42 B also transfer the actual throttle valve position data and the actual changeover position data and additionally engine speed data to the display node 70 through the bus 80 . Those data are indicated on the display panel 70 .
[0054] Each drive node 42 A, 42 B has a delay timer that measures an elapsed time TL after an error frame, which will be described below, is transferred, and a timer set counter that counts the number of times that the delay timer works. The computing processing unit 100 preferably incorporates the delay timer and the timer set counter.
[0055] With reference to FIG. 3 , the velocity sensor node 48 , the remote controller node 56 , the steering node 62 and the fish-finder node 76 each comprise the same node structure illustrated in FIG. 3 . This node structure comprises a bus interface circuit 110 , a micro-computer 112 and an input circuit 114 . The micro-computer 112 is a central processor in each node 48 , 56 , 62 , 76 and includes a communication control circuit 118 , a port control circuit 120 and an input port 122 .
[0056] The micro-computer 112 is connected to the respective sensor (the velocity sensor 48 , the remote controller 54 , the steering device 60 or the fish-finder 74 ) through the input circuit 114 . The input circuit 114 receives data from the respective sensor—watercraft velocity data from the velocity sensor 48 , throttle valve position control data and changeover position control data from the remote controller 56 , steering position control data from the steering device 60 or fish finding data from the fish-finder 74 —and sends the data to the input port 122 .
[0057] The input port 122 receives the data (the watercraft velocity data, the throttle valve position and changeover position control data, the steering position control data or the fish finding data) from the inlet circuit 114 and passes the data over to the port control circuit 120 .
[0058] Within the micro-processor 112 , the port control unit 120 communicates with the communication control circuit 118 that has a transferring buffer 126 and a receiving buffer 128 . The communication control circuit 118 is also connected to the bus 80 through the bus interface circuit 110 .
[0059] The port control circuit 120 incorporates at least one non-volatile storage or memory 132 such as, for example, ROM or/EPROM. The non-volatile storage 132 preferably stores at least a classification identifier or ID allotted to the respective one of the velocity sensor node 48 , the remote controller node 56 , the steering node 62 or the fish-finder node 76 , and a product or parts number, manufacturing model number and a manufacturer number of the velocity sensor 46 , the remote controller 54 , the steering device 60 and the fish-finder 74 . The identifier preferably is a serial number.
[0060] The port control circuit 120 also incorporates one or more volatile storages such as, for example, RAM to store a network address (e.g., a physical address) that will be assigned from the management node 82 to the respective nodes 48 , 56 , 62 and 76 .
[0061] Each node 48 , 56 , 62 , 76 has a delay timer (not shown) that measures an elapsed time TL after the error frame is transferred. The node 48 , 56 , 62 , 76 also has a timer set counter that counts the number of times that the delay timer works. The port control circuit 120 preferably incorporates the delay timer and the timer set counter.
[0062] With reference to FIG. 4 , the display node 80 comprises a bus interface circuit 136 , a micro-computer 138 , an input circuit 140 and an output circuit 142 . The micro-computer 138 is a central processor of the display node 70 and preferably includes a communication control circuit 98 , a port control circuit 146 , an input port 148 and an output port 150 .
[0063] The micro-computer 138 is connected to one or more devices that has data displayed on the display panel 66 . In the illustrated embodiment, the devices communicate with the micro-computer 138 through the input circuit 140 . Such device or devices can include a compass, for example. The input circuit 140 receives the display data from these device(s) and sends the data to the input port 140 . The main switch unit under the switch key recess 68 also is connected to the input circuit 140 in this embodiment. The input port 148 receives the data from the inlet circuit 140 and passes these data over to the port control circuit 146 .
[0064] The micro-computer 138 also is connected to respective indication elements of the display panel 66 through the output circuit 142 . The output port 150 receives the display data from the port control circuit 146 and passes the data to the output circuit 142 . The output circuit 142 then transfers the display data to the indication elements (e.g., a meter, a numeric or alphanumeric display, or a bar graph) of the display panel 66 . The indication elements can includes a meter such as, for example, a residual fuel meter. In one variation, the residual fuel gauge or other type of display can be provided separately from the display panel 66 and be coupled with the display node 70 .
[0065] Within the micro-computer 138 , the port control circuit 146 communicates with the communication control circuit 144 that has a transferring buffer 154 and a receiving buffer 156 . The communication control circuit 144 is connected to the bus 80 through the bus interface circuit 136 .
[0066] The port control circuit 146 preferably incorporates at least one non-volatile storage or memory 158 such as, for example, ROM or EPROM. The non-volatile storage 158 preferably stores at least a classification identifier or ID allotted to the display node 70 and a product or parts number, manufacturing number and a manufacturer model number of the display panel 66 . The identifier preferably is a serial number.
[0067] The port control circuit 146 preferably also incorporates one or more volatile storages such as, for example, RAM to store a network address or physical address that will be assigned to the display node 80 by the management node 82 .
[0068] The display node 70 has a delay timer that measures an elapsed time TL after the error frame is transferred. The display node 70 also has a timer set counter that counts the number of times that the delay timer works. The port control circuit 146 preferably incorporates the delay timer and the timer set counter.
[0069] With reference to FIG. 5 , the management node 82 comprises a bus interface circuit 160 , a micro-computer 162 . The micro-computer 162 preferably is a central processor of the management node 82 and includes a communication control circuit 164 , a computing processing device 166 and a storage device 168 .
[0070] The computing processing device 166 communicates with the communication control circuit 164 that has a transferring buffer 170 and a receiving buffer 172 . The communication control circuit 118 is connected to the bus 80 through the bus interface circuit 160 .
[0071] The computing processing device 166 also communicates with the storage device 168 . The storage device 168 has at least one volatile storage or memory such as, for example, RAM. The storage device 168 can have non-volatile storages other than or in addition to the volatile storage. The storage device 168 preferably stores (1) a classification table indicating relationships between classifications and the classification identifiers, and (2) a physical address table (network address table) indicating the relationships among at least (a) the physical addresses (network addresses) that will be assigned to the respective terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 , (b) the classification identifiers of the terminal node 42 A, 42 B, 48 , 56 , 62 , 70 , 76 , and (c) the manufacturing numbers of those terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 . In one embodiment, the physical addresses, the classification identifiers and the manufacturing numbers are listed in individual columns for those items in the address list. The physical addresses can be set at the discretion of the management node 82 .
[0072] In one variation, the storage device 168 can store other numbers than the manufacturing numbers that are selected from the product or parts numbers, the manufacturer numbers or the like. In another alternative, any of such numbers are selected together or are combined to make other numbers or codes, if necessary. Further, the physical addresses, the classification identifiers, the manufacturing numbers, the product or parts numbers, the manufacturer numbers and other numbers involved in this network system may include marks, symbols and other codes than numbers.
[0073] The management node 82 has a counter (not shown) that counts the number of times that the management node 82 has transferred an individual information transfer demanding frame, which will be described with reference to the flow chart of FIG. 6 . The computing processing device 166 preferably incorporates the counter.
[0074] The foregoing communication control circuit 98 , 118 , 144 , 164 of each node watches the transferred or received data and the bus level of the bus 80 , detects arbitration results that will be described below and notifies the arbitration results to the respective one of the computing processing unit 100 , the port control circuit 120 , 146 or the computing processing device 166 .
[0075] Also, the communication control circuit 98 , 118 , 144 , 164 of each node detects various errors and notifies the errors to the respective one of the computing processing unit 100 , the port control circuit 120 , 146 or the computing processing device 166 .
[0076] The errors include, for example, a bit error, a data error and/or a CRC error. The bit error is detected when the output level of each node and the level on the bus 80 are compared with each other and bits in each node output except for a stuffed bit or stuffed bits have different level with the bits on the bus 80 . In the illustrated embodiment, a data error is detected when the same level is continuously detected (e.g., six bits or more) even a stuffed bit or stuffed bits are involved in a certain field. That is, normally, a reversed bit is added into a field to inhibit a burst error from occurring if some bits that has the same level abnormally continues (e.g., five bits). If the next bit also has the same level despite of this addition of the reversed bit, then a data error has occurred.
[0077] The management node 82 provides the physical addresses (network addresses) to the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 , preferably while performing either an initial operation program 180 (shown in FIG. 6 ) or an interrupt operation program 182 (illustrated in FIG. 7 ).
[0078] With initial reference to FIG. 6 , the initial operation program 180 preferably starts when the main switch unit is turned on. The main switch unit in this embodiment is turned on when the operator rotates the switch key in the switch key recess 68 . In this embodiment, all the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 except for the fish-finder node 76 are turned on when the main switch unit is turned on. The management node 82 waits for the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 to become ready to start before proceeding to run the program.
[0079] The management node 82 , at Step S 1 , preferably erases all erasable storages in the storage device 168 . That is, the management node 82 erases all the physical addresses, the classification identifiers and the manufacturing numbers previously recorded in the physical address table (network address table). The program 180 then proceeds to Step S 2 .
[0080] At Step S 2 , the management node 82 creates an individual information transfer demanding frame that demands each terminal node 42 A, 42 B, 48 , 56 , 62 , 70 to transfer at least its respective classification identifier and the manufacturing number (or similar identification information) to the management node 82 . The management node 82 provides the individual information transfer demanding frame to the bus 80 . Then, the program 82 proceeds to Step S 3 .
[0081] The management node 82 , at Step S 3 , determines whether at least one individual information response frame has been received from one of the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 . The fish-finder node 76 will not transfer this frame if the fish-finder 74 has not yet been turned on. The terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , except for the fish-finder node 76 , transfer the respective individual information response frame to the management node 82 . If the determination at Step S 3 is negative, i.e., no individual information response frame has been received, the management node 82 repeats Step S 3 until an individual information response frame is received. If the determination is positive, the program 180 proceeds to Step S 4 .
[0082] At Step S 4 , the management node 82 preferably refers to the physical address table stored in the storage device 168 and selects one physical address which has the smallest number in physical addresses that has not yet been allotted to any terminal nodes. At the very beginning, no physical address has been allotted, so the management node 82 can select the smallest number in the entire list and assign the number to the first responding node 42 A, 42 B, 48 , 56 , 62 , 70 as the physical address for that node. The management node 82 writes or registers the selected physical address in a column of the physical address table, and also writes or registers the classification identifier and the manufacturing number in other columns of the physical address table corresponding to the column in which the physical address has been written. Of course, the management node 82 can write to other cells in the table provided that the cells in which the information is stored correspond with one another (e.g., information written to cells in adjacent rows). The program 180 then proceeds to Step S 5 .
[0083] The management node 82 , at Step S 5 , creates a physical address notification frame that includes the physical address table having the assigned physical address(es), the classification identifier(s) and the manufacturing number(s) and transfers the physical address notification frame to the first responding node 42 A, 42 B, 48 , 56 , 62 , 70 . The prgram 180 proceeds to Step S 6 .
[0084] At Step S 6 , the management node 82 determines whether another individual information response frame has been received from another terminal node 42 A, 42 B, 48 , 56 , 62 , 70 . If the determination is positive, the program 180 returns to and repeats Step S 4 for the next-to-respond terminal node. Step 4 is repeated for each responding terminal node, which usually includes all of the terminal node except for the fish-finder node. If the determination is negative, the program 180 proceeds to Step S 7 .
[0085] At Step S 7 , the management node 82 determines whether the individual information response frames have been received from indispensable nodes which cannot be neglected in the control of the outboard motors 36 A, 36 B. In the illustrated embodiment, the indispensable nodes include at least the drive nodes 42 A, 42 B, the remote controller node 56 and the steering node 62 . If the determination at Step S 6 is positive, i.e., all the individual information response frames have been received from the indispensable nodes 42 A, 42 B, 56 , 62 , the program proceeds to Step S 8 .
[0086] The management node 82 , at Step S 8 , determines whether a preset time has elapsed. The preset time preferably includes sufficient time in which the management node 82 can complete at least the procedure to allot the physical addresses to the indispensable nodes 42 A, 42 B, 56 , 62 and also to write the physical address table. If the determination at Step S 8 is positive, the program 180 proceeds to Step S 9 . The management node 82 , at Step S 9 , starts the interrupt operation program 182 shown in FIG. 7 and then the initial operation program 180 ends. If the determination at Step S 8 is negative, the program 180 returns to Step S 6 to repeat Step S 6 .
[0087] If the determination at Step S 7 is negative, the program 180 proceeds to Step S 10 . The management node 82 , at Step S 10 , sets a count number m of the counter by incrementing by “1” or adding “1” to the previous count number m. The program 180 proceeds to Step S 11 .
[0088] At Step S 11 , the management node 82 determines whether the count number m is equal to or greater than an abnormal count number ma, which is stored I memory. If the determination at Step S 11 is positive, the program 180 goes to Step S 12 and the management node 82 shuts down at least a portion of the bus 80 . The program 180 then ends.
[0089] The management node 82 preferably informs the abnormal condition to the display node 70 to indicate this condition on the display panel 66 . In one variation, the management node 82 can directly sends a signal indicative of the abnormal condition to an warning indication element in the display panel 66 , which can be a liquid crystal indicator, for example, to indicate the condition at this element, even if the display node 70 has not been assigned with a physical address at this moment. A warning buzzer can additionally or alternatively sounds to inform the abnormal condition to the operator.
[0090] If the determination at Step S 12 is negative, i.e., the count number m is less than the abnormal count number ma, the program 180 returns to Step S 2 to repeat Step S 2 . At least the indispensable nodes 42 A, 42 B, 56 , 62 thus will be assigned individual physical addresses before the network can be used by the associated devices. The terminal nodes that have been assigned with the physical addresses are activated and can communicate with all the other active nodes on the CAN 32 .
[0091] With reference to FIG. 7 , the interrupt operation program 182 starts when the management node 82 receives another individual information response frame from one of the remainder nodes. The interrupt operation program 182 preferably interrupts any other program being run by the management node 82 . In the illustrated embodiment, the reminder nodes can include the velocity sensor node 48 and the display node 66 , if those nodes 48 , 66 have not been assigned with a the physical address by the time the initial operation program 180 ends. The fish-finder node 76 can be included in the remainder nodes, for example, if the fish-finder 74 is turned on after the initial operation program 180 ends.
[0092] The program 182 proceeds to Step S 15 once started. At Step S 15 , the management node 82 in the illustrated embodiment refers to the physical address table stored in the storage device 168 and selects the smallest number, which has not yet been allotted to any terminal nodes, as a physical address that will be assigned to the terminal node that has transferred the individual information response frame. Of course, other protocols for assigning physical addresses can also be used. The program 182 then goes to Step S 16 .
[0093] The management node 82 , at Step S 16 , writes the selected physical address in a column of the physical address table, and also writes the classification identifier and the manufacturing number in other columns of the physical address table corresponding to the column in which the physical address has been written. The program 182 then goes to Step S 17 .
[0094] The management node 82 , at Step S 17 , creates a physical address notification frame that includes the physical address table having the physical address, the classification identifier and the manufacturing number and transfers the physical address notification frame to the terminal node that needs the physical address. The management node 82 also sends the frame to the other terminal nodes so as to update their physical address tables. The program 182 then ends.
[0095] An individual operation program 184 shown in FIG. 8 preferably is used for conducting an operation on the side of each terminal node 42 A, 42 B, 48 , 56 , 62 , 70 , 76 . In order to simplify the description, the operation program 184 is described in the context of its operation in the drive node 42 A, for example, unless specific descriptions are necessary about the operation program 184 and performed by another node. The operations on the other terminal nodes 42 B, 48 , 56 , 62 , 70 , 76 are generally the same as the operation on the terminal node 42 A and will be easily understood by those of skill in the art in view of the following description.
[0096] With reference to FIG. 8 , the drive node 42 A starts and proceeds to Step S 21 when the main switch unit is turned on. The drive node 42 A resets the count number n in the timer set counter to “0” at Step S 21 . The program 184 then goes to Step S 22 .
[0097] The drive node 42 A determines whether the individual information transfer demanding frame is received from the management node 82 at Step S 22 .
[0098] If the determination at Step S 22 is positive, the program 184 directly goes to Step S 24 . If the determination at Step S- 22 is negative, i.e., the individual information transfer demanding frame is not received from the management node 82 , the program 184 goes to Step S 23 .
[0099] Normally, the determination at Step S 22 in connection with the drive nodes 42 A, 42 B, the velocity sensor node 48 , the remote controller node 56 , the steering node 62 and the display node 70 , which are turned on generally simultaneously when the main switch unit is turned on, is positive, because the management node 82 has transferred the individual information transfer demanding frame at this moment. However, the determination at Step S 22 in connection with the fish-finder 76 can be negative because the fish-finder 74 typically is turned on when the watercraft 30 reaches a fishing site. Thus, in this embodiment, Step S 23 is mainly for the fish-finder node 76 .
[0100] The drive node 42 A, at Step S 23 , determines whether a preset time has elapsed. If the determination at Step S 23 is negative, the program 184 returns back to Step S 22 to repeat Step S 22 . If the determination at Step S 23 is positive, the program 184 goes to Step S 24 to conduct Step S 24 .
[0101] At Step S 24 , the drive node 42 A creates the individual information response frame that includes its own classification identifier and manufacturing number. FIG. 9 illustrates an example form of the individual information response frame. The frame preferably includes a SOF (start of frame) field 188 , an ID field 190 , an RTR (remotely transferring requirement) field 192 , a control field 194 , a data field 196 , a CRC field 198 , an ACK field 200 and an EOF (end of frame).
[0102] The ID field 190 and the RTR field 192 together form an arbitration field 204 . The SOF field 188 and the RTR field 192 each preferably comprise a single bit. The CRC field 98 , the ACK field 200 and the EOF field 202 preferably each comprises at least one bit. The ID field 190 preferably comprises eleven bits or 29 bits. The control field 194 preferably comprises six bits. The data field 196 preferably comprises 64 bits.
[0103] The ID field 190 includes the classification identifier, while the data field 196 includes the manufacturing number of the outboard motor 36 A. Both the ID fields 190 of the drive nodes 42 A, 42 B have the same classification identifier. The classification identifier for the drive nodes 42 A, 42 B preferably involves a larger number of dominants than the classification identifier for other nodes 48 , 56 , 62 , 70 , 76 . In other words, the classification identifier for other nodes 48 , 56 , 62 , 70 , 76 preferably involve a larger number of recessives than the classification identifier for the drive nodes 42 A, 42 B. The manufacturing number preferably is expressed in hexadecimal notation.
[0104] The SOF field 188 is indicative of the beginning of the frame. The RTR field 192 is provided to demand or require other nodes to transfer data thereof. The CRC field 198 is provided to detect transfer errors. The EOF field 202 is indicative of the end of the frame. The drive node 42 A provides the classification identifier stored in the non-volatile storage 109 to the ID filed 190 . The drive node 42 A also provides the manufacturing number stored in the non-volatile storage 109 to the data field 196 .
[0105] The program 184 then proceeds to Step S 25 . The drive node 42 A, at Step S 25 , provides the individual information response frame created at Step S 24 to the bus 80 , i.e., starts transferring the individual information response frame to the management node 82 via the bus. Then, the program 184 proceeds to Step S 26 .
[0106] At Step S 26 , the drive node 42 A determines whether any transferring error occurred. Transferring errors can occur when bit error, data error and/or CRC error, which were described above, happen. In addition, the transferring errors can occur when a contention between two or more nodes occurs and one of the nodes loses an arbitration therebetween, i.e., when the drive node 42 A and another terminal node(s) simultaneously transfer the respective individual information response frames to the management node 82 and the drive node 42 A loses the arbitration. Normally, the contention is arbitrated with a manner that will be described below. If the determination at Step S 26 is negative, i.e., a transferring error has not occurred, the program 184 proceeds to Step S 27 .
[0107] The drive node 42 A, at Step S 27 , determines whether the transfer of the individual information response frame has been completed. If the determination at Step S 27 is positive, the program goes to Step S 28 . The drive node 42 A determines whether the physical address notification frame from the management node 82 has been received. If the determination at Step S 28 is negative, i.e., the transfer of the individual information response frame is not complete, the drive node 42 A repeats Step S 28 until the determination becomes positive.
[0108] The program 184 proceeds to Step S 29 when the determination at Step S 28 becomes positive. At Step S 29 , the drive node 42 A picks up the physical address (i.e., network address) from the physical address notification frame that has been received from the management node 82 and stores the physical address in its own storage such as, for example, the RAM in the computing processing unit 100 . The program 184 then ends.
[0109] If the determination at Step S 27 is negative, i.e., the transfer of the individual information response frame has not completed, the program 184 goes to Step 30 . The drive node 42 A determines whether an error frame has been received from another node 42 B, 48 , 56 , 62 , 70 at Step 30 . The error frame preferably comprises an active error flag having six dominant bits (e.g., logical level “0”) and an error delimiter having eight recessive bits (e.g., logical level “1”). If the determination at Step 30 is negative, the program 184 returns back to Step S 26 assuming that the transfer of the individual information response frame still continues. If the determination at Step 30 is positive, the program 184 proceeds to Step 35 , which will be described shortly, assuming that a transfer error has occurred.
[0110] If the determination at Step S 26 is positive, i.e., some transferring error occurs, the program 184 goes to Step S 31 and the drive node 42 A stops transferring the individual information response frame. The program 184 then proceeds to Step 32 .
[0111] At Step S 32 , the drive node 42 A determines whether the transferring error has arisen from losing an arbitration with another node 42 B, 48 , 56 , 62 , 70 . In the illustrated embodiment, the arbitration is conducted by comparing the arbitration field 204 ( FIG. 9 ) with that of the other node 42 B, 48 , 56 , 62 , 70 . The comparison is made bit by bit in the arbitration filed 204 . If the drive node 42 A submits a recessive bit and the other node 42 B, 48 , 56 , 62 , 70 submits a dominant bit, then the drive node 42 A loses in the arbitration. If the drive node 42 A and the other node 42 B, 48 , 56 , 62 , 70 both submit the same dominant or recessive bit, the comparison is made using each next bit.
[0112] If the determination at Step S 32 is positive, i.e., the drive node 42 A has lost the arbitration, the program 184 goes to Step S 33 . The drive node 42 A determines, at Step S 33 , whether the other node 42 B, 48 , 56 , 62 , 70 , which won the arbitration, has completed the transfer of its individual information response frame. If the determination at Step S 33 is negative, the program 184 repeats Step S 33 until the transfer of the individual information response frame by the other node 42 B, 48 , 56 , 62 , 70 is completed. If the determination at Step S 33 is positive, the program 184 returns to and repeats step S 25 .
[0113] If the determination at Step S 32 is negative, i.e., the drive node 42 A neither lost nor won an arbitration, the program 184 goes to Step S 34 assuming that the bit error, data error or CRC error has occurred. At Step S 34 , the drive node 42 A creates an error frame and transfers the error frame to the other nodes 42 B, 48 , 56 , 62 , 70 through the bus 80 . The program 184 then goes to Step S 35 .
[0114] At Step S 35 , the drive node 42 A starts the delay timer to measure an elapsed time TL after the drive node 42 A has transferred the error frame. Then, the program 184 goes to Step S 36 .
[0115] The drive node 42 A sets the count number n of the timer set counter by incrementing it by “1” or adding “1” to the previous count number n. The program 184 then goes to Step S 37 .
[0116] The drive node 42 A, at Step S 37 , determines whether the counter number n equal to “9,” i.e., whether the timer set counter has set the timer nine times. If the determination at Step S 37 is positive, the program 184 goes to Step S 38 and the drive node 42 A sets the count number n to “1” at Step S 38 . The program 184 then goes to Step S 39 . If the determination at Step S 37 is negative, i.e., the timer set counter has not yet set the timer nine times, the program 184 directly moves to Step S 39 .
[0117] At Step S 39 , the drive node 42 A divides the manufacturing number (e.g., serial number) in the data field 196 ( FIG. 9 ), which is expressed in the hexadecimal notation in this embodiment, into a plurality of bytes from the head, chooses the byte at the order n from the head, which corresponds to the counter number n, and calculates a decimal number Dn (in base 10) using the byte at the order n. The byte comprises eight bits. Because the counter number n is “1” at this moment, the drive node 42 A chooses the first byte. For example, if the first byte is “12,” then the number “18” (=1*16 1 +2) is calculated out as the decimal number Dn. The program 184 then goes to Step S 40 .
[0118] The drive node 42 A further calculates a delay time DT using the following formula:
Dt=Dn*Th
[0119] That is, the delay time Dt is calculated by multiplying the decimal number Dn by a transfer time Tb of one bit, which is a clock time of the CAN 32 . For example, the transfer time Tb is 4 ì s (micro seconds) if the communication speed of the network is 250 Kbps (kilo bits per second). Also, for example, if the decimal number Dn is “18” and the transfer time Tb is 4 ì s, the delay time Dt is 72 ì s (=18*4). The program 184 goes to Step S 41 after calculating the delay time Dt.
[0120] At Step S 41 , the drive node 42 A determines whether the elapsed time TL, which was started at Step 35 is equal to or greater than the delay time DT. If the determination at Step S 41 is negative, the program 184 repeats Step S 41 until the delay time DT has elapsed. If the determination at Step S 41 is positive, i.e., the delay time Dt has elapsed, the program 184 goes to Step S 42 and the drive node 42 A stops the delay timer. The program 184 then returns to Step S 25 and repeats Step S 25 , i.e., starts transferring the individual information response frame.
[0121] With reference to FIGS. 6 - 8 , the interrelated operations of the management node 82 and the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 in the illustrated embodiment are described below.
[0122] Before the main switch unit is turned on, all the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 76 and the management node 82 are not supplied with electric power. As noted above, all the nodes 42 A, 42 B, 48 , 56 , 62 , 70 , 82 except for the fish-finder node 76 are supplied with the electric power when the main switch unit is turned on in the illustrated embodiment. An initial assignment procedure of physical addresses is now ready to start.
[0123] The management node 82 erases all the physical addresses, the classification identifiers and the manufacturing numbers in the physical address list after the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 are ready to communicate with the management node 82 (Step S 1 ). The management node 82 then creates the individual information transfer demanding frame and provides the frame to the bus 80 (Step S 2 ).
[0124] Generally at the same time, the respective terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 reset the count number n in each timer set counter to “0” (Step S 21 ). Next, the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 create the individual information response frame (Step S 24 ) when the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 has received the individual information transfer demanding frame from the management node 82 (Step S 22 ). More specifically, the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 read the classification identifier stored in each non-volatile storage and write the classification identifier in the ID field 190 of the individual information response frame shown in FIG. 9 . The terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 also read the manufacturing number stored in the non-volatile storage and write the manufacturing number in the data field 196 of the individual information response frame. The terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 then start transferring the individual information response frames to the management node 82 through the bus 80 (Step S 25 ).
[0125] Because all the terminal nodes 42 A, 42 B, 48 , 56 , 62 , 70 generally simultaneously start transferring the individual information response frames, some of the individual information response frames may be simul