基於Android作業系統實現車載人機界面應用程式的設計

2020-12-12 電子發燒友

基於Android作業系統實現車載人機界面應用程式的設計

李培培;朱維傑 發表於 2020-04-06 18:18:00

提出了利用Google的Android作為車載虛擬儀表人機界面的軟體開發平臺。在Android系統框架上實現虛擬儀表的人機界面,闡述了如何對Android現有系統框架進行裁剪和調整,使系統更加符合車載虛擬儀表人機界面的要求,利用Android提供的組件設計虛擬儀表人機界面的各個功能邏輯模塊,使得模塊設計更加合理.模塊之間的耦合性更小。設計了基於REAL210車載儀表人機界面,結果表明,基於Android的虛擬儀表人機界面功能更加豐富、操作更加友好、易於升級和維護,能較好地滿足用戶的需求。

車載虛擬儀表人機界面,是駕駛員獲取汽車工況數據的主要界面,便於駕駛員實時全面地掌握汽車工作狀態,有效地與汽車進行人機互動,對保障汽車安全穩定的行駛有著重要意義,目前普遍使用的是Windows CE和Linux作業系統。Windows CE作業系統功能穩定,有完善的技術支持,但價格昂貴、原始碼封閉、網絡可利用資源較少;Linux作業系統的最大優勢在於免費和開源,是車載信息顯示系統的主流作業系統,但其並不是基於行動裝置開發的,不能完全滿足行動裝置的需求。

Android是Google開發的一款基於開源作業系統Linux的開放、開源移動平臺,對於目前主流的嵌入式平臺支持良好,Android系統的優越性能己在多款行動裝置上得到驗證。它包括作業系統用戶界面和應用程式而且不存在任何以往阻礙移動產業創新的專有權障礙。文中提出利用Android作為車載虛擬儀表軟體開發平臺,在Android提供的應用程式框架上來實現虛擬儀表的人機界面。

1 、系統硬體體系

雖然Android是作為一款手機軟體平臺進行開發的應用程式框架和應用程式但其本質是一個嵌入式軟體開發平臺。若將Android用於車載虛擬儀表系統的開發,需要對儀表系統應用的特點進行調整,系統採用的硬體平臺是REAL210,CPU處理速度600 MHz~1 GHz,基於Cortex—A8架構。系統中主要的硬體模塊有音頻模塊、CAN模塊、液晶顯示模塊、串口和乙太網通信模塊,如圖1所示。

2、 Android軟體系統的定製

由於Android最初是基於手機軟體開發平臺進行設計的,而且其中大部分模塊都是為手機通信所設計,為節約開發板資源,需要將Android系統中不必要的組件剪裁掉,保留必要的最小系統。因此必須對框架進行修改,將與電話、簡訊等相關的模塊移除。僅留下必需的Android的核心模塊,包括Package Manager、System Service、Input Service、Hardware SerVice和System Server等。通過修改System Server的加載過程可以去掉不需要的服務和模塊,另外還要實現底層硬體的驅動程序,重新交叉編譯Linux 2.6內核,並在驅動程序實現的基礎上封裝函數庫,以便Android的應用程式通過JNI的方式訪問底層驅動。經過定製和修改過的Android系統架構如圖2所示。

車載虛擬儀表人機界面的應用程式需要進行重新開發,主要是界面模塊、CAN模塊、數據訪問模塊和告警模塊。其中CAN模塊設計成Service的方式。數據訪問模塊設計為Content Provider。告警模塊採用的通知方式為Broadcast Receiver和Notifica。系統通電後,在Android的System Server中首先啟動CAN模塊,然後啟動主界面的程序。

3、 應用程式的設計與實現

應用程式的系統架構。通過PackageManager提供的各個APK的信息以菜單方式對各個功能模塊進行調用。

3.1 CAN模塊

