PDA

View Full Version : [Tutorial] Module SIM508 dùng cho ứng dụng GPRS


bich_pham
26-02-2013, 08:52 AM
Chắc hẳn rất nhiều người đã làm về GPRS, truyền nhận dữ liệu thông qua mạng di động, sử dụng các loại module GSM/GPRS thông dụng tại thị trường Việt Nam, như các loại module của SIMCOM, SIEMENS, ... ;)

Việc thao tác với các module có thể xem là đơn giản (vì chỉ là truyền nhận lệnh AT), nhưng để thực sự hiểu rõ bản chất của GPRS và các vấn đề có liên quan trên đường truyền dữ liệu GPRS, thì chưa thấy có bài viết nào đề cập chi tiết vấn đề này.

Ngoài ra, tập lệnh của các module GSM/GPRS cũng khá nhiều, và cần nhiều thời gian khảo sát chi tiết để có thể sử dụng được một cách hiệu quả, và khai thác được hết các tính năng của các module GSM/GPRS.

Bài viết sau giúp mọi người nắm bắt rõ hơn các vấn đề nêu trên, với mục đích là làm sao thiết lập được một đường truyền GPRS có hiệu quả (sử dụng EVA BOARD cho module SIM508 để thử nghiệm), nội dung bao gồm:


Sơ lược về GPRS.
Sơ lược về GPRS server.
Khởi tạo module SIM508.
Thiết lập kết nối GPRS giữa modem và server.
Truyền nhận gói TCP giữa modem và server.
Hủy kết nối GPRS giữa modem và server.
Một số vấn đề về bảo mật và xây dựng ứng dụng GPRS.
Truyền nhận gói TCP giữa các modem.
Kết hợp truyền nhận dữ liệu bằng cả hai phương pháp: GPRS và SMS.


Rất mong nhận được sự đóng góp, bổ sung của các Anh Chị Em trên diễn đàn để bài viết trở nên hoàn thiện hơn, cùng nhau chung tay xây dựng một tài liệu có ích cho cộng đồng và người đi sau.
Download: http://icviet.com/download.php?f=gprs.pdf

Ngoài ra, phần TCP Server dùng cho ứng dụng này sẽ được cập nhật sau
Trân trọng.

tholvt
26-02-2013, 08:52 AM
chào bác.e đang tập gửi nhận tn sms bằng Nokia6210i trên linux. việc nhận tin,gọi điện thoại thử đều ok cả.nhưng việc gửi tn,em ko thể nào gửi được ký tự 26 (Ctrl-Z) qua cổng com (em viết bằng C,dùng write() serial port). a có cao kiến j giúp em ko ạ.
nếu sử dụng minicom hoặc hyper terminal trên win,có bàn phím thì bấm ctrl-z ok cả

vntsinh
26-02-2013, 08:52 AM
Mình có nhận được câu hỏi của novas trong phần tin nhắn. Thấy đây cũng là câu hỏi hay, nên mình cũng đưa lên đây để trả lời luôn.

Câu trả lời là: trường hợp này mình chưa thử (không có đủ số module để thử, vì trong trường hợp này cần ít nhất 3 module). Hơn nữa module đóng vai trò là server chỉ cho phép một số lượng giới hạn các client kết nối vào (chưa tìm được chỗ nào mô tả giới hạn tối đa bao nhiêu client).

Bạn có thể tham khảo thêm lệnh AT+CIPCCON, trong trường hợp module đó vừa có kết nối là client, vừa có kết nối là server, để lựa chọn loại kết nối trước khi gửi. Trong trường hợp module đó muốn gửi dữ liệu đến client, chọn loại kết nối mà module đó đóng vai trò là server (xem phần 6.2). Mình cũng chưa thể khảo sát được là module server sẽ gửi dữ liệu đến tất cả các module client, hay chỉ gửi dữ liệu đến module client mà kết nối giữa module client đó và module server vừa được kích hoạt trong thời điểm gần nhất.

