1. 半导体行业SECS协议概述
SECS(SEMI Equipment Communications Standard)协议是半导体制造设备间通信的事实标准,由国际半导体设备与材料协会(SEMI)制定。这套协议定义了晶圆厂中设备与主机系统(如MES、EAP)之间的通信规范,确保不同厂商的设备能够无缝集成。
在300mm晶圆厂中,SECS-II(消息层)通常运行在HSMS(高速SECS消息服务)传输层上,采用TCP/IP协议栈。一个典型的SECS消息由会话ID(Session ID)、消息头(Header)和消息体(Body)组成,消息体采用SEMI E5标准定义的二进制格式。
关键点:SECS/GEM协议栈包含HSMS(传输层)、SECS-II(消息层)和GEM(设备行为模型)三个主要部分。上位机开发主要涉及HSMS和SECS-II的实现。
2. C#实现SECS协议的技术选型
2.1 基础通信架构设计
在C#中实现SECS通信通常采用异步Socket编程模型。.NET的System.Net.Sockets命名空间提供了TcpClient类,但直接使用Socket类能获得更精细的控制:
csharp复制using System.Net;
using System.Net.Sockets;
public class SecsHsmsTransport
{
private Socket _socket;
private const int HSMS_HEADER_SIZE = 14;
public void Connect(string ip, int port)
{
_socket = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
_socket.Connect(new IPEndPoint(IPAddress.Parse(ip), port));
StartReceiving();
}
private async void StartReceiving()
{
byte[] buffer = new byte[4096];
while (_socket.Connected)
{
int received = await _socket.ReceiveAsync(buffer, SocketFlags.None);
ProcessHSMSMessage(buffer, received);
}
}
}
2.2 消息编码方案对比
SECS-II消息体支持多种数据格式,C#实现时需要处理以下编码类型:
| 数据类型 | SEMI标准代码 | C#对应类型 | 字节序 |
|---|---|---|---|
| ASCII | A | string | Big-Endian |
| Binary | B | byte[] | Big- |
