1.簡介
SerialNet模式將本地異步串口通信轉換成基于TCP/UDP協議的網絡通信。其主要目是將串行通信的簡單設備實現在網絡上的通信,而這些設備不需要做任何改變,為此,SerialNet模式定義了一系列相關的操作參數,這些參數的定義實現了網絡連接所需要的屬性。當DTU工作在SerialNet模式時,在設備串口與網絡之間他的工作方式就象路由器的路由過程。
SerialNet模式的工作方式不同于客戶端或服務端設備(客戶端設備通常指PLC、RTU等數據采集設備,服務端設備指系統中心服務器),當客戶端發起通訊請求時,在兩設備之間數據傳輸之前,DTU必須與遠端服務中心建立網絡連接,也就是說,客戶端設備(例如PLC)要與數據中心進行數據傳輸時,首先客戶端設備與DTU設備的串口連接,DTU在進入SerialNet模式后,自動被調用去與服務器中心設備建立網絡連接。
DTU進入SerialNet模式后,既可以作為客戶端模式也可作為服務端模式。工作在SerialNet模式下的DTU將自動完成串口到網絡通信的轉換,所有數據可透明的在兩設備之間雙向傳輸。
2.SerialNet模式
SerialNet模式的建立首先要用AT+I命令定義所有相關的參數,然后再用一特殊AT+I命令進入SerialNet模式。
DTU一旦進入SerialNet模式,將不再接收任何AT+I命令,通過與主機串口的連接,DTU專注于處理本地設備串口的數據,DTU不對數據做任何處理(即透明傳輸)。在這種模式下,自動波特率不起作用,在進入SerialNet模式之前,固定波特率必須設置。
SerialNet模式可通過以下兩種方法來終止:
a) 通過k1、k2、k3三個跳線監控數據流,通過不同的組合可實現多種方案來觸發復位機制。
b) 通過串口連續輸入3個“+”號,間隔在半秒以內
只要有其中一個事件發生,DTU將退出SerialNet模式然后重啟,此時DTU切換到命令模式并可再次響應AT+I命令。
3.服務器模式
DTU作為服務器時,DTU將一直處于等待狀態,監聽由遠程客戶端發起的連接。遠程客戶端要建立通訊必須要知道服務器設備的IP地址和監聽端口號,如果DTU設備處于離線狀態時,通過撥號可使其被喚醒上線(振鈴2次后掛機,處于SerialNet模式的DTU此時撥號接入ISP然后聯入互聯網),設備一旦接入網絡,它將被分配一個動態IP地址,為實現網絡連接,這個地址必須傳給客戶端設備。上線后服務端設備根據RRSV參數中包含的服務器IP地址和端口號,自動執行IP注冊過程,DTU將通過Socket注冊模式注冊它的IP地址和監聽端口號到注冊服務器上。遠程客戶端可通過注冊服務器獲取服務端設備的動態IP地址和監聽端口號,根據這個IP地址,遠程客戶端就可與服務端設備建立連接,一旦連接被建立,在兩設備之間就可實現雙向數據通信,直到終止信號發生,此時連接才被斷開。
4.客戶端模式
DTU作為客戶端時,DTU設備首先要與服務端建立連接。通過串口與DTU相連的設備首先向串口發送數據,DTU(處于SerialNet模式)接收并緩存這些數據,如果DTU沒有與遠程服務器建立連接,則DTU首先要建立這個連接。(DTU上線之后,DTU根據RRSV和RRWS參數去執行IP注冊過程(如果參數為空,則不執行注冊過程)),一旦socket連接建立成功,在連接期間傳輸所有緩存中存儲的數據。MBTB參數分配了*大緩存區,如果在連接建立之前,串口接收到超過*大緩存區的數據,這些數據將被丟棄。遠程服務器的IP地址和監聽端口號是SerialNet模式要配置的參數。一但連接被建立,數據就可以在客戶端與服務端之間雙向傳輸。如果這個連接*終沒有被建立,客戶端的數據將被丟棄(此種情況類似于數據發送到串口,但串口沒有連接串口線)。數據可隨時進行傳輸,直到有終止連接的信號發生,此時連接才被斷開。
5.自動SerialNet喚醒過程
當DTU處于離線狀態時,無論是作為客戶端還是作為服務端,都不能進行有效的數據傳輸,為實現數據傳輸必須使其上線,但設備一般都不在本地,不能直接通過串口進行設置,為解決此問題,DTU內嵌了自動喚醒機制,此時在DTU設備中SIM/UIM卡必須開通語音功能,可通過任意一部電話向其撥號,撥號成功并振鈴2次后掛機,處于SerialNet模式的DTU此時撥號接入ISP然后聯入互聯網,接入網絡后,DTU根據參數的設置進入相應的工作模式,既可實現數據的傳輸。
6.數據包傳輸
DTU可將接收到的數據緩存起來,打包然后通過網絡傳輸到遠端系統。當遇到下列條件之一時數據將被打包發送。
a) 從串口接收到*大字節數,數據將被發送,參數由MCBF設置
b) 可設置*大傳輸單元,DTU可按照*大傳輸單元大包進行數據傳輸,參數有MPS設置。
c) 當遇到特定字符時,發送數據,參數由FCHR設置。
d) 發送數據間隔時間超時時,發送數據,即每隔間隔時間,設備就發送數據,參數由MTTF設置。
上訴4個條件只要有一個條件成立,數據就會被發送,這些參數可通過AT+I命令設置。
當為UDP傳輸時,數據包的大小是根據一次性寫入串口數據包的大小有關。當為TCP通信時,數據包在傳輸之前要被合并,這個遵循TCP協議的相關規定。
7.結束SerialNet任務
斷開SerialNet任務可通過如下方式:
a) 通過串口向DTU傳輸斷開連接的字符串,這個字符串在DSTR參數中設置。
b) 等待非激活時間超時,超市時間在IATO參數中設置。
這兩種情況產生,DTU將離線,SerialNet任務將被中斷,此時DTU處于等待重新建立連接的觸發條件的發生。
8.SerialNet連接失敗
如果DTU建立SerialNet連接失敗,此時SerialNet模式處于非激活狀態SerialNet將等待一個超時后再重新與服務中心建立連接,這個超時時間在SNRD參數中設置。
9.本地串口設置
針對SerialNet模式,通過設置SNSI參數,串口參數配置如下:
波特率:2400,4800,9600,19200,38400,56K或115K,單位bit/秒,
數據位:7或8
校驗位:無,偶校驗,奇校驗
停止位:1或2
流控:無(0)或硬件(1)
10.激活命令
通過如下命令,DTU將強制進入SerialNet模式:
AT+I[!]SNMD(“!”代表自動重連),如果這個參數被設置,DTU將回復“I/OK”,后面跟著“I/DONE”。當這個命令被執行后,如果DTU登錄GPRS網絡成功,它將關閉所有打開的socket連接,并斷開與ISP的連接,進入重新啟動階段。當DTU重啟后工作在SerialNet模式時,它將設置串口為固定波特率,同時串口參數的設置根據SNSI參數中定義而定。當DTU處于等待撥號上線的狀態時,modem將檢測“RING”字符串,DTU將等待“RING”字符串,一旦檢測到該字符串,DTU將連到互聯網中。上線后,如果RRSV包含值,它將根據RRSV的定義創建socket,發送注冊信息,注冊信息包含從ISP得到的動態IP地址、監聽端口號,這個監聽端口號等待遠端庫戶端的連接。
在下列情況發生時,DTU將斷開socket連接:
a) 遠端服務器關閉了SeiralNet的socket
b) IATO設置的時間超時
c) 設備從串口接收到由DSTR設置的字符串
“!”是特殊的標志,DTU根據這個標志,一旦響應AT+I!SNMD命令,它將立即上線。在這種情況下,DTU不將下線,即使SerialNet的socket被關閉DTU仍將保持在線。通過輸入“+++”可退出SerialNet模式,退出后BDRF設置的波特率參數將是控制DTU的波特率。