• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2012年08月12日

【PP1】【ECU】ビート純正ECUとの通信プログラム更新→チェックPart4(挫折)

【PP1】【ECU】ビート純正ECUとの通信プログラム更新→チェックPart4(挫折) 強引に3連休取って帰省中。
2連休すらレアな私には十分な「長期休暇」(昨年の盆休みは2連休だったが、サイコーに思い出に残る2連休だった)。



ブログエントリ: 「【PP1】【ECU】RS232C-TTL変換ケーブルをECUに取付
ブログエントリ: 「【PP1】【ECU】ビート純正ECUとの通信プログラムの開発・チェック(失敗)
ブログエントリ: 「【PP1】【ECU】ビート純正ECUとの通信プログラムのチェックPart2(失敗)
ブログエントリ: 「【PP1】【ECU】ビート純正ECUとの通信プログラム更新→チェックPart3(失敗)

の続き。


【1】visaconf.ini

NIのKnowledgeBaseの「Can I Do 9-bit Serial Communication Instead of 7 or 8 bits?」のページに

------

One issue with this is that in LabVIEW 7.0 and later, when NI-VISA receives a data byte with incorrect parity, it completely replaces the serial data with the error character, which by default is '0'. LabVIEW 6.1 and earlier does not replace a data byte with a parity error replacement byte. You can change this behavior by modifying the visaconf.ini file.

Note that if your instrument only needs to receive the 9th data bit for addressing purposes, but never sends data on the 9th bit, you should only need to set the parity once to what your instrument is expecting.

Modify the visaconf.ini file to disable the error replacement bit:

For users of windows XP, the visaconf.ini file is located in the \All Users\Application Data\National Instruments\NIvisa folder.

For users of windows Vista or later, the visaconf.ini file is located in the C:\ProgramData\National Instruments\NIvisa folder.

Add the following lines to the file and save:

[ASRL-RSRC-ALIAS]
DisableErrorReplacement=1


------

と書いてあったので、該当のvisaconf.iniを探したが、今使ってるLV2009では「NIvisa folder」自体が見つからなかった。





そもそも、Databit=9やDatabit=10で、ポートポープンしようとするとエラーになっていたので、

「VISA Configure Serial Port (Instr).vi」

のエラー処理部を改造して、エラーを無視してポートオープンできるように改造しているのだが、これがiniファイルの書き換えに相当するんだろうか?



・・・まあ、もうどうでもイイや(笑)



【2】

ビートECU解析・通信の先駆者の方から

「アーベルのUSBシリアル変換アダプタをお使いのようですがたしかFTDIのチップでしたよね。コレって、9ビットデータを出せましたっけ?
欲しいのはデータ9ビット+パリティビットだったと思うのですが、何かでFTDIのチップでハマったような記憶も・・・」


というアドバイスを頂いた(ありがとうございますm(u_u)m)。

なるほど、プログラムとか、Windowsがどうとかだけでなく、USB-RS232Cインターフェースケーブルの問題の可能性もあるワケか・・・。5Vが正しく出力されているか・・・は気になってたが、そのあたりは全然着目していなかった。
(それまで「FTDI」という名称すら知らなかった私)


USB-RS232Cインターフェースケーブルは、Arvel SRC06-USBというモデルを使っている。



以前はいろんなメーカのもの(IO DATAとか)を使っていたのだが、手持ちのインターフェースケーブルがWin7 64bitのドライバがないものばかりだったので、昨秋、SRC06-USBに買い直した。

ググってみたら、確かにArvelはFTDIのチップのようだ。

このあたりは非常に弱いのだが、FTDIはどうも9bitに対応している(実際には8bit with parity?)・・・という情報もあれば、対応していない・・・という情報もあったり。

http://www.lvr.com/forum/index.php?topic=16.0
http://www.microchip.com/forums/m585274-print.aspx
http://www.ccsinfo.com/forum/viewtopic.php?t=38320


FTDIの本家サイトにはData Sheetsがたくさんあるが、たくさん種類があり過ぎて、どれがArvelに使われているものかがわからない(笑)

いくつかPDFをダウンロードしてみたところ、

UART interface support for 7 or 8 data bits, 1 or 2 stop bits and odd / even / mark / space / no parity

という表記がある。

この一文を、

「パリティ切替のプログラムでカバーできるよ!」

と解釈すべきか、

「DataBitは7か8しか無理やし」

と解釈すべきかワカラナイ(笑)



ダメ元でArvelに

SRC06-USBでは、9bitデータは送れますか?
正確には9bitデータ+パリティビットです。

9bitデータのコマンド送受信が必要な相手機器との通信プログラムを開発中なのです。
Databit=8としておいて、ParityをMarkなどにしてのプログラミングなどいろいろ検証しておりますが、うまくいっていないので、プログラムの問題なのか、SRC06-USBの問題なのかがわからない状況です。

