0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-11-09 09:10 ? 次閱讀

隨著科技的發(fā)展, 嵌入式及移動(dòng)互聯(lián)網(wǎng)的應(yīng)用越來(lái)越廣泛,二者以其自身的優(yōu)勢(shì)在各自領(lǐng)域都占有一席之地。目前基于Android操作系統(tǒng)手機(jī)進(jìn)行移動(dòng)應(yīng)用開(kāi)發(fā)非?;馃?,Android以其源代碼開(kāi)放,硬件選擇豐富,無(wú)縫結(jié)合google 等特點(diǎn),自發(fā)布以來(lái) Android 立刻受到了業(yè)界的廣泛關(guān)注。而嵌入式ARM7 微處理器LPC2142具有較高的集成度和高性價(jià)比, 很適合于數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)。因此,了解Android平臺(tái)的組成、系統(tǒng)架構(gòu)API和應(yīng)用程序框架,并掌握該平臺(tái)移動(dòng)應(yīng)用的開(kāi)發(fā)方法將為從事移動(dòng)互聯(lián)網(wǎng)開(kāi)發(fā)的企業(yè)和個(gè)人帶來(lái)非常廣闊的前景。

Google 對(duì)Android平臺(tái)的SDK更新很快,目前已發(fā)布的平板Android 3.1(API level 12)及以上版本實(shí)現(xiàn)了對(duì)USB 外設(shè)模式和主機(jī)模式的支持,并遵循USB2. 0 通訊協(xié)議。本文結(jié)合兩者的突出優(yōu)點(diǎn)設(shè)計(jì)了一種新型數(shù)據(jù)采集系統(tǒng),以下將詳細(xì)闡述Android 3. 1平臺(tái)下的USB 應(yīng)用程序開(kāi)發(fā)的完整過(guò)程,以及與LPC2142之間的USB 通信功能。

1 Android USB應(yīng)用程序開(kāi)發(fā)

1 . 1 Android 開(kāi)發(fā)框架

Android系統(tǒng)架構(gòu)由5部分組成,分別是:Linux Kernel 、Android Runtime、Libraries 、Application Frame-work、Applications。

Android開(kāi)發(fā)主要有三種類(lèi)型( 如圖1 所示) :

移植開(kāi)發(fā)和電話系統(tǒng);

Android應(yīng)用程序開(kāi)發(fā);

Android系統(tǒng)開(kāi)發(fā);

本文中的Android應(yīng)用程序的開(kāi)發(fā)是在Android系統(tǒng)第三個(gè)層次(Java 框架) 和第四個(gè)層次(Java 應(yīng)用)之間的接口之上開(kāi)發(fā)出來(lái)的。

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖1 Android開(kāi)發(fā)詳解

1 . 2 Android USB 接口

Android支持各種USB 外圍設(shè)備,通過(guò)兩種模式來(lái)支持Android USB外設(shè)( 實(shí)現(xiàn)了Android外設(shè)協(xié)議的硬件) :USB 外設(shè)模式和USB 主機(jī)模式。Android將在新的平板電腦版Honeycomb 3 . 1 和智能手機(jī)版Gingerbread 2. 3 .4 中首次支持USB 外設(shè)模式,該支持包括一種新的Open Accessory API,含有谷歌提供的一個(gè)USB 支持庫(kù)。而在Android3 . 1 及以上版本才支持主機(jī)模式。Android從機(jī)設(shè)備只能和Android主機(jī)設(shè)備連接,而主機(jī)模式可以連接其他USB 設(shè)備,故本設(shè)計(jì)采用Android3 . 1主機(jī)模式連接LPC2142USB 接口。當(dāng)Android設(shè)備處于主機(jī)模式時(shí),它扮演USB主機(jī)角色并為總線供電。如圖2 所示。

Android3 .1(API 12)更新的API為Android開(kāi)發(fā)者提供了應(yīng)用程序開(kāi)發(fā)直接可用的USB A PI ,這個(gè)USB類(lèi)是在android.Hardware. usb 包下,具體介紹如下:

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖2 USB 主機(jī)模式

