Modem SIM900

Một phần của tài liệu điều khiển từ xa các thiết bị bằng tin nhắn sms (Trang 25)

Modem SIM900 là một trong những loại module SIM nhưng nó được nâng cấp cao hơn

ở chỗ: Có tốc độ truyền dữ liệu nhanh hơn so với các module SIM khác. Nó sử dụng công nghệ GSM/GPRS hoạt động ở các băng tần 900Mhz, 1800 Mhz và 1900Mhz.

3.3.1.3 Đặc điểm của module SIM900

Hình 3.1 Module SIM900

• Nguồn cung cấp khoảng 3.4V – 4.5V

• Băng tần Băng tần hoạt động là 900Mhz, 1800 Mhz và 1900Mhz, SIM900 có thể tự động tìm kiếm các băng tần. Phù hợp với GSM Pha 2/2+. • Kết nối GPRS GPRS có nhiều rãnh loại 8 (lựa chọn). GPRS có nhiều rãnh loại 10 (tựđộng). • Giới hạn nhiêt độ Bình thường: -300C tới +700C. Hạn chế: - 350C tới -300C và +700C tới +800C..

Trang 26

• Dữ liệu GPRS

GPRS dữ liệu tải xuống: Max 85.6 kbps. GPRS dữ liệu Up lên: Max 42.8 kbps.

SIM900 hỗ trợ giao thức PAP, kiểu sử dụng kết nối PPP. SIM900 tích hợp giao thức TCP/IP.

• CSD

Tốc độ truyền dẫn CSD: 2; 4; 8; 9; 6; 14 KPPS. Hỗ trợ USSD.

• SMS

Text and PDU mode. Bộ nhớ SMS: SIM, Card. • FAX Nhóm 3 loại 1. • SIM Card Hỗ trợ SIM Card: 1.8V ; 3V. • Anten ngoài

Kết nối thông qua anten ngoài 500km hoặc đế Anten.

• Âm thanh

Dạng mã hóa âm thanh. Mức chếđộ (ETS 06.20). Toàn bộ chếđộ (ETS 06.10).

Toàn bộ chếđộ tăng cường (ETS 06.50/ 06.06/ 06.80). Loại bỏ tiếng dội. • Giao tiếp nối tiếp và sự ghép nối Cổng nối tiếp: 7 cổng nối tiếp (ghép nối). Cổng kết nối có thể sử dụng với CSD Fax, GPRS và gửi lệnh ATCommand tới mudule điều khiển. Cổng nối tiếp có thể sử dụng chức năng giao tiếp. Hỗ trợ tốc độ truyền 1200 bps tới 115200 bps. Cổng hiệu chỉnh lỗi: 2 cổng nối tiếp TXD và RXD. Cổng hiệu chỉnh lỗi chỉ sử dụng sửa lỗi.

Trang 27

• SIM Application Toolkit

Hỗ trợ SAT loại GSM 11, 14 bản 99.

• Đồng hồ thời gian thực Người dùng cài đặt.

• Times function

Lập trình thông qua AT Command.

• Đặc tính vật lý (đặc điểm)

Kích thước 50±0.15 x 33±0.15 x7.7±0.3mm.

3.3.1.4 Khảo sát sơ đồ chân và chức năng từng chân

Hình 3.2 Sơđồ chân của Module SIM900

• Chân 55,56,57: Ba chân để kết nối tới nguồn cung cấp, nguồn cung cấp của SIM900 là nguồn đơn VBAT là 3,4V – 4,5V.

• Chân 17,18,29,39,45,46,53,54,58,59,61.62.63.64,65: Chân Mass.

• Chân 25 (ADC): Chân vào của bộ chuyển đổi tín hiệu tương tự sang số.

• Chân 26 (VRTC): Dòng cấp cho chân RTC khi không có pin trong hệ thống.

• Chân 15 (VCC_EXT): Nguồn 2.93V từ mạch ngoài. Bằng cách đo chân này ta có thể

biết Module đang bật hay tắt. Khi điện áp thấp thì Module tắt. Ngược lại điện áp cao là Module đang bật.

Trang 28

• Chân 17(PWRKEY): Chân này dùng đểđiều khiển Module bật/tắt.

• Chân 40,41,42,43,44 (KBC): Bàn phím.

• Chân 66 (STATUS): Báo tình trạng công việc.

• Chân 30 (SIM_VCC): Nguồn cung cấp cho thẻ SIM.