CAN模塊用於數據的採集和處理,CAN模塊接到數據後,要對數據進行解析,判斷出接收到的數據類型。最終得到所需要的值。計算方法為根據參數所在數據域的字節位置提取其對應的原始數,再根據該參數對應的解析度和偏移量得到參數值,其參數值的計算方法為:參數值=參數原始數×解析度+偏移量。通過編程計算出數據代表的實際發動機狀態值,即可準確地在車輛實時功能模塊中顯示當前的車輛狀態。

3.2 數據訪問模塊

程序的數據訪問模塊,採用Android系統內置的SQLite資料庫,對一些重要車況信息自動記憶存儲,便於分析和維修,起到汽車「黑匣子」的作用。存儲的車況信息可以通過點擊回放按鈕直接在儀表界面上回放,真實再現汽車行進過程中的狀況。

首先調用.openOrCreateDatabase()創建vehicle_database.db資料庫,然後配置SQLite資料庫屬性通過。創建一個數據表分別定義:行駛日期、出廠信息、車速、轉速信號、啟動、停止時刻、行使裡程、報警信息等。將黑匣子接收到的數據對應數據表定義的格式通過.insert()向數據表中插入數據,通過.delete()指定日期來刪除過期的數據。顯示歷史數據需要先通過DatePicker獲取用戶輸入的年、月、日,並將具體日期數值提取出來,將條件放入SQL查詢語句.query()中來查詢,定義一個Cursor返回結果,然後創建一個數據適配器將Cursor的結果直接映射到ListView中的對應的TextView上。

3.3 功能模塊

功能模塊用於測控車輛的速度、發動機轉速、水溫和燃油、告警事件的顯示。系統設計的功能模塊界面顯示如圖3所示。

3.4 告警模塊

告警模塊本身是一個Broadcast Receiver,它負責接收其他模塊的告警事件,超速、油量、水溫、油壓等,並將這些信息寫入資料庫,同時調用告警顯示界面顯示對應的信息或以Notification的方式在狀態欄進行提示。在Android系統中,所有的應用程式之間都通過Binder進行通信,這種IPC機制是基於Linux底層驅動實現的,與傳統的進程間通信機制相比,它的執行具有更高的效率和更好的擴展性。

4 、結束語

利用Android作為人機界面所開發的框架通過對各個功能模塊的細化,可以使系統設計更合理,模塊結構更獨立,容易進行軟體維護和代碼二次開發,基於Android應用程式框架設計的各個模塊,可以進行自由修改和替換,提高了系統的可定製性,雖然Android是手機軟體開發平臺,但憑藉其優秀的系統架構設計和理念,會有越來越多的車載虛擬儀表採用Android作為開發平臺。

