當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:介紹一種基于USB總線的數(shù)字機(jī)器人控制系統(tǒng)的軟件結(jié)構(gòu)以及其上位機(jī)與下位機(jī)通信的實(shí)現(xiàn)機(jī)制。 關(guān)鍵詞:USB 教學(xué)機(jī)器人 通信 EDUROBOT-680-II型教學(xué)機(jī)器人是上海交通大學(xué)機(jī)器人研究所采用世界銀行貸款研制的一種

摘要:介紹一種基于USB總線的數(shù)字機(jī)器人控制系統(tǒng)的軟件結(jié)構(gòu)以及其上位機(jī)與下位機(jī)通信的實(shí)現(xiàn)機(jī)制。 關(guān)鍵詞:USB 教學(xué)機(jī)器人 通信 EDUROBOT-680-II型教學(xué)機(jī)器人是上海交通大學(xué)機(jī)器人研究所采用世界銀行貸款研制的一種五自由度多關(guān)節(jié)的機(jī)器人。它具備工業(yè)機(jī)器的基本功能、良好的開(kāi)放性以及舒適的使用界面,主要大專(zhuān)院校和科研機(jī)構(gòu)提供教學(xué)和科研工具。學(xué)生可以通過(guò)親手操作了解和學(xué)習(xí)工業(yè)機(jī)器人,它具備工業(yè)機(jī)器人的基本功能、良好的開(kāi)放性以及舒適的使用界面,主要為大專(zhuān)院校和科研機(jī)構(gòu)提供教學(xué)和科研工具。學(xué)生可以通過(guò)親手操作了解和學(xué)習(xí)工業(yè)機(jī)器人,科研人員還可對(duì)它進(jìn)行二次開(kāi)發(fā)。 教學(xué)機(jī)器人的上位機(jī)(主控計(jì)算機(jī))和下位機(jī)(運(yùn)動(dòng)控制器)原先采用并行口(LPT1)的SPP方式進(jìn)行通信。利用LPT1的狀態(tài)寄存器(Status Port)具有的讀能力和每次傳送半字節(jié)(Nibble)來(lái)實(shí)現(xiàn)數(shù)據(jù)的雙向傳送功能。每次傳送的時(shí)序(次序)由軟件建立,在控制字的協(xié)調(diào)下按照教學(xué)機(jī)器人的通信協(xié)議接收和發(fā)送數(shù)據(jù)。 目前USB越來(lái)越普及,正逐漸取代串口和并口在計(jì)算機(jī)接口中的地位。為了研究USB在實(shí)時(shí)通信時(shí)的性能,筆者已將教學(xué)機(jī)器人上下位機(jī)通信改用USB端口實(shí)現(xiàn)。 圖1 PL-2301結(jié)構(gòu)框圖 1 USB特點(diǎn)及其應(yīng)用 通用串行總線USB(Universal Serial Bus)是1994年底由Compaq、IBM、Microsoft等多家公司聯(lián)合提出的一種計(jì)算機(jī)接噪覆亡,目前已發(fā)展到USB2.0。由于USB具有以下幾方面的特點(diǎn),所以迅速普及,逐漸確定了在計(jì)算機(jī)接口中的主導(dǎo)地位。 (1)易用性。USB支持熱插拔和即插即用。 (2)可擴(kuò)展性。用戶可以通過(guò)連接USB集線器到一個(gè)已有的端口來(lái)增加USB端口數(shù)量,集線器上還可以連更多的集線器。理論上可以連接127個(gè)外設(shè)到 USB總線上。 (3)快速性。USB1.1版規(guī)定了兩種傳輸速率:低速傳輸和全速傳輸。低速傳輸?shù)乃俾适?.5Mbps,全速是12Mbps。這不但遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的串口傳輸速率,也比并口傳輸快了好多倍。最近推出的USB2.0允許的最高傳輸速率高達(dá)480Mbps。 (4)可靠性。USB的可靠性來(lái)自硬件設(shè)計(jì)和USB數(shù)據(jù)傳輸協(xié)議兩方面的保證。USB驅(qū)動(dòng)器、接收器和電纜的硬件規(guī)范消除了大多數(shù)可能引起數(shù)據(jù)錯(cuò)誤的噪聲;USB協(xié)議使用了差錯(cuò)校驗(yàn)和數(shù)據(jù)重傳機(jī)制,可以最大程度保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。


