日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android智能硬件开发心得总结(一)

發布時間:2023/12/10 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android智能硬件开发心得总结(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:轉向Android智能硬件開發近一年了,一路過來也經歷過幾個大大小小的項目,從對Android智能硬件一無所知到現在算是略有小成,期間踩了很多坑,也接觸到了許多非Android方面的知識,現用文章的方式將之記錄下來,與大家分享。

1.Android智能硬件的定義與應用領域

關于智能硬件的定義,以我理解的角度來看,首先這是一個不同于移動手機的硬件,它本質還是一個可觸碰的實質物體;其次關于智能,只要是基于Android系統開發的硬件就可稱之為智能,因為智能硬件最關鍵的特性就是與外部連接通信,也稱之為物聯網,而Android系統自帶優秀的外部連接通信體系。

我們最常聽到與見到的智能硬件有手環、智能音箱、智能家居這些比較成熟的消費級商品,這些智能硬件大部分都是沒有界面的,與我從事的領域有所不同。沒有界面的智能硬件大部分都不是Andriod系統,而有觸屏界面的智能硬件我敢說80%以上都是Android系統,因為Android的交互體系絕對是最好的。

市面上成熟的Android智能硬件有:手持POS機、自動售貨機、政務自助機、人臉識別門禁、收銀機、汽車多媒體、電子班牌、快遞柜、影院取票機、廣告視頻機等等。

2.一款智能硬件產品開發的全流程

  • 導入需求,分析確定需求細節,討論方案的技術可行性。
  • 確定項目負責人、產品經理、硬件工程師、軟件工程師、結構工程師、UI設計師。
  • 由需求確定使用哪些外設,對外設進行選型,需充分考慮性能、質量、結構設計、價格、供應商支持度等各方面的因素。
  • 優先確認使用什么Android主板,確認主板與外設選型后告知結構工程師進行結構外形設計。
  • 硬件工程師負責外接設備的控制板開發并提供接入協議,硬件工程師還須將外設接入Android主板的線材適配好。
  • UI設計師提供界面給軟件工程師(Android),開始進入進行軟件開發階段。
  • 產品樣品建模制作出外殼,打磨、噴漆后進行所有元件的組裝。
  • 樣品燒入程序,開始交予測試。
  • 程序bug修改,穩定性測試。
  • 所有測試通過后,撰寫用戶文檔與操作手冊。
  • 一款智能硬件樣品全部制作完畢。
  • 3.智能硬件開發所涉及的技術體系概述

    • Android UI
      • 列表(RecycleView)
      • 彈窗(Dialog)
      • 動畫(Animation)
      • 文字與按鈕(TextView)
      • 手勢(Gesture)
    • 外部通信
      • 串口通信(UART)
      • 以太網
      • Wifi、熱點
      • 4G
      • 藍牙
      • USB
      • NFC
      • I2C
      • GPIO
    • 存儲
      • TF卡
      • U盤
      • FTP
    • Linux系統
      • 腳本
      • 點亮屏幕
      • 固件升級
    • NDK
      • 音視頻播放
      • 設備通訊協議加密
      • 接入已有的C庫
      • 語音識別
      • 人臉識別
    • 外接設備
      • 二維碼
      • 攝像頭
      • 紅外感應器
      • 喇叭、麥克風
      • 觸摸屏
      • LCD液晶屏
      • 打印機
      • NFC模塊
      • IC類讀卡器

    4.關于主板選型

    Android主板的選型一定要放在首位,因為這是整個產品的控制中心,核心元件,如果不能自己定制主板,那就只能依賴于供應商提供方案。現行市面上非常多做安卓工業主板的,不愁找不到主板,但想要很特殊的定制可能會比較麻煩,除非你的量很大,否則只能用人家的標準板。依賴供應商還有一個特別麻煩的事情,就是系統功能定制的溝通,這是一個特別漫長而痛苦的過程。

    4.1 Anroid系統在智能硬件中所必要的功能

    結合多個項目的經驗,總結出智能硬件在安卓系統中所基本必要的功能。

    序號功能說明
    1開機自啟智能硬件一般只運行一個應用,且開機就要自動打開
    2保證應用永遠在前臺運行讓用戶永遠不會看到除了應用之外的其它安卓界面
    3有接口設置系統時間有些局域網場景無法連接外網,需要同步局域網服務器時間
    4定時開關機(帶RTC電池)為了讓系統更好運行,可能需要每隔幾天重啟一次
    5靜默安裝應用,完成后直接拉起應用更新安裝應用過程必須是無感的
    6系統固件更新接口將新的系統固件放入系統后能用有方法更新
    7支持U盤、TF卡且有路徑檢測對于非聯網管理的產品必須要能檢測到外部存儲插入
    8設置靜態以太網IP接口對于某些依賴于IP地址進行管理的產品必須要能設置IP
    9開啟/關閉背光電源接口有些場景可能要求節能環保,關背光很必要
    10讀寫IO口接口IO口是控制外設開關的關鍵功能
    11設置屏幕顯示方向橫豎屏根據項目會有不同要求

    4.2 主板CPU芯片的選擇

    CPU芯片是一塊主板最核心的元件,對于智能硬件而言CPU價格是不能太高的,不然會導致產品成本過高競爭力下降,但CPU性能又不能太差以讓產品毫無競爭力可言。從我觀察的情況來看,現在市面上的智能硬件基本是三家芯片廠商占據了絕大部分市場,它們分別是:

    • 瑞芯微 Rockchip,簡稱RK
    • 全志 AllWinner
    • 飛思卡爾 FreeScale

    瑞芯微是我接觸比較多的,在百度搜安卓主板出來的廣告廠商基本都是采用瑞芯微方案的,總體來說瑞芯微方案是最成熟的。

    全志的安卓主板給我的感覺就是很便宜但系統都是4.2或4.4,說實話有點落后時代,不是5.0系統以上的主板我都不想碰,界面太丑系統還有點卡。

    最后關于飛思卡爾,這是一個國外廠商,我手上還沒接觸過這個芯片的板子,很少見搭載這個芯片的安卓主板,也許在某些特定應用場景才會考慮這個芯片吧。

    下面重點介紹下瑞芯微(下面簡稱RK芯片)系列4款常見的芯片。

    芯片定位特性
    RK3188低端四核Cortex-A9(32位),頻率最高1.6GHz,四核Mali-400MP4 GPU,支持OpenGL ES1.1/2.0,1080P視頻編解碼 (H.264)
    RK3288中端四核Cortex-A17(32位),主頻最高達1.8GHz,Mali-T764 GPU,支持OpenGL ES 1.1/2.0/3.1, OpenCL, DirectX9.3,1080P視頻編解碼 (H.264/265)
    RK3368中低端八核64位Cortex-A53,主頻最高達1.5GHz,PowerVR G6110 GPU,支持 OpenGL ES 1.1/2.0/3.1,OpenCL,DirectX9.3,1080P視頻編解碼 (H.264/265)
    RK3399高端雙Cortex-A72+四Cortex-A53大小核CPU結構,主頻最高達1.8GHz,Mali-T864 GPU,支持OpenGL ES1.1/2.0/3.0/3.1,OpenVG1.1,OpenCL,DX11,1080P視頻編解碼

    目前RK3288工業主板的價格大概在350~500 之間,RK3399價格在500~700之間,RK3188比3288便宜,RK3368介于3288與3399之間。

    對于絕大多數應用場景而言,RK3288絕對能滿足需求,價格也比較適中,系統一般是Android5.1不用進行運行時權限適配。RK3399主要用于對于運算能力要求比較高的場景,比如人臉識別,3399還有一大優勢就是板子面積相對而言比較小。我目前基本都是采用3288進行開發的,對于智能硬件而言成本還是首要考慮因素,畢竟制造業利潤低,苦笑~

    下圖是一塊3288的主板示意圖及規格說明

    5.關于串口通信

    串口通信是Android智能硬件開發所必須具備的能力,市面上類型眾多的外設基本都是通過串口進行數據傳輸的,所以說不會串口通信根本就做不了智能硬件開發。
    首先來看一張RK3288的架構圖,在ConnectActivity那一個模塊可以發現UART*5的字樣,這就表示3288有5個串口可用,其中串口2一般是調試口不開放使用。

    5.1 UART定義

    通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種串行異步收發協議。

    UART串口有三種工作方式:單工、半雙工、全雙工。硬件連接比較簡單,僅需要3條線,注意連接時兩個設備UART電平,如電平范圍不一致請做電平轉換后再連接,可參考此文章。

    我們常見的串口通訊設置的界面如下所示,

    主要有下列幾個參數;

    • Speed(baud) 波特率
    • Data bits 數據位
    • Stop bits 停止位
    • Parity 奇偶校驗位
    • Flow Control 流控

    我們的設置基本都是8位數據位,1位停止位,無校驗無流控,就如上圖所示。對于程序開發而言,主要關注的參數就是波特率。

    上述的那篇參考文章博主關于波特率是有點誤解的,他將比特率理解成波特率,其實兩者是有區別的。

    波特率表示每秒鐘傳送的碼元符號的個數,是衡量數據傳送速率的指標,它用單位時間內載波調制狀態改變的次數來表示。在信息傳輸通道中,攜帶數據信息的信號單元叫碼元,每秒鐘通過信道傳輸的碼元數稱為碼元傳輸速率,簡稱波特率。

    1波特即指每秒傳輸1個碼元符號(通過不同的調制方式,可以在一個碼元符號上負載多個bit位信息),1比特每秒是指每秒傳輸1比特(bit)。單位“波特”本身就已經是代表每秒的調制數,以“波特每秒”(Baud per second)為單位是一種常見的錯誤。

    按照上述的基本設置,其實一個碼元總共傳輸了10個比特,1個起始位+1個停止位+8個數據位,如波特率為9600,那每秒一共傳輸了9600*10 = 96000個比特,換算成字節為12000 byte,約合11.72kb。

    需要注意的是這12000byte指的是串口實際一共傳輸的數據位,但對于我們程序而言,真正能處理的數據就是除去起始位與停止位的數據位,對于傳輸8位數據位的設置而言,波特率是多少則傳輸的字節就是多少。如9600的波特率表示每秒傳輸9600個字節,每毫秒9.6字節。

    安卓主板中一個串口端子的定義如下圖所示

    幾乎所有安卓主板上的串口都是這種4pin的形式,這里有一個特別重要的點,就是對外設接線時,RX要對上外設的TX口,TX則對應RX口,否則是接收不到數據傳輸的。

    在我所接觸的眾多外設中,安卓的常用串口有三種標準接口。

    • RS232
    • RS485
    • TTL

    UART所指的是硬件接口,是硬件層次的描述。而TTL與RS232、485則指的是數據傳輸的電平標準,計算機的存儲單位是二進制位(bit),也就是0和1,而0和1怎么用電壓來表示呢?不同的表示方法于是對應了不同的標準,這就是TTL、RS232這些電平標準之間的區別。

    所有CPU芯片的UART數據傳輸的電平都是采用TTL標準的,我們所看到的安卓主板上RS232或485的接口都是要再需要經過一次電平轉換才能與CPU進行通信的。可以這樣說,安卓主板CPU直接引出來的串口管腳都是TTL標準的,如需要其它的接口則要中間再增加一個電平轉換芯片以滿足要求。

    參考文章:
    https://www.jianshu.com/p/f1bfc7f6059b
    https://blog.csdn.net/zhuyongxin_6688/article/details/78001767

    5.2 三種UART接口介紹

    TTL

    TTL(Transistor-Transistor Logic,晶體管-晶體管邏輯),TTL電路的工作電壓是5V,它的輸出可以是高電平(3.6V)或者低電平(0.3V)。為了用這種模擬量的電壓來表示數字量的邏輯1和邏輯0,TTL電平規定:

    • 對于輸出電路:電壓大于等于(≥)2.4V為邏輯1;電壓小于等于(≤)0.4V為邏輯0;
    • 對于輸入電路:電壓大于等于(≥)2.0V為邏輯1;電壓小于等于(≤)0.8V為邏輯0;

    參考:https://blog.csdn.net/wofreeo/article/details/82389002

    RS232

    它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”,該標準規定采用一個25個腳的DB-25連接器,對連接器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定。

    后來IBM的PC機將RS232簡化成了DB-9連接器,從而成為事實標準。而工業控制的RS-232口一般只使用RXD、TXD、GND三條線。如下圖所示。

    采用負邏輯,規定邏輯“1”的電平為-5V~-15 V,邏輯“0”的電平為+5 V~+15 V。選用該電氣標準的目的在于提高抗干擾能力,增大通信距離。RS -232的噪聲容限為2V,接收器將能識別低至+3V的信號作為邏輯“0”,將高到-3 V的信號作為邏輯“1”。

    全雙工通信,傳輸距離較短,其通訊距離小于15 m,傳輸速率小于20 kb/s。

    RS485

    RS-485總線標準規定了總線接口的電氣特性標準即對于2個邏輯狀態的定義:正電平在+2V~+6V之間,表示一個邏輯狀態;負電平在-2V~-6V之間,則表示另一個邏輯狀態;

    數字信號采用差分傳輸方式,即是A-B兩者的電壓差用以表示邏輯狀態,能夠有效減少噪聲信號的干擾。

    RS-485工業總線標準能夠有效支持多個分節點和通信距離遠,總共可接收32個設備,且對于信息的接收靈敏度較高,均采用屏蔽雙絞線傳輸。采用半雙工(兩線制)最大傳輸距離約1219米,傳輸速度最高達10Mbps。

    總結

    以上是生活随笔為你收集整理的Android智能硬件开发心得总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。