UsbAccessory 本類(lèi)是針對(duì)Open Accessory API設(shè)計(jì)的。UsbConstants作為USB 常量定義,在Linux內(nèi)核文件linux/usb/ch9 . h中。UsbDevice獲取USB設(shè)備的信息,比如說(shuō)類(lèi)型、制造商等等。

UsbDeviceConnection 這個(gè)是USB 設(shè)備傳輸控制的核心。UsbEndpoint 獲取一個(gè)USB 終端信息。UsbInt erface USB 底層接口,獲取一些信息底層信息,比如說(shuō)通訊協(xié)議,等等。UsbManager USB管理類(lèi),它提供了識(shí)別和使用的USB 設(shè)備和USB 配件通訊方法。應(yīng)用程序可以獲取一個(gè)UsbManager實(shí)例,然后用于連接的設(shè)備或配件清單查詢,管理、通信。UsbRequest 核心的USB請(qǐng)求處理類(lèi),支持讀寫(xiě)操作,以字節(jié)數(shù)組方式處理一個(gè) UsbEndpoint,

Android12.3提示這個(gè)類(lèi)類(lèi)似WinCE串口通訊的CreateFile部分,可以進(jìn)行數(shù)據(jù)流的讀寫(xiě)。

1.3 Android 應(yīng)用程序組件

Android應(yīng)用程序由松散耦合的組件組成。各個(gè)應(yīng)用是相互獨(dú)立的,并運(yùn)行在自己的進(jìn)程當(dāng)中,要進(jìn)行Android的移動(dòng)應(yīng)用程序的開(kāi)發(fā),開(kāi)發(fā)人員需要熟悉以下幾個(gè)基本組件:

Activity(活動(dòng)) 應(yīng)用程序中每個(gè)屏幕都是Activity類(lèi)的擴(kuò)展,活動(dòng)使用視圖來(lái)形成顯示信息和響應(yīng)用戶動(dòng)作的圖形界面。Broadcast Receiver(廣播接收器) 通過(guò)創(chuàng)建和注冊(cè)廣播接收器,應(yīng)用程序可以監(jiān)聽(tīng)到那些匹配特定的過(guò)濾標(biāo)準(zhǔn)的廣播。Intent( 意圖) 應(yīng)用程序間傳遞消息的框架。View 是Android中圖形用戶界面的基類(lèi),提供可視化界面的展示。

1 . 4 Android 應(yīng)用程序設(shè)計(jì)

Android應(yīng)用程序開(kāi)發(fā)是由Java語(yǔ)言實(shí)現(xiàn)的,具體是由Google為開(kāi)發(fā)者提供的一些類(lèi)和接口組成。本設(shè)計(jì)主要用到USB 類(lèi)、數(shù)據(jù)存儲(chǔ)SQLiteDatabase類(lèi)、視圖顯示SurfaceView 類(lèi)以及一些Android 小組件類(lèi)等。程序設(shè)計(jì)框架如圖3。

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖3 Android 程序框架

該設(shè)計(jì)共創(chuàng)建五個(gè)Activity來(lái)實(shí)現(xiàn)人機(jī)交互界面,使用戶操作起來(lái)方便快捷。MainMenuActivity 是主界面,由這一界面可以進(jìn)入以下三個(gè)界面:USBconnect Activity是USB 連接界面,在這個(gè)類(lèi)里實(shí)現(xiàn)設(shè)置要連接的USB 的端口參數(shù),查找并發(fā)現(xiàn)USB 設(shè)備,按條件枚舉USB 設(shè)備,得到連接設(shè)備的權(quán)限,連接USB設(shè)備,終止已連接的USB 設(shè)備等功能,如USB 設(shè)備連接成功則進(jìn)入下一界面;USBMonitorActivity 是接收USB 數(shù)據(jù)的界面,USB 連接成功后,開(kāi)始接收數(shù)據(jù),并把已接收的數(shù)據(jù)以文件形式存入 SD 卡中;FileListActivity 是顯示已存入SD卡所有文件的列表界面,單擊文件進(jìn)入顯示波形界面。除了Acti vity ,該程序還注冊(cè)了BroadcastReceiver( 廣播消息) 來(lái)接收系統(tǒng)USB 連接消息的通知。同時(shí)各個(gè)Activity之間的通信是由Intent 實(shí)現(xiàn)的,界面的一些按鈕、布局等是由View實(shí)現(xiàn)的。

