L ỜI CẢM ƠN
3.4.2 Tổng quan về module SIM900A
3.4.2.1 Giới thiệu module SIM900A
SIMComgiới thiệu Sim900A là một module GSM/GPRS cực kỳ nhỏ
gọn, được thiết kế cho thị trường toàn cầu. Sim900 hoạt động được ở 4 băng tần EGSM 900MHz, DCS 1800MHz như là một loại thiết bịđầu cuối với một Chip xử lý đơn nhân đầy sức mạnh, tăng cường các tính năng quan trọng dựa trên nền vi xử lý ARM926EJ-Svi xử lý ARM926EJ-S, kích thước nhỏ gọn
đáp ứng những yêu cầu về không gian trong các ứng dụng M2M.
Hình 3.7: Module Sim900
3.4.2.2 Đặc điểm của module sim900A
− Nguồn cung cấp khoảng 3,4 – 4,5V − Nguồn lưu trữ
32 − Băng tần • Dual-band GSM/GPRS 900/1800MHz • Phù hợp với GSM Pha 2/2+ − Loại GSM là loại MS nhỏ − 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 • Nhiệt độ bảo quản: -450C tới 850C − Dữ liệu GPRS: • GPRS dữ liệu tải xuống: Max 85.6 kbps • GPRS dữ liệu úp lên: Max 42.8 kbps • Sơđồ mã hóa: CS-1, CS-2, CS-3 và CS-4
• Sim 300 CZ hổ trợ giao thức PAP ,kiểu sử dụng kết nối PPP • Sim 300CZ tích hợp giao thức TCP/IP
• Chấp nhận thông tin được điều chỉnh rộng rãi
− CSD:
• Tốc độ truyền dẫn CSD: 2; 4; 8; 9; 6; 14 KPPS • Hỗ trợ USSD
− SMS:
• MT, MO, CB, Text and PDU mode • Bộ nhớ SMS: Sim, card
− FAX:
33 − 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ể Sd 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ể Sd 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 − Quản lý danh sách: • Hỗ trợ mẫu danh sách: SM, FD, LD, RC,ON, MC − Sim Application toolkit:
• Hỗ trợ SAT loại GSM 11,14 bản 99 − Đồng hồ thời gian thực:
• Người cài đặt − Times function:
34
3.4.2.3 Khảo sát sơ đồ chân và chức năng của từng chân
Hình 3.8: Sơđồ chân của Module Sim900A
− Chân 55, 56, 57: 5 chân của dip được dành riêng để 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 nối mass
− Chân 11 (VCHG) :Nguồn vào cho bộ sạc pin, làm cho hệ thống tìm được nguồn sạc.
− 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 hiện tại cho RTC khi pin không chung cấp nguồn cho hệ thống . Dòng ra pin dự phòng khi pin chính dang hoạt động và pin dự phòng ở trạng thái thấp.
− Chân 15 (VCC-EXT) : Cung cấp điện áp 2.93 từ bên ngoài.Chân này người ta dùng để đánh giá hệ thống tắt hay bật. Khi điện áp thấp hệ thống tắt nguồn. Còn không hệ thống sẽ bật.
35
− Chân 52 (NETLIGHT): đầu ra dùng để chỉ báo mạng kết nối được hệ
thống.
− Chân 1 (PWRKEY): chân này dùng đểđiều khiển hệ thống bật/tắt. − Chân 47, 48, 49, 50 (KBC): bàn phím.
− Chân 66 (STATUS) : báo trình trạng công việc. − Chân 51, 67, 68 (GPIO) :Ngõ vào ra
− Chân 30 ( SIM VDD) : nguồn cung cấp cho thẻ sim. − Chân 33 ( SIM RST) :chân reset cho mạch sim
− Chân 40, 41, 42, 43, 44 ( KBR ):chân kết nối với bàn phím − Chân 31 ( SIM DATA) : đầu ra dữ liệu chân sim
− Chân 32 ( SIM CLK ): chân thời gian của sim − Chân 34 (SIM PRESENCE ) :chân dò tìm mạng − Chân 5 (DCD): Data carrier detection
− Chân 14 (DISP CS):
− Chân 11 (DISP CLK) : Ngõ ra kiểm tra xung clock − Chân 12 (DISP DATA) :
− Chân 13 (DISP D/C):
− Chân 16 (NRESET): thiết lập đầu vào (reset low). − Chân 3 ( DTR) : chân đầu cuối dữ liệu
− 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) : Ngõ vào yêu cầu gửi dữ liệu. − Chân 7 (CTS) :Sẵn sàng gửi để gửi dữ liệu
− Chân 4 (RI) : Ngõ ra cho biết trạng thái hoạt độ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
36
− Chân 21 (SPK_P), 22 (SPK_N) : chân output âm thanh − Chân 19 (MIC_P ), 20 (MIC_N) : chân input âm thanh − Chân 23 (LINEIN_R), 24 (LINEIN_L)
− Chân 35 (PWM1), 36 (PWM2): PWM − Chân 60 (RF_ANT): kết nối anten radio − Chân 2, 6 (NOT CONNET): không kết nối.
3.4.2.4 Kết nối giữa module SIM900A và vi điều khiển
Hình 3.9: Kết nối giữa Breakout SIM900 và Vi điều khiển
Chân TXD của SIM900 được kết nối với chân RXD của vi điều khiển, và ngược lại chân RXD của SIM900 kết nối tới chân TXD của vi điều khiển, đồng thời chân GND của SIM900 và vi điều khiển được nối chung với nhau. Chân PWU là chân kích hoạt cho Module SIM900 được nối với chân RB0 của vi điều khiển.
3.4.3Khảo sát tập lệnh AT
Sử dụng tập lệnh AT cho Moulde SIM900 trong các thao tác dùng cho dịch vụ SMS (Short Message service) và cuộc gọi bao gồm:
− Khởi tạo − Nhận cuộc gọi − Thiết lập cuộc gọi − Nhận tin nhắn − Gửi tin nhắn
37 Các thuật ngữ:
<CR> : Carriage return (0x0D) <LF> : Line Feed (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 (máy tính, hệ vi điều khiển).
3.4.3.1 Chế độ nghỉ:
Hình 3.10: Chuyển từ chế hoạt động bình thường sang chếđộ nghỉ
(1) AT+CFUN=0<CR>
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. MT (module sim) không được kết nối với mạng.
(2) <CR><LF>OK<CR><LF>
Chuỗi thông báo kết quả thực thi lệnh thành công, thông thường sau 3 giây kể từ lúc nhận lệnh AT+CFUN=0.
(3) Chuyển sang trạng thái chân DTR từ mức 0 sang mức 1. Đưa module về
38
3.4.3.2 Chế độ nghỉ chuyển sang chế độ hoạt động bình thường:
Hình 3.11: Đưa module trở về trạng thái hoạt động (1) Đưa chân DTR từ mức 1 xuống mức 0
Module thoát khỏi chếđộ sleep. (2) AT+CFUN=1<CR>
Đưa module trở về chếđộ hoạt động bình thường. (3) MT trả về chuỗi <CR><LF>OK<CR><LF>
(4) Module gửi chuỗi thông báo <CR><LF>Call Relay<CR><LF>.
Thời gian kể từ lúc nhận lệnh AT+CFUN=1<CR> đến module gửi về
39
3.4.3.3 Khởi tạo cấu hình mặc định cho module sim 900A:
Hình 3.12: Khởi tạo cấu hình mặc định cho module sim 900A (1) ATZ<CR>
Reset module, kiểm tra module đã hoạt động bình thường chưa. Gửi nhiều lần cho chắc chắc, cho đến khi nhận được chuỗi:
ATZ<CR><CR><LF>OK<CR><LF> (2) ATZ<CR><CR><LF>OK<CR><LF> 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.
40
Thông thường, ở chế độ mặc định, khi có cuộc gọi đến, chuỗi trả về có dạng: <CR><LF>RING<CR><LF>.
Sau lệnh AT+CLIP=1<CR> đã được thực thi chuỗi trả về dạng: <CR><LF>RING<CR><LF>
<CR><LF>+CLIP:”0987572276”,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 trong quá trình nhận cuộc gọi. các bước khởi tạo tiếp theo có 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 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ề có dạng: <CR><LF>OK<CR><LF> (6) AT+CNMI=2,1,0,0,0<CR>
Thiết lập chếđộ thông báo cho TE khi MT nhận được tin nhắn. Chuỗi trả về có dạng:
<CR><LF>OK<CR><LF>
Sau khi lệnh trên được thiết lập, tin nhắn mới nhận được sẽ lưu trong SIM, và MT sẽ gửi thông báo khi có tin nhắn mới. TE có đọc được tin nhắn lưu trong SIM.
(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.
41
3.4.3.4 Thực hiện cuộc gọi
Hình 3.13: Thực hiện cuộc gọi (1) ATDxxxxxxxxxx,<CR>
Quay số cần gọi. (2) Chuỗi trả về có dạng:
<CR><LF>OK<CR><LF>
Chuỗi này thông báo lệnh trên đã được nhận và đang được thực thi. Sau
đó là những chuỗi thông báo kết quả quá trình kết nối (nếu như kết nối không
42
(2A) Nếu MT không thực hiện được kết nối do sóng yếu, hoặc không có sóng (thử bằng cách tháo anten của module GSM), chuồi trả về có dạng:
<CR><LF>NO DIAL TONE <CR><LF>
(2B) Nếu cuộc gọi bị từ chối bởi người nhận cuộc gọi, hoặc số máy đang gọi tạm thời không hoạt động (chẳn hạn như bị tắt máy) chuỗi trả về có dạng:
<CR><LF>NO CARRIER<CR><LF>
(2C) Nếu cuộc gọi không thể thiết lập do máy nhận cuộc gọi đang bận (ví dụ
nhưđang thông thoại với một thuê bao khác) chuỗi trả về có dạng: <CR><LF>BUSY<CR><LF>(4s)
Tổng thời gian lúc module nhận lệnh cho đến lúc nhận chuỗi trên thông thường là 4 giây.
(2D) Nếu 1 phút mà thuê bao nhận cuộc gôi không bắt máy, chuỗi trả về sẽ
có dạng: <CR><LF>ANSWER<CR><LF>(60s)
(3) Trong trường hợp quá trình thiết lập lập cuộc gọi diễn ra bình thường, không có chuỗi thông báo nào (2, 2A, 2B, 2C hay 2D) được trả về, chuyển sang chếđộ thông thoại.
Quá trình kết thúc cuộc gọi được diển ra trong 2 trường hợp: (4A) Đầu nhận cuộc gọi gác máy trước. chuỗi trả về có dạng:
<CR><LF>NO CARRIER<CR><LF> (4B) Đầu thiết lập cuộc gọi gáp máy trước, chuỗi trả về có dạng:
43
3.4.3.5 Nhận cuộc gọi đến:
Hình 3.14: Nhận cuộc gọi
(1) Sau khi khởi tạo bằng lệnh AT+CLIP=1, khi có cuộc gọi đến, chuỗi trả
về có dạng:
<CR><LF>RING<CR><LF>
<CR><LF>+CLIP:”0987572276”,129,””,””,0<CR><LF>
Chuỗi trả về có hiển thị số điện thoại yêu cầu được kết nối, dựa trên thông tin này để có thể quyết định nhận cuộc gọi hay từ chối cuộc gọi.
(2A) Nếu sốđiện thoại gọi đến không hợp lệ, từ chối nhận cuộc gọi bằng lệnh ATH, và chuỗi trả về sẽ có dạng: <CR><LF>OK<CR><LF>
44 Cuộc gọi kết thúc.
(2B) Nếu số điện thoại gọi đến là hợp lệ, nhận cuộc gọi bằng cách gửi lệnh ATA, và chuỗi trả về sẽ có dạng: <CR><LF>OK<CR><LF>
(3) Giai đoạn thông thoại
(4A) Kết thúc cuộc gọi. Đầu còn lại gác máy trước.
(4B) Kết thúc cuộc gọi. Chủđộng gác máy bằng cách gửi lệnh ATH.
3.4.3.6 Gửi tin nhắn:
Hình 3.15: Gửi tin nhắn
(1) Gửi tin nhắn đến thuê bao bằng cách sử dụng lệnh AT+CMGS=”số điện thoại”.
45 <CR><LF>>
(3) Gửi nội dung tin nhắn và kết thúc bằng ký tự có mã ASCII 0x1A.
(3A) Gửi tin nhắn ESC (mã ASCII là 27) nếu không muốn tiếp tục gửi tin nhắn nửa. Khi đó TE sẽ gửi trả về chuỗi có dạng: <CR><LF>OK<CR><LF>. (4) Chuỗi trả về thông báo kết quả quá trình gửi tin nhắn. chuỗi trả về có định dạng như sau: <CR><LF>+CMGS:62<CR><LF>
<CR><LF>OK<CR><LF>
Trong đó 62 là một số tham chiếu cho tin nhắn được gửi. Sau mỗi tin nhắn được gửi đi, giá trị của số tham chiếu này sẽ tăng lên 1đơn vị. Số tham chiếu này có giá trị nằm trong khoảng từ 0 đến 255.
Thời gửi tin nhắn nằm trong khoảng tử 3-4 giây.
(4A) Nếu tình trạng sóng không cho phép thực hiện việc gửi tin nhắn (thử
bằng cách tháo antenna), hoặc chức ngăn RF của module không được cho phép hoạt động (do sử dụng các lệnh AT+CFUN=0 hoặc AT+CFUN=4), hoặc số tin nhắn trong hàng đợi phía tổng đài vượt qua giới hạn cho phép, hoặc bộ nhớ chứa tin nhắn của MT nhận được tin nhắn bị tràn, MT sẽ gửi thông báo lỗi trở về và có định dạng như sau:
<CR><LF>+CMS ERROR:193<CR><LF> <CR><LF>+CMS ERROR:515<CR><LF>
46
3.4.3.7 Đọc tin nhắn:
Hình 3.16: Đọc tin nhắn từ 2 vùng nhớ 1 và 2 trong SIM
Mọi thao tác liện quan đến quá trình nhận tin nhắn đều thực hiện trên 2 ngăn 1 và 2 của bộ nhớ nằm trong SIM.
(1) Đọc tin nhắn trong ngăn 1 bằng lệnh AT+CMGR=1.
(2A) Nếu ngăn 1 không chứa tin nhắn, chỉ có chuổi sau được trả về: <CR><LF>OK<CR><LF>
(2B) Nếu ngăn 1 có chứa tn nhắn, nội dung tin nhắn sẽđược gửi trả về TE với
định dạng như sau:
<CR><LF>+CMGR:
“REC UNREAD”,”+84987572276”,,”07/05/15,09:32:05+28” <CR><LF>NỘI DUNG<CR><LF>
47 <CR><LF>OK<CR><LF>
Các tham số trong chuỗi trả về bao gồm trạng thái của tin nhắn (REC UNREAD), số điện thoại gửi tin nhắn (+84987572276) và thời gian gửi tin nhắn (07/05/15,09:32:05+28) và nội dung tin nhắn. Đây là định dạng mặc
định của module SIM900A lúc khởi động. Dạng mở rộng có thể thiết lập bằng cách sử dụng lệnh AT+CSDH=1 trước khi thực hiện đọc tin nhắn.
Sau khi đọc, tin nhắn được xoá đi bằng lệnh AT+CMGD=1. Thao tác tương tựđối với tin nhắn chứa trong ngăn thứ 2 trong các bước 4, 5A (5B) và 6.
3.4.3.8 Các lệnh thiết lập và cài đặt cho tin nhắn SMS:
Bảng 3.1: Các lệnh thiết lập và cài đặt cho tin nhắn SMS
AT+CMGD Xoá tin nhắn sms.
AT+CMGF Định dạng văn bản tin nhắn. AT+CMGL Danh sách tin nhắn đã lưu. AT+CMGR Lệnh đọc tin nhắn.
AT+CMGS Lệnh gửi tin nhắn.
AT+CMGW Lưu tin nhắn vào bộ nhớ. AT+CMSS Gửi tin nhắn đã lưu. AT+CMGC Gửi sms lệnh.
AT+CNMI MT gửi thông báo khi có tin nhắn mới. AT+CPMS Các tin nhắn riêng biệt đã lưu.
AT+CRES Cài đặt lại tin nhắn.
AT+CSAS Lưu các cài đặt cho tin nhắn. AT+CSCA Địa chỉ dịch vụ tin nhắn.
AT+CSMP Cài đặt định dạng chữ của tin nhắn. AT+CSMS Lựa chọn tin nhắn dịch vụ.
48
CHƯƠNG 4
TỔNG QUAN VỀ PIC 16F887 VÀ PIC 18F4620 4.1 Tổng quan về vi điều khiển Pic 16F887
4.1.1 Sơ đồ và hình dạng thực tế:
Hình 4.1: Sơđồ chân Pic16F887
49
4.1.2 Một số thông tin về vi điều khiển Pic 16F887:
Đây là vi điều khiển thuộc họ PIC16xxxx với tập lệnh gồm 35 lệnh có độ
dài 14 bit. Mỗi lệnh điều được thực thi trong một chu kỳ xung clock. Tốc độ hoạt
động tối đa cho phép là 20Mhz với một chu kỳ lệnh là 200ns. Bộ nhớ flash chương trình là 8192 words và bộ nhớ dữ liệu là 368 bytes SRAM + 256 bytes EEPROM. Số PORT I/O là 5 với 33 pin I/O.
v Các đặc tính ngoại vi bao gồm các khối chức năng sau:
+ Timer0: bộ nhớ 8 bit với bộ chia tần số 8bit.
+ Timer1: bộ đếm 16 bit với bộ chia tần số có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chếđộ sleep.
+ Timer2: bộđếm 8 bit với bộ chia tần số, bộ postcaler.
+ Hai bộ capture/ so sánh/ điều chếđộ rộng xung.
+ Các chuẩn giao tiếp nối tiếp SSP(Synchronous Serial Port), ISP và I2C.
+ Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
+ Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.
v Các đặc tính Analog:
+ 14 kênh chuyển đổi ADC 10 bit
+ 2 bộ so sánh
+ Bên cạnh đó là một vài đặc tính khác của vi điều khển như:
+ Bộ nhớ flash có khả năng ghi xoá được 100 000 lần.
+ Bộ nhớ EEPROM có khả năng ghi xoá 1 000 000 000 lần.
+ Khả năng tự nạp chương trình với vi điều khiển của phần mềm.
+ Nạp chuong trình ngay trên mạch điện ICSP (In circuit Serial Programming) thông qua 2 chân.
50
+ Chức năng bảo mật mã chương trình.
+ Chếđộ sleep.
+ Có thể hoạt động nhiều dạng Oscillator khác nhau.
4.1.3 Sơ đồ khối vi điều khiển Pic 16F887:
51
4.1.4 Tổ chức bộ nhớ:
Cầu trúc bộ nhớ của vi điều khiển Pic 16F887 bao gồm bộ hớ chương trình (Program memory) và bộ nhớ dữ liệu (data memory).
4.1.4.1 Bộ nhớ chương trình:
Bộ nhớ chương trình của vi điều khiển Pic 16F887la2 bộ nhớ flash, dung lượng là 8 Kword (1 word=14 bit) và được phân thành nhiều trang (từ
page0 đến page3).
Như vậy bộ nhớ chương trình có khả năng chứa được 8x1024=8192 lệnh (vì mỗi lệnh sau khi mã hoá sẽ có dung lượng 14 bit = 1 word).
Để mã hoá được địa chỉ cả 8 Kword chương trình có dung lượng 13 bit. Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004H (Interrupt vector).
Bộ nhớ chương trình không bao giờ gồm bộ nhớ stack và không
được địa chỉ hoá bởi bộđếm chương trình.
52
4.1.4.2 Bộ nhớ dữ liệu:’
Bộ nhớ của Pic và bộ nhớ EFPROM được chia thành nhiều bank.