Tuy nhiên, nếu trong trường hợp module server chỉ có thể cho phép 1 module client kết nối vào thì trường hợp bạn đặt ra là bất khả thi.

Mình sẽ tìm hiểu thêm và cập nhật thêm thông tin về câu trả lời này cho bạn, nếu có.

Thân.

nghiathanhwood
26-02-2013, 08:52 AM
Cảm ơn anh rất nhiều, cũng nhờ vậy mà những mơ hồ đã được giải tỏa. Mong anh với vốn kinh nghiệm sẽ giải tỏa thêm nhiều khúc mắc nữa trong lĩnh vực còn mới mẻ này
Thân chúc anh vui vẻ

davidminhtang
26-02-2013, 08:52 AM
Theo như hướng dẫn của icviet.com thì các module GPRS của anh/chị chỉ có thể giao tiếp qua tập lệnh AT thôi hả? (tức là ta phải viết lại phần mềm giao tiếp). Nếu như mình có một thiết bị xưa nay vẫn giao tiếp qua cổng COM và một chương trình phần mềm đi kèm với nó, nay mình muốn chuyển qua GPRS chắc là không được vì chương trình phần mềm cũ của mình nó đâu có biết lệnh AT là gì đâu.
Mình nghe nói module GPRS của Phoenix-contact có thể giao tiếp trong suốt (transparent) với thiết bị qua RS232, tức là nhận gì chuyển nấy, không phải thông qua bất cứ lệnh AT nào, nhờ đó không phải viết lại phần mềm giao tiếp.
Các bạn nghĩ sao ạ?

tiemkinhduongquang
26-02-2013, 08:52 AM
Mình đang có dự án làm SCADA thông qua GPRS nhưng không biết tốc độ của mạng này có đáp ứng được 240Byte/sec tại mọi thời điểm không? Liệu nó có ổn định hay không? Hay là nó cũng chập chờn, nghẽn mạch như điện thoại di động và chậm như rùa như SMS.

thaloga
26-02-2013, 08:52 AM
Còn thuê kênh Vsat thì mắc quá, kéo cáp quang thì không khả thi, GPRS thì chưa thể tin tưởng được, có ai có giải pháp khác không nhỉ?

lamnguyenvn
26-02-2013, 08:52 AM
Bạn định làm hệ hệ thống điều khiển SCADA từ xa qua điện thoại có kết nối GPRS ? Mình cũng từng có ấp ủ đó, nhưng giờ chưa muốn vì phải có đội ngũ nhân lực mạnh về phần mềm, tức là xây dựng được CSDL kết nối với CSDL của WINCC. CSDL trên Sever sẽ connect với CSDL của WINCC sau đó điều khiển PLC theo giao diện lập trình của WINCC. Mong bạn cho ý kiến!
Thân

gkco
26-02-2013, 08:52 AM
Về lý thuyết, dịch vụ GPRS được triển khai dựa trên các khe thời gian có tốc độ 9.6kbps. Tốc độ thực tế của GPRS phụ thuộc vào số khe thời gian mà nhà mạng sử dụng cho dịch vụ GPRS. Dó đó về lý thuyết, GPRS đáp ứng được tốc độ 240byte/sec mà bác yêu cầu.

Tuy nhiên, nếu sử dụng các loại module GPRS có interface là AT-Command, thì tốc độ thực tế chắc chắn không đáp ứng nổi, vì ví dụ như với loại module SIM508 này, thời gian truyền một gói tin cũng mất ít nhất 2 giây. Do đó về thực tế, phương án sử dụng loại module này cho ứng dụng của bác là không khả thi.

