Tiểu luận Tìm hiểu truyền dữ liệu qua GPRS và giám sát qua mạng

Mục lục

Sơ lược về GPRS 3

Module SIM900A 5

Sơ lược về GPRS TCP Server 7

Thiết lập kết nối giữa Modem SIM900A và Server 8

Quá trình truyền nhận gói tin TCP giữa module SIM900A và TCP Server 9

Mô hình thực nghiệm 10

Client 11

Server 14

Kết quả đạt được 16

Tài liệu tham khảo 17

 

docx17 trang | Chuyên mục: Điều Khiển Tự Động | Chia sẻ: tuando | Lượt xem: 379 | Lượt tải: 0download
Tóm tắt nội dung Tiểu luận Tìm hiểu truyền dữ liệu qua GPRS và giám sát qua mạng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
hụ thuộc vào số khe thời gian được dùng cho dịch vụ GPRS. 
Phương thức tính cước: dựa vào dữ liệu truyền nhận, không dựa vào thời gian kết nối.
Module SIM900A
Đặc điểm kỹ thuật
SIM 900A là một module Dual-band GSM/GPRS của hãng SIMCOM được tích hợp chip lõi AMR926EJ-S, thích ứng với chuẩn giao tiếp công nghiệp, hoạt động trên 2 băng tần GSM/GPRS 900/1800 MHz, cung cấp giao tiếp Voice, SMS, Data và Fax.
Hình ảnh module SIM900A
Các thông số
Nguồn cung cấp : 3.1 – 4.8V
Dual band 900/1800MHz
GPRS multi-slot class 10/8 
GPRS mobile station class B
GPRS class 10: maximum 85.6kbps (downlink)
PBCCH supported
Coding schemes CS 1, 2, 3, 4
CSD up to 14.4Kbps
USSD supported
Non transparent mode
PPP-stack
Các giao thức hỗ trợ : TCP/UDP, FTP/HTTP,
Tính năng đặc biệt: MMS, FOTA, tích hợp tập lệnh AT
Tập lệnh AT
Tập lệnh AT là tập hợp các lệnh dùng để điều khiển modem qua giao tiếp UART. AT làviết gọn của chữ ATtention. Mỗi dòng lệnh của nó bắt đầu với “AT” hay “at”. Đó là lý do tại sao các lệnh modem được gọi là các l ệnh AT. Nhiều lệnh của nó được sử dụng để điều khiển các modem quay số sử dụng dây mối (wired dial -up modems), chẳng hạn như ATD (Dial), ATA (Answer), ATH (Hool control) và ATO (return to online data state), cũng được hỗ trợ bởi các modem GSM/GPRS và các điện thoại di động. Bên cạnh bộ lệnh AT thông dụng này, các modem GSM/GPRS và các điện thoại di động còn được hỗ trợ bởi một bộ lệnh AT đặc biệt đối với công nghệ GSM.
Sơ lược về GPRS TCP Server
Đây là chương trình trên máy tính dùng để truyền nhận các gói TCP giữa modem GPRS và máy tính được kết nối với đường truyền internet.
Trong thực tế có nhiều sự lựa chọn về công cụ để xây dựng chương trình ứng dụng, tuy nhiên công cụ Microsoft Winsock Control được lựa chọn do các nguyên nhân sau: 
Độ tin cậy cao. 
Dễ dàng xây dựng ứng dụng dựa trên các công cụ của Microsoft Visual Studio. 
Phù hợp với các ứng dụng dựa trên lớp TCP/UDP.
Chương trình ứng dụng được xây dựng trên lớp TCP/UDP cho phép nâng cao tính linh động của ứng dụng, do không phải phụ thuộc vào các ứng dụng ở lớp cao hơn như FTP, HTTP, Đồng thời cho phép giảm bớt dữ liệu lưu thông trên đường truyền, tiết kiệm chi phí do hoạt động trong thời gian dài phù hợp với các ứng dụng truyền dữ liệu và giám sát qua mạng.
Từ đây có hai sự lựa chọn là TCP và UDP. Mỗi phương thức truyền nhận đều có ưu nhược điểm riêng
TCP
UDP
Đảm bảo độ tin cậy của gói dữ liệu được truyền đi do quá trình kết nối và bắt tay chặt chẽ giữa client (SIM900A) và server.
Độ tin cậy không cao. Gói dữ liệu chỉ được truyền đi mà không cần biết đến trạng thái kết nối giữa client và server, không cần biết gói dữ liệu có truyền được đến đích hay không.
Tốc độ truyền nhận chậm hơn so với UDP, do phải chờ gói dữ liệu bắt tay của gói dữ liệu trước đó trước khi gói dữ liệu tiếp theo được truyền đi.
Tốc độ truyền nhận nhanh, do không cần phải chờ các gói dữ liệu phục vụ cho quá trình bắt tay khi truyền nhận.
Ứng dụng giám sát điều khiển yêu cầu dữ liệu có độ tin cậy cao trong truyền nhận, do vậy giao thức TCP được lựa chọn trong nội dung tiểu luận.
Thiết lập kết nối giữa Modem SIM900A và Server
Một máy tính (Client PC) đóng vai trò điều khiển module SIM900A bằng tập lệnh AT qua chuẩn giao tiếp UART, thiết lập kết nối với một máy tính khác (Server PC) chạy TCP Server.
Client PC gửi lệnh AT+CIPSHUT cho modem, yêu cầu modem hủy bỏ các kết nối trước đó, đưa modem về trạng thái (IP INITIAL)
Nếu lệnh được thực hiện thành công, modem trả về cho Client PC chuỗi
OK. Ngược lại, nếu thất bại ERROR
Sau khi hủy bỏ các kết nối thành công, Client PC gửi lệnh tạo thiết lập kết nối
AT+CIPSTART=“TCP”,“222.252.96.179”,“2505” trong đó TCP là giao thức kết nối, 222.252.96.179 là đia chỉ IP của Server PC kết nối Internet, 2505 là port được mở để TCP Server lắng nghe kết nối. Sau đó, modem trả về chuỗi OK
Sau một khoảng thời gian, modem kết nối được với Server PC và được chấp nhận kết nối, modem trả về chuỗi CONNECT OK cho Client PC
Quá trình truyền nhận gói tin TCP giữa module SIM900A và TCP Server
Client gửi lệnh yêu cầu truyền dữ liệu AT+CIPSEND=18, trong đó 18 là số byte cần truyền. Modem trả về >. Client PC gửi qua modem chuỗi dữ liệu cần truyền, khi nào đủ 18 byte, modem tự động gửi dữ liệu đó cho TCP Server. Sau một khoảng thời gian, nếu quá trình truyền TCP thành công, modem gửi trả về Client SEND OK
Nếu TCP Server gửi lại một gói tin bất kỳ cho modem, modem sẽ chuyển tiếp gói tin đó cho Client PC với định dạng 
RECV FROM:222.252.96.179:2505 +IPD32:Socket 1 Already login 29N7890
Mô hình thực nghiệm
RS232
INTERNET
CLIENT
SERVER
Client gửi dữ liệu về Server theo chu kỳ 7s, đồng thời nhận các gói tin điều khiển đóng/mở đèn LED
Server lắng nghe dữ liệu gửi về và hiển thị, đồng thời ra lệnh cho Client đóng mở đèn LED
Client
Code :
Private bytSyn As Byte
Private bytInit As Byte
Private strTemp As String
Private Sub btnInit_Click()
 MSComm1.PortOpen = True
 bytInit = 0
 Timer4.Enabled = True
