半導體廠自動化之通訊協定 SECS I/II & GEM
李文猶 陳玉雲 蔡嘉鴻
870508@itri.org.tw
半導體機台與 CIM(Computer Integrated Manufacturing,電腦整合製造)主
機之通訊協定為 SECS(SEMI Equipment Communication Standard,半導體設備
通 訊 標 準 ), 此 協 定 乃 是 由 SEMI (Semiconductor Equipment and Materials
International,半導體設備與材料國際連盟)[1]所製定。半導體機台必須於運轉
生產期間與主機保持密切的通連,以接受來自主機電腦的控制或詢問,並且能即
時回應主機之要求與回報執行結果;除此之外亦需主動回報目前機台的異常狀
況。
SECS 通訊之 SECS Message(Stream Function)
一顆專用 IC(Integrated Circuit)由 HDL(Hardware Description Language,
硬體描述語言)進行電路設計,而後送到半導體廠進行生產製造。IC 由矽砂到
封裝完成,所需的製造程序繁複,所需用到的半導體機台或半導體材料種類超過
千種。為確保晶圓在每一道製程均能做到完美,或排除前一製程的不良品,生產
的過程中不斷地有來自主機或機台的運轉訊息要相互傳遞,因此 SEMI 將 SECS
的主要訊息分類為:
1. 機台狀態(Equipment Status)。
2. 機台控制及診斷(Equipment Control and Diagnostics)。
3. 材料狀態(Material Status)
4. 材料控制(Material Control)。
5. 例外處置(Exception Handling)。
6. 資料收集(Data Collection)。
7. 機台操作管理(Process Program Management, Recipe)。
8. 控制程式傳送(Control Program Transfer)。
9. 系統錯誤(System Errors)。
10. 終端機服務(Terminal Services)。
11. 主機檔案服務(Host File Services)。
12. 晶圓定位(Wafer Mapping)。
13. 資料組傳送(Data Set Transfers)。
14. 物件服務(Object Services)。
15. 配方管理(Recipe Management)。
16. 程序處理管理(Processing Management)。
17. 子系統控制與資料(Subsystem Control and Data)。
機械所設備控制部
1
這些主要訊息內所包含的常用子訊息為:
1. 要求建立連線(Establish Communication):主機與機台建立連線。
2. 機台操作配方:指定機台的運作的程序及執行參數。
3. 遠端控制(Remote Control):由主機主動下令機台進行局部區域之
操作。
4. 錯誤訊息(Error Message):回報主機所傳送的 Stream Function 或
參數有誤。
5. 警報訊息(Alarm Message):機台回報警報訊息給主機。
6. 動態事件回報(Dynamic Event Report):機台主動回報特殊狀況訊
息給主機。
7. 變數資料收集(Variable Data Collection):收集機台耗材或零件損
耗及變化之資料。
8. 狀態資料收集(Status Data Collection):收集目前機台之操作狀
態。
9. 晶圓訊息:傳遞與晶圓或晶舟相關的訊息。
10. 緩衝暫存(Spooling):主機與機台之連線在通訊中斷的時間內或通
訊的狀況下,機台會將指定為 Spooled 的訊息放入緩衝暫存區,
待回復連線後由主機以 S6F23 來詢問通訊中斷時間內機台所要
發出的訊息,主機則可用 S2F43 來指定保留於緩衝暫存區的訊
息。一般 Stream one(S1Fx)不適合 Spooled,一旦主機致能
Spooling 功能後,在連線過程中被指定為 Spooled 的 Steam
Function 都會放入緩衝暫存區內,等待主機自行來取得,而不是
如其它訊息一樣直接傳給主機。
習用訊息種類 Stream Number (n) Function Number (m)
在 SECS 的標準中又將這些訊息分以不同的 Stream Number 搭配不同的
Function Number 來表示,其先以 Stream Number 來區分不同訊息種類,再以
Function Number 來分類訊息意涵。二者的編號範圍 Stream Number 為 0~127 ;
Function Number 為 0~255,並以 Sn,Fm 來表達。目前在 SEMI 中並未完全定義,
其對應方式如下所示。
表一 Steam Function 對照表
訊息種類
機台狀態
機台控制及診斷
材料狀態
材料控制
例外處置
資料收集
機台操作管理
控制程式傳送
系統錯誤
1
2
3
晶圓狀態
4
晶圓控制
5
警報訊息
動態事件回報 6
7
配方管理
8
9
0~20
0~50
0~26
0~42
0~18
0~30
0~36
0~4
0~14
錯誤訊息
機械所設備控制部
2
終端機服務
主機檔案服務
晶圓定位
資料組傳送
物件服務
配方管理
程序處理管理
機台控制及診斷
子系統控制與資料
10
11
12
13
14
15
16
17
18
0~10
已被 SEMI 刪除
0~20
0~16
0~18
0~48
0~28
0~14
0~14
常見的 Stream Number 為 1、2、3、4、5、6、7、9 與 10。SECS 以 RS232
通訊協定做為其傳輸標準,為使命令均能有效的傳達,主機與設備機台間採半雙
工 一 問 一 答 的 方 式 相 互 溝 通 。 發 話 者 以 單 數 之 Function Number (Primary
Message)做為其訊息代號,而受話者(回話者)若必須回覆發話者則以 Function
Number + 1(Secondary Message)做為其回覆訊息代號,所以表一的 Function
Number 均以偶數結束。每一半導體機台所用到的 Stream Function 並不會相同,
而且大部份機台實際所用到的 Stream Function 總數約為 50 個(單數之 Function
Number),這完全依機台操作的複雜度及動作需求來決定。
Stream Function 之發送接收,主機或設備機台並非每一代號均可使用,有
些只有主機才可以發送,部份則為設備專屬,當然也有二者均可發送的 Stream
Function,收話者若必需回話則一律以 Function Number + 1 回覆,常用的 Stream
Function 如表二所示,表中灰色項目為具有標準機台介面(Standard Mechanical
InterFace ,SMIF)的自動化生產系統( Automatic Manufacturing system)較常選用
之 Stream Function 通訊訊息。
表二常用的 Stream Function
Stream Function 訊息意涵
S1
S1
S1
S1
S1
S1
S1
S1
S1
S1
S1
S1
S2
S2
S2
S2
S2
S2
S2
Are you There
On Line Data
Selected Status Request
Selected Status Request
Formatted Status Request
Formatted Status Data
Material Transfer Status Data
Material Transfer Status Data
Status Variable Namelist Request
Status Variable Namelist Reply
Connect Request
Connect Request Acknowledge
Equipment Constant Request
Equipment Constant Data
New Equipment Constant Send
New Equipment Constant Send Acknowledge
Date and Time Request
Date and Time Data
Remote Command Send
HostEquip.
F1
F2
F3
F4
F5
F6
F9
F10
F11
F12
F13
F14
F13
F14
F15
F16
F17
F18
F21
機械所設備控制部
3
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S2
S3
S3
S3
S3
S3
S3
S4
S4
S4
S4
S4
S4
S5
S5
S5
F22
F23
F24
F25
F26
F27
F28
F29
F30
F31
F32
F33
F34
F35
F36
F37
F38
F39
F40
F41
F42
F43
F44
F47
F48
F49
F50
F65
F66
F85
F86
F87
F88
F1
F2
F11
F12
F13
F14
F1
F2
F3
F5
F17
F18
F1
F2
F3
Remote Command Acknowledge
Trace Initial Send
Trace Initial Acknowledge
Diagnostic Loopback Request
Diagnostic Loopback Data
Initiate Processing Request
Initiate Processing Acknowledge
Equipment Constant Namelist Request
Equipment Constant Namelist Reply
Date and Time Send
Date and Time Acknowledge
Define Report
Define Report Acknowledge
Link Event Report
Link Event Report Acknowledge
Enable/Disable Event Report
Enable/Disable Event Report Acknowledge
Multi-Block Inquire
Multi-Block Grant
Remote Command with Parameters
Remote Command Acknowledge
Reset Spooling Streams and Functions
Reset Spooling Acknowledge
Variable Limit Attribute Request
Variable Limit Attribute Send
Enhanced Remote Command
Enhanced Remote Command Acknowledge
Reset Spooling Streams and Functions
Reset Spooling Streams and Functions Ack.
Variable Limit Attribute Request
Variable Limit Attribute Send
Define Variable Limit Attributes
Define Variable Limit Attributes Ack
Material Status Request
Material Status Data
Material ID Request
Material ID Request Acknowledge
Material ID Send
Material ID Acknowledge
Ready to Send Material
Ready to Send Acknowledge
Handshake Complete
Not Ready to Send
Request to Receive Material
Request to Receive Material Acknowledge
Alarm Report Send
Alarm Report Acknowledge
Enable/Disable Alarm Send
機械所設備控制部
4
S5
S5
S5
S5
S5
S5
S5
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S6
S7
S7
S7
S7
S7
S7
S7
S7
S7
S7
S7
S7
S9
S9
S9
S9
S9
F4
F5
F6
F7
F8
F73
F73
F1
F2
F3
F4
F5
F6
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
F65
F66
F1
F2
F3
F4
F5
F6
F7
F8
F17
F18
F19
F20
F1
F3
F5
F7
F9
Enable/Disable Alarm Acknowledge
List Alarm Request
List Alarm Data
List Enable Alarm Request
List Enable Alarm Acknowledge
Alarm Notification Send
Alarm Notification Acknowledge
Trace Data Send
Trace Data Acknowledge
Discrete Variable Data Send
Discrete Variable Data Acknowledge
Multi-block Data Send Inquire
Multi-block Grant
Formatted Variable Send
Formatted Variable Acknowledge
Event Report Send
Event Report Acknowledge
Annotated Event Report Send
Annotated Event Report Acknowledge
Event Report Request
Event Report Data
Annotated Event Report Request
Annotated Event Report Data
Individual Report Request
Individual Report Data
Annotated Individual Report Request
Annotated Individual Report Data
Request Spooled Data
Request Spooled Data Acknowledgement Send
Request Spooled Data
Request Spooled Data Acknowledge
Process Program Load Inquire
Process Program Load Grant
Process Program Send
Process Program Acknowledge
Process Program Request
Process Program Data
Process Program ID Request
Process Program ID Data
Delete Process Program Send
Delete Process Program Acknowledge
Current EPPID Request
Current EPPID Data
Unrecognized Device ID
Unrecognized Stream Type
Unrecognized Function Type
Illegal Data
Transaction Timer Timeout
機械所設備控制部
5
S9
S9
S9
S10
S10
S10
S10
S10
S10
S10
S10
F11
F13
F67
F1
F2
F3
F4
F5
F6
F9
F10
Data Too Long
Conversation Timeout
Incorrect System Bytes Received
Terminal Request
Terminal Request Acknowledge
Terminal Display Single
Terminal Display Single Acknowledge
Terminal Display Multi-block
Terminal Display Multi-block Acknowledge
Broadcast
Broadcast Acknowledge
SECS Message 之資料結構
半導體廠所需的半導體生產設備來自不同的國家不同的公司,這些設備串
起了半導體廠生產線,因此必須製定一個機台間的標準通訊方法及通訊資料格
式。SECS 之標準分為二部分 SECS I [2] 及 SECS II [3];SECS I 定義了 SECS 通
訊的電氣規格、傳輸速度、交握碼(Handshake Codes)、資料長度(Length Byte)、
訊息前部(Message Header)、Checksum 與等待時間限制,SECS II 規範傳遞資
料的標準結構。
SECS I:
1. 以 RS232 為串列通訊標準,8N1 的傳輸協定,並且採用半雙工方
式通訊。
2. 通訊速度,Baud Rate 為 300~9600 bps,目前均為 9600 bps,少數
為 19200 bps。
3. 交握碼,當機台或主機要開始傳送 SECS Message 前要先送一個
ENQ 告知對方要傳送資料(SECS Message)過去,等到對方回應
一個 EOT 時才開始傳送資料,而待資料收齊後則比對 Checksum
是否相符,若相符則發出 ACK 告知對方;若不相符則發出 NAK
告知對方再重傳一次。
表三 交握碼
Name
ENQ
EOT
ACK
NAK
Binary Code
0000 0101
0000 0100
0000 0101
0001 0101
Hex
05
04
06
15
Function
Request to Send
Ready to Receive
Correct Reception
Incorrect Reception
4. 資料長度,為一個位元組,用以表示此一區塊(Block)內含多少
位元組,不含資料長度位元組及 Checksum 二個位元組,其值為
10~254。
機械所設備控制部
6
5. 訊息 Header,共有 10 個位元組(10 Bytes)。每一 Stream Function 所
包含的資料最多可達 7.99 百萬位元組,這些資料則以 254 位元組
為一 Block,最多 32767 個 Blocks。每一 Block 含有一 Header 及
244 位元組的資料。Header 內的訊息包括:裝置識別碼(Device
ID),訊息識別碼(Message ID / Stream Function),區塊序號(Block
No.),系統位元組(System Bytes)。以及 R、W 與 E 三位元(bit),
分別表示傳輸者的地位(主機或設備機台)、是否要回覆訊息與是
否為最後一個 Block。
6. Checksum,2 個位元組(2Bytes)。將 Header 及 Data 內的資料的加
總,所得之二個位元組即為 Checksum。
7. R bit:R=0 Host Equipment ;R=1 Host Equipment。
8. W bit:W=0 不必回覆訊息;W=1 必須回覆訊息。
9. E bit:E=0 尚有 Block;E=1 此為最後一個 Block。
10. System Bytes,必須每一 Block 均相同,且在交談的過程每一
Primary SECS Message 之 System Bytes 均為唯一。主機或設備端自
行維護其 Primary Message 之 System Bytes,System Bytes 之規劃
兩者無關,一般以累加的方式來產生。Secondary Message 之 System
Byte 則必須與 Primary Message 之 System Byte 相同。
表四 一個 SECS Message Block 的結構
意義註解
位元組
資料長度
名稱
Length Byte
Upper Device ID
Lower Device ID
Upper Message ID
Lower Message ID
Upper Block No.
Lower Block No.
System Bytes
System Bytes
System Bytes
System Bytes
Data
Upper Checksum
Lower Checksum
機械所設備控制部
數值
10~254
R 0~127
0~256
W 0~127
0~255
E 0~127
1~255
0~255
0~255
0~255
0~255
0~255
0~255
0~255
7
系統比對用資料。
區塊序號
區塊序號
裝置試別碼,自行
定義。
Stream No.
Function No.
0
1
2
3
4
5
6
7
8
9
10
11
~
254
255
第 1 位元組至第
254 位元組之總和 256
SECS II 定義
11. 等待時間限制:在資料傳遞的過程中,由於機台資料傳送的延遲或
因機台當機無法再傳遞資料,都會造成資料的不完整。必需重新傳
送,或告知主機通知設備工程師檢修機台。等待的時間有四種,而
傳輸錯誤之重試次數亦有規定。如表五所示。實際的時間限制則可
由機台的特性來訂定。
12. Inter Character Timeout:位元組(Byte)間的傳輸延遲上限。
13. Protocol Timeout:發出 ENQ 後至收到對方回 EOT 的等待時間上
限。
14. Reply Timeout:發出 Primary Message 完畢後等待對方回 Secondary
Message 的等待時間上限。
15. Inter-Block Timeout:在多區塊(Multi-Block)的場合下,判斷區
塊間的傳遞延遲時間上限。
16. Retry Limit:當對方發生 Timeout 未回應,再次重試的次數。
表五 Timeout 之分類
T
T1
T2
T3 Reply
T4
Inter-Block
RTY Retry Limit
Timeout 名稱 SEMI 標準
Inter-Character
0.5(秒)
Protocol
10(秒)
45(秒)
45(秒)
3(次)
範圍
精度
0.1~10(秒) 0.1(秒)
0.2~25(秒) 0.2(秒)
1~120(秒) 1(秒)
1~120(秒) 1(秒)
0~31(次) 1(次)
SECS II
SECS II 定義了 Stream Function 的結構及資料型態,一個 Primary Message
可傳送的資料長度最多可達 7.99 百萬位元組。Primary Message 的資料(Data)
則由一些項目(Item)依序串接組成,共 15 種不同資料型態(Format Code)的
Item,每一 Item 包含了 2~4 個位元組的 Header 用來記錄 Item 的資料型態及長度,
其結構如下表六及表七所示。
表六 Item Header Format
名稱
Bit Number
8 7 6 5 4 3 2 1
NLB
資料型態(Format Byte)
長度(Length Byte, MSB)
長度(Length Byte)
長度(Length Byte, LSB)
Item 的資料
表七 長度位元組的的數目(Number of Length Bytes)
Format Code
0~255
0~255
0~255
0~255
機械所設備控制部
8
位元組
1
2
3
4
5 ~7.99 million