Qua quá trình khảo sát thì GPRS của Viettel tỏ ra ổn định và đáng tin cậy hơn hẳn. Tuy nhiên, sự ổn định của nó phụ thuộc rất lớn vào sự vận hành của hệ thống mạng GSM, nên khó mà đáp ứng được một mức độ ổn định cao. Ứng dụng GPRS chỉ nên triển khai ở Việt Nam cho các ứng dụng điều khiển, thu thập dữ liệu tốc độ thấp và không đòi hỏi khắt khe về thời gian thực, ví dụ nhu nhanh chậm trong khoảng vài giây thì cũng có thể chấp nhận được.

Để giải quyết vấn đề cho hệ thống SCADA của Bác, có nhiều phương án, ví dụ như:


Sử dụng chế độ data-call, thay vì GPRS. Data-call giống như là gọi điện thoại trực tiếp cho nhau (thay vì nhắn tin SMS, hay truyền gói dữ liệu GPRS), do đó đáng tin cậy hơn, tốc độ ổn định hơn. Tuy nhiên, cái giá của nó là cước phí cao hơn :D. Nếu hệ thống của bác cần phải được kết nối với internet thì cũng có phương án giải quyết với data-call, đó là dial-up internet. Nó giống như truy cập internet với đường line điện thoại cố định hồi trước, nhưng bây giờ thì có thể di động được bằng cách thay đường line cố định với kết nối GSM.
Sử dụng các dịch vụ data tốc độ cao hơn: hiện nay các nhà mạng di động đang nâng cấp lên 3G, và hứa hẹn nhiều dịch vụ hấp dẫn. Tuy nhiên các mạng này chỉ đang triển khai và chưa đi vào khai thác, sử dụng. Hiện nay thì EVN có cung cấp một dịch vụ Mobile Internet dựa trên nền hệ thống mạng CDMA-EVDO, với tốc độ dữ liệu về lý thuyết lên đến 2.4Mbps (thực tế khoảng 2Mbps hoặc thấp hơn). Đây cũng có thể xem là một phương án khả thi.
Truyền nhận bằng sóng RF: phương án này giúp loại bỏ sự phụ thuộc của hệ thống khỏi hệ thống mạng viễn thông công cộng, cũng như chi phí duy trì, vận hành hệ thống (khỏi phải trả tiền điện thoại). Hiện nay có rất nhiều loại module RF, với khoảng cách truyền nhận có thể lên đến vài km, và đủ khả năng đáp ứng được tốc độ dữ liệu mà Bác yêu cầu. Nếu cần xa hơn và nhiều đầu cuối hơn thì chắc Bác cũng có thể dựng lên một cái cột ăng-ten cao cao và triển khai một hệ thống giống như hệ thống bộ đàm của mấy hãng taxi.


Nói chung là có nhiều phương án để giải quyết vấn đề. Tuy nhiên, để lựa chọn phương án tốt nhất, cần có thêm các yêu cầu chi tiết làm các tham số đầu vào để đánh giá, ví dụ như:

Yêu cầu về thời gian thực của hệ thống có khắt khe hay không?
Khoảng cách truyền nhận như thế nào? Nếu có nhiều đầu cuối thì khoảng cách giữa các đầu cuối như thế nào?
...


Các vấn đề khác, chẳng hạn như liên quan đến phần mềm, tính sau. Ở đây mình chỉ liệt kê giúp bác một số phương án về đường truyền trước.

( P/S:

Nếu Bác cần thêm sự hỗ trợ chi tiết cho dự án, chẳng hạn như về nhân sự, về thiết bị, ... có thể liên hệ trực tiếp với ICVIET:

Email: sales@icviet.com

Hoặc gọi điện thoại trực tiếp cho mình: 0908 533 133)

Trân trọng.

mike.smyth
26-02-2013, 08:52 AM
anh có thể cho em biết Khe thời gian sử dụng GSM là 9.6 Kbs và GPRS là 25 Kbs thì GPRS nếu sử dụng khe thời gian của GSM làm sao có thể phát huy thế mạnh của mình được ạ.
Thân