Trong sinh hoạt học tập cũng như lao động sản xuất đều có khá nhiều công cụ, thiết bị được ứng dụng từ các lĩnh vực điện tử và viễn thông như điện thoại, truyền hình, truyền thanh… Và cù
Trang 1TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG
KHOA ĐIỆN TỬ - TIN HỌC
LỚP: CĐ ĐĐT12ĐTE
TP.HCM, ngày tháng 12 năm 2014
Trang 2Trong thời gian học tập tại trường Cao Đẳng Kỹ Thuật Cao Thắng , chúng em đã nhận được sự hướng dẫn , giảng dạy tận tình của quý thầy cô về những kiến thức chuyên môn cũng như những kiến thức trong cuộc sống.
Chúng em xin gửi lời cảm ơn chân thành tới quý thầy cô trong trường CĐKT Cao Thắng,thầy cô trong Khoa Điện Tử - Tin Học đã giảng dạy và tạo điều kiện cho chúng em hoàn thành đồ án môn học này
Chúng em , nhóm sinh viên thực hiện đề tài này, xin đặc biệt cảm ơn thầy Võ Xuân Nam
giáo viên hướng dẫn đồ án , đã tận tình theo dõi, giúp đỡ chúng em trong suốt thời gian
thực hiện đề tài “ Điều Khiển Thiết Bị Qua Tin Nhắn SMS “, giúp chúng em hoàn
thành tốt đổ án môn học này
Sinh viên thực hiện :
Trần Phan Công Hậu Trương Văn Khang
Lê Tiến Đạt Nguyễn Nhựt Trường Giang Phạm Anh Kiệt
Trang 3
NHẬN XÉT CỦA GIAO VIÊN HƯỚNG DẪN
Trang 4
TPHCM, ngày… tháng… năm 2014 Giáo viên hướng dẫn MỤC LỤC LỜI CẢM ƠN 2
CÁC YÊU CẦU CỦA ĐỀ TÀI 3
Trang 5NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 4
MỤC LỤC 5
LỜI MỞ ĐẦU 8
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 9
1.1 Đặt vấn đề: 9
1.2 Ý nghĩa đề tài: 9
1.3 Mục đích nghiên cứu: 10
1.4 Giới hạn của đề tài: 10
CHƯƠNG 2: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN DI ĐỘNG GSM VÀ SMS 2.1 Tổng Quan Về Mạng GSM: 11
2.1.1 Khái niệm về mạng GSM: 11
2.1.2 Cấu trúc và thành phần mạng GSM: 11
2.2 Giới thiệu về SMS: 13
2.2.1 Ưu đểm và khuyết điểm 13
2.2.2 Cấu trúc của 1 tin nhắn: 13
2.2.3 Tin nhắn chuỗi – tin nhắn SMS dài : 14
2.2.4 SMS CENTER/SMSC: 15
2.2.5 Nhắn tin SMS quốc tế : 15
CHƯƠNG 3: GIỚI THIỆU VỀ MODULE SIM900 VÀ TẬP LỆNH AT 16
3.1 Giới thiệu về module 900HEARDER BOARD: 16
3.1.1 Tính năng của SIM900HEARDER BOARD: 16
3.1.2 Sơ đồ chân và chức năng của từng chân sim 900HEARDER BOARD: 18
3.1.3 Các chế độ hoạt động của Module sim 900HEARDER BOARD: 21
Trang 63.2.1 Các thuật ngữ: 23
3.2.2 Tập lệnh AT: 23
CHƯƠNG 4: TỔNG QUAN VỀ PIC 16F877A 25
4.1 Tổng quan về Pic16F877A: 25
4.2 Sơ đồ khối vi xử lý Pic16F877A: 26
4.3.Tổ chức bộ nhớ chính: 27
4.3.1 Bộ nhớ chương trình: 27
4.3.2 Bộ nhớ dữ liệu: 28
4.4 Các loại TIMER : 30
4.5 ADC: 33
4.6 Giao tiếp nối tiếp : 33
4.7 Cổng giao tiếp song song PSP (PARALLEL SLAVE PORT): 35
4.8 Các đặc tính của OSCILLATOR: 35
4.9 Các chế độ RESET: 36
CHƯƠNG 5: THIẾT KẾ VÀ THI CÔNG MẠCH 39
5.1 Thiết kế: 39
5.2 Sơ đồ khối hoạt động toàn hệ thống: 39
5.3 Sơ đồ nguyên lí các khối và tính toán lựa chọn linh kiện: 40
5.3.1 Khối nguồn: 40
5.3.2 Khối giáo tiếp Module sim 900HEARDER BOARD: 41
5.3.3 Khối giao tiếp RS232: 42
5.3.4 Khối Vi Xử Lý Pic16F877A: 43
5.3.5 Khối công suất: 44
5.4 Nguyên tắc hoạt động : 45
Trang 75.4.1 Cú pháp tin nhắn điều khiển: 45
5.4.2 Giải thích: 45
5.5 Một số tập lệnh AT cơ bản sử dụng cho ứng dụng GSM 56
5.5.1 Các thuật ngữ 56
5.5.2 Các lệnh thiết lập và cài đặt cho cuộc gọi 56
5.5.3 Các lệnh thiết lập và cài đặt cho tin nhắn sms 63
CHƯƠNG 6: LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH CHÍNH 68
6.1 LƯU ĐỒ GIẢI THUẬT: 68
6.1.1 Lưu đồ chương trình chính: 68
6.1.2 Lưu đồ chương trình xử lý tin nhắn: 70
6.1.3 Lưu đồ chương trình điều khiển thiết bị: 71
6.1.4 Lưu đồ gửi tin nhắn tới dố điện thoại điều khiển: 72
6.2 Chương trình chính : 72
6.2.1 Lập trình cho PIC: 72
6.2.2 Chương trình PLC 84
CHƯƠNG KẾT LUẬN 96
o Kết luận; o Hướng phát triển đề tài: TÀI LIỆU THAM KHẢO 97
Trang 8Hiện nay trong thời đại công nghiệp hóa – hiện đại hóa các thiết bị công nghệ ứngdụng trở thành một phần không thể thiếu trong đời sống nó gần gũi và gắn bó với cuộc sống hằng ngày của con người Trong sinh hoạt học tập cũng như lao động sản xuất đều
có khá nhiều công cụ, thiết bị được ứng dụng từ các lĩnh vực điện tử và viễn thông như điện thoại, truyền hình, truyền thanh… Và cùng với sự phát triển của xã hội , nhu cầu về các thiết bị cũng như công nghệ cho cuộc sống phải ngày càng phát triển , đáp ứng phục
vụ con người một cách tốt nhất đảm bảo sự thoải mái tiện nghi cho mọi người
Từ những nhu cầu của thực tế thì ngành điện tử ngày càng phát triển và lĩnh vực điều khiển tự động – điều khiển từ xa là một trong những lĩnh vực đã và đang đáp ứng được các tiêu chí về việc mang lại một cuộc sống tiên nghi , thoải mái cho con người Nhờ các thiết bị , các công nghệ điều khiển tự động, điều khiển từ xa mà đã tiết kiệm được rất nhiều công sức mang lại nhiều thuận lợi cho người sử dụng
Trong đó việc điều khiển các thiết bọ điều khiển trong nhà có thể điều khiển một cách tự động chỉ qua một thao tác đơn giản mà trước đây có thể là một điều xa vời Nhưng giờ đây mạng di động phát triển rộng khắp và các thiết bị điện thoại di động ngàycàng có mức giá phù hợp với người dân thì việc mọi người đến nơi làm và nhớ ra việc quên tắt đèn , quạt , tivi,… thì đã có thể dễ dàng bật/tắt được các thiết bị đó
Xuất phát từ ý tưởng và tình hình thực tế nêu trên , chúng em đã quyết định tìm
hiểu và thực hiện đề tài “ ĐIỀU KHIỂN THIẾT BỊ QUA TIN NHẮN SMS”.
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
Trang 91.1. Đặt vấn đề:
Ngày nay cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật , công nghệ kỹ thuật điện tử mà trong đó là kỹ thuật tự động điều khiển đóng vai trò quantrọng trong mọi lĩnh vực khoa học kỹ thuật , quản lí, công nghiệp, cung cấp thông tin hoặc có thể là một hệ thống điều khiển các thiết bị trong nhà … Điển hình của một hệ thống điều khiển các thiết bị trong nhà từ xa thông qua tin nhắn SMS gồm các thiết bị đơn giản như bóng đèn, quạt máy, lò sưởi đến các thiết bị tình vi , phức tạp như tivi, máy giặt, hệ thống báo động … Đầu não trung tâm ở đây có thể
là một máy vinh tính hoàn chỉnh hoặc có thể là một bộ xử lí đã được lập trình sẵn tất cả các chương trình điều khiển Bình thường, các thiết vị trong ngôi nhà này cóthể được điều khiển từ xa thông qua các tin nhắn của chủ nhà Chẳng hạn như việctắt quạt , đèn điện … khi người chủ nhà quên chưa tắt trước khi ra khỏi nhà Hay chỉ với một tin nhắn SMS, người chủ nhà có thể bật máy điều hòa để làm mát phòng trước khi về nhà trong một khoảng thời gian nhất định Bên cạnh đó nó cũng gửi thông báo cho người điều khiển biết là yêu cầu đã được thực hiện Ngoài
ra, hệ thống còn mang tính bảo mật Nghĩa là chỉ có chủ nhà hay người biết mật khẩu của hệ thống thì mới điều khiển được Từ những yêu cầu thực tế, những đòi hỏi ngày càng cao của cuộc sống với sự hợp tác, phát triển mạnh mẽ của mạng di động nên chúng em đã chọn đề tài: “ Điều khiển thiết bị qua tin nhắn SMS” để đápứng nhu cầu ngày càng cao của con người và góp phần vào sự tiến bộ, văn minh, hiện đại của nước nhà
1.2. Ý nghĩa đề tài:
Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật , các thiết bị điện tử ra đời ngày càng nhiều về chủng loại cũng như tính năng sử dụng Nhu cầu sử dụng các thiết bị một cách tự động nhiều tính năng ngày càng cao Nếu một ngày chúng ta dậy muộn , vội vã đi làm và quên tắt các thiết bị trong nhà, dẫn đến việc tiêu hao điện năng một cách lãng phí, thậm chí là gây cháy nổ, gây thiệt hại về tài sản và hơn thề nữa là tính mạng của những người xung quanh mình
Từ những nhu cầu thực tế đó, nhóm muốn đưa một phần những kỹ thuật hiện đại cuả thế giới áp dụng vào điều kiện thực tế trong nước để có thể tạo ra một hệ thống điều khiển thiết bị trong nhà từ xa thông minh qua tin nhắn SMS.Đề tài lấy
cơ sở là tin nhắn SMS để điều khiển thiết bị Việc sử dụng tin nhắn SMS để điều khiển thiết bị có thuận lợi là tiết kiệm chi phí, mang tính cạnh tranh và cơ động cao ( nghĩa là ở chỗ nào có phủ sóng mạng điện thoại di động ta cũng có thề điều khiển thiết bị được) Ngoài ra, sản phẩm của đề tài này có tính mở, có thể áp dụng
Trang 101.3. Mục đích nghiên cứu:
Nhằm ứng dụng những kiến thức được truyền đạt, giảng dạy trong thời gian học tại trường Ứng dụng sự phổ biến và tiện lợi của mạng điện thoại để tạo lập một
mô hình có thể điều khiên các thiết bọ dân dụng một cách dễ dàng ở khoảng cách
xa của người sử dụng thông qua tin nhắn SMS Tìm hiểu hoạt động và một số tínhnăng của Module sim900, Pic 16F877A Qua đó thiết kế môt mạch điều khiển đèntượng trưng cho các thiết bị trong nhà, có thể biết được trạng thái thiết bị khi bật tắt, cũng như điều khiển được thiết bị từ bất cứ nơi nào có phủ sóng các mạng điênthoại ( như Viettel, Mobi, Vinaphone…) Và cú pháp tin nhắn điều khiển có mật khẩu để đảm bảo tính bảo mật của mô hình , cũng như khi ứng dụng ra thực tế
1.4. Giới hạn đề tài:
Tuy đây là một công nghệ không còn quá mới nhưng với khả năng và kiến thứchiện tại cùng với thời gian ngắn nên mạch ứng dụng của nhóm vẫn còn một số hạnchế như chưa thể thay đổi được mật khẩu qua tin nhắn mà chỉ có thể thay đổi đượctrong code điều khiển Với những vấn đề đã nêu thì nhóm em đã nghiên cứu, thiết
kế tập trung hoàn thiện một số điểm như :
• Điều khiển được một số thiết bị (4 đèn tượng trưng thay thế cho các thiết bịtrong nhà)
• Gửi tin nhắn tương tác với điện thoại khi bật tắt thiết bị hay khi khởi động
Kế hoạch thực hiện:
o Tham khảo tài liệu từ thư viện và Internet
o Tham khảo ý kiến GVHD để thực hiện để tài
o Dựa trên Data sheet và một số tài liệu thiết kế và thi công mạch
CHƯƠNG 2: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN DI ĐỘNG GSM VÀ
SMS 2.1 Tổng Quan Về Mạng GSM:
Trang 11số nối lên bắt đầu tại 935.2MHz và kênh nối xuống bắt đầu từ 890.2MHz Tất cả các kênh đề có độ rộng tần số là 200kHz.
Mỗi băng tần trong số 124 uplink và downlink bao gồm các khung 8 khe (slot) để truyền thoại dữ liệu Vì có 8 khe trên mỗi kênh, tất cả là 124 kênh, nên trên lý thuyết hệ thống có thể phục vụ 992 người dùng; tuy nhiên, một số kênh sẽ không dùng được nếu chúng xung đột với kênh hiện thời đang sử dụng trong ô lưới mạng bên cạnh
Mỗi khoảng thời gian truyền khung trong uplink hay downlinnk có độ rộng 1250 bit chia thành 8 khe 148 bit Nói chung, mỗi kênh có thể truyền một cuộc đối thoại âm hay truyền dữ liệu với tốc độ 9600 bit/giây
2.1.2 Cấu trúc và thành phần mạng GSM:
2.1.2.1 Cấu trúc:
Trang 12Hình2.1 : Cấu trúc của công nghệ GSM
Hệ thống GSM được chia thành nhiều hệ thống con như sau:
-Phân hệ chuyển mạch NSS ( Network Switching Subsystem)
-Phân hệ trạm gốc BSS ( Base Station Subsystem )
-Phân hệ bảo dưỡng và khai thác OSS ( Operation Subsystem )
-Trạm di động MS ( Mobile station )
2.1.2.2 Thành phần mạng GSM:
Một mạng GSM để cung cấp đầy đủ các dịch vụ cho khách hang cho nên nó khá phức tạp vì vậy sau đây sẽ chia ra thành các phần như sau chia theo phân hệ:
-Phân hệ chuyển mạch NSS: Network switching SubSystem
-Phân hệ vô tuyến RSS = BSS + MS : Radui SubSystem
-Phân hệ vận hành và bảo dưỡng OMS : Operation and Maintenance SubSystem
2.1.2.3 Đặc điểm mạng GSM :
Cho phép gởi và nhận những mẫu tin nhắn văn bản bằng kí tự dài đến 126 kí tự.Chophép chuyển giao và nhận dữ liệu, FAX giữa các mạng GSM với tốc đõ hiện hành lên đến 9.600 bps
Trang 13Tính phủ song cao Mạng GSM sử dụng 2 kiểu mã hóa âm thanh để nén tín hiệu âm thanh 3,1Khz đó là mã hóa 6 và 13Kbps gọi là Full rate ( 13Kbps) và haft rate ( 6Kbps).
2.2 Giới thiệu về SMS:
SMS ( Short Message Services ) là một giao thức viễn thong cho phép gửi các thong
điệp dạng text ngắn ( không quá 160 chữ cái ) SMS là công nghệ mà nó cho phép gửi vànhận những thông điệp giữa những chiếc điện thoại di động.SMS lần đầu tiên xuất hiện năm 1992, nó được sử dụng trên hệ thống mạng GSM đây là chuẩn duy nhất vào thời điểm khởi đầu Một tin nhắn SMS chỉ có thể bao gồm nhiều nhất là 140 byte ( tương đương với 1120 bit ) dữ liệu vì vậy một tin nhắn chỉ có thể bao gồm các dạng sau :
-160 ký tự nếu 7 bit ký tự mã hóa được dung 7 bit ký tự mã thích hợp cho việc mã hóa các ký tự Latin như bảng chữ cái alphabe của tiếng Anh
-70 ký tự nếu như 16 bit ký tự Unicode UCS2 mã hóa được dung Ngoài định dạng văn bản, tin nhắn SMS còn có thể mang được cả dữ liệu nhị phân, có thể gửi nhạcchuông, hình ảnh, logo mạng, hình nền, ảnh động, business cards ( ví dụ Vcards )
-Một lợi điểm chính của SMS là được hổ trợ 100% đối với các điện thoại di động GSM Một đặc tính nổi bật của SMS đó chính là sự báo nhận
2.2.1 Ưu điểm và khuyết điểm
2.2.1.1 Ưu điểm:
SMS có thể gửi và đọc bất cứ lúc nào.SMS có thể gửi khi máy nhận tắt.SMS được
hỗ trợ 100% đối với thiết bị di động GSM, tin nhắn SMS là một công nghệ rất mạnh.Tất
2.2.2 Cấu trúc của 1 tin nhắn:
Nội dung của một tin nhắn SMS khi được gửi đi sẽ được chia làm 5 phần như sau:
Message Body
Trang 14Instructions to SIM Instructions to handset
- Instructions to handset: Chỉ thị dữ liệu kết nối bắt tay
- Instructions to SIM ( optional ) : Chỉ thị dữ liệu kết nối, nhận biết SIM
( Subscriber Identity Modules)
- Message body : Nội dung tin nhắn SMS
2.2.3 Tin nhắn chuỗi tin nhắn SMS dài:
Một trong những trở ngại của công nghệ SMS là tin nhắn SMS chỉ có thể mang một lượng giới hạn các dữ liệu Để khắc phục trở ngài này, một mở rộng của nó gọi là SMS chuỗi (hay SMS dài ) đã ra đời Một tin nhắn SMS dạng text dài có thể chứa nhiều hơn 160 kí tự theo chuẩn dùng trong tiếng Anh Cơ cấu hoạt động cơ bản SMS chuỗi làmviệc như sau: điện thoại di động của người sẽ chia tin nhắn dài ra thành nhiều phần nhỏ
và sau đó gửi các phần nhỏ này như một tin nhắn SMS đơn Khi các tin nhắn SMS này đãđược gởi tới đích hoàn toàn thì nó sẽ được kết hợp lại với nhau trên máy di động của người nhận Khó khan của SMS chuỗi là nó ít được hỗ trợ nhiều so với SMS ở các thiế bị
có sử dụng song wireless
2.2.4 SMS Center/Smsc
Một SMS Center ( SMSC) là nơi chịu trách nhiệm luân chuyển các hoạt động liên quan tới SMS của một mạng wireless Khi một tin nhắn SMS được gởi đi tự một điện thoại di động thì trước tiên nó sẽ được gởi tới một trung tâm SMS Sau đó, trung tâm SMS này sẽ chuyển tin nhắn này tới đích ( người nhận ) Nhiệm vụ duy nhất của một
Trang 15SMSC là luân chuyển các tin nhắn SMS và điều chỉnh quá trình này cho đúng với chu trình của nó Thường thì một SMSC sẽ hoạt động một cách chuyên dụng để chuyển lưu thông SMS của một mạng wireless.Hệ thống vận hành mạng luôn luôn quản lí SMSC củariêng nó và vị trí của chúng bên trong hệ thống mạng wireless.Tuy nhiên hệ thống vận hành mạng sẽ sử dụng một SMSC thứ ba có vị trí bên ngoài của hệ thống mạng wireless.
Chi phí để gửi một tin nhắn SMS quốc tế cao hơn so với gửi trong nước.Chi phí gửi tin nhắn trong nội mạng thì ít hơn so với gởi cho các mạng khác trong cùng quốc gia Khả năng kết hợp của tin nhắn SMS giữa hai mạng wireless cục bộ hay thậm chí là quốc
tế là một nhân tố chính góp phần tới sự phát triển mạnh mẽ của hệ thống SMS toàn cầu
Trang 16CHƯƠNG 3 : GIỚI THIỆU VỀ MODULE SIM900 VÀ TẬP LỆNH AT
3.1 Giới thiệu về module 900HEARDER BOARD:
Sim900 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 GSM 850MHz, EGSM 900MHz,
DCS 1800MHz và PCS 1900MHz 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-S, cho bạn nhiều lợi ích từ kích thước nhỏ gọn (24x24 mm), đáp ứng những yêu cầu về không gian trong các ứng dụng M2M
3.1.1 Tính năng của SIM900HEARDER BOARD:
Nguồn cung cấp: 3.4V – 4.5V DC
• Điện năng tiêu thụ trong chế độ “ ngủ”: 1.5mA
• Tương thích với GSM phase 2/2+
• Tự động tìm băng tần phù hợp trong 4 băng tần GSM 850MHz, EGSM 900MHz, DCS 1800MHz và PCS 1900MHz Lớp GSM: Small MS
• Nhiệt độ hoạt động : -300C đến +800C
Trang 17• Tốc độ GPRS: download dat: 85.6kpbs; upload data: 42.8kpbs.
• SMS: Hỗ trợ chế độ MT, MO, CB, văn bản và PDU, lưu trữ trên Sim card
• FAX: Group3 Class 1, voice
• Tricodec: Half rate (HR); Full rate (FR); Enhanced Full rate (EFR)
• Hands-free operation (Echo suppression)
• AMR: Half rate (HR); Full rate (FR)
• Hỗ trợ đồng hồ thời gian thực, lập trình bằng tập lệnh AT thông qua chuẩn giao tiếp RS232
• Tích hợp SIM socket, SMA edge PCB connector và led status
• SIM900 hoạt động với mức điện áp từ 3.2V – 4.8V, yêu cầu dòng cung cấp 2A, nhưng nên sử dụng mạch nguồn xung 3A dùng IC ổn áp LM2576 hoặc mic29302 Giao diện bên ngoài SIM 3V/1.8V
• Kích thước: 24*24*3mm; Trong lượng: 3.4g
• Kiểm soát thông qua các lệnh AT, kết nối thông qua anten ngoài 50 Ohm hoặc đế anten
• Cổng truyền nhận dữ liệu: 2 cổng nối tiếp TXD và RXD
Trang 183.1.2 Sơ đồ chân và chức năng của từng chân sim 900HEARDER BOARD:
Hình 3.1: Sơ đồ chân Moudle sim900header board
Trang 19Bảng chức năng chân Module sim 900
Trang 20Mô tả chân module sim 900 hearder board
- Chân 1,3,5,7,9: được dành riêng để kết nối tới nguồn cung cấp, nguồn cung cấp của Sim0CZ là nguồn đơn VBAT là 3,4V – 4,5V
- Chân 2,4,6,8,10: các chân nối đất
- Chân 11 (VCHG): điện áp ngõ vào cho mạch sạc pin
- Chân 12 (ADC): Chân vào của bộ chuyển đổi tín hiệu tương tự sang số
- Chân 13 (TEMP-BAT): cung cấp điện áp vào cho mạch nạp
- Chân 14 (VRTC): điện áp cho bộ thời gian thực khi không có nguồn cung cấp
- Chân 15 (VCC-EXT): chân cấp nguồn 2.93V, được dùng trong chức năng bật hoặc tắt SIM
- Chân 16 (Netlight): đầu ra dùng để chỉ báo mạng kết nối được hệ thống
- Chân 17 (PWRKEY): chân này dùng để điều khiển hệ thống bật/tắt
- Chân 18,20,22,24,26 (KBC): bàn phím
- Chân 19 (STATUS): báo trạng thái hoạt động
- Chân 21,35(GPIO): Normal input/output port
- Chân 23 (BUZZER): đầu ra chuông
- Chân 25 (SIM VCC): nguồn cung cấp cho thẻ sim
- Chân 27 (SIM RST): chân reset cho mạch sim
- Chân 28,30,32,34,36 (KBR): chân kết nối với bàn phím
- Chân 29 (SIM DATA): đầu ra dữ liệu chân sim
- Chân 31 (SIM CLK): chân thời gian của sim
- Chân 33 (SIM PRESENCE): chân dò tìm mạng
- Chân 37 (DCD): đưa dữ liệu ra sóng mang
- Chân 38 (DISP CS): hiển thị giao diện
- Chân 40 (DISP CLK): hiển thị giao diện
Trang 21- Chân 42 (DISP DATA): hiển thị giao diện
- Chân 44 (DISP D/C): hiển thị giao diện
- Chân 46 (DISP RST): chân ra giao tiếp với màn hình
- Chân 39 (DTR): chân đầu cuối dữ liệu
- Chân 41 (RXD): Chân nhận dữ liệu
- Chân 43 (TXD): chân truyền dữ liệu
- Chân 45 (RTS): chân yêu cầu gửi dữ liệu
- Chân 47 (CTS): chân hủy gửi dữ liệu
- Chân 49 (RI): chỉ báo chuông
- Chân 48 (DBG RXD): đầu ra dùng để điều chỉnh trong nhận dữ liệu
- Chân 50 ( DBG TXD): ): đầu ra dùng để điều chỉnh trong truyền dữ liệu
- Chân 51,52 ( AGND): chân nối đất
- Chân 53 (SPK1P), 55 (SPK1N): chân output MIC
- Chân 54 (MIC1P) , 56 (M1C1N): chân input MIC
- Chân 57 (SPK2P), 59 (SPK2N): chân output MIC
- Chân 58 (MIC2P), 60 (MIC2N): chân input MIC
3.1.3 Các chế độ hoạt động của Module sim 900HEARDER BOARD:
GSM/GPRS SLEEP
Module sẽ tự động chuyển sang chế độ SLEEP nếu DTR được thiết lập mức cao và ở đó không có ngắt phần cứng như ngắt GPIO hoặc dữ liệu trên port nối tiếp Trong trường hợp này, dòng tiêu thụ của module sẽ giảm xuống mức thấp nhất.Trong suốt chế độ SLEEP, module vẫn có thể nhận gói tin nhắn hoặc SMS tự hệ thống
GSM IDLE: Phần mềm tích cực Module kết nối mạng GSM và module sẵn sàng gửi và nhận
Trang 22 GSM TALK: Kết nối vẫn tiếp tục diễn ra giữa 2 thuê bao, nhưng không có dữ liệuđược gửi hoặc nhận Trong trường hợp này, năng lượng tiêu thụ phụ thuộc vào thiết lập mạng và cấu hình GPRS.
GPRS STANDBY: Module sẵn sàng truyền dữ liệu GPRS, nhưng không có dữ liệu nào được gửi và nhận Trong trường hợp này, năng lượng tiêu thụ phụ thuộc vào thiết lập mạng và cấu hình GPRS
GPRS DATA: Xảy ra việc truyền dữ liệu GPRS Trong trường hợp này, năng lượng tiêu thụ liên quan tới việc thiết lập mạng ( mức điều khiển nguồn), tốc độ uplink/downlink và cấu hình GPRS (sử dụng thiết lập multi-slot)
3.2 Các tập lệnh AT test Module sim900HEARDER BOARD:
Các tập 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 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(liệt kê các tin nhắn SMS) và AT+CMGR( đọc tin nhắn SMS)
Ngoài ra, các modem GSM còn hỗ trợ một bộ lệnh AT mở rộng.Những lệnh AT mở rộngnày được định nghĩa trong các chuẩn của GSM Với các lệnh AT mở rộng này, bạn có thể làm một số thứ như 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ạ
Tắt ứng dụng GSM của module SIM900: Các cách được sử dụng để tắt ứng dụng GSM của module SIM900:
• Sử dụng chân PWRKEY
• Sử dụng lệnh AT
Trang 23• Module phát hiện nguồn cung cấp yếu
• Quá nhiệt
• Sử dụng chân PWRKEY để tắt ứng dụng GSM Có thể tắt ứng dụng GSM bằng việc kéo chân PWRKEY xuống mức thấp trong một khoảng thời gian ngắn
Module sẽ gửi thông báo: NORMAL POWER DOWN
3.2.1.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 ( trờng hợp này là modem )
TE : Terminal Equipment – thiết bị đầu cuối ( máy tính , hệ điều khiển )
Trang 24<m> : Giá trị đặt cho thanh ghi S <m> có thể tùy chỉnh, nếu thiếu, giá trị mặc định sẽ được đặt cho <m>
Cú pháp mở rộng:
Các lệnh có cú pháp này có thể hoạt động ở nhiều chế độ Các chế độ được liệt kê ở bảng bên dưới
Lệnh kiểm tra AT+<x>=? Liệt kê danh sách các tham số của lệnh và
các giá trị có thể thiết lập cho tham số
Lệnh đọc AT+<x>=? Cho biết giá trị hiện tại của các tham số
trong lệnh
Lệnh thiết lập AT+<x>=<…> Thiết lập các giá trị cho các tham số của
lệnh
Lệnh thực thi AT+<x> Đọc các tham số bất biến được tác độnh
bởi các tiến trình bên trong của module
Kết hợp các lệnh AT liên tiếp trên cùng một dòng lệnh: Chỉ cần đán “AT” hoặc
“at” một lần ở đầu dòng lệnh, các lệnh còn lại chỉ cần đánh lệnh, các lệnh cách nhau bởi dấu chấm phẩy Một dòng lệnh chỉ chấp nhận tối đa 256 ký tự.Nếu số ký tự nhiều hơn sẽ không có lệnh nào được thi hành
Nhập các lệnh AT liên tiếp trên các dòng lệnh khác nhau : Giữa các dòng lệnh sẻ có một đáp ứng Cần phải chờ đáp ứng này trước khi nhập lệnh AT tiếp theo
Trang 25CHƯƠNG 4 :GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC 16F877A
4.1.Tổng quan về PIC16F877A:
PIC16F877A thuộc họ PIC16Fxxx 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ớ chương trình 8K x 14 bit, bộ nhớ dữ liệu 368 x 8 byte RAM và bộ nhớ dữliệu EEPROM với dung lượng 256 x 8 byte
Số Port I/O là 5 với 33 pin I/O
Hình 4.1 : Sơ đồ chân và hình dạng của PIC16F877A (40 pin)
Trang 264.2 Sơ đồ khối vi xử lý PIC16F877A:
Hình 4.2 : Cấu trúc bên trong của PIC16F877ANhư đã nói ở trên, Vi điều khiển PIC có kiến trúc Harvard, trong đó CPU truy cậpchương trình và dữ liệu trên hai bus riêng biệt, nên làm tăng đáng kể băng thông so với
Trang 27kiến trúc Von Neumann, trong đó CPU truy cập chương trình và dữ liệu trên cùng mộtbus.
Việc tách riêng bộ nhớ chương trình và bộ nhớ dữ liệu cho phép số bit của từ lệnh
có thể khác với số bit của dữ liệu Ở PIC16F877A, từ lệnh dài 14 bit, từ dữ liệu 8 bit.PIC16F877A chứa một bộ ALU 8 bit và thanh ghi làm việc WR (Working Register).ALU là đơn vị tính toán số học và logic, nó thực hiện các phép tính số và đại số Booletrên thanh ghi làm việc WR và các thanh ghi dữ liệu ALU có thể thực hiện các phépcộng, trừ, dịch bit và các phép toán logic
4.3 Tổ chức bộ nhớ chính:
4.3.1 Bộ nhớ chương trình:
Bộ nhớ chương trình của Vi điều khiển PIC16F877A là bộ nhớ Flash, dung lượng
bộ nhớ 8K word (1 word = 14 bit) và được phân chia thành nhiều trang (từ page 0 đếnpage 3) Như vậy, bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì 1lệnh sau khi mã hóa sẽ có dung lượng 1 word = 14 bit)
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trìnhcần có dung lượng 13 bit (PC <12:0>)
Khi Vi điều khiển được Reset, bộ đếm chương trình sẽ chỉ đển địa chỉ 0000H(Resetvector) Khi có ngắt xảy ra, bộ đếm chương trinhfsex chỉ đến địa chỉ 0004H(Interruptvector)
Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi
bộ đếm chương trình
Trang 28Hình 4.3 : Bộ nhớ chương trình của PIC
4.3.2 Bộ nhớ dữ liệu:
Bộ nhớ dữ liệu của Pic là bộ nhớ EEPROM được chia ra làm nhiều bank.Đối vớiPIC16F877A, bộ nhớ dữ liệu chia làm 4 bank Mỗi bank có dung lượng 12 bytes, baogồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở cácvùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm
ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thường xuyên sử dụng (ví dụ nhưthanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện
Trang 29trong quá trình truy xuất và làm giảm bớt lệnh của chương trình.Sơ đồ cụ thể của bộ nhớ
dữ liệu PIC16F877A như sau:
Hình 4.4 : Bộ nhớ dữ liệu của PIC
Trang 30 TIMER0 :
Đây là 1 trong 3 bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số(prescaler)8 bit Cấu trúc của timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt timer0 sẽ xuất hiện khi timer0 bị tràn
Hình 4.5 : Sơ đồ khối timer0Muốn timer0 hoạt động ở chế độ timer ta clear bitTOSC(OPTION_REG<5>),Khi đó giá trị cuả thanh ghi TMR0 sẽ tăng theo từng chu kì xung đồng hồ (tần số vào timer0 bằng ¼ tần số oscillator) Khi giá trị thanh ghi TMR0 từ FFh trở về 00h, ngắt Timer0 xuất hiện một cách linh động Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG<5>) Khi đó xung tác động lên bộ đếm được lấy từ chân
RA4/TOCK1.Bit TOSE (OPTION_REG<4>) cho phép lựa chọn cạnh tác động vào bộ đếm Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnh xuống nếu TOSE=1 Khi thanh ghi TMR0 bi tràn, bit TMR0IF (INTCON<2>) sẽ được set Đây chính là cờ ngắt của Timer0, cờ ngắt này sẽ được xóa bằng chương trình trước khi bộ đếm bắt đầu thực hiện lại quá trình đếm.Ngắt timer0 không thể “đánh thức” vì điều khiển
từ chế độ sleep.Các lệnh tác động lên giá trị của thanh ghi TMR0 sẽ xóa chế độ hoạt độngcủa prescaler
Trang 31Khi đối tượng tác động là timer0, tác động lên giá trị thanh ghi TMR0 sẽ xóa presscaler nhưng không làm thay đổi đối tượng tác động của prescaler.Khi đối tượng tác động là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ ngừng tác vụ hổ trợ cho WDT.
- Các thanh ghi điều khiển liên quan đến Timer0 bao gồm :
• TMR0( địa chỉ 01h,101h): chứa giá trị đếm của timer0
• INTCON( địa chỉ 0Bh,8Bh,10Bh,18Bh): cho phép ngắt hoạt động(GIE vàPEIE)
• OPTION_REG( địa chỉ 81h,181h): điều khiển prescaler
TIMER 1:
Timer1 là bộ định thời 16 bit, giá trị của timer1 sẽ được lưu trong 2 thanh ghi (TMR1H:TMR1L).Cờ ngắt của timer1 là bitTMR1IF(PIR1<0>) Bit điều khiển của timer1 sẽ là TMR1IE(PIE<0>) Tương tự như timer0, timer1 cũng có 2 chế
độ hoạt động:chế độ định thời (timer) với xung kích là xung clock của oscillator(tần số của timer bằng ¼ tần số oscillator) và chế độ đếm (counter) với xung kích là xung phản các sự kiện cần đếm lấy từ bên ngoài thông qua chân
RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên) Việc lựa chọn xung tác
động(tương ứng với việc lựa chọn chế độ hoạt động là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON<1>) Sau đây là sơ đồ khối của timer1:
Hình 4.6:Sơ đồ khối timer1
- Các thanh ghi liên quan đến Timer1 bao gồm:
• INTCON( địa chỉ 0Bh,8Bh,10Bh,18Bh): cho phép ngắt hoạt động(GIE vàPEIE)
• PIR1( địa chỉ 0Ch): chứa cờ ngắt timer1(TMR1IF)
• PIE1( địa chỉ 8Ch): chứa cờ ngắt timer1(TMR1IE)
Trang 32• TMR1H(địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1.
• T1CON (địa chỉ 10h): xác lập thông số cho Timer1
TIMER2:
Timer2 là bộ định thời 8 bit và được hổ trợ bởi 2 bộ chia tần số prescaler và postscaler Thanh ghi chứa giá trị đếm của timer2 là TMR2.Bit cho phép ngắt timer2 tác động là TMR2ON(T2CON<2>) Cờ ngắt của timer2 là
bitTMR2IF(PIR1<1>) Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16
và được điều khiển bởi các bit T2CKPS1:T2CKPS0 (T2CON<1:0>))
Hình 4.7: sơ đồ khối của timer2Ngoài ra ngõ ra của timer2 còn được kết nối với khối SSP, do đó timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP
- Các thanh ghi liên quan đến timer2 bao gồm:
• INTCON( địa chỉ 0Bh,8Bh,10Bh,18Bh): cho phép ngắt hoạt động(GIE và PEIE)
• PIR1( địa chỉ 0Ch): chứa cờ ngắt timer2(TMR2IF)
• PIE1( địa chỉ 8Ch): chứa cờ ngắt timer2(TMR2IE)
• TMR2(địa chỉ 11h): chứa giá trị của Timer2
• T2CON(địa chỉ 12h): xác lập các thông số cho Timer2
• PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2
Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1
là bô5 đếm 16 bit (giá trị đếm tối đa là FFFFh).Timer0,Timer1 và Timer2 đều
có 2 chế dộ hoạt động là timer và counter Xung clock có tần số bằng ¼ tần số oscillator Xung tác động lên Timer0 được hổ trợ bởi prescaler và có thể được thiết lập ở nhiều chế độ khác nhau (tần số tác động, cạnh tác động ) trong khi
Trang 33các thông số của xung tác động lên timer1 là cố định Timer2 được hổ trợ bởi CCP, trong khi timer2 được kết nối với khối SSP.
4.5 ADC :
ADC (Analog Digital Converter) là bộ chuyển đổi tín hiệu giữa 2 dạng tương tự
và số PIC16F877A có 8 ngõ vào analog (RA4 :RA0 và RE2 :RE0) Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thế chuẩn được xác lập trên 2 chân RA2 và RA3 Kết quả chuyển đổi từ tín hiệu tương tự sang tín hiệu số là 10 bit số tương ứng và được lưu trong 2 thanh ghi
ADRESH:ADRESL
- Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:
• INTCON( địa chỉ 0Bh,8Bh,10Bh,18Bh): cho phép các ngắt (các bit GIE
và PEIE)
• PIR1( địa chỉ 0Ch): chứa cờ ngắt AD(bit ADIF)
• PIE1( địa chỉ 8Ch): chứa bit điều khiển AD(ADIE)
• ADRESH(địa chỉ 1Eh)và ADRESL(địa chỉ 9Eh): các thanh ghi chứa kết quả chuyển đổi AD
• ADCON0(địa chỉ 1Fh) và ADCON1(địa chỉ 9Fh): xác lập các thông số chuyển đổi AD
• PORTA(địa chỉ 05h) và TRISA(địa chỉ 85h): liên quan đến các ngõ vào analog ở PORTA
• PORTE(địa chỉ 09h) và TRISE(địa chỉ 89h):liên quan đến các ngõ vào analog ở PORTE
•
4.6 Giao tiếp nối tiếp:
USART (Universal Synchronous Asynchronous Receiver Transmitter) là một trong 2 chuẩn giao tiếp nối tiếp USART còn được gọi là giao diện giao tiếp nối tiếp SCI ( Serial Communication Interface ) Có thể sử dụng giao diện này cho các giao tiếp với các thiết bị ngoại vi, với các vi điều khiển khác hay với máy tính Các dạng của giao diện USART ngoại vi bao gồm:
o Bất động bộ ( Asynchronous )
o Đồng bộ_Master mode
o Đồng bộ_Slave mode
PIC16F877A được tích hợp sẵn bộ tạo tốc độ boud BRG ( Boud Rate
Genetator ) 8 bít dung cho giao diện USART BRG thực chất là một bộ đếm có thể được sử dụng cho cả hai dạng đồng bộ và bất đồng bộ và được điều khiển bởi thanh ghi PSBRG Ở dạng bất đồng bộ, SRG còn được điều khiển bởi bit
Trang 34BRGH ( TXSTA<2> ) Ở dạng đồng bộ tác động của bit BRGH được bỏ qua Tốc độ baud do BRG tạo ra được tính theo công thức sau:
Trong đó X là giá trị của thanh ghi RSBRG ( X là số nguyên và 0<X<255 )
- Các thanh ghi liên quan đến BRG bao gồm:
• TXSTA ( địa chỉ 98h ): chọn chế độ đồng bộ hay bất đồng bộ ( bit SINC )
và chọn mức tốc độ baud ( bit BRGH )
• RCSTA (địa chỉ 18h ): cho phép hoạt động cổng nối tiếp ( bit SPEN )
• RSBRG ( địa chỉ 99h ): quyết định tốc độ baud
- USART bất đồng bộ: Ở chế độ truyền này USART hoạt động theo chuẩn NRZ ( None – Return – to – Zero ), nghĩa là các bit truyền đi sẽ bao gồm 1 bit Start, 8 hay 9 bit dữ liệu ( thông thường là 8 bit ) và một bit Stop Bit LSB sẽ được truyền đi trước Các khối truyền và nhận data độc lập với nhau sẽ dung chung tần số tương ứng với tốc độ baud cho quá trình dịch dữ liệu ( tốc độ baud gấp 16 hay 64 lần tốc độ dịch dữ liệu tùy theo giá trị của bit BRGH ), và để đảm bảo tính hiệu quả của dữ liệu thì hai khối truyền và nhận phải dung chung một định dạng dữ liệu
- Các thanh ghi liên quan đến quá trình truyền dữ liệu bằng giao diệnUSART bất đồng bộ:
• Thanh ghi INTCON( địa chỉ 0Bh,8Bh,10Bh,18Bh): cho phép tất cả các ngắt
• Thanh ghiPIR1( địa chỉ 0Ch): chứa cờ hiệu TXIF
• Thanh ghiPIE1( địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE
• Thanh ghi RCSTA (địa chỉ 18h ): chứa bit cho phép hoạt cổng truyền dữ liệu (hai pin RC6/TX/CK và RC7/RX/DT)
• Thanh ghi TXREG (địa chỉ 19h): thanh ghi chứa dữ liệu cần truyển
• Thanh ghi TXSTA (địa chỉ 98h): xác lập các thông số cho giao diện
• Thanh ghi SPBRG (địa chỉ 99h): quyết định tốc độ boud
- USART đồng bộ: Giao diện USART đồng bộ được kích hoạt bằng cách set bit SYNC Cổng giao tiếp nối tiếp vẩn là hai chân RC7/RX/DT và RC6/TX/CK và được cho phép bằng cách set bit SPEN USART cho phép hai chế độ truyền nhận dữ liệu là Master mode và Slave mode Master mode được kích hoạt bằng cách set bit CSRC (TXSTA<7>), Slave mode được kích hoạt bằng cách clear bitCSRC Điểm khác biệt duy nhất của hai chế độ này là Master mode sẽ lấy xung clock đồng bộ từ bộ tạo xung boud BRG còn Slave modelấy xung clock đồng
bộ từ bên ngoài qua chân RC6/TX/CK Điều này cho phép Slave mode hoạt động ngay cả khi vi diều khiển đang ở chế độ sleep
- Các thanh ghi liên quan đến quá trình truyền dữ liệu bằng giao diện USART đồng bộMaster mode:
Trang 35• Thanh ghi INTCON( địa chỉ 0Bh,8Bh,10Bh,18Bh): cho phép tất cả các ngắt.
• Thanh ghi PIR1( địa chỉ 0Ch): chứa cờ hiệu TXIF
• Thanh ghi PIE1(địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE
• Thanh ghi RCSTA(địa chỉ 18h): chứa bit cho phép cổng truyền dữ liệu (hai pin RC6/TX/CK và RC7/RX/DT)
• Thanh ghi TXREG(địa chỉ 19h): thanh ghi chứa dữ liệu cần truyền
• Thanh ghi TXSTA(địa chỉ 98h): xác lập các thông số cho giao diện
• Thanh ghi SPBRG(địa chỉ 99h): quyết định tốc độ baud
4.7 Cổng giao tiếp song song PSP(PARALLEL SLAVE PORT):
Ngoài các cổng nối tiếp và các giao diện nối tiếp được trình bày ở phần trên, vi điều khiển píc16F877A còn được hỗ trợ một cổng giao tiếp song song và chuẩn giao tiếp songsong thông qua portd và porte, do cổng song song chỉ hoạt động ở chế độ slave mode nên
vi điều khiển khi giao tiếp qua giao diện này sẽ chịu sự điều khiển của thiết bị bên ngoài thông qua các pin của porte, trong khi dữ liệu sẽ được đọc hoặc ghi theo dạng bất đồng
bộ thông qua 8 pin của portd
- Các thanh ghi liên quan đến psp bao gồm:
• Thanh ghi portd (địa chỉ 08h): chứa dữ liệu cần đọc hoặc ghi
• Thanh ghi porte (địa chỉ 09h): chứa giá trị các pin porte
• Thanh ghi trise (địa chỉ 89h): chứa các bit điều khiển porte và psp
• Thanh ghi pir1 (địa chỉ 0ch): chứa cờ ngắt pspif
• Thanh ghi pie1 (địa chỉ 8ch): chứa bit cho phép ngắt psp
• Thanh ghi adcon1 (địa chỉ 9fh): điều khiển khối adc tại portc
4.8.Các đặc tính của OSCILLATOR:
- Pic16F877A có khả năng sử dụng một trong 4 loại oscillator, đó là :
• LP: (low power crystal)
• XT: thạch anh bình thường
• HS: (high-speed crystal)
• RC: (resistor/capacitor) dao động do mạch RC tạo ra đối với các loạioscillator LP, HS, XT, Oscillator được gắn vào vi điều khiển thông quacác pin osc1/clki và Osc2/Clko.Đối với các ứng dụng không cần các loạioscillator tốc độ cao, ta có thể sử dụng mạch dao động RC làm nguồncung cấp xung hoạt động cho vi điều khiển Tần số tạo ra phụ thuộc vàogiá trị điện áp, giá trị điện trở và tụ đện, bên cạnh đó là sự ảnh hưởng củacác yếu tố nhiệt độ, chất lượng của các linh kiện.Các linh kiện sử dụngcho mạch RC oscillator phải bảo đảm các giá trị sau:
• 3k<Rext<100 k; Cext>20 pf
Trang 36Có 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ệnnguồ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ìnhthườ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áctham 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êntrong 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 delaybằng 1024 chu kì xung của oscillator sau khi PWRT ngưng tác động (vi điềukhiển đã đủ điề kiện hoạt động) để đảm bảo sự ổn định của xung do oscillatorphá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ảng4V) 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 ápcung cấp cho vi điều khiển hạ xuống thấp hơn VBOR trong khoảng thời gianngắ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 giandelay( 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 đượckích hoạt khi vi điều khiển đủ điện áp hoạt động.Một điểm càn chú ý là khi BORreset được cho phép, PWRT cũng sẽ hoạt động bất chấp trạng thái của bitPWRT
- 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ướcsau:
Trang 37Đế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ềukhiể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 PIC16F877APIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghiINTCON(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áicủ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ểnkhác.Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghinà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 trongthanh 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 đượckết thúc bằng lệnh RETFIE.Khi chương trình ngắt được thực thi, bit GIE tự động đượcxó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ỏichươ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 đangxảy ra và phải được xóa bằng chương trình trước khi cho phép
Trang 38CHƯƠNG 5: THIẾT KẾ VÀ THI CÔNG MẠCH 5.1 THIẾT KẾ:
Trang 39Có 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.Sơ đồ nguyên lý các khối và tính toán lựa chọn linh kiện:
Trang 405.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,…
5.3.2 Khối giao tiếp Module sim900HEADER BOARD: