CHƯƠNG 1 Xây dựng hệ thống giám sát mực nước, nhiệt độ và phát cảnh báo qua mạng tin nhắn SMSGSM SVTH Bùi Tấn Tài – CCVT03A i LỜI CẢM ƠN Em xin chân thành cảm ơn đến quý Thầy, Cô trường Cao đẳng CNTT Hữu Nghị Việt – Hàn, những người trực tiếp giảng dạy, truyền đạt những kiến thức bổ ích cho em, đó chính là những nền tảng cơ bản, là những hành trang vô cùng quý giá, là bước đầu tiên cho em bước vào sự nghiệp sau này trong tương lai Đặc biệt là thầy Trần Trung Tín, đã giúp đỡ em trong một tháng q.
Trang 1Trong quá trình làm đồ án, vì chưa có kinh nghiệm thực tế, chỉ dựa vào lý thuyết
đã học cùng với thời gian hạn hẹp nên bài báo cáo tốt nghiệp chắc chắn sẽ không tránh khỏi những sai sót Kính mong nhận được sự góp ý, chia sẽ từ quý Thầy, Cô và các bạn để kiến thức của em ngày càng hoàn thiện hơn và rút ra những kinh nghiệm bổ ích
có thể áp dụng vào thực tiễn một cách hiệu quả trong tương lai
Kính chúc thầy cô luôn vui vẻ, hạnh phúc, dồi dào sức khỏe và thành công trong công việc
Em xin chân thành cảm ơn
Đà Nẵng,ngày 29 tháng 05 năm 2013
Bùi Tấn Tài
Trang 2MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
THUẬT NGỮ VIẾT TẮT v
DANH MỤC BẢNG vii
DANH MỤC HÌNH viii
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ MẠNG GSM VÀ DỊCH VỤ NHẮN TIN NHẮN SMS 3
1.1 TỔNG QUÁT VỀ TIN NHẮN SMS 3
1.1.1 Giới thiệu về SMS 3
1.1.2 Cấu trúc của một tin nhắn SMS 5
1.1.3 Tin nhắn SMS chuỗi 5
1.1.4 SMS CENTER/SMSC 5
1.1.5 Nhắn tin SMS quốc tế 6
1.2 TỔNG QUÁT VỀ HỆ THỐNG THÔNG TIN DI ĐỘNG GSM 7
1.2.1 Giới thiệu về hệ thống thông tin di động GSM 7
1.2.2 Đặc điểm của hệ thống thông tin di động GSM 7
1.2.3 Cấu trúc của hệ thống thông tin di động GSM 8
1.2.3.1 Cấu trúc tổng quát 8
1.2.3.2 Các thành phần của hệ thống thông tin di động GSM 8
1.2.4 Sử phát triển của hệ thống thông tin di động ở Việt Nam 9
CHƯƠNG 2 VI ĐIỀU KHIỂN PIC16F877A 10
2.1 GIỚI THIỆU PIC (Programmable Intelligent Computer ) 10
2.1.1 Giới thiệu về vi điều khiển PIC 10
2.1.2 Ưu và nhược điểm của PIC 11
2.2GIỚI THIỆU TỔNG QUÁT VỀ PIC16F877A 11
2.2.1 Giới thiệu về PIC16F877A 11
2.2.2 Sơ đồ khối của PIC 16F877A 14
2.3 KHẢO SÁT SƠ ĐỒ CHÂN, CHỨC NĂNG TỪNG CHÂN 15
2.3.1 Sơ đồ chân vi điều khiển PIC16F877A 15
2.3.2 Tổ chức bộ nhớ 17
Trang 32.3.2.1 Bộ nhớ chương trình 17
2.3.2.2 Bộ nhớ dữ liệu 19
2.3.3 Các cổng I/O của PIC16F877A 19
2.4 BỘ CHUYỂN ĐỔI TƯƠNG TỰ - SỐ (ADC) 22
2.4.1 Kết quả chuyển đổi AD 22
2.4.2 Các bước chuyển đổi từ tương tự - số 23
2.4.3 Các thanh ghi ADC 24
2.5 BỘ SO SÁNH COMPARATOR 24
2.6 TRUYỀN THÔNG NỐI TIẾP EUART 26
2.6.1 Bộ EUSART hoạt động trong chế độ bất đồng bộ 26
2.6.1.1 Bộ phát bất đồng bộ EUSART 27
2.6.1.2 Bộ thu bất đồng bộ EUSART 28
2.6.1.3 Độ chính xác của xung clock với hoạt động không đồng bộ 30
2.6.2 Bộ EUSART hoạt động trong chế độ đồng bộ 32
2.7 HOẠT ĐỘNG ĐỊNH THỜI TIMER 32
2.7.1 Bộ định thời TIMER0 32
2.7.2 Bộ định thời TIMER1 34
2.7.3 Bộ định thời TIMER2 36
2.8 NGẮT (INTERRUPT) 37
CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG CẢM BIẾN VÀ PHÁT CẢNH BÁO MỰC NƯỚC, NHIỆT ĐỘ QUA MẠNG TIN NHẮN SMS 39
3.1 GIỚI THIỆU MODULE SIM900, TẬP LỆNH AT COMMAND 39
3.1.1 Giới thiệu module SIM900 39
3.1.2 Đặc điểm của module SIM900 40
3.1.3 Khảo sát sơ đồ chân và chức năng từng chân 42
3.1.4 Khảo sát tập lệnh AT của module SIM900 44
3.2 XÂY DỰNG HỆ THỐNG 46
3.3 THIẾT KẾ PHẦN CỨNG 47
3.3.1 Cảm biến 47
3.3.1.1 Led phát 47
3.3.1.2 Led thu 48
3.3.1.3 Cảm biến nhiệt độ LM35 48
Trang 43.3.2 Nguồn cung cấp cho hệ thống 49
3.3.3 Đèn báo 50
3.3.4 Vi điều khiển PIC 16F877A 51
3.3.5 Sơ đồ mạch 52
3.4 LƯU ĐỒ GIẢI THUẬT 53
3.4.1 Lưu đồ giải thuật tổng quát chương trình chính 53
3.4.2 Lưu đồ thuật toán chương trình con kiểm tra mực nước 54
3.4.3 Lưu đồ giải thuật chương trình con Cấu hình GSM 55
3.4.4 Lưu đồ giải thuật chương trình gửi tin nhắn 56
CHƯƠNG 4 KẾT QUẢ ĐẠT ĐƯỢC CỦA HỆ THỐNG 57
4.1 KẾT QUẢ ĐẠT ĐƯỢC 57
4.2 HÌNH ẢNH HOẠT ĐỘNG 57
KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 66
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 82
Trang 5THUẬT NGỮ VIẾT TẮT
Từ viết
Communications
Hệ thống thông tin di động số toàn cầu
gian
Evolution
Nâng cao tốc độ truyền dữ liệu
Trang 6MSC Mobile-services Switching Centrer Trung tâm chuyển mạch các
dịch vụ mạng
công cộng CSPDN Circuit Switched Public Data Network Mạng số liệu công cộng chuyển
mạch kênh
công cộng
ISDN Integrated Services Digital network Mạng số dịch vụ tích hợp
dưỡng
analog sang digital
USB Universal Serial Bus Cổng nối tiếp chung
Trang 8DANH MỤC HÌNH
2.10 Sơ đồ khối đơn giản của bộ Comparator 25
2.11 Các thanh ghi liên quan đến bộ so sánh 26
2.12 Sơ đồ khối bộ truyền dữ liệu EUSART bất đồng bộ 28
2.13 Các thanh ghi liên quan đến quá trình truyền bất đồng bộ 28
2.14 Sơ đồ khối bộ nhận dữ liệu EUSART bất đồng bộ 29
2.15 Các thanh ghi liên quan đến quá trình nhận dữ liệu bất đồng
bộ
30
2.16 Cấu tạo thanh ghi TXSTA 30
2.17 Cấu tạo thanh ghi RCSTA 31
2.18 sơ đồ khối bộ định thời Timer0 33
2.19 Các thanh ghi liên quan đến bộ định thời Timer0 34
2.20 T1CON: Thanh ghi điều khiển Timer1 35
2.22 ác thanh ghi liên quan đến bộ định thời Timer1 36
2.23 T2CON: Thanh ghi điều khiển Timer2 37
2.24 Sơ đồ khối của bộ định thời Timer2 37
2.25 Các thanh ghi liên quan đến bộ định thời Timer2 37
Trang 93.1 Module Sim900 42
4.10 Tin nhắn đã được gửi tới điện thoại 62
4.11 Tin nhắn đã được gửi tới điện thoại 63
Trang 10MỞ ĐẦU
Hệ thống giám sát mực nước từ xa thông qua tin nhắn SMS Là một ứng dụng của khoa học công nghệ đang được nghiên cứu và áp dụng để cảnh báo được sớm nhất mức nước lũ có thể gây thiệt hại về người, sơ tán di chuyển một cách nhanh nhất sớm nhất Hệ thống này nhỏ gọn và làm việc hiệu quả mà không cần phải bảo dưỡng nhiều
hệ thống sẽ được đặt những nơi nhạy cảm nhất như đầu nguồn con sông, ở đó hệ thống
sẽ đo và báo cáo mực nước qua tin nhắn SMS về cho các trạm theo dõi nhanh nhất và chính xác nhất Từ đó chúng ta có thể theo dõi mực nước và sơ tán được sớm khi có nguy cơ xảy ra lũ
Đồ án được nghiên cứu, khảo sát và thực hiện với mục đích áp dụng những kiến thức đã được học trong nhà trường để thiết kế, tạo ra một hệ thống giám sát mực nước, nhiệt độ từ xa bằng tin nhắn SMS hoàn chỉnh Hệ thống tích hợp module Sim900 và hệ thống cảm biến hồng ngoại Đối với hệ thống cảm biến, có các led cảm biến được đặt chiếu vào nhau, và phát dữ liệu khi có vật cản che những led cảm biến đó Qua xử lý,
dữ liệu sẽ được gửi về thiết bị đầu cuối (mobile) của người điều khiển để báo cho biết mực nước đang ở mức cảnh báo nào hay mực nước chỉ bình thường
Để thực hiện được các chức năng nêu trên, em đã tìm hiểu, nghiên cứu các vấn
đề có liên quan tới đề tài như : họ PIC16F877A, Module Sim900, các ngôn ngữ lập trình tương ứng như CCS, bộ lệnh AT Command dành cho Module, và các vấn đề khác liên quan tới đề tài
Ý nghĩa khoa học của hệ thống là hạn chế thiệt hại do lũ lụt gây ra, hạn chế những tổn thất nặng nề về người và của Không dừng lại ở đó, hệ thống sẽ dần dần phát triển qua nhiều mặt, ngoài cảnh báo lũ lụt ra còn cảnh báo để giảm nhẹ được nhiều thiệt hại khác do thiên tai gây ra như cháy rừng, bão, động đất, sóng thần,… Công nghệ là vô tận, biết vận dụng nó vào thực tiễn sẽ góp phần lợi ích to lớn đến xã hội đang ngày càng phát triển mạnh mẽ Vì vậy em đã chọn đề tài "Xây dựng
hệ thống giám sát mực nước, nhiệt độ và phát cảnh báo qua mạng tin nhắn SMS/GSM" nhằm phục vụ cho công tác phòng chống lũ lụt và giảm nhẹ thiệt hại về
người
Đề tài này được thực hiện gồm 4 chương :
Chương 1: Tổng quan về mạng GSM và dịch vụ nhắn tin qua mạng SMS
Chương 2: Vi điều khiển PIC16F877A
Trang 11Chương 3: Thiết kế và xây dựng hệ thống cảm biến và phát cảnh báo mực nước, nhiệt độ qua mạng tin nhắn SMS
Chương 4: Kết quả đạt được của hệ thống
Trang 12
CHƯƠNG 1 TỔNG QUAN VỀ MẠNG GSM VÀ DỊCH VỤ
NHẮN TIN NHẮN SMS
1.1 TỔNG QUÁT VỀ TIN NHẮN SMS
1.1.1 Giới thiệu về SMS
SMS là từ viết tắt của Short Message Service Đó là một công nghệ cho phép gửi
và nhận các tin nhắn giữa các điện thoại với nhau SMS xuất hiện đầu tiên ở Châu âu vào năm 1991 Ở thời điểm đó, nó bao gồm cả các chuẩn về GSM (Global System for Mobile Communications) Một thời gian sau đó, nó phát triển sang công nghệ wireless như CDMA và TDMA Các chuẩn GSM và SMS có nguồn gốc phát triển bởi ETSI ETSI là chữ viết tắt của European Telecommunications Standards Institute Ngày nay thì 3GPP (Third Generation Partnership Project) đang giữ vai trò kiểm soát về sự phát triển và duy trì các chuẩn GSM và SMS
Như đã nói ở trên về tên đầy đủ của SMS là Short Message Service, từ cụm từ
đó, có thể thấy được là dữ liệu có thể được lưu giữ bởi một tin nhắn SMS là rất giới hạn Một tin nhắn SMS có thể chứa tối đa là 140 byte (1120 bit) dữ liệu Vì vậy, một tin nhắn SMS chỉ có thể chứa :
+ 160 ký tự nếu như mã hóa ký tự 7 bit được sử dụng (mã hóa ký tự 7 bit thì phù hợp với mã hóa các ký tự latin chẳng hạn như các ký tự alphabet của tiếng Anh) + 70 ký tự nếu như mã hóa ký tự 16 bit Unicode UCS2 được sử dụng (các tin nhắn SMS không chứa các ký tự latin như ký tự chữ Trung Quốc phải sử dụng mã hóa
ký tự 16 bit)
Tin nhắn SMS dạng text hỗ trợ nhiều ngôn ngữ khác nhau Nó có thể hoạt động tốt với nhiều ngôn ngữ mà có hỗ trợ mã Unicode, bao gồm cả Arabic, Trung Quốc, Nhật bản và Hàn Quốc Bên cạnh gửi tin nhắn dạng text thì tin nhắn SMS còn có thể mang các dữ liệu dạng binary Nó còn cho phép gửi nhạc chuông, hình ảnh cùng nhiều tiện ích khác … tới một điện thoại khác
Một trong những ưu điểm nổi trội của SMS đó là nó được hỗ trợ bởi các điện thoại có sử dụng GSM hoàn toàn Hầu hết tất cả các tiện ích cộng thêm gồm cả dịch vụ gửi tin nhắn giá rẻ được cung cấp, sử dụng thông qua sóng mang wireless Không giống như SMS, các công nghệ mobile như WAP và mobile Java thì không được hỗ
Trang 13Sử dụng tin nhắn SMS ngày càng phát triển và trở lên rộng khắp :
- Các tin nhắn SMS có thể được gửi và đọc tại bất kỳ thời điểm nào
Ngày nay, hầu hết mọi người đều có điện thoại di động của riêng mình và mang
nó theo người hầu như cả ngày Với một điện thoại di động , bạn có thể gửi và đọc các tin nhắn SMS bất cứ lúc nào bạn muốn, sẽ không gặp khó khăn gì khi bạn đang ở trong văn phòng hay trên xe bus hay ở nhà…
- Tin nhắn SMS có thể được gửi tới các điện thoại mà tắt nguồn
Nếu như không chắc cho một cuộc gọi nào đó thì bạn có thể gửi một tin nhắn SMS đến bạn của bạn thậm chí khi người đó tắt nguồn máy điện thoại trong lúc bạn gửi tin nhắn đó Hệ thống SMS của mạng điện thoại sẽ lưu trữ tin nhắn đó rồi sau đó gửi nó tới người bạn đó khi điện thoại của người bạn này mở nguồn
- Các tin nhắn SMS ít gây phiền phức trong khi bạn vẫn có thể giữ liên lạc với người khác
Việc đọc và viết các tin nhắn SMS không gây ra ồn ào Trong khi đó, bạn phải chạy ra ngoài khỏi rạp hát, thự viện hay một nơi nào đó để thực hiện một cuộc điện thoại hay trả lời một cuộc gọi Bạn không cần phải làm như vậy nếu như tin nhắn SMS được sử dụng
Các điện thoại di động và chúng có thể được thay đổi giữa các sóng mang Wireless khác nhau
Tin nhắn SMS là một công nghệ rất thành công và trưởng thành Tất cả các điện thoại mobile ngày nay đều có hỗ trợ nó Bạn không chỉ có thể trao đổi các tin nhắn SMS đối với người sử dụng mobile ở cùng một nhà cung cấp dịch vụ mạng sóng mang wireless, mà đồng thời bạn cũng có thể trao đổi nó với người sử dụng khác ở các nhà cung cấp dịch vụ khác
- SMS là một công nghệ phù hợp với các ứng dụng Wireless sử dụng cùng với
nó
Nói như vậy là do:
Thứ nhất, tin nhắn SMS được hỗ trợ 100% bởi các điện thoại có sử dụng hệ thống GSM Xây dựng các ứng dụng wireless trên nền công nghệ SMS có thể phát huy tối đa những ứng dụng có thể dành cho người sử dụng
Thứ hai, các tin nhắn SMS còn tương thích với việc mang các dữ liệu binary bên cạnh gửi các text Nó có thể được sử dụng để gửi nhạc chuông, hình ảnh, hoạt họa
Trang 14Thứ ba, tin nhắn SMS hỗ trợ việc chi trả các dịch vụ trực tuyến
1.1.2 Cấu trúc của một tin nhắn SMS
Nội dung của một tin nhắn SMS được gửi đi sẽ được chia làm 5 phần như sau :
- Instructions to air interface : Chỉ thị dữ liệu kết nối với air interface (giao diện không khí)
- Instructions to SMSC : Chỉ thị dữ liệu kết nối với trung tâm tin nhắn SMSC (short message service centre)
- 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
1.1.3 Tin nhắn SMS chuỗ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àm việc như sau: điện thoại di động của người gử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ó khăn của SMS chuỗi là nó ít được hỗ trợ nhiều so với SMS ở các thiết bị có
sử dụng sóng wireless
1.1.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
Trang 15SMS này sẽ chuyển tin nhắn này tới đích (người nhận) Một tin nhắn SMS có thể phải
đi qua nhiều hơn một thực thể mạng (netwok) (chẳng hạn như SMSC và SMS gateway) trước khi đi tới đích thực sự của nó Nhiệm vụ duy nhất của một SMSC 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ó Nếu như máy điện thoại của người nhận không ở trạng thái nhận (bật nguồn) trong lúc gửi thì SMSC sẽ lưu trữ tin nhắn này Và khi máy điện thoại của người nhận mở nguồn thì nó sẽ gửi tin nhắn này tới người nhận
Thường thì một SMSC sẽ họat độ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ủa riê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
Bạn phải biết địa chỉ SMSC của hệ thống vận hành mạng wireless để sử dụng, tinh chỉnh chức năng tin nhắn SMS trên điện thoại của bạn Điển hình một địa chỉ SMSC là một số điện thoại thông thường ở hình th0ức, khuôn mẫu quốc tế Một điện thoại nên có một thực đơn chọn lựa để cấu hình địa chỉ SMSC Thông thường thì địa chỉ được điều chỉnh lại trong thẻ SIM bởi hệ thống mạng wireless Điều này có nghĩa
là bạn không cần phải làm bất cứ thay đổi nào cả
1.1.5 Nhắn tin SMS quốc tế
Các tin nhắn SMS giữa các nhà điều hành được chia ra làm hai hạng mục gồm tin nhắn SMS giữa các nhà điều hành cục bộ và tin nhắn SMS giữa các nhà điều hành quốc tế với nhau Tin nhắn SMS giữa các nhà điều hành cục bộ là tin nhắn mà được gửi giữa các nhà điều hành trong cùng một quốc gia còn tin nhắn SMS giữa các nhà điều hành quốc tế là tin nhắn SMS được gửi giữa các nhà điều hành mạng wireless ở những quốc gia khác nhau
Thường thì chi phí để gửi một tin nhắn SMS quốc tế thì cao hơn so với gửi trong nước Và chi phí gửi tin nhắn trong nội mạng thì ít hơn so với gửi cho mạng khác trong cùng một quốc gia <= chi phí cho việc gửi tin nhắn SMS quốc tế
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 161.2 TỔNG QUÁT VỀ HỆ THỐNG THÔNG TIN DI ĐỘNG GSM
1.2.1 Giới thiệu về hệ thống thông tin di động GSM
GSM (Global System for Mobile communication) là hệ thống thông tin di động
số toàn cầu, là công nghệ không dây thuộc thế hệ 2G(second generation) có cấu trúc mạng tế bào, cung cấp dịch vụ truyền giọng nói và chuyển giao dữ liệu chất lượng cao với các băng tần khác nhau: 400Mhz, 900Mhz, 1800Mhz và 1900Mhz, được tiêu chuẩn Viễn thông Châu Âu (ETSI) quy định
GSM là một hệ thống có cấu trúc mở nên hoàn toàn không phụ thuộc vào phần cứng, người ta có thể mua thiết bị từ nhiều hãng khác nhau
Do nó hầu như có mặt khắp mọi nơi trên thế giới nên khi các nhà cung cấp dịch
vụ thực hiện việc ký kết roaming với nhau nhờ đó mà thuê bao GSM có thể dễ dàng sử dụng máy điện thoại GSM của mình bất cứ nơi đâu
Mặt thuận lợi to lớn của hệ thống GSM là ngoài việc truyền âm thanh với chất lượng cao còn cho phép thuê bao sử dụng các cách giao tiếp khác rẻ tiền hơn đó là tin nhắn SMS Ngoài ra để tạo thuận lợi cho các nhà cung cấp dịch vụ thì hệ thống GSM được xây dựng trên cơ sở hệ thống mở nên nó dễ dàng kết nối các thiết bị khác nhau từ các nhà cung cấp thiết bị khác nhau
Nó cho phép nhà cung cấp dịch vụ đưa ra tính năng roaming cho thuê bao của mình với các mạng khác trên toàn thế giới Và hệ thống GSM cũng phát triển thêm các tính năng truyền dữ liệu như GPRS và sau này truyền với tốc độ cao hơn sử dụng EDGE
GSM hiện chiếm 85% thị trường di động với 2,5 tỷ thuê bao tại 218 quốc gia và vùng lãnh thổ Các mạng thông tin di động GSM cho phép có thể roaming với nhau do
đó những máy điện thoại di động GSM của các mạng GSM khác nhau ở có thể sử dụng được nhiều nơi trên thế giới
1.2.2 Đặc điểm của hệ thống thông tin di độ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ự
- Cho phé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
- Tính phủ sóng cao: Hệ thống GSM không chỉ cho phép chuyển giao trong toàn mạng mà còn chuyển giao giữa các mạng GSM trên toàn cầu mà không có một sự thay
Trang 17đổi, điều chỉnh nào Đây là một tính năng nổi bật nhất của hệ thống GSM(dịch vụ roaming)
- Sử dụng công nghệ phân chia theo thời gian TDM (Time division multiplexing)
để chia ra 8 kênh full rate hay 16 kênh haft rate
- Công suất phát của máy điện thoại được giới hạn tối đa là 2 watts đối với băng tần GSM 850/900Mhz và tối đa là 1 watts đối với băng tần GSM 1800/1900Mhz
- Mạng GSM sử dụng 2 kiểu mã hoá âm thanh để nén tín hiệu âm thanh 3,1khz
đó là mã hoá 6 và 13kbps gọi là Full rate (13kbps) và haft rate (6kbps)
1.2.3 Cấu trúc của hệ thống thông tin di động GSM
1.2.3.1 Cấu trúc tổng quát
Hình 1.1 Cấu trúc của hệ thống thông tin di động 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)
1.2.3.2 Các thành phần của hệ thống thông tin di động GSM
Hình 1.2 Các thành phần hệ thống GSM
Trang 18AUC : Trung tâm nhận thực
VLR : Bộ ghi định vị tạm trú
HLR : Bộ ghi định vị thường trú
EIR : Bộ ghi nhận dạng thiết bị
MSC : Trung tâm chuyển mạch các dịch vụ mạng
OSS : Phân hệ khai thác bảo dưỡng
PSPDN : Mạng số liệu công cộngchuyển mạch gói
CSPDN : Mạng số liệu công cộng chuyển mạch kênh
PSTN : Mạng điện thoại chuyển mạch công cộng
PLMN : Mạng di động mặt đất
ISDN : Mạng số dịch vụ tích hợp
OMC : Trung tâm khai thác và bảo dưỡng
1.2.4 Sử phát triển của hệ thống thông tin di động ở Việt Nam
Hệ thống GSM đã vào Việt Nam từ năm 1993 Hiện, ba nhà cung cấp di động hệ thống GSM lớn nhất của Việt Nam là VinaPhone, MobiFone và Viettel Mobile, cũng
là những nhà cung cấp chiếm thị phần nhiều nhất trên thị trường với số lượng thuê bao mới tăng chóng mặt trong thời gian vừa qua
Hiện nay có đến hơn 85% người dùng hiện nay đang là khách hàng của các nhà cung cấp dịch vụ theo hệ thống GSM
Cho tới thời điểm này, thị trường thông tin di động của Việt Nam đã có khoảng
70 triệu thuê bao di động Khi mà ba “đại gia” di động của Việt Nam là VinaPhone, MobiFone và Viettel đều tăng trưởng rất nóng với số lượng thuê bao mỗi ngày phát triển được lên tới hàng trăm ngàn thuê bao
Trang 19CHƯƠNG 2 VI ĐIỀU KHIỂN PIC16F877A
2.1 GIỚI THIỆU PIC (Programmable Intelligent Computer )
2.1.1 Giới thiệu về vi điều khiển PIC
Năm 1971 bộ vi xử lý đầu tiên ra đời đã mở ra một thời đại mới trong công nghệ điện tử và tin học, nó đã ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công nghệ Các
hệ thống được thiết kế dựa trên nền tảng của bộ vi xử lý (điển hình như PC) có khả năng mà các hệ thống điện tử thông thường không thể thực hiện được
Để thúc đẩy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dễ dàng lập trình và giá thành thấp Vi điều khiển tỏ ra rất hấp dẫn trong các ứng dụng điều khiển điện tử vì có kích thước nhỏ, tuy nhỏ nhưng chức năng cũng rất đa dạng, dễ dàng tích hợp vào trong hệ thống để điều khiển toàn hệ thống
PIC là dòng vi điều khiển do hãng MICROCHIP sản xuất với công nghệ hiện đại, phù hợp cho các ứng dụng đơn giản và hiện đại Đang được sử dụng phổ biến trong các ứng dụng dân dụng và công nghiệp bởi những đặc tính ưu việt của nó Hơn nữa việc lập trình cho PIC lại khá đơn giản bởi số mã lệnh ít, có nhiều công cụ hỗ trợ lập trình bằng ngôn ngữ cấp cao như C Hiện tại PIC có các dòng 8 bits và 16 bits Trong báo cáo này ta quan tâm đến PIC 8 bits cụ thể là PIC16F877A - một vi điều khiển với tất cả đặc trưng cơ bản của PIC
Các đặc điểm cơ bản của PIC có thể được tóm tắt như sau :
- PIC có nhiều chủng loại như PIC 8 bits (PIC10, PIC12, PIC16), hay PIC 16 bits (PIC24F, PIC24H, …)
- PIC có thể được lập trình bằng ngôn ngữ Assembler hoặc C
- Có 5 port I/O port A, port B, port C, port D, port E
- Có 3 timer: Timer0 là 8 bits, Timer1 là 16 bits, Timer2 là 16 bits
- Được tích hợp bộ chuyển đổi ADC
- PIC có thể sử dụng Timer để tạo xung PWM
- Phương thức cất giữ Sleep
- Có bản lựa chọn dao động
- Công suất tiêu thụ thấp
- Cổng phụ song song (PSP) với 8 bit mở rộng, với RD, WR và CS điều khiển
- Thực hiện truyền dữ liệu nối tiếp với máy tính thông qua cổng RS-232, mặt khác PIC còn có thể giao tiếp với máy tính thông qua cổng USB
Trang 202.1.2 Ưu và nhược điểm của PIC
Ta từng sử dụng họ 8051 và thấy được tính hữu dụng của nó qua các ứng dụng
cơ bản, đơn giản Tuy nhiên đối với các ứng dụng phức tạp, đòi hỏi tốc độ cao, mức độ tích hợp cao thì bản thân 8051 khó đáp ứng được ( hoặc ta phải đầu tư thêm chi phí cho việc xử lí ngoại vi,…) PIC thì khác, hãy xem bảng so sánh sau :
Bảng 2.1 Bảng so sánh chức năng của PIC16F877A và AT89C51
Khả năng tích hợp cao của PIC mang lại sự đơn giản nhưng hiệu quả trong thiết
kế và lập trình Tuy vậy PIC không phải là tất cả, khi làm một sản phẩm, tính kinh tế là quan trọng, sử dụng loại vi điều khiển nào mang lại hiệu quả cao nhất là tùy thuộc vào người thiết kế
2.2GIỚI THIỆU TỔNG QUÁT VỀ PIC16F877A
2.2.1 Giới thiệu về PIC16F877A
Khối xử lí trung tâm mà đóng vai trò chính là Pic 16F877A sẽ làm nhiệm vụ chính là tiếp nhận và xử lí các dữ liệu đến và đi một cách tự động Đề tài sử dụng PIC 16F877A vì những ưu điểm vượt trội của nó so với các vi điều khiển khác.Về mặt tính năng và công năng thì có thề xem PIC vượt trội hơn rất nhiều so với 89 với nhiều module được tích hợp sẵn như ADC 10 BIT, PWM 10 BIT, EEPROM 256 BYTE, COMPARATER, VERF COMPARATER…Về mặt giá cả thì có đôi chút chênh lệch như giá 1 con 89S52 khoảng 20.000 thì PIC 16F877A là 60.000 nhưng khi so sánh như thế thì ta nên xem lại phần linh kiện cho việc thiết kế mạch nếu như xài 89 muốn
Trang 21có ADC bạn phải mua con ADC chẳng hạn như ADC 0808 hay 0809 với giá vài chục ngàn và bộ opamp thì khi sử dung PIC nó đã tích hợp cho ta sẵn các module đó có nghĩa là bạn ko cần mua ADC, Opam, EPPROM vì PIC đã có sẵn trong nó Ngoài chúng ta sẽ gặp nhiều thuận lợi hơn trong thiết kế board, khi đó board mạch sẽ nhỏ gọn và đẹp hơn dễ thi công hơn rất nhiều, vì tính về giá cả tổng cộng cho đến lúc thành phẩm thì PIC có thể xem như rẻ hơn 89 Một điều đặc biệt nữa là tất cả các con PIC được sử dụng thì đều có chuẩn PI tức chuẩn công nghiệp thay vì chuẩn PC (chuẩn dân dụng)
Ngoài ra, PIC có ngôn ngữ hổ trợ cho việc lập trình ngoài ngôn ngữ Asembly còn
có ngôn ngữ C thì có thề sử dung CCS, HTPIC, MirkoBasic,… và còn nhiều chương trình khác nữa để hỗ trợ cho việc lập trình bên cạnh ngôn ngữ kinh điển là asmbler thì
sử dụng MPLAB IDE Bên cạnh đó với bề dày của sự phát triển lâu đời PIC đã tạo ra rất nhiều diễn đàn sôi nổi về PIC cả trong và ngoài nước Chính vì vậy chúng ta sẽ có nhiều thuận lợi trong việc dễ dàng tìm kiếm các thông tin lập trình cho các dòng PIC Dòng PIC 16F877A được chọn sử dụng trong đề tài là dòng phổ thông với các tính năng cơ bản và dễ cho việc sử dụng với:
- Tập lệnh để lập trình chỉ có 35 lệnh rất dễ nhớ và dễ học, có độ dài 16bit Mỗi lệnh đều được thực thi trong 1 chu kỳ xung clock Tốc độ hoạt động tối đa cho phép
- 3 bộ định thời Timer0, Timer1, Timer2
- 1 bộ định thời Timer1 là 16 bit có thể lập trình được
- 2 bộ định thời Timer0, Timer2 là 8 bit có thể hoạt động trong chế độ sleep với nguồn xung clock ngoài
- 2 bộ module CCP ( bao gồm Capture bắt giữ, Compare so sánh, PWM điều chế xung 10 bit) và 1 bộ module ECCP
- 1 bộ ADC với 10 kênh ADC 10 bit
- 2 bộ so sánh tương tự hoạt động độc lập
- Bộ giám sát định thời Watchdog timer
Trang 22- Cổng giao tiếp song song 8 bit với các tín hiệu điều khiển
- Chuẩn giao tiếp nối tiếp MSSP (SPI/I2C)
- Chuẩn giao tiếp nối tiếp USART (AUSART/EUSART) với 9bit địa chỉ
- Hỗ trợ giao tiếp I2C
- 15 nguồn ngắt
- Chế độ sleep tiết kiệm năng lượng
- Chức năng bảo mật chương trình
- Nạp chương trình bằng cổng nối tiếp ICSP( In Circuit Serial Programming) thông qua 2 chân
- Có thể hoạt động với nhiều dạng Oscillator khác nhau
- Tần số hoạt động tối đa là 64Mhz
- Bộ nhớ Flash với khả năng ghi xóa được 100.000 lần
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần
- Dữ liệu EEPROM có thể lưu trữ trên 40 năm
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm
Trang 232.2.2 Sơ đồ khối của PIC 16F877A
Hình 2.1 Sơ đồ khối Vi điều khiển Pic16F877A
Trang 242.3 KHẢO SÁT SƠ ĐỒ CHÂN, CHỨC NĂNG TỪNG CHÂN
2.3.1 Sơ đồ chân vi điều khiển PIC16F877A
Hình 2.2 Sơ đồ chân vi điều khiển Pic16F877A
Bảng 2.2 Bảng mô tả các chức năng từng chân của PIC
chân
Hướng Mô tả chức năng và các đặc tính
xung clock ngoài
với thạch anh hay cộng hưởng trong chế độ cộng hưởng của thạch anh
Port A là port vào ra hai chiều
RA0 có thể làm ngõ vào ADC hoặc tương tự
RA1có thể làm ngõ vào ADC hoặc
Trang 25RA5 có thể làm ngõ vào ADC hoặc tương tự
I/O
PortB là port vào ra hai chiều
Là chân vào ra hai chiều và có thể sử dụng làm chân ngắt ngoài
Chân vào ra hai chiều
Chân vào ra hai chiều
PORT C là cổng vào ra hai chiều
Là ngõ ra của Timer1 hoặc là ngõ vào xung clock của Timer1
Là ngõ ra của Timer1 hoặc ngõ vào Capture2, ngõ ra Capture hay ngõ ra PWM2
Là ngõ vào (hoặc ra) compare2, đồng thời là ngõ vào PWM1
Dữ liệu ngoài SPI (chế độ SPI)
Chân truyền không đồng bộ USART
Trang 26RC7/RX/DT 26 I/O hoặc đồng bộ với xung đồng hồ
Chân đồng bộ USART hoặc đồng bộ với dữ liệu
Là cổng vào ra hai chiều hoặc là cổng vào ra song song giao tiếp với bus của
Ghi chú: I = input ; O = output ; I/O = input/output ; P = power
2.3.2 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data Memory)
2.3.2.1 Bộ nhớ chương trình
Bộ nhớ chương trình của Vi điều khiển Pic 16F877A là bộ nhớ flash, dung lượng
bộ nhớ 64K word (1 word = 16bit)
Để mã hóa được địa chỉ của 64k word bộ nhớ chương trình, bộ đếm chương trình
có 21bit (PC<20:0>)
Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vertor) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0008h (Interrupt vertor) Bộ nhớ chương trình bao gồm bộ nhớ Stack và được địa chỉ hóa bởi
bộ đếm chương trình
Trang 27Hình 2.3 Bộ nhớ chương trình Pic 16F877A
Trang 282.3.2.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ới Pic 18F26K20 bộ nhớ dữ liệu được chia ra làm 16 bank
Hình 2.4 Địa chỉ thanh ghi của Pic 16F877A
2.3.3 Các cổng I/O của PIC16F877A
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương
tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Trang 29Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó
Vi điều khiển PIC16F877A có 4 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE
PORTA
PORTA (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, và đối với PORTE là TRISE) Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
Đặc tính này sẽ được trình bày cụ thể trong phần sau Các thanh ghi SFR liên quan đến PORTA bao gồm:
PORTA (địa chỉ 05) : chứa giá trị các pin trong port A
TRISA (địa chỉ 85h) : điều khiển xuất nhập
CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh
CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp
ADCON (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC
PORTB
PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISB (địa chỉ 93h) Bên cạnh đó một số chân của PORTB còn được sử dụng trong
Trang 30quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTB sẽ được trình bày cụ thể trong Phụ lục 1 Các thanh ghi SFR liên quan đến PORTB bao gồm:
PORTB (địa chỉ 06h) : chứa giá trị các pin trong PORTB
TRISB (địa chỉ 86h) : điều khiển xuất nhập
OPTON_REG (địa chỉ 81h) : điều khiển ngắt ngoại vi và bộ Timer 0
PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC
TRISC (địa chỉ 87h) : điều khiển xuất nhập
PORTD
PORTD (RPD) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISD Bên cạnh đó PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port) Các thanh ghi điều khiển liên quan đến PORTC:
PORTC (địa chỉ 08h) : chứa giá trị các pin trong PORTC
TRISC (địa chỉ 88h) : điều khiển xuất nhập
PORTE
PORTE (RPE) gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP
Các thanh ghi liên quan đến PORTE bao gồm:
+ PORTE (địa chỉ 09h) : chứa giá trị các chân trong PORTE
+ TRISE (địa chỉ 89h) : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP
+ ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển khối ADC
Trang 312.4 BỘ CHUYỂN ĐỔI TƯƠNG TỰ - SỐ (ADC)
ADECLARE (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự và số Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit
số tương ứng và được lưu trong hai thanh ghi ADRESH và ADRESL Khi không sử dụng bộ chuyển đổi ADECLARE, các thanh ghi này có thể được sử dụng như các thanh ghi thông thường khác Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL
Hình 2.5 Sơ đồ khối của AD
Hình 2.6 Chu kỳ xung clock và tần số làm việc của ADC
2.4.1 Kết quả chuyển đổi AD
Có 2 cách lưu kết quả của chuyển đổi 10bit A/D , bên trái hoặc bên phải Việc lựa chọn các cách lưu được điều khiển bởi bit ADFM và được minh họa cụ thể trong hình sau:
Trang 32Hình 2.7 Các cách lưu kết quả chuyển đổi 10bit A/D
2.4.2 Các bước chuyển đổi từ tương tự - số
Thiết lập cấu hình cho port:
- Ngắt kết nối các đầu ra của bộ điều khiển
- Thiết lập cấu hình các chân ở dạng analog
Thiết lập các thông số cho bộ chuyển đổi ADC
- Chọn xung clock cho bộ chuyển đổi ADC
- Chọn điện áp mẫu
- Chọn đầu vào cho bộ ADC
- Chọn dạng kết quả
- Chọn chế độ kết nối trễ
- Cho phép bộ chuyển đổi ADC hoạt động
Thiết lập các cờ ngắt cho bộ ADC
- Clear cờ ngắt ADC
- Mở chế độ ngắt của bộ ADC
- Mở ngắt ngoài
- Mở ngắt toàn bộ
Đợi cho tới khi quá trình lấy mẫu hoàn tất
Bắt đầu quá trình chuyển đổi bằng cách set bit GO/DONE
Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách:
- Kiểm tra bit GO/DONE
- Kiểm tra cờ ngắt ADC
Đọc kết quả chuyển đổi ADC
Xóa cờ ngắt ADC (tiếp tục thực hiện nếu cần tiếp tục chuyển đổi)
Trang 332.4.3 Các thanh ghi ADC
INTCON (địa chỉ 0Bh,8Bh,10Bh,18Bh) : Cho phép các ngắt
PIR1 (địa chỉ 0Ch) : Chứa cờ ngắt AD (bit ADIF)
PIR1 (địa chỉ 8Ch) : Chứa bit điều khiển AD (bit ADIE)
ADCON0 (địa chỉ 1Fh) : Thanh ghi điều khiển A/D 0
ADCON1 (địa chỉ 9Fh) : Thanh ghi điều khiển A/D 1
ADRESH (địa chỉ 1Eh): Thanh ghi kết quả mức cao ADC
ADRESL (địa chỉ 9Eh): Thanh ghi kết quả mức thấp ADC
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
Hình 2.8 Các thanh ghi liên quan đến bộ điều khiển A/D
2.5 BỘ SO SÁNH COMPARATOR
Bộ so sánh bao gồm hai bộ so sánh tín hiệu analog và được đặt ở PORTA Ngõ vào bộ so sánh là các chân RA3:RA0, ngõ ra là hai chân RA4 và RA5 Thanh ghi điều khiển bộ so sánh là CMCON Các bit CM2:CM0 trong thanh ghi CMCON đóng vai trò lựa chọn các chế độ hoạt động cho bộ Comparator
Cơ chế hoạt động của bộ Comparator như sau:
Tín hiệu analog ở chân V
Trang 34Hình 2.9 Nguyên lý hoạt động của một bộ so sánh đơn giản
Hình 2.10 Sơ đồ khối đơn giản của bộ Comparator
Các bit C2OUT và C1OUT (CMCON<7:6>) đóng vai trò ghi nhạn sự thay đổi tín hiệu analog so với điện áp đặt trước Các bit này cần được xử lý thích hợp bằng chương trình để ghi nhận sự thay đổi của tín hiệu ngõ vào Cờ ngắt của bộ so sánh là bit CMIF (thanh ghi PIR1) Cờ ngắt này phải được reset về 0 Bit điều khiển bộ so sánh là bit CMIE (thanh ghi PIE)
Các thanh ghi liên quan đén bộ so sánh bao gồm:
− CMCON (địa chỉ 9Ch) và CVRCON (địa chỉ 9Dh) : xác lập các thông số cho
bộ so sánh
− Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh) : chứa các bit cho phép các ngắt
− Thanh ghi PIR2 (địa chỉ 0Dh) : chứa cờ ngắt của bộ so sánh (CMIF)
− Thanh ghi PIE2 (địa chỉ 8Dh) : chứa cờ ngắt của bộ so sánh (CMIE)
Trang 35Hình 2.11 Các thanh ghi liên quan đến bộ so sánh
2.6 TRUYỀN THÔNG NỐI TIẾP EUART
Transmitter) là một bộ truyền thông nối tiếp Nó có tất cả các bộ phát xung clock, đăng ký thay đổi và bộ đệm dữ liệu cần thiết để thực hiện một đầu vào hay đầu ra dữ liệu nối tiếp chuyển giao độc lập của thiết bị thực hiện chương trình EUSART còn
được gọi là giao diện giao tiếp nối tiếp SCI (Serial Communication Interface)
Bộ EUSART là một trong hai hình thức giao tiếp nối tiếp vào ra.EUSART có thể được cấu hình như là một hệ thống bất đồng bộ hoạt động song công mà có thể giao tiếp với các thiết bị bên ngoài như là các thiết bị đầu cuối CRT và các máy tính cá nhân nó cũng có thể được cấu hình như là một hệ thống đồng bộ hoạt động bán công
mà có thể giao tiếp với các mạch tích hợp A/D hay D/A, các EEPROM nối tiếp….EUSART có thể được cấu hình để hoạt động một trong các chế độ sau:
Bất đồng bộ ( song công: Asynchronous )
Đồng bộ chủ ( bán công: Master mode )
Đồng bộ tớ ( bán công: Slave mode )
2.6.1 Bộ EUSART hoạt động trong chế độ bất đồng bộ
Ở chế độ truyền này EUSART hoạt động theo chuẩn NRZ 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à 1 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ẽ dùng 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 dùng chung một định dạng dữ liệu
Trang 36(None-Return-to-Bộ EUSART bất đồng bộ bao gồm các thành phần quan trọng sau:
Việc phát dữ liệu được phép bằng cách cho phép bit TXEN Việc phát dữ liệu thực sư không xảy ra cho đến khi thanh ghi TXREG được nạp dữ liệu và bộ BRG tạo
ra một clock dịch.Việc phát dữ liệu cũng có thể được bắt đầu bằng nạp thanh ghi TXREG và cho phép bit TXEN
Để có thể phát 9 bit dữ liệu , bit TX9 được đặt và 9 bit dữ liệu được ghi đến bit TX9D.Bit thứ 9 phải được ghi trước khi ghi 8 bit dữ liệu đến TXREG
Để thiết lập chế độ phát bất đồng bộ , các bước sau được thực hiện :
1) Thiết lập tốc độ Baud cho thanh ghi SPBRGH:SPBRG , nếu tốc độ baud được yêu cầu cao , đặt bit BRGH
2) Set chân điều khiển RX/DT và TX/CK bằng “1”
3) Cho phép port nối tiếp bất đồng bộ bằng cách xóa bit SYNC và bit SPEN 4) Nếu cần phát 9 bit dữ liệu , đặt bit TX9
5) Set bit điều khiển CKTXP nếu dữ liệu phát bị đảo ngược
6) Cho phép phát dữ liệu bằng cách đặt bit điều khiển TXEN, có thể ngắt bit TXIF
Trang 377) Nếu ngắt được yêu cầu , cho phép bit TXIE Trường hợp có sử dụng ngắt , phải bảo đảm rằng bit GIE và bit PEIE trong thanh ghi INTCON được đặt
8) Nếu cần phát 9 bit dữ liệu , bit thứ 9 sẽ phụ thuộc vào bit dữ liệu TX9D
9) Nhận 8 bit dữ liệu từ thanh ghi TXREG Có thể bắt đầu truyền dữ liệu
Hình 2.12 Sơ đồ khối bộ truyền dữ liệu EUSART bất đồng bộ
Hình 2.13 Các thanh ghi liên quan đến quá trình truyền bất đồng bộ
2.6.1.2 Bộ thu bất đồng bộ EUSART
Sơ đồ khối của bộ thu được chỉ ra ở hình vẽ 2.14 Dữ liệu nhận trên chân RC7/RX/DT và dồn vào khối khôi phục dữ liệu Khối khôi phục dữ liệu thật ra là dịch
dữ liệu tốc độ cao, hoạt động nhanh gấp 16 lần tốc độ Baud Một khi chế độ bất đồng
bộ được chọn thì việc tiếp nhận được phép bằng cách đặt Bit CREN (RCSTA<4>) Trung tâm của bộ nhận là thanh ghi dịch nhận RSR Sau khi lấy mẫu Bit Stop dữ liệu nhận trong RSR được truyền đến thanh ghi RCREG Nếu việc truyền hoàn tất thì Bit Cờ RCIF lên 1 Ngắt thật sự cho phép hoặc không cho phép bằng cách đặt hoặc xóa Bit RCIE Cờ RCIF chỉ là 1 Bit chỉ đọc và được xó bởi phần cứng Nó được xóa khi thanh ghi RCREG được đọc và hoàn toàn không có dữ liệu RCREG là 1 thanh ghi
bộ đệm đôi (Bởi vì nó cho 2 Byte dữ liệu có thể truyền và nhận đồng thời đến RCREG
Trang 38FIFO và Byte thứ 3 bắt đầu được dịch chuyển đến thanh ghi RSR) Khi phát hiện ra Bit Stop của Byte thừ 3 này, Nếu thanh ghi RCREG vẫn còn đầy thì Bit bào lỗi trànOERR(RCSTA<1>), sẽ lên 1 Những dữ liệu trong RSR sẽ mất đi Và thanh ghi RCREG có thể được đọc 2 lần để lấy lại 2 Byte trong FIFO Bit báo tràn OERR phải được xóa trong phần mềm
Để thiết lập chế độ thu bất đồng bộ, các bước sau được yêu cầu :
1 Khởi tạo thanh ghi SPBRGH:SPBRG, BRGH và BRG16 bit cho việc chọn sai
số tốc độ Baud
2 Set chân điều khiển RX/DT và TX/CK bằng “1”
3 Cho phép nhận qua Port nối tiếp bất đồng bộ bằng cách xóa Bit SYNC và cho Bit SPEN lên 1
4 Nếu ngắt xảy ra thì set Bit RCIE và Nếu sử dụng ngắt thì set bit GIE và PEIE của thanh ghi INTCON
5 Nếu nhận 9-Bit dữ liệu thì set Bit RX9
6 Set bit CKTXP nếu dữ liệu nhận bị đảo ngược
7 Cho phép nhận dữ liệu bằng cách set Bit CREN
8 Sau khi dữ liệu được nhận , Bit Cờ ngắt RCIF sẽ được set và cờ ngắt được kích hoạt (nếu bit RCIE được set)
9 Đọc nội dung thanh ghi RCSTA để nhận bit dữ liệu thứ 9 và xác định các lỗi xảy trong quá trình thu dữ liệu
10 Nhận 8 bit dữ liệu thu được bằng cách đọc nội dung thanh ghi RCREG
11 Nếu xuất hiện lỗi trong quá trình nhận thì xóa lỗi bằng cách xóa BitCREN
Hình 2.14 Sơ đồ khối bộ nhận dữ liệu EUSART bất đồng bộ
Trang 39Hình 2.15 Các thanh ghi liên quan đến quá trình nhận dữ liệu bất đồng bộ
2.6.1.3 Độ chính xác của xung clock với hoạt động không đồng bộ
Hình 2.16 Cấu tạo thanh ghi TXSTA
Bit 7 CSRC : bit chọn nguồn xung
Chế độ bất đồng bộ : không cần thiết
Chế độ đồng bộ :
+ 1 = chế độ chủ (phát xung dao động nội từ BRG)
+ 0 = chế độ tớ ( xung dao dộng ngoại )
Bit 6 TX9 : bit cho phép truyền 9 bit
+ 1 = chọn chế độ truyền 9 bit
+ 1 = chọn chế độ truyền 8 bit
Bit 5 TXEN : bit cho phép truyền
+ 1 = cho phép truyền
+ 0 = không cho phép truyền
Bit 4 SYNC : bit chọn chế độ USART
Trang 40Bit 0 TX9D : bit thứ 9 của truyền dữ liệu, có thể là bit Parity
Hình 2.17 Cấu tạo thanh ghi RCSTA
Bit 7 SPEN : bit cho phép Serial Port
+ 1 = cho phép Serial Port (tức là cấu hình cho RC7/RX/DT và
RC6/TX/CK như chân Serial Port)
+ 1 = cho phép nhận tiếp đến khi bit cho phép CREN bị xóa
+ 0 = không cho phép nhận tiếp