基于USB接口的機器人上下位機通信
PL-2301包括兩套獨立的USB控制單元。在握手信號的協(xié)調(diào)下,它們通過兩個FIFO緩沖器無阻塞地交換數(shù)據(jù)。PL-2301包含四個終端:缺省的控制終端(地址00H)、中斷終端(地址81H)、塊輸出終端(地址02H)、塊輸入終端(地址83H)??刂苽鬏斢糜谠谥鳈C列舉階段完成對PL-2301的配置及在兩臺主機通信時控制PL-2301的握手信號;中斷傳輸用于PL-2301定期(每毫秒一次)向主機報告握手信號的狀態(tài);塊傳輸用于兩臺主機之間實時地交換數(shù)據(jù)。塊傳輸支持錯誤檢測,這對實時通信和控制很重要??刂苽鬏敱淮_保擁有10%的USB總線帶寬,中斷傳輸和等時傳輸最多可以使用90%的帶寬,塊傳輸使用剩余的最大可用帶寬(最多95%)。當總線不太忙時,由于塊傳輸只有一個很小的協(xié)議頭(13字節(jié)),它是所有傳輸類型中最快的。為了確何教學機器人上下位機以最快的速度通信,滿足實時性要求,最好不要在USB總線上掛接過多的USB外設。
PL-2301除了能對USB標準請求做出反應外,還能對幾種廠商自定義的請求做出反應。自定義請求ClearQuickLinkFeature和SetQuickLinkFeature用于控制兩臺主機通信時PL-2301的握手信號。這些握手信號是:
(1)TX_RDY指示本地USB端口是否準備好傳輸數(shù)據(jù)的指示信號。
(2)S_EN掛起使能信號。置位后,PL-2301支持標準的USB掛起特性。
(3)RESET_O塊輸出管道的復位信號,用于出現(xiàn)錯誤時復位塊輸出通道。
(4)RESET_IN塊輸入管道的復位信號,用于出現(xiàn)錯誤時復位塊輸入管道。
(5)TX_REQ塊傳輸?shù)恼埱笮盘枴?P style="TEXT-INDENT: 30px">(6)TX_C塊傳輸完成的指示信號。
(7)PEER_E告訴對方本地端口是否連接好的指示信號。
在這幾個握手信號的協(xié)調(diào)下,上位機和下位機可以雙向通信。圖2是主機PC A向PC B傳輸數(shù)據(jù)的流程圖。這些底層的細節(jié)問題并不需要控制,由PL-2301的驅(qū)動程序完成。
3 軟件結(jié)構
3.1 教學機器人軟件結(jié)構
EDUROBOT-680-II型教學機器人控制系統(tǒng)的控制軟件包括下位機的底層控制軟件和上位機的上層控制軟件,它們通過USB端口通信。其軟件結(jié)構如圖3所示。
評論