https://en.wikipedia.org/wiki/ELM327
汽車OBD II 接口硬體+軟體與hack筆記
通用硬體為Elm327,現在普遍用電腦或手機走藍芽uart.
AT command指令集.插入車上OBD II接口.
CAN 2.0B規範包含Phy實體層跟資料連結層(Data Link Layer),看狀況還需要高層協定(Higher
Layer Protocols, HLPs)。
http://0rz.tw/v9Kyo
图吧汽车衛士 優駕卫士 菜鸟养车
都是如圖手機APP整合便宜的OBD II硬體.
那專業的汽車維修儀是怎樣?
http://0rz.tw/SjQqB
如何分析CAN協議
http://bobodyne.com/web-docs/robots/MINI/CAN/MINI_CAN.pdf
有些儀器會"參考"(Sniffer)別人的診斷儀,甚至是原廠的
中國某汽車診斷設備廠商被趕出北美,就是因為Sniffer福特的原廠診斷儀,又被福特抓包了。不過即便如此,XX診斷儀在美國黑市上依然非常受歡迎。
而福特原廠抓包道通的方式,也是sniffer 道通的設備,發現了自己埋進去的無效指令竟然被照抄了...
資料救援設備大廠ACE Lab 也有做車用檢測儀.
現在資料救援設備都會加入無效指令集
來防範被同行抄襲
現在調表跟clone keyless都需要100%掌握行車電腦...
對黑車有興趣?下面tools 可以參考一下
1.Caring Caribou 暴力破解診斷碼
https://github.com/CaringCaribou/caringcaribou
2.SocketCAN userspace utilities and tools
https://github.com/linux-can/can-utils
3.汽車ECU ROM修改器
https://www.evc.de/en/download/down_winols.asp
OSSLab Geek Lab
#OSSLab
#黑硬碟也要黑車
at command軟體 在 Nordic藍牙方案開發專案人才媒合 - Facebook 的推薦與評價
AT -Command 模組使用教學~如何設定硬軟體與修改傳送指令. 勁達國際電子有限公司代理商Avnet為方便開發者更容易使用AT指令模組, 編輯以下使用說明. ... <看更多>
at command軟體 在 軟體介紹- ritzenyang/Basic Wiki 的推薦與評價
AT Command. ESP8266 無線模組的指令主要分為:基礎AT 指令、WiFi 功能AT 指令、TCP/IP 工具箱AT 指令... 等,根據韌體版本的不同,會新增或修改AT 指令以方便使用者的 ... ... <看更多>
at command軟體 在 想請問各位大大關於使用8051撰寫AT command的問題! 的推薦與評價
這是我第一次的發文唷,如果違規敬請見諒!
有高手會這一部份的,可以向我丟水球嗎?急需要有人可以替我解惑,謝謝唷!
我的問題如下:
我軟體想要的動作是每當senser = = 0, 8051就發送AT command,每發送一段 command,
與8051連接的的LED會閃爍一次,最後將AT command傳送給GSM模組,發送簡訊出去。
我是使用宣告字元的方式來發送AT command,可是不知道這樣可不可行,希望各位大大
幫我解答,該怎麼樣才能順利的將AT command傳送出去。
還是我RS-232定義的部分有錯誤呢?
使用的8051是AT89S52
我是將LED定義為P1^0
senser定義為P2^0
利用RS-232做串列傳輸
程式碼如下:
#include<AT89x52.h>
sbit led = P1^0;//LED腳位定義
sbit sensor = P2^0;//感應器
char *C1="AT";
char *C2="AT+CMGF=1";
char *C3="AT+CMGS=0986426579";
char *C4="THIS IS A TEST";
delay(int d) //延遲副程式
{
int i,j;
for(i=0;i<d;i++)
for(j=0;j<200;j++);
}
init_rs232() //初始化RS232通訊介面 <<這裡怪怪的 分號的部份>>
{ //通訊協定:<9600 N 8 1>
SCON=0x50; //設定串列界面工作模式1,接收資料致能
TMOD=0x20; //設定計時器1工作於模式2
TH1=0xFD; //設定鮑率為9600BPS
TR1=1; //啟動計時器1開始計數
TI=1; //設定串列傳送中斷產生旗號
}
tx_char(unsigned char c) //傳送一位元組資料
{
while(1)
if(TI)break; //等待傳送中斷旗號產生
TI=0; //清除串列傳送中斷旗號
SBUF=c; //由串列埠傳送資料出去
}
tx_str(char*str) //傳送字串資料
{
do{tx_char(*str++);}
while(*str!='\0');
}
void main(void)
{
int i=0;
init_rs232(); //初始化RS232通訊介面
delay(500);
while(i==20)
{
led=0;
delay(500);
led=1;
delay(500);
i=i+1;
}
while(sensor ==1)
{
if (sensor ==0)//收到訊號
{
tx_str(C1); //傳送執行訊息出去
led=0;//LED亮
delay(500);
led=1;//LED不亮
tx_str(C2); //傳送執行訊息出去
led=0;//LED亮
delay(500);
led=1;//LED不亮
tx_str(C3); //傳送執行訊息出去
led=0;//LED亮
delay(500);
led=1;//LED不亮
tx_str(C4); //傳送執行訊息出去
led=0;//LED亮
delay(500);
led=1;//LED不亮
}
led=1;//LED不亮
}
}
拜託各位大大了!
非常非常迫切的需要神手替我解答,我是code超新手,專題卡關!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.96.47.178
... <看更多>