点火時間計算__点火角度時間計算
クランク角時間の戻し方
少しややこしい。
回転数が低回転と高回転では、当然クランク角時間は、長くなったり、短くなったり、可変します、
当然、角度は、固定でも、時間は変化します。
例えばエンジン回転数が5000rpm、点火時期が40度を想定して、説明します。
エンジン回転数が5000rpm回転の時エンジン2回転(720度)回る時間は24ms(ミリセコンド)
クランク角センサーの間隔は240度だから24/3=8ms
角度時間は、120度で4ms、60度で2ms、30度で1ms、
ここまでの数値を見ればわかる人は、なるほど、とわかると思います。
もう少し詳しく説明すると2進数を上手に使って、変換を行います
点火角度時間計算
角度時間は、120度で4ms、60度で2ms、30度で1ms、
クランク角時間は16ビットで保存されています、16ビット以上でないと、エンジン制御で必要な正確さで時間計算ができないからです、本当は+1の17ビットですが。計算は、16ビットで計算している。
2進数では、2で割り算する時は、便利な、やり方があります、つまりビットシフトというやり方です
8ビット(11111111)これは255を表現しますこれを1ビット右にシフトします(01111111)これは127を表現します、このようにビットシフトで1/2、1/4を簡単に計算できてしまうのです。
これを応用してクランク角時間(高回転でも低回転でも)は240度だから、16ビットで保存しているこの値をビットシフトを行っていけば、120度60度30度15度7.5度3.75度1.875度0.937度と2で割った角度値が得られます。
これを利用して、角度時間を作っていくのです。
マップに保存している8ビットの値は、8つあります、最上位ビットは30度次は15度その次は7.5度
と順番に対応させて保存しておけは、59.77度から0度までの角度を0.234度単位で表現でき、
この値をマップアクセスで引き出して、クランク角時間信号を加工した値を再計算すれば、
点火時期40度は、30度+7.5度+1.875度+0.46度+0.23度=40.06度で
1/8+1/32+1/128+1/512+1/1024=1.2728msの時間になります。
この時間にドエル時間を加算して、割り込みのオン、オフをすれば、点火信号が完成します。