• Chân 33 (SIM_RST): Chân Reset cho mạch SIM.

• Chân 31 (SIM_DATA): Đầu ra dữ liệu chân SIM.

• Chân 32 (SIM_CLK): Chân Clock của SIM.

• Chân 34 (SIM_PRESENCE): Chân dò tìm mạng.

• Chân 37 (DCD): Dò tìm sóng mang.

• Chân 3 (DTR): Chân đầu cuối dữ liệu. Báo đầu cuối dữ liệu sẵn sàng.

• Chân 10 (RXD): Chân nhận dữ liệu.

• Chân 9 (TXD): Chân truyền dữ liệu.

• Chân 8 (RTS): Yêu cầu gửi, hoạt động khi module gửi dữ liệu (chuyển sang trạng thái hoạt động khi sẵn sàng gửi dữ liệu).

• Chân 7 (CTS): Xóa để gửi, hoạt động khi module nhận dữ liệu (báo cho thiết bị

truyền đã sẵn sàng nhận dữ liệu).

• Chân 4 (RI): Báo chuông cho biết là thiết bị thu đang nhận tín hiệu rung chuông.

• Chân 28 (DBG RXD): Đầu ra dùng đểđiều chỉnh trong nhận dữ liệu.

• Chân 27 (DBG TXD): Đầu ra dùng đểđiều chỉnh trong truyền dữ liệu.

• Chân 21 (SPK1P), 22 (SPK1N): Chân Output, kết nối Speaker.

• Chân 19 (MIC1P), 20 (MIC1N): Chân Input, kết nối Microphone

3.3.1.5 Khảo sát tập lệnh AT của module SIM900

Chuẩn RS232 mô tả một kênh truyền thông với bộ kết nối 9 chân, nó được thiết kế để

thực thi quá trình truyền/ nhận các lệnh đến module được kết nối với nó. Thao tác này bao gồm cả các lệnh quay một sốđiện thoại nào đó. Thế nên nhất thiết phải có một phương pháp

được thiết lập nhằm sử dụng kênh dữ liệu hiện tại để không chỉ truyền dữ liệu từ một điểm

đầu cuối này tới một điểm đầu cuối khác mà nó còn nhắm tới module duy nhất. Dennis Hayes đã đưa ra giải pháp cho vấn đề này trong năm 1977. Modem thông minh (Smartmodem) của ông sử dụng chuẩn truyền thông RS232 đơn giản kết nối tới một máy tính để truyền cả câu lệnh và dữ liệu. Bởi vì mỗi lệnh bắt đầu với chữ AT trong chữ

Trang 29

với tên là bộ lệnh Hayes AT. Chính vì sựđơn giản và khả năng thực thi với chi phí thấp của nó, bộ lệnh Hayes AT nhanh chóng được sử dụng phổ biến trong các module của các nhà sản xuất khác nhau. Khi chức năng và độ tích hợp của các module ngày càng tăng cùng thời gian, nên làm cho ngôn ngữ lệnh Hayes AT càng phức tạp. Vì thế mỗi nhà sản xuất module

đã nhanh chóng sử dụng quy tắc riêng cho loại Module của mình trên nền tảng tập lệnh AT này. Ngày nay bộ lệnh AT bao gồm cả các lệnh về dữ liệu, fax, voice và các truyền thông SMS.

Các lệnh AT là các hướng dẫn được sử dụng để điều khiển một modem. AT là một cách 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 nối (wired dial-up modems), chẳng hạn như ATD (Dial), ATA (Answer), ATH (Hool control) và ATO (Return To Online Data State), ngoài ra tập lệnh AT còn hỗ trợ các modem GSM/GPRS và đ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. Nó bao gồm các lệnh liên quan tới SMS như AT+CMGS (gửi tin nhắn SMS), AT+CMSS (gửi tin nhắn SMS từ

một vùng lưu trữ), AT+CMGL (chuỗi liệt kê các tin nhắn SMS) và AT+CMGR (đọc tin nhắn SMS)... Với các lệnh AT mở rộng này, chúng ta có thể thực hiên một số thao tác sau:

Đọc, viết, xóa tin nhắn. Gửi tin nhắn SMS.

Kiểm tra chiều dài tín hiệu.

Kiểm tra trạng thái sạc pin và mức sạc của pin. Đọc, viết và tìm kiếm về các mục danh bạ.

Số tin nhắn SMS có thể được thực thi bởi một modem SMS trên một phút thì rất thấp, nó chỉ khoảng từ 6 đến 10 tin nhắn SMS trên 1 phút.

