機械所設備控制部1半導體廠自動化之通訊協定SECSI/II&GEM李文猶陳玉雲蔡嘉鴻870508@itri.org.tw半導體機台與CIM(ComputerIntegratedManufacturing,電腦整合製造)主機之通訊協定為SECS(SEMIEquipmentCommunicationStandard,半導體設備通訊標準),此協定乃是由SEMI(SemiconductorEquipmentandMaterialsInternational,半導體設備與材料國際連盟)[1]所製定。半導體機台必須於運轉生產期間與主機保持密切的通連,以接受來自主機電腦的控制或詢問,並且能即時回應主機之要求與回報執行結果;除此之外亦需主動回報目前機台的異常狀況。SECS通訊之SECSMessage(StreamFunction)一顆專用IC(IntegratedCircuit)由HDL(HardwareDescriptionLanguage,硬體描述語言)進行電路設計,而後送到半導體廠進行生產製造。IC由矽砂到封裝完成,所需的製造程序繁複,所需用到的半導體機台或半導體材料種類超過千種。為確保晶圓在每一道製程均能做到完美,或排除前一製程的不良品,生產的過程中不斷地有來自主機或機台的運轉訊息要相互傳遞,因此SEMI將SECS的主要訊息分類為:1.機台狀態(EquipmentStatus)。2.機台控制及診斷(EquipmentControlandDiagnostics)。3.材料狀態(MaterialStatus)4.材料控制(MaterialControl)。5.例外處置(ExceptionHandling)。6.資料收集(DataCollection)。7.機台操作管理(ProcessProgramManagement,Recipe)。8.控制程式傳送(ControlProgramTransfer)。9.系統錯誤(SystemErrors)。10.終端機服務(TerminalServices)。11.主機檔案服務(HostFileServices)。12.晶圓定位(WaferMapping)。13.資料組傳送(DataSetTransfers)。14.物件服務(ObjectServices)。15.配方管理(RecipeManagement)。16.程序處理管理(ProcessingManagement)。17.子系統控制與資料(SubsystemControlandData)。機械所設備控制部2這些主要訊息內所包含的常用子訊息為:1.要求建立連線(EstablishCommunication):主機與機台建立連線。2.機台操作配方:指定機台的運作的程序及執行參數。3.遠端控制(RemoteControl):由主機主動下令機台進行局部區域之操作。4.錯誤訊息(ErrorMessage):回報主機所傳送的StreamFunction或參數有誤。5.警報訊息(AlarmMessage):機台回報警報訊息給主機。6.動態事件回報(DynamicEventReport):機台主動回報特殊狀況訊息給主機。7.變數資料收集(VariableDataCollection):收集機台耗材或零件損耗及變化之資料。8.狀態資料收集(StatusDataCollection):收集目前機台之操作狀態。9.晶圓訊息:傳遞與晶圓或晶舟相關的訊息。10.緩衝暫存(Spooling):主機與機台之連線在通訊中斷的時間內或通訊的狀況下,機台會將指定為Spooled的訊息放入緩衝暫存區,待回復連線後由主機以S6F23來詢問通訊中斷時間內機台所要發出的訊息,主機則可用S2F43來指定保留於緩衝暫存區的訊息。一般Streamone(S1Fx)不適合Spooled,一旦主機致能Spooling功能後,在連線過程中被指定為Spooled的SteamFunction都會放入緩衝暫存區內,等待主機自行來取得,而不是如其它訊息一樣直接傳給主機。在SECS的標準中又將這些訊息分以不同的StreamNumber搭配不同的FunctionNumber來表示,其先以StreamNumber來區分不同訊息種類,再以FunctionNumber來分類訊息意涵。二者的編號範圍StreamNumber為0~127;FunctionNumber為0~255,並以Sn,Fm來表達。目前在SEMI中並未完全定義,其對應方式如下所示。表一SteamFunction對照表訊息種類習用訊息種類StreamNumber(n)FunctionNumber(m)機台狀態10~20機台控制及診斷20~50材料狀態晶圓狀態30~26材料控制晶圓控制40~42例外處置警報訊息50~18資料收集動態事件回報60~30機台操作管理配方管理70~36控制程式傳送80~4系統錯誤錯誤訊息90~14機械所設備控制部3終端機服務100~10主機檔案服務11已被SEMI刪除晶圓定位120~20資料組傳送130~16物件服務140~18配方管理150~48程序處理管理160~28機台控制及診斷170~14子系統控制與資料180~14常見的StreamNumber為1、2、3、4、5、6、7、9與10。SECS以RS232通訊協定做為其傳輸標準,為使命令均能有效的傳達,主機與設備機台間採半雙工一問一答的方式相互溝通。發話者以單數之FunctionNumber(PrimaryMessage)做為其訊息代號,而受話者(回話者)若必須回覆發話者則以FunctionNumber+1(SecondaryMessage)做為其回覆訊息代號,所以表一的FunctionNumber均以偶數結束。每一半導體機台所用到的StreamFunction並不會相同,而且大部份機台實際所用到的StreamFunction總數約為50個(單數之FunctionNumber),這完全依機台操作的複雜度及動作需求來決定。StreamFunction之發送接收,主機或設備機台並非每一代號均可使用,有些只有主機才可以發送,部份則為設備專屬,當然也有二者均可發送的StreamFunction,收話者若必需回話則一律以FunctionNumber+1回覆,常用的StreamFunction如表二所示,表中灰色項目為具有標準機台介面(StandardMechanicalInterFace,SMIF)的自動化生產系統(AutomaticManufacturingsystem)較常選用之StreamFunction通訊訊息。表二常用的StreamFunctionStreamFunction訊息意涵HostÅÆEquip.S1F1AreyouThereÅÆS1F2OnLineDataÅÆS1F3SelectedStatusRequestÆS1F4SelectedStatusRequestÅS1F5FormattedStatusRequestÆS1F6FormattedStatusDataÅS1F9MaterialTransferStatusDataÆS1F10MaterialTransferStatusDataÅS1F11StatusVariableNamelistRequestÆS1F12StatusVariableNamelistReplyÅS1F13ConnectRequestÅÆS1F14ConnectRequestAcknowledgeÅÆS2F13EquipmentConstantRequestÆS2F14EquipmentConstantDataÅS2F15NewEquipmentConstantSendÆS2F16NewEquipmentConstantSendAcknowledgeÅS2F17DateandTimeRequestÅÆS2F18DateandTimeDataÅÆS2F21RemoteCommandSendÆ機械所設備控制部4S2F22RemoteCommandAcknowledgeÅS2F23TraceInitialSendÆS2F24TraceInitialAcknowledgeÅS2F25DiagnosticLoopbackRequestÆS2F26DiagnosticLoopbackDataÅS2F27InitiateProcessingRequestÆS2F28InitiateProcessingAcknowledgeÅS2F29EquipmentConstantNamelistRequestÆS2F30EquipmentConstantNamelistReplyÅS2F31DateandTimeSendÆS2F32DateandTimeAcknowledgeÅS2F33DefineReportÆS2F34DefineReportAcknowledgeÅS2F35LinkEventReportÆS2F36LinkEventReportAcknowledgeÅS2F37Enable/DisableEventReportÆS2F38Enable/DisableEventReportAcknowledgeÅS2F39Multi-BlockInquireÆS2F40Multi-BlockGrantÅS2F41RemoteCommandwithParametersÆS2F42RemoteCommandAcknowledgeÅS2F43ResetSpoolingStreamsandFunctionsÆS2F44ResetSpoolingAcknowledgeÅS2F47VariableLimitAttributeRequestÆS2F48VariableLimitAttributeSendÅS2F49EnhancedRemoteCommandÆS2F50EnhancedRemoteCommandAcknowledgeÅS2F65ResetSpoolingStreamsandFunctionsÆS2F66ResetSpoolingStreamsandFunctionsAck.ÅS2F85VariableLimitAttributeRequestÆS2F86VariableLimitAttributeSendÅS2F87DefineVariableLimitAttributesÆS2F88DefineVariableLimitAttributesAckÅS3F1MaterialStatusRequestÆS3F2MaterialStatusDataÅS3F11MaterialIDRequestÅS3F12MaterialIDRequestAcknowledgeÆS3F13MaterialIDSendÆS3F14MaterialIDAcknowledgeÅS4F1ReadytoSendMaterialÅÆS4F2ReadytoSendAcknowledgeÅÆS4F3HandshakeCompleteÅÆS4F5NotReadytoSendÅÆS4F17RequesttoReceiveMaterialÅÆS4F18RequesttoReceiveMaterialAcknowledgeÅÆS5F1AlarmReportSendÅS5F2AlarmReportAcknowledgeÆS5F3Enable/DisableAlarmSendÆ機械所設備控制部5S5F4Enable/DisableAlarmAcknowledgeÅS5F5ListAlarmRequestÆS5F6ListAlarmDataÅS5F7ListEnableAlarmRequestÆS5F8ListEnableAlarmAcknowledgeÅS5F73AlarmNotificationSendÅS5F73AlarmNotificationAcknowledgeÆS6F1TraceDataSendÅS6F2TraceDataAcknowledgeÆS6F3DiscreteVariable