• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Android透明串口傳輸模塊的設(shè)計與應(yīng)用

      2014-10-21 20:07:27何塽納陳國金
      中國機(jī)械 2014年23期
      關(guān)鍵詞:工業(yè)控制無線局域網(wǎng)安卓

      何塽納 陳國金

      摘 要: Android設(shè)備可用作工業(yè)控制上位機(jī)。設(shè)計了一種Android透明串口傳輸模塊,模塊集成了藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口與USB轉(zhuǎn)串口三種通信方式,用戶可任意選取一種; 模塊自動建立通信連接,提供與下位機(jī)串口通信的透明輸入輸出接口。討論了Android透明串口傳輸模塊的軟件功能、硬件連接與軟件實現(xiàn),并將其應(yīng)用于自動縫紉設(shè)備。

      關(guān)鍵詞: 安卓;工業(yè)控制;藍(lán)牙;串口;無線局域網(wǎng);通用串行總線

      引言

      智能移動設(shè)備近幾年來發(fā)展迅速,在日常生活與工業(yè)中的應(yīng)用日益廣泛。對傳統(tǒng)的工業(yè)控制領(lǐng)域,通常采用PC機(jī)、操作面板控制設(shè)備[1]。PC機(jī)成本較高,體積較大,攜帶性不好;操作面板界面不直觀,操作復(fù)雜。智能移動設(shè)備如智能手機(jī)、平板電腦體積較小,在工業(yè)現(xiàn)場便于攜帶,其觸摸屏用戶體驗較好,相比傳統(tǒng)的PC機(jī)、操作面板更具優(yōu)勢。Android是一款基于Linux的開源移動設(shè)備操作系統(tǒng),具有完全開放性,適合取代工業(yè)控制上位機(jī)PC與操作面板[2]。工業(yè)控制下位機(jī)通信接口通常為串口,Android設(shè)備可作為上位機(jī)通過藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口或USB轉(zhuǎn)串口模塊與下位機(jī)串口通信。Android設(shè)備雖然支持這三種通信方式,但直接使用Android API開發(fā)應(yīng)用程序較為麻煩,且對于USB轉(zhuǎn)串口通信,目前沒有可用API,這使得開發(fā)存在一定復(fù)雜性。本文旨在提出一種Android透明串口傳輸模塊,簡化Android工業(yè)控制上位機(jī)應(yīng)用程序的開發(fā)。

      1.功能說明

      本模塊集成藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口與USB轉(zhuǎn)串口三種通信方式,可直接與下位機(jī)串口通信。用戶選擇三種方式中的一種,模塊建立對應(yīng)通信連接,這一過程由模塊自動處理與維護(hù),對用戶透明。模塊提供一組統(tǒng)一的read(),write()方法作為對外數(shù)據(jù)通信接口,用戶通過此接口與下位機(jī)串口通信。

      3.Android透明串口傳輸模塊的軟件設(shè)計

      Android透明串口傳輸軟件模塊分為三個部分:通信方式選擇功能設(shè)計、自動建立通信功能設(shè)計以及數(shù)據(jù)通信功能設(shè)計。

      3.1 通信方式選擇功能設(shè)計

      通信方式選擇功能用于選擇模塊通信方式,配置通用通信地址。通信方式m_ComMode可為藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口和USB轉(zhuǎn)串口通信中的一種,通用通信地址m_ComAddr為與通信方式對應(yīng)的藍(lán)牙Mac地址、WiFi IP地址與端口號以及串口設(shè)備名稱與波特率。

      3.2 自動建立通信功能設(shè)計

      自動建立通信功能根據(jù)用戶置入的通信方式與通用通信地址,自動建立通信。

      3.2.1 Android藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口、USB轉(zhuǎn)串口通信建立方法

      Android從2.2版本開始支持藍(lán)牙功能,并且為開發(fā)者提供開發(fā)藍(lán)牙應(yīng)用程序的API[3]。開發(fā)藍(lán)牙應(yīng)用程序首先需要在Manifest中添加權(quán)限。

      利用Android API建立藍(lán)牙轉(zhuǎn)串口通信的主要步驟如下:根據(jù)藍(lán)牙Mac地址返回藍(lán)牙設(shè)備對象、建立藍(lán)牙套接字、得到輸入輸出流。

      利用Android API建立WiFi轉(zhuǎn)串口通信的主要步驟如下[4]:建立套接字、得到輸入輸出流。

      對于USB轉(zhuǎn)串口通信應(yīng)用程序開發(fā), Android SDK未提供API,本文在開源項目android-serialport-api基礎(chǔ)上進(jìn)行開發(fā)修改[5]。

      首先在工程中導(dǎo)入開源項目android-serialport-api的源代碼,然后修改代碼。建立串口通信代碼如下:

      // 調(diào)用android-serialport-api自帶的open方法,根據(jù)選擇的波特率與設(shè)備名稱打開串口

      FileDescriptor m_FileDescriptor = open ( device_name , baudrate, flags);

      // 得到輸入輸出流

      InputStream m_com_InStream = new FileInputStream ( m_FileDescriptor );

      OutputStream m_com_OutStream = new FileOutputStream ( m_FileDescriptor );

      3.2.2 通信的自動建立

      Android的藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口和USB轉(zhuǎn)串口雖然在建立通信過程中的實現(xiàn)細(xì)節(jié)不同,但其過程皆可以概括為利用所需參數(shù)(藍(lán)牙Mac地址、WiFi IP地址與端口號、串口波特率與設(shè)備名稱)經(jīng)過多步配置建立連接,最終得到輸入輸出流??梢岳闷溥^程中的相似性編寫統(tǒng)一的建立通信方法,方法根據(jù)通信方式m_ComMode 調(diào)用對應(yīng)的通信建立程序,通過通用通信地址m_ComAddr經(jīng)多步配置建立連接,得到輸入輸出流。

      3.3 數(shù)據(jù)通信功能設(shè)計

      數(shù)據(jù)通信功能是Android透明串口傳輸模塊面向用戶的接口,提供一組輸入輸出方法read()、write(),用戶通過此方法經(jīng)藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口或USB轉(zhuǎn)串口模塊與下位機(jī)串口通信。

      InputStream/OutputStream類與DataInputStream/DataOutputStream類存在繼承關(guān)系,它們的read()、write()方法具有相同的名稱與參數(shù)形式,無論建立何種通信方式,都可以用同樣的方法對它們進(jìn)行讀寫。輸入輸出流讀寫主要方法的如下:根據(jù)通信方式選擇對應(yīng)的輸入流讀取數(shù)據(jù)、根據(jù)通信方式選擇對應(yīng)的輸出流寫入數(shù)據(jù)。

      對于設(shè)備流數(shù)據(jù)讀寫,一般為阻塞方式, 為適應(yīng)阻塞操作,本模塊創(chuàng)建一個用于數(shù)據(jù)讀寫的讀寫線程[6]。讀寫方法read()、write()將讀寫輸入輸出流所需參數(shù)m_receive_byte_Offset(接收數(shù)據(jù)起始位)、m_receive_byteCount(接收數(shù)據(jù)位數(shù))、m_send_byte_Offset(發(fā)送數(shù)據(jù)起始位)、m_send_byteCount(發(fā)送數(shù)據(jù)位數(shù))傳遞給讀寫線程,讀寫線程調(diào)用read_stream()、write_stream()方法實現(xiàn)數(shù)據(jù)通信。read()、write()方法會休眠一定時間等待讀寫線程完成任務(wù),超出時限后不再等待,判定任務(wù)失敗,以避免調(diào)用程序的阻塞。

      4.應(yīng)用實例

      自動縫紉設(shè)備在服裝廠中應(yīng)用普遍,這些設(shè)備通常通過操作面板控制設(shè)備運(yùn)行、修改參數(shù)。操作面板界面不直觀,操作復(fù)雜。本文以Android平板代替操作面板,遠(yuǎn)程控制設(shè)備[7]。使用Android透明串口傳輸模塊,通過藍(lán)牙轉(zhuǎn)串口模塊與自動縫紉設(shè)備單片機(jī)串口通信。用戶操作Android觸摸屏向設(shè)備發(fā)送控制、修改參數(shù)指令,通過透明串口傳輸模塊發(fā)送至設(shè)備單片機(jī)串口,單片機(jī)執(zhí)行指令。單片機(jī)定時讀取設(shè)備當(dāng)前狀態(tài)參數(shù),通過藍(lán)牙轉(zhuǎn)串口模塊發(fā)送至Android設(shè)備,在觸摸屏顯示。

      5.結(jié)束語

      本文提出的Android透明串口傳輸模塊,將藍(lán)牙轉(zhuǎn)串口、WiFi轉(zhuǎn)串口和USB轉(zhuǎn)串口這三種通信方式封裝在一起,用戶可以任意選擇一種通信方式與下位機(jī)串口進(jìn)行通信,而不必關(guān)心每種方式的不同實現(xiàn)細(xì)節(jié),簡化了Android工業(yè)控制應(yīng)用程序開發(fā),提高了開發(fā)效率。

      參考文獻(xiàn):

      [1]鄭彪,汪秉文.串口通信在工業(yè)控制中的應(yīng)用[J].自動化儀表,2002,23(4):58-59.

      [2]黃慧萍,肖世德,孟祥印.基于Android平臺的步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)[J].制造業(yè)自動化,2014,36(2):44-47,61.

      [3]李黎國,張輝,程號.基于Android健康服務(wù)終端藍(lán)牙傳輸軟件的設(shè)計[J].電子科技,2012,25(5):115-118.

      [4]向誠,謝峰粹.基于WiFi和Android的智能探測車設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(12):82-85.

      [5]趙春亭,左小五.基于Android系統(tǒng)的USB轉(zhuǎn)串口的研究[J].工業(yè)控制計算機(jī),2014,27(1):83-84.

      [6]朱冬梅,王錚,鄧先燦.微機(jī)與多臺單片機(jī)通信的多線程實現(xiàn)[J].計算機(jī)應(yīng)用,2000,20(10):79-80.

      [7]李培培,朱維杰.基于Android車載虛擬儀表人機(jī)界面設(shè)計[J].電子科技,2013,26(2):74-75,78.

      作者簡介:

      何塽納(1989-),男(漢族),浙江省奉化人,杭州電子科技大學(xué)碩士生,主要研究方向為軟件開發(fā)。

      猜你喜歡
      工業(yè)控制無線局域網(wǎng)安卓
      文物表情包
      從電氣自動化安全角度談西門子工業(yè)控制PLC應(yīng)用
      WIFI頻段波束可切換開關(guān)天線的設(shè)計與實現(xiàn)
      無線網(wǎng)絡(luò)高校圖書館無線局域網(wǎng)安全性研究
      一種基于安卓系統(tǒng)的手機(jī)側(cè)抓包分析方法
      針對無線局域網(wǎng)攻擊技術(shù)的研究
      論校園無線局域網(wǎng)的攻擊與防御
      分頻計數(shù)在汽車檢測中的應(yīng)用
      淺論工業(yè)控制過程DCS系統(tǒng)常見電磁干擾及抑制方法
      ZigBee技術(shù)在工業(yè)控制中的應(yīng)用探討
      焦作市| 崇文区| 玉溪市| 兴仁县| 长汀县| 观塘区| 宁海县| 金湖县| 清丰县| 承德县| 铜梁县| 恭城| 黑河市| 德州市| 理塘县| 西城区| 翁源县| 石嘴山市| 塘沽区| 桦南县| 娄烦县| 嘉善县| 张家口市| 大庆市| 饶阳县| 茌平县| 营山县| 凤冈县| 南岸区| 阳江市| 开平市| 镇坪县| 民乐县| 鹤庆县| 翁源县| 宣威市| 台山市| 谢通门县| 临桂县| 齐齐哈尔市| 澄城县|