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

2020-12-17 電子發燒友

基於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閱讀更多精彩內容

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

相關焦點

  • 嵌入式人機互動界面研究與實現
    需要特殊指出的是蘋果公司IOS系統屬於封閉系統,開發者僅能針對應用程式界面進行開發,無法修改系統界面。目前,嵌入式人機互動界面開發可以選擇作業系統主要分為WinCE和Linux兩大陣營,隨著2012年底微軟公司宣布Wince停止更新,越來越多的開發人員在選擇作業系統時轉而選擇Linux以及Linux衍生出的Android等作業系統。
  • 多核處理器下智能車載平臺的設計與實現
    傳統的車用嵌入式實時作業系統主要面向控制領域,對圖形界面、人機互動等的支持較差,而電子產品中使用的主流複雜嵌入式作業系統如WindowsCE、Android等不能夠滿足車用控制系統實時性、準確性、穩定性的性能要求。  高性能的多核處理器為大計算量的應用提供了硬體基礎,提高了資源的利用率[2]。
  • 人機界面HMI的8大知識點匯總
    一、HMI簡介   HMI是HumanMachineInterface的縮寫,「人機接口」,也叫人機界面。人機界面(又稱用戶界面或使用者界面)是系統和用戶之間進行交互和信息交換的媒介,它實現信息的內部形式與人類可以接受形式之間的轉換。凡參與人機信息交流的領域都存在著人機界面。
  • 人機界面設計原則及設計思想
    人機界面(HumanComputerInterface,簡稱HCI)也可以稱為用戶界面或使用者界面,它是系統和用戶之間進行交互和信息交換的媒介。利用人機界面可以實現信息的內部形式與人類可以接受形式之間的轉換(伺服控制系統)。在實際生活中,凡參與人機信息交流的領域都存在著人機界面。那麼什麼是人機界面設計呢,人機界面設計原則有哪些呢?
  • 《車機大講堂》 車機作業系統介紹分析
    ,如今已經發展到WinCE 6.0版本,支持.EXE程序安裝,支持硬體升級。3基於QNX的前裝車機系統基於QNX的前裝車機系統  QNX是黑莓旗下的一款嵌入式系統,它是一種商用的類Unix實時作業系統,目標市場主要是嵌入式系統
  • 車載信息娛樂系統、車載多媒體的16個經典設計案例
    基於S1473X的RDS功能設計及其在車載多媒體中的實現儘管國內除了臺灣香港之外很少有帶有RDS功能的電臺,但這項技術在國外發展得卻相當成熟,而且需求也在不斷的猛增,本文所介紹的模塊正是基於這方面的應用,為車載音響系統提供調頻接收和RDS信息服務,下面主要介紹調頻模塊的設計及音頻處理和RDS數據的處理。
  • 車載HMI,下一個UX設計熱點?
    人機界面(又稱用戶界面或使用者界面)是系統和用戶之間進行交互和信息交換的媒介, 它實現信息的內部形式與人類可以接受形式之間的轉換。凡參與人機信息交流的領域都存在著人機界面。HMI分類1.全面接入汽車例如Tesla X,硬體、軟體和人機界面都是車廠整合。
  • 基於PJSIP協議棧和Android的VoIP系統設計方案介紹【詳解】
    本文提出一種基於PJSIP協議棧的解決方案,通過Android本地開發工具(NDK),實現一個高效、穩定且功能強大的VoIP系統,具有較高的參考和實用價值。  1 VoIP設計方案  1.1 設計目標  本方案所設計的系統包含以下功能:首先,完成用戶終端(如手機)中語音數據的採集與編碼,並通過RTP(實時傳輸協議)/RTCP(RTP傳輸控制協議)進行傳輸和控制;其次,完成會話的控制,包括會話的註冊、發起、維護與結束、註銷等;再次,作為一個應用程式,必須實現一個良好的界面,與用戶交互;最後,作為一個開放系統,需具有良好的可擴展性
  • 嵌入式機車車輛車載播放系統軟體設計與實現
    Qt應用程式接口與工具兼容於所有支持平臺,讓開發員們掌握一個應用程式接口便可執行與平臺非相關的應用開發與配置。Qt Creator包含了一套用於創建和測試基於Qt應用程式的高效工具,包括:一個高級的C++代碼編輯器、上下文感知幫助系統、可視化調試器、原始碼管理、項目和構建管理工具。
  • 基於S3C44BOX處理器和Linux作業系統實現物流PDA無線終端的設計
    基於S3C44BOX處理器和Linux作業系統實現物流PDA無線終端的設計 趙國強;張鵬 發表於 2020-12-23 10:20:56 科學技術的進步帶來了物流業的巨大變化
  • iVokaOS想做最好的車載作業系統,靠譜嗎?
    車雲網2015年1月22日報導 博泰在今年CES上帶來的一款全新的基於安卓系統專門針對車機深度開發而來的iVokaOS車載作業系統,可以說兼具了手機與車機作業系統的優點於一身。與其說是車載作業系統,iVokaOS更像是智慧型手機/平板電腦的界面,只不過圖標尺寸和排布為了行車環境而做了額外的調整——首先是整體採用了時下流行的彩色扁平化設計,圖標更大更明顯,居中的語音操作開關佔據了屏幕最顯著的位置。
  • 基於FPGA的GPS和GSM雙重車載定位系統設計
    基於FPGA的GPS和GSM雙重車載定位系統設計 秩名 發表於 2011-10-24 15:51:13   目前在車輛GPS導航系統中,主要是直接利用無差分、無SA
  • 組態軟體人機界面設計六大步驟_行業動態_人機界面資訊_HMI人機...
    月16日消息,中國觸控螢幕網訊,組態軟體人機界面設計的六大步驟    本文來自:http://www.51touch.com/hmi/news/dynamic/201202/16-13959.html1.界面風格的設計    控制臺人機界面選用非標準Windows風格CONTROL ENGINEERING China版權所有,以實現用戶個性化的要求。
  • Android應用與iOS應用之間的設計差異對比
    導航模式的差異在界面之間切換是移動應用中的常見操作。考慮ios和Android原生應用控制項規範的差異,對於導航模式的設計很關鍵。Android設備底部有一個全局導航欄, 使用導航欄中的後退按鈕是返回上一個界面或步驟的簡便方法,它適用於所有Android應用。
  • 電能質量監測系統的設計實現和車載應用
    萬用表、電流表、示波器等可在一定程度滿足應用需求,但均有其使用限制,例如萬用表和電流表只能實現部分電氣參數的實時測量,無法進行記錄;示波器由於輸入端為共地接口,難以滿足同時測試多路交流電壓的要求。專業廠商的專業電能質量記錄儀可滿足電能質量檢測需求,但價格高昂,難以滿足特定應用要求或定製化需求,例如車載運行記錄等。
  • 基於Cortex M3的音頻播放器的設計
    改進了市場中流行的MP3由於播放文件格式單一、人機界面的單調的缺陷。1 系統總體設計系統總體設計如圖1所示,以TI公司的微處理器LM3S9B96為控制核心,通過讀取SD卡*.mp3、*.wma、*.wav等格式的音頻文件,然後通過音頻解碼晶片VS1003實現解碼,最後通過外部音頻功放完成放大,推動揚聲器工作。LCD觸控螢幕主要完成所播放歌曲名稱的顯示和人機互動功能。
  • ID7車載喜馬拉雅應用上線
    2020年4月8日,網通社從寶馬官方獲悉,BMW互聯駕駛系統中的互聯音樂「CONNECTED MUSIC」在中國進行升級,全新增添寶馬車載喜馬拉雅應用程式,與QQ音樂一起,提供客戶所需的豐富流媒體產品
  • 「學PLC必備常識」,熟悉人機界面技術(HMI),值得收藏
    ,實現人與機器信息交互的數字設備,由硬體和軟體兩部分組成。鑑於這種需求,以後人機界面的改變,將在形狀上、觀念上、應用場合等方面都有所改變,從而帶來工控機核心技術的一次次變革。總體來講,人機界面的未來發展趨勢是六個現代化:平臺嵌入化、品牌民族化、設備智能化、界面時尚化、通訊網絡化和節能環保化。
  • SKYNET天網技術顧問Oswalda博士:《雲作業系統與技術》
    其實上對於作業系統來說,我們並不陌生,我們生活當中的Windows啊,以及android和Linux等等這些作業系統,它其上承載的就是主要包含一些資源調度,比如說像cpu內存以及硬碟資源的一些調度管理的過程,那與此同時呢,它還承載著一些應用的生命周期管理的過程,比如說應用的一些安裝應用的一些維護
  • 基於Android平臺的數獨遊戲的設計與實現-開題報告
    因此本畢業設計擬實現一個基於Android平臺的數獨遊戲。(二)選題研究現狀在當今時代,隨著 Android技術的發展和手機的智能化。人們的工作節奏比較快,所以手機遊戲在我們的日常生活中起著越來越重要的作用。目前,國內外的許多數獨遊戲功能還很不完善,並且存在很多問題。