通過總結(jié)大大小小多個(gè)Andriod智能硬件開發(fā)項(xiàng)目,記錄了智能硬件產(chǎn)品開發(fā)的全流程、智能硬件開發(fā)所涉及的技術(shù)體系概述的心得,并附上在主板選型、串口通信、屏幕顯示、常用外接設(shè)備上一些品類的特點(diǎn)和差異,分析了我的開發(fā)流程習(xí)慣原因,以供交流。
1.Android智能硬件的定義與應(yīng)用領(lǐng)域
關(guān)于智能硬件的定義,以我理解的角度來看,首先這是一個(gè)不同于移動(dòng)手機(jī)的硬件,它本質(zhì)還是一個(gè)可觸碰的實(shí)質(zhì)物體;其次關(guān)于智能,只要是基于Android系統(tǒng)開發(fā)的硬件就可稱之為智能,因?yàn)橹悄苡布铌P(guān)鍵的特性就是與外部連接通信,也稱之為物聯(lián)網(wǎng),而Android系統(tǒng)自帶優(yōu)秀的外部連接通信體系。
我們最常聽到與見到的智能硬件有手環(huán)、智能音箱、智能家居這些比較成熟的消費(fèi)級(jí)商品,這些智能硬件大部分都是沒有界面的,與我從事的領(lǐng)域有所不同。沒有界面的智能硬件大部分都不是Andriod系統(tǒng),而有觸屏界面的智能硬件我敢說80%以上都是Android系統(tǒng),因?yàn)锳ndroid的交互體系絕對(duì)是最好的。
市面上成熟的Android智能硬件有:手持POS機(jī)、自動(dòng)售貨機(jī)、政務(wù)自助機(jī)、人臉識(shí)別門禁、收銀機(jī)、汽車多媒體、電子班牌、快遞柜、影院取票機(jī)、廣告視頻機(jī)等等。
2.一款智能硬件產(chǎn)品開發(fā)的全流程
導(dǎo)入需求,分析確定需求細(xì)節(jié),討論方案的技術(shù)可行性。
確定項(xiàng)目負(fù)責(zé)人、產(chǎn)品經(jīng)理、硬件工程師、軟件工程師、結(jié)構(gòu)工程師、UI設(shè)計(jì)師。
由需求確定使用哪些外設(shè),對(duì)外設(shè)進(jìn)行選型,需充分考慮性能、質(zhì)量、結(jié)構(gòu)設(shè)計(jì)、價(jià)格、供應(yīng)商支持度等各方面的因素。
優(yōu)先確認(rèn)使用什么Android主板,確認(rèn)主板與外設(shè)選型后告知結(jié)構(gòu)工程師進(jìn)行結(jié)構(gòu)外形設(shè)計(jì)。
硬件工程師負(fù)責(zé)外接設(shè)備的控制板開發(fā)并提供接入?yún)f(xié)議,硬件工程師還須將外設(shè)接入Android主板的線材適配好。
UI設(shè)計(jì)師提供界面給軟件工程師(Android),開始進(jìn)入進(jìn)行軟件開發(fā)階段。
產(chǎn)品樣品建模制作出外殼,打磨、噴漆后進(jìn)行所有元件的組裝。
樣品燒入程序,開始交予測(cè)試。
程序bug修改,穩(wěn)定性測(cè)試。
所有測(cè)試通過后,撰寫用戶文檔與操作手冊(cè)。
一款智能硬件樣品全部制作完畢。
3.智能硬件開發(fā)所涉及的技術(shù)體系概述
Android UI
列表(RecycleView)
彈窗(Dialog)
動(dòng)畫(Animation)
文字與按鈕(TextView)
手勢(shì)(Gesture)
外部通信
串口通信(UART)
Wifi、熱點(diǎn)
GPIO
存儲(chǔ)
TF卡
U盤
FTP
Linux系統(tǒng)
腳本
點(diǎn)亮屏幕
固件升級(jí)
NDK
音視頻播放
設(shè)備通訊協(xié)議加密
接入已有的C庫
人臉識(shí)別
外接設(shè)備
二維碼
攝像頭
紅外感應(yīng)器
喇叭、麥克風(fēng)
觸摸屏
LCD液晶屏
打印機(jī)
NFC模塊
IC類讀卡器
4.關(guān)于主板選型
Android主板的選型一定要放在首位,因?yàn)檫@是整個(gè)產(chǎn)品的控制中心,核心元件,如果不能自己定制主板,那就只能依賴于供應(yīng)商提供方案。現(xiàn)行市面上非常多做安卓工業(yè)主板的,不愁找不到主板,但想要很特殊的定制可能會(huì)比較麻煩,除非你的量很大,否則只能用人家的標(biāo)準(zhǔn)板。依賴供應(yīng)商還有一個(gè)特別麻煩的事情,就是系統(tǒng)功能定制的溝通,這是一個(gè)特別漫長(zhǎng)而痛苦的過程。
4.1 Anroid系統(tǒng)在智能硬件中所必要的功能
結(jié)合多個(gè)項(xiàng)目的經(jīng)驗(yàn),總結(jié)出智能硬件在安卓系統(tǒng)中所基本必要的功能。
4.2 主板CPU芯片的選擇
CPU芯片是一塊主板最核心的元件,對(duì)于智能硬件而言CPU價(jià)格是不能太高的,不然會(huì)導(dǎo)致產(chǎn)品成本過高競(jìng)爭(zhēng)力下降,但CPU性能又不能太差以讓產(chǎn)品毫無競(jìng)爭(zhēng)力可言。從我觀察的情況來看,現(xiàn)在市面上的智能硬件基本是三家芯片廠商占據(jù)了絕大部分市場(chǎng),它們分別是:
全志 AllWinner
飛思卡爾 FreeScale
瑞芯微是我接觸比較多的,在百度搜安卓主板出來的廣告廠商基本都是采用瑞芯微方案的,總體來說瑞芯微方案是最成熟的。
全志的安卓主板給我的感覺就是很便宜但系統(tǒng)都是4.2或4.4,說實(shí)話有點(diǎn)落后時(shí)代,不是5.0系統(tǒng)以上的主板我都不想碰,界面太丑系統(tǒng)還有點(diǎn)卡。
最后關(guān)于飛思卡爾,這是一個(gè)國外廠商,我手上還沒接觸過這個(gè)芯片的板子,很少見搭載這個(gè)芯片的安卓主板,也許在某些特定應(yīng)用場(chǎng)景才會(huì)考慮這個(gè)芯片吧。
下面重點(diǎn)介紹下瑞芯微(下面簡(jiǎn)稱RK芯片)系列4款常見的芯片。
以疫情之前的價(jià)格來說,RK3288工業(yè)主板的價(jià)格大概在350~500 之間,RK3399價(jià)格在500~700之間,RK3188比3288便宜,RK3368介于3288與3399之間。
對(duì)于絕大多數(shù)應(yīng)用場(chǎng)景而言,RK3288絕對(duì)能滿足需求,價(jià)格也比較適中,系統(tǒng)一般是Android5.1不用進(jìn)行運(yùn)行時(shí)權(quán)限適配。RK3399主要用于對(duì)于運(yùn)算能力要求比較高的場(chǎng)景,比如人臉識(shí)別,3399還有一大優(yōu)勢(shì)就是板子面積相對(duì)而言比較小。我目前基本都是采用3288進(jìn)行開發(fā)的,對(duì)于智能硬件而言成本還是首要考慮因素,畢竟制造業(yè)利潤(rùn)低。
下圖是一塊3288的主板示意圖及規(guī)格說明
5.關(guān)于串口通信
串口通信是Android智能硬件開發(fā)所必須具備的能力,市面上類型眾多的外設(shè)基本都是通過串口進(jìn)行數(shù)據(jù)傳輸?shù)模哉f不會(huì)串口通信根本就做不了智能硬件開發(fā)。
5.1 UART定義
通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種串行異步收發(fā)協(xié)議。
UART串口有三種工作方式:?jiǎn)喂ぁ腚p工、全雙工。硬件連接比較簡(jiǎn)單,僅需要3條線,注意連接時(shí)兩個(gè)設(shè)備UART電平,如電平范圍不一致請(qǐng)做電平轉(zhuǎn)換后再連接,可參考此文章。
我們常見的串口通訊設(shè)置的界面如下所示,
主要有下列幾個(gè)參數(shù);Speed(baud) 波特率
Data bits 數(shù)據(jù)位
Stop bits 停止位
Parity 奇偶校驗(yàn)位
Flow Control 流控
我們的設(shè)置基本都是8位數(shù)據(jù)位,1位停止位,無校驗(yàn)無流控,就如上圖所示。對(duì)于程序開發(fā)而言,主要關(guān)注的參數(shù)就是波特率。
另外,需要注意的是比特率、成波特率兩者之間是有區(qū)別的。
波特率表示每秒鐘傳送的碼元符號(hào)的個(gè)數(shù),是衡量數(shù)據(jù)傳送速率的指標(biāo),它用單位時(shí)間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來表示。在信息傳輸通道中,攜帶數(shù)據(jù)信息的信號(hào)單元叫碼元,每秒鐘通過信道傳輸?shù)拇a元數(shù)稱為碼元傳輸速率,簡(jiǎn)稱波特率。
1波特即指每秒傳輸1個(gè)碼元符號(hào)(通過不同的調(diào)制方式,可以在一個(gè)碼元符號(hào)上負(fù)載多個(gè)bit位信息)。1比特每秒是指每秒傳輸1比特(bit)。單位“波特”本身就已經(jīng)是代表每秒的調(diào)制數(shù),以“波特每秒”(Baud per second)為單位是一種常見的錯(cuò)誤。
按照上述的基本設(shè)置,其實(shí)一個(gè)碼元總共傳輸了10個(gè)比特,1個(gè)起始位+1個(gè)停止位+8個(gè)數(shù)據(jù)位,如波特率為9600,那每秒一共傳輸了9600*10 = 96000個(gè)比特,換算成字節(jié)為12000 byte,約合11.72kb。
需要注意的是這12000byte指的是串口實(shí)際一共傳輸?shù)臄?shù)據(jù)位,但對(duì)于我們程序而言,真正能處理的數(shù)據(jù)就是除去起始位與停止位的數(shù)據(jù)位,對(duì)于傳輸8位數(shù)據(jù)位的設(shè)置而言,波特率是多少則傳輸?shù)淖止?jié)就是多少。如9600的波特率表示每秒傳輸9600個(gè)字節(jié),每毫秒9.6字節(jié)。
安卓主板中一個(gè)串口端子的定義如下圖所示
幾乎所有安卓主板上的串口都是這種4pin的形式,這里有一個(gè)特別重要的點(diǎn),就是對(duì)外設(shè)接線時(shí),RX要對(duì)上外設(shè)的TX口,TX則對(duì)應(yīng)RX口,否則是接收不到數(shù)據(jù)傳輸?shù)摹?/p>
在我所接觸的眾多外設(shè)中,安卓的常用串口有三種標(biāo)準(zhǔn)接口。
TTL
UART所指的是硬件接口,是硬件層次的描述。而TTL與RS232、485則指的是數(shù)據(jù)傳輸?shù)碾娖綐?biāo)準(zhǔn),計(jì)算機(jī)的存儲(chǔ)單位是二進(jìn)制位(bit),也就是0和1,而0和1怎么用電壓來表示呢?不同的表示方法于是對(duì)應(yīng)了不同的標(biāo)準(zhǔn),這就是TTL、RS232這些電平標(biāo)準(zhǔn)之間的區(qū)別。
所有CPU芯片的UART數(shù)據(jù)傳輸?shù)碾娖蕉际遣捎肨TL標(biāo)準(zhǔn)的,我們所看到的安卓主板上RS232或485的接口都是要再需要經(jīng)過一次電平轉(zhuǎn)換才能與CPU進(jìn)行通信的。可以這樣說,安卓主板CPU直接引出來的串口管腳都是TTL標(biāo)準(zhǔn)的,如需要其它的接口則要中間再增加一個(gè)電平轉(zhuǎn)換芯片以滿足要求。
5.2 三種UART接口介紹
TTL
TTL(Transistor-Transistor Logic,晶體管-晶體管邏輯),TTL電路的工作電壓是5V,它的輸出可以是高電平(3.6V)或者低電平(0.3V)。為了用這種模擬量的電壓來表示數(shù)字量的邏輯1和邏輯0,TTL電平規(guī)定:
對(duì)于輸出電路:電壓大于等于(≥)2.4V為邏輯1;電壓小于等于(≤)0.4V為邏輯0;
對(duì)于輸入電路:電壓大于等于(≥)2.0V為邏輯1;電壓小于等于(≤)0.8V為邏輯0;
RS232
它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”,該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25個(gè)腳的DB-25連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。
后來IBM的PC機(jī)將RS232簡(jiǎn)化成了DB-9連接器,從而成為事實(shí)標(biāo)準(zhǔn)。而工業(yè)控制的RS-232口一般只使用RXD、TXD、GND三條線。如下圖所示。
采用負(fù)邏輯,規(guī)定邏輯“1”的電平為-5V~-15 V,邏輯“0”的電平為+5 V~+15 V。選用該電氣標(biāo)準(zhǔn)的目的在于提高抗干擾能力,增大通信距離。RS -232的噪聲容限為2V,接收器將能識(shí)別低至+3V的信號(hào)作為邏輯“0”,將高到-3 V的信號(hào)作為邏輯“1”。
全雙工通信,傳輸距離較短,其通訊距離小于15 m,傳輸速率小于20 kb/s。
RS485
RS-485總線標(biāo)準(zhǔn)規(guī)定了總線接口的電氣特性標(biāo)準(zhǔn)即對(duì)于2個(gè)邏輯狀態(tài)的定義:正電平在+2V~+6V之間,表示一個(gè)邏輯狀態(tài);負(fù)電平在-2V~-6V之間,則表示另一個(gè)邏輯狀態(tài);
數(shù)字信號(hào)采用差分傳輸方式,即是A-B兩者的電壓差用以表示邏輯狀態(tài),能夠有效減少噪聲信號(hào)的干擾。
RS-485工業(yè)總線標(biāo)準(zhǔn)能夠有效支持多個(gè)分節(jié)點(diǎn)和通信距離遠(yuǎn),總共可接收32個(gè)設(shè)備,且對(duì)于信息的接收靈敏度較高,均采用屏蔽雙絞線傳輸。采用半雙工(兩線制)最大傳輸距離約1219米,傳輸速度最高達(dá)10Mbps。
6.關(guān)于屏幕顯示
每次一個(gè)新項(xiàng)目的開發(fā),我所做的第一件事就是確定所選定顯示屏的型號(hào)規(guī)格,然后將規(guī)格書發(fā)給主板供應(yīng)商讓其先調(diào)屏參。
調(diào)屏參是很可能會(huì)出現(xiàn)無法點(diǎn)亮屏幕的情況,因?yàn)楝F(xiàn)在市場(chǎng)上有許多不同廠家的屏,不同尺寸,不同的接口,所以說點(diǎn)亮屏幕要預(yù)留一定的時(shí)間,否則拖延項(xiàng)目的進(jìn)度。
Android現(xiàn)在主流的屏幕接口共有四種。HDMI
LVDS
EDP
MIPI
在這四種屏幕接口中HDMI是最高效的,也能輸出像4K這樣的分辨率,無須考慮任何屏參的適配,只要有HDMI接口幾乎所有屏幕都能快速點(diǎn)亮。
HDMI的缺點(diǎn)在于成本比較高,首先需要一個(gè)HDMI轉(zhuǎn)換板,其次需要一根體積比較大的HDMI連接線,這些都會(huì)給結(jié)構(gòu)設(shè)計(jì)帶來相當(dāng)大的阻礙,最后HDMI有個(gè)最大的缺點(diǎn)就是其插拔式的接口,可能會(huì)出現(xiàn)接觸不良的嚴(yán)重后果。
LVDS主要用于大尺寸屏幕的連接顯示,如19寸、21.5寸、50寸等大尺寸液晶。而EDP主要運(yùn)用于筆記本領(lǐng)域的屏幕顯示,MIPI則運(yùn)用于手機(jī)等小屏的顯示。
6.1 HDMI
高清多媒體接口(High Definition Multimedia Interface)是一種全數(shù)字化視頻和聲音發(fā)送接口,具有體積小,傳輸速率高,傳輸帶寬寬,兼容性好,可以同時(shí)發(fā)送未壓縮的音頻及視頻信號(hào)等優(yōu)點(diǎn)。
HDMI規(guī)格可搭配寬帶數(shù)字內(nèi)容保護(hù)(HDCP),以防止具有著作權(quán)的影音內(nèi)容遭到未經(jīng)授權(quán)的復(fù)制。
HDMI支持5Gbps的數(shù)據(jù)傳輸率,最遠(yuǎn)可傳輸30米,足以應(yīng)付一個(gè)1080p的視頻和一個(gè)8聲道的音頻信號(hào)。此外HDMI支持EDID,DDC2B,因此具有HDMI的設(shè)備具有“即插即用”的特點(diǎn),信號(hào)源和顯示設(shè)備之間會(huì)自動(dòng)進(jìn)行“協(xié)商”,自動(dòng)選擇最合適的視頻/音頻格式。
在 HDMI 線纜的19根線中由 4 對(duì)差分傳輸線組成了 TMDS 數(shù)據(jù)傳輸通道和時(shí)鐘通道。這 4個(gè)通道用來傳輸音頻信號(hào)、視頻信號(hào)以及輔助信號(hào)。
使用HDMI接口時(shí)要特別注意使用的環(huán)境是否經(jīng)常抖動(dòng),如常抖動(dòng)的話要對(duì)接頭處進(jìn)行加固處理,因?yàn)镠DMI線一般是直插式的,很容易松動(dòng)造成無信號(hào)輸入。
6.2 LVDS
LVDS Low Voltage Differential Signaling即低壓差分信號(hào)傳輸,是一種滿足當(dāng)今高性能數(shù)據(jù)傳輸應(yīng)用的新型技術(shù)。由于其可使系統(tǒng)供電電壓低至 2V,因此它還能滿足未來應(yīng)用的需要。
LVDS輸出接口利用即低壓差分信號(hào)傳輸。采用其輸出接口,可以使得信號(hào)在差分PCB線或平衡電纜上傳輸,由于采用低壓和低電流驅(qū)動(dòng)方式,因此,實(shí)現(xiàn)了低噪聲和低功耗。LVDS 輸出接口液晶顯示器。
是為克服以TTL電平方式傳輸寬帶高碼率數(shù)據(jù)時(shí)功耗大、EMI電磁干擾大等缺點(diǎn)而研制的一種數(shù)字視頻信號(hào)傳輸方式。工控機(jī)采用LVDS輸出接口,可以使得信號(hào)在差分PCB線或平衡電纜上以幾百M(fèi)bit/s的速率傳輸,因采用低壓和低電流驅(qū)動(dòng)方式,實(shí)現(xiàn)了低噪聲和低功耗。
此類LCD目前在中高端平板和筆記本中廣泛使用,現(xiàn)在行業(yè)出現(xiàn)一種比較新的規(guī)范----eDP,在筆記本行業(yè)將廣泛用于取代LVDS,支持超高分辨率(>1080P)。
LVDS接口只用于傳輸視頻數(shù)據(jù),LVDS接口主要是將RGB TTL信號(hào)按照SPWG/JEIDA格式轉(zhuǎn)換成LVDS信號(hào)進(jìn)行傳輸,LVDS接收器再將串行信號(hào)轉(zhuǎn)換為TTL電平的并行信號(hào),送往液晶屏?xí)r序控制與行列驅(qū)動(dòng)電路。也就是其實(shí)TFT只識(shí)別TTL(RGB)信號(hào)。
6.3 EDP
Embedded DisplayPort.一般采用EDP接口的液晶顯示屏其分辨率更高,高清液晶顯示屏都采用EDP的通信接口,像筆記本電腦一般都采用EDP接口,EDP屏幕都比較薄.
EDP接口是一種基于DisplayPort架構(gòu)和協(xié)議的一種全數(shù)字化接口,可以用較簡(jiǎn)單的連接器以及較少的引腳來傳遞高分辨率信號(hào),且能夠?qū)崿F(xiàn)多數(shù)據(jù)同時(shí)傳輸,所以它的傳輸速率也要遠(yuǎn)高于LVDS。
eDP屏線一般為2組絞線、3組絞線、5組絞線、8組絞。常見的eDP屏線為2組信號(hào)線(絞線)、3組信號(hào)線。
優(yōu)點(diǎn):微封包結(jié)構(gòu),能夠?qū)崿F(xiàn)多數(shù)據(jù)的同時(shí)傳輸。
較大的傳輸速率,4通道(lanes)高達(dá)21.6Gbps
較小的尺寸,寬26.3mm,高1.1mm,利于產(chǎn)品的輕薄化
無需LVDS轉(zhuǎn)換電路,電路簡(jiǎn)潔,簡(jiǎn)化設(shè)計(jì)。
較小的EMI(電磁干擾),并具有強(qiáng)大的版權(quán)保護(hù)功能。
6.4 MIPI
MIPI(Mobile Industry Processor Interface)是2003年由ARM, Nokia, ST ,TI等公司成立的一個(gè)聯(lián)盟,目的是把手機(jī)內(nèi)部的接口如攝像頭、顯示屏接口、射頻/基帶接口等標(biāo)準(zhǔn)化,從而減少手機(jī)設(shè)計(jì)的復(fù)雜程度和增加設(shè)計(jì)靈活性。
MIPI信號(hào)是成對(duì)傳輸?shù)模饕菫榱藴p少干擾,MIPI信號(hào)成對(duì)走線,兩根線從波形看是成反相,所以有外部干擾過來,就會(huì)被抵消很大部分。主要用在平板和手機(jī)上使用。
MIPI接口LCD包括1對(duì)差分時(shí)鐘(CLKP,CLKN),4對(duì)數(shù)據(jù)差分線(D0P,D0N;D1P,D1N;D2P,D2N;D3P,D3N),每一對(duì)之間有GND線,4對(duì)數(shù)據(jù)差分線并不一定要全部使用,很多屏只需要2對(duì)就可以了;RESET(復(fù)位腳),
STBYB(高電平有效),
VGL,VGH(像素點(diǎn)上開關(guān)管的開啟關(guān)閉電壓,加在開關(guān)管的柵極上,VGH 高電平打
開給像素點(diǎn)電容充電, VGL 負(fù)電壓 關(guān)閉開關(guān)管),
VCOM( 液晶像素點(diǎn)的存儲(chǔ)電容共用電極),
VLED-(背光負(fù)極),VLED+(背光正極),
電源有1.8V和3.3V。
MIPI DSI不僅能夠傳輸視頻數(shù)據(jù),還能傳輸控制指令;MIPI DSI接口則按照特定的握手順序和指令規(guī)則傳輸屏幕控制所需的視頻數(shù)據(jù)和控制數(shù)據(jù)。
審核編輯:湯梓紅
-
Android
+關(guān)注
關(guān)注
12文章
3961瀏覽量
129425 -
智能硬件
+關(guān)注
關(guān)注
205文章
2377瀏覽量
108828
原文標(biāo)題:總結(jié):Android智能硬件開發(fā)心得
文章出處:【微信號(hào):IoTMaker,微信公眾號(hào):機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
光耦的應(yīng)用領(lǐng)域
什么是智能硬件?
1206封裝貼片電容應(yīng)用領(lǐng)域
UWB定位系統(tǒng)的應(yīng)用領(lǐng)域
人工智能的應(yīng)用領(lǐng)域有哪些?
燈帶LED電源芯片SM16716的管腳定義及應(yīng)用領(lǐng)域
Linux技術(shù)的應(yīng)用領(lǐng)域
常見的嵌入式系統(tǒng)應(yīng)用領(lǐng)域
智能穿戴設(shè)備的定義_智能穿戴設(shè)備的應(yīng)用領(lǐng)域
Android硬件通訊之HIDL介紹
開發(fā)心得(1):我眼中的Andriod智能硬件及其開發(fā)流程

評(píng)論