Thiết kế modem truyền dữ liệu sử dụng vi mạch SIM900

Một phần của tài liệu Tổng quan về ghi chỉ số công tơ điện tử qua mạng viễn thông GSM (Trang 55 - 67)

- Modem đƣợc thiết kế để thực hiện giải phỏp đọc chỉ sooscoong tơ tự động từ xa qua mạng viễn thụng di động GSM của . Mục này sẽ trỡnh bày thiết kế trờn sơ đồ khối và nguyờn lý của modem này.

Do khuụn khổ của luận văn, những chi tiết thiết kế nguyờn lý (sơ đồ mạch điện, lựa chọn linh kiện . . .) sẽ khụng đƣợc trỡnh bày cụ thể ở đõy.

Sơ đồ khối của Modem GPRS

Hỡnh 3.6: Sơ đồ khối Modem GPRS

Khay SIM Anten

Power RS232/485 Led bỏo EEPROM

hiệu

Atmega128 SIM900

55 Cỏc khối cú cỏc chức năng chớnh nhƣ sau:

- Khối vi điều khiển trung tõm ATMega128: Khối vi điều khiển cú chức năng điều khiển module SIM900 để module tự động kết nối đến mỏy chủ cú địa chỉ IP tĩnh trong mạng Internet thụng qua mạng viễn thụng GSM theo chuẩn TCP/IP đồng thời cú chức năng trung gian truyền dữ liệu giữa mỏy chủ và cụng tơ qua chuẩn truyền thụng RS232/485.

- Module SIM900 của hóng SIMCOM là nhà sản xuất và độc quyền nờn ngƣời dựng khụng thể lập trỡnh đƣợc.

- RS232/485 là khối dựng IC Max232 và max485 chuyờn dụng để chuyển dữ liệu giữa hai giao thức truyền thụng UART và RS232/485 để kết nối giữa UART trờn bộ vi xử điều khiển trung tõm và cụng tơ điện tử.

- Bộ nhớ EEPROM: là khối dựng để lƣu trữ cỏc thụng tin cấu hỡnh Modem theo chuẩn I2C.

- Khối LED bỏo hiệu: là khối để bỏo cho ngƣời dựng biết trạng thỏi hoạt động của Modem.

- Khối nguồn: là khối cấp nguồn cho Modem Sơ đồ nguyễn lý tổng thể Modem GPRS:

56

Hỡnh 3.7: Sơ đồ nguyờn lý Modem GPRS

- Tập lệnh AT sử dụng điều khiển module GSM/GPRS:

 Cấu hỡnh cho phần cứng: module SIM900 truy cập GPRS:

Khởi tạo cấu hỡnh mặc định cho module(MT: module. TE: mỏy tớnh hoặc thiết bị điều khiển module):

57

58  Diễn giải:

1) ATZ<CR>:Reset modem, kiểm tra modem dó hoạt động bỡnh thƣờng chƣa. Gửi nhiều lần cho chắc ăn, cho đến khi nhận đƣợc chuỗi

ATZ<CR><CR><LF>OK<CR><LF>

2) ATE0<CR>:Tắt chế độ echo lệnh. Chuỗi trả về cú dạng

ATE0<CR><CR><LF>OK<CR><LF>

3) AT+CLIP=1<CR>: Định dạng chuỗi trả về khi nhận cuộc gọi.

Thụng thƣờng, ở chế độ mặc định, khi cú cuộc gọi đến, chuỗi trả về sẽ cú dạng:

<CR><LF>RING<CR><LF>

Sau khi lệnh AT+CLIP=1<CR> đó đƣợc thực thi, chuỗi trả về sẽ cú

dạng:

<CR><LF>RING<CR><LF>

<CR><LF>+CLIP: "0929047589",129,"",,"",0<CR><LF>

Chuỗi trả về cú chứa thụng tin về số điện thoại gọi đến. Thụng tin này cho phộp xỏc định việc cú nờn nhận cuộc gọi hay từ chối cuộc gọi. Kết thỳc cỏc thao tỏc khởi tạo cho quỏ trỡnh nhận cuộc gọi. Cỏc bƣớc khởi tạo tiếp theo liờn quan đến cỏc thao tỏc truyền nhận tin nhắn.

4) AT&W<CR>: Lƣu cấu hỡnh cài đặt đƣợc thiết lập bởi cỏc lệnh ATE0 và AT+CLIP vào bộ nhớ.

5) AT+CMGF=1<CR>: Thiết lập quỏ trỡnh truyền nhận tin nhắn đƣợc thực hiện ở chế độ text (mặc định là ở chế độ PDU). Chuỗi trả về sẽ cú dạng:

