上篇博客介紹了車聯網OBD的一個總體效果圖http://www.cnblogs.com/enjoyeclipse/p/3453750.htmlhtml
這篇就重點說說汽車的內部通信方式和項目的總體架構吧。
數據庫
一.汽車的USB-OBD和汽車的大腦-ECU 瀏覽器
說到這裏,咱仍是回頭再看看OBD的概念,OBD是英文On-Board Diagnostic的縮寫,中文翻譯爲「車載診斷系統」。汽車方向盤的左下方通常都有這麼一個16針的接口,這個接口最先是用來檢測排放廢氣的,也用來故障診斷。服務器
OBD接口網絡
那ECU是什麼呢?這塊咱們團隊也尚未深刻研究,只是理解到ECU就是汽車的大腦。如今的電子技術在汽車運用得愈來愈多,不少汽車的數據都是存儲在ECU上的。若是汽車出現了什麼問題(故障碼),就會存儲在ECU上。架構
ECU板eclipse
OBD和ECU的關係個人理解就是USB和電腦核心系統(芯片,內存,硬盤)的關係。在這個領域中的極客,都是能夠經過OBD去刷ECU的數據而提升汽車動力性能的。有點相似於刷系統,固然難度也是很高的,主要是OBD通常都是讀取的發動機轉速、速度、水溫、油耗等通用數據,協議也相對通用。真正每一個汽車廠商的核心數據是各不相同的。性能
二.汽車的總線:K總線和CAN總線網站
可是OBD和ECU是如何通訊的呢?原理和普通電腦同樣,是靠總線鏈接的,目前家用車多采用K總線和CAN總線兩種,你只要知道,CAN總線是相對高級的總線就好了。只是這一塊如上文所說,中間是有很是複雜的網絡協議,有點相似於TCP/IP那種。固然總線不單單是鏈接OBD,還會將汽車上的不少傳感器串聯起來。也就是說,汽車自己就是一臺電腦,也能夠理解爲一個局域網。spa
總線示意圖
三.整體架構
前面隨便說了下汽車內部的通信方式,下面聊聊總體的架構吧,從圖上看真的很簡單,包含四層。不過真正作起來的時候,從用戶界面到異常處理,到多OBD的適配,到藍牙的自動鏈接,好多細節須要處理,之後的文章再慢慢說吧。
1.ECU-------OBD(咱們不用關心,OBD硬件廠商通常都作好了)
2.OBD--------Android終端PP(採用OBD解析協議,經過藍牙方式傳輸,下篇博客會重點描述)
3.Android終端APP-------服務器+數據庫(採用自定義的Webservice)
4.PC瀏覽器-------服務器+數據庫(網站技術)