Thông báo

Collapse
No announcement yet.

[Tutorial] Module SIM508 dùng cho ứng dụng GPRS

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [Tutorial] Module SIM508 dùng cho ứng dụng GPRS

    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.



  • #2
    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ả

    Comment


    • #3
      Novas
      http://www.dientuvietnam.net/forums/...ad.php?t=28282

      Em đã xem tài liệu anh post trong luồng này, tài liệu rất hay và hữu ích. Nhưng em vẫn có 1 thắc mắc mong anh giúp đỡ. Trong tài liệu anh chỉ đề cập truyền giữa 2 module SIM8 mà 1 module đóng vai trò client, 1 module đóng vai trò server. Nếu thêm 1 module client nữa thì không thành vấn đề vì client chỉ truy cập vào server, nhưng nếu thêm 1 module client nữa nhưng module server muốn chọn lựa truy cập để AT+CIPSEND giữa 2 module client thì phải làm thế nào ạ ??? (Trừ cách hủy kết nối với thằng này rồi kết nối với thằng kia khi cần thiết vì như vậy mất thời gian quá !)
      (Anh có thể reply cho em qua diễn đàn này hoặc qua email kian2512@gmail.com cũng đều được ạ. Cảm ơn anh nhiều !)
      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.


      Comment


      • #4
        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ẻ
        01226789221 (Kiên)

        (đang cập nhật)
        Yahoo: trongkien86

        Comment


        • #5
          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 ạ?

          Comment


          • #6
            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.

            Comment


            • #7
              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ỉ?

              Comment


              • #8
                Nguyên văn bởi Viet Vinh Xem bài viết
                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.
                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
                01226789221 (Kiên)

                (đang cập nhật)
                Yahoo: trongkien86

                Comment


                • #9
                  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 . 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.


                  Comment


                  • #10
                    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
                    01226789221 (Kiên)

                    (đang cập nhật)
                    Yahoo: trongkien86

                    Comment


                    • #11
                      GPRS đơn thuần chỉ là một dịch vụ cộng thêm (truyền dữ liệu, thay vì tín hiệu thoại) dựa trên cơ sở hạ tầng hệ thống mạng GSM có sẵn. Như mình đề cập ở bài trước, nó giống như dial-up internet dựa trên đường dây thoại trước đây.

                      Mình chưa hiểu rõ "thế mạnh" mà bạn muốn nói đến ở đây là gì. Bạn có thể giải thích rõ hơn không?

                      Trân trọng.


                      Comment


                      • #12
                        Em dân điện tử thôi, vẫn chưa tìm hiểu nhiều bên viên thông nên có thắc mắc đường truyền GPRS, nếu anh nói sử dụng khe thời gian của GSM thì trên lí thuyết phải tối đa là 9.6 KBS. Mà cho em hỏi tên anh và công ty mới mở phải ko ạ? Em tên Kiên tốt nghiệp DH SPKT và mới bảo vệ vào tháng 3 về đề tài" Điều khiển và giám sát từ xa qua SMS". EM có niềm đam mê về linh vực mới này, nhưng kiến thức còn quá nông cạn. Hiện đang làm cho Công ty ADASOLUTION, thiết kế module Sim300cz và Sim508. Về giao thức GPRS em chưa tìm hiểu kĩ và nhất là TCP Server.

                        Cho em út thêm chút kiến thức nhé? ở công ty em đang xây dựng demo về trang wed lưu trữ thông tin gửi về từ GPS thế này:
                        Con VT310 đang là trọng tâm :
                        Sau khi kích hoạt Sim để nhận GPRS. Gắn Sim vào sau đó Set IP và Port cần truyền.Trên Server nhận dữ liệu và lưu trữ trên giao thức TCP server. Nhưng em vẫn chưa hiểu được quy trình làm việc của nó. Em chỉ thiết kế thôi ạ. Và cũng là nhân viên mới, đang tìm hiểu về công nghệ mới. Xin cảm ơn anh lắng nghe và cho lời giải đáp nhé. Thanks anh
                        01226789221 (Kiên)

                        (đang cập nhật)
                        Yahoo: trongkien86

                        Comment


                        • #13
                          Theo địa chỉ công ty thì cũng gần nhà em, hi vọng lau lâu ghé anh chơi.hihihi
                          Chúc anh và công ty luôn thành công nhé
                          01226789221 (Kiên)

                          (đang cập nhật)
                          Yahoo: trongkien86

                          Comment


                          • #14
                            Kiến thức là vô tận. Những gì mình biết, mình rất sẵn sàng chia xẻ.

                            Trân trọng.


                            Comment


                            • #15
                              Nguyên văn bởi icviet.com Xem bài viết
                              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 . 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.
                              Mình đang có dự án kết nối 2 server cách nhau khoảng 150km. Đường truyền VinaSat quá tốn kém. Thuê đường truyền cáp quang cũng không phải là rẻ. Đường truyền Radio thông thường thì chỉ được khoảng 10km ở địa hình tốt. Đường truyền GPRS xem ra rẻ nhất, nhưng chắc là không bảo đảm về tính thời gian thực. Mình muốn quanh năm suốt tháng bất cứ lúc nào gói dữ liệu từ server này (chỉ gồm 240 bytes)sẽ được truyền/ nhận tới server kia liên tục trong khoảng 1 giây. Mình không muốn bất cứ tình trạng nghẽn mạch hay rớt mạng nào khác.
                              Không biết còn phương án nào khả thi hơn không?

                              Comment

                              Về tác giả

                              Collapse

                              icviet.com Tìm hiểu thêm về icviet.com

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X