複製鏈接
請複製以下鏈接發送給好友

SECS

鎖定
SECS標準,用來統一各個生產設備之間以及生產設備和控制設備之間的通訊,是半導體生產流程中最基本的標準。
外文名
SEMI Equipment Communication Standard
簡    稱
SECS
制定了
半導體設備通訊標準接口
功    能
快速地整合在CIM的管理系統

SECS引 言

在高度自動化的半導體制造廠中,CIM(Computer Integrated Manufacturing)統一管理各設備的生產流程,並隨時監控設備過程的狀態,以減少過程失誤進而降低成本及提升產品的質量。但隨着過程的不同,各設備有着不同特性的差異且各製造商所提供的設備也不盡相同,因此增加CIM自動化管理的困難與複雜程度。軟件集成自動化存在的主要問題是在不同的設備供應商之間沒有標準的通訊協議。設備供應商不向半導體生產商開放通訊協議及接口軟件,這使得半導體生產商不得不建立他們自己的軟件“連接”,導致了項目費用的巨大增加。
SEMI(Semiconductor Equipment and Materials Institute)制定了半導體設備通訊標準接口SECS(Semiconductor Equipment Communication Standard),讓CIM與設備間有通用的通訊標準接口,設備製造商只要提供符合通訊標準規範的設備,便可快速地整合在CIM的管理系統,不但可縮短設備開發的時間及成本,並可增加設備裝機的效率達到快速量產,進而提升產能輸出。

SECSSECS標準簡介

SECS標準用來統一各個生產設備之間以及生產設備和控制設備之間的通訊,是半導體生產流程中最基本的標準。SECS協議為點對點協議,它包括2個部分SECS-Ⅰ和SECS-Ⅱ。SECS-Ⅰ為基於RS232的傳輸層,定義了設備和主機之間的MESSAGE交互的通信接口,大致相當於ISO/OSI模型的下面5層。主要包括有塊傳輸協議,MESSAGE接收算法和節點傳輸算法;SECS-Ⅱ則把SECS-Ⅰ傳輸的二進制串翻譯成形象直觀的格式表示出來,SECS-Ⅱ規範傳輸資料的標準結構和顯示內容,方便使用者查看數據內容。圖1簡單表示了SECS標準的典型應用,圖中節點C代表主機,節點A和B表示設備,這些節點僅僅是組成整個網絡的一部分。按照SECS標準的定義,每一個節點都能夠根據消息頭中的設備號位決定向哪一個節點傳遞消息,根據回答位決定控制消息的傳遞方向是沿着樹向下還是向上。在圖1中,節點A控制着1A、2A、3A 3個子節點,可以根據它們的不同要求向節點C發送請求或者從節點C接收指令。SECSLine則表示了在2個節點之間按照SECS標準的電氣接口。
本文結合某半導體廠的全自動化後段生產線描述了基於SECS標準的串口通訊的實現。

SECS系統的硬件組成

整個控制系統由生產線上的生產設備和車間的控制系統組成,其硬件組成如圖2所示。包括3個部分,設備和單元控制器之間通過SECS-Ⅰ連接,其他通過局域網相連。處於最下方的是生產流水線,單元控制器與線上每道工序相應的控制軟件負責控制流水線的生產,並將生產數據通過單元控制器上報給車間的MES系統,接收車間管理人員的生產指令。中間是MES系統,主要負責監控和控制流水線的生產情況、存儲重要的生產數據、報表等,同時給操作管理人員提供一套管理系統來協調整個車間的生產。最上層是工廠生產計劃管理系統,用來給更高層的管理人員提供管理上的方便。
圖2 系統結構組成框圖 圖2 系統結構組成框圖

SECS基於SECS標準串口通訊的實現

SECS3.1 軟件的實現

