999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android平臺的電動汽車檢測儀

2017-04-14 08:39:06豆宏賢秦琳琳
汽車工程 2017年2期
關鍵詞:服務系統

豆宏賢,石 春,秦琳琳,吳 剛

(中國科學技術大學自動化系,合肥 230027)

基于Android平臺的電動汽車檢測儀

豆宏賢,石 春,秦琳琳,吳 剛

(中國科學技術大學自動化系,合肥 230027)

為便于電動汽車整車調試和故障診斷,研制了一套基于Android平臺的檢測儀,設計了系統整體架構,移植了Android操作系統和FlexCAN、WiFi驅動程序,編寫了FlexCAN中間件。應用程序調用硬件服務接口實現了CAN總線數據的采集、存儲和解析,用Protobuf實現數據序列化。終端通過無線網絡把序列化后的電動汽車實時運行數據發送到數據服務器,實現了數據的實時顯示。系統每隔300ms采集一次電動汽車數據。試驗結果表明,該套檢測儀具有很好的穩定性與實時性,能滿足實際應用的要求。

電動汽車;檢測儀;Android;Protobuf

前言

能源危機和環境污染問題使政府大力支持電動汽車的發展,但電動汽車的研發在全球范圍內仍處于初級階段,降低研發成本、提高汽車性能、推動技術改進和創新都需要大量運行數據支持[1];電動汽車架構中電子控制單元眾多,而這些控制單元多屬于不同廠家,由于產品設計理念和生產方法不夠成熟,電子控制單元的協調運作在整車應用中需要經過多次調試和檢測;電池的過充、過放也會直接影響電動汽車的行駛安全[2]。

在電動汽車生產研制過程中需要進行多次系統調試和檢測,高效的數據分析和處理可提高生產效率,降低研發成本。電動汽車實時運行數據的采集、存儲和解析能幫助整車生產廠商了解各個電子控制單元的狀況,快速檢測出有故障的器件,為車輛的安全生產提供保障;在電動汽車運行過程中,用戶可實時了解車輛狀況,及時檢修帶有安全隱患的部件;檢修人員通過車輛數據的獲取能夠很快找到故障原因,高效完成故障修復工作;車輛實時運行數據庫的建成,為電動汽車各個部件性能的改善以及動力系統的優化提供了實際指導[3]。

文中開發了基于Android的電動汽車檢測儀軟硬件架構,重點描述了檢測儀的軟件實現。系統通過CAN網絡采集整車控制器、電機控制器、電池管理系統發送的信息[4]。為解決數據量大導致的界面卡死,每隔300ms采集一次車輛CAN網絡數據。

1 系統整體架構與工作原理

檢測系統主要有Android信息娛樂終端、WiFi熱點和便攜式電腦等部分組成。信息娛樂終端通過CAN總線采集電動汽車實時運行數據并完成了數據的解析、顯示和存儲。WiFi熱點負責提供無線網絡,便攜式電腦作為數據服務器通過網絡接收信息終端發送的電動汽車實時運行數據。檢測系統結構如圖1所示。

電動汽車運行過程中,電子控制單元如整車控制器、電機控制器和電池管理系統間通過CAN網絡進行數據交互[5]。Android信息終端從CAN網絡獲取車輛實時運行數據,存儲于數據庫中,經J1939協議解析后在液晶觸摸屏上顯示車輛狀態,當用戶選擇發送到服務器時,信息終端對車輛數據用Protobuf (protocol buffers)協議序列化后通過WiFi網絡傳輸到便攜式電腦。便攜式電腦存儲獲取數據,并編寫上位機軟件利用Protobuf協議反序列化獲得電動汽車運行數據。利用電腦端豐富的資源,對反序列化后的數據進行解析和顯示[6]。通過分析顯示的數據信息,維修人員可以很快地找到電動汽車故障,快速消除故障[7]。

2 硬件結構

系統采用飛思卡爾公司推出的用于車載系統的i.MX6Q處理器,它有4顆運行速度達1.2GHz的ARM Cortex-A9內核,集成3D圖形單元和1080P編碼/解碼引擎,在苛刻的汽車環境中工作穩定可靠。

系統硬件包括CAN數據的采集、存儲和發送以及供電系統和調試接口等。i.MX6Q具有豐富的片上資源,支持常見的外圍設備。外圍設備包括音視頻采集、顯示電路、以太網電路、電源接口、UART、NAND Flash、SD卡、DDR3、USB2.0和I2C等,其外圍電路如圖2所示。

圖2 硬件結構

系統采用的CAN收發器是TI公司的SN65HVD230芯片,完成CAN控制器邏輯電平到CAN總線差分電平的轉換。CPU通過集成的Flex-CAN控制器發送邏輯電平信號,經收發器轉換為CAN總線傳輸的差分信號。SN65HVD230芯片抗干擾能力強、可靠性和數據傳輸速率高,在車載環境中能很好地保證數據的準確性。