(5)內(nèi)置電源。USB總線內(nèi)置電源線,可以給外設(shè)提供5V和最多500mA的電源供應(yīng),滿足大部分低功耗外設(shè)的電源要求。 由于USB具有這些突出的優(yōu)點(diǎn),不但一些傳統(tǒng)外設(shè)開(kāi)始提供USB接口,而且大量新型外設(shè)也把USB接口作為首先甚至唯一的接口,如MP3播放器、移動(dòng)硬盤(pán)等。由于USB的高可靠性和足夠快的通信速率,USB開(kāi)始應(yīng)用于工業(yè)級(jí)的實(shí)時(shí)通信和控制,例如機(jī)器人系統(tǒng)中示教盒與控制器的通信。本文論述的用USB端口實(shí)現(xiàn)機(jī)器人上位機(jī)與下位機(jī)的通信也屬于這些方面的應(yīng)用。 2 用USB實(shí)現(xiàn)計(jì)算機(jī)雙機(jī)通信 由于USB模型是一種Host-Slave(主機(jī)-外設(shè))主從式結(jié)構(gòu),沒(méi)有辦法使兩臺(tái)主機(jī)不通過(guò)外設(shè)而直接通過(guò)USB總線通信。然而可通過(guò)增加外設(shè)控制器的方法使兩臺(tái)主機(jī)利用它們的USB端口通信。每個(gè)外設(shè)控制器連接到不同的主要,并利用共享的緩沖器交換數(shù)據(jù)。Cypress公司的EZ-Link和 Prolific公司的PL-2301把兩個(gè)外設(shè)控制器和共享緩沖區(qū)集成到一塊芯片上,作為兩臺(tái)主機(jī)通過(guò)USB總線通俗訴橋梁。其它公司也提供類(lèi)似的控制芯片。在教學(xué)機(jī)器人中,采用PL-2301。 PL-2301是臺(tái)灣Prolific公司生產(chǎn)的一種全速USB控制芯片。PL-2301的結(jié)構(gòu)框圖如圖1所示。 PL-2301包括兩套獨(dú)立的USB控制單元。在握手信號(hào)的協(xié)調(diào)下,它們通過(guò)兩個(gè)FIFO緩沖器無(wú)阻塞地交換數(shù)據(jù)。PL-2301包含四個(gè)終端:缺省的控制終端(地址00H)、中斷終端(地址81H)、塊輸出終端(地址02H)、塊輸入終端(地址83H)??刂苽鬏斢糜谠谥鳈C(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é)),它是所有傳輸類(lèi)型中最快的。為了確何教學(xué)機(jī)器人上下位機(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é)問(wèn)題并不需要控制,由PL-2301的驅(qū)動(dòng)程序完成。 圖3 教學(xué)機(jī)器人控制系統(tǒng)軟件結(jié)構(gòu) 3 軟件結(jié)構(gòu) 3.1 教學(xué)機(jī)器人軟件結(jié)構(gòu) EDUROBOT-680-II型教學(xué)機(jī)器人控制系統(tǒng)的控制軟件包括下位機(jī)的底層控制軟件和上位機(jī)的上層控制軟件,它們通過(guò)USB端口通信。其軟件結(jié)構(gòu)如圖3所示。 上層控制軟件運(yùn)行在Windows98平臺(tái)上,它為用戶提供與機(jī)器人交互的人機(jī)接口界面,完成復(fù)雜運(yùn)動(dòng)控制的數(shù)據(jù)處理和插補(bǔ)計(jì)算。它由人機(jī)界面、運(yùn)算插補(bǔ)、主控、通信四大模塊構(gòu)成。通信模塊能夠?qū)崟r(shí)地發(fā)送控制命令給下位機(jī)并從下位機(jī)獲得反饋信息,同時(shí)保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。 為了提供對(duì)USB的支持(為了使底層控制系統(tǒng)有更好的實(shí)時(shí)性和更緊湊,下一步準(zhǔn)備將底層控制系統(tǒng)改用支持USB的Windows CE、VxWorks或嵌入式Linux),底層控制系統(tǒng)目前采用Windows98平臺(tái)。底層控制軟件接口收上層控制軟件的控制命令,同時(shí)解釋并執(zhí)行控制命令。這通過(guò)多線程實(shí)現(xiàn)。任務(wù)調(diào)度和管理模塊是底層控制軟件的主線程,它負(fù)責(zé)從指令隊(duì)列中取出指令并解釋執(zhí)行。主線程執(zhí)行過(guò)程會(huì)產(chǎn)生一個(gè)輔助線程——通信線程。通信線程調(diào)用通信模塊的輸出函數(shù),負(fù)責(zé)監(jiān)視USB端口。如果上位機(jī)傳來(lái)控制命令,則遵循教學(xué)機(jī)器人通信協(xié)議接收并存入指令隊(duì)列中。 3.2 通信模塊的實(shí)現(xiàn) 上位機(jī)和下位機(jī)控制軟件共用相同的PL-2301客戶驅(qū)動(dòng)程序、傳輸模塊(由Prolific公司提供)和通信模塊。 PL-2301客戶驅(qū)動(dòng)程序是典型的WDM驅(qū)動(dòng)程序。驅(qū)動(dòng)程序屏蔽了底層的硬件細(xì)節(jié)和USB協(xié)議,使上層軟件僅通過(guò)驅(qū)動(dòng)程序接口函數(shù)就可以訪問(wèn)PL- 2301。主要的幾個(gè)驅(qū)動(dòng)程序接口函數(shù)是CreateFile()、WriteFile()、ReadFile()、 DeviceIOControl()。 傳輸模塊(Transfer.dll)是驅(qū)動(dòng)程序的上層模塊,它通過(guò)調(diào)用驅(qū)動(dòng)程序接口函數(shù),實(shí)現(xiàn)了兩臺(tái)主機(jī)通過(guò)PL-2301通信的基本通信能力。 Transfer.dll會(huì)產(chǎn)生一列三個(gè)線程: (1)發(fā)送線程。這個(gè)線程對(duì)發(fā)送請(qǐng)求進(jìn)行排隊(duì)并按先后順序處理請(qǐng)求。如果出現(xiàn)錯(cuò)誤,則努力恢復(fù)。


