Các chế độ RESET:

Một phần của tài liệu điều khiển thiết bị bằng tin nhắn sms dùng module sim 900 (Trang 35)

Có nhiều chế độ reset vi điều khiển, bao gồm:

- Power-on Reset Por (Reset khi cấp nguồn hoạt động cho vi điều khiển).

- Reset trong quá trình hoạt động.Từ chế độ sleep.

- WDT reset (reset do khối WDT tạo ra trong quá trình hoạt động).

- WDT wake up từ chế độ sleep.

- Brown-out reset (BOR).

- Power-on reset(POR): Đây là xung reset do vi điều khiển tạo ra khi phát hiện nguồn cung cấp VDD.Khi hoạt động ở chế độ bình thường, vi điều khiển cần được đảm bảo các thông số về dòn điện, điện áp để hoạt động bình thường.Nhưng nếu các tham số này không được đảm bảo, xung reset do POR tạo ra sẽ đưa vi điều khiển về trạng thái reset và chỉ tiếp tục hoạt động khi nào các tham số trên được đảm bảo.

- Power-up Timer (PWRT): đây là bộ định thời hoạt động dựa vào mạch RC bên trong vi điều khiển.Khi PWRT được kích hoạt, vi điều khiển sẽ được đưa về trạng thái reset.PWRT sẽ tạo ra một khoảng thời gian delay( khoảng 72ms) để VDD tăng đến giá trị thích hợp.

- Oscillator Start-up Timer (OST): OST cung cấp một khoảng thời gian delay bằng 1024 chu kì xung của oscillator sau khi PWRT ngưng tác động (vi điều khiển đã đủ điề kiện hoạt động) để đảm bảo sự ổn định của xung do oscillator phát ra.Tác động của OST còn xảy ra đối với POR reset và khi vi điều khiển được đánh thức từ chế độ sleep,OST chỉ tác động đối với các loại oscillator là XT, HS và LP.

- Brown-out reset (BOR): Nếu VDD hạ xuống thấp hơn giá trị VBOR( khoảng 4V) và kéo dài trong khoảng thời gian lớn hơn TBOR( khoảng 100 us).BOR được kích hoạt và vi điều khiển được đưa về trạng thái BOR reset.Nếu điện áp cung cấp cho vi điều khiển hạ xuống thấp hơn VBOR trong khoảng thời gian ngắn hơn TBOR, vi điều khiển sẽ không được reset.Khi điện áp cung cấp cho vi điều khiển hoạt động,PWRT được kích hoạt để tạo ra một khoảng thời gian delay( khoảng 72ms).Nếu trong khoảng thời gian này điện áp cung cấp cho vi điều khiển lại tiếp tục hạ xuống dưới mức điện áp VBOR,BOR reset sẽ lại được kích hoạt khi vi điều khiển đủ điện áp hoạt động.Một điểm càn chú ý là khi BOR reset được cho phép, PWRT cũng sẽ hoạt động bất chấp trạng thái của bit PWRT.

- Tóm lại để vi điều khiển hoạt động được từ khi cấp nguồn cần trải qua các bước sau:

- POR tác động.

- PWRT( nếu được cho phép hoạt động) tạo ra khoảng thời gian delay TPWRT để ổn định nguồn cung cấp.

- OST (nếu được cho phép) tạo ra khoảng thời gian delay bằng 1024 chu kì xung của oscillator để ổn định tần số của oscillator.

Đến thời điểm này vi điều khiển mới bắt đầu hoạt động bình thường.Thanh ghi điều khiển và chỉ thị trạng thái nguồn cung cấp cho vi điều khiển là thanh ghi PCON

Hình 4.8: Sơ đồ các chế độ reset của PIC16F877A

PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghi INTCON(bit GIE).Bên cạnh có mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng.Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuộc vao bit GIE và các bit điều khiển khác.Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghi này còn chứa bit cho phép các ngắt ngoại vi PEIE.Bit điều khiển các ngắt nằm trong thanh ghi PIE1 và PIE2.Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2.

Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương trình ngắt được kết thúc bằng lệnh RETFIE.Khi chương trình ngắt được thực thi, bit GIE tự động được xóa, địa chỉ lệnh tiếp theo của chương trình chính được cất vào trong bộ nhớ stack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h.Lệnh RETFIE được dùng để thoát khỏi chương trình ngắt và quay trở về chương trình chính, đồng thời bit GIE cũng sẽ được set để cho phép các ngắt hoạt động trở lại.Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và phải được xóa bằng chương trình trước khi cho phép.

