国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      通用的usb轉(zhuǎn)串口設(shè)備控制方法

      文檔序號(hào):6444160閱讀:502來源:國(guó)知局
      專利名稱:通用的usb轉(zhuǎn)串口設(shè)備控制方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種USB轉(zhuǎn)串口設(shè)備控制技術(shù)。
      背景技術(shù)
      隨著科技的進(jìn)步,各種各樣的設(shè)備開始走進(jìn)人們的生活。其中有很大一批設(shè)備是可以與電腦進(jìn)行連接的,同時(shí)有很大一批設(shè)備是通過USB轉(zhuǎn)串口方式連接到電腦上的。有很多設(shè)備生產(chǎn)廠商針對(duì)自己的產(chǎn)品定義了協(xié)議,根據(jù)協(xié)議向設(shè)備發(fā)送控制命令,以及接受并解析設(shè)備返回的指令。這些設(shè)備廠商在發(fā)布自己的產(chǎn)品時(shí)都會(huì)相應(yīng)地提供一套可在PC機(jī)上運(yùn)行的軟件,用于對(duì)自己生產(chǎn)的某種或某幾種設(shè)備進(jìn)行處理。如果某個(gè)廠商想針對(duì)另外一個(gè)商家的設(shè)備開發(fā)應(yīng)用,就必須了解其設(shè)備的通信協(xié)議,同時(shí)處理對(duì)設(shè)備數(shù)據(jù)的讀寫。這就造成了設(shè)備與廠商的緊密依賴關(guān)系。經(jīng)過對(duì)USB轉(zhuǎn)串口設(shè)備的研究,我們發(fā)現(xiàn)對(duì)所有USB轉(zhuǎn)串口設(shè)備都有如下特性:串口波特率,數(shù)據(jù)位,奇偶校驗(yàn),停止位,流控制方式。目前研究的USB轉(zhuǎn)串口設(shè)備或者主動(dòng)輸出數(shù)據(jù),或者需要外部出發(fā)才會(huì)傳輸數(shù)據(jù)。同時(shí)我們也發(fā)現(xiàn)USB轉(zhuǎn)串口設(shè)備的接收和發(fā)送的指令數(shù)據(jù)的格式可以分成幾大類,其中包括:指令字+指令長(zhǎng)度+指令數(shù)據(jù);指令頭+指令數(shù)據(jù)+指令尾。有些USB轉(zhuǎn)串口設(shè)備的數(shù)據(jù)的長(zhǎng)度是固定的,有些USB轉(zhuǎn)串口設(shè)備需要首先向其發(fā)送一條某個(gè)長(zhǎng)度的指令,然后會(huì)返回一個(gè)已知長(zhǎng)度的數(shù)據(jù)。利用這些研究結(jié)果我們可以設(shè)計(jì)一種通用的USB轉(zhuǎn)串口設(shè)備控制方案。這種方案經(jīng)過一個(gè)USB轉(zhuǎn)串口設(shè)備的初始化過程,然后就可以通過向設(shè)備發(fā)送指令對(duì)其進(jìn)行控制,獲取其返回?cái)?shù)據(jù)了。如2011年4月29日公開的中國(guó)專利,公開號(hào)為CN102185918A,公開了一種用于遠(yuǎn)程串口控制的無線節(jié)點(diǎn),此方法是使用ZigBee技術(shù),通過兩個(gè)接口節(jié)點(diǎn),一個(gè)通過串口與串口設(shè)備連接,另一個(gè)通過USB接口與PC連接,通過在PC端發(fā)送指令控制串口設(shè)備,但該技術(shù)沒有解決遠(yuǎn)端串口設(shè)備的數(shù)據(jù)的讀取問題。

      發(fā)明內(nèi)容
      本發(fā)明的技術(shù)效果能夠克服上述缺陷,提供一種通用的USB轉(zhuǎn)串口設(shè)備控制方法,其提高應(yīng)用開發(fā)者針對(duì)USB轉(zhuǎn)串口設(shè)備進(jìn)行應(yīng)用開發(fā)的效率,免去其在USB轉(zhuǎn)串口開發(fā)上的工作。為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:其包括如下步驟:(I)監(jiān)聽?wèi)?yīng)用消息;(2)判斷是否收到應(yīng)用消息,沒有收到,返回步驟⑴;收到,進(jìn)行下一步驟;(3)判斷是否為初始化消息:是初始化消息,進(jìn)行如下步驟:(I)解析消息,啟動(dòng)設(shè)備處理子進(jìn)程,當(dāng)主進(jìn)程啟動(dòng)設(shè)備處理子進(jìn)程后返回監(jiān)聽?wèi)?yīng)用消息步驟;(II)子進(jìn)程啟動(dòng)監(jiān)聽主進(jìn)程消息的線程;
      (III)子進(jìn)程判斷設(shè)備是否為主動(dòng)型設(shè)備:不是主動(dòng)型設(shè)備,接收設(shè)備數(shù)據(jù),并判斷是否接收到數(shù)據(jù),若沒有收到數(shù)據(jù),繼續(xù)接收設(shè)備數(shù)據(jù);收到數(shù)據(jù),將設(shè)備數(shù)據(jù)封裝發(fā)送給主進(jìn)程,主進(jìn)程對(duì)消息進(jìn)行解析、封裝,發(fā)送給對(duì)應(yīng)應(yīng)用;是主動(dòng)型設(shè)備,子進(jìn)程啟動(dòng)監(jiān)聽設(shè)備消息的線程;不是初始化消息,進(jìn)行下一步驟;(4)將控制指令封裝成消息發(fā)送給處理設(shè)備的子進(jìn)程;(5)子進(jìn)程解析消息;(6)子進(jìn)程將指令數(shù)據(jù)發(fā)送給設(shè)備;(7)子進(jìn)程判斷設(shè)備是否為被動(dòng)型設(shè)備,是被動(dòng)型設(shè)備,進(jìn)行下一步驟;(8)接收設(shè)備數(shù)據(jù);(9)將設(shè)備數(shù)據(jù)封裝成消息,發(fā)送給主進(jìn)程;(10)主進(jìn)程解析子進(jìn)程消息,得到設(shè)備數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行封裝,將數(shù)據(jù)發(fā)送給應(yīng)用。本發(fā)明主要解決如下幾個(gè)問題:USB轉(zhuǎn)串口設(shè)備數(shù)據(jù)格式的抽象,分類;USB轉(zhuǎn)串口設(shè)備初始化信息的抽取;USB轉(zhuǎn)串口設(shè)備的初始化,包括設(shè)備本身及對(duì)其處理的方式的初始化。雙數(shù)流程可以描述為:如果是初始化消息,解析出初始化數(shù)據(jù),包括串口點(diǎn)(相對(duì)于Linux系統(tǒng)為文件掛載點(diǎn),相對(duì)于Windows系統(tǒng)為端口號(hào))串口波特率,數(shù)據(jù)位,奇偶校驗(yàn),停止位,流控制方式,數(shù)據(jù)格式類別,設(shè)備類別(主動(dòng)型設(shè)備或被動(dòng)型設(shè)備)。啟動(dòng)設(shè)備處理子進(jìn)程,設(shè)備處理子進(jìn)程啟動(dòng)監(jiān)聽接收主進(jìn)程消息的線程,設(shè)備處理子進(jìn)程根據(jù)設(shè)備是否是主動(dòng)型設(shè)備,決定是否啟動(dòng)監(jiān)聽設(shè)備消息的線程。如果不是初始化消息,解析出設(shè)備控制指令,將控制指令封裝成消息發(fā)送給相應(yīng)的設(shè)備處理子進(jìn)程。設(shè)備數(shù)據(jù)處理子進(jìn)程解析消息,將指令數(shù)據(jù)發(fā)送給設(shè)備,如果設(shè)備是被動(dòng)型設(shè)備,則接收起返回?cái)?shù)據(jù),封裝消息發(fā)送給主進(jìn)程,主進(jìn)程解析消息,封裝,并發(fā)送給對(duì)應(yīng)應(yīng)用。初始化消息包括串口波特率、數(shù)據(jù)位、奇偶校驗(yàn)、停止位、流控制方式、數(shù)據(jù)格式類另O、設(shè)備類別。設(shè)備分為被動(dòng)型設(shè)備和主動(dòng)型設(shè)備,主動(dòng)型設(shè)備的設(shè)備本身不需要出發(fā)指令,而主動(dòng)輸出數(shù)據(jù);被動(dòng)型設(shè)備只有在接收到控制指令后,才輸出數(shù)據(jù)。數(shù)據(jù)格式包括控制指令格式和返回指令格式,其包括四種類型:控制指令及返回指令格式均為:指令字+指令長(zhǎng)度+指令數(shù)據(jù);控制指令及返回指令格式均為:指令頭+指令數(shù)據(jù)+指令尾;控制指令及返回指令具有固定的長(zhǎng)度;某條控制指令對(duì)應(yīng)某條數(shù)據(jù)指令,并且該條數(shù)據(jù)指令的長(zhǎng)度可知。根據(jù)初始化信息進(jìn)行串口初始化,以及數(shù)據(jù)格式相關(guān)項(xiàng)初始化。按照數(shù)據(jù)格式類別進(jìn)行控制指令的接收,向串口寫入數(shù)據(jù)實(shí)現(xiàn)對(duì)設(shè)備的控制,進(jìn)行串口數(shù)據(jù)的接收,向設(shè)備應(yīng)用發(fā)送實(shí)現(xiàn)設(shè)備數(shù)據(jù)的傳輸。本發(fā)明的通用USB轉(zhuǎn)串口設(shè)備控制方法,為USB轉(zhuǎn)串口設(shè)備的遠(yuǎn)程控制提供了條件,擴(kuò)大了設(shè)備的應(yīng)用空間,免除了應(yīng)用開發(fā)商對(duì)硬件設(shè)備的處理工作。


      圖1為本發(fā)明的流程示意圖。
      具體實(shí)施例方式本發(fā)明的通用USB轉(zhuǎn)串口設(shè)備控制方法包括如下步驟:(I)監(jiān)聽?wèi)?yīng)用消息;(2)判斷是否收到應(yīng)用消息,沒有收到,返回步驟⑴;收到,進(jìn)行下一步驟;(3)判斷是否為初始化消息:是初始化消息,進(jìn)行如下步驟:(I)解析消息,啟動(dòng)設(shè)備處理子進(jìn)程,當(dāng)主進(jìn)程啟動(dòng)設(shè)備處理子進(jìn)程后返回監(jiān)聽?wèi)?yīng)用消息步驟;(II)子進(jìn)程啟動(dòng)監(jiān)聽主進(jìn)程消息的線程;(III)子進(jìn)程判斷設(shè)備是否為主動(dòng)型設(shè)備:不是主動(dòng)型設(shè)備,接收設(shè)備數(shù)據(jù),并判斷是否接收到數(shù)據(jù),若沒有收到數(shù)據(jù),繼續(xù)接收設(shè)備數(shù)據(jù);收到數(shù)據(jù),將設(shè)備數(shù)據(jù)封裝發(fā)送給主進(jìn)程,主進(jìn)程對(duì)消息進(jìn)行解析、封裝,發(fā)送給對(duì)應(yīng)應(yīng)用;是主動(dòng)型設(shè)備,子進(jìn)程啟動(dòng)監(jiān)聽設(shè)備消息的線程;不是初始化消息,進(jìn)行下一步驟;(4)將控制指令封裝成消息發(fā)送給處理設(shè)備的子進(jìn)程;(5)子進(jìn)程解析消息;(6)子進(jìn)程將指令數(shù)據(jù)發(fā)送給設(shè)備;(7)子進(jìn)程判斷設(shè)備是否為被動(dòng)型設(shè)備,是被動(dòng)型設(shè)備,進(jìn)行下一步驟;(8)接收設(shè)備數(shù)據(jù);(9)將設(shè)備數(shù)據(jù)封裝成消息,發(fā)送給主進(jìn)程;(10)主進(jìn)程解析子進(jìn)程消息,得到設(shè)備數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行封裝,將數(shù)據(jù)發(fā)送給應(yīng)用。本發(fā)明的控制方法不僅能夠?qū)崿F(xiàn)USB轉(zhuǎn)串口設(shè)備的控制,同時(shí)能夠?qū)崿F(xiàn)對(duì)USB轉(zhuǎn)串口設(shè)備數(shù)據(jù)的讀取。根據(jù)USB轉(zhuǎn)串口設(shè)備輸出數(shù)據(jù)的情形將設(shè)備分為被動(dòng)型設(shè)備(編號(hào)01)和主動(dòng)型設(shè)備(編號(hào)02)。當(dāng)設(shè)備本身不需要出發(fā)指令,而主動(dòng)輸出數(shù)據(jù)時(shí),稱該設(shè)備為主動(dòng)型設(shè)備;當(dāng)設(shè)備本身只有在接收到控制指令后,才輸出數(shù)據(jù)時(shí),稱該設(shè)備為被動(dòng)型設(shè)備。將USB轉(zhuǎn)串口設(shè)備的數(shù)據(jù)格式進(jìn)行抽象,分類。根據(jù)現(xiàn)有研究結(jié)果可分為如下四類(根據(jù)研究的深入,可能會(huì)發(fā)現(xiàn)新的數(shù)據(jù)格式類,此處可進(jìn)行擴(kuò)展),并進(jìn)行編號(hào):控制指令及返回指令格式均為:指令字+指令長(zhǎng)度+指令數(shù)據(jù),此類編號(hào)為01??刂浦噶罴胺祷刂噶罡袷骄鶠?指令頭+指令數(shù)據(jù)+指令尾,此類編號(hào)為02。控制指令及返回指令具有固定的長(zhǎng)度,此類編號(hào)為03。某條控制指令對(duì)應(yīng)某條數(shù)據(jù)指令,并且該條數(shù)據(jù)指令的長(zhǎng)度可知,此類編號(hào)為04。定義數(shù)據(jù)格式解析相關(guān)規(guī)則內(nèi)容
      數(shù)據(jù)格式類別為01時(shí),數(shù)據(jù)格式解析按照“&指令字長(zhǎng)度&指令長(zhǎng)度長(zhǎng)度&”規(guī)則進(jìn)行,其中“&”為分隔符。數(shù)據(jù)格式類別為02時(shí),數(shù)據(jù)格式解析按照“&指令頭長(zhǎng)度&指令尾長(zhǎng)度&”規(guī)則進(jìn)行,其中“&”為分隔符。數(shù)據(jù)格式類別為03時(shí),數(shù)據(jù)格式解析按照“&指令長(zhǎng)度&”規(guī)則進(jìn)行,其中“&”為分隔符。數(shù)據(jù)格式類別為04時(shí),數(shù)據(jù)格式不在此處解析。
      權(quán)利要求
      1.一種通用的USB轉(zhuǎn)串口設(shè)備控制方法,其特征在于,包括如下步驟: (1)監(jiān)聽?wèi)?yīng)用消息; (2)判斷是否收到應(yīng)用消息,沒有收到,返回步驟(I);收到,進(jìn)行下一步驟; (3)判斷是否為初始化消息: 是初始化消息,進(jìn)行如下步驟: (I)解析消息,啟動(dòng)設(shè)備處理子進(jìn)程,當(dāng)主進(jìn)程啟動(dòng)設(shè)備處理子進(jìn)程后返回監(jiān)聽?wèi)?yīng)用消息步驟; (II)子進(jìn)程啟動(dòng)監(jiān)聽主進(jìn)程消息的線程; (III)子進(jìn)程判斷設(shè)備是否為主動(dòng)型設(shè)備: 不是主動(dòng)型設(shè)備,接收設(shè)備數(shù)據(jù),并判斷是否接收到數(shù)據(jù),若沒有收到數(shù)據(jù),繼續(xù)接收設(shè)備數(shù)據(jù);收到數(shù)據(jù),將設(shè)備數(shù)據(jù)封裝發(fā)送給主進(jìn)程,主進(jìn)程對(duì)消息進(jìn)行解析、封裝,發(fā)送給對(duì)應(yīng)應(yīng)用; 是主動(dòng)型設(shè)備,子進(jìn)程啟動(dòng)監(jiān)聽設(shè)備消息的線程; 不是初始化消息,進(jìn)行下一步驟; (4)將控制指令封裝成消息發(fā)送給處理設(shè)備的子進(jìn)程; (5)子進(jìn)程解析消息; (6)子進(jìn)程將指令數(shù)據(jù)發(fā)送給設(shè)備; (7)子進(jìn)程判斷設(shè)備是否為被動(dòng)型設(shè)備,是被動(dòng)型設(shè)備,進(jìn)行下一步驟; (8)接收設(shè)備數(shù)據(jù); (9)將設(shè)備數(shù)據(jù)封裝成消息,發(fā)送給主進(jìn)程; (10)主進(jìn)程解析子進(jìn)程消息,得到設(shè)備數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行封裝,將數(shù)據(jù)發(fā)送給應(yīng)用。
      2.根據(jù)權(quán)利要求1所述的通用的USB轉(zhuǎn)串口設(shè)備控制方法,其特征在于,初始化消息包括串口波特率、數(shù)據(jù)位、奇偶校驗(yàn)、停止位、流控制方式、數(shù)據(jù)格式類別、設(shè)備類別。
      3.根據(jù)權(quán)利要求1或2所述的通用的USB轉(zhuǎn)串口設(shè)備控制方法,其特征在于,設(shè)備分為被動(dòng)型設(shè)備和主動(dòng)型設(shè)備,主動(dòng)型設(shè)備的設(shè)備本身不需要出發(fā)指令而主動(dòng)輸出數(shù)據(jù);被動(dòng)型設(shè)備只有在接收到控制指令后,才輸出數(shù)據(jù)。
      4.根據(jù)權(quán)利要求2所述的通用的USB轉(zhuǎn)串口設(shè)備控制方法,其特征在于,數(shù)據(jù)格式包括控制指令格式和返回指令格式,其包括四種類型: 控制指令及返回指令格式均為:指令字+指令長(zhǎng)度+指令數(shù)據(jù); 控制指令及返回指令格式均為:指令頭+指令數(shù)據(jù)+指令尾; 控制指令及返回指令具有固定的長(zhǎng)度; 某條控制指令對(duì)應(yīng)某條數(shù)據(jù)指令,并且該條數(shù)據(jù)指令的長(zhǎng)度可知。
      全文摘要
      本發(fā)明涉及一種USB轉(zhuǎn)串口設(shè)備控制技術(shù)。本發(fā)明的通用的USB轉(zhuǎn)串口設(shè)備控制方法,包括如下步驟(1)監(jiān)聽?wèi)?yīng)用消息;(2)判斷是否收到應(yīng)用消息,沒有收到,返回步驟(1);收到,進(jìn)行下一步驟;(3)判斷是否為初始化消息(4)將控制指令封裝成消息發(fā)送給處理設(shè)備的子進(jìn)程;(5)子進(jìn)程解析消息;(6)子進(jìn)程將指令數(shù)據(jù)發(fā)送給設(shè)備;(7)子進(jìn)程判斷設(shè)備是否為被動(dòng)型設(shè)備;(8)接收設(shè)備數(shù)據(jù);(9)將設(shè)備數(shù)據(jù)封裝成消息,發(fā)送給主進(jìn)程;(10)主進(jìn)程解析子進(jìn)程消息,得到設(shè)備數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行封裝,將數(shù)據(jù)發(fā)送給應(yīng)用。本發(fā)明的通用USB轉(zhuǎn)串口設(shè)備控制方法,為USB轉(zhuǎn)串口設(shè)備的遠(yuǎn)程控制提供了條件。
      文檔編號(hào)G06F13/10GK103186485SQ20111045120
      公開日2013年7月3日 申請(qǐng)日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
      發(fā)明者于忠清, 王艷青, 丁香乾, 王恒剛, 胡章軍, 劉偉國(guó) 申請(qǐng)人:青島海爾軟件有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1