CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.2 GIỚI THIỆU VỀ MODULE SIM900
2.2.2 Sơ đồ chân và chức năng từng chân của SIM900
Hình 2.4: Sơđồ chân SIM900
SIM900 có 68 chân, được bố trí đều tại 4 cạnh của sim. Vị trí từng chân được thể hiện như trong hình 2.4.
Bảng 2.2: Chức năng của từng chân của SIM900 STT Tên chân I/O Miêu tả STT Tên chân I/O Miêu tả
1 PWRKEY I
PWRKEY được dùng để bật hay tắt nguồn hệ thống. Người sử dụng điều khiển PWRKEY ở mức điện áp thấp trong một thời gian ngắn bởi vì hệ thống cần có một khoảng thời gian ngắn để kích SIM900 hoạt động.
2 PWRKEY_OUT O
Khi kết nối PWRKEYvà PWRKEY_OUT, người sử dụng kích hoạt nó trong một thời gian ngắn sau đó thoát ra thì cũng có thể khởi động hoặc tắt các module.
4 RI O Chỉ thị chuông
5 DCD O Phát hiện dữ liệu mang theo 6 DSR O Dữ liệu cài đặt sẵn sàng
7 CTS O Xóa để gửi
8 RTS O Yêu cầu để gửi
9 TXD O Truyền dữ liệu 10 RXD I Nhận dữ liệu 11 DISP_CLK O Khối hiển thị 12 DISP_DATA O 13 DISP_D/C O 14 DISP_CS O 15 VDD_EXT O Nguồn ra 2.8V 16 NRESET I Reset lại SIM900. 17 GND
Mass(Nối đất) 18 GND
19 MIC_P
Xác định và không xác định tần số âm thanh đầu vào
20 MIC_N
21 SPK_P I Xác định và không xác định tần số âm thanh đầu ra
22 SPK_N I
24 LINEIN_L I
25 ADC I
Chuyển đổi tương tự sang số. Nguồn vào từ 0- 3V
26 VRTC I
Ngõ vào cho RTC: khi không có nguồn cung cấp cho hệ thống.Ngõ vào nguồn dữ trữ: khi nguồn chính đã có và nguồn dữ trữ ở mức thấp
27 DBG_TXD O
Gỡ lỗi và nâng cấp firmware 28 DBG_RXD I
29 GND Nối đất
30 SIM_VDD Cấp nguồn cho simcard 31 SIM_DATA O Dữ liệu đầu ra của sim 32 SIM_CLK I Xung clock cho sim 33 SIM_RTS I Reset sim
34 SIM_PRESENCE I Phát hiện simcard
35 PWM1 O
Đầu ra PWM
36 PWM2 O
37 SDA I/O Đường truyền dữ liệu I2C 38 SCL I Đường truyền I2C
39 GND Nối đất
41 42 43 44 45 GND Nối đất 46 47
GPIO6/KBC4 Giao diện bàn phím 48
49 I/O
50 51
52 NETLIGHT O
Trạng thái mạng. Chân này được nối với một LED, khi bắt được tần số mạng của sim lắp vào,
LED này sẽ luôn luôn nhấp nháy.
53 GND Nối đất
54 VBAT
I
3 chân VBAT được dành riêng để kết nối điện áp cung cấp cho SIM900 hoạt động. Nguồn điện áp của SIM900 hoạt động là VBAT = 3.4V ... 4.5V. Nó phải có khả năng cung cấp đủ dòng điện trong tăng mạch khi SIM900 bắt đầu hoạt động. Dòng điện cung cấp I thường tăng 55 VBAT
lên đến 2A.
Hiệu điện thế chuẩn: Vchuẩn = 4.0V Hiệu điện thế lớn nhất: Vmax = 4.5V Hiệu điện thế nhỏ nhất: Vmin = 3.4V 57
GND Nối đất
58
59 RF_ANT Ăng ten thu sóng 60 GND Nối đất 61 62 63 64 65 GPIOI1 66 GPIOI2 2.2.3 Các chếđộ hoạt động của SIM900
SIM900 có ba chế độ hoạt động khác nhau, với các chế độ này thì nguồn tiêu thụ và sự hoạt động cũng khác nhau. Chi tiết các chế độ hoạt động của SIM900 được thể hiện tại bảng 2.3.
Bảng 2.3: Chức năng của SIM900
Chếđộ bình thường Hoạt động
SLEEP chế độ SLEEP(chế độ nghỉ) nếu DTR được thiết lập là mức cao và không có ngắt ở phần cứng. Trong trường hợp này, dòng tiêu thụ của module SIM900 sẽ được làm giảm tối thiểu chỉ còn 1.5mA. Trong chế độ SLEEP, các module vẫn có thể nhận được tin nhắn SMS từ hệ thống bình thường. GSM IDLE Phần mềm được kích hoạt để hoạt động. SIM900 đã đăng nhập vào hệ thống mạng GSM, và sẵn sàng để gửi và nhận tin nhắn, cuộc gọi... GSM TALK
Kết nối giữa SIM900 và thiết bị khác hỗ trợ GPRS được thực hiện. Trong trường hợp này, công suất tiêu thụ phụ thuộc vào các thiết lập mạng như DTX bật/tắt, FR/EFR/HR, ăng- ten.
GPRS SIM900 đã sẵn sàng cho việc kết nối GPRS, nhưng
STANDBY không có dữ liệu hiện đang được gửi hoặc nhận được. Trong trường hợp này, công suất tiêu thụ phụ thuộc vào các thiết lập mạng và cấu hình GPRS. GPRS DATA Dữ liệu GPRS đã được truyền (PPP hoặc TCP hoặc UDP) trong quá trình hoạt động. Trong trường hợp này, công suất tiêu thụ có liên quan với các thiết lập mạng (ví dụ như điều khiển chế độ công suất), tốc độ uplink / downlink và cấu hình GPRS.
Chế độ tắt nguồn
SIM900 có thể tắt nguồn bằng cách gửi lệnh "AT + CPOWD = 1" hoặc bằng cách sử dụng trực tiếp chân PWRKEY. Nguồn quản lý ASIC ngắt kết nối các nguồn cung cấp từ SIM900. Và nó chỉ cung cấp năng lượng cho các RTC còn lại. Phần mềm không hoạt động. Không thể truy cập các cổng nối tiếp khác. Tuy nhiên điện áp hoạt động (kết nối với VBAT) vẫn còn. Ngừng hoạt động
nhưng không cần
Sử dụng lệnh "AT + CFUN" để thiết lập SIM900 về chế độ tiết kiệm mà không cần loại bỏ các nguồn cung
ngắt nguồn cung cấp cấp năng lượng. Trong trường hợp này, phần ăng-ten sẽ không làm việc hoặc SIM card sẽ không thể truy cập được, hoặc cả hai phần ăng ten và SIM card sẽ không hoạt động. Nguồn tiêu thụ trong trường hợp này là rất thấp.
2.2.4 Giới thiệu tập lệnh AT
Tập lệnh AT (AT – ATtention) còn gọi là tập lệnh Hayes, được phát triển lúc đầu bởi Hayes Communications cho modem Hayes Smartmodem 300 vào năm 1997.Tập lệnh bao gồm một loạt các chuỗi ký tự được kết hợp lại để tạo thành những lệnh hoàn chỉnh cho những tao tác như gọi, giữ, và thay đổi các tham số kết nối. Ngày nay hầu hết các modem đều sử dụng tập lệnh Hayes. Các lệnh này đều bắt đầu bằng “AT”. 20 Một cách để gửi lệnh AT đến GSM/GPRS modem là sử dụng một chương trình đầu cuối. Chức năng của chương trình này là gửi các ký tự được gõ vào GSM/GPRS modem, sau đó hiển thị những phản hồi nó nhận được từ modem này lên màn hình. Có thể dùng các chương trình như Hyper Terminal, TeraTerm… Trong đồ án này, sử dụng vi điều khiển MSP430F5418A gửi và nhận các lệnh AT thực hiện các nhiệm vụ, chức năng khác nhau cho SIM900 để thực hiện các lệnh.
Các thuật ngữ:
<CR> : Carriage return (Mã ASCII 0x0D). <LF> : Line Feed (Mã ASCII 0x0A).
MT : Mobile Terminal - Thiết bị đầu cuối mạng (trong trường hợp này là modem). TE : Terminal Equipment - Thiết bị đầu cuối ( hệ vi điều khiển).
Các lệnh AT căn bản và mở rộng
Có ba dạng lệnh AT: căn bản, mở rộng và cú pháp tham số.
H (Hook control) and O (Quay lại tình trạng dữ liệu trực tuyến) là những lệnh căn bản. 21 Những lệnh mở rộng là những lệnh AT bắt đầu với dấu "+". Mọi lệnh GSM AT đều là lệnh mở rộng. Ví dụ, +CMGS (Gửi tin nhắn SMS), +CMSS (Gửi tin nhắn SMS (từ bộ nhớ), +CMGL (Liệt kê các tin nhắn SMS) và +CMGR (Đọc tin nhắn SMS) là những lệnh mở rộng.
Cú pháp tổng quát của các lệnh AT mở rộng
Cú pháp tổng quát của các lệnh AT mở rộng khá rõ ràng. Dưới đây là các quy tắc của các lệnh AT mở rộng:
Quy tắc 1: Tất cả các lệnh phải bắt đầu với “AT” và kết thúc với ký tự về đầu dòng (CR – carriage return)
Quy tắc 2: Một dòng lệnh có thể bao gồm nhiều hơn một lệnh AT. Chỉ có lệnh đầu tiên bắt đầu với “AT”. Các lệnh còn lại trên dòng sẽ cách nhau bằng dấu chấm phẩy “;”.
Quy tắc 3: Chuỗi ký tự được để trong dấu nháy kép “”.
Quy tắc 4: Thông tin phản hồi và mã kết quả (bao gồm mã kết quả cuối cùng và mã kết quả không mong muốn) luôn bắt đầu với một ký tự về đầu dòng và một ký tự xuống dòng.
Mã kết quả của lệnh AT
Mã kết quả cuối cùng đánh dấu kết thúc phản hồi cho một lệnh AT. Nó cho biết GSM modem đã hoàn thành thực thi lệnh. Hai mã được sử dụng thường xuyên là OK và ERROR. Mỗi một lệnh chỉ có một mã kết quả cuối cùng được trả về.
Mã kết quả cuối cùng OK Cho biết một lệnh AT nào đó đã được thực hiện thành công bởi GSM modem. Luôn bắt đầu và kết thúc với ký tự về đầu dòng và xuống dòng.
Mã kết quả cuối cùng ERROR. Mã này cho biết đã có lỗi xảy ra khi thực hiện một lệnh AT. Sau khi xảy ra lỗi, GSM/GPRS modem sẽ không xử lý tiếp phần còn lại trong chuỗi lệnh. Một số nguyên nhân dẫn đến lỗi như cú pháp của lệnh sai: Giá trị của một tham số không hợp lệ; Tên lệnh bị gõ sai; GSM/GPRS
modem không hỗ trợ lệnh đó. Mã lỗi này cũng bắt đầu và kết thúc với ký tự về đầu dòng và xuống dòng.
Mã kết quả cuối cùng +CMS ERROR được trả về khi một lỗi dịch vụ tin nhắn xảy ra. Một mã lỗi được trả về cho người lập trình để kiểm tra nguyên nhân gây ra lỗi. Lỗi này chỉ liên quan đến những lệnh AT thao tác với SMS. Cũng như OK và ERROR, mã lỗi này cũng bắt đầu và kết thúc với một ký tự về đầu dòng và xuống dòng, và một số nguyên thể hiện một lỗi xác định.
Một số lệnh AT thường gặp
a. Lệnh ATZ
Lệnh ATZ dùng thiết lập lại (reset) tất cả các tham số hiện tại theo mẫu được người dùng định nghĩa. Lệnh trả về của modem là lệnh OK. Mẫu người dùng định nghĩa trước đó được lưu trên bộ nhớ cố định. Nếu không thiết lập lại được theo mẫu của người dùng định nghĩa thì nó sẽ reset lại theo đúng các tham số mặc định của nhà sản xuất. Bất cứ lệnh AT cộng thêm nào trên cùng một dòng với lệnh ATZ đều không được thực hiện.
b. Lệnh AT+CMGR
Lệnh AT+CMGR được dùng để đọc tin nhắn trên một ngăn nào đó trên sim điện thoại. Cấu trúc lệnh như sau: AT+CMGR=i, với i là ngăn bộ nhớ chứa tin nhắn trong sim. Đáp ứng trở về là lệnh OK nếu ngăn i có chứa tin nhắn. Nếu ngăn i không chứa tin nhắn thì sẽ xuất hiện thông báo lỗi trả về ERROR. Ví dụ khi gõ lệnh AT+CMGR=1 thì SIM900 sẽ đọc tin nhắn tại ngăn số 1 của bộ nhớ sim điện thoại gắn ngoài.
c. Lệnh AT+CMGS
Lệnh AT+CMGS dùng để gửi tin nhắn SMS tới một số điện thoại cho trước . Cú pháp gửi tin như sau:
- AT+CMGS= “số điện thoại cần gửi”<CR> - Nội dung tin nhắn
Số điện thoại cần gửi phải được đặt trong dấu ngoặc kép. Sau khi gõ xong số điện thoại thì cần thực hiện lệnh enter để xuống dòng và bắt đầu nội dung tin nhắn. Kết thúc lệnh này bằng việc thực hiện lệnh Cltr Z.
d. AT+CMGD
Lệnh AT+CMGD dùng dể xóa tin nhắn SMS trên sim. Cấu trúc lệnh như sau: AT+CMGD=i
Với i là ngăn bộ nhớ chứa tin nhắn cần xóa. Nếu ngăn i chứa tin nhắn thì đáp ứng trả về là OK, còn nếu việc thực hiện tin nhắn không thực hiện được như ngăn i không có tin nhắn, hoặc lỗi kết nối tới sim, lỗi sóng thì trả về sẽ là ERROR.
Ví dụ xóa tin nhắn từ ngăn số 1 của sim: AT+CMGD=1.
e. Lệnh ATE
Lệnh này dùng để thiết lập chế độ lệnh phản hồi trở lại. Đáp ứng trở lại là OK. Lệnh ATE có hai tham số hoàn toàn khác nhau:
- ATE0: tắt chế độ phản hồi - ATE1: bật chế độ phản hồi.
Khi giao tiếp module SIM900 với phần mềm terminal trên máy tính, nếu ta dùng lệnh ATE0 thì khi gõ các lệnh AT khác thì không nhìn thấy lệnh ta gõ mà chỉ nhìn thấy kết quả trả về của SIM900. Ngược lại, khi dùng lệnh ATE1 thì sẽ nhìn được cả lệnh ta gõ lên và lệnh SIM900 trả về.
f. Lệnh AT&W
Lệnh AT&W được dùng để lưu cấu hình cài đặt được thiết lập bởi các lệnh ATE và AT+CLIP vào bộ nhớ (Lệnh AT+CLIP để cài đặt cuộc gọi). Đáp ứng trả về khi thực hiện lệnh này là OK.
g. Lệnh AT+CMGF 26
Lệnh AT+CMGF dùng để lựa chọn định dạng tin nhắn SMS, với hai chế độ là text và PDU, cụ thể như sau:
AT+CMGF=1: lựa chọn sử dụng tin nhắn ở chế độ văn bản AT+CMGF=0: lựa chọn sử dụng tin nhắn ở chế độ PDU
Đáp ứng trả về là “OK” nếu như modem hỗ trợ, ngược lại, nếu modem không hỗ trợ chế độ định dạng tin nhắn là text hoặc PDU thì đáp ứng trả về sẽ là “ERROR”.
h. Lệnh AT+CNMI
Lệnh này dùng để thông báo có tin nhắn mới đến. Với các tham số khác nhau thì mỗi khi có tin nhắn, đáp ứng trả về cũng sẽ khác nhau.
Ví dụ về các lệnh AT+CNMI khác nhau khi cùng nhận một tin nhắn SMS có nội dung giống nhau:
AT+CNMI=1,1,0,0,0 sẽ trả về: +CMTI: "SM",10
AT+CNMI=2,2,0,0,0 sẽ trả về:
+CMT: "+84972996000","","13/05/07,14:21:42+28" Demo sim 900
Như vậy, chúng ta thấy rằng, với trường hợp 1 thì nội dung tin nhắn được lưu trực tiếp vào ngăn số 10 của sim. Nội dung của tin nhắn này chỉ được đọc bằng lệnh AT+CMGR=10. Còn trong trường hợp số 2, nội dung tin nhắn được hiển thị ra cùng với thời gian và số điện thoại.
i. Lệnh AT+CSAS
Lệnh AT+CSAS dùng để lưu các thiết lập SMS do người dùng đã cài đặt trước đó. Lệnh này sẽ lưu trực tiếp các thông số đã cài đặt cho tin nhắn SMS như các lệnh AT+CMGF=1; AT+CNMI=2,2,0,0,0...và còn nhiều lệnh khác liên quan tới tin nhắn SMS đều được lưu lại bởi lệnh AT+CSAS này.
Các Lệnh cấu hình gửi tin nhắn MMS
AT+CMMSINIT khởi tạo MMS
AT+CMMSCURL=“ mms.viettelmobile.com.vn/mms/wapenc<CR>” //cấu hình nhà mạng tin nhắn MMS Viettel //
AT+CMMSCID=1<CR> //Bật các thiết lập thông số id//
AT+CMMSPROTO=“192.168.233.10”, 8080<CR> //thiết lập địa chỉ ip và cổng proxy nhà mạng Viettel //
AT+CMMSSENDCFG=6,3,0,0,2,4<CR> //Thiết lập các tham số cho các PDU MMS để gửi
AT+SAPBR=3,1,"Contype","GPRS"<CR> cấu hình GPRS AT+SAPBR=3,1,"APN"," v-mms "<CR> cấu hình APN AT+SAPBR =1,1 <CR>
AT+SAPBR =2,1 <CR>
Các Lệnh thực gửi một tin nhắn MMS
AT+CMMSEDIT=1 //vào chế\ độ chỉnh sửa MMS
AT+CMMSDOWN=“PIC”,<SIZE>,<TIME><CR> // đính kèm một file ảnh AT+CMMSDOWN=“TITLE”,3,<TIME><CR> // đặt tiêu đề cho tin nhắn AT+CMMSDOWN=“TEXT”,5,5000 // văn bản cần gửi
AT+CMMSSEND<CR> // bắt đầu gửi tin nhắn MMS
AT+CMMSEDIT=0<CR> // đóng quá trình gửi tin nhắn MMS
2.3 GIỚI THIỆU VI ĐIỀU KHIỂN MSP430F5418A
MSP430F5418A thuộc dòng vi điều khiển mới được sản suất và cung cấp bởi công ty Texas Intruments. Là dòng vi điều khiển siêu tiết kiệm năng lượng với những tính năng ưu việt. Vi điều khiển MSP430F5418A thích hợp cho các ứng dụng trong y tế và đo lường và nhiều ứng dụng khác. Không những thế MSP430F5418A còn được tích hợp nhiều ngoại vi như: Real Time Clock, bộ biến đổi ADC 12-bit, bộ khuếch đại thuật toán Op-Amp, … MSP430F5418A có kiến trúc RISC 16-bit và được thiết kế theo CPU MSP430X.
Một số tính năng đặc trưng của MSP430F5418A bao gồm: – Nguồn sử dụng cho vi điều khiển là 1.8V - 3.6V.
– Hoạt động ổn định với công suất tiêu thụ cực thấp:
• Chế độ hoạt động (Active Mode): 400 µA ở 1MHz, 2.2 V.
• Chế độ nghỉ (Standby Mode): 1.3 µA.
• Chế độ tắt duy trì RAM (Off Mode): 0.22 µA.
– Có năm chế độ tiết kiệm nguồn, đây là một thuận lợi khá lớn cho quá trình sử dụng.
– Thời gian khởi động lại từ Standby Mode nhỏ hơn 6µs – CPU được thiết kế theo kiến trúc RISC 16-bit.
– Tích hợp ba kênh DMA (Data Memmory Access).
– Bộ chuyển đổi ADC 12-bit, có thể sử dụng điện thế tham chiếu nội. – Tích hợp hai kênh chuyển đổi DAC 12-bit.
– Ba bộ Timer 16-bit: Timer_A0 (với năm thanh ghi Capture/Compare), TimerA1(với ba thanh ghi Capture/Compare)và Timer_B0 (với bảy thanh ghi Capture/Compare).
– Hỗ trợ dao động nội lên đến 25MHz và dao động thạch anh lên đến 32MHz. – Hỗ trợ 2 chuẩn truyền thông:
• Serial Communication Interface (USART): UART và SPI.
• Universal Serial Communication Interface (USCI): UART (có chế độ tự động nhận tốc độ Baud, có bộ mã hóa và giải mã tín hiệu hồng