3 軟件設計

軟件設計需要移植FlexCAN,RT5370驅動,編寫FlexCAN中間件以及上層應用程序。

3.1 FlexCAN驅動

在Android內核源碼中已支持FlexCAN設備,但檢測儀樣機與默認配置中的接口有差異,需在飛思卡爾提供的i.MX6Q處理器端口配置文件中,把i.MX6Q相應端口配置為CAN_TX和CAN_RX功能。然后重新配置內核,將FlexCAN驅動加入內核。

3.2 USB-WiFi驅動

檢測儀使用的USB-WiFi芯片RT5370,因在內核中沒有對應的驅動文件,故須下載相應的驅動文件進行編譯。在驅動的源碼目錄中對Makefile文件進行修改,使其支持實際應用中的硬件平臺和交叉編譯環境,編譯出驅動模塊RT5370sta.ko。重新配置內核,增加內核對802.11協議棧的支持、USB接口對WiFi模塊的支持和用戶空間對mdev和fireware的支持。在USB-WiFi驅動移植過程中,須將驅動模塊和對應的RT5370STA.dat文件拷貝到Android系統相應目錄下,以便Android系統啟動時能成功打開WiFi模塊。

3.3 Android中間件

1916年葉良輔、1928年楊曾威、1936年熊秉信、1938年王竹泉、1963年李星學、1960年北京礦業學院、1961年北京地質學院、1976年北京礦務局等許多地質學家及地質研究單位都曾來此作過研究工作,并最終確立了以本區地名命名的上古生界北京地區代表剖面,適合地質剖面測定、巖性巖相分析及沉積環境分析等基礎性教學.

Android系統沒有提供FlexCAN中間件,上層應用軟件要使用FlexCAN的硬件服務,必須在軟件設計過程中,編寫對應的Android中間件,使上層應用軟件能正常調用硬件模塊。FlexCAN中間件主要有FlexCAN Stub模塊、FlexCAN本地服務模塊和Flex-CAN服務管理模塊。

3.3.1 FlexCAN Stub設計與實現

Android為保護硬件廠商的信息,避開Linux的通用性公開許可證GPL(general public license)的束縛,設計了硬件抽象層HAL(hardware abstraction layer)模塊,它是Linux內核驅動程序的封裝,向上提供接口,屏蔽底層實現細節[8]。在硬件抽象層中,Stub是一種代理人(proxy)概念,它向硬件抽象層提供操作函數,runtime則從硬件抽象層獲得特定模塊Stub的操作函數,再回調這些操作函數。硬件抽象層與Stub是一種包含關系。

FlexCAN在內核中使用Socket接口和Linux協議棧,因此在FlexCAN Stub設計時使用系統調用socket()、bind()完成套接字的創建和綁定。系統調用sendto()利用套接字發送CAN數據,recvfrom()負責接收數據。

FlexCAN Stub是硬件抽象層中眾多模塊之一,它是FlexCAN控制的代理,當FlexCAN控制的本地服務需要調用FlexCAN Stub時,會利用hw_get_module()函數向HAL申請FlexCAN Stub模塊,hw_get_ module()函數根據Stub對應的ID號找到對應的FlexCAN Stub,獲得對應的Stub操作函數[9]。圖3為FlexCAN Stub實現過程。

圖3 FlexCAN Stub實現過程

3.3.2 硬件控制服務的JNI實現

Java本地接口JNI(Java native interface)模塊處在硬件抽象層與Framework層之間,Android應用程序框架層用Java語言編寫,而本地庫是C/C++實現,為使Android框架層能調用本地庫,應用框架層需要使用native方法,而這些native方法需要在Java本地接口層實現。

FlexCAN控制服務的JNI實現見圖4,FlexCAN控制服務作為系統服務被添加到系統服務列表中。Android系統啟動,FlexCAN控制服務隨之被啟動。System Server是Android系統啟動后運行的第一個Java進程,它通過System.load.library()方法來轉載庫文件libandroid_server,進而調用庫文件里的JNI_ Onload()函數,把FlexCAN的方法表注冊到虛擬機,Java本地接口層函數flexcan_native_init()會調用硬件抽象層函數hw_get_module()找到FlexCAN Stub并獲得Stub操作函數。flexcan_native_send()函數調用FlexCAN Stub模塊的回調函數flexcan_send()向FlexCAN設備發送CAN幀。flexcan_native_receive()函數調用回調函數flexcan_receive()從Flex-CAN設備獲取CAN數據。

