SECS
半導體生產流程中最基本的標準
SECS標準,用來統一各個生產設備之間以及生產設備和控制設備之間的通訊,是半導體生產流程中最基本的標準。
化半導製造廠,( )統管各設備產流程,隨監控設備程狀態,減程誤降低及提升產品質量。隨程,各設備差異且各製造商提供設備盡,增化管困複雜程。軟體集化存題設備供商標準通訊協議。設備供應商不向半導體生產商開放通訊協議及介面軟體,這使得半導體生產商不得不建立他們自己的軟體“連接”,導致了項目費用的巨大增加。
SEMI( )制半導設備訊標準( ),設備訊標準,設備製造商提供符合訊標準規範設備,速整合管系統,縮短設備及,增設備裝效率達速量產,提升產輸。
標準統各產設備及產設備控制設備訊,半導產流程基標準。協議協議,包括-Ⅰ-Ⅱ。-Ⅰ基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標準的串口通訊的實現。
整個控制系統由生產線上的生產設備和車間的控制系統組成,其硬體組成如圖2所示。包括3個部分,設備和單元控制器之間通過SECS-Ⅰ連接,其他通過區域網相連。處於最下方的是生產流水線,單元控制器與線上每道工序相應的控制軟體負責控制流水線的生產,並將生產數據通過單元控制器上報給車間的MES系統,接收車間管理人員的生產指令。中間是MES系統,主要負責監控和控制流水線的生產情況、存儲重要的生產數據、報表等,同時給操作管理人員提供一套管理系統來協調整個車間的生產。最上層是工廠生產計劃管理系統,用來給更高層的管理人員提供管理上的方便。
圖2 系統結構組成框圖
系統實現了基於SECS標準的串口通訊。整個通訊軟體分為4個相對獨立的模塊:等待、發送、接收和競爭,具體描述如下:
1.等待模塊。在此狀態下,程序處於後台運行,直到接收到以下兩種請求之一:①如果主機收到來自設備的一個ENQ信號(信號的意義見圖3,以下同),則回送一個EOT信號給設備,同時自己轉入接收狀態;②如果設備收到發送命令,作如下處理:
圖3 握手建立的時序圖
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 競爭處理的時序圖
使用API函數開發串口通信應用程序的總體思路是:首先,使用CreateFileQ函數打開特定串口。其次,完成串列埠的設置,包括波特率,校驗方式,停止位和數據位等。然後,調用SetupComm()設置串口接收發送數據的緩衝區大小,串口的設置就基本完成,之後就可以啟動讀寫線程了。
串口設置的方式
串列通訊設計中的重要方面就是對埠進行設置。DCB(device control block)結構中定義了串口通信設備的控制設置。串口埠設置就是對DCB結構成員進行設置。使用API函數GetCommState(),該函數返回DCB結構的當前設置。其使用方法如下:
DCB dcb={0};
If(!::GetcommState(hComm,&dcb)) return FALSE;//函數調用發生錯誤
else //已經取回DCB結構當前設置
串口的讀寫操作
串口的讀寫操作使用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標準的半導體設備串口通訊的實現,進一步的工作是將整個底層協議的實現封裝為一個類,提供給企業二次開發的介面,為我國晶元製造廠商開發自己的控制程序提供了可借鑒的例子。