伍 哲 張文群 郭文勇 韓江桂
(海軍工程大學動力工程學院 武漢 430033)
碼垛是按照集成單元化的思想,將一件件的物料按照一定的模式堆碼成垛,以便使單元化的物垛實現(xiàn)物料的存儲、搬運、裝卸、運輸?shù)任锪骰顒樱?]。碼垛作業(yè)是工業(yè)機器人中重要應用之一[2]。碼垛機器人現(xiàn)場數(shù)據(jù)能否實時可靠地傳輸?shù)絇C端、PC端的控制信號能否實時可靠地傳輸?shù)酱a垛機器人是影響碼垛機器人高效運行的重要因數(shù)。嵌入式以太網(wǎng)數(shù)據(jù)傳輸方式可以實現(xiàn)較遠的傳輸距離,在保證傳輸距離的同時還能有較好集成性,同時成本低也是它諸多優(yōu)點之一,因此被廣泛應用。
傳統(tǒng)的以太網(wǎng)接入方式,往往采用主控制器連接物理層接口芯片(如DM9000A),在主控CPU中嵌入以太網(wǎng)通信協(xié)議[3]。這種方式需要編寫繁瑣的網(wǎng)絡協(xié)議程序并且耗費大量的時間進行調(diào)試,難以實現(xiàn)系統(tǒng)的快速開發(fā)和穩(wěn)定運行,更不利于系統(tǒng)的更新升級[3]。本文介紹的W5500是WIZnet公司最新推出的一款內(nèi)部集成硬件協(xié)議棧的高性能以太網(wǎng)接口芯片,它擁有早期芯片的所有主要優(yōu)勢[4~7]。將以太網(wǎng)芯片W5500應用于碼垛機器人的通信控制中,并結(jié)合STM32F103C8T6能夠?qū)崿F(xiàn)碼垛機器人現(xiàn)場工作數(shù)據(jù)高速遠程傳送。
由主控制系統(tǒng)和示教系統(tǒng)組成的碼垛機器人主要功能是能夠?qū)崿F(xiàn)機器人示教和再現(xiàn)功能,這兩種功能相對應控制系統(tǒng)的示教模式和工作模式。示教模式時,通過觸摸示教界面的按鈕向主控制器發(fā)送信號驅(qū)動機器人本體運動,使末端執(zhí)行器到達相應的示教點,并記錄示教點的位姿[8~10];工作模式時,主控制系統(tǒng)根據(jù)示教點信息,進行路徑軌跡規(guī)劃,通過發(fā)送變頻脈沖信號來驅(qū)動4個電機協(xié)調(diào)運動,最終到達示教點[11~12]??刂葡到y(tǒng)的大致工作流程如圖1所示。
圖1 碼垛機器人工作流程圖
W5500是WIZnet推出的高性能以太網(wǎng)接口芯片系列之一,內(nèi)部集成全硬件TCP/IP協(xié)議棧+MAC+PHY。全硬件協(xié)議棧技術(shù)采用硬件邏輯門電路實現(xiàn)復雜的TCP/IP協(xié)議簇,結(jié)構(gòu)簡單、反映快捷、可靠性高、安全性好是相比較其他芯片的顯著優(yōu)勢;內(nèi)部集成MAC和PHY工藝,使得單片機與以太網(wǎng)通訊的硬件設計方案變得更為簡潔高效。
圖2 W5500內(nèi)核
圖2 為W5500內(nèi)核,該芯片支持TCP、UDP、ICMP、IGMP、PPPoE、ARP和IPv4等協(xié)議;而且硬件協(xié)議棧不受網(wǎng)絡攻擊,安全穩(wěn)定;同時具有32bytes片上緩存供TCP/IP包處理。在實際使用的過程中,操作者只需要簡單對Socket進行操作即可,使得該方案能夠更容易實現(xiàn)。用戶可以同時使用8個硬件Socket獨立通訊且各路通信相互不受到影響。此外,W5500還設置了外設串口(SPI),使之與外設MCU更加方便整合在一起。
W5500通過SPI協(xié)議與嵌入式芯片傳輸數(shù)據(jù),其以太網(wǎng)的接入方案如圖3所示。W5500采用全新的SPI協(xié)議,能達到80MHz的速度,從而較為明顯地提高了網(wǎng)絡通訊速度。同時供用戶選擇掉電模式和網(wǎng)絡喚醒模式(WOL),使得系統(tǒng)能夠有效降低功耗。
圖3 全硬件TCP/IP協(xié)議棧以太網(wǎng)接入方案
W5500支持多功能、高效的SPI外設模塊,有MISO、MOSI、SCLK、SCSn4路信號。本文W5500作為從機工作,圖4~圖6分別為時鐘電路設計、RJ45接口電路設計、W5500核心電路設計。
W5500的SPI接口可與單片機的SPI接口進行直接通訊連接,但是對于沒有SPI接口的單片機,可通過普通I/O接口進行模擬。而現(xiàn)實生活中許多低端單片機沒有設置SPI接口以供使用,為了說明一般情況,本文采用普通I/O接口模擬SPI接口來實現(xiàn)單片機與W5500的通信。W5500的TX_N/TX_P和RX_N/RX_P這兩路差分信號分別與網(wǎng)絡接口HR911105A中的網(wǎng)絡變壓器連接。
圖4 時鐘電路
圖5 RJ45接口電路
W5500是高頻芯片,易受電磁波所干擾造成芯片工作不穩(wěn)定,進而產(chǎn)生數(shù)據(jù)包的丟失等情況,因此在設計過程中,設計人員應當注意電磁兼容性(EMC)問題,在電路設計時應當對PCB板進行合理敷銅。W5500與RJ45之間必須使用網(wǎng)絡變壓器(變比為1:1),TCT和RCT兩引腳為變壓器收/發(fā)端的中心抽頭,設計時應該接3.3V。TX_P/TX_N,RX_P/RX_N的PCB走線應該盡量平行等長[3]。
圖6 W5500核心電路
W5500芯片集成了TCP/IP協(xié)議棧,即芯片自身涵蓋了運輸和網(wǎng)絡的協(xié)議,在軟件設計方面,想要實現(xiàn)以太網(wǎng)的數(shù)據(jù)接收和發(fā)送,將芯片通過協(xié)議所必須要修改的參數(shù)進行初始化配置即可。具體初始化內(nèi)容包括以下幾個部分:
1)中斷和中斷屏蔽寄存器、源硬件地址寄存器、網(wǎng)關(guān)地址寄存器、子網(wǎng)掩碼寄存器、源IP地址寄存器[4],若為TCP客戶端模式或UDP模式,還要配置目標主機IP地址寄存器;
2)設置發(fā)送緩沖區(qū)和接收區(qū)的大??;
3)設置重復發(fā)送超時寄存器和重復發(fā)送計數(shù)寄存器。
芯片進行初始化配置后即可檢查網(wǎng)關(guān)服務器進行Socket設置,在數(shù)據(jù)的收發(fā)處理上采取條件發(fā)送中斷接收的策略。初始化過程結(jié)束后,W5500可以用TCP和UDP等模式打開Socket,進行數(shù)據(jù)的收發(fā)。本文采用W5500查詢寄存器方式工作,通過MCU定時中斷控制數(shù)據(jù)的發(fā)送速率,程序設計流程圖如圖7所示。
示教系統(tǒng)通過以太網(wǎng)UDP方式向主控制器發(fā)送的命令不僅有示教命令,還有傳輸數(shù)據(jù)命令和獲取信息的請求命令,如發(fā)送參數(shù)設置數(shù)據(jù)命令、請求示教點實時坐標命令、發(fā)送示教點位姿信息命令和I/O和故障信息請求命令[6],具體的通訊命令代碼如表1所示。
圖7 W5500程序設計流程框圖
表1 示教盒的通訊命令代碼
本文以嵌入式為基礎,將全硬件集成以太網(wǎng)控制器W5500應用于基于STM32F103C8T6的碼垛機器人的通信中,該方法不僅使得硬件電路的設計變得簡單,而且讓軟件的編程具有模塊化。該以太網(wǎng)接口方案已在碼垛機器人上投入使用,實踐表明,該方案的最大有效數(shù)據(jù)傳輸速率可達3Mbit/s以上,并且可以保持穩(wěn)定性、快速性及高吞吐量。