a. Các lệnh khởi tạo Modem GSM SIM900

• Lệnh AT<cr>

Nếu lệnh thực hiện được thì trả về: Ok

Trang 30 Nếu lệnh không thực hiện được thì trả về dạng: +CMS ERROR <err> • Lệnh AT+CMGF=[<mode>] <cr> lệnh chọn chếđộ nhắn tin Nếu lệnh thực hiện được thì trả về: Ok <mode> : 0 dạng dữ liệu PDU 1 dạng dữ liệu kiểu text Nếu lệnh không thực hiện được thì trả về dạng: +CMS ERROR <err> • Lệnh AT&W[<n>] Nếu lệnh thực hiện được thì trả về: Ok

và lưu cấu hình cho GSM Module SIM900. Nếu lệnh không thực hiện được thì trả về dạng: +CMS ERROR <err> • Lệnh ATE[<value>] Nếu lệnh thực hiện được thì trả về: Ok <value> 0 Tắt chếđộ Echo 1 Bật chếđộ Echo Nếu lệnh không thực hiện được thì trả về dạng: +CMS ERROR <err> b. Các lệnh xử lý cuộc gọi • Lệnh quay số: ATD<cr> Ví dụ: Muốn quay số tới sốđiện thoại 0916144408 thì ta gõ lệnh ATD 0916144408;<cr> <cr>: Enter

Trang 31

• Lệnh nhấc máy: ATA<cr>

Ví dụ: Khi có sốđiện thoại nào đó gọi đến sốđiện thoại được gắn trên modem SIM900, ta muốn nhấc máy để kết nối thì gõ lệnh ATA <cr>

• Lệnh bỏ cuộc gọi: ATH<cr>

Ví dụ: Khi có sốđiện thoại nào đó gọi đến sốđiện thoại được gắn trên modem SIM900, ta không muốn nhấc máy mà từ chối cuộc gọi thì gõ lệnh ATH<cr>

c. Các lệnh về SMS

• Lệnh Xóa tin nhắn: AT+CMGD

Ví dụ: Muốn xóa một tin nhắn nào đó được lưu trên SIM thì ta thực hiện lệnh sau AT+CMGD=<index> <cr> <index>: vị trí ngăn nhớ lưu tin nhắn Nếu lệnh thực hiện được thì trả về Ok Nếu lệnh không thực hiện được thì trả về dạng: +CMS ERROR <err> • Lệnh đọc tin nhắn: AT+CMGR=<index>[,mode] <cr>

<index>: Số nguyên, đó là vị trí ngăn nhớ chứa tin nhắn cần đọc. <mode>: 1 đọc và thay đổi trạng thái của tin nhắn sau khi đọc. VD: UNREAD => READ.

0 đọc bình thường.

Nếu như lệnh được thực hiện thì kiểu dữ liệu trả về dưới dạng text (mode=1) - Đối với tin nhắn SMS-DELIVER: +CMGR:<stat>,<oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<l ength>]<CR><LF><data> - Đối với tin nhắn SMS-SUBMIT: +CMGR:<stat>,<da>,[<alpha>][,<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca>,<l ength>]<CR><LF><data> - Đối với tin nhắn SMS-STATUS-REPORTs:

Trang 32 +CMGR: <stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st> - Đối với tin nhắn SMS-COMMANDs: +CMGR:<stat>,<fo>,<ct>[,<pid>,[<mn>],[<da>],[<toda>],<length><CR><LF><cda ta>] - Đối với tin nhắn CBM storage: +CMGR:<stat>,<sn>,<mid>,<dcs>,<page>,<pages><CR><LF> <data> Nếu dữ liệu trả về dạng PDU(mode=0): +CMGR: <stat>,[<alpha>],<length><CR><LF><pdu> Nếu lệnh bị lỗi thì trả về dưới dạng: +CMS ERROR: <err> • Lệnh gửi tin nhắn SMS: AT+CMGS Nếu gửi tin nhắn dưới dạng text: (+CMGF=1):

+CMGS=<da>[,<toda>]<CR> text is entered <ctrl-Z/ESC> Nếu gửi tin nhắn dạng PDU:

(+CMGF=0):

+CMGS=<length><CR> PDU is given <ctrl-Z/ESC> Nếu lệnh được thực hiện thành công thì dữ liệu trả về: - Dạng text : +CMGS: <mr> OK - Dạng PDU : +CMGS: <mr> OK Nếu lệnh bị lỗi: +CMS ERROR: <err>

