• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

ダメダメおやじのブログ一覧

2010年11月14日 イイね!

自作PICマイコンによるCAN通信によるOBD-IIデータ表示回路 その3

プログラムはC言語で記述してあります。ソースそのもの、および、コンフィグレーション レジスタ の設定は、関連情報URL先に載せてありますので、そちらをご覧ください。

C言語は、MikroElektronika 社製 MikroC PRO for PIC を用いました。コンパイル、リンク後の実行ファイル容量が4KB以下なら試用版で無料で使用でき、ハードウェアのライブラリが豊富で使いやすいです。本プログラムの実行ファイル(.hex)は、4KB以下なので試用版でコンパイル、リンクができます。

MikroC PRO for PIC にはPICの ECAN モジュール をハンドリングする CANライブラリが備わっており、今回下記の CANライブラリ 関数を使いました。

 ・初期化
     CANInitialize(SJW,BRP,PHSEG1,PHSEG2,PROPSEG,Can_Init_Flags)
 ・オペレーション状態の変更
     CANSetOperationMode(_CAN_MODE_NORMAL, 0xFF)
 ・CAN IDマスク設定
     CANSetMask(_CAN_MASK_B1,-1,_CAN_CONFIG_STD_MSG)
 ・CAN IDフィルタ設定
     CANSetFIlter(_CAN_FILTER_B1_F1,ID_Eng,_CAN_CONFIG_STD_MSG) ;
 ・CANデータの受信
     CANRead(&Rx_ID , Rx_Data , &Rx_Data_Len, &Can_Rcv_Flags);
 ・CANデータの送信
     CANWrite(Tx_ID, Tx_Data, 8, Can_Send_Flags);

これらを用いることでプログラムの記述は簡単です。
しかし、各関数の引数の値、つまり、CAN固有パラメータをどうするかが問題です。

このパラメータの設定については、関連情報URL、および、そのURLとリンクしているWEBサイトに説明しました。
Posted at 2010/11/14 21:46:50 | CAN OBDⅡ | クルマ
2010年11月14日 イイね!

自作PICマイコンによるCAN通信によるOBD-IIデータ表示回路 その2

自作PICマイコンによるCAN通信によるOBD-IIデータ表示回路 その2回路図はこれです。
わずかこれだけの部品、回路でCANデータ、OBDデータが表示できます。
次に部品それぞれの説明をします。

★マイコン PIC18F2680
手軽に使えるマイコンとしてはPIC、H8、AVR等があります。今回は、CAN通信のハードウェアを内蔵していて(ECANモジュール)、外付け部品点数が少なくでき、かつ低価格なPIC18FXX8Xシリーズを用いました。実際にはフラッシュROM容量は64KBのPIC18F2680を使用しました。なお、今回のプログラムは4KB以下であり、シリーズ最小容量の18F2480でも動作するでしょう。

★セラミック発振子
内部クロックでは周波数が不足するので、外部に20MHzのセラミック発振子(セラロック)を取り付けました。なお、20MHz以外の発振子を用いる場合には、ソース内のCAN通信の変数を変更する必要があります。なぜなら、CAN通信速度はマイコンの周波数とCAN通信関連のレジスタ値の2つから決まります。OBD用のCAN通信速度を500kbpsを得るためにはマイコン周波数が変わったら、レジスタを変える必要がでてきます。

★CANトランシーバー MCP2551
CANバスは前述したとおり1,0を、レッシブ、ドミナントの2つの電圧差違いで通信するため、一般的な1=5V,0=0Vというデジタル信号を直接CANバスに接続できません。そこで、5V,0Vをレッシブ、ドミナントの電位差に変換するためのCANトレンシーバーとよばれるMCP2551が必要となります。

★CAN-H,CAN-L部のRC終端処理(AC終端処理)
回路図右下のCAN-H,CAN-Lとグランドの間に接続されている100Ω抵抗、560pFコンデンサは、今回製作する回路内でCAN信号が反射しCANバス誤動作を抑えるために取り付けています。これはIS0 15765-4 8.4.2.3.3 a.c. termination項に、抵抗90Ω~110Ω、コンデンサ470~640pFと決められています。

