前記事では時間精度を向上させましたが、ECUから常に応答をえられるようにはなりませんでした。今回は特殊な通信速度7812bpsが生成できているか検証します。
実は、ディスククトップ機などPCに搭載されたリアルRS232Cでは通信速度は、4800,9600,19200,38400 … と定められた数値しか指定できません。Win32APIに数値は指定できますが作用しません。
しかしFT232Rなど仮想COMタイプではそれが可能な場合があります。FTDI社のドキュメント:AN232B-05_BaudRates をみると通信速度の計算式が記載されており、特に定まった通信速度ではないようですが具体例は未記載でよくわかりません。試してみるしかないようです。
7680bpsの場合
まず IAW-SCAN2 のコードに記載されていた 7680bps を試します。手法は弊方のシリアル通信汎用アプリ(いちおうms storeで公開中)から 0x00 を送信し、オシロスコープでK-LINEの信号幅を計測します。
下図(小さくて分かりにくいですが)は 7680bps で 0x00 を送信し、その幅を計測した結果です。 0x00 は信号上はLowとなりStopBitとあわせると9bitの幅となり、通信速度から1bit幅を乗じると期待値は1,152msとなります。実測は1,170ms なので、指定通信速度は生成できているようです。

7812bpsの場合
ECUメーカの指定値 7812bps も試してみます。こちらはFT232Rの内部分周的に変わらないかとおもいましたが、実測は1,158ms となり期待値に近づきました。しかしながら 7680bps 時の実測1,170ms でも誤差1%なので通信するには問題ないハズです。

以上の実験結果から 7812bps で実車確認を行いましたが未だECUから常時応答が得られません。何か特殊なセキュリティがあるのでしょうか? イタリア的にはそんなに細やかな人たちではない( 古巣にてイタリアのオートバイメーカさんを担当していたこともありました ) のでそれも変です。