“一次做兩件事等于一無所成”—雖然拉丁文作家普布里烏斯·西魯斯對多任務(wù)處理的看法可能有些極端,但有時候,多任務(wù)處理可能會導致任務(wù)無法按最初預(yù)期的方式完成,或無法按時完成。隨著工業(yè)過程日益復雜化,傳感器和執(zhí)行器等現(xiàn)場儀器 已發(fā)展為同時執(zhí)行多項不同的任務(wù),包括與過程控制器保持定期通信。這給從站微控制器帶來了額外的開銷,必須妥善管理從站微控制器,否則過程數(shù)據(jù)可能會丟失,從而導致生產(chǎn)停機,現(xiàn)代工業(yè)通信協(xié)議應(yīng)減少這種情況的發(fā)生。
IO-Link時序
IO-Link是24 V、3線工業(yè)通信標準,支持工業(yè)從站和IO-Link主站之間的點對點通信,進而與更高級別的過程控制網(wǎng)絡(luò)進行通信。
圖1. IO-Link主站/從站通信接口。
在IO-Link應(yīng)用中,收發(fā)器充當運行數(shù)據(jù)鏈路層協(xié)議(堆棧)的微控制器和24 V IO-Link信號線路之間的物理層接口。IO-Link通信涉及多種類型的傳輸,包括過程數(shù)據(jù)、值狀態(tài)、從站數(shù)據(jù)和事件。這樣一來,如果發(fā)生錯誤,便能快速識別、跟蹤和處理工業(yè)從站,幫助減少停機時間。IO-Link支持遠程配置;例如,如果需要調(diào)整觸發(fā)過程警報的閾值,可以通過IO-Link連接將更新的閾值發(fā)送到從站,以此方式進行調(diào)整,無需技術(shù)人員前往現(xiàn)場操作。
IO-Link主站端口和從站之間的通信受到多個時序的限制,并按照名為M序列時間的固定時間表進行。M序列消息包括從IO-Link主站發(fā)送到從站的命令或請求,以及來自從站的回復消息。圖2所示為M序列中的時序參數(shù),其中包括IO-Link主站端口和從站消息之間的消息。從站必須在從站響應(yīng)時間 tA內(nèi)響應(yīng)主站,該時間范圍為1 Tbit至10 Tbit(Tbit = 位時間)。對于COM3波特率, tA 應(yīng)介于4.3 μs和43 μs之間。如果響應(yīng)時間超出此范圍,則會發(fā)生通信故障。
圖2. IO-Link通信中的M序列時序。
如果未能準時
IO-link從站微控制器需要同時執(zhí)行多項任務(wù),因此可能難以在為 tA指定的可接受時間窗口內(nèi)響應(yīng)請求。在執(zhí)行微控制器不能中斷的任務(wù)時尤其如此,此類型任務(wù)通常被稱為不可屏蔽中斷(NMI)。如果從站微控制器在指定時間窗口內(nèi)未做出響應(yīng),則通信中斷,必須重新啟動。
例如,對于超聲波測距傳感器,微控制器需要執(zhí)行的一些任務(wù)包括:
-
- 發(fā)送超聲波突發(fā)脈沖
- 處理上一次突發(fā)脈沖中的固有線路,然后計算距離
- 測量環(huán)境溫度以補償聲速
- 管理傳感器后臺任務(wù)(例如電源管理)
- 回復IO-Link周期性請求
- 回復IO-Link非周期性請求
由于要連續(xù)處理數(shù)據(jù)樣本,微控制器幾乎沒有時間管理數(shù)據(jù)鏈路層通信任務(wù),這導致從站響應(yīng)時間顯著變化。在極端情況下,還可能無法滿足 tA的時序要求。
僅使用速度更快、功能更多的微控制器無法解決NMI引起的時序問題。解決此時序問題的一個典型解決方案是使用第二個微控制器來管理IO-Link堆棧,從而在IO-Link從站和IO-Link主站之間保持更穩(wěn)定的響應(yīng)時間間隔。然而,該方法的效率極低,因為其功耗更高且需要更大的PCB,因此需要更大的傳感器外殼。
管理數(shù)據(jù)鏈路
一個更好的替代方案是使用收發(fā)器來管理通信路徑中的數(shù)據(jù)鏈 路和物理層。MAX22516 IO-Link狀態(tài)機(圖3)集成了IO-Link從站收發(fā)器中常見的所有功能,包括24 V C/Q、集成降壓型DC-DC轉(zhuǎn)換器以及5 V和3.3 V線性穩(wěn)壓器。
圖3. 帶收發(fā)器和集成DC-DC轉(zhuǎn)換器的MAX22516 IO-Link狀態(tài)機
該設(shè)備是第一個包含全功能狀態(tài)機的收發(fā)器,可全面管理IO-Link數(shù)據(jù)通信的時序。它能夠自動處理與IO-Link主站的通信,以處理配置和維護請求等,并能夠使用微控制器寫入寄存器和FIFO的數(shù)據(jù)來處理數(shù)據(jù)傳輸。使用該收發(fā)器的一個主要好處是,在為傳感器選擇微控制器時,它提供了更多的選擇,因為從站微控制器不需要管理與IO-Link主站通信的任務(wù)。
MAX22516監(jiān)控來自IO-Link主站的傳入消息。收到完整的索引服務(wù)數(shù)據(jù)單元(ISDU)配置或維護請求后,該收發(fā)器自動向IO-Link主站發(fā)送ISDU BUSY消息,并通知從站微控制器通信已成功完成。如果時間允許,微控制器可將按需數(shù)據(jù)加載到ISDU FIFO中,這項任務(wù)通常需要多個周期才能完成。收發(fā)器使用輸入過程數(shù)據(jù)(PDIn)和輸出過程數(shù)據(jù)(PDOut) FIFO中的數(shù)據(jù)來管理PDIn和PDOut,允許微控制器將數(shù)據(jù)寫入PDIn FIFO并從PDOut FIFO讀取,不受任何時間限制。集成緩沖區(qū)確保FIFO中的數(shù)據(jù)在處理前不會丟失或被覆蓋。
圖4展示了與使用單一微控制器的應(yīng)用相比,使用該收發(fā)器如何顯著減少從站響應(yīng)IO-Link主站所需的時間。從站響應(yīng)時間縮短超過50%,同時變化幅度也從12 μs大幅降至0.25 μs。
圖4. 比較使用單一微控制器(左)和MAX22516(右)管理IO-Link通信的應(yīng)用的響應(yīng)時間。
MAXREFDES281 IO-Link從站參考設(shè)計(圖5)采用MAX22516,可用于驗 證不同類型IO-Link傳感器的時序性能。
圖5. MAXREFDES281 IO-Link從站參考設(shè)計。
結(jié)論
微控制器需要同時管理多項任務(wù),這意味著它們有時難以滿足IO-Link數(shù)據(jù)通信的時序規(guī)范。一些設(shè)備制造商使用第二個微控制器來管理IO-Link堆棧,但該方法令人難以接受?,F(xiàn)在不再需要該雙微控制器方法,因為MAX22516 IO-Link收發(fā)器集成了一個可以管理所有IO-Link通信的狀態(tài)機,讓主要從站微控制器能夠執(zhí)行其他時間關(guān)鍵型任務(wù)。