End Sub
Private Sub Timer4_Timer()
 Select Case bytInit
 Case 0
 MSComm1.Output = "AT+CIPSHUT" & vbCr
 Case 1
 MSComm1.Output = "AT+CIPSTART=" & Chr(34) & "TCP" & Chr(34) & Chr(44) & Chr(34) & txtIp.Text & Chr(34) & Chr(44) & Chr(34) & txtPort.Text & Chr(34) & vbCr
 Timer4.Enabled = False
 Timer3.Enabled = True
 End Select
 bytInit = bytInit + 1
End Sub
Private Sub Timer3_Timer()
 Timer3.Enabled = False
 btnStart.Enabled = True
 btnInit.Enabled = False
End Sub
Private Sub btnStart_Click()
 If Timer1.Enabled = False Then
 Timer1.Enabled = True
 End If
End Sub
Private Sub btnStop_Click()
 If MSComm1.PortOpen = True Then
 MSComm1.Output = "AT+CIPSHUT" & vbCr
 Timer6.Enabled = True
 End If
End Sub
Private Sub Timer6_Timer()
 Timer6.Enabled = False
 MSComm1.Output = "AT+CIPCLOSE" & vbCr
 If Timer1.Enabled = True Then
 Timer1.Enabled = False
 End If
 Timer5.Enabled = False
 If MSComm1.PortOpen = True Then
 MSComm1.PortOpen = False
 End If
 btnInit.Enabled = True
End Sub
Private Sub Form_Load()
 Timer1.Interval = 7000
 Timer2.Interval = 750
 Timer3.Interval = 5000
 Timer4.Interval = 500
 Timer5.Interval = 500
 Timer6.Interval = 500
 MSComm1.CommPort = 4
 MSComm1.Settings = "9600,N,8,1"
 MSComm1.SThreshold = 0
 MSComm1.RThreshold = 1
 If MSComm1.PortOpen = False Then
 MSComm1.PortOpen = True
 End If
 Timer1.Enabled = False
 Timer2.Enabled = True
 Timer3.Enabled = False
 Timer4.Enabled = False
 Timer5.Enabled = False
 Timer6.Enabled = False
 btnStart.Enabled = False
 bytSyn = 5
 strTemp = ""
 txtIp.Text = "42.118.126.121"
 txtPort.Text = "25565"
End Sub
Private Sub Timer2_Timer()
 MSComm1.Output = "AT" & vbCr
 bytSyn = bytSyn - 1
 If bytSyn = 0 Then
 Timer2.Enabled = False
 MSComm1.PortOpen = False
 End If
End Sub
Private Sub Timer1_Timer()
 MSComm1.Output = "AT+CIPSEND" & vbCr
 Timer5.Enabled = True
End Sub
Private Sub Timer5_Timer()
 Timer5.Enabled = False
 MSComm1.Output = "@" & txtData.Text & "%" & Chr(26)
End Sub
Private Sub MsComm1_OnComm()
 strTemp = strTemp & MSComm1.Input
 MSComm1.InBufferCount = 0
 If ((Right(strTemp, 3) = "@@@") Or (Right(strTemp, 3) = "%%%")) Then
 If Right(strTemp, 3) = "@@@" Then
 Shape1.FillColor = vbRed
 Else
 Shape1.FillColor = vbBlack
 End If
 strTemp = ""
 End If
 Text1.Text = Right(strTemp, 30)
End Sub
Server
Code :
Option Explicit
Dim InterIP As String
Private Sub btnDisconnect_Click()
tcpServer.Close
Text1.Text = Text1.Text & "Disconnected" & vbCrLf
End Sub
Private Sub btnListen_Click()
tcpServer.Listen
Text1.Text = "Listening for client..." & vbCrLf
InterIP = tcpServer.LocalIP
lblInterIP.Caption = "Internal IP: " & tcpServer.LocalIP
End Sub
Private Sub btnSend_Click()
tcpServer.SendData txtSend
End Sub
Private Sub Command1_Click()
If Command1.Caption = "ON" Then
Command1.Caption = "OFF"
tcpServer.SendData "@@@"
Shape1.FillColor = &HFF
Else
Command1.Caption = "ON"
tcpServer.SendData "%%%"
Shape1.FillColor = &H0
End If
End Sub
Private Sub Form_Load()
tcpServer.LocalPort = 25565
lblInterIP.Caption = "Internal IP: " & tcpServer.LocalIP
tcpServer.Close
Open "C:\Record.txt" For Output As #1
Close #1
End Sub
Private Sub tcpServer_Close()
Text1.Text = Text1.Text & "Client out" & vbCrLf
tcpServer.Close
Open "C:\Record.txt" For Append As #1
Write #1, " Client " & tcpServer.RemoteHostIP & " disconnected at " & Date$ & " " & Time$ & vbCrLf
Close #1
tcpServer.Listen
End Sub
Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
 ' Declare a variable for the incoming data.
 ' Invoke the GetDat method and set the Text
 ' property of a TextBox named txtOutput to
 ' the data.
 Dim strData As String
 tcpServer.GetData strData
 If ((Left(strData, 1) "@") Or (Right(strData, 1) "%")) Then
 strData = "Transmission error"
 Else
 strData = Mid(strData, 2, Len(strData) - 2)
 End If
 Open "C:\Record.txt" For Append As #1
 Write #1, strData
 Close #1
 Text1.Text = Text1.Text & strData & vbCrLf
End Sub
Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
 If tcpServer.State sckClosed Then tcpServer.Close
 tcpServer.Accept requestID
 Text1.Text = " Client " & tcpServer.RemoteHostIP & " connected " & vbCrLf
 Open "C:\Record.txt" For Append As #1
 Write #1, " Client " & tcpServer.RemoteHostIP & " connected at " & Date$ & " " & Time$ & vbCrLf
 Close #1
End Sub
Private Sub Text1_Change()
End Sub
Kết quả đạt được
TÌm hiểu và sử dụng tập lệnh AT cho module SIM900 để thiết lập cấu hình và điều khiển việc truyền nhận dữ liệu.
Viết chương trình truyền nhận dữ liệu qua giao thức TCP, dùng socket bằng ngôn ngữ Visual Basic.
Viết chương trình truyền nhận UART từ máy tính xuống MSP430 và từ MSP430 xuống Module SIM900.
Tài liệu tham khảo
SIMCOM – AT Command Set
Đỗ Minh Quốc – Hệ thống SCADA trong thủy lợi ứng dụng GPRS, Webserver
Nguyễn Đức Thành – Đo lường và điều khiển bằng máy tính
Microsoft MSDN
Một số tài liệu không nguồn trên Internet

File đính kèm:

  • docxtieu_luan_tim_hieu_truyen_du_lieu_qua_gprs_va_giam_sat_qua_m.docx
  • pptxPres.pptx