• Lệnh viết tin nhắn rồi lưu vào ngăn nhớ: AT+CMGW Nếu viết tin nhắn dưới dạng text:

Trang 33

AT+CMGW=[<oa/da>[,<tooa/toda>[,<stat>]]]<CR>text is entered <ctrl-Z/ESC> <ESC> Lệnh được thực hiện đúng thì dữ liệu trả về dạng: +CMGW: <index> OK Lệnh sai: +CMS ERROR: <err>

Nếu viết tin nhắn dưới dạng PDU:

AT+CMGW=<length>[,<stat>]<CR> PDU is given <ctrl-Z/ESC>

• Lệnh gửi tin nhắn từ một ngăn nhớ nào đó: AT+CMSS=<index>[,<da>[,<toda>]] Nếu lệnh được thực hiện thành công dữ liệu trả về dạng: - Dạng text: +CMGS: <mr> [,<scts>] OK - Dạng PDU: +CMGS: <mr> [,<ackpdu>] OK Nếu lệnh bị lỗi: +CMS ERROR: <err> • Lệnh báo hiệu tin nhắn mới: AT+CNMI=[<mode>[,<mt>[,<bm> [,<ds>[,<bfr>]]]]] Nếu lệnh được thực hiện đúng thì dữ liệu trả về dạng OK Nếu lệnh bị lỗi +CMS ERROR: <err> d. Các lệnh về GPRS

• AT+CGATT: Lệnh gán hay tách thiết bị khỏi GPRS.

• AT+CGDCONT: Định nghĩa dạng PDP.

• AT+CGQMIN: Chất lượng dich vụở mức thấp nhất.

Trang 34

• AT+CGDATA: Trạng thái dữ liệu vào.

• AT+CGREG: Tình trạng đăng ký của mạng.

• AT+CGCOUNT: Đếm gói dữ liệu vào.

e. Một số lệnh khác

• Lệnh nghỉ: AT+CFUN

Ví dụ: muốn tắt hết chức năng liên quan đến truyền nhận sóng RF và các chức năng liên quan đến SIM thì gõ lệnh:

AT+CFUN=0 <cr> OK

• Lệnh chuyển từ chếđộ nghỉ sang chếđộ hoạt động bình thường: AT+CFUN

Ví dụ: SIM đang ở chếđộ nghỉ ta muốn chuyển sang chế độ hoạt động bình thường thì gõ lệnh: AT+CFUN=1 <cr> OK • Lệnh Reset mode ATZ <cr> OK • Lệnh tắt chếđộ echo ATE0 <cr>

f. Các lệnh kiểm tra ban đầu

- Lấy thông tin cơ bản về điện thoại di động hay modem GSM/GPRS. Ví dụ như tên của nhà sản xuất (AT+CGMI), số model (AT+CGMM), số IMEI (International Mobile Equipment Identity) (AT+CGSN) và phiên bản phần mềm (AT+CGMR). - Lấy các thông tin cơ bản về SIM Card. Thí dụ, MSISDN (AT+CNUM) và số IMS

(International Mobile Subscriber Identity) (AT+CIMI).

- Lấy thông tin trạng thái hiện tại của điện thoại di động hay modem GSM/GPRS. Ví dụ như trạng thái hoạt động của điện thoại (AT+CPAS), trạng thái đăng kí mạng mobile (AT+CREG), chiều dài sóng radio (AT+CSQ), mức sạc pin và trạng thái sạc pin (AT+CBC).

Trang 35

- Đọc (AT+CPBR), viết (AT+CPBW) hay tìm kiếm (AT+CPBF) các mục về danh bạ điện thoại (phonebook).

- Thực thi các nhiệm vụ liên quan tới an toàn, chẳng hạn như mở hay đóng các khóa chức năng (AT+CLCK), kiểm tra xem một chức năng được khóa hay chưa (AT+CLCK) và thay đổi Password (AT+CPWD).

- Điều khiển hoạt động của các mã kết quả/các thông báo lỗi của các lệnh AT. Ví dụ, bạn có thể điều khiển cho phép hay không cho phép kích hoạt hiển thị thông báo lỗi (AT+CMEE) và các thông báo lỗi nên được hiển thị theo dạng số hay theo dạng dòng chữ (AT+CMEE=1 hay AT+CMEE=2).