責任編輯:gt

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於ARM的三軸伺服控制系統人機界面設計
    基於ARM技術的微處理器應用約佔據了32位RISC微處理器75%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。ARM公司是專門從事基於RISC技術晶片設計開發的公司,作為智慧財產權供應商,本身不直接從事晶片生產,靠轉讓設計許可由合作公司生產各具特色的晶片,世界各大半導體生產商從ARM公司購買其設計的ARM微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的arm微處理器晶片進入市場。
  • 基於CAN總線結合射頻和USB實現車載故障診斷儀的設計方案
    基於CAN總線結合射頻和USB實現車載故障診斷儀的設計方案 黃濤;王小輝 發表於 2020-04-13 09:21:10 設計一款基於2.4G射頻的車載CAN總線故障診斷儀
  • 極星Polestar品牌發布新一代人機互動界面
    作者:小魔沃爾沃旗下的高性能品牌極星Polestar最近發布了其新一代人機互動界面,而該界面仍然是與谷歌合作開發而來。極星表示他們的新一代信息娛樂系統仍將基於谷歌的安卓系統作為基礎平臺,並致力於提供「真正的個性化和場景化體驗服務」。其新系統界面除了支持後視鏡調整,座椅調節,空調控制和娛樂系統控制這些常規控制外,還可以根據用戶的個人喜好和其最後所使用的應用程式來自動調節車內環境。
  • 基於S3C44BOX處理器和Linux作業系統實現物流PDA無線終端的設計
    基於S3C44BOX處理器和Linux作業系統實現物流PDA無線終端的設計 趙國強;張鵬 發表於 2020-12-23 10:20:56 科學技術的進步帶來了物流業的巨大變化
  • 學PLC必須熟悉人機界面,值得收藏~
    人機界面產品的定義連接可編程序控制器(PLC)、變頻器、直流調速器、儀表等工業控制設備,利用顯示屏顯示,通過輸入單元(如觸控螢幕、鍵盤、滑鼠等)寫入工作參數或輸入操作命令,實現人與機器信息交互的數字設備,由硬體和軟體兩部分組成。HMI為英文Human-Machine Interface的縮寫。2.
  • 邊緣AI在智能家居人機界面(HMI)中的應用
    我們看到,人機界面(human-machine interface,HMI)以明顯的方式發展,從純粹的觸覺發展到多年來,已經涵蓋了從語音到手勢到視頻以及各種計算機視覺功能的各種輸入方法,從銷售終端到智能家居。下一步將是不僅理解直接命令而且可以推斷意圖的設備。同時,對基於雲的傳統連接設備的安全性和延遲的擔憂日益加劇,這為更多基於邊緣的處理鋪平了道路。
  • 智能汽車的未來戰爭:車內大生態與車載輕應用
    選擇基於Linux開發車機系統,好比在白紙上畫畫,可以最大化地把系統功能整合、界面設計的決定權掌握在自己的手裡,這也是特斯拉和BBA們選擇Linux的根本原因。但是,正因為在白紙上畫畫,Linux系統存在一大硬傷:第三方資源缺失,可適配使用的車載應用十分貧瘠。人們日常使用的 App,基本都不是針對 Linux 系統開發。
  • ...基於NXP i.MX RT1050及Embedded Wizard的高解析度人機界面方案
    基於NXP i.MX RT1050及Embedded Wizard的高解析度人機界面方案結合NXP i.MX RT1050與TARA Embedded Wizard的高解析度人機界面由於近幾年來在智慧型手機使用體驗的推波助瀾下,市場上對於人機界面(HMI)的需求便不斷的增加。
  • 車載作業系統上演「三國殺」:路線背後的車企站隊考
    車載作業系統,在技術層面是整合各類型軟體應用以及適應中央集中式電子電器架構的必要基礎,在經濟層面上也是打造系統生態的基礎出發點。除此之外,擁有獨立自主車載作業系統的車企還可以藉助自家的作業系統實現企業與原子化的每輛汽車和用戶之間的雙向數據交流。
  • ID7車載喜馬拉雅應用上線
    2020年4月8日,網通社從寶馬官方獲悉,BMW互聯駕駛系統中的互聯音樂「CONNECTED MUSIC」在中國進行升級,全新增添寶馬車載喜馬拉雅應用程式,與QQ音樂一起,提供客戶所需的豐富流媒體產品。
  • 適用於Android的最佳辦公應用程式
    其應用程式的界面和交互樣式將立即感到熟悉並且易於掌握。 例如,Word從一個可滾動的小工具欄開始,它是Office功能區的縮小版。這是一個節省空間和允許用戶有一個較大的工作區域(特別是當一個虛擬鍵盤出現並且佔據了屏幕的很大一部分時)。
  • SKYNET天網技術顧問Oswalda博士:《雲作業系統與技術》
    其實上對於作業系統來說,我們並不陌生,我們生活當中的Windows啊,以及android和Linux等等這些作業系統,它其上承載的就是主要包含一些資源調度,比如說像cpu內存以及硬碟資源的一些調度管理的過程,那與此同時呢,它還承載著一些應用的生命周期管理的過程,比如說應用的一些安裝應用的一些維護
  • 汽車行業深度報告:汽車軟體作業系統產業鏈深度解析
    典型代表如大眾 VW.OS、特斯拉 Version、Google車載 Android、華為鴻蒙 OS、AliOS 等,它們已經屬於自主研發的獨立作業系統。3)ROM 型汽車作業系統:基於 Linux 或安卓等基礎型作業系統進行有限的定製化開發,不涉及系統內核更改,一般只修改更新作業系統自帶的應用程式等。
  • 基於Android系統的射擊遊戲App開發與設計
    本文由 查重降重中心 sp8080.com 整理分享摘要:隨著移動網際網路的迅猛發展,手機遊戲已成為移動網際網路應用程式的重要組成部分。本文設計了一個基於Android平臺的射擊遊戲。在開發過程中,設計和實現靜態的遊戲界面,動畫界面,遊戲環境配置,人機戰,減少和補充遊戲血量,升級級別,存儲玩家記錄等功能。
  • 一個類似於iPhonePhotoswap應用程式的Android應用程式
    如果應用程式以空白屏幕開頭,因為沒有默認圖像,請不要擔心,只需按菜單鍵即可開始。Ive開發了一個類似於iPhone Photoswap應用程式的Android應用程式。對於那些不知道的人,Photoswap允許您拍攝照片並將其發送給隨機的人,作為回報,您將獲得隨機的照片。然後,您可以與接收照片的人進行圖片對話。
  • 汽車電子的認識_智能汽車作業系統的作用
    由於駕駛者直接接觸的汽車電子產品絕大部分是車載電子裝置,對底層的汽車電子控制裝置感知度較低,因此本文討論的車載作業系統特指車載電子裝置的作業系統,業內也稱IVI(In-Vehicle Infotainment,車載信息系統)作業系統或HMI(Human Machine Interface,人機互動界面)作業系統。
  • PLC設計的串戶檢測人機互動系統,數據準,實時性好,功能易擴展
    福州大學電氣工程與自動化學院、國網福建省電力有限公司漳州供電公司的研究人員白蔚楠、曾澤宇、遊建章、洪翠,在2020年第1期《電氣技術》雜誌上撰文(論文標題為「基於可編程邏輯控制器的串戶檢測觸控人機互動系統設計」),為用戶串戶檢測裝置設計了一個基於可編程邏輯控制器的觸控式人機互動系統,以觸控屏實現用戶信息輸入、信號啟動及顯示,用可編程邏輯控制器通信協議更便捷地實現可編程邏輯控制器與上位機的數據互傳。
  • Android Studio基礎-選項菜單Java實現實例
    在Android應用程式中菜單是用戶界面中最常見的元素之一,使用非常頻繁。通常Android應用程式中的菜單默認是不可見的,只有當用戶單擊手機上的「Menu」鍵,系統才會顯示該應用關聯的菜單。所以一般的Android系統的手機都要有一個"Menu"鍵。
  • 人機互動專業好就業嗎_人機互動在生活中的應用
    人機互動主要研究人的認知模型和信息處理過程與人的交互行為之間的關係,研究如何依據用戶的任務和活動來進行交互式計算系統的設計、實現和評估。由於計算技術是信息化產品的基礎技術,因此,人機互動的模式往往對於人與產品交互的模式有著決定性的影響。   人機互動專業作為一個多學科交叉的工程應用學科,其畢業生就業主要有以下三大方向。(1)硬體設備開發。
  • 基於BM3803MG與VxWorks的BSP的設計實現
    本文用該款控制器以及工業級乙太網晶片KSZ8851-16mll為某型號研製了系統主控板,該板採用實時作業系統 VxWorks編程,並對主控板的板級支持包(BSP)進行設計,從而實現了基於乙太網的高可靠和實時的數據處理。本文主要介紹主控板乙太網晶片 KSZ8851-16mll的VxWorks驅動設計。