• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Marlin的3D打印機網(wǎng)絡(luò)接口設(shè)計與實現(xiàn)

      2021-10-09 09:44:38朱文琦
      自動化儀表 2021年9期
      關(guān)鍵詞:網(wǎng)絡(luò)接口固件主板

      朱文琦

      (河南工業(yè)職業(yè)技術(shù)學院自動化工程學院,河南 南陽 473000)

      0 引言

      當前的3D打印機固件有很多種,其中Sprinter、Marlin有非常多的使用者。Sprinter功能相對簡單、基本功能齊全,而Marlin的功能相對復雜、強大。Marlin固件是桌面級3D打印機固件中較流行的一種。因為其開源的特點,很多桌面級或工業(yè)級3D打印機都基于該固件。它使用Arduino Mega2560主板,使用者只需進行適當?shù)呐渲镁涂梢赃M行基本的打印,而且目前配置的說明文檔也比較豐富。由于開源的特點,其已成為很多3D打印企業(yè)和科研院校研究3D打印機的首選[1]。

      Marlin固件具有驅(qū)動控制板、讀取與解析G代碼、控制擠出頭和加熱板的溫度、檢測擠出頭和加熱板的溫度、讀取SD卡、支持液晶顯示屏(liquid crystal display,LCD)等功能,但不支持網(wǎng)絡(luò)連接。而Marlin硬件并不包含以太網(wǎng)接口,所以給使用Marlin而有遠程網(wǎng)絡(luò)打印需求的用戶帶來很多不便[2]。本文基于W5x00網(wǎng)絡(luò)接口擴展板,對Marlin進行改造,使其具有連接到云打印平臺的屬性和功能,以滿足更多應用場合的需求。

      1 當前的網(wǎng)絡(luò)接口方式

      當前大多數(shù)基于Marlin的網(wǎng)絡(luò)打印采用了另接一塊ARM板,通過ARM板上的網(wǎng)絡(luò)接口與外界進行網(wǎng)絡(luò)連接,同時通過USB串口與Mega2560進行通信。這塊ARM板是連接LAN/WAN與Mega2560主板的橋梁。

      目前,常用網(wǎng)絡(luò)連接方式如圖1所示。這塊ARM板可能是基于ARM的定制板卡,如圖1(a)所示;也可能是通用的基于樹莓派開發(fā)板卡,如圖1(b)所示。

      圖1 常用網(wǎng)絡(luò)連接方式

      通常來說,這塊ARM包含一個操作系統(tǒng),比如嵌入式Linux系統(tǒng)。目前,很多企業(yè)和組織采用的是基于圖1(b)的連接架構(gòu),比如說當前比較流行的OctoPrint開源應用[3]。這需要基于樹莓派(Raspberry Pi)和Python安裝OctoPrint的免費開源軟件。OctoPrint是一款針對遠程3D打印的、專業(yè)、強大的控制軟件。它操作簡單,可以幫助用戶輕松、快捷地控制打印機,主要作用是幫助用戶進行遠程3D打印機的控制;可以通過以太網(wǎng)或Wi-Fi無線網(wǎng)絡(luò)連接打印機控制,支持聯(lián)機查詢打印機的溫度、工作進度、剩余線材量等信息。此外,還有非開源的商業(yè)軟件Astroprint也采用類似的方法。它們都是基于樹莓派的硬件,并內(nèi)建嵌入式Linux系統(tǒng),基于HTTP協(xié)議,通過瀏覽器訪問3D打印機進行遠程打印管理和監(jiān)控打印狀態(tài)和進度。

      基于樹莓派開發(fā)板卡的主要特性如下。

      ①打印機與計算機分離,通過有線或無線網(wǎng)絡(luò)打印,支持瀏覽器/服務器(brower/server,B/S)結(jié)構(gòu),通過瀏覽器操作。

      ②遠程打印控制軟件有多種控制方式可調(diào)配,支持G代碼直接輸入。

      ③監(jiān)控打印作業(yè)和溫度。

      ④可通過遠程攝像頭實時觀察打印效果。

      ⑤G代碼視覺化(甚至適用于打印中)以及文件管理功能。

      ⑥兼容多種打印機,支持Marlin、Sprinter、Smoothie等主流打印機固件接口。

      基于樹莓派開發(fā)板卡的缺點在于:B/S結(jié)構(gòu)只能一對一進行遠程控制,不便于集群控制。同時,由于需要額外配置樹莓派,成本較高。

      另一種是采用如圖1 (a)所示的架構(gòu)圖。它也是采用另一塊ARM架構(gòu)的包含串口和網(wǎng)口的開發(fā)板。和圖1(b)所示方式不同點在于:圖1(a)是其上運行自主開發(fā)的網(wǎng)卡轉(zhuǎn)串口應用程序,實現(xiàn)網(wǎng)絡(luò)報文到串口消息的轉(zhuǎn)換。一般客戶端采用客戶端/服務器端(customer/server,C/S)接口,客戶端基于Socket收發(fā)消息。而傳送文件基于FTP協(xié)議。這種方式的優(yōu)點在于可以進行一對一控制或者一對多控制,可以集群控制多臺3D打印機。

      但不管是圖1(a)方案還是圖1(b)方案,都需要額外的硬件,所以成本較高,而且需要兩塊板卡,不利于打印機內(nèi)部硬件布局安排。本文討論采用一種基于W5x00網(wǎng)絡(luò)接口套件,通過串行外圍設(shè)備接口(serial peripheral interface,SPI)總線連接到Mega2560主板,可以直接集成到主板上,使3D打印機具備網(wǎng)絡(luò)通信的能力。

      2 基于W5x00的網(wǎng)絡(luò)接口設(shè)計

      在本次項目中,國外客戶需要短期內(nèi)給現(xiàn)存打印機增加網(wǎng)絡(luò)接口功能,并提供基本的遠程打印功能,如打印文件傳輸、打印開始、打印暫停/繼續(xù)、打印停止、打印狀態(tài)查詢以及打印機日志記錄等。因此,在不修改打印機機械結(jié)構(gòu)的前提下,需要尋找一種更方便、快捷、低成本的方法,增加3D打印機網(wǎng)絡(luò)接口,使其可以接入云制造平臺[4]。

      2.1 需求分析

      需求是在不影響原打印機工作的機械結(jié)構(gòu)和外形,以及原本地打印工作機制和流程的前提下,新增打印文件遠程傳輸、遠程打印啟動、打印暫停、打印停止、打印狀態(tài)獲取、托盤回零、遠程熱床等基本打印功能。因此,硬件設(shè)計的要求是最大化地保留原有硬件和軟件設(shè)計,滿足敏捷設(shè)計的需求,縮短項目開發(fā)和產(chǎn)品上市的時間。不同網(wǎng)絡(luò)接口方式特點比較如表1所示。根據(jù)表1,最終選擇了W5x00網(wǎng)絡(luò)接口的方式。其優(yōu)點是兼容性好,開發(fā)周期短,而且后期可以合成到Mega2560主板上。由于只有一塊主板,便于安裝和維護,不需要修改機械結(jié)構(gòu)和外形[5]。

      表1 不同網(wǎng)絡(luò)接口方式特點比較

      2.2 基于W5x00網(wǎng)絡(luò)接口的硬件設(shè)計

      W5x00是目前網(wǎng)絡(luò)通信的首選。首先,它自帶傳輸控制協(xié)議/網(wǎng)際協(xié)議(transmission control protocol/internet protocol,TCP/IP)協(xié)議棧的支持,只需要寫有限的初始化代碼就可以使用,不像以往的網(wǎng)絡(luò)模塊還要寫讀寫函數(shù)、報文控制等其他驅(qū)動程序;其次,它只需SPI總線接口就可完成網(wǎng)絡(luò)和單片機(microcontroller unit,MCU)之間的通信,而且速度和數(shù)據(jù)可靠性也有一定的保證。

      該系列中,W5100是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有10/100 MB以太網(wǎng)控制器。由于其高集成、高穩(wěn)定、高性能和低成本等特點,一直大量用于嵌入式系統(tǒng)中。使用W5100可以實現(xiàn)沒有操作系統(tǒng)的Internet連接。W5100與IEEE 802.3 10BASE-T和802.3u 100BASE-TX兼容。W5100內(nèi)部集成了全硬件、穩(wěn)定、高效的TCP/IP協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層和物理層。使用W5100不需要考慮以太網(wǎng)的控制,只需要進行簡單的端口(Socket)編程。W5200是W5100的升級版。與W5100相比,W5200具有以下優(yōu)勢。

      ①W5200支持高速SPI總線(≤100 MHz),支持8個獨立的端口同時連接。W5100只有4個獨立端口。②W5200提供休眠模式和網(wǎng)絡(luò)喚醒,更低功耗。③W5200具有極小巧的48引腳QFN無鉛封裝,芯片體積更小。④W5200使用簡單,只需添加現(xiàn)有的庫文件,覆蓋Arduino IDE原有的W5100庫文件,燒錄后即可運行。⑤W5200具備32 KB內(nèi)部通信緩沖,W5100只有16 KB。

      因為W5200芯片和SD讀卡器都通過在線串行編程(in-circuit serial programming,ICSP)針腳使用SPI總線與單片機通信,所以這兩個功能不能同時使用,否則用戶需要采用一個協(xié)同運作的庫程序。而W5500與W5200擴展板相比,增加了POE供電、網(wǎng)絡(luò)喚醒模式、集成主板等功能,且主板使用了一個新的高效SPI協(xié)議,支持80 MHz通信速率,從而能夠更好地實現(xiàn)高速網(wǎng)絡(luò)通信[6]。

      幾種以太網(wǎng)擴展板比較如表2所示。

      表2中,W5500、W5200、W5100擴展板是兼容Arduino Mega2560主板的,可以利用Mega2560主板的SPI接口直接進行通信。

      表2 幾種以太網(wǎng)擴展板比較

      2.3 通信接口設(shè)計

      根據(jù)表2,本文最終選擇了W5500作為網(wǎng)絡(luò)控制芯片,并和主板進行集成控制。主板與W5500芯片通信如圖2所示。通過SPI方式進行連接,其引腳主要包含LED(控制引腳)、nINT(中斷控制引腳)、nRST(芯片復位引腳)、PWDN(電源控制引腳)、5500_CS(網(wǎng)絡(luò)接口卡片選引腳)、SD_CS SD(卡片選引腳)、MISO(主器件數(shù)據(jù)輸入、從器件數(shù)據(jù)輸出),MOSI(主器件數(shù)據(jù)輸出、從器件數(shù)據(jù)輸入),SCLK(時鐘信號),SS(從器件使能信號)。

      圖2 主板與W5500芯片通信示意圖

      在實際的W5500與Mega2560主板的硬件連接電路中,主芯片采用ATMEL ALMEGA32。它是網(wǎng)絡(luò)接口卡的控制芯片。其一端的引腳與Mega2560的控制引腳相連,而另一端的引腳連接以太網(wǎng)控制芯片W5500的對外接口。ATMEL ATMEGA32與主板的通信包含前述的SPI通信接口(MOSI,MISO,SCLK,nSCS)以及一些I/O控制端口(nINT,PWDN,nRST)等。

      3 軟件設(shè)計

      在硬件通信線路連接建立后,系統(tǒng)軟件也需要作相應的修改。系統(tǒng)軟件需要在不影響原打印機工作流程的前提下新增打印文件遠程傳輸、遠程打印啟動、打印暫停、打印停止、打印狀態(tài)獲取、托盤回零、遠程熱床、獲取日志等必要的3D打印機遠程操作[7]。

      3.1 軟件架構(gòu)

      系統(tǒng)Mega2560主板和以太網(wǎng)擴展芯片W5500通過SPI和輸入輸出接口連接。W5500可外接RJ-45物理接口和SD卡,負責處理打印操作、狀態(tài)查詢、G代碼文件讀取以及網(wǎng)絡(luò)傳輸狀態(tài)顯示、收發(fā)網(wǎng)絡(luò)數(shù)據(jù)和讀寫SD卡。而主板通過數(shù)據(jù)緩存接收待處理的G代碼序列,并通過代碼解釋、插補等內(nèi)部處理發(fā)送脈沖寬度調(diào)制(pulse width modulation,PWM)脈沖到電機驅(qū)動,通過I/O操作控制加熱器進行溫度控制以及其他相關(guān)的I/O操作,如開關(guān)門、開關(guān)水冷機等[8]。同時,3D打印機的溫度數(shù)據(jù)及通過I/O數(shù)字量的讀取獲得當前打印機開關(guān)量的狀態(tài)。由于被測打印機使用步進電機驅(qū)動,主板芯片不需要讀取電機的狀態(tài)反饋。

      系統(tǒng)軟件架構(gòu)如圖3所示。

      圖3 系統(tǒng)軟件架構(gòu)

      3.2 系統(tǒng)實現(xiàn)

      具體到系統(tǒng)實現(xiàn),需求被細化為以下四類。

      ①傳輸大文件。

      由于3D打印G代碼文件都比較大,部分文件達100~200 MB,所以要求網(wǎng)絡(luò)文件傳輸速度非???。因為SD卡存儲和以太網(wǎng)傳輸都依賴SPI總線速度,所以實際使用中,SPI的速度是網(wǎng)絡(luò)傳輸速度最主要的影響因素。實際測試中發(fā)現(xiàn)使用W5100時,上傳速度為7.47 kbit/s,下載速度為51.79 kbit/s;而使用W5200和W5500時,由于其支持高速SPI,所以讀寫速度大大提高,在打開SD卡選項的SPI_FULL_SPEED的情況下,對于class 6和class10的高速SD卡,上傳速度達到188.08 kbit/s,下載速度達到 170.18 kbit/s。傳輸100 MB的文件約需9 min,能夠滿足客戶要求的100 kbit/s以上的傳輸速度需求。

      ②遠程控制打印機操作。

      遠程打印機控制操作包含打開G代碼文件、打印啟動/繼續(xù)、打印機暫停以及停止操作等控制。為了更好地兼容其他場合,數(shù)據(jù)格式采用標準的JS 對象簡譜 (java script object notation,JSON)交換格式。

      ③獲取打印機狀態(tài)信息。

      打印機狀態(tài)信息獲取包含獲取信息(get info)、獲取溫度(get temp)、獲取狀態(tài)(get status)。獲取信息包含打印機名、IP地址信息和MAC地址信息;獲取溫度包含左噴頭溫度T0、右噴頭溫度T1、腔室溫度C、熱床溫度B、料倉溫度F、料倉濕度H;獲取狀態(tài)包含打印機百分比、已花費時間、剩余時間、是否啟動中、是否暫停中以及錯誤碼。其格式也采用了標準的JSON格式編碼。

      ④獲取日志。

      獲取日志和傳輸大文件都是通過文件傳輸協(xié)議(file transfer protocol,F(xiàn)TP)傳輸。通過在主板上建立FTP服務器服務,然后通過通用的FTP軟件,如FileZilla、FTPRush等軟件即可進行傳輸。但是Arduino系統(tǒng)中并不自帶FTP服務,需要參考開源程序FTP Server on Arduino并進行移植[9]。

      系統(tǒng)其他需求(如托盤回零、遠程熱床等)在打印過程中會自動被執(zhí)行,所以并沒有設(shè)置專用指令來執(zhí)行。另外,系統(tǒng)可以透傳G代碼控制指令,即直接遠程輸入G代碼指令讓3D打印機執(zhí)行相關(guān)指令[10]。

      4 結(jié)論

      云制造是新一代的智能制造平臺,通過網(wǎng)絡(luò)提供服務,集成異地企業(yè)的制造能力和生產(chǎn)水平,使企業(yè)通過平臺即可完成產(chǎn)品的采購、設(shè)計、工藝、制造、生產(chǎn)、售后等各個環(huán)節(jié),大大提高了企業(yè)和社會資源的利用率[11]。而3D打印機的柔性制造能力、創(chuàng)新生產(chǎn)能力可以大大提升企業(yè)新產(chǎn)品的協(xié)同設(shè)計和協(xié)同制造能力,使產(chǎn)品制造變得更加智能、高效、個性化[12]。

      目前,很多3D打印機都采用基于Marlin的固件。由于Marlin沒有內(nèi)置的以太網(wǎng)接口,很多基于Marlin開源的3D打印機都沒有云制造的接口。本文根據(jù)外國客戶的3D打印機改進需求,在W5x00的基礎(chǔ)上研究了基于Marlin的3D打印機云設(shè)計與實現(xiàn),針對Marlin進行改造,使其具有連接到云打印平臺的屬性和功能,可以滿足更多的應用場合需求。這種方案兼容性好,開發(fā)周期短,成本低,不需要更改打印機外殼?;赥CP/IP標準的通信協(xié)議也可方便地使用手機或者計算機上的TCP客戶端軟件進行連接和控制,并可以用作云制造的接口。該方案不僅適用于Marlin系統(tǒng),也可以作簡單改動后匹配其他類型的3D打印機固件系統(tǒng)。

      猜你喜歡
      網(wǎng)絡(luò)接口固件主板
      滬市/深市主板觀察
      滬市/深市主板觀察
      變電站網(wǎng)絡(luò)接口物理防護系統(tǒng)設(shè)計與實現(xiàn)
      三季報凈利潤大幅下滑股(滬市主板)
      三季報凈利潤大幅增長股(滬市主板)
      基于固件的遠程身份認證
      淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進措施
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      網(wǎng)絡(luò)設(shè)置管理
      一種通過USB接口的可靠固件升級技術(shù)
      眉山市| 富宁县| 视频| 寿阳县| 黄陵县| 通榆县| 宁乡县| 南宁市| 肇庆市| 贵州省| 揭阳市| 奉贤区| 宣城市| 禄丰县| 奉节县| 象州县| 封丘县| 怀安县| 新晃| 潼南县| 武定县| 浦城县| 天长市| 丘北县| 吉隆县| 马关县| 定南县| 郁南县| 林周县| 吴堡县| 皮山县| 舟山市| 麦盖提县| 轮台县| 堆龙德庆县| 五大连池市| 五寨县| 达拉特旗| 新安县| 六安市| 固安县|