SIMs通訊示例
簡介
小型儀表模塊SIM系列旨在支持用戶計算機與各種儀器之間的簡單通信。盡管有可能與SIM模塊直接通信,但本文只考慮通過SIM900主機通信的情況。
SIM900具有RS-232和GPIB兩種主機計算機接口,兩者可選其一作為主接口。使用面板后面的琴鍵形DIP開關(位置3)來切換接口:向上為RS-232,向下為GPIB。根據(jù)主機的選擇對最右邊的5個開關進行解讀,并確定默認波特率(RS-232)或儀器地址(GPIB)。僅能啟動一個主接口,SIM900上電時確定選擇。
通過SIM900進行通信的*簡單方式是“connection"模型,管理單個雙向I / O數(shù)據(jù)流。在開機時,這個數(shù)據(jù)流最初被定向到SIM900本身,因此,例如,一個識別查詢將導致SIM900 ID字符串作為響應返回到上位機。使用SIM900“CONN"命令,用戶可以將I / O數(shù)據(jù)流引導到主機的一個儀器端口(內(nèi)部插槽為1-8,遠程SIM端口為9,輔助RS-232端口為A或者B)。連接到特定端口 后,所有I / O都從上位機通過主機引導到目標端口,目標端口的響應通過主機傳回上位機。為了結(jié)束CONNection,上位機發(fā)送一個預編程的“escape"密鑰,換碼鍵作為CONN命令中的第二個參量被提供,應當謹慎選擇,以確保它不會在上位機到目標端口的正常I/O數(shù)據(jù)流中意外出現(xiàn)。在下面的示例中,選擇無意義序列XYZZY作為換碼鍵作(注意該鍵是區(qū)分大小寫的;第二個示例實際上使用xyZZy 來演示這一點)。
主機將數(shù)據(jù)從上位機中繼到CONNected端口時,它會持續(xù)掃描,查找是否存在可能與換碼鍵匹配的項。如果key的第一個字符被接收到,則這個字符被保存在主機的存儲器緩沖器中。接收下一個字符時,它與key的第二個字符進行比較;如果它匹配,也會添加到緩沖區(qū),否則,緩沖區(qū)中之前的字符和新的字符都會傳輸?shù)侥繕硕丝?。例如,考慮一個帶有換碼鍵XYZZY的連接,如果上位機嘗試向端口發(fā)送消息XYZ,那么在接收到另一個字符(確保該字符不是下一個Z)之前,主機將保留所有三個字符,對于此局部匹配緩沖沒有超時設置,所以在主機無法將消息數(shù)據(jù)與換碼鍵唯*區(qū)分之前,數(shù)據(jù)將被無限期地保留。
當使用輔助RS-232端口將多個SIM900主機連接在一起時,情況變得更加有趣。在這種情況 下,必須為兩臺主機使用不同的換碼鍵,以在不斷開“父"數(shù)據(jù)流的情況下重定向“子"SIM900 I / O數(shù)據(jù)流。關于此演示,請參閱下面的示例3。
示例1: RS-232
設置用戶輸入的文本“bold teletype", 而響應設置為“plainteletype".
示例2: GPIB
GPIB (IEEE-488)示例是作為偽代碼編寫的,因為沒有類似的GPIB控制臺程序。發(fā)送到SIM系統(tǒng)的實際數(shù)據(jù)再次設置為“bold teletype", 而響應設置為“plainteletype".
示例3: 多臺級聯(lián)
下面以RS-232為例,主機連接的SIM900序列號為000112,該主機的內(nèi)部槽位填充SIM970 電壓表,輔助端口A連接到第二個SIM900主機(序列號為000321)。這第二個主機插滿SIM925多路復用器。
發(fā)送到SIM系統(tǒng)的實際數(shù)據(jù)再次設置為“bold teletype", 而響應設置為“plainteletype".