ループバックテストでは、Databit=9でも送受信できているのですが、どうもDatabit=8としてバイトコードの送受信がされてしまっているように見えます。


と問い合わせしてみた。

こういう問い合わせに対して、基本的にメーカの回答は期待できない・・・と思っていたが、次の日に回答がArvelではなくバッファローから届いた。

「本製品は、9bitデータを送信できる仕様となります。」

という一行回答(笑)


果たして??



【3】

ビートECU解析・通信の先駆者の方から

送受信の設定を8bitデータでパリティをマークにして、ストップビットを2ビットにしたら確立は50%(ECU側はストップビットをパリティだと理解するので、パリティエラーが半分出ますね)ですが、ECUから何か返事が来そうな気がします。送信のパリティをマークかスペースかで、強引に9Bit目のデータを作って、というのは無謀すぎますかね。」

というアドバイスを頂いた(ありがとうございますm(u_u)m)ので試してみたが、残念ながらECUからは返事がなかった。



(※プログラムの受信処理側は何の工夫もしていないので、ECUからの返信を処理できていないだけの可能性もあるが、何らか返信されていたら、ゴミでも何でもキャッチはできるハズ・・・)




【4】

・・・ということで、ジタバタしたが、

「ツール工房」の「RS232C-TTLレベル変換ケーブル」だけを使用して、9Databit+Parityを、プログラムだけでなんとかしようとするのは諦めた。


まだまだ勉強不足で、手もある気がするが。


NIのKnowledgeBaseの「Can I Do 9-bit Serial Communication Instead of 7 or 8 bits?」のページにも

-----

2. Use a separate microcontroller that handles 9 bit frames:

Another option is to use a separate microcontroller with a UART that is made to handle 9 data bit frames and place it as an intermediary between the instrument and the computer. The computer would send two 8 bit data frames for each 9 bit frame, one with the first 8 bits, the second with the 9th bit, and have the UART reassemble this into one 9 bit frame to send to the instrument. Similarly the UART would receive a 9 bit frame from the instrument and return two 8 bit frames to the computer.


-----

って書いてるし(笑)


CZ500Cさん作のAVRを介して通信する方向で、Windows用のソフトウェアに専念しようかと。



ビート(PP1) ECU関連目次はこちら
ビート(PP1)関連目次はこちら
ブログ一覧 | ビート ECU | クルマ
Posted at 2012/08/12 08:59:27

イイね!0件



タグ

今、あなたにおすすめ

この記事へのトラックバック

【PP1】【ECU】ビート純正ECUと ...」 From [ mistbahn with PP1 ... ] 2012/08/15 22:51
一連の、ビート純正ECUからのログ取得チャレンジの続編。 CZ500Cさんから、ビート純正ECUとの通信用プロ
ブログ人気記事

イルミネーション☆
ヴェル翔星さん

2017秋景色 桜通の銀杏並木
Rinaパパさん

愛車と出会って8年!
せまるしかさん

☀️R CLUB 2017忘年会オ ...
エイジマンさん

タイヤ交換
HASMさん

ダイソーで発見❕ かわいい⁉️
TADASHI 287さん

この記事へのコメント

2012/08/12 09:25:24
で、
これができると、
ビーモニ
が作れるんでしょうかね。(笑)
コメントへの返答
2012/08/12 15:42:55
ブログ本文内容の華麗なスルー、ありがとうございます(笑)

そういうことです。

でも、そもそも付いてるセンサがショボいので、モニターとしては役立たずです(笑)

インマニ圧、水温あたりはともかくとして、A/Fはナローだし、ノックセンサはないし・・・。
2012/08/12 10:15:12
通信自体はウチの恥作でどうにか為りますが・・
測値取得特化型なので現状汎用性はありませんが。
ファームの改良・作り直しが出来るのでなんとでも
通信モジュールはそのままで送受DATAの処理
替えればいいだけですから。
コメントへの返答
2012/08/12 15:45:59
PC→AVR、AVR→ECUのコマンドを決め打ちにせず、

AVRは232Cから受け取ったコマンドをbit数変更・TTL変換してそのまま送るような仕組みにしたら、PCソフトからいろいろ試せるかもしれないですね。

ま、将来構想ということで!(どちらにしても付いてるセンサが限られているので、対して取得可能項目は変わらない気がしますが・・・)
2012/08/12 12:50:18
すんご・・マニアック!!

小生もECUのデータ収集や書き換えしますが・・

エアコン用2200ccエンジンですので・・

現場の屋上で面白くは無いですが・・

通信不良とかはありますね・・PC相性とか・・?

分からんケド・・・
コメントへの返答
2012/08/12 15:48:27
GHPですか?
ヤンマーあたりの???

汎用エンジンのECUもだんだんと進化してるので最近は面白いですよ。

O2フィードバックがあったりとか。

