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