★プログラム書き込み端子 ICSP
PICへPIC kitを用いてプログラムを書き込む端子です。

★液晶表示器取り付け端子 LCD
一般的なLCDを取り付ける端子です。使うLCDに応じて、端子配列は変える必要があります。


Posted at 2010/11/14 21:32:42 | CAN OBDⅡ | クルマ
2010年11月14日 イイね!

自作PICマイコンによるCAN通信によるOBD-IIデータ表示回路

自作PICマイコンによるCAN通信によるOBD-IIデータ表示回路OBD-IIコネクタから信号を取り出し、CAN通信によりOBD-IIデータ(今回はエンジン回転数とエンジン負荷)を読み取り表示するメーターです。

これまでPC+CANUSBでOBD-IIデータの読み取りをおこなっていましたが、今回は、PC不要でスタンドアロンで表示が出来るように、PICマイコン+MCP2551+抵抗コンデンサなど製作しました。

簡単な回路ですので、部品点数も少なくわずか4300円(OBD-IIコネクタ含む)で完成しました。

少しのソフト変更でその他の情報(水温、スロットル開度など)も表示できます。

これまで、自作でOBD-IIデータを表示させる試みで情報公開されている例は、

(1)PC+CANUSB,CAN232(CAN⇔RS232シリアル通信変換装置)
  自分が公開していますが、PCがないと見られないのが難点です。

(2)PICなどのマイコン+ELM323,ELM327チップ(CAN⇔RS232シリアル通信変換チップ)
  ELM323,ELM327チップ+その周辺部品部品が多数必要で回路が複雑で製作費も高い。

(3)PICなどのマイコン+CNA232
  回路はシンプルだが、CAN232が高価。

今回は、もっともシンプルな構成、製作費最安の PIC + MCP2551 (CANバス差動電圧変換チップ)だけでOBD-IIデータを表示させました。

おそらく、市販のOBD-IIコネクタからデータを読み出し、そのデータを表示させるメーターやテスタはコストを抑えなくてはならないため、この構成をとっているものと思われます。

しかし、それらメーター、テストは世の中に沢山あるものの、どのような回路、ソフトで行っているのかを解説してあるWEBサイトは見たことがありません。

今回製作した表示装置の回路図、ソフトなどの関連情報はすべて関連情報URLに開示してあります。

おそらくこれらの情報が公開されるのは日本語WEBサイトで初めてだと思います。

皆さんの自作回路製作の参考になれば幸いです。
Posted at 2010/11/14 01:09:14 | CAN OBDⅡ | 日記
2009年03月08日 イイね!

ダメダメおやじ自作 馬力メーター

ダメダメおやじ自作 馬力メーター車のDLC3コネクタにPCを接続し、現在の馬力をデジタル表示&バー表示。
現在の回転数とトルクを、回転数-トルクマップ上に表示。



詳細は、
関連情報URL→CAN通信→■06_馬力メーター
Posted at 2009/03/08 16:41:56 | トラックバック(0) | CAN OBDⅡ | クルマ
2009年03月08日 イイね!

ダメダメおやじ自作 エンジンデータ(OBDデータ)ロガー

ダメダメおやじ自作 エンジンデータ(OBDデータ)ロガー車のDLC3コネクタにPCを接続し、現在の各種エンジンデータを指定個数分エクセルワークシート上に記録

詳細は、
関連情報URL→CAN通信→05_エンジンデータ(OBDデータ)ロガー
Posted at 2009/03/08 16:37:32 | トラックバック(0) | CAN OBDⅡ | クルマ

プロフィール

みんカラ新規会員登録

ユーザー内検索

<< 2026/1 >>

    123
45678910
11121314151617
18192021222324
25262728293031

ブログカテゴリー

愛車一覧

レクサス IS レクサス IS
ダメダメおやじの部屋

過去のブログ

2010年
01月02月03月04月05月06月
07月08月09月10月11月12月
2009年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation