发布时间:2022-11-24 浏览人数:1人查看
SEMI 标准E04(SECSI)介绍
这几期主要介绍SEMI的通讯标准:
E04(SECSI)、E05(SECSII)、HSMS(E37)
半导体通讯标准产生在70年代,当时的通讯接口以RS232为主(相信大部分的90/00不知道什么是RS232,有兴趣的可以去百度一下:带你认识RS232通讯 (baidu.com)。RS232说的直白一些就是将9条线的第2条和第3条线交叉,用作资料的传输。在半导体设备上,有使用9个接线和25个接线的两种不同的版本,当年为了测机我们手上有一堆不同版本的线和转接头(到了现场才发现,设备的接头是公头,手里的线是母头,这就麻烦了)。RS232在PC的年代,被称之为COM,一般的PC都会自带两个COM Port,COM1和COM2。
第一代的数据通信(电信猫)用的就是RS232的协议,最早的速度 9600Bit/秒(这里是Bit不是Byte,也就是一秒中传输1200Byte),第一个半导体的通讯协议SEMI E04就是基于RS232,也就是我们大家知道的SECSI-RS232。
1996年开始接触SECS/GEM协议的时候,SECSI还是主流。大部分设备厂商主要还是以提供SECSI为主。RS232的最大挑战就是硬件,当年大部分的厂商都把RS232的线限制在25米长(虽然RS232的建议是50 米,但一般的传输线25米,数据转输已经不太稳定了)。印象中,第一个提供HSMS(网路)的封装测试设备是KNS的8020,客户还要特别买一个转接器,才能把设备上25PIN的接口转换成同轴电缆或RJ45的网口。
这里要说明一下,SECSI用的RS232是不能用RS485/ RS422的方式串接起来的,这是标准的1对1的通讯协定。
SEMI E04(SECSI)的主要定义了以下几个重要的部分:
1)数据组成部分:Transaction,Primary/Secondary Message,Header等。
2)控制信号:REQ (04), ACK (05)...
3)BlockTransfer Prototol (BTP):这是描述了Host和Equipment如何传送数据,定义了设备之间如何传送一个Block(254个Byte)。
4)MessageReceiving Algorithm(MRA):这是描述了如何把多个Block数据组合成Message。
5)Timeout:超时时间。
如果要说SECS/GEM Compliance(满足标准),其实也是要满足SEMI E04 的,因为Transaction,Primary / Secondary Message等都是在这里定义的,而且包括了最重要的Transaction Timeout T3。
SEMI E04由于每次传输只能是254位元,所以扣除Header,每次其实只能传244个资料,每一个Block收到以后必须计算CRC 值(也就是把所有的位元值相加)。可以想象在进行Recipe传输时,需要消耗的时间。
SEMI E04有些独特的思路,例如BTP中定义了Master和 Slave,而Master有主动权,Slave必须要等到Master送完所有的Transaction才能开始送。而在现实中,我们会把Equipment定义成Master,Host定义成Slave,这和我们一般的认识是有冲突的,Host负责控制不应该是Master吗?这个逻辑是因为要保证设备能把事件都送出来,要知道如果设备来不及处理Transaction,就有可能会导致设备程序控制出问题(Transaction越来越多,内存占用就会变大,当年的内存是以MB来计算而不是GB)。所以这里是一定要保障设备能够以最顺利的方式送出Transaction的。
这样的设计也导致 Host端的Transaction Timeout(T3,预设值是45秒)会有可能发生。从字面上来看,每个Transaction如果在送出的45秒之后没有收到回复就会宣布失败。如果设备在收到Host的Transaction时,一直在送出大量的事件(或Trace Data),就会有来不及回复Host Transaction(因为在队列中排队)。
RS232是一种点对点的协议,那如果要接20台设备,总不可能在一台电脑插上25张RS232通讯卡。所以当时的解决方案就是买一台Terminal Server,把RS232的通讯转换成了网路,也就是后期我们看到的SECSI-TCP。当时一台24个PortTerminal Server 是大约8000美元(记得当时的品牌是XYPLEX)。现在淘宝上的串口转网口的装置也就是200元人民币(还是两个串口的)。后期大部分的Terminal Server都提供软件程式,可以直接把Terminal Server 的 Port对应成电脑中的COM Port,这个时候就可以用SECSI-RS232了。
SECSI-TCP和SECSI-RS232在通讯上没有太大的差别,但是在真实上有不同的习性。SECSI-RS232实际上开的是一个Port(例如COM1),一般上在电脑不会开不成功,但SECSI-TCP则是连接一个网路接口,是有可能会失败(例如Terminal Server Port被占用了)。这里EAP的实现上必须有不同的错误处理方式。例如SECSI-RS232基本上不会出现Port Open的错误,而SECSI-TCP则有可能出现问题。
2005年以前,大部分的笔记本电脑都提供RS232 Port,后来大家只能转买USB转RS232了。记得 2004 年买到市面上唯一还提供COM Port的笔记本电脑是一台Dell Latitude系列 的 12 寸笔记本。
目前市面上销售的SECS Driver和开源的SECS Driver,基本上都不支援SEMI E04。大家都可能觉得RS232已经被淘汰了,但是实际上在大部分的 6寸和8 寸工厂,使用SECSI的设备依然存在。曾经一个欧洲8寸厂的自动化工程师告诉我,他们只买SECSI的设备,因为不会有电脑网路中毒的问题,一直到了2006年后,他们才开始购买HSMS接口的设备。