<CR><LF>OK<CR><LF>

6) AT+CNMI=2,0,0,0,0<CR>: Thiết lập chế độ thụng bỏo cho TE khi MT nhận đƣợc tin nhắn mới. Chuỗi trả về sẽ cú dạng:

<CR><LF>OK<CR><LF>

59

SIM, và MT khụng truyền trở về TE bất cứ thụng bỏo nào.TE sẽ đọc tin nhắn đƣợc lƣu trong SIM trong trƣờng hợp cần thiết.

7) AT+CSAS<CR>: Lƣu cấu hỡnh cài đặt đƣợc thiết lập bởi cỏc lệnh

AT+CMGF và AT+CNMI.

8) AT+CIPMODE=0<CR>: Lựa chọn phƣơng thức giao tiếp với modem để điều khiển quỏ trỡnh truyền nhận dữ liệu bằng GPRS. Cú hai phƣơng thức: - AT+CIPMODE=0: dựng lệnh AT.

- AT+CIPMODE=1: TE truyền nhận dữ liệu trực tiếp với mạng GSM, modem chỉ đúng vai trũ là thiết bị trung chuyển dữ liệu, mà khụng thực hiện thờm bất cứ thao tỏc nào khỏc.

Phƣơng phỏp dựng lệnh AT đƣợc lựa chọn vỡ tớnh đơn giản, dễ điều khiển, vỡ cỏc thao tỏc với dữ liệu ở cỏc lớp trờn sẽ đƣợc modem thực hiện thay cho TE.

9) AT+CDNSORIP=0<CR>

Lựa chọn phƣơng thức định địa chỉ cho GPRS server. Cú hai phƣơng thức:

- AT+CDNSORIP=0: định dịa chỉ trực tiếp bằng địa chỉ IP của GPRS server.

- AT+CDNSORIP=1: định địa chỉ giỏn tiếp thụng qua tờn miền của GPRS server.

Địa chỉ IP của GPRS server sẽ đƣợc truy vấn thụng qua hệ thống tờn miền DNS (Domain Name System). Để đơn giản và tăng tốc độ kết nối và giảm rủi ro, phƣơng thức định địa chỉ trực tiếp bằng địa chỉ IP đƣợc lựa chọn.

60

Thiết lập phƣơng thức thực hiện kết nối GPRS. Cú hai phƣơng thức kết nối dữ liệu: đú là kết nối thụng qua hệ thống chuyển mạch mạch CSD (Circuit Switch Data) dựa trờn đƣờng truyền vụ tuyến của mạng GSM (tƣơng tự nhƣ việc thực hiện một cuộc gọi data call) và phƣơng phỏp chuyển mạch gúi GPRS. CSD cú lợi thế về vựng phủ súng, nhƣng giỏ cƣớc đắt (giỏ cƣớc đƣợc tớnh theo thời gian kết nối), tốn băng thụng vụ tuyến (chiếm trọn kờnh truyền vụ tuyến) và module và SIM900 khụng hỗ trợ TCP stack cho phƣơng thức kết nối trờn, điều đú gõy nhiều khú khăn cho quỏ trỡnh truyền nhận dữ liệu. Phƣơng thức kết nối bằng GPRS tuy gặp phải sự hạn chế về vựng phủ súng nhƣng lại cú đƣợc mọi ƣu thế khỏc so với CSD. Đú cũng là nguyờn nhõn GPRS đƣợc lựa chọn trong phạm vi ứng dụng của hệ thống.

Phƣơng thức kết nối GPRS và cỏc tham số đƣợc thiết lập tƣơng ứng với cỏc tham số của dịch vụ GPRS của nhà cung cấp dịch vụ mạng di động GSM Mobi Fone tại Việt Nam. Cần thay đổi cỏc tham số phự hợp, tƣơng ứng với mạng di động đƣợc lựa chọn:

• Mạng GPRS của Mobi Fone:

AT+CIPCSGP=1,”m-wap”,”mms”,”mms”<CR>

• Mạng GPRS của Vina Fone:

AT+CIPCSGP=1,”m3-world”,”mms”,”mms”<CR>

• Mạng GPRS của Viettel Mobile:

AT+CIPCSGP=1,”v-internet”,,<CR>

11)AT+CIPHEAD=1<CR>: Thờm phần header “+IPDx:” (x là số byte dữ liệu nhận đƣợc) vào phớa trƣớc phần dữ liệu nhận đƣợc.

