SIMs通讯示例
简介
小型仪表模块SIM系列旨在支持用户计算机与各种仪器之间的简单通信。尽管有可能与SIM模块直接通信,但本文只考虑通过SIM900主机通信的情况。
SIM900具有RS-232和GPIB两种主机计算机接口,两者可选其一作为主接口。使用面板后面的琴键形DIP开关(位置3)来切换接口:向上为RS-232,向下为GPIB。根据主机的选择对最右边的5个开关进行解读,并确定默认波特率(RS-232)或仪器地址(GPIB)。仅能启动一个主接口,SIM900上电时确定选择。
通过SIM900进行通信的*简单方式是“connection"模型,管理单个双向I / O数据流。在开机时,这个数据流最初被定向到SIM900本身,因此,例如,一个识别查询将导致SIM900 ID字符串作为响应返回到上位机。使用SIM900“CONN"命令,用户可以将I / O数据流引导到主机的一个仪器端口(内部插槽为1-8,远程SIM端口为9,辅助RS-232端口为A或者B)。连接到特定端口 后,所有I / O都从上位机通过主机引导到目标端口,目标端口的响应通过主机传回上位机。为了结束CONNection,上位机发送一个预编程的“escape"密钥,换码键作为CONN命令中的第二个参量被提供,应当谨慎选择,以确保它不会在上位机到目标端口的正常I/O数据流中意外出现。在下面的示例中,选择无意义序列XYZZY作为换码键作(注意该键是区分大小写的;第二个示例实际上使用xyZZy 来演示这一点)。
主机将数据从上位机中继到CONNected端口时,它会持续扫描,查找是否存在可能与换码键匹配的项。如果key的第一个字符被接收到,则这个字符被保存在主机的存储器缓冲器中。接收下一个字符时,它与key的第二个字符进行比较;如果它匹配,也会添加到缓冲区,否则,缓冲区中之前的字符和新的字符都会传输到目标端口。例如,考虑一个带有换码键XYZZY的连接,如果上位机尝试向端口发送消息XYZ,那么在接收到另一个字符(确保该字符不是下一个Z)之前,主机将保留所有三个字符,对于此局部匹配缓冲没有超时设置,所以在主机无法将消息数据与换码键唯*区分之前,数据将被无限期地保留。
当使用辅助RS-232端口将多个SIM900主机连接在一起时,情况变得更加有趣。在这种情况 下,必须为两台主机使用不同的换码键,以在不断开“父"数据流的情况下重定向“子"SIM900 I / O数据流。关于此演示,请参阅下面的示例3。
示例1: RS-232
设置用户输入的文本“bold teletype", 而响应设置为“plainteletype".
示例2: GPIB
GPIB (IEEE-488)示例是作为伪代码编写的,因为没有类似的GPIB控制台程序。发送到SIM系统的实际数据再次设置为“bold teletype", 而响应设置为“plainteletype".
示例3: 多台级联
下面以RS-232为例,主机连接的SIM900序列号为000112,该主机的内部槽位填充SIM970 电压表,辅助端口A连接到第二个SIM900主机(序列号为000321)。这第二个主机插满SIM925多路复用器。
发送到SIM系统的实际数据再次设置为“bold teletype", 而响应设置为“plainteletype".