资源

Resources

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”, 而响应设置为 “plain teletype”.
示例2: GPIB
GPIB (IEEE-488)示例是作为伪代码编写的,因为没有类似的GPIB控制台程序。 发送到SIM系统的实际数据再次设置为 “bold teletype”, 而响应设置为“plain teletype”.

示例3: 多台级联
下面以RS-232为例,主机连接的SIM900序列号为000112,该主机的内部槽位填充SIM970电压表,辅助端口A连接到第二个SIM900主机(序列号为000321)。这第二个主机插满SIM925多路复用器。
发送到SIM系统的实际数据再次设置为“bold teletype”, 而响应设置为“plain teletype”.