伍 哲 張文群 郭文勇 韓江桂
(海軍工程大學動力工程學院 武漢 430033)
碼垛是按照集成單元化的思想,將一件件的物料按照一定的模式堆碼成垛,以便使單元化的物垛實現物料的存儲、搬運、裝卸、運輸等物流活動[1]。碼垛作業是工業機器人中重要應用之一[2]。碼垛機器人現場數據能否實時可靠地傳輸到PC端、PC端的控制信號能否實時可靠地傳輸到碼垛機器人是影響碼垛機器人高效運行的重要因數。嵌入式以太網數據傳輸方式可以實現較遠的傳輸距離,在保證傳輸距離的同時還能有較好集成性,同時成本低也是它諸多優點之一,因此被廣泛應用。
傳統的以太網接入方式,往往采用主控制器連接物理層接口芯片(如DM9000A),在主控CPU中嵌入以太網通信協議[3]。這種方式需要編寫繁瑣的網絡協議程序并且耗費大量的時間進行調試,難以實現系統的快速開發和穩定運行,更不利于系統的更新升級[3]。本文介紹的W5500是WIZnet公司最新推出的一款內部集成硬件協議棧的高性能以太網接口芯片,它擁有早期芯片的所有主要優勢[4~7]。將以太網芯片W5500應用于碼垛機器人的通信控制中,并結合STM32F103C8T6能夠實現碼垛機器人現場工作數據高速遠程傳送。
由主控制系統和示教系統組成的碼垛機器人主要功能是能夠實現機器人示教和再現功能,這兩種功能相對應控制系統的示教模式和工作模式。示教模式時,通過觸摸示教界面的按鈕向主控制器發送信號驅動機器人本體運動,使末端執行器到達相應的示教點,并記錄示教點的位姿[8~10];工作模式時,主控制系統根據示教點信息,進行路徑軌跡規劃,通過發送變頻脈沖信號來驅動4個電機協調運動,最終到達示教點[11~12]。控制系統的大致工作流程如圖1所示。

圖1 碼垛機器人工作流程圖
W5500是WIZnet推出的高性能以太網接口芯片系列之一,內部集成全硬件TCP/IP協議棧+MAC+PHY。全硬件協議棧技術采用硬件邏輯門電路實現復雜的TCP/IP協議簇,結構簡單、反映快捷、可靠性高、安全性好是相比較其他芯片的顯著優勢;內部集成MAC和PHY工藝,使得單片機與以太網通訊的硬件設計方案變得更為簡潔高效。

圖2 W5500內核
圖2 為W5500內核,該芯片支持TCP、UDP、ICMP、IGMP、PPPoE、ARP和IPv4等協議;而且硬件協議棧不受網絡攻擊,安全穩定;同時具有32bytes片上緩存供TCP/IP包處理。在實際使用的過程中,操作者只需要簡單對Socket進行操作即可,使得該方案能夠更容易實現。用戶可以同時使用8個硬件Socket獨立通訊且各路通信相互不受到影響。此外,W5500還設置了外設串口(SPI),使之與外設MCU更加方便整合在一起。
W5500通過SPI協議與嵌入式芯片傳輸數據,其以太網的接入方案如圖3所示。W5500采用全新的SPI協議,能達到80MHz的速度,從而較為明顯地提高了網絡通訊速度。同時供用戶選擇掉電模式和網絡喚醒模式(WOL),使得系統能夠有效降低功耗。

圖3 全硬件TCP/IP協議棧以太網接入方案
W5500支持多功能、高效的SPI外設模塊,有MISO、MOSI、SCLK、SCSn4路信號。本文W5500作為從機工作,圖4~圖6分別為時鐘電路設計、RJ45接口電路設計、W5500核心電路設計。
W5500的SPI接口可與單片機的SPI接口進行直接通訊連接,但是對于沒有SPI接口的單片機,可通過普通I/O接口進行模擬。而現實生活中許多低端單片機沒有設置SPI接口以供使用,為了說明一般情況,本文采用普通I/O接口模擬SPI接口來實現單片機與W5500的通信。W5500的TX_N/TX_P和RX_N/RX_P這兩路差分信號分別與網絡接口HR911105A中的網絡變壓器連接。

圖4 時鐘電路

圖5 RJ45接口電路
W5500是高頻芯片,易受電磁波所干擾造成芯片工作不穩定,進而產生數據包的丟失等情況,因此在設計過程中,設計人員應當注意電磁兼容性(EMC)問題,在電路設計時應當對PCB板進行合理敷銅。W5500與RJ45之間必須使用網絡變壓器(變比為1:1),TCT和RCT兩引腳為變壓器收/發端的中心抽頭,設計時應該接3.3V。TX_P/TX_N,RX_P/RX_N的PCB走線應該盡量平行等長[3]。

圖6 W5500核心電路
W5500芯片集成了TCP/IP協議棧,即芯片自身涵蓋了運輸和網絡的協議,在軟件設計方面,想要實現以太網的數據接收和發送,將芯片通過協議所必須要修改的參數進行初始化配置即可。具體初始化內容包括以下幾個部分:
1)中斷和中斷屏蔽寄存器、源硬件地址寄存器、網關地址寄存器、子網掩碼寄存器、源IP地址寄存器[4],若為TCP客戶端模式或UDP模式,還要配置目標主機IP地址寄存器;
2)設置發送緩沖區和接收區的大小;
3)設置重復發送超時寄存器和重復發送計數寄存器。
芯片進行初始化配置后即可檢查網關服務器進行Socket設置,在數據的收發處理上采取條件發送中斷接收的策略。初始化過程結束后,W5500可以用TCP和UDP等模式打開Socket,進行數據的收發。本文采用W5500查詢寄存器方式工作,通過MCU定時中斷控制數據的發送速率,程序設計流程圖如圖7所示。
示教系統通過以太網UDP方式向主控制器發送的命令不僅有示教命令,還有傳輸數據命令和獲取信息的請求命令,如發送參數設置數據命令、請求示教點實時坐標命令、發送示教點位姿信息命令和I/O和故障信息請求命令[6],具體的通訊命令代碼如表1所示。

圖7 W5500程序設計流程框圖

表1 示教盒的通訊命令代碼
本文以嵌入式為基礎,將全硬件集成以太網控制器W5500應用于基于STM32F103C8T6的碼垛機器人的通信中,該方法不僅使得硬件電路的設計變得簡單,而且讓軟件的編程具有模塊化。該以太網接口方案已在碼垛機器人上投入使用,實踐表明,該方案的最大有效數據傳輸速率可達3Mbit/s以上,并且可以保持穩定性、快速性及高吞吐量。