CHƯƠNG 5: THIẾT KẾ VÀ THI CÔNG MẠCH 5.1. THIẾT KẾ:

Có 2 phương pháp thiết kế để thực hiện đề tài :

+ Dùng điện thoại di động có chức năng giống với MODULE SIM900 để kết nối với pic16f877a. Việc lập trình cho điện thoại di động cũng gần tương tự như GMS MODULE nhưng có hạn chế hơn vì một số loại điện thoại chỉ hổ trợ lệnh AT ở dạng MODE PDU nên lập trình rất phức tạp.

+ Dùng MODULE SIM900 để kết nối với vi điều khiển PIC16F877A: chi phí và giá thành khá đắt. Nhưng có đầy đủ tính năng cho lập trình với lệnh AT.Ngoài ra còn có thể phát triển ứng dụng sâu them với GPRS ,GPS. Do đó việc lựa chọn thiết kế nối MODULE SIM900 với PIC16F877A sẽ khả thi và dễ thực hiện hơn.

5.2. Sơ đồ khối hoạt động toàn hệ thống.

5.3.1 Khối nguồn :

Dùng các ic ổn áp để đảm bảo điện áp ra cung cấp cho mạch luôn ổn định.

• LM7805: ổn định điện áp 5v cung cấp cho khối xử lí trung tâm.

• LM2576: ổn định điện áp 4v cung cấp cho module sim900.

Dùng các tụ hóa có giá trị khác nhau để lọc điện áp ra, thường chọn các tụ lớn: 330uf , 10uf ,10uf,….

Khối này có chức năng gửi nhận tin nhắn sms cho việc điều khiển các thiết bị.khối này cần 1 thiết bị điện thoại di động và 1 Module Sim900:

+ Thiết bị điện thoại di động :dành cho người sử dụng (điều khiển). Người sử dụng cần phải đăng kí dịch vụ viễn thông đối với các nhà cung cấp dịch vụ trong nước.

+ GDM Module Sim900: module này phải được gắn sim của nhà cung cấp dịch vụ và được kết nối với khối xử lí trung tâm.

Khi người sử dụng nhắn một tin sms có nội dung là một lệnh yêu cầu điều khiển thiết bị thì module sim900 sẽ nhắn tin nhắn và truyền cho khối xử lí trung tâm để khối này xử lí tin nhắn và đưa ra lệnh điều khiển .Để cho phép ứng GMS hoạt động ,yêu cầu phải giữ chân PWMRKEY ở mức thấp trong một khoảng thời gian ngắn nên ở chân PWMRKEY có sử dụng một nút nhấn .Ta có thể biết được tình trạng của mạng GMS thông qua chân STATUS.

Trạng thái Mạng GMS

Off Ứng dụng GMS của sim900 không hoạt động.

64ms on/ 800ms off Ứng dụng GMS không tìm thấy mạng. 64ms on /3000ms off Ứng dụng GMS đang kết nối mạng.

64ms on /300ms Đang giao tiếp GPRS.

5.3.3 Khối giao tiếp RS232:

• Khối này được dùng để kết nối với cổng com của máy tính để test hoạt động Module sim900.

• IC 7408 dùng để chuyển đổi mức điện áp chênh lệch giữa Module sim900 (+4v) với pic 16f877A(+5v).

5.3.4 KHỐI VI XU LÝ PIC16F877A:

Khối này sẽ thực thi toàn bộ việc xử lý và điều khiển toàn hệ thống.khối đo vi điều khiển pic 16f877A đảm nhận và có nhiệm vụ gửi nhận dữ liệu với Module sim900 một cách liên tục ,do đó sử dụng thạch anh có giá trị f=20mhz và 2 tụ 33pf dùng ổn định dao động thạch anh .PIC sẽ đọc nội dung tin nhắn điều khiển từ module sim900 để xử lý sau đó xuất lệnh điều khiển.

