基于GPSOne的貴重物品跟蹤系統(tǒng)終端設(shè)計(jì)
DTGS-800與單片機(jī)接口使用的是3線(TXD,RXD,GND)串口,利用AT指令可以實(shí)現(xiàn)打電話、發(fā)短信及定位等功能,但是在上網(wǎng)和數(shù)據(jù)傳輸時(shí)需要接串口的流控信號(hào)(如RTS、CTS及DTR等)。RTS為請(qǐng)求發(fā)送信號(hào);CTS為清除發(fā)送信號(hào),起流控作用;DTR為數(shù)據(jù)終端準(zhǔn)備好信號(hào),用來(lái)指示上網(wǎng)時(shí)數(shù)據(jù)連接的有效性,系統(tǒng)中使用單片機(jī)的一個(gè)I/O口來(lái)控制。當(dāng)DTR=1時(shí),表示允許數(shù)據(jù)連接。此時(shí)單片機(jī)向DTGS-800發(fā)送上網(wǎng)指令,DTGS -800就被允許連接到Internet,單片機(jī)即可通過串口控制DTGS-800向指定IP地址和端口號(hào)的服務(wù)器上傳輸數(shù)據(jù)。注意,當(dāng)模塊處于數(shù)據(jù)連接有效狀態(tài)時(shí),是不響應(yīng)任何AT指令的。當(dāng)數(shù)據(jù)傳輸完畢時(shí),將DTR置0可斷開數(shù)據(jù)連接,此時(shí)DTGS-800就可以再次響應(yīng)AT指令。本文引用地址:http://2s4d.com/article/152345.htm
3 系統(tǒng)軟件設(shè)計(jì)
單片機(jī)與DTGS-800通信,分為單片機(jī)控制DTGS-800執(zhí)行相應(yīng)的功能,以及控制 DTGS-800通過網(wǎng)絡(luò)向監(jiān)控服務(wù)器傳輸數(shù)據(jù)2部分。單片機(jī)控制DTGS-800執(zhí)行相應(yīng)的功能,只需要通過串口給DTGS-800發(fā)送AT指令,不同的AT指令可以實(shí)現(xiàn)不同的功能。AT命令是以“AT”為首,CR>字符結(jié)束的字符串。單片機(jī)每向模塊發(fā)送一個(gè)AT指令,模塊都會(huì)返回?cái)?shù)據(jù)。返回的數(shù)據(jù)是以CR>LF>結(jié)束的字符串。單片機(jī)收到數(shù)據(jù)之后,要經(jīng)過一定的解析和處理,才能重新發(fā)送給監(jiān)控服務(wù)器。串口的設(shè)置如下:115 200 bps,8位數(shù)據(jù)位,1位停止位。單片機(jī)控制DTGS-800向監(jiān)控服務(wù)器發(fā)送數(shù)據(jù)時(shí),定義了相應(yīng)的數(shù)據(jù)格式:幀頭+數(shù)據(jù)內(nèi)容。幀頭包括以下內(nèi)容:16字節(jié)定長(zhǎng)的R-UIM卡號(hào)碼、1字節(jié)的命令標(biāo)識(shí)、1字節(jié)的數(shù)據(jù)內(nèi)容長(zhǎng)度。當(dāng)數(shù)據(jù)內(nèi)容長(zhǎng)度不夠時(shí),按左對(duì)齊,右側(cè)填0x00。數(shù)據(jù)內(nèi)容即發(fā)送的數(shù)據(jù)。命令標(biāo)識(shí)定義命令的類型,命令類型說明如表1所列。
例如,當(dāng)發(fā)送的數(shù)據(jù)是定位信息時(shí),幀數(shù)據(jù)依次是:16字節(jié)的R-uIM卡號(hào)碼(通常為11字節(jié)),類似于手機(jī)號(hào)碼,不夠16字節(jié)時(shí),后面補(bǔ)0x00;1字節(jié)的數(shù)據(jù)內(nèi)容長(zhǎng)度,用來(lái)說明每幀幀頭后面發(fā)送的數(shù)據(jù)內(nèi)容的字節(jié)數(shù);1字節(jié)的命令標(biāo)識(shí),表明發(fā)送的數(shù)據(jù)幀的意義,如果是定位信息,則發(fā)送的是0x12;緊接著是數(shù)據(jù)內(nèi)容。在通信協(xié)議里還規(guī)定了不同信息內(nèi)容的數(shù)據(jù)格式。 |
注意:在TCP連接并發(fā)送數(shù)據(jù)時(shí)使用了握手機(jī)制,即應(yīng)答機(jī)制。為使系統(tǒng)的流程更加清晰,圖5中未給出握手過程。當(dāng)DTGS-800模塊向監(jiān)控端發(fā)送數(shù)據(jù)時(shí),監(jiān)控端需要根據(jù)情況返回應(yīng)答信號(hào);模塊如果在規(guī)定的時(shí)間內(nèi)沒有得到應(yīng)答,默認(rèn)為連接超時(shí)。為避免在TCP連接過程中由于沒有收到應(yīng)答而出現(xiàn)死機(jī)情況,系統(tǒng)中運(yùn)用了超時(shí)重傳機(jī)制,保證了通信的可靠性。 結(jié) 語(yǔ) |
評(píng)論