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