FlexCAN控制服務隨著系統啟動而啟動,并利用服務管理器的addService()函數把自己注冊到服務管理器中。

3.4 Android應用程序

Android應用程序完成數據的采集、存儲、解析、顯示和WiFi傳輸。應用程序從服務管理器獲取FlexCAN控制服務并完成CAN網絡數據采集,利用sqlite3數據庫存儲CAN幀[10]。

應用程序定義HandlerListener接口,讓Activity類以及FlexCANHandler類實現該接口。在Flex-CANHandler類中把獲取的電動汽車運行數據向實現了HandlerListener接口的Activity類分發。在Activity類中利用J1939協議對獲取的電動汽車運行數據進行解析和顯示[11]。

圖4 FlexCAN控制服務的Java本地接口層實現

應用程序與PC端采用Socket通信,利用Protobuf協議對CAN幀數據進行序列化[12]。Protobuf協議是Google開源的一種數據交換格式,它獨立于語言和平臺,能進行多種語言的實現,是一種性能好、效率高的數據交互協議。對于每一種語言實現都帶有編譯器和相應的庫文件[13]。Protobuf使用二進制序列化,可讀性比Json和XML差,缺少自描述,但用在電動汽車上一定程度保障了車輛信息安全[14]。為使PC端能正確解析CAN幀數據,在傳輸數據之前定義一個字節數據長度,使PC端能根據字節長度獲知序列化后的CAN幀數據。

Android應用程序的設計流程如圖5所示。

圖5 Android應用程序設計流程

3.5 數據服務器端程序

數據服務器與Android應用程序采用Socket通信。服務器端創建一個監聽特定端口的TcpListener對象server。服務端開啟監聽服務后,調用server的AcceptTcpClient()方法,該方法的執行使服務端處于等待狀態,程序阻塞直到接收一個來自客戶端的請求并返回Socket對象TcpClient[15]。服務端使用TcpClient與客戶端通信。

服務端接收到客戶端數據后,先獲取幀的長度,再使用Protobuf協議解析,即可獲得原始數據。服務端編寫上位機程序實現原始數據的存儲、解析和顯示。上位機程序的實現為整車調試工程師以及售后維護工程師提供了查看電動汽車故障信息的平臺。

4 系統測試

在項目實施中,為保證程序的正確性和系統的穩定性,在北京恒天純電動物流車上進行了測試。把Android影音娛樂平臺接入電動物流車的CAN網絡,采集其實時運行數據,得到部分測試結果,如圖6所示。

圖6 電動物流車運行狀態信息

在PC端編寫上位機軟件接收檢測終端發送的電動汽車運行數據,用Protobuf協議解析數據,對解析后的數據進行分析處理,得到電動汽車某個時刻的狀態,如圖7所示。

圖7 電動物流車靜止時的狀態信息

5 結論

針對電動汽車整車調試和故障診斷,設計并實現了基于Android的電動汽車檢測儀,介紹了檢測儀各個硬件模塊配置,完成了系統軟件移植、編寫,以及應用軟件的開發。應用端利用FlexCAN從CAN網絡讀取整車控制器、電機和電池等車輛信息,完成了存儲、解析與顯示。最后通過WiFi網絡把車輛數據傳輸到PC端進行處理和分析。結果表明,該套方案能為電動汽車進一步發展提供數據基礎,同時能為維修人員提供檢修參考,具有實際的應用意義。

[1] 吳晶晶.純電動汽車車載信息的采集與遠程監測系統的研發[D].南昌:南昌大學,2011.

[2] 楊帆.電動汽車數據采集系統的設計與實現[D].北京:北京郵電大學,2013.

[3] 黃周義,石春,付賢強,等.純電動客車遠程監控系統設計與實現[J].電子測量技術,2013,36(7):23-26.

[4] 吳任飛,李仁發,李龍,等.面向FlexRay-CAN異構網絡的幀封裝研究[J].小型微型計算機系統,2015,36(4):749-753.

[5] 付賢強,石春,黃周義,等.純電動客車遠程視頻監控終端設計與實現[J].電子測量技術,2013,36(8):71-75.

[6] KIM Minyoung,KIM Mi-Jin,JANG Jong-Wook,et al.Design of smart driving information check system using smart phone and wireless personal area network[C].Ubiquitous and Future Networks (ICUFN),4-6July,2012:[7].389-393.

[7] JHOU Jheng-Syu,CHEN Shi-Huang,TSAY Wu-Der,et al.The implementation of OBD-Ⅱvehicle dignosis system integrated with cloud computation technology[C].Robot,Vision and Signal Processing(RVSP),10-12Dec,2013:9-12.

[8] 羅升陽.Android系統源代碼情景分析[M].北京:電子工業出版社,2012.

