亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android手機(jī)串口調(diào)試助手設(shè)計(jì)與實(shí)現(xiàn)

        2015-01-17 05:47:02張佳進(jìn)陳立暢楊曉東唐君君
        電子設(shè)計(jì)工程 2015年2期
        關(guān)鍵詞:調(diào)試

        張佳進(jìn),陳立暢,楊曉東,唐君君

        (1.云南農(nóng)業(yè)大學(xué) 基礎(chǔ)與信息工程學(xué)院,云南 昆明 650201;2.云南農(nóng)業(yè)大學(xué) 工程技術(shù)學(xué)院,云南 昆明 650201)

        隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,越來(lái)越多的人開始使用智能手機(jī),其中Android智能手機(jī)市場(chǎng)占有率高達(dá)60%以上。除了基本的通話功能以外,智能手機(jī)已經(jīng)成為物聯(lián)網(wǎng)時(shí)代中新型的終端節(jié)點(diǎn)。

        現(xiàn)在Android手機(jī)主要集成了Wifi、藍(lán)牙通信接口,它們具有傳輸速率高、通用性好等優(yōu)點(diǎn)。但是在物聯(lián)網(wǎng)領(lǐng)域中,由于成本、功耗、硬件資源等因素的限制,許多傳感器、控制設(shè)備往往采用傳統(tǒng)的串行通信技術(shù),例如UART、I2C、SPI等串行模式。然而當(dāng)前Android手機(jī)往往缺乏這些硬件接口,因此導(dǎo)致Android手機(jī)和傳統(tǒng)串行設(shè)備之間的通信比較困難[1]。

        串口調(diào)試助手是專門用于測(cè)試串口通信使用的工具。串口調(diào)試助手具備了方便、穩(wěn)定、交互性強(qiáng)的特點(diǎn),給嵌入式系統(tǒng)開發(fā)人員帶來(lái)了極大的便利。但是由于上述原因,目前在Android手機(jī)領(lǐng)域還沒(méi)有面向嵌入式系統(tǒng)的串口調(diào)試工具。

        為了描述的方便,可以把UART串行通信接口抽象成一個(gè)傳感器系統(tǒng)。目前很多Android智能手機(jī)廠商將傳感器的軟硬件開發(fā)工作視為手機(jī)研發(fā)過(guò)程中一個(gè)非常重要的組成部分。但有趣的是到目前為止,Google公司在Android系統(tǒng)的Java框架層僅僅只提供了對(duì)常見的八種類型傳感器的支持,沒(méi)有規(guī)定各個(gè)類型的傳感器需遵循的通信協(xié)議和設(shè)備參數(shù)。

        而在Android智能手機(jī)的研發(fā)過(guò)程中,傳感器底層軟件的設(shè)計(jì)和開發(fā)工作的流程、傳感器驅(qū)動(dòng)程序與上層應(yīng)用進(jìn)行交互的接口方式均無(wú)統(tǒng)一的標(biāo)準(zhǔn)和解決方案,這就要求傳感器底層軟件設(shè)計(jì)開發(fā)人員根據(jù)項(xiàng)目所使用的傳感器的硬件特點(diǎn),以及其對(duì)于 Android架構(gòu)和Linux內(nèi)核的熟悉程度,設(shè)計(jì)出一套最適合自己特定環(huán)境下傳感器底層驅(qū)動(dòng)程序,這很大程度加大了智能手機(jī)傳感器的軟件開發(fā)難度[2-3]。

        IOIO模塊是國(guó)際著名開源公司SparkFun出品的一款專門為Android系統(tǒng)設(shè)計(jì)的通用型I/O擴(kuò)展及控制模塊。該硬件模塊通過(guò)USB接口與Android手機(jī)相連,高度集成了多路數(shù)字I/O端口、I2C,SPI及UART串行控制器等功能組件,只需通過(guò)簡(jiǎn)單、直觀的Java API即可直接操作外部硬件I/O,不需要額外的嵌入式軟件編程和其它硬件設(shè)備,使用方便靈活,開發(fā)便捷。目前眾多國(guó)際著名品牌的Android手機(jī)和平板電腦都兼容支持IOIO模塊,例如谷歌、三星、索尼等[4-5]。

        鑒于以上因素,文中采用國(guó)際開源的IOIO模塊實(shí)現(xiàn)android手機(jī)的UART串行通信硬件接口,它能直接支持TTL串行通信,同時(shí)基于IOIO提供的IOIOLib庫(kù),使用Java語(yǔ)言,在Android手機(jī)上開發(fā)串口通信調(diào)試助手軟件。

        1 IOIO硬件結(jié)構(gòu)

        IOIO硬件模塊主要采用了低功耗的PIC24FJ256DA206單片機(jī)作為系統(tǒng)控制器,電路板上集成了多路UART、I2C、GPIO等多個(gè)功能接口部件。對(duì)于UART串行口的管腳定義見圖1所示。

        圖1 IOIO模塊硬件實(shí)物圖Fig.1 Picture of IOIOhardware module

        表1 IOIO串口UART管腳定義Tab.1 Pins of UART in IOIO

        如上表1所示,一個(gè)IOIO模塊可以同時(shí)支持多達(dá)4個(gè)串口UART,能滿足復(fù)雜的串口通信系統(tǒng)應(yīng)用。

        2 串口調(diào)試助手軟件開發(fā)環(huán)境要求

        基于android手機(jī)和IOIO硬件接口,串口調(diào)試助手采用Java語(yǔ)言進(jìn)行開發(fā),其開發(fā)環(huán)境配置及所需組件如表2所示[6-7]。

        表2 串口調(diào)試助手開發(fā)環(huán)境要求Tab.2 Development environment required for Serial UART debugging assistant

        3 串口調(diào)試助手軟件的實(shí)現(xiàn)

        3.1 軟件系統(tǒng)的組成

        與PC端的傳統(tǒng)串口調(diào)試助手類似,Android手機(jī)環(huán)境下的串口調(diào)試助手軟件功能主要包括接收和發(fā)送兩個(gè)模塊,詳見圖2。其中接收模塊支持以十六進(jìn)制或ASCII字符格式接收數(shù)據(jù)。發(fā)送模塊具備手動(dòng)發(fā)送和自動(dòng)定時(shí)發(fā)送功能,同樣也支持十六進(jìn)制或ASCII字符格式數(shù)據(jù)的發(fā)送。如圖3所示,在軟件接收區(qū)旁有“hex-re”和“hex-se”復(fù)選框,前者打鉤則表明以十六進(jìn)制的方式接收,否則以ASCII字符方式接收數(shù)據(jù)。同理,“hex-se”則定義了以十六進(jìn)制或ASCII字符方式發(fā)送數(shù)據(jù)。

        3.2 系統(tǒng)軟件設(shè)計(jì)方法

        圖2 系統(tǒng)的軟件設(shè)計(jì)結(jié)構(gòu)圖Fig.2 Schematic diagram of the software test system

        圖3 系統(tǒng)軟件界面Fig.3 Interface chart of the test system

        IOIO模塊在IOIOLib庫(kù)中提供了豐富的API接口,在本系統(tǒng)中主要采用了Uart接口函數(shù)。為了提高系統(tǒng)吞吐率,有效利用系統(tǒng)資源,改善用戶任務(wù)之間的通信效率,本軟件采用Java多線程技術(shù)。限于篇幅,本文只對(duì)其中的核心接口函數(shù)和類進(jìn)行介紹。

        1) 串口初始化 IOIO.openUart()

        實(shí) 例 :Uart uart=ioio.openUart (rxPin, txPin, baud,parity, stopBits);

        其中“rxPin”與“txPin”分別代表接收管腳和發(fā)送管腳所對(duì)應(yīng)的序號(hào);“baud”代表的是波特率;“parity”為奇偶校驗(yàn)位;“stopBits”是停止位數(shù)的定義。

        例如 Uart uart=ioio.openUart(9, 14, 9 600, 0,1),該命令行表示打開一個(gè)串行口,9號(hào)管腳為接收端,發(fā)送端為14號(hào)管腳,9 600波特率,無(wú)校驗(yàn)位,1位停止位。

        2)數(shù)據(jù)接收與發(fā)送

        IOIO提供了uart.getInputStream數(shù)據(jù)接收和uart.getOutputStream數(shù)據(jù)發(fā)送接口API函數(shù)。

        另外采用了Java標(biāo)準(zhǔn)的InputStream類和OutputStream類。InputStream是所有輸入數(shù)據(jù)流的父類,它是一個(gè)抽象類,定義了所有輸入數(shù)據(jù)流都具有的共通特性,用于輸入單個(gè)字節(jié)或者字節(jié)數(shù)組。而OutputStream衍生的所有類都擁有基本方法write(),用于輸出單個(gè)字節(jié)或者字節(jié)數(shù)組。示例代碼如下:

        InputStream in=uart.getInputStream();’讀入一個(gè)字節(jié)的數(shù)據(jù)

        OutputStream out=uart.getOutputStream(); ‘發(fā)送一個(gè)字節(jié)數(shù)據(jù)

        3)關(guān)閉串行口

        當(dāng)完成串行口的發(fā)送或接收工作后,退出軟件前需要使用uart.close()函數(shù)對(duì)其進(jìn)行正確關(guān)閉。

        4 串口調(diào)試助手軟件的實(shí)際測(cè)試

        4.1 系統(tǒng)硬件連接

        在測(cè)試實(shí)驗(yàn)中,筆記本電腦端使用了串口調(diào)試助手軟件串口調(diào)試助手SComAssistant;三星N7100 Android手機(jī)作為測(cè)試用樣機(jī),其微型USB接口通過(guò)數(shù)據(jù)線連接到IOIO模塊,而IOIO模塊通過(guò)USB轉(zhuǎn)TTL(UART)數(shù)據(jù)線和筆記本電腦進(jìn)行串行通信,詳見圖4。

        圖4 Android手機(jī)與筆記本電腦間的串行通信實(shí)驗(yàn)系統(tǒng)Fig.4 Serial communication between android phone and laptop

        4.2 測(cè)試內(nèi)容

        測(cè)試實(shí)驗(yàn)內(nèi)容重點(diǎn)是串行口的初始化設(shè)置、數(shù)據(jù)的接收和發(fā)送。

        4.2.1 串行口的初始化設(shè)置

        主要內(nèi)容包括發(fā)送和接收端管腳定義、波特率、校驗(yàn)位和停止位的設(shè)置。

        4.2.2 數(shù)據(jù)的接收和發(fā)送

        從圖5中,手機(jī)端串口調(diào)試助手自動(dòng)定時(shí)向筆記本電腦發(fā)送十六進(jìn)制數(shù)“fd”,而電腦端向手機(jī)發(fā)送十六進(jìn)制數(shù)“ac”,從實(shí)驗(yàn)截圖上明顯可以看出,通過(guò)IOIO模塊上的UART串行口,筆記本電腦和Android手機(jī)間的串行通信穩(wěn)定可靠。

        經(jīng)過(guò)多次反復(fù)的測(cè)試與實(shí)驗(yàn)表明,以IOIO模塊為核心,基于Android手機(jī)串口調(diào)試助手軟件通信正常,尚未發(fā)現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤現(xiàn)象,完全能滿足嵌入式系統(tǒng)串口調(diào)試的實(shí)際需要。

        5 結(jié) 論

        本中討論了以IOIO模塊為核心,基于Android手機(jī)平臺(tái),采用Java多線程技術(shù),實(shí)現(xiàn)了手機(jī)串口調(diào)試助手軟件。實(shí)驗(yàn)表明該系統(tǒng)設(shè)計(jì)方案簡(jiǎn)單易行,通信穩(wěn)定可靠,通用性好,具有一定的實(shí)際應(yīng)用價(jià)值。

        圖5 串行口數(shù)據(jù)接收和發(fā)送實(shí)驗(yàn)Fig.5 Experiment of RX and TX between serial UARTs

        另外IOIO是一個(gè)開放的人機(jī)交互平臺(tái),給Android手機(jī)提供了豐富的I/O接口資源,包含了UART、I2C、SPI等模式,能拓展Android手機(jī)的應(yīng)用領(lǐng)域,通過(guò)對(duì)其進(jìn)行適當(dāng)?shù)臄U(kuò)展與延伸,相信在android手機(jī)或平板電腦上可以提供更多的個(gè)性化創(chuàng)意體驗(yàn)。

        [1]張佳進(jìn),陳立暢,唐秀英,等.IOIO在Android手機(jī)中的應(yīng)用與研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13(2):42-44.ZHANG Jia-jin,CHEN Li-chang,TANG Xiu-ying,et al.Research and application of IOIO in android phone[J].Microcontrollers&Embedded Systems,2013,13(2):42-44.

        [2]SparkFun Electronics.IOIO for Android[EB/OL].[20-07-2013].https://www.sparkfun.com/products/10748.

        [3]GitHub.Supported Devices[EB/OL].[20-07-2013].https://github.com/ytai/ioio/wiki/Supported-Devices.

        [4]Chaudhri R,Brunette W,Goel M,et al.Open data kit sensors:mobile data collection with wired and wireless sensors [C]//In Proc.Of the 2nd ACM Symposium on Computing for Development, MIT,USA,March 2012:1-10.

        [5]LIN Cheng-min,LANG Kuo-chen,CHU Yi-lun Chu,et al.An Implementation for Connecting Android Powered Device to External World [C]//The 2nd International Conference on Innovations in Bio-inspired Computing and Applications(BICA 2011), Shenzhen, Guangdong, China, December 2011:303-325.

        [6]韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.

        [7]陳宏希,鄒益民.用Matlabcontrol實(shí)現(xiàn)Java與Matlab的混合編程[J].工業(yè)儀表與自動(dòng)化裝置,2012(3):27-30.CHEN Hong-xi,ZOU Yi-min.Implementation of the hybrid programming with Java and matlab based on matlabcontrol[J].Industrial Instrumentation&Automation,2012(3):27-30.

        猜你喜歡
        調(diào)試
        基于航拍無(wú)人機(jī)的設(shè)計(jì)與調(diào)試
        電子制作(2018年12期)2018-08-01 00:47:44
        燃?xì)廨啓C(jī)發(fā)電機(jī)組運(yùn)行調(diào)試
        FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
        核電廠主給水系統(tǒng)調(diào)試
        無(wú)線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
        電子制作(2017年19期)2017-02-02 07:08:38
        調(diào)壓柜的調(diào)試與試運(yùn)行探討
        工業(yè)電氣設(shè)備控制系統(tǒng)的安裝與調(diào)試
        音頻處理器的調(diào)試
        同期繼電保護(hù)調(diào)試中出現(xiàn)的問(wèn)題及處理
        基于JTAG的SoC片上調(diào)試系統(tǒng)設(shè)計(jì)
        国产精品免费_区二区三区观看| 国产自产在线视频一区| 日韩极品在线观看视频| 性做久久久久久免费观看| 亚洲av无码不卡久久| 国产熟女亚洲精品麻豆| 亚洲av午夜福利一区二区国产| 亚洲中文字幕无码不卡电影| 久久精品国产亚洲av桥本有菜| 少妇又紧又色又爽又刺| 亚洲成人中文字幕在线视频| 奇米影视色777四色在线首页| 中文国产日韩欧美二视频| 亚洲AV色无码乱码在线观看| 中文人妻av大区中文不卡| 亚洲丰满熟女一区二亚洲亚洲| 日本做受120秒免费视频| 大地资源网最新在线播放| 国产成人精品日本亚洲语音1| 色佬易精品视频免费在线观看| 狠狠色噜噜狠狠狠狠97首创麻豆| 久久久久久亚洲av成人无码国产| 夜夜未满十八勿进的爽爽影院| 国产小屁孩cao大人| 久久精品国产亚洲av网在 | 丰满少妇被猛男猛烈进入久久| 亚洲国产18成人中文字幕久久久久无码av| 国产小屁孩cao大人| 国产少妇露脸精品自拍网站| 亚洲午夜精品一区二区| 久久人人爽人人爽人人片亞洲| 亚洲毛片网| 日本一区二区三区中文字幕视频| 加勒比一区二区三区av| 久久精品夜色噜噜亚洲a∨| 久久久亚洲色| 久久久精品国产亚洲麻色欲| 亚洲国产中文字幕精品| 奶头又大又白喷奶水av| 激情亚洲一区国产精品| 国产老妇伦国产熟女老妇高清|