2 LPC2142 前端采集平臺(tái)設(shè)計(jì)

本設(shè)計(jì)前端采用ARM7處理器LPC2142作為硬件開(kāi)發(fā)平臺(tái),LPC2142是PHILIPS公司生產(chǎn)的基于支持仿真和嵌入式跟蹤的32位ARM7TDMI-S內(nèi)核的CPU ,帶有64kB的高速Flash存儲(chǔ)器和16kB 的RAM,最高工作頻率能夠高達(dá)60M Hz。同時(shí)集成了A/D 、定時(shí)器、串口等資源, 與LPC2132 相比最突出的特點(diǎn)就是內(nèi)置了USB2.0 Device( 全速) 控制器。該芯片內(nèi)部資源比較豐富, 特別適用于工業(yè)控制等嵌人式系統(tǒng)。該設(shè)計(jì)總體框圖如圖4 所示。

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖4 系統(tǒng)總體框架

2 . 1 A/D 采集接口

LPC2142 包含2個(gè)模-數(shù)轉(zhuǎn)換器,提供6/14 路模擬輸入,每個(gè)通道的轉(zhuǎn)換時(shí)間低至2.44vs 。具體特性如下:

10位逐次逼近模數(shù)轉(zhuǎn)換器6 或8 個(gè)管腳復(fù)用為輸入腳測(cè)量范圍:0~3 . 3V單路或多路輸入的突發(fā)轉(zhuǎn)換模式可選擇由輸入跳變或定時(shí)器匹配信號(hào)觸發(fā)轉(zhuǎn)換2個(gè)轉(zhuǎn)換器全部啟動(dòng)命令A(yù)/D 轉(zhuǎn)換器的基本時(shí)鐘由VPB 時(shí)鐘提供,每個(gè)轉(zhuǎn)換器包含一個(gè)可編程分頻器,可將時(shí)鐘調(diào)整至逐步逼近轉(zhuǎn)換所需的4 . 5MHz 。

2 . 2 LPC2142與USB 模塊接口

LPC2142 微控制器內(nèi)部帶有一個(gè)USB 設(shè)備控制器,該控制器支持32個(gè)固定配置的物理端點(diǎn),并完全兼容USB2. 0 全速規(guī)范。該控制器嵌于CPU 芯片內(nèi)部,這樣的集成方式不僅使 USB 設(shè)備控制器與 CPU 之間的數(shù)據(jù)交換可以穩(wěn)定地達(dá)到很高的速度,而且提高了芯片的性價(jià)比。USB 接口電路如圖 5. LPC2142 的P0.27和P0.26 引腳的第二功能控制 USB 數(shù)據(jù)的傳輸。Android USB 主機(jī)與LPC2142 USB設(shè)備之間的通信完全遵循USB2. 0 全速規(guī)范,根據(jù)規(guī)范建立USB 連接的命令流程如圖6 。

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖5 USB 接口電路

Android應(yīng)用程序開(kāi)發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖6 USB 通信命令

2 . 3 應(yīng)用

該系統(tǒng)能夠成功實(shí)現(xiàn)Android3.1平板與LPC2142之間的USB 數(shù)據(jù)通信,傳輸速率完全滿足USB2. 0 全速規(guī)范。與傳統(tǒng)數(shù)據(jù)采集系統(tǒng)相比更具優(yōu)越性,既擁有Android完美的人機(jī)交互界面,又兼具LPC2142USB高速采集的優(yōu)點(diǎn),具有很強(qiáng)的實(shí)用性。為測(cè)試該系統(tǒng)運(yùn)行正常,利用LPC2142發(fā)送一組來(lái)自麻省理工的心電數(shù)據(jù)進(jìn)行測(cè)試,為配合Android支持的USB 傳輸模式,LPC2142 USB按批量傳輸方式,一次可傳送最大包長(zhǎng)度為64字節(jié),Android平板也采用批量傳輸方式,設(shè)置的接收時(shí)間與LPC2142 的發(fā)送時(shí)間一致,接收函數(shù)是bulkTransfer (UsbEndpoint endpoint,byte[] buffer,int length ,int timeout) 。為說(shuō)明測(cè)試結(jié)果,將接收的數(shù)據(jù)以文件形式存入數(shù)據(jù)庫(kù)與原數(shù)據(jù)進(jìn)行對(duì)比正確,說(shuō)明測(cè)試結(jié)果非常標(biāo)準(zhǔn),測(cè)試波形如圖7 所示。

圖7 心電信號(hào)波形圖

3 結(jié)語(yǔ)

本文介紹了Android平臺(tái)的系統(tǒng)構(gòu)成以及基于Android平臺(tái)平板電腦USB 應(yīng)用程序的開(kāi)發(fā)和設(shè)計(jì),并將這一應(yīng)用與AMR 平臺(tái)緊密結(jié)合開(kāi)發(fā)出一種新型數(shù)據(jù)采集系統(tǒng),即基于Android平臺(tái)和AMR平臺(tái)相結(jié)合的USB 數(shù)據(jù)采集系統(tǒng)??梢钥闯?,Android平板電腦在應(yīng)用程序開(kāi)發(fā)上已與PC相媲美,而ARM7 處理器LPC2142 具有USB 通用串行總線接口,可以進(jìn)行高速數(shù)據(jù)采集的處理,該平臺(tái)具有良好的實(shí)用性, 可應(yīng)用于需要實(shí)時(shí)高精度測(cè)量電參數(shù)的領(lǐng)域,而且方便快捷。相信未來(lái)隨著 Android 技術(shù)的不斷發(fā)展平板電腦應(yīng)用程序會(huì)越來(lái)越豐富,應(yīng)用領(lǐng)域會(huì)越來(lái)越廣。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3908

    瀏覽量

    126911
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7848

    瀏覽量

    263314
  • 數(shù)據(jù)采集
    +關(guān)注

    關(guān)注

    38

    文章

    5702

    瀏覽量

    113321
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于USB數(shù)據(jù)采集系統(tǒng)的研究與設(shè)計(jì)--ResearchandDesignofDataAequisitio

    功能。最后以函數(shù)發(fā)生器為對(duì)象對(duì)系統(tǒng)進(jìn)行測(cè)試,從測(cè)試的結(jié)果中可得出此系統(tǒng)性能良好,能達(dá)到設(shè)計(jì)的預(yù)期效果。關(guān)鍵詞:UsB數(shù)據(jù)采集,固件,驅(qū)動(dòng)程序
    發(fā)表于 06-10 00:57

    AVR-USB數(shù)據(jù)采集系統(tǒng)(程序+原理圖)

    AVR-USB數(shù)據(jù)采集系統(tǒng)(程序+原理圖)
    發(fā)表于 08-17 16:14

    數(shù)據(jù)采集分享】基于LABVIEW的USB接口高速數(shù)據(jù)采集的設(shè)計(jì)

    基于PCI總線的數(shù)據(jù)采集系統(tǒng)的進(jìn)一步開(kāi)發(fā)和應(yīng)用,因此迫切需要設(shè)計(jì)一種更為簡(jiǎn)便通用的高速數(shù)據(jù)采集通信系統(tǒng)來(lái)完成
    發(fā)表于 12-16 11:32

    Android手機(jī)的USB轉(zhuǎn)串口開(kāi)發(fā)

    分析和問(wèn)題的解決。硬件采用常用的USB轉(zhuǎn)串口模塊,既可以用電腦配合串口軟件進(jìn)行數(shù)據(jù)采集,又可以通過(guò)Android手機(jī)的USB配合相應(yīng)的APP進(jìn)行數(shù)據(jù)
    發(fā)表于 12-06 11:22

    Android手機(jī)的USB轉(zhuǎn)串口開(kāi)發(fā)硬件以及軟件

    `Android手機(jī)的USB轉(zhuǎn)串口開(kāi)發(fā)Android手機(jī)的USB接口在各個(gè)領(lǐng)域都得到了廣泛的應(yīng)用和推廣。筆者前幾天接手一個(gè)項(xiàng)目,主要就是解決
    發(fā)表于 12-06 13:16

    基于ADuC841的USB接口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

    的信息校正被測(cè)光測(cè)量位置誤差。在XFT-1型開(kāi)放式傅立葉變換光譜儀中,采用了本文提出的這種簡(jiǎn)易的USB數(shù)據(jù)采集系統(tǒng)。考慮到經(jīng)濟(jì)、實(shí)用因素,系統(tǒng)中采用了單片機(jī)和通用
    發(fā)表于 12-12 10:23

    基于LABVIEW的USB接口多路高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

    基于PCI總線的數(shù)據(jù)采集系統(tǒng)的進(jìn)一步開(kāi)發(fā)和應(yīng)用,因此迫切需要設(shè)計(jì)一種更為簡(jiǎn)便通用的高速數(shù)據(jù)采集通信系統(tǒng)來(lái)完成
    發(fā)表于 12-26 07:00

    基于USB總線的高速數(shù)據(jù)采集系統(tǒng)

    基于PCI總線的數(shù)據(jù)采集系統(tǒng)的進(jìn)一步開(kāi)發(fā)和應(yīng)用,因此迫切需要設(shè)計(jì)一種更為簡(jiǎn)便通用的高速數(shù)據(jù)采集通信系統(tǒng)來(lái)完成
    發(fā)表于 05-07 09:40

    采用LabVIEW實(shí)現(xiàn)USB實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)設(shè)計(jì)

    摘要:介紹了以圖形化編程語(yǔ)言LabVIEW為應(yīng)用程序開(kāi)發(fā)平臺(tái)的USB數(shù)據(jù)采集處理系統(tǒng)的設(shè)計(jì),并給出了LabVIEW對(duì)外部動(dòng)態(tài)鏈接庫(kù)的調(diào)用方法
    發(fā)表于 05-28 07:40

    采用LabVIEW實(shí)現(xiàn)USB實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)

    摘要:介紹了以圖形化編程語(yǔ)言LabVIEW為應(yīng)用程序開(kāi)發(fā)平臺(tái)的USB數(shù)據(jù)采集處理系統(tǒng)的設(shè)計(jì),并給出了LabVIEW對(duì)外部動(dòng)態(tài)鏈接庫(kù)的調(diào)用方法
    發(fā)表于 05-31 07:40

    基于USB和多線程的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)

    說(shuō)明基于USB 技術(shù)的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的硬件、軟件實(shí)現(xiàn);重點(diǎn)介紹PDIUSBD12帶并行總線的USB 接口器件以及基于多線程思想設(shè)計(jì)應(yīng)用程序
    發(fā)表于 04-16 09:07 ?12次下載

    USB OTG技術(shù)在數(shù)據(jù)采集系統(tǒng)的應(yīng)用

    本文介紹了USB OTG 技術(shù)在數(shù)據(jù)采集系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn),重點(diǎn)闡述了USB OTG 的工作原理、USB 主從機(jī)的硬件切換設(shè)計(jì)和固件
    發(fā)表于 08-11 10:16 ?47次下載

    高速USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

    高速USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) 在圖像處理、瞬態(tài)信號(hào)測(cè)量等一些高速、高精度的應(yīng)用中,需要進(jìn)行高速數(shù)據(jù)采集。USB 2.0接口以其高速率等優(yōu)點(diǎn)
    發(fā)表于 09-26 18:05 ?783次閱讀
    高速<b class='flag-5'>USB</b><b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    MSP430和CC2500的USB無(wú)線數(shù)據(jù)采集系統(tǒng)

    MSP430和CC2500的USB無(wú)線數(shù)據(jù)采集系統(tǒng) 摘要:設(shè)計(jì)基于MSP430單片機(jī)和CC2500無(wú)線收發(fā)器的USB無(wú)線數(shù)據(jù)采集
    發(fā)表于 04-13 13:25 ?1660次閱讀
    MSP430和CC2500的<b class='flag-5'>USB</b>無(wú)線<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>

    基于USB2.0與LabVIEW的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

    計(jì)算機(jī)對(duì)信號(hào)進(jìn)行分析和處理依賴于數(shù)據(jù)采集,而現(xiàn)有的數(shù)據(jù)采集卡成本高,接口復(fù)雜,不易擴(kuò)展。采用USB控制器和FPGA為核心設(shè)計(jì)系統(tǒng)的硬件平臺(tái)
    發(fā)表于 10-17 11:06 ?130次下載
    基于<b class='flag-5'>USB</b>2.0與LabVIEW的高速<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)