[9] 李寧.Android深度探索(卷1)[M].北京:人民郵電出版社,2013.

[10] WEI Jason.Android數據庫程序設計[M].王雪昌,吳驊,林展宏,譯.北京:清華大學出版社,2014.

[11] SAE J1939—73.Application layer-diagnostics[S].1998.

[12] 寇陽,呂建新.基于Protocol Buffers的配置下發接口適配與應用[J].電子測試,2014(1):108-109.

[13] 聶曉旭,于鳳芹,欽道理.基于Protobuf的數據傳輸協議[J].計算機系統應用,2015(8):112-116.

[14] GLIGORIC N,DEJANOVIC I,KRCO S.Performance evaluation of compact binary XML representation for constrained devices [C].Distributed Comuting in Sensor Systems and Workshops (DCOSS),27-29June,2011:1-5.

[15] 李神送,溫嘉銘,劉學鋒.Android手機上傳感器信息的實時獲取與可視化[J].電子測量技術,2015(6):104-107.

Detector for Electric Vehicle Based on Android Platform

Dou Hongxian,Shi Chun,Qin Linlin&Wu Gang
Department of Automation,University of Science and Technology of China,Hefei230027

To facilitate the debugging and fault diagnosis of electric vehicle,a detector based on Android platform is developed,the overall framework of the system is designed,the Android operating system and the driver programs FlexCAN and WiFi are transplanted,and the middleware FlexCAN is developed.Then the application calls the service interface to fulfill the acquisition,storage and parsing of CAN bus data,and Protobuf is used to conduct data serialization.Finally,the terminal sends the serialized real operation data of electric vehicle to data server via wireless network,realizing real-time data display.The system collects vehicle data every 300 milliseconds.Test results show that the detector developed has good stability and real-time performance,meeting the requirements of practical application.

EV;detector;Android;Protobuf

原稿收到日期為2016年1月15日,修改稿收到日期為2016年2月25日。

吳剛,教授,博士生導師,E-mail:wug@ustc.edu.cn。

10.19562/j.chinasae.qcgc.2017.02.016

猜你喜歡
服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
半沸制皂系統(下)
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
主站蜘蛛池模板: 亚洲欧美成人影院| 亚洲人成网线在线播放va| 日本91视频| 亚洲精品国产综合99久久夜夜嗨| 国产日韩欧美在线视频免费观看 | 国产精品网曝门免费视频| 亚洲最大在线观看| 中文字幕久久亚洲一区| 人妻丰满熟妇AV无码区| 日韩精品成人在线| 91亚瑟视频| 久久77777| 欧美午夜视频在线| 99精品在线看| 国产91无码福利在线| 国产正在播放| 欧美激情一区二区三区成人| 国产美女免费网站| 91色国产在线| 日韩美毛片| 国产亚洲欧美在线视频| 国内精品一区二区在线观看| 91精品最新国内在线播放| 欧美色亚洲| 日韩国产综合精选| 日日噜噜夜夜狠狠视频| 免费全部高H视频无码无遮掩| 成人在线天堂| 久久 午夜福利 张柏芝| 亚洲,国产,日韩,综合一区| 永久毛片在线播| 国产黄在线免费观看| 国产真实乱人视频| 福利在线不卡| 国产SUV精品一区二区6| 精品91自产拍在线| 亚洲人成网站色7777| 日韩欧美91| 亚洲无码不卡网| 亚洲婷婷丁香| 又猛又黄又爽无遮挡的视频网站| 久久这里只有精品国产99| 婷婷成人综合| 国语少妇高潮| 97久久免费视频| 国产美女在线免费观看| 国产成人精品高清不卡在线| 精品成人一区二区三区电影 | 香蕉99国内自产自拍视频| 欧美日韩国产一级| 国产精品精品视频| 亚洲二区视频| 好吊色妇女免费视频免费| 99这里只有精品免费视频| 亚洲国产精品不卡在线| A级毛片无码久久精品免费| 亚洲一区网站| 成人在线第一页| 五月婷婷中文字幕| 婷婷在线网站| 她的性爱视频| 国产欧美日本在线观看| 亚洲欧洲AV一区二区三区| 欧美亚洲日韩中文| 中文字幕自拍偷拍| 青青久久91| 午夜毛片福利| 青青久视频| 激情综合婷婷丁香五月尤物| 少妇精品在线| 午夜福利网址| 2022国产91精品久久久久久| 国产成+人+综合+亚洲欧美| 国产幂在线无码精品| 91免费国产高清观看| 国产欧美日韩在线在线不卡视频| 都市激情亚洲综合久久 | 欧美亚洲中文精品三区| 久久久久久尹人网香蕉| 91偷拍一区| 狠狠色噜噜狠狠狠狠色综合久| 91国内视频在线观看|