内燃機関のクランク角を検出するクランク角検出手段と、前記内燃機関のカム角を検出するカム角検出手段と、前記クランク角検出手段が検出するクランク角に基づいて前記内燃機関の停止位置を検出して記憶する停止位置検出記憶手段と、前記クランク角検出手段が検出するクランク角に基づいて前記内燃機関の前記停止位置よりの始動を判定する始動判定手段と、前記クランク角検出手段が検出するクランク角と前記カム角検出手段が検出するカム角とに基づいて前記内燃機関のクランク位置を特定するクランク位置特定手段と、前記クランク位置特定手段の特定結果に基づいて前記内燃機関の始動開始後2回目以降の燃料噴射タイミングを演算する第1の噴射タイミング演算手段と、前記クランク位置特定手段の特定結果に基づいて前記内燃機関の始動開始後初回の燃料噴射タイミングを演算する第1の噴射タイミングよりも遅い第2の噴射タイミング演算手段と、前記停止位置検出記憶手段に記憶された前記内燃機関の停止位置および前記始動判定手段の判定結果に基づいて前記第1の噴射タイミング演算手段あるいは前記第2の噴射タイミング演算手段が演算する噴射タイミングのいずれかを選定する燃料噴射タイミング選定手段と、前記燃料噴射タイミング選定手段が選定した燃料噴射タイミングで燃料の噴射を行う燃料噴射手段とを備えたことを特徴とする内燃機関の燃料噴射制御装置。始動開始後の初回の燃料噴射は、始動開始位置が、前記第1の噴射タイミングよりも遅角側にあり、前記第2の噴射タイミングよりも進角側にある場合には、始動開始の最初に検出したクランク角検出手段の検出タイミングで始動開始後の初回の燃料噴射を行い、始動開始位置が前記第1の噴射タイミングよりも進角側にある場合は、前記第1の燃料噴射タイミングで燃料噴射を行い、初回の燃料噴射以降は前記第1の燃料噴射タイミングで燃料噴射を行うことを特徴とする請求項1に記載の内燃機関の燃料噴射制御装置。前記クランク角検出手段は、前記内燃機関の正転時と逆転時のそれぞれに応じたクランク角信号を出力し、前記停止位置検出記憶手段は、前記正転時と逆転時のそれぞれのクランク角信号を計数することにより前記内燃機関の停止位置を検出して記憶することを特徴とする請求項1または2に記載の内燃機関の燃料噴射制御装置。特定クランク角を識別するための特定クランク角識別手段を備え、前記内燃機関の始動開始後に、前記特定クランク角識別手段により、特定クランク角を識別した場合に、始動開始後に前記停止位置検出記憶手段で記憶している停止位置から計数したクランク角と前記クランク角検出手段で検出したクランク角が異なる場合には、前記クランク角検出手段で検出したクランク角を現在のクランク角とすることを特徴とする請求項3に記載の内燃機関の制御装置。前記停止位置検出記憶手段は、前記内燃機関の始動時は、逆転のクランク角の計数を行わないことを特徴とする請求項3に記載の内燃機関の制御装置。前記クランク角をカウントするクランクカウンタを備え、前記クランクカウンタのカウント値が所定の範囲内にあり、かつ、燃料噴射をまだ開始していない場合は、前記クランクカウンタのカウント値に対応する気筒に燃料噴射を行うことを特徴とする請求項1または2に記載の内燃機関の燃料噴射制御装置。前記第2の噴射タイミングは、前記内燃機関の温度に応じて変更することを特徴とする請求項第1または2に記載の内燃機関の燃料噴射制御装置。図26は、特許文献1に記載された従来の内燃機関の燃料噴射制御装置の動作例を説明するためのタイムチャートである。図26特許文献1の図7を用いて、特許文献1に記載の従来の内燃機関の燃料噴射制御装置の動作について、以下に説明する。クランキング開始位置でスタータ信号aがON後に、t1のタイミングで全気筒同時に燃料の始動時非同期噴射が実施される。t3のタイミングで気筒判別信号を検出すると、t4の同期噴射タイミングで燃料の同期噴射を行う。この同期噴射は、始動時の非同期噴射がシリンダ内に吸入された気筒1気筒と3気筒に対して行われ、始動時の非同期噴射がシリンダに吸入されていない気筒4気筒と2気筒には行わない。そのため、非同期噴射分と同期噴射分の両方の燃料が一度の吸入タイミングでシリンダに吸入されて過剰な燃料量となるために発生する始動不良を防止している。しかしながら、3気筒に対しては、タイミングt10のバルブオーバラップ以前の排気行程で非同期噴射を行っているので、タイミングt10のバルブオーバラップ時すなわち、排気バルブと吸気バルブが同時に開いている時に非同期噴射の燃料がそのまま排気管へ流出する。そのため、排出ガスへの未燃ガスの混入による排気ガスの悪化と、シリンダ内に滞在する燃料量の不足によって、燃焼不良による始動不良が発生するという問題があった。また、図27は、特許文献2に記載された従来の内燃機関の燃料噴射制御装置の動作例を説明するためのフローチャートである。図27特許文献2の図11を用いて、特許文献2に記載の従来の内燃機関の燃料噴射制御装置の動作について、以下に説明する。S11ステップ11で、気筒判別が完了XTDCEG=1、かつクランク位置カウンタが特定気筒のTDCC=0である場合は、非同期噴射を実施せずに、S14で非同期噴射完了XSTASY=1とする。なお、TDCは、TopDeadCenterの略である。S12で、非同期噴射が未完了XSTASY=0、かつ気筒判別完了XTDCEG=1、かつクランク位置カウンタが他の特定気筒のTDCC=12である場合は、S15で決められた気筒S15A、S62B、S36A、S41B、S24A、S53Bに基本噴射量の8倍TAU×8の燃料噴射を実施して、非同期噴射を完了XSTASY=1とする。S13で、非同期噴射が未完了XSTASY=0、かつクランキングカウンタが6以上E≧6すなわち、30deg毎のクランク角信号を6回以上カウントし、クランク角で180deg以上回転したかを判定した場合は、S16で他の決められた気筒S15A、S62B、S41B、S24A、S53Bに基本噴射量の8倍TAU×8の燃料噴射を実施して、非同期噴射を完了XSTASY=1とする。このように、クランキング開始後にTDC信号により気筒判別が完了するか、クランク角が180deg以上回転したことを判別しないと、非同期噴射が実施されないため、始動に時間を要するという問題があった。この発明は、このような従来の内燃機関の燃料噴射制御装置の問題点を解決するためになされたものであり、始動性を向上させることができるともに、始動時の排ガス悪化を防止することができる内燃機関の燃料噴射制御装置を提供することを目的とする。この発明に係る内燃機関の燃料噴射制御装置は、内燃機関のクランク角を検出するクランク角検出手段と、前記内燃機関のカム角を検出するカム角検出手段と、前記クランク角検出手段が検出するクランク角に基づいて前記内燃機関の停止位置を検出して記憶する停止位置検出記憶手段と、前記クランク角検出手段が検出するクランク角に基づいて前記内燃機関の前記停止位置よりの始動を判定する始動判定手段と、前記クランク角検出手段が検出するクランク角と前記カム角検出手段が検出するカム角とに基づいて前記内燃機関のクランク位置を特定するクランク位置特定手段と、前記クランク位置特定手段の特定結果に基づいて前記内燃機関の始動開始後2回目以降の燃料噴射タイミングを演算する第1の噴射タイミング演算手段と、前記クランク位置特定手段の特定結果に基づいて前記内燃機関の始動開始後初回の燃料噴射タイミングを演算する第1の噴射タイミングよりも遅い第2の噴射タイミング演算手段と、前記停止位置検出記憶手段に記憶された前記内燃機関の停止位置および前記始動判定手段の判定結果に基づいて前記第1の噴射タイミング演算手段あるいは前記第2の噴射タイミング演算手段が演算する噴射タイミングのいずれかを選定する燃料噴射タイミング選定手段と、前記燃料噴射タイミング選定手段が選定した燃料噴射タイミングで燃料の噴射を行う燃料噴射手段を備えたものである。本発明によれば、始動時の初回の燃料噴射タイミングを、2回目以降の噴射タイミングよりも吸気行程に噴射する燃料がシリンダ内に吸入可能な範囲内で遅角させることにより、内燃機関の始動性を向上できるとともに、始動時の排ガス悪化を防止できる。以下、図面に基づいて、本発明の一実施の形態例について説明する。実施の形態1.図1は、本発明に係る内燃機関エンジンとも記すの燃料噴射制御装置の全体構成を示す図である。図1において、101は内燃機関、102は内燃機関が吸入する空気を浄化するエアクリーナ、103は吸気管、104は内燃機関が吸入する空気量を調整するスロットルバルブ、105はスロットルバルブ下流の吸気管の圧力を計測する圧力センサ、106は内燃機関が吸入する空気に燃料を供給し混合気を形成するインジェクタ、107は排気管、108は内燃機関から排出する排気ガスの残存空気量を計量するフロントO2センサ、109は触媒三元触媒を通過した後の排気ガス中の残存空気量を計量するリアO2センサ、110は排気ガスの有害成分であるHC、CO、NOxを無害なCO2、H2Oに変換する三元触媒、111は一次コイルに電流を通電/遮断することで二次コイルに高電圧を発生させる点火コイル、112は点火コイルで発生した高電圧により火花を発生させる点火プラグ、113はカム角信号を発生するカム角センサ、114はカム角センサで信号を発生させるための突起もしくは窪みが形成されたカム角センサプレート、115はクランク角信号を発生するクランク角センサ、116はクランク角センサで信号を発生させるための突起もしくは窪みが形成されたクランク角センサプレート、117は内燃機関を冷却するための冷却水、118は冷却水117の温度を検出するための水温センサである。また、119は、カム角センサ113、クランク角センサ115、圧力センサ105、フロントO2センサ108、リアO2センサ109、水温センサ118等からの信号を入力し、燃料噴射量、点火タイミング等を演算し、インジェクタ106、点火コイル111に信号を出力するコントロールユニット以下、ECUと記すである。図2は、実施の形態1による内燃機関の燃料噴射制御装置の機能的構成を示すブロック図である。図2において、201はクランク角検出手段であり、図1に示したクランク角センサ115とクランク角センサプレート116で構成される。202はカム角検出手段であり、カム角センサ113とカム角センサプレート114で構成される。203は停止位置検出記憶手段であり、ECU119内のクランクカウンタがその役割を担う。204は始動判定手段であり、ECU119内で判定される始動モード判定がその役割を担う。205はクランク位置特定手段であり、クランク角センサ115とカム角センサ113の信号に基づいてクランク位置を特定する。206は第1の噴射タイミング演算手段第1噴射タイミング演算手段であり、内燃機関の始動開始後2回目以降の燃料噴射タイミングを演算算出する。207は第2の噴射タイミング演算手段第2噴射タイミング演算手段であり、内燃機関の始動開始後初回の燃料噴射タイミングを演算算出する。208は燃料噴射タイミング選定手段であり、始動開始後初回か2回目以降かで、燃料噴射タイミングを、第1の噴射タイミングか第2の噴射タイミングかを選定し、燃料噴射タイミングの切り替えを行う。209は燃料噴射手段であり、燃料噴射タイミング選定手段208で選定したタイミングで燃料噴射を行う。図3~図6は、クランク角センサ115の出力を説明するための図である。なお、図3および図4は、クランク角の回転方向が正転から逆転に転じる場合、図5および図6は、クランク角の回転方向が逆転から正転に転じる場合を示している。また、図3および図5は、ECU119が識別するクランク角が正しいタイミングである場合、図4および図6は、ECU119が識別するクランク角が正しいタイミングからずれる場合を示す。クランク角センサプレートの突起に付した番号は、クランク角センサプレートの突起に対するクランク角センサ信号との対応を説明するための番号であり、後掲する図18、図19のクランクカウンタ値とは異なる。図3aに示したクランク角センサプレートは、図1のクランク角センサプレート116を平面展開したものであり、数値1、2、3は、それぞれの歯すなわち、突起を示している。図3bに示した回転方向は、クランク角センサプレート116が回転することによりクランク角センサが矢印の方向で移動していることを示す。クランク角センサプレートの2と3の間で正転から逆転に転じている。図3cに示した矢印は、図3bの回転方向に沿った場合のクランク角回転方向を示す。時点EとFの間で回転方向が反転する前は正転、回転方向が反転した後は逆転していることを示す。図3dは、正転または逆転した状態でのクランク角センサの歯を左から右に時間軸のイメージで展開したものである。図3eは、図3dのクランク角センサプレートに対するクランク角センサの出力信号を示したものである。図3fは、時点を示している。時点Aでは、クランク角センサプレートの突起歯とも称す1がクランク角センサ115に近づいてきたことによる磁束の変化により、クランク角センサ115の出力信号がLowからHighに反転する。時点Bでは、クランク角センサプレート116の突起1の中心がクランク角センサ115を通過したことで、クランク角センサ115の出力信号がHighからLowに反転する。正転時は、クランク角センサ115の出力信号がHighからLowに反転する立ち下りエッジポイントが有効エッジとなる。時点Cおよび時点Dは、次のクランク角センサプレート116の突起2がクランク角センサ115を通過する場合であり、時点A、時点Bと動作は同じである。時点Eは、次のクランク角センサプレート116の突起3がクランク角センサ115に接近したことによるクランク角センサ出力信号のLowからHighへの反転であり、時点A、時点Cと動作は同じである。時点Fは、逆転によりクランク角センサプレート116の突起3がクランク角センサ115から遠ざかることでクランク角センサ115の出力信号がHighからLowに反転する。逆転時は、Low側の出力電圧が正転時よりも高くなる。正転時のLowレベル=0v、逆転時のLowレベル=2.5v時点Gは、逆転でクランク角センサプレート116の突起2の中心がクランク角センサ115を通過したことでクランク角センサ115の出力信号がLowからHighに反転する。逆転時は、立ち上がりが有効エッジとなる。時点Hは、クランク角センサプレート116の突起1が逆転で接近することでクランク角センサ115の出力信号がHighからLowに転じる。このように、クランク角センサ115の出力信号のLowレベルが正転時と逆転時で異なるクランク角センサを用いて、Lowレベルが低い状態0vへの立ち下りを有効エッジ、Lowレベルが高い状態2.5vからの立ち上がりを有効エッジとすることで、正転と逆転がそれぞれ計数できる。図3~図6中のセンサ出力信号eにおける矢印は、説明上、視覚的にわかりやすくするために示した有効エッジを表したものであり、センサ出力信号に重畳しているわけではない。エンジン停止に至る過程では、シリンダの圧縮圧力に打ち勝って圧縮上死点を通過できない場合は、ゆり戻しによりエンジンは逆転することとなる。図4は、図3に対して、正転から逆転に転じる場合にECU119が識別するクランク角が正しいタイミングとはずれる場合を示している。時点Aから時点Dまでは図3と同じである。時点Eでは、逆転でクランク角センサプレートの突起2の中心をクランク角センサが通過することで、図4eに示すように、クランク角センサ信号がLowからHighに反転する。時点Fでは、逆転でクランク角センサプレート116の突起1がクランク角センサ115に接近することにより、クランク角センサ115の出力信号がHighからLowに反転する。時点Eは、本来有効エッジであるが、Lowレベルが低い0v状態から立ち上がるため、有効エッジと判定されず、クランク角センサ信号のミスカウントカウント抜けが発生する。図5は、逆転から正転に転じる場合のクランク角センサ115の出力信号を示したものである。時点Aでは、クランク角センサプレート116の突起3がクランク角センサ115に近づくことによって、クランク角センサ115の出力信号はHighからLowに反転する。逆転しているために、Lowレベルは高い2.5v。時点Bは、クランク角センサプレート116の突起3の中心がクランク角センサ115を通過したことで、図5eに示すように、クランク角センサ115の出力信号がLowからHighに反転する。逆転時はクランク角センサ115の出力信号がLowからHighに反転する立ち上りエッジポイントが有効エッジとなる。時点Cおよび時点Dは、次のクランク角センサプレート116の突起2がクランク角センサ115を通過する場合である、時点A、時点Bと動作は同じである。時点Eでは、正転でクランク角センサプレート116の突起2がクランク角センサ115を通過したことでクランク角センサ115の出力信号がHighからLowに反転する。正転時は立ち下がりが有効エッジとなる。時点Fでは、クランク角センサプレートの突起3が接近することで、クランク角センサ115の出力信号がLowからHighに反転する。図6は、図5に対して、逆転から正転に転じる場合にECU119が識別するクランク角が正しいタイミングとはずれる場合である。時点Aから時点Dまでは図5と同じである。時点Eでは、クランク角センサプレート116の突起1が近づくことでクランク角センサ115の出力信号がHighからLowに反転する。時点Fでは、クランク角センサプレート116の突起1から遠ざかることにより、クランク角センサ115の出力信号がLowからHighに反転する。時点Gは、正転でクランク角センサプレート116の突起2の中心がクランク角センサ115を通過したことでクランク角センサ115の出力信号がHighからLowに反転する。正転時は立ち下がりが有効エッジとなる。時点Hでは、クランク角センサプレート116の突起3が近づくことでクランク角センサ115の出力信号がLowからHighに反転する。時点Fは本来無効エッジであるが、Lowレベルが高い2.5v状態から立ち上がるため、有効エッジと判定され、クランク角センサ信号の誤カウントが発生する。このように、正転時と逆転時のLowレベルの出力電圧が異なるクランク角センサを用いることで、正転と逆転が識別できる。また、正転から逆転、逆転から正転に転じる位置によっては、クランク角センサ信号の検出抜け、および誤検出が発生する。また、正転時と逆転時でHighレベルまたはLowレベルの幅が異なる信号を発生するクランク角センサもあるが、このセンサ仕様でも正転から逆転、逆転から正転に転じる位置によっては、クランク角センサ信号の誤検出が発生する。図7から図17は、本実施の形態を説明するためのフローチャートであり、ECU119が内蔵するマイクロコンピュータが実行するプログラムの実行手順を示す。図1に示す3気筒エンジンに対するクランク角センサSGT信号、カム角センサSGC信号を用いたものに対する処理内容である。図7は、イグニッションスイッチ図示なしが運転者によりONされ、ECU119に電源が供給されて最初に実行させる処理を示すフローチャートである。ステップS701で、クランクカウンタを255にセットする。クランクカウンタは、クランク角センサ115の信号が入力される毎にカウントされるカウンタであり、動作は後述する。ステップS702で、欠歯間クランクカウンタを0にする。欠歯間クランクカウンタは、クランク角センサ信号の欠歯間のクランク角センサ検出数をカウントするカウンタである。ステップS703で、欠歯検出回数を0にする。欠歯検出回数は、欠歯を検出した回数である。1バイトのカウンタであるが、最大255までカウントした場合は、255で保持される。ステップS704で、噴射回数カウンタを0にする。噴射回数カウンタは、内燃機関の始動開始後に燃料噴射を実施した回数をカウントするカウンタである。1バイトのカウンタであるが、最大255までカウントした場合は、255で保持される。図8は、クランク角センサ115の出力信号の立ち下りエッジ毎に実行される処理を示すフローチャートである。ステップS801で、クランク角センサ出力信号の立ち下り後の電圧値が1.25vよりも小さいかを判定する。クランク角センサ出力信号のLowレベルは、正転時は0v、逆転時は2.5vであるため、1.25vを正転か逆転かを判断するしきい値とする。クランク角センサ出力信号のLowレベルが1.25v以上の場合は、ステップS803で正転でないと判断し、この処理を終了する。クランク角センサ出力信号のLowレベルが1.25vより小さい場合は、ステップS802で正転であると判断する。ステップS804でエンジン回転が500r/m以上の場合は、ステップS806で通常モードと判断する。500r/mよりも小さい場合は、ステップS805で始動モードと判断する。エンジン回転は、クランク角センサ信号から生成した模擬クランク角信号後掲の図18を参照のB75タイミング毎の時間間隔から算出する。B75タイミングが2回あるまでは、エンジン回転は0r/minとしておく。ステップS807で欠歯検出とクランクカウンタ特定処理を実施し、ステップS808でクランクカウンタのカウントアップを行う。欠歯検出とクランクカウンタ特定処理およびクランクカウンタのカウントアップは後述する。図9は、クランク角センサ115の立ち上がりエッジ毎に実行される処理を示すフローチャートである。ステップS901で、クランク角センサ出力信号の立ち上がり前の電圧値が1.25v以上であるかを判定する。クランク角センサ出力信号の立ち上がり前の電圧値が1.25v未満の場合は、ステップS903で逆転でないと判断し、この処理を終了する。クランク角センサ出力信号の立ち上がり前の電圧値が1.25v以上の場合は、ステップS902で逆転であると判断する。ステップS904でクランクカウンタのカウントダウンを行う。処理内容は後述する。図10は、前掲の図8のステップS807における欠歯検出とクランクカウンタ値特定の処理内容を示すフローチャートである。ステップS1001で、欠歯間クランクカウンタに1を加算する。欠歯間クランクカウンタは欠歯間のクランク角センサ検出信号数をカウントしているものであり、気筒識別に用いており、欠歯を検出するごとにクリアされる。ステップS1002で、欠歯間クランクカウンタが5以上であるかを判定する。5未満の場合は、そのままこの処理を抜ける。欠歯検出は、クランク角センサ信号の連続する3回の信号間の時間を用いて行うため、クランク角センサ信号を最小4回検出しないと正しく行えない。そのため、欠歯間クランクカウンタが5以上の場合のみ、欠歯検出処理を行う。ステップS1002で欠歯間クランクカウンタが5以上の場合、ステップS1003でクランク角センサ信号周期比△Tを算出する。なお、クランク角センサ信号周期比△Tは、下記の式1で表される。△T=[{Tn-1/Tn}{Tn-1/Tn-2}]/2式1ここで、△T:クランク角センサ信号周期比Tn:クランク角センサ信号周期今回Tn-1:クランク角センサ信号周期前回Tn-2:クランク角センサ信号周期前々回欠歯は2歯欠けであり、欠歯部分のクランク角センサ間の角度は30degCA、欠歯でない部分のクランク角センサ間の角度は10degCAである。なお、CAとは、CrankAngleの略である。欠歯が2歯欠けの場合、10degCA毎に形成されているクランク角センサプレートの突起が特定部分のみ2つ欠けている部分が欠歯部分であり、この欠歯部分はクランク角センサ信号間隔が30degCAになる。後掲する図18のSGTにおいて、破線で示しているのが欠歯箇所である。欠歯の次のクランク角センサ信号後掲する図18のクランクカウンタ65、17、29、53の個所では、△Tは3前後の値となる。△Tが正確に3にならないのは周期変動があるためである。欠歯の次のクランク角センサ信号以外では、△Tは、1前後または、1未満となる。ステップS1004で、△Tが2未満の場合は、欠歯でないと判断し、このままこの処理を抜ける。欠歯での△Tは約3、欠歯以外での△Tは約1または1未満であるため、しきい値を2としている。ステップS1004で、△Tが2以上の場合は、ステップS1005で欠歯検出回数に1を加算する。欠歯検出回数は、1バイトサイズで定義しており、0~255で表現され、255に達するとその値を保持する。ステップS1006で欠歯検出回数が1回であるかを判定する。1回の場合は、ステップS1007でクランクカウンタが255回でないかを判定する。ステップS1007で、クランクカウンタが255でないと判定した場合は、ステップS1008でクランクカウンタ値の修正処理を行う。詳細は後述する。クランクカウンタは、ECU119起動の初期化処理時に255にセットされ図7のステップS701ており、気筒判別が完了していない状態では、255となっている。気筒判別が完了してからは、クランク角センサ信号の入力ごとにカウントされる。ステップS1006で、欠歯検出回数が1回でないと判定すると、欠歯検出回数が2回以上であると判断し、ステップS1009でクランクカウンタ値の特定処理を行う。詳細は後述する。ステップS1010で、欠歯間クランクカウンタを0にクリアする。ステップS1011で、カム角カウンタを0にクリアする。図11は、前掲した図8のステップS808におけるクランクカウンタのカウントアップの処理内容を示すフローチャートである。ステップS1101でクランクカウンタが255でないかを判定する。クランクカウンタが255でない場合は、ステップS1102でクランクカウンタが71後掲の図18参照でないかを判定する。71の場合は、ステップS1106でクランクカウンタを0にする。クランクカウンタは、クランク角720degCA2回転間の、クランク角センサ信号の10degCA毎の信号をカウントするものであり、0から71の間でカウントする。71になれば0に戻す。ステップS1102でクランクカウンタが71でないと判定した場合は、ステップS1103でクランクカウンタが13、25、49または61であるかを判定する。クランクカウンタがこれらに該当する場合は、ステップS1105でクランクカウンタに3を加算する。クランクカウンタが13、25、49または61の次は欠歯個所であり、クランク角センサ信号間が30degCAであるため、3を加算する。ステップS1103でNoの場合は、ステップS1104でクランクカウンタは1加算する。図12は、前掲の図9のステップS904におけるクランクカウンタのカウントダウン処理を示すフローチャートである。ステップS1201でクランクカウンタが255でないかを判定する。255でない場合は、ステップS1202で停止モードであるかを判定する。停止モードである場合は、逆転状態のままエンジンが停止し、エンジン回転開始時にスタータによる正転での無効エッジであるため、クランクカウンタのカウントダウンは行わない。停止モード判定は後述する。ステップS1203でクランクカウンタが0でないかを判定する。0の場合は、ステップS1207でクランクカウンタを71にする。クランクカウンタはクランク角720degCA2回転間の、クランク角センサ信号の10degCA毎の信号をカウントするものであり、0から71の間でカウントする。逆転で0に到達した次は71にする。ステップS1203でクランクカウンタが0でないと判定した場合は、ステップS1204でクランクカウンタが16、28、52または64であるかを判定する。クランクカウンタがこれらに該当する場合は、ステップS1206でクランクカウンタから3を減算する。クランクカウンタが16、28、52または64の前は欠歯個所であり、クランク角センサ信号間が30degCAであるため、3を減算する。ステップS1204でNoの場合は、ステップS1205でクランクカウンタは1減算する。図13は、カム角センサ信号SGCの立ち下りエッジ毎に実行される割り込み処理を示すフローチャートである。ステップS1301で、カム角カウンタを1加算する。図14は、図10のステップS1009におけるクランクカウンタ値の特定処理を示すフローチャートである。ステップS1401で、欠歯間クランクカウンタが22で、かつカム角カウンタが2であるかを判定する。Yesの場合は、ステップS1402でクランクカウンタを17に設定する。ステップS1401でNoの場合は、ステップS1403で欠歯間クランクカウンタが10で、かつカム角カウンタが0であるかを判定する。Yesの場合は、ステップS1404でクランクカウンタを29に設定する。ステップS1403でNoの場合は、ステップS1405で欠歯間クランクカウンタが22で、かつカム角カウンタが1であるかを判定する。Yesの場合は、ステップS1406でクランクカウンタを53に設定する。ステップS1405でNoの場合は、ステップS1407で欠歯間クランクカウンタが10で、かつカム角カウンタが1であるかを判定する。Yesの場合は、ステップS1408でクランクカウンタを65に設定する。ステップS1407でNoの場合は、ステップS1409でクランクカウンタに255を設定する。この場合は、欠歯間のクランクカウンタとカム角カウンタの値が設計値のいずれにも該当しないため、正しくカウントできていないと判断し、クランクカウンタが特定できない初期状態とする。図15は、図10のステップS1008におけるクランクカウンタ値の修正処理を示すフローチャートである。ステップS1501で、欠歯間クランクカウンタが22、カム角カウンタが2、かつクランクカウンタが16以上18以下であるかを判定する。Yesの場合は、ステップS1502でクランクカウンタを17に設定する。ステップS1501でNoの場合は、ステップS1503で欠歯間クランクカウンタが10、カム角カウンタが0、かつクランクカウンタが28以上30以下であるかを判定する。Yesの場合は、ステップS1504でクランクカウンタを29に設定する。ステップS1503でNoの場合は、ステップS1505で、欠歯間クランクカウンタが22、カム角カウンタが1、かつクランクカウンタが52以上54以下であるかを判定する。Yesの場合は、ステップS1506でクランクカウンタを53に設定する。ステップS1505でNoの場合は、ステップS1507で、欠歯間クランクカウンタが10、カム角カウンタが1、かつクランクカウンタが64以上66以下であるかを判定する。Yesの場合は、ステップS1508でクランクカウンタを65に設定する。ステップS1507でNoの場合は、ステップS1509でクランクカウンタに255を設定する。この場合は、欠歯間のクランクカウンタとカム角カウンタの値が設計値のいずれにも該当しないため、正しくカウントできていないと判断し、クランクカウンタが特定できない初期状態とする。これらは、欠歯検出回数が1回の場合に、クランクカウンタが正しい値から±1の範囲でずれている場合に正しく修正するものである。図16は、停止モード判定処理を示すフローチャートである。この処理は所定時間毎に実行される。ステップS1601で、クランク角センサ信号の入力が0.2sec以上ない場合は、ステップS1602で停止モードと判定する。ステップS1603で欠歯間クランクカウンタを0にクリアする。ステップS1604で欠歯検出回数を0にクリアする。ステップS1605で燃料の噴射回数カウンタを0にクリアする。図17は、始動時の燃料噴射処理であり、クランク角センサ信号の立ち下りエッジ毎に実行される処理を示すフローチャートである。ステップS1701で、始動モードであるかを判定する。始動モードでない場合は、何もせずにこの処理を抜ける。ステップS1701で始動モードである場合は、ステップS1702で初回噴射であるかを判定する。具体的には、噴射回数カウンタが0であれば初回噴射であると判定する。初回噴射噴射回数カウンタ=0である場合は、ステップS1703で、クランクカウンタが20であるかを判定し、20である場合は、ステップS1704で3気筒に噴射し、ステップS1705で噴射回数カウンタに1加算する。ステップS1706でクランクカウンタが44であるかを判定し、44である場合は、ステップS1707で2気筒に噴射し、ステップS1708で噴射回数カウンタに1加算する。ステップS1709でクランクカウンタが68であるかを判定し、68である場合は、ステップS1710で1気筒に噴射し、ステップS1711で噴射回数カウンタに1加算する。噴射の停止は、予め水温に応じて設定された噴射時間が経過した時点で停止する。ステップS1702で初回噴射でない噴射回数カウンタ≧1と判定した場合は、ステップS1712で、クランクカウンタが17であるかを判定し、17である場合は、ステップS1713で3気筒に噴射し、ステップS1714で噴射回数カウンタに1加算する。ステップS1715でクランクカウンタが41であるかを判定し、41である場合は、ステップS1716で2気筒に噴射し、ステップS1717で噴射回数カウンタに1加算する。ステップS1718でクランクカウンタが65であるかを判定し、65である場合は、ステップS1719で1気筒に噴射し、ステップS1720で噴射回数カウンタに1加算する。噴射の停止は、予め水温に応じて設定された噴射時間が経過した時点で停止される。噴射回数カウンタは、図16の停止モードが成立した時に0にクリアされ、燃料噴射を行うごとに1加算される。噴射回数カウンタは、1バイトサイズのカウンタを用いており、最大値である255に達するとそれ以上加算されなくなり、255のままとなる。図18は、本実施の形態による内燃機関の燃料噴射制御装置の動作を示すタイミングチャートである。模擬クランク角信号は、クランク角センサ信号SGTとカム角センサ信号SGCからECU内の処理にて形成される模擬信号であり、各気筒のBTDC75degCA図18の時点A、D、Gで立ち上がり、BTDC5degCA図18の時点B、E、Hで立ち下がるように形成される。1~3INJは、インジェクタ106への噴射駆動信号であり、Highレベルにある間が燃料を噴射している間である。1~3SPKは、点火コイル111への通電信号であり、立ち上がりで点火コイルの通電を開始し、立ち下りで点火コイルへの通電を遮断することで、点火プラグ112に火花が誘導される。1~3行程は、各気筒の行程を示している。SGCはカム角センサ信号、SGTはクランク角センサ信号を示している。クランクカウンタは、ECUが認識するクランクカウンタの値である。インジェクタの停止によりエンジンが運転されている状態から停止に至る過程では、圧縮行程におけるシリンダ内の空気の圧縮が抵抗となり、圧縮上死点に至る途中で停止するか、圧縮上死点付近まで回転した後に圧縮圧によりピストンが逆回転方向に押し戻されて停止する。これらを複数回繰り返すこともある。エンジン停止に至る過程は、正転のまま停止するあるいは正転から逆転して停止する等さまざまであるが、停止位置は概ね同じ模擬クランク角のB75付近となる。停止位置が、図18の時点Aよりも遅角側図では右側で、時点Jよりも進角側図では左側にある場合は、噴射開始タイミングが時点Jであれば1気筒の吸気行程に対する燃料噴射が可能であるため、その後の時点Eの1気筒の点火でシリンダ内の混合気が燃焼し、エンジン始動が可能となる。時点Jの初回燃料噴射タイミングは、遅角しすぎると、吸気行程内で適正量の燃料が混合気となってシリンダ内に吸入されないため、適正な混合気が吸入されるタイミングを実験から求めて決める必要がある。2回目以降の時点D、時点Gの燃料噴射タイミングでは、燃料噴射タイミングを遅角しなくても、噴射可能であるので、通常の始動時噴射タイミングで噴射する。図19は、初回燃料噴射タイミングを遅角しない場合の内燃機関の燃料噴射制御装置の動作を示すタイミングチャートである。時点Aよりも遅角側にエンジンが停止すると、時点Aの燃料噴射はできないため、時点Eの点火タイミングでは燃焼に必要な混合気がシリンダ内に無く、燃焼しない。時点Dの燃料噴射が時点Hの点火により燃焼することで、エンジンが始動する。この場合は、図18に対して1行程始動が遅れることとなる。本実施の形態では、図17で示すように、ステップS1702で始動開始後の初回噴射か否かを判断し、初回噴射である場合はステップS1703からステップS1711の処理を行い、2回目以降の噴射である場合はステップS1712からステップS1720の処理を行う。そして、初回噴射の場合は2回目以降の燃料噴射よりも噴射タイミングを遅角することで、エンジン停止位置が初回噴射タイミングよりも進角側で2回目以降の燃料噴射タイミングよりも遅角側にある場合において、始動開始直後に吸気行程にある気筒の燃料噴射を行うことができるため、始動が1行程早まり、始動時間の早期化が可能となる。また、図18の時点Kの吸気バルブと排気バルブのオーバラップ吸気バルブと排気バルブが同時に開いている状態以降に燃料噴射を行うため、排気管へ未燃焼ガスが吹き抜けることもなく、始動時の排ガス悪化を防止することが出来る。また、本実施の形態では、図3~図6に示すように、正転時と逆転時の出力信号の異なるクランク角センサを用いて、正転状態であるのか、逆転状態であるのかを識別した上で停止位置を判別することで、再始動時の初期より気筒位置が判別できる。そのため、始動開始直後より吸気行程にある気筒に対して燃料噴射が行えることとなり、始動の早期化が行えるとともに、新たなセンサ等を追加することなく停止位置の判別ができるため、コストアップすることなく実現可能である。また、本実施の形態では、図10および図15に示すように、ステップS1006で欠歯を1回検出した場合にクランクカウンタが255ではない、すなわちクランク角が特定できている状態であれば、図15の処理に進む。そして、クランクカウンタが欠歯検出タイミングである正しいクランク角から所定のクランク角範囲以内のずれであれば、正しいクランク角に修正する。そのため、クランク角の識別が誤っていた場合においても、点火タイミングのずれによる始動不良を改善することが可能となる。初回燃料噴射に対する点火までには必ず欠歯が存在するため、点火タイミングまでにはクランク角を修正することができ、必ず正しい点火タイミングでの点火が可能となる。また、本実施の形態では、停止状態からのクランク角センサ信号のLowレベルが高い状態からの立ち上がり時は、無効エッジであるとの判断で、図12のステップS1202に示すように、停止モードであれば、ステップ1203以降のクランクカウンタのマイナス計数、すなわち逆転のカウントを行わないことで、クランク位置の始動開始時のカウントミスを防止することができる。これにより、正しいタイミングで燃料噴射を行うことが可能となり、噴射タイミングのずれによりシリンダ内への混合気の吸入が悪化することによる始動性の悪化を防止することが可能となる。以上説明したように、本実施の形態による内燃機関の燃料噴射制御装置は、内燃機関101のクランク角を検出するクランク角検出手段201と、内燃機関のカム角を検出するカム角検出手段202と、クランク角検出手段201が検出するクランク角に基づいて内燃機関の停止位置を検出して記憶する停止位置検出記憶手段203と、クランク角検出手段201が検出するクランク角に基づいて内燃機関101の停止位置よりの始動を判定する始動判定手段204と、クランク角検出手段201が検出するクランク角とカム角検出手段202が検出するカム角とに基づいて内燃機関101のクランク位置を特定するクランク位置特定手段205と、クランク位置特定手段205の特定結果に基づいて内燃機関101の始動開始後2回目以降の燃料噴射タイミングを演算算出する第1の噴射タイミング演算手段206と、クランク位置特定手段205の特定結果に基づいて内燃機関101の始動開始後初回の燃料噴射タイミングを演算算出する第1の噴射タイミングよりも遅い第2の噴射タイミング演算手段207と、停止位置検出記憶手段203に記憶された内燃機関101の停止位置および始動判定手段204の判定結果に基づいて、第1の噴射タイミング演算手段206あるいは第2の噴射タイミング演算手段207が演算算出する噴射タイミングのいずれかを選定する燃料噴射タイミング選定手段208と、燃料噴射タイミング選定手段208が選定した燃料噴射タイミングで燃料の噴射を行う燃料噴射手段209を備えている。また、本実施の形態による内燃機関の燃料噴射制御装置は、始動開始後の初回の燃料噴射は、始動開始位置が、第1の噴射タイミングよりも遅角側にあり、第2の噴射タイミングよりも進角側にある場合には、始動開始の最初に検出したクランク角検出手段201の検出タイミングで始動開始後の初回の燃料噴射を行い、始動開始位置が第1の噴射タイミングよりも進角側にある場合は、第1の燃料噴射タイミングで燃料噴射を行い、初回の燃料噴射以降は第1の燃料噴射タイミングで燃料噴射を行う。また、本実施の形態による内燃機関の燃料噴射制御装置のクランク角検出手段201は、内燃機関101の正転時と逆転時のそれぞれに応じたクランク角信号を出力し、停止位置検出記憶手段203は、正転時と逆転時のそれぞれのクランク角信号を計数することにより内燃機関101の停止位置を検出して記憶する。また、本実施の形態による内燃機関の燃料噴射制御装置は、特定クランク角を識別するための特定クランク角識別手段を備え、内燃機関101の始動開始後に、特定クランク角識別手段により、特定クランク角を識別した場合に、始動開始後に停止位置検出記憶手段203で記憶している停止位置から計数したクランク角とクランク角検出手段201で検出したクランク角が異なる場合には、クランク角検出手段201で検出したクランク角を現在のクランク角とする。また、本実施の形態による内燃機関の燃料噴射制御装置の停止位置検出記憶手段203は、内燃機関101の始動時は、逆転のクランク角の計数を行わない。実施の形態2.図20は、前述した実施の形態1を改良したものであり、具体的には、図17に示した実施の形態1における始動時の燃料噴射処理を改良したものである。図20において、図17とは異なる処理をしているステップは、ステップS2003、ステップS2006、ステップS2009である。図20のその他の各ステップでの処理は、図17の対応する各ステップでの処理と同じである。すなわち、図20のステップS2001、ステップS2002、ステップS2004、ステップS2005、ステップS2007、ステップS2008、ステップS2010~ステップS2020での処理は、それぞれ図17のステップS1701、ステップS1702、ステップS1704、ステップS1705、ステップS1707、ステップS1708、ステップS1710~ステップS1720での処理と同じである。ここでは、同じ処理の個所は実施の形態1を参照することとして、処理が異なる部分すなわち、処理が異なる処理ステップのみについて説明する。ステップS2003では、クランクカウンタが17以上でかつ20以下、かつ燃料噴射をまだ開始していないかどうかを、噴射回数カウンタが0であるか否かで判定する。条件を満たす場合は、ステップS2004で3気筒に噴射する。ステップS2006では、クランクカウンタが41以上でかつ44以下、かつ燃料噴射をまだ開始していないかどうかを、噴射回数カウンタが0であるか否かで判定する。条件を満たす場合は、2007で2気筒に噴射する。ステップS2009では、クランクカウンタが65以上でかつ68以下、かつ燃料噴射をまだ開始していないかどうかを、噴射回数カウンタが0であるか否かで判定する。条件を満たす場合は、ステップS2010で1気筒に噴射する。このように、本実施の形態においては、クランクカウンタが所定の範囲内にあり、かつ燃料噴射をまだ開始していない場合に、対応する気筒に燃料噴射を行うことによって、燃料噴射が可能なクランク角範囲のなかで、最も進角位置で燃料噴射が開始することが可能となる。これにより、燃料噴射タイミングの遅角を最小限にして可能な範囲で最も進角位置で燃料噴射を行うことで、霧化を促進させて始動性悪化を防止することが可能となる。以上説明したように、本実施の形態による内燃機関の燃料噴射制御装置は、クランクカウンタのカウント値か所定の範囲内にあり、かつ、燃料噴射をまだ開始していない場合は、クランクカウンタのカウント値に対応する気筒に燃料噴射を行う。実施の形態3.図21は、前述した実施の形態1を改良したものであり、具体的には、図17に示した実施の形態1における始動時の燃料噴射処理をさらに改良したものである。図21において、図17とは異なる処理をしているステップは、ステップS2103、ステップS2106、ステップS2109である。図21のその他の各ステップでの処理は、図17の対応する各ステップでの処理と同じである。すなわち、図21のステップS2101、ステップS2102、ステップS2104、ステップS2105、ステップS2107、ステップS2108、ステップS2110~ステップS2120での処理は、それぞれ図17のステップS1701、ステップS1702、ステップS1704、ステップS1705、ステップS1707、ステップS1708、ステップS1710~ステップS1720での処理と同じである。ここでは、同じ処理の個所は実施の形態1を参照することとして、処理が異なる部分すなわち、処理が異なる処理ステップのみについて説明する。ステップS2103では、クランクカウンタが遅角側噴射開始タイミングT1であるかを判定する。条件を満たす場合は、ステップS2104で3気筒に噴射する。ステップS2106では、クランクカウンタが遅角側噴射開始タイミングT2であるかを判定する。条件を満たす場合は、ステップS2107で2気筒に噴射する。ステップS2109では、クランクカウンタが遅角側噴射開始タイミングT3であるかを判定する。条件を満たす場合は、ステップS2110で1気筒に噴射する。図22から図24は、図21のステップS2103、ステップS2106、ステップS2109でクランクカウンタの値と比較する遅角側噴射開始タイミングT1、T2、T3の設定値である。図22は遅角側噴射開始タイミングT1の設定値であり、図23は遅角側噴射開始タイミングT2の設定値であり、図24は遅角側噴射開始タイミングT3の設定値である。T1、T2、T3は、それぞれエンジン冷却用の冷却水の水温に応じた値が設定されており、ECU内のROMにマップとして記憶されており、冷却水の水温に応じた値が参照される。遅角側噴射開始タイミングを冷却水温に応じて変更するのは、始動時噴射量が水温で決められているため、低水温であるほど燃料噴射量が多く、すなわちインジェクタの開弁期間が長いため、噴射開始時期を遅くすると吸気行程で噴射した燃料がシリンダに入りきらずに始動不良を起こすこととなる。よって、燃料噴射量が多く、インジェクタ駆動時間が長い低水温側である程、遅角側の噴射開始時期を高水温側よりも進角側に設定することとなる。なお、T1、T2、T3の設定値を、基準2回目以降の噴射タイミングである17、41、65のタイミングに対する差分のマップにすれば、1つのマップにすることも可能である。図25は、前述した実施の形態1を改良したものであり、具体的には、図17に示した実施の形態1における始動時の燃料噴射処理をさらに改良したものである。図25において、図17とは異なる処理をしているステップは、ステップS2503、ステップS2506、ステップS2509である。図25のその他の各ステップでの処理は、図17の対応する各ステップでの処理と同じである。すなわち、図25のステップS2501、ステップS2502、ステップS2504、ステップS2505、ステップS2507、ステップS2508、ステップS2510~ステップS2520での処理は、それぞれ図17のステップS1701、ステップS1702、ステップS1704、ステップS1705、ステップS1707、ステップS1708、ステップS1710~ステップS1720での処理と同じである。ここでは、同じ処理の個所は実施の形態1を参照することとして、処理が異なる部分すなわち、処理が異なる処理ステップのみについて説明する。ステップS2503では、クランクカウンタが17以上でかつT1以下、かつ燃料噴射をまだ開始していないかどうかを、噴射回数カウンタが0であるか否かで判定する。条件を満たす場合は、ステップS2504で3気筒に噴射する。ステップS2506では、クランクカウンタが41以上でかつT2以下、かつ燃料噴射をまだ開始していないかどうかを、噴射回数カウンタが0であるか否かで判定する。条件を満たす場合は、ステップS2507で2気筒に噴射する。ステップS2509では、クランクカウンタが65以上でかつT3以下、かつ燃料噴射をまだ開始していないかどうかを、噴射回数カウンタが0であるか否かで判定する。条件を満たす場合は、ステップS2510で1気筒に噴射する。遅角側噴射開始タイミングT1、T2、T3は、図21と同様に前掲の図22から図24に示したエンジン冷却用冷却水の水温に応じた設定値より参照される。このように、初回燃料噴射のタイミングを水温に応じたタイミングにすることで、低水温で燃料噴射量の増加によりインジェクタ駆動期間が長くなっても、吸気行程で燃料がシリンダに吸入できる期間内に燃料噴射を終了させることが可能となり、燃料がシリンダ内に吸入しきれずに始動不良が発生したり、吸入しきれなかった燃料が次のオーバラップで排気側に吹き抜けて始動時の排ガス悪化することを防止することが可能となる。以上説明したように、本実施の形態による内燃機関の燃料噴射制御装置では、前記第2の噴射タイミングは、内燃機関の温度に応じて変更する。