12)AT+CIPSPRT=1<CR>: Thiết lập định dạng cho quỏ trỡnh truyền dữ liệu bằng lệnh AT+CIPSEND.

61 đƣợc.

14)AT+CIPSCONT<CR>: Lƣu lại cấu hỡnh thiết lập dựng cho quỏ trỡnh kết nối và truyền nhận dữ liệu bằng GPRS.

Cỏc lệnh trờn chỉ cần đƣợc thực thi 1 lần, sau đú lƣu lại và trở thành cấu hỡnh mặc định của modem. Cấu hỡnh mặc định này khụng thay đổi, kể cả khi mất nguồn.Phần khởi tạo này khụng liờn quan đến quỏ trỡnh hoạt dộng sau này của modem. Do đú cú thể khởi tạo riờng trƣớc khi đƣa vào vận hành hệ thống.

 Truyền nhận thụng bỏo về tỡnh trạng GPRS:

Cỏc thụng số này cần đƣợc cấu hỡnh mỗi khi module bị reset

Bảng: Cỏc lệnh tra cứu trạng thỏi GPRS

AT+CGREG=1<CR>, lệnh này cho phộp modem gửi cỏc thụng bỏo trạng thỏi kết nối GPRS về TE. Khi vị trớ của modem thay đổi từ vựng phủ súng GPRS sang vựng chƣa phủ súng GPRS, modem sẽ gửi về chuỗi <CR><LF>+CGREG: 0<CR><LF>

Trong trƣờng hợp modem ở ngoài vựng phủ súng GPRS một thời gian đủ lõu, kết nối GPRS sẽ bị ngắt, và modem gửi về chuỗi:

<CR><LF>+PDP: DEACT<CR><LF>

62

<CR><LF>+CGREG: 1<CR><LF>

Việc xỏc định trạng thỏi kết nối GPRS tại vị trớ hiện tại của modem cho phộp chuyển đổi linh hoạt hơn phƣơng thức truyền nhận dữ liệu (vớ dụ nhƣ chuyển sang truyền nhận bằng SMS) giỳp bảo đảm kết nối đƣợc liờn tục.

Trong trƣờng hợp cần khảo sỏt vựng phủ súng GPRS, cú thể khởi tạo bằng lệnh:

AT+CGREG=2<CR>

Ngoài thụng tin về trạng thỏi súng GPRS, khi lệnh trờn đƣợc khởi tạo, khi modem chuyển từ cell này sang cell khỏc, hoặc từ vựng phủ súng này sang vựng phủ súng khỏc, chuỗi trả về sẽ cú dạng:

<CR><LF>+CGREG:<stat>,<lac>,<ci><CR><LF>

Ngoài thụng tin về trạng thỏi vựng phủ súng GPRS, cỏc thụng tin khỏc nhƣ Cell ID (<ci>) và vựng phủ súng (<lac>) cũng đƣợc modem gửi về, cho kết quả khảo sỏt chi tiết hơn.

 Thiết lập kết nối

Bảng: Lệnh thiết lập kết nối TCP

1) AT+CIPSHUT<CR>

Hủy bỏ kết cỏc nối trƣớc đú, đƣa trạng thỏi kết nối của module SIM900 về trạng thỏi ban đầu (IP INITIAL).

63

<CR><LF>OK<CR><LF>

Trong trƣờng hợp module trƣớc đo đó ở trạng thỏi IP INITIAL, chuỗi trả về sẽ cú dạng:

<CR><LF>ERROR<CR><LF>

2) AT+CIPSTART=”TCP”,”222.252.96.179”,”2505”<CR>

Thiết lập kết nối với GPRS server cú địa chỉ IP là“222.252.96.179”, port 2505 với phƣơng thức truyền nhận là TCP. Server này chớnh là mỏy tớnh cú cài phần mềm trung tõm làm nhiệm vụ nhận dữ liệu và gửi lệnh điều khiển.

Chuỗi trả về sẽ cú dạng:

<CR><LF>OK<CR><LF>

Nếu kết nối đƣợc thực hiện thành cụng, trong khoảng từ 3 đến 4 giõy, module sẽ gửi về một chuỗi thụng bỏo kết nối đƣợc thực hiện thành cụng:

<CR><LF>CONNECT OK<CR><LF>

Nếu sau khoảng thời gian trờn mà khụng nhận đƣợc chuỗi thụng bỏo kết nối thành cụng, kết nối chắc chắn sẽ khụng thực hiện đƣợc, cần xem lại cỏc trƣờng hợp sau trƣớc khi bắt đầu khởi tạo lại kết nối từ bƣớc 1:

Module đang ở trạng thỏi PDP Deactiviated: do khụng cú dữ liệu truyền

đi trờn một đƣờng truyền đó đƣợc thiết lập trong một thời gian dài (khoảng vài giờ đồng hồ), hệ thống mạng sẽ tự động hủy kết nối và đƣa module trở về trạng thỏi PDP Deactiviated. Trong trƣơng hợp này cần reset lại module (dựng lệnh “AT+CFUN=0” và “AT+CFUN=1”) trƣớc khi bắt đầu thiết lập kết nối.

64

Bảng: Cỏc lệnh gửi dữ liệu lờn Server

1) AT+CIPSEND=18<CR>

Truyền một gúi dữ liệu cú số kớ tự cần truyền đi là 18.Số kớ tự tối đa cú thể truyền trong một gúi là 160 kớ tự.Nếu số kớ tự cần truyền lớn hơn 160 kớ tự, module sẽ tự động tỏch thành hai hay nhiều gúi dữ liệu và truyền đi.

Khi nhận đƣợc lệnh trờn, module sẽ trả về chuỗi:

<CR><LF>>

Định dạng của chuỗi trả về là “> “, định dạng này cú thể thay đổi bằng lệnh khởi tạo “AT+CIPSPRT”.

Sau khi nhận đƣợc chuỗi trờn, dữ liệu truyền đi cần đƣợc đƣa vào, module sẽ tự động truyền gúi dữ liệu đi sau khi đó nhận đủ số kớ tự cần truyền (khụng cần kớ tự kết thỳc chuỗi, ở đõy dữ liệu truyền là dũng Login,29N1234,1234)

Thời gian truyền dữ liệu khoảng 300ms đến 2s, tựy theo số byte cần truyền. Nếu quỏ trỡnh truyền dữ liệu đƣợc thực hiện thành cụng, chuỗi trả về sẽ cú dạng:

<CR><LF>SEND OK<CR><LF>

2) <CR><LF>RECV FROM:222.252.96.179:2505<CR><LF> +IPD32:Socket 1 Already login 29N7890<CR>

Cấu trỳc một chuỗi dữ liệu nhận đƣợc.Định dạng này cú thể thay đổi bằng cỏc lệnh khởi tạo “AT+CIPHEAD” và “AT+CIPSRIP”.

65

Chuỗi dữ liệu đƣợc gửi đến từ địa chỉ IP “222.252.96.179”, port 2505 và cú tổng số byte dữ liệu là 32(+IPD32) và chứa nội dung: “Socket 1 Already login

29N7890<CR><LF>”.

 Hủy kết nối:

Kết nối GPRS giữa module SIM900 và phần mềm server cú thể bị ngắt do:

 Module SIM900 chủ động hủy kết nối.

 Server chủ động hủy kết nối.

 Hệ thống mạng GPRS chủ động ngắt kết nội để tiếp kiệm tài nguyờn mạng

Kết nối TCP yờu cầu sự chặt chẽ trong quỏ trỡnh liờn kết và truyền nhận dữ liệu, đồng thời cỏc đầu cuối phải nhận biết đƣợc trạng thỏi kết nối. Khi kết nối bị hủy, trạng thỏi đƣờng truyền đƣợc thể hiện trờn module SIM900 nhƣ sau:

Bảng: Hủy kết nối TCP

Module chủ động hủy kết nối bằng lệnh AT+CIPSHUT

AT+CIPCLOSE.Lệnh “AT+CIPCLOSE” đƣa kết nối GPRS trở về trạng thỏi

“STATE: IP CLOSE”. Lệnh “AT+CIPSHUT” đƣa kết nối GPRS trở về trạng thỏi “STATE: IP INITIAL”. Khi một trong hai lệnh trờn đƣợc thực thi, Phần mềm phớa

66

server cũng sẽ nhận biết đƣợc trạng thỏi kết nối, và hủy kết nối trờn nhằm tiết kiệm tài nguyờn đƣờng truyền.

<CR><LF>CLOSED<CR><LF>: Trƣờng hợp này xảy ra khi phần mềm server hoặc hệ thống mạng GPRS chủ động hủy kết nối. Module SIM900 sẽ nhận biết đƣợc trạng thỏi kết nối và gửi thụng bỏo trờn về phớa TE.

Cả ba trƣờng hợp trờn đều cú thể sử dụng lệnh “AT+CIPSTART” để khởi tạo lại một kết nối GPRS mới.

Một phần của tài liệu Tổng quan về ghi chỉ số công tơ điện tử qua mạng viễn thông GSM (Trang 55 - 67)