Mạch reset cho PIC sử dụng chế độ reset ở chân MCLR của PIC (chân số 1). Ta đã biết PIC sẽ reset khi chân MLCR chuyển từ mức logic 1 xuống 0 và ta sử dụng 1 nút nhấn để thực hiện việc chuyển đổi đó ,đây là cách reset cho PIC bằng tay .Bình thường nút nhấn hở ,chân MLCR ở mức logic 1 (vì được nối với nguồn qua điện trở hạn dòng R3).Điện trở này phải có gái trị nhỏ hơn 40k để đảm bảo dòng cung cấp cho pic (trong mạch chọn 10k). Khi nút nhấn ,chân MLCR được kết nối mass nên mang mức logic 0, khi đó pic được reset.

- Khối này được đóng để kích các relay đóng ngắt tương ứng với bật tắt các thiết bị điện khi có lệnh điều khiển từ khối xử lý trung tâm. Khối này đóng để kích cho 4 con relay tương ứng với bật tắt 4 thiết bị nhưng để cho gọn chúng em chỉ tính toán mạch kích cho1 dân dụng con relay ,các con khác tính tương tự.

- chọn relay:

• Điện áp tác động: 12v

• Điện trở cuộn dây relay , R=300Ω.

• Điện áp đóng mở 220v.

- Chọn transistor c1815 và phân cực cho nó hoạt động ở chế độ bão hòa. Tính Rb:

Ta có dòng điện qua cuộn dây của relay là:

Mối quan hệ giữa dòng qua cực C và dòng qua cực B của transistor hoạt động ở chế độ bão hòa như sau:

Với k là hệ số bão hòa (chọn k=2), và β là hệ số khuyếch đại (β=100) Ta có điện trở ở cực B được tính theo cống thức:

Chọn Rb=6.8k. điện trở hạn dòng cho led chọn giá trị 1k. điốt chống xả ngược năng lượng của cuộn dây để bảo vệ cho transistor chon loại 1n4007.

5.4 Nguyên tắc hoạt động :

Khi khởi động hệ thống thì mất 1 khoảng thời gian 20-30s để dò song. Khi đã dò được song(đèn led trạng thái chuyển từ nhấp nháy nhanh sang chậm )lúc này hệ thống mới thực hiện được các chức năng điều khiển ,báo động của mình.

5.4.1. Cú pháp tin nhắn điều khiển:<*XXXXXX!YY> <*XXXXXX!YY>

Trong đó:

- Xxxxxx: tương ứng là 6 ký tự mật khẩu của hệ thống.

- Yy: tương ứng on 1,2,3,4 mở các thiết bị 1,2,3,4 hay off 1,2,3,4 để tắt các thiết bị 1,2,3,4.

5.4.2 Giải thích:Điều khiển: Điều khiển:

Sau khi hệ thống được kích hoạt chúng ta muốn điều khiển thì tin nhắn theo cú pháp điều khiển như trên ,khi xử lý xong hệ thống sẽ tự động gửi tin nhắn phản hồi lại cho người điều khiển biết trạng thái của các thiết bị vừa được điều khiển. Trong trường hợp tin nhắn điều khiển sai cú pháp thì hệ thống cũng sẽ gửi tin nhắn phản hồi báo lỗi cho người điều khiển.

5.4.2.1. Sử dụng ứng dụng GSM cho dịch vụ gửi tin nhắn và cuộc gọi.

Sử dụng tập lệnh AT dành cho GSM của module SIM548 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.

5.4 2 . Các thuật ngữ..2.

: Carriage return (0x0D). : Line Feed (0x0A).

MT : Mobile Terminal . Thiết bị đầu cuối mạng (trong trường hợp này là module SIM548).

TE : Terminal Equipment. Thiết bị đầu cuối (máy tinh, hệ vi điều khiển).

5.4.2. 3 . Khởi tạo cho ứng dụng GSM:

Chuyển từ chế độ bình thường sang chế độ nghỉ (sleep mode)

(1) AT+CFUN=0

Tắt hết mọi 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. module không còn được kết nối với mạng.

(2) OK

Chuỗi thông báo kết quả thực thi lệnh thành công, thông thường là sau 3 giây kể từ lúc nhận lệnh AT+CFUN=0.

(3) Chuyển trạng thái chân DTR từ mức 0 sang mức 1. Module hoạt động ở chế độ sleep mode.

- Chuyển từ chế độ nghỉ sang chế độ hoạt động bình thường.

Đưa module trở về trạng thái hoạt động

(1) Đưa chân DRT chuyển từ mức 1 xuống mức 0 Module thoát khỏi chế độ sleep.

