使用遠端微控制器除錯器加速配置工業自動化設施
資料提供者:DigiKey 北美編輯群
2021-03-03
工業自動化設施逐漸採用微控制器型單板電腦 (SBC) 來控制設施操作,以便提升效率及生產力。SBC 通常是現成 SBC 搭配可配置的韌體組成,客製化 SBC 則搭配客製化韌體。然而,若是新型工業設施,或是剛經過重新配置的既有設施,SBC 韌體可能要進行修改,以改善作業或修正程式碼臭蟲。
本文將探討 SBC 扮演的角色,以及遠端除錯在工業環境中越來越重要的原因。接著將介紹 MikroElektronika 的遠端除錯器及相關軟體,並說明其如何連接 Wi-Fi 網路,以便對絕大多數 SBC 中的 Arm® 微控制器進行除錯。
工業電腦中的 SBC
現代工業自動化設施不斷受到增加產能的壓力,因此必須透過更高精密度來改善製程管理。方法包括使用高解析度的感測器,以提供更準確的資料給控制韌體。除此之外,馬達與螺線管等致動器亦可升級,即可用更細微的增量進行活動。
更高準確度且更高解析度的感測器及致動器安裝到位後,SBC 中負責管理這些裝置的控制韌體就必須進行修改,以發揮解析度提高的優勢。若韌體升級無法由目前的 SBC 處理,就要安裝新的 SBC。無論何種情況,新韌體一般都要在工作台進行測試與除錯後,才可安裝到工業設施中。初次測試後,新系統就可開始運作。
然而,若是更複雜的製程,除錯及編程的工作則尚未結束。系統上運作時可能會出現生產前測試期間並未發現的問題。在許多情況下,要達到韌體最佳化的唯一方法就是在 SBC 使用期間進行除錯。
新的工業自動化設施也面臨同樣問題。尤其是高效能系統,其韌體控制迴路必須進行微調,以符合效率要求。無論工業設施是新型或經過升級,停機時間都相當昂貴,必須要盡可能縮短。也就是說,SBC 必須在系統上進行除錯與編程。
工業嵌入式系統的遠端除錯
對工業系統中的 SBC 進行除錯,跟任何微控制器型系統的除錯沒有不一樣。除錯器必須用纜線從微控制器的除錯埠實體連接到 PC,然後執行除錯軟體程式。技術人員接著會在韌體執行期間,在電腦上檢視韌體並進行除錯。若現場要除錯的 SBC 很多,會相當耗時,因為技術人員必須要走到 SBC 所在的各個實際位置。若有些 SBC 位於嚴峻環境,或相當偏遠或難以進入的地點,困難度就更高了。除此之外,通常只有少數技術人員熟悉客製化韌體,因此這些技術人員要在短時間內對中眾多系統進行除錯,會導致程序變複雜而讓流程延誤。
解決方案就是使用遠端除錯器,雖然實體連接到 SBC,但可透過位於他處的連網 PC 提供除錯能力。遠端除錯器可插入到 SBC 的微控制器除錯埠,同時透過 Wi-Fi 連接到設施的網路。位於便利地點但相同網路內的 PC,即可用來存取任一個遠端除錯器。技術人員接著就可在遠端 PC 完成除錯作業。
為了執行遠端除錯,工程師可使用 Mikroe 的 CodeGrip 系列遠端除錯器,透過 Wi-Fi 連接到遠端 PC,即可支援多種 Arm 微控制器的編程與除錯。MIKROE-3460 CodeGrip Wi-Fi 除錯器可用於具有 JTAG 連接埠的絕大多數 Arm 微控制器 (圖 1)。此外也支援絕大多數 Arm Cortex-M3、 Cortex-M4, and Cortex-M7 微控制器上的 Arm 序列線輸出 (SWO) 單線除錯埠。
圖 1:MIKROE-3460 CodeGrip 遠端除錯器會實體連接到 SBC 的除錯 JATG 或 SWO 連接埠。可透過 Wi-Fi 進行遠端存取,即可對 Arm 微控制器韌體進行編程或除錯。(圖片來源: Mikroe)
Mikroe 的 MIKROE-3460 CodeGrip 實體放置在 Arm 架構 SBC 旁。其連接埠可連接到板連接器上的 JTAG 或 SWO 連接埠。接著可透過 USB 暫時連接到筆記型電腦,即可開始配置 CodeGrip 單元,以便進行微控制器除錯。針對高效能系統,CodeGrip 單元有提供 USB-C 連接器。USB-C 連接器不像之前的 USB 連接器,沒有上下兩面的分別,對於擁擠情況來說特別有用,可節省時間並減少挫折感。
連接到 CodeGrip 的筆記型電腦必須執行 Mikroe 的 CodeGrip Suite,才可開始配置 CodeGrip 單元。CodeGrip 單元用五個 LED 燈指出運作狀態 (圖 2)。如此即可讓現場工程師瞭解關鍵的狀態資訊,確保單元正確運作,無需連接到筆記型電腦。正確供電後,綠色的電源 LED 燈會亮起。CodeGrip 單元正常操作下,紅色的運作 LED 燈也會亮起。若綠色 LED 燈亮起,但紅色 LED 燈熄滅,則代表 TAG/SWO 連接埠的連接不良或未連接;現場技術人員可透過此重要資訊得知,可能要重新插拔或替換除錯纜線。
圖 2:CodeGrip 單元可透過五個 LED 燈提供關鍵的狀態資訊,能在現場快速目視檢查,無需連接筆記型電腦。(圖片來源:Mikroe)
用 USB 連接到筆記型電腦後,CodeGrip 單元上的黃色 USB-LINK LED 燈會亮起,代表連接成功。使用者接著就可透過 USB 連線,執行 CodeGrip Suite 來配置 CodeGrip 單元。
配置 CodeGrip Suite
CodeGrip Suite 通常可自動偵測 SBC 上的 Arm 微控制器,但亦可手動配置核心類型、快閃記憶體大小以及 RAM 組態。但並非所有的 Arm 產品系列皆可用相同的除錯器輕鬆配置。若是 STMicroelectronics 的 STM32 Arm 系列,Mikroe 則提供 MIKROE-3461 CodeGrip 單元。NXP Semiconductors 的 Kinetis 系列則由 MIKROE-3462 CodeGrip 提供支援。無論是以上任何類型,CodeGrip 單元及 CodeGrip Suite 的操作都相同。
連接且配置後,CodeGrip Suite 即可在現場進行編程與除錯作業。傳輸任何資料到 CodeGrip 時,藍色的數據 LED 燈會閃爍,代表資料正在 CodeGrip 單元與 CodeGrip Suite 之間傳輸。這表示 CodeGrip 單元正常操作中,且正在對 SBC 進行編程或除錯。
若要遠端除錯,CodeGrip 可設定成透過 Wi-Fi 連接到執行 CdoeGrip Suite 的遠端 PC。為了確保安全性及效能,用來連接到 CodeGrip 單元的 Wi-Fi 網路應該與工業設施中用的其他 Wi-Fi 網路有所區隔。透過 Wi-Fi 將大型的 .bin 或 .hex 檔案傳送到 CodeGrip 單元,就像是下載大型檔案到 PC 一樣,都會讓整個網路速度變慢。若遠端 PC 順利連接到 CodeGrip 單元, CodeGrip 單元上的橘色 NET-LINK LED 燈會亮起,表示已經順利連接。CodeGrip 單元配置後,透過 USB 連接的筆記型電腦就可斷開。
CodeGrip Suite 可以對目標微控制器上整個快閃記憶體進行讀取、編程及抹除。亦可將微控制器快閃記憶體的內容,與來源檔案進行比對,藉此確認韌體的可信度且未經過竄改。在安全稽查時也相當有用,可用來確認韌體的安全性,而不用走到各個 SBC 的實體所在位置。
CodeGrip Suite 亦可執行目標微控制器的硬體重置作業。這對故障的 SBC 或是懷疑有安全漏洞時相當有用。通常來說,重置後的 SBC,開機時會執行內建的自我測試 (BIST),其中包括安全檢查項目,以確定裝置正常運作且未遭到竄改。
Mikroe CodeGrip 有個強大功能,就是可支援 Arm SWO 即時除錯埠。SWO 引腳會傳輸與 Arm 微控制器狀態相關的除錯資訊,並可用來提供與韌體操作相關的即時狀態與追溯資訊。Mikroe 提供 SWO 函式庫,並有功能可增強 CodeGrip Suite 的除錯能力 (圖 3)。如此一來,即可輕鬆在遠端對微控制器韌體進行監測與除錯。
圖 3:CodeGrip Suite 可透過 SWO 連接埠傳輸資料,提供與 Arm 微控制器有關的即時除錯與追溯資訊。除錯資訊有色彩編碼,可輕易參照。(圖片來源:Mikroe)
SWO 訊息分為三種訊息類別:資訊、警告及錯誤。CodeGrip 可顯示任一種或全部的訊息類別。顯示的訊息經過色彩編碼,可輕易參照。藍色代表資訊,黃色為警告,紅色為錯誤。因此,使用者可快速判定該查看的項目,亦可輕易優先處理錯誤訊息,其次為警告,最後為資訊。
結論
對工業設施中的 SBC 進行除錯,同時維持系統上作業,是相當耗時的工作,尤其是有許多 SBC 要編程及除錯時。此外,要走到各個不同地點才能進行作業,也並非長久之計。如本文所述,使用 CodeGrip 等裝置及相關軟體,透過 Wi-Fi 進行遠端除錯,即可節省時間同時提升生產力。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。