<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于USB接口的機(jī)器人上下位機(jī)通信

          基于USB接口的機(jī)器人上下位機(jī)通信

          作者: 時(shí)間:2012-04-18 來(lái)源:網(wǎng)絡(luò) 收藏

          PL-2301包括兩套獨(dú)立的USB控制單元。在握手信號(hào)的協(xié)調(diào)下,它們通過(guò)兩個(gè)FIFO緩沖器無(wú)阻塞地交換數(shù)據(jù)。PL-2301包含四個(gè)終端:缺省的控制終端(地址00H)、中斷終端(地址81H)、塊輸出終端(地址02H)、塊輸入終端(地址83H)。控制傳輸用于在主機(jī)列舉階段完成對(duì)PL-2301的配置及在兩臺(tái)主機(jī)通信時(shí)控制PL-2301的握手信號(hào);中斷傳輸用于PL-2301定期(每毫秒一次)向主機(jī)報(bào)告握手信號(hào)的狀態(tài);塊傳輸用于兩臺(tái)主機(jī)之間實(shí)時(shí)地交換數(shù)據(jù)。塊傳輸支持錯(cuò)誤檢測(cè),這對(duì)實(shí)時(shí)通信和控制很重要??刂苽鬏敱淮_保擁有10%的USB總線帶寬,中斷傳輸和等時(shí)傳輸最多可以使用90%的帶寬,塊傳輸使用剩余的最大可用帶寬(最多95%)。當(dāng)總線不太忙時(shí),由于塊傳輸只有一個(gè)很小的協(xié)議頭(13字節(jié)),它是所有傳輸類型中最快的。為了確何上下位機(jī)以最快的速度通信,滿足實(shí)時(shí)性要求,最好不要在USB總線上掛接過(guò)多的USB外設(shè)。

          PL-2301除了能對(duì)USB標(biāo)準(zhǔn)請(qǐng)求做出反應(yīng)外,還能對(duì)幾種廠商自定義的請(qǐng)求做出反應(yīng)。自定義請(qǐng)求ClearQuickLinkFeature和SetQuickLinkFeature用于控制兩臺(tái)主機(jī)通信時(shí)PL-2301的握手信號(hào)。這些握手信號(hào)是:

          (1)TX_RDY指示本地USB端口是否準(zhǔn)備好傳輸數(shù)據(jù)的指示信號(hào)。

          (2)S_EN掛起使能信號(hào)。置位后,PL-2301支持標(biāo)準(zhǔn)的USB掛起特性。

          (3)RESET_O塊輸出管道的復(fù)位信號(hào),用于出現(xiàn)錯(cuò)誤時(shí)復(fù)位塊輸出通道。

          (4)RESET_IN塊輸入管道的復(fù)位信號(hào),用于出現(xiàn)錯(cuò)誤時(shí)復(fù)位塊輸入管道。

          (5)TX_REQ塊傳輸?shù)恼?qǐng)求信號(hào)。

          (6)TX_C塊傳輸完成的指示信號(hào)。

          (7)PEER_E告訴對(duì)方本地端口是否連接好的指示信號(hào)。

          在這幾個(gè)握手信號(hào)的協(xié)調(diào)下,上位機(jī)和下位機(jī)可以雙向通信。圖2是主機(jī)PC A向PC B傳輸數(shù)據(jù)的流程圖。這些底層的細(xì)節(jié)問題并不需要控制,由PL-2301的驅(qū)動(dòng)程序完成。


          3 軟件結(jié)構(gòu)

          3.1 軟件結(jié)構(gòu)

          EDUROBOT-680-II型控制系統(tǒng)的控制軟件包括下位機(jī)的底層控制軟件和上位機(jī)的上層控制軟件,它們通過(guò)USB端口通信。其軟件結(jié)構(gòu)如圖3所示。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();