(2)接收線程。這個(gè)線程等待來(lái)自狀態(tài)線程的消息,如果發(fā)現(xiàn)對(duì)方主機(jī)將要傳輸數(shù)據(jù),就按照傳輸協(xié)議接收數(shù)據(jù)。接收線程把接收到的數(shù)據(jù)放在接收FIFO緩沖器中,等待上層軟件(Comm.dll)取走。如果有錯(cuò)誤發(fā)生時(shí),也會(huì)努力恢復(fù)。 (3)狀態(tài)線程。這個(gè)線程監(jiān)視PL-2301的狀態(tài)信號(hào)。如果發(fā)現(xiàn)有任何狀態(tài)改變,它將給相關(guān)線程發(fā)消息或調(diào)用回調(diào)函數(shù)通知上層軟件。 Transfer.dll提供幾個(gè)供上層軟件(Comm.dll)調(diào)用的輸出函數(shù): %26;#183;USB_InitService()調(diào)用Transfer.dll里的其他輸出函數(shù)之間必須先調(diào)用這個(gè)函數(shù)。 %26;#183;USB_OpenConnect()調(diào)用此函數(shù)獲得PL-2301的句柄。發(fā)送和接收數(shù)據(jù)時(shí)要用到這個(gè)句柄。 %26;#183;USB_WriteConnect()調(diào)用此函數(shù)向?qū)Ψ街鳈C(jī)發(fā)送指定的數(shù)據(jù)。 %26;#183;USB_ReadConnect()調(diào)用此函數(shù)從接收FIFO緩沖器中讀取數(shù)據(jù)。 通信模塊(Comm.dll)通過(guò)調(diào)用Transfer.dll提供的輸出函數(shù)完成教學(xué)機(jī)器人控制命令的發(fā)送和接收。為了協(xié)調(diào)命令的發(fā)送和接收,定義了套控制字,作為上位機(jī)與下位機(jī)通信時(shí)的握手信號(hào)(與PL-2301的握手信號(hào)沒(méi)有聯(lián)系)。上位機(jī)發(fā)送數(shù)據(jù)(控制命令或控制字)時(shí),直接調(diào)用USB- WriteConnect()即可。下位機(jī)讀取數(shù)據(jù)采取輪詢方式,循環(huán)調(diào)用USB-Read Connect()掃描USB端口,如果有數(shù)據(jù)則接收下來(lái)。如果接收到的是指令,則放入指令隊(duì)列中,等待任務(wù)管理和調(diào)度線程取走。圖4是上位機(jī)發(fā)送一條命令的示意圖。有些命令需要下位機(jī)發(fā)送返回值給上位機(jī),如讀機(jī)器人狀態(tài)命令status需要下位機(jī)發(fā)送返回值給上位機(jī),如讀機(jī)器人狀態(tài)命令status需要下位機(jī)把機(jī)器人狀態(tài)返回給上位機(jī)。下位機(jī)發(fā)送返回值的過(guò)程與上位機(jī)發(fā)送命令的過(guò)程相似。 USB作為一種新興的計(jì)算機(jī)外設(shè)接口標(biāo)準(zhǔn),其技術(shù)特點(diǎn)使不但能作為計(jì)算機(jī)與一般外設(shè)的接口,也可用于實(shí)時(shí)通信和控制。本文介紹的用USB實(shí)現(xiàn)教學(xué)機(jī)器為上下位機(jī)的通信,為機(jī)器人下位機(jī)通信提供了一種新穎、方便和可靠的解決方案。隨著USB2.0的推出,其高達(dá)480Mbps的傳輸速率可滿足高實(shí)時(shí)性要求的工業(yè)設(shè)備控制、動(dòng)態(tài)圖像實(shí)時(shí)傳輸?shù)龋瑸閁SB在更廣闊領(lǐng)域的應(yīng)用打下了堅(jiān)實(shí)的基礎(chǔ)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