隨著科技的發展, 嵌入式及移動互聯網的應用越來越廣泛,二者以其自身的優勢在各自領域都占有一席之地。目前基于Android操作系統的手機進行移動應用開發非常火熱,Android以其源代碼開放,硬件選擇豐富,無縫結合google 等特點,自發布以來 Android 立刻受到了業界的廣泛關注。而嵌入式ARM7 微處理器LPC2142具有較高的集成度和高性價比, 很適合于數據采集系統設計。因此,了解Android平臺的組成、系統架構API和應用程序框架,并掌握該平臺移動應用的開發方法將為從事移動互聯網開發的企業和個人帶來非常廣闊的前景。
Google 對Android平臺的SDK更新很快,目前已發布的平板Android 3.1(API level 12)及以上版本實現了對USB 外設模式和主機模式的支持,并遵循USB2. 0 通訊協議。本文結合兩者的突出優點設計了一種新型數據采集系統,以下將詳細闡述Android 3. 1平臺下的USB 應用程序開發的完整過程,以及與LPC2142之間的USB 通信功能。
1 Android USB應用程序開發
1 . 1 Android 開發框架
Android系統架構由5部分組成,分別是:Linux Kernel 、Android Runtime、Libraries 、Application Frame-work、Applications。
Android開發主要有三種類型( 如圖1 所示) :
移植開發和電話系統;
Android應用程序開發;
Android系統開發;
本文中的Android應用程序的開發是在Android系統第三個層次(Java 框架) 和第四個層次(Java 應用)之間的接口之上開發出來的。
圖1 Android開發詳解
1 . 2 Android USB 接口
Android支持各種USB 外圍設備,通過兩種模式來支持Android USB外設( 實現了Android外設協議的硬件) :USB 外設模式和USB 主機模式。Android將在新的平板電腦版Honeycomb 3 . 1 和智能手機版Gingerbread 2. 3 .4 中首次支持USB 外設模式,該支持包括一種新的Open Accessory API,含有谷歌提供的一個USB 支持庫。而在Android3 . 1 及以上版本才支持主機模式。Android從機設備只能和Android主機設備連接,而主機模式可以連接其他USB 設備,故本設計采用Android3 . 1主機模式連接LPC2142USB 接口。當Android設備處于主機模式時,它扮演USB主機角色并為總線供電。如圖2 所示。
Android3 .1(API 12)更新的API為Android開發者提供了應用程序開發直接可用的USB A PI ,這個USB類是在android.Hardware. usb 包下,具體介紹如下:
圖2 USB 主機模式
UsbAccessory 本類是針對Open Accessory API設計的。UsbConstants作為USB 常量定義,在Linux內核文件linux/usb/ch9 . h中。UsbDevice獲取USB設備的信息,比如說類型、制造商等等。
UsbDeviceConnection 這個是USB 設備傳輸控制的核心。UsbEndpoint 獲取一個USB 終端信息。UsbInt erface USB 底層接口,獲取一些信息底層信息,比如說通訊協議,等等。UsbManager USB管理類,它提供了識別和使用的USB 設備和USB 配件通訊方法。應用程序可以獲取一個UsbManager實例,然后用于連接的設備或配件清單查詢,管理、通信。UsbRequest 核心的USB請求處理類,支持讀寫操作,以字節數組方式處理一個 UsbEndpoint,
Android12.3提示這個類類似WinCE串口通訊的CreateFile部分,可以進行數據流的讀寫。
1.3 Android 應用程序組件
Android應用程序由松散耦合的組件組成。各個應用是相互獨立的,并運行在自己的進程當中,要進行Android的移動應用程序的開發,開發人員需要熟悉以下幾個基本組件:
Activity(活動) 應用程序中每個屏幕都是Activity類的擴展,活動使用視圖來形成顯示信息和響應用戶動作的圖形界面。Broadcast Receiver(廣播接收器) 通過創建和注冊廣播接收器,應用程序可以監聽到那些匹配特定的過濾標準的廣播。Intent( 意圖) 應用程序間傳遞消息的框架。View 是Android中圖形用戶界面的基類,提供可視化界面的展示。
1 . 4 Android 應用程序設計
Android應用程序開發是由Java語言實現的,具體是由Google為開發者提供的一些類和接口組成。本設計主要用到USB 類、數據存儲SQLiteDatabase類、視圖顯示SurfaceView 類以及一些Android 小組件類等。程序設計框架如圖3。
圖3 Android 程序框架
該設計共創建五個Activity來實現人機交互界面,使用戶操作起來方便快捷。MainMenuActivity 是主界面,由這一界面可以進入以下三個界面:USBconnect Activity是USB 連接界面,在這個類里實現設置要連接的USB 的端口參數,查找并發現USB 設備,按條件枚舉USB 設備,得到連接設備的權限,連接USB設備,終止已連接的USB 設備等功能,如USB 設備連接成功則進入下一界面;USBMonitorActivity 是接收USB 數據的界面,USB 連接成功后,開始接收數據,并把已接收的數據以文件形式存入 SD 卡中;FileListActivity 是顯示已存入SD卡所有文件的列表界面,單擊文件進入顯示波形界面。除了Acti vity ,該程序還注冊了BroadcastReceiver( 廣播消息) 來接收系統USB 連接消息的通知。同時各個Activity之間的通信是由Intent 實現的,界面的一些按鈕、布局等是由View實現的。
2 LPC2142 前端采集平臺設計
本設計前端采用ARM7處理器LPC2142作為硬件開發平臺,LPC2142是PHILIPS公司生產的基于支持仿真和嵌入式跟蹤的32位ARM7TDMI-S內核的CPU ,帶有64kB的高速Flash存儲器和16kB 的RAM,最高工作頻率能夠高達60M Hz。同時集成了A/D 、定時器、串口等資源, 與LPC2132 相比最突出的特點就是內置了USB2.0 Device( 全速) 控制器。該芯片內部資源比較豐富, 特別適用于工業控制等嵌人式系統。該設計總體框圖如圖4 所示。
圖4 系統總體框架
2 . 1 A/D 采集接口
LPC2142 包含2個模-數轉換器,提供6/14 路模擬輸入,每個通道的轉換時間低至2.44vs 。具體特性如下:
10位逐次逼近模數轉換器6 或8 個管腳復用為輸入腳測量范圍:0~3 . 3V單路或多路輸入的突發轉換模式可選擇由輸入跳變或定時器匹配信號觸發轉換2個轉換器全部啟動命令A/D 轉換器的基本時鐘由VPB 時鐘提供,每個轉換器包含一個可編程分頻器,可將時鐘調整至逐步逼近轉換所需的4 . 5MHz 。
2 . 2 LPC2142與USB 模塊接口
LPC2142 微控制器內部帶有一個USB 設備控制器,該控制器支持32個固定配置的物理端點,并完全兼容USB2. 0 全速規范。該控制器嵌于CPU 芯片內部,這樣的集成方式不僅使 USB 設備控制器與 CPU 之間的數據交換可以穩定地達到很高的速度,而且提高了芯片的性價比。USB 接口電路如圖 5. LPC2142 的P0.27和P0.26 引腳的第二功能控制 USB 數據的傳輸。Android USB 主機與LPC2142 USB設備之間的通信完全遵循USB2. 0 全速規范,根據規范建立USB 連接的命令流程如圖6 。
圖5 USB 接口電路
圖6 USB 通信命令
2 . 3 應用
該系統能夠成功實現Android3.1平板與LPC2142之間的USB 數據通信,傳輸速率完全滿足USB2. 0 全速規范。與傳統數據采集系統相比更具優越性,既擁有Android完美的人機交互界面,又兼具LPC2142USB高速采集的優點,具有很強的實用性。為測試該系統運行正常,利用LPC2142發送一組來自麻省理工的心電數據進行測試,為配合Android支持的USB 傳輸模式,LPC2142 USB按批量傳輸方式,一次可傳送最大包長度為64字節,Android平板也采用批量傳輸方式,設置的接收時間與LPC2142 的發送時間一致,接收函數是bulkTransfer (UsbEndpoint endpoint,byte[] buffer,int length ,int timeout) 。為說明測試結果,將接收的數據以文件形式存入數據庫與原數據進行對比正確,說明測試結果非常標準,測試波形如圖7 所示。
圖7 心電信號波形圖
3 結語
本文介紹了Android平臺的系統構成以及基于Android平臺平板電腦USB 應用程序的開發和設計,并將這一應用與AMR 平臺緊密結合開發出一種新型數據采集系統,即基于Android平臺和AMR平臺相結合的USB 數據采集系統。可以看出,Android平板電腦在應用程序開發上已與PC相媲美,而ARM7 處理器LPC2142 具有USB 通用串行總線接口,可以進行高速數據采集的處理,該平臺具有良好的實用性, 可應用于需要實時高精度測量電參數的領域,而且方便快捷。相信未來隨著 Android 技術的不斷發展平板電腦應用程序會越來越豐富,應用領域會越來越廣。
-
Android
+關注
關注
12文章
3943瀏覽量
127744 -
usb
+關注
關注
60文章
7979瀏覽量
265606 -
數據采集
+關注
關注
39文章
6245瀏覽量
113921
發布評論請先 登錄
相關推薦
評論