系統實現了基於SECS標準的串口通訊。整個通訊軟件分為4個相對獨立的模塊:等待、發送、接收和競爭,具體描述如下:
1.等待模塊。在此狀態下,程序處於後台運行,直到接收到以下兩種請求之一:①如果主機收到來自設備的一個ENQ信號(信號的意義見圖3,以下同),則回送一個EOT信號給設備,同時自己轉入接收狀態;②如果設備收到發送命令,作如下處理:
圖3 握手建立的時序圖 圖3 握手建立的時序圖
a.向主機發送一個ENQ信號,然後不斷偵聽是否有來自主機的EOT信號。在此期間,如果超過T2時間仍然未收到EOT,則重發ENQ,最多重發RTY次。如果重發RTY次後仍然沒收到EOT,則發送失敗,轉入等待狀態。
b.如果同時收到一個ENQ信號,則發生競爭,根據是主機還是設備進行不同處理。
c.如果收到一個EOT信號,則表示通訊握手已經成功,轉入發送狀"VH如果不是以上兩種信號,繼續處於等待狀態。在這其中最主要的是握手的建立,圖3説明了軟件中主機和設備之間的握手規則。
2.發送模塊。在發送中,要完成以下任務:
①發送長度字節N,N個數據和兩個校驗和(整個數據稱為1個塊的數據);②發送完成後轉入偵聽狀態。在此期間,如果在T2時間內如果收到了應答信號,判斷該信號是不是ACK,如果不是則發送失敗,重發ENQ建立握手,重發數據(最多RTY次、如果在T2時間內收到了ACK信號則發送成功,轉入等待狀態。
3.接收模塊。在接收中,要完成以下任務:
①不斷偵聽端口,直到收到長度字節N,如果在T2時間仍然沒收到長度字節N,則給對方發送NAK信號,表示這一次發送失敗;
②如果在T2時間內收到長度字節N後,則:判斷其值是否在IO-254之間。如果其值不在10-254之間,繼續偵聽,直到對方發完所有的數據,最後發送NAK信號給對方,表示這一次發送失敗;如果其值在10-254之間,繼續偵聽端口,開始接收數據,同時啓動定時器T1。如果兩個字符間的接收間隔時間超過了T1,則發送NAK信號給對方,表示發送失敗。如果以上兩步均正確,則在所有的數據都收到後,開始計算縱校驗和
a.加果計算值和收到的校驗和相等,説明接收正確。發送ACK信號給對方,一次接收完成。
b.如果計算值和收到的校驗和不等,則繼續偵聽端口,直到對方發送完所有的字節後,發送NAK信號給對方,發送失敗。
4.競爭模塊。當主機和設備恰巧在同一個時刻發送消息,則需要進行競爭處理。處理的過程如圖4所示。
圖4 競爭處理的時序圖 圖4 競爭處理的時序圖

SECS3.2 串口的編程

使用API函數開發串口通信應用程序的總體思路是:首先,使用CreateFileQ函數打開特定串口。其次,完成串行端口的設置,包括波特率,校驗方式,停止位和數據位等。然後,調用SetupComm()設置串口接收發送數據的緩衝區大小,串口的設置就基本完成,之後就可以啓動讀寫線程了。
3.2.1 串口設置的方式
串行通訊設計中的重要方面就是對端口進行設置。DCB(device control block)結構中定義了串口通信設備的控制設置。串口端口設置就是對DCB結構成員進行設置。使用API函數GetCommState(),該函數返回DCB結構的當前設置。其使用方法如下:
DCB dcb={0};
If(!::GetcommState(hComm,&dcb)) return FALSE;//函數調用發生錯誤
else //已經取回DCB結構當前設置
3.2.2 串口的讀寫操作
串口的讀寫操作使用API函數ReadFile()和WriteFile()。當使用異步方式調用這2個函數時,若函數的返回值為TRUE,表示I/O操作立即完成可以進行數據的處理;如果函數的返回值為FALSE,表示I/O操作沒有立即完成。舉例如下:
BOOL bReadStatus;
bReadStatus=ReadFile(m_hIDComDev,buffer,dwBytesRead,&dwBytesRead,&m_OverlappedRead);
if(! bReadStatus)
{
If(GetLastErrorQ==ERROR_IO_PENDING)
{
WaitForSingleObject(m_OverlappedRead.hEvent,1000);
Return((int)dwBytesRead);
}
Return(0);
}
Return((int)dwHytesRead);

SECS結 論

SECS標準是半導體工業中得到廣泛應用的標準,目前在我國的外資芯片生產企業都採用了這個標準。本文着重描述了基於SECS標準的半導體設備串口通訊的實現,進一步的工作是將整個底層協議的實現封裝為一個類,提供給企業二次開發的接口,為我國芯片製造廠商開發自己的控制程序提供了可借鑑的例子。