最近のECUはもちろんCANばっかりですが、プロトコルは方言が多くて大変です。。
2012/08/12 16:16:55
初期段階ではオリジナルに近いアドレス
2byte(下位10bit有効)PC>AVR AVR>PC
はECUから戻ってきた1byteそのままブン投げる
方式だったんですが、取得できるDATAが決まって
いて2byte必要なモノが2個あったので単純化する
ためにコマンド式に改良しました。
エラー履歴探そうというならオリジナル仕様に
近いモノに改変して絨毯爆撃が必要ですな。
それはそれで今日資材買い込んできたので
プログラムの製作とTESTは出来ます(爆
AT90S2313ではなくTINY2313でもプログラム流用
出来るんですが古い物より高機能故に設定間違
えようモノならはまるのであえて旧式のAT90S2313
仕入れてきました。
コメントへの返答
2012/08/12 22:18:51
だんだん自由度を高くすると、

PC→AVR:
コマンド(2Byte・・・のうち00h~100h)

AVR→PC:
コマンド(2Byte・・・のうち00h~100h、そのまま返信。何のリクエストに対しての返信か)
データバイト数: 1hか2hか
データ: (2Byte、00h~FFh?)

・・・ってところでしょうか?


まあ、何にせよ、今のプロトコルでちゃんとテストできてからですね。
コマンドなんて後からチョイチョイでいくらでも変更できますし。
2012/08/12 17:56:51
私も仕事でArvelのR232Cケーブルは使っていますが、今回の件もまったくフォローできないです(^_^;)

コメントへの返答
2012/08/12 22:20:07
http://minkara.carview.co.jp/userid/242406/blog/17680843/

↑この一件以来、Arvelは私の中で「ブランド」です(笑)

その一件まではただの廉価品メーカのイメージしかなかったんですが(笑)
2012/08/14 03:04:00
機能限定してるのでエラーについて処理が簡
略化できてるんですが、アドレスフル指定
(複数byte)の受信が絡むとエラー処理と
自己リセットかリセットコマンドを用意して
やる必要が出てきます。
余計にインテリジェント化したりします(笑
現実問題オーバーヘッドを減らすには現状の
方式が最良何ですよねぇ
PCから1byte送れば必要DATA該当分1式帰っ
てくるわけですから。

アドレスフル指定する場合、回転数やスピ
ードセンサーのカウント値の2byteは2回
送受が起きます。
2byte送って帰りは1byteですんで。

どのタイミングでDATA更新されるのか解り
ませんが取得に時間が掛かるとDATA内容の
不連続が起きうるので時間短縮を考えた
結果が1byteコマンド2byte返送だったわけです。
コメントへの返答
2012/08/14 07:42:28
スピード重視で、少しでも短いデータ量での送受信を重視するなら、間違いなく決め打ちがベストですよね~

今日は休日出勤してるので、受け取りは妻に頼んでます。
帰宅後確認してまたご連絡差し上げます!
現在価格を調べてみる

おすすめアイテム

 
 

プロフィール

「【ビート】A050 フロントM18J、リアTE37 フィッティング http://cvw.jp/b/242406/40862534/
何シテル?   12/17 21:30
ビート(PP1)、三菱アイ、シビック・タイプR(FD2)に乗っています。 ビートでのサーキット走行とチューニングが趣味です。 レンタルカートも好きです。...
みんカラ新規会員登録

ユーザー内検索

<< 2017/12 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

mistbahn motor web 
カテゴリ:目次
2014/05/25 00:53:19
 

お友達

サーキット派、チューニング好き、モータースポーツファン、技術ネタ好き、軽量化マニア、カート好きなど歓迎。

ただし、ブログアクセス数アップのみを目的としたお誘いはお断り。

みんカラは自動車趣味という共通点での繋がりだと思うので、車ネタ以外のブログしかない方もお断り(興味をもてない)。
233 人のお友達がいます
C.A.MC.A.M * t-shint-shin *
ささいっちささいっち * MDi遠藤MDi遠藤 *
澤 圭太澤 圭太 * toto@雨神toto@雨神 *

ファン

313 人のファンがいます

愛車一覧

ホンダ ビート ホンダ ビート
昔からデザインがたまらなく好きだったビートを個人売買で安く購入。 年に2回のサーキット ...
ホンダ シビックタイプR ホンダ シビックタイプR
私の担当・営業車両(社用車)。 K20Aの完成形と、ボディ剛性の高さ、乗った感じでコレ ...
三菱 アイ 三菱 アイ
2017.03.07 こさとうさんに非常にリーズナブルな価格で譲って頂いた!   発売当 ...
スバル レガシィB4 スバル レガシィB4
中古で購入。2003年BL5A。 随分多くのクルマを試乗した結果選びました。 トミー ...
ヘルプ利用規約サイトマップ
©2017 Carview Corporation All Rights Reserved.
閉じる