- Thiết lập hay thay đổi cấu hình của điện thoại di dộng hay modem GSM/GPRS. Ví dụ, thay đổi mạng GSM (AT+COPS), loại dịch vụ của bộ truyền tin (AT+CBST), các thông số protocol liên kết với radio (AT+CRLP), địa chỉ trung tâm SMS (AT+CSCA) và khu vực lưu trữ các tin nhắn SMS (AT+CPMS).

- Lưu và phục hồi các cấu hình của điện thoại di động hay modem GSM/GPRS. Ví dụ, lưu (AT+COPS) và phục hồi (AT+CRES) các thiết lập liên quan tới tin nhắn SMS chẳng hạn nhưđịa chỉ trung tâm tin nhắn SMS.

Trên đây là những kiến thức cơ bản nhất về Modem SIM 900 và tập lệnh AT của SIM900. Để có thể sử dụng hết các chức năng của SIM900 ta phải có một quá trình tìm hiểu lâu dài, kỹ lưỡng. Tuy nhiên, trong khuôn khổ của đồ án em chỉ tập trung vào nghiên cứu một số tính năng chính của SIM900 như cách khởi tạo cho SIM900, cách nhắn tin, cách đọc và xóa tin nhắn, cách thực hiện và hủy cuộc gọi… đó là những chức năng chính phục vụ chủ

yếu cho đề tài.

Modem SIM900 là thiết bị giao tiếp với dịch vụ mạng - thiết bị trung gian để nhận tín hiệu tin nhắn SMS điều khiển từ điện thoại người dùng hay gửi tin nhắn báo trở lại cho người dùng. Việc xử lý hay sự trao đổi đó do một trung tâm xử lý mà em lựa chọn là vi điều khiển Atmega 8 sẽđược trình bày trong mục sau.

3.3.2 Tổng quan về Vi điều khiển Atmega 8

3.3.2.1 Giới thiệu về Vi điều khiển Atmega 8

Vi điều khiển AVR do hãng Atmel (Hoa Kì) sản xuất được giới thiệu lần đầu năm 1996. AVR có rất nhiều dòng khác nhau bao gồm Tiny AVR (như AT tiny 13, AT tiny 22…) có

Trang 36

kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR (chẳng hạn AT90S8535, AT90S8515…) có kích thước bộ nhớ vào loại trung bình và mạnh hơn là dòng Mega (như

Atmega 32, Atmega 8,…) với bộ nhớ kích thước vài Kbyte đến vài trăm Kbyte cùng với các bộ ngoại vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip (dòng LCD AVR). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các dòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau.

Hình 3.3 Các dòng AVR khác nhau: Tiny, AVR và Mega

3.3.2.2 Những tính năng chính của Atmega 8

Hiệu suất cao, tiết kiệm điện Hoàn thiện cấu trúc RISC

133 lệnh hiệu quả, thực thi tất cả các chu kỳđồng hồđơn.

32*8 thanh ghi chung đa năng và các thanh ghi điều khiển ngoại vi. Đầy đủ các quá trình điều khiển tĩnh.

Nâng lên 16 MIPS dữ liệu tại 16 MHz.

Độ bền, sức chịu đựng cao, không thay đổi phân vùng nhớ

8 Kbytes bộ nhớ Flash có thể lập trình được trong hệ thống. 512 Bytes EEPROM.

1 Kbytes bộ nhớ SRAM bên trong.

Chu kỳ ghi/xóa: 10.000 Flash/100.000 EEPROM. Lập trình khóa cho phần mềm bảo mật.

Giao diện SPI cho lập trình trong hệ thống. Giao diện JTAG

Khả năng quét biên theo chuẩn JTAG. Hỗ trợ chếđộ sửa tạm (debug) trên chip.

Lập trình của Flash, EEPROM, bộ bảo vệ (FUSE) và bit khóa (Lock Bit) thông qua giao diện JTAG.

Trang 37

2 bộ Timer/Counter 8 bit với bộ đếm gộp trước riêng biệt và chế độ so sánh mẫu.

1 bộ Timer/Counter 16 bit mở rộng với bộ đếm gộp trước chếđộ so sánh mẫu và chếđộ thu thập (bắt dữ liệu).

Bộ Counter thời gian thực với bộ dao động (oscillator) riêng biệt. 3 kênh PWM

Bộđiều chế so sánh tín hiệu ra. 8 kênh, 10 bit ADC

Một phần của tài liệu điều khiển từ xa các thiết bị bằng tin nhắn sms (Trang 25)