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

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

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

Android應(yīng)用程序開發(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)用越來越廣泛,二者以其自身的優(yōu)勢在各自領(lǐng)域都占有一席之地。目前基于Android操作系統(tǒng)手機(jī)進(jìn)行移動(dòng)應(yīng)用開發(fā)非?;馃幔珹ndroid以其源代碼開放,硬件選擇豐富,無縫結(jié)合google 等特點(diǎn),自發(fā)布以來 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)用的開發(fā)方法將為從事移動(dòng)互聯(lián)網(wǎng)開發(fā)的企業(yè)和個(gè)人帶來非常廣闊的前景。

Google 對Android平臺(tái)的SDK更新很快,目前已發(fā)布的平板Android 3.1(API level 12)及以上版本實(shí)現(xiàn)了對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)用程序開發(fā)的完整過程,以及與LPC2142之間的USB 通信功能。

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

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

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

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

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

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

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

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

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

圖1 Android開發(fā)詳解

1 . 2 Android USB 接口

Android支持各種USB 外圍設(shè)備,通過兩種模式來支持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 支持庫。而在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開發(fā)者提供了應(yīng)用程序開發(fā)直接可用的USB A PI ,這個(gè)USB類是在android.Hardware. usb 包下,具體介紹如下:

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

圖2 USB 主機(jī)模式

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

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

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

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)用程序的開發(fā),開發(fā)人員需要熟悉以下幾個(gè)基本組件:

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

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

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

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

圖3 Android 程序框架

該設(shè)計(jì)共創(chuàng)建五個(gè)Activity來實(shí)現(xiàn)人機(jī)交互界面,使用戶操作起來方便快捷。MainMenuActivity 是主界面,由這一界面可以進(jìn)入以下三個(gè)界面:USBconnect Activity是USB 連接界面,在這個(gè)類里實(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 連接成功后,開始接收數(shù)據(jù),并把已接收的數(shù)據(jù)以文件形式存入 SD 卡中;FileListActivity 是顯示已存入SD卡所有文件的列表界面,單擊文件進(jìn)入顯示波形界面。除了Acti vity ,該程序還注冊了BroadcastReceiver( 廣播消息) 來接收系統(tǒng)USB 連接消息的通知。同時(shí)各個(gè)Activity之間的通信是由Intent 實(shí)現(xiàn)的,界面的一些按鈕、布局等是由View實(shí)現(xiàn)的。

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

本設(shè)計(jì)前端采用ARM7處理器LPC2142作為硬件開發(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)用程序開發(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ù)用為輸入腳測量范圍: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)用程序開發(fā)及USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

圖5 USB 接口電路

Android應(yīng)用程序開發(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í)用性。為測試該系統(tǒng)運(yùn)行正常,利用LPC2142發(fā)送一組來自麻省理工的心電數(shù)據(jù)進(jìn)行測試,為配合Android支持的USB 傳輸模式,LPC2142 USB按批量傳輸方式,一次可傳送最大包長度為64字節(jié),Android平板也采用批量傳輸方式,設(shè)置的接收時(shí)間與LPC2142 的發(fā)送時(shí)間一致,接收函數(shù)是bulkTransfer (UsbEndpoint endpoint,byte[] buffer,int length ,int timeout) 。為說明測試結(jié)果,將接收的數(shù)據(jù)以文件形式存入數(shù)據(jù)庫與原數(shù)據(jù)進(jìn)行對比正確,說明測試結(jié)果非常標(biāo)準(zhǔn),測試波形如圖7 所示。

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

3 結(jié)語

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

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

    關(guān)注

    12

    文章

    3940

    瀏覽量

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

    關(guān)注

    60

    文章

    7966

    瀏覽量

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

    關(guān)注

    39

    文章

    6206

    瀏覽量

    113835
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    功能。最后以函數(shù)發(fā)生器為對象對系統(tǒng)進(jìn)行測試,從測試的結(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)一步開發(fā)和應(yīng)用,因此迫切需要設(shè)計(jì)一種更為簡便通用的高速數(shù)據(jù)采集通信系統(tǒng)來完成
    發(fā)表于 12-16 11:32

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

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

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

    `Android手機(jī)的USB轉(zhuǎn)串口開發(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ì)

    的信息校正被測光測量位置誤差。在XFT-1型開放式傅立葉變換光譜儀中,采用了本文提出的這種簡易的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)一步開發(fā)和應(yīng)用,因此迫切需要設(shè)計(jì)一種更為簡便通用的高速數(shù)據(jù)采集通信系統(tǒng)來完成
    發(fā)表于 12-26 07:00

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

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

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

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

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

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

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

    說明基于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)測量等一些高速、高精度的應(yīng)用中,需要進(jìn)行高速數(shù)據(jù)采集。USB 2.0接口以其高速率等優(yōu)點(diǎn)
    發(fā)表于 09-26 18:05 ?808次閱讀
    高速<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無線數(shù)據(jù)采集系統(tǒng)

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