(2) AT+CFUN=1

Đưa module trở về chế độ hoạt động bình thường. (3) MT trả về chuỗi OK.

(4) Module gửi tiếp chuỗi thông báo Call Ready.

Thời gian kể từ lúc nhận lệnh AT+CFUN=1 đến lúc module gửi về thông báo trên khoảng 10 giây.

Khởi tạo cấu hình mặc định cho module SIM548

(1) ATZ

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: ATZOK.

(2) ATE0

Tắt chế độ echo lệnh. Chuỗi trả về có dạng: ATE0OK. (3) AT+CLIP=1

Đị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:RING Sau khi lệnh AT+CLIP=1 đã được thực thi, chuỗi trả về sẽ có dạng:

RING

+CLIP: "0929047589",129,"",,"",0

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

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

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: OK (6) AT+CNMI=2,1,0,0,0

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:

OK

Sau khi lệnh trên được thiết lập, tin nhắn mới nhận được sẽ được lưu trong SIM, và MT gửi thông báo khi có tin nhắn mới. TE có thể đọc tin nhắn được lưu trong SIM.

(7) AT+CSAS

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. - Xóa tin nhắn trước khi hoạt động :

Khởi tạo module SIM548

(1) AT+CMGD=1

Xóa tin nhắn ở vùng nhớ 1 trong SIM. Chuỗi trả về sẽ có dạng: OK

(2) AT+CMGD=2

Tác dụng tương tự như lệnh số 1. Lệnh này được dùng để xóa tin nhắn được lưu trong ngăn số 2.

Có thể hình dung bộ nhớ lưu tin nhắn trong SIM bao gồm nhiều ngăn (loại Super SIM của Mobi phone có 50 ngăn), mỗi ngăn cho phép lưu nội dung của 1 tin nhắn (bao gồm tất cả các loại tin nhắn: tin nhắn từ tổng đài, tin nhắn thông báo kết quả quá trình gửi tin nhắn trước đó, tin nhắn từ thuê bao khác, …). Mỗi ngăn được đại diện bằng một số thứ tự.

Khi nhận được tin nhắn mới, nội dung tin nhắn sẽ được lưu trong một ngăn trống có số thứ tự nhỏ nhất có thể.

Việc xóa nội dung tin nhắn ở hai ngăn 1 và 2 cho phép tin nhắn nhận được luôn được lưu vào trong hai ô nhớ này, giúp dễ dàng xác định vị trí lưu tin nhắn vừa nhận được, và giúp cho việc thao tác với tin nhắn mới nhận được trở nên dễ dàng và đơn giản hơn, giảm khả năng việc tin nhắn mới nhận được bị thất lạc ở một vùng nhớ nào đó mà ta không kiểm soát được.

5.

Nhận cuộc gọi

(1) Sau khi được khởi tạo bằng lệnh AT+CLIP=1, khi có cuộc gọi đến, chuỗi trả về sẽ có dạng:

RING

+CLIP: "0929047589",129,"",,"",0

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ể ra 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:

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ỗitrả về sẽ có dạng: OK

(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.

5.4.2. 5 . Thiết lập cuộc gọi

(1) ATDxxxxxxxxxx; Quay số cần gọi.

(2) Chuỗi trả về có dạng: OK.

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 được thực hiện thành công).

(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,chuỗi trả về sẽ có dạng:

NO DIAL TONE

(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ẳng hạn như bị tắt máy) chuỗi trả về có dạng:

NO CARRIER

(2C) Nếu cuộc gọi không thể thiết lập được 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ề sẽ có dạng:

BUSY (4s)

Tổng thời gian từ lúc modem nhận lệnh cho đến lúc nhận được chuỗi trên thông thường là 4 giây.

(2D) Nếu sau 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: NO ANSWER (60s)

(3) Trong trường hợp quá trình thiết lập cuộc gọi diễn ra bình thường, không có chuỗi thông báo nào (2A, 2B, 2C hay 2D) được trả về, và chuyển sang giai đoạn thông thoại. Quá trình kết thúc cuộc gọi được diễn ra trong hai trường hợp:

Một phần của tài liệu điều khiển thiết bị bằng tin nhắn sms dùng module sim 900 (Trang 35)

Tải bản đầy đủ (DOCX)

(94 trang)
w