CHƯƠNG 2: XÂY DỰNG HỆ THỐNG VÀ PHÂN TÍCH LỰA CHỌN THIẾT BỊ
2.2. Lựa chọn cảm biến
2.3.1. Vi điều khiển cho các node
Hiện nay có rất nhiều loại và họ vi điều khiển trên thị trường có thể đáp ứng được tốt cho yêu cầu của đề tài. Sau đây là một số lựa chọn có thể sử dụng
để thực hiện đề tài:
a) Vi điều khiển 8051.
Ưu điểm.
- Giá thành thấp.
- Lập trình đơn giản.
- Nhiều tài liệu cùng phần mềm hỗ trợ.
Nhược điểm.
- Bộ nhớ RAM thấp.
- Ít chức năng hơn so với các dòng vi điều khiển khác.
- Thích hợp với các hệ thống công suất thấp.
b) Vi điều khiển AVR.
Ưu điểm.
- Tiêu thụ năng lượng thấp.
- Có khả năng Reset khi bật nguồn.
- Khả năng dò lỗi Brown out lập trình được.
- Có nguồn ngắt trong và ngắt ngoài.
- Tốc độ xử lý cao.
- AVR hỗ trợ đầy đủ về lập trình và phát triển các tool hệ thống, bao gồm bộ dịch C, micro assemblers( các đoạn chương trình lập sẵn viết bằng mã vi lệnh khi sử dụng chỉ việc gọi như gọi các hàm), bộ
mô phỏng/gỡ rối chương trình, In-Circuit Emulators(chạy giả lập chương trình trực tiếp trên phần cứng),và evaluation kits(những mạch thử nghiệm).
Nhược điểm.
- Giá thành cao.
c) Vi điều khiển PIC.
Ưu điểm.
- Có rất nhiều chủng loại để lựa chọn.
- Khả năng chống nhiễu tốt.
- Dùng trong công nghiệp sản xuất hàng loạt,giảm thiểu tối đa giá thành sản phẩm.
- Nhiều phần mềm lập trình và hỗ trợ nhiêu ngôn ngữ.
- Có tập lệnh rút gọn RISC.
Nhược điểm.
- Giá thành tương đối cao.
d) Nhận xét.
Từ các phân tích ở trên em đưa ra lựa chọn vi điều khiển PIC. Vi điều khiển này dễ dàng tìm kiếm trên thị trường, nhiều phần mềm hỗ trợ dễ dàng lập trình, phù hợp với kiến thức của em đã tích lũy được và thỏa mãn yêu cầu bài toán.
Giới thiệu họ vi điều khiển PIC16FxA của hãng Microchip.
Họ 16FxA bao gồm các vi điều khiển chính PIC16F873A, PIC16F874A, PIC16F876A và PIC16F877A. PIC16F873A và 16F876A là các chip có 28 chân, PIC16F874A có 40 chân và PIC16F877A có 44 chân. Sự khác nhau cơ bản của các chip trong họ 16FxA là:
PIC16F873A và PIC16F874A có bộ nhớ trong bằng một nửa so với PIC16F876A và PIC16F877A.
Các chip 28 chân tích hợp 3 cổng I/O, các chip 40/44 chân tích hợp 5 cổng I/O
Các chip 28 chân tích hợp 14 ngắt trong khi các chip 40/44 chân tích hợp
15 ngắt
Các chip 28 chân tích hợp 5 kênh vào tương tự trong các chip 40/44 chân tích hợp 8 kênhCổng PSP- Parallel Slave Port chỉ được tích hợp trong các chip 40//44 chân.
Bảng 2. 10: Bảng chip tích hợp của họ PIC16FxA.
Từ khoá PIC16F873A PIC16F874
A
PIC16F876A PIC16F877A
Tần số vận
hành
DC-20 MHz DC-20 MHz DC-20 MHz DC-20 MHz
Reset
(Delay)
POR, BOR (PWRT,OST)
Bộ nhớ
chương
trình
4K 4K 8K 8K
Bộ nhớ dữ
liệu
192 192 368 368
EEPROM 128 128 256 256
Ngắt 14 15 14 15
Cổng I/O Port A, B, C Port A, B, C,
D, ExBo
Port A, B, C Port A, B, C,
D, E
Timer 3 3 3 3
Capture/
Compare/
PWM
module
2 2 2 2
Truyền
thông nối
tiếp
MSSP, USART
MSSP, USART
MSSP, USART
MSSP, USART
Truyền
thông song
song
(không có) PSP (không có) PSP
Kênh vào 5 kênh 8 kênh 5 kênh 8 kênh
A/D
Bộ so sánh
tương tự
2 2 2 2
Instruction
Set
35 35 35 35
Chân 28-pin PDIP
28-pin SOIC 28-pin SSOP 28-pin QFN
40-pin PDIP 44-pin PLCC 44-pin TQFP 44-pin QFN
28-pin PDIP 28-pin SOIC 28-pin SSOP 28-pin QFN
28-pin PDIP 28-pin PLCC 28-pin TQFP 28-pin QFN
Hình 2. 14: PIC16F877A PDIP 40 chân
Đây là vi điều khiển PIC16F877A với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O.
Hình 2. 15: Sơ đồ khối của PIC16F877A
PIC16F877A là vi điều khiển với 8K bộ nhớ chương trình, chuẩn chân PDIP, gồm 5 cổng vào ra là các PORTA, B, C, D và E. PIC16F877A tích hợp sẵn 256 byte EEPROM và 8 kênh A/D 10 bit trong. PIC16F877A cho phép thực hiện 2 khả năng truyền thông nối tiếp và song song. Với các tính năng trên PIC16F877A hoàn toàn đáp ứng được yêu cầu nhiệm vụ đặt ra của các node.
Các đặc tính ngoại vi bao gồm các khối chức năng.
- Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
- Hai bộ Capture/so sánh/điều chế độ rộng xung.
Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI
và I2C, đây là các giao tiếp nối tiếp mềm (Usart Soft).
- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
- Đặc tính analog : 8 kênh chuyển đổi ADC 10 bit: RA0 -> RA3, RA5, RE0, RE1, RE2.
Giao tiếp nối tiếp USART.
USART (Universal Synchronous Asynchronous Receiver Transmitter) là một trong hai 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 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ị ngọai 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 ngọai vi bao gồm:
- Bất đồng bộ (Asynchronous).
- Đồng bộ_ Master mode.
- Đồng bộ_ Slave mode.
Hai chân dùng cho giao tiếp này là RC6/TX/CK và RC7/RX/DT, trong đó RC6/TX/CK dùng để truyền xung clock (baud rate) và RC7/RX/
DT dùng để truyền data. Trong trường hợp này ta phải set bit TRISC<7:6> và SPEN (RCSTA<7>) để cho phép giao diện USART.
PIC16F877A được tích hợp sẵn bộ tạo tốc độ baud BRG (Baud Rate Genetator) 8 bit dùng 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ộ, BRG còn được điều khiển bởi bit BRGH ( 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 SYNC) 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.
Hình 2. 16: Sơ đồ khối của khối truyền dữ liệu USART bất đồng bộ.
Hình 2. 17: Sơ đồ khối của khối nhận dữ liệu USART bất đồng bộ.
Nhận xét.
Dựa vào các phân tích ở trên và dựa vào yêu cầu đặt ra đối với đề tài thì lựa chọn sử dụng vi điều khiển PIC18F877A đối với các node là hoàn toàn phù hợp. Vừa tiết kiệm được chi phí vừa đáp ứng yêu cầu của
hệ thống.