Kích thích Các đặc tính của kích thích Âm thanh - Biên, pha, phân cực
- Phổ
- Tốc độ truyền sóng Điện - Điện tích, dòng điện
- Điện thế, điện áp - Điện trƣờng
- Điện dẫn, hằng số điện môi
Từ - Từ trƣờng (biên, pha, phân cực, phổ) - Từ thông, cƣờng độ từ trƣờng
- Độ từ thẩm
Quang - Biên, pha, phân cực, phổ - Tốc độ truyền
- Hệ số hấp thụ, hệ số bức xạ Cơ - Vị trí - Lực, áp suất - Gia tốc, vận tốc - Ứng suất, độ cứng - Momen - Khối lƣợng, tỷ trọng - Vận tốc chất lƣu, độ nhớt Nhiệt - Nhiệt độ - Thông lƣợng
- Nhiệt dung, tỷ nhiệt
Bức xạ - Kiểu - Năng lƣợng - Cƣờng độ 3.1.2.3 Theo tính năng - Độ nhạy - Độ chính xác - Độ phân giải - Độ chọn lọc - Độ tuyến tính - Công suất tiêu thụ
- Dải tần
- Khả năng quá tải - Tốc độ đáp ứng - Độ ổn định - Tuổi thọ
- Điều kiện môi trƣờng - Kích thƣớc, trọng lƣợng
- Độ trễ
3.1.2.4 Theo phạm vi sử dụng
- Công nghiệp
- Nghiên cứu khoa học - Môi trƣờng, khí tƣợng - Thông tin, viễn thông - Nông nghiệp
- Dân dụng - Giao thông
- Vũ trụ - Quân sự
3.1.2.5 Theo thông số mô hình mạch thay thế
Các bộ cảm biến có thể phân chia theo thông số:
- Cảm biến tích cực (có nguồn) đầu ra là nguồn áp hoặc nguồn dòng.
- Cảm biến thụ động (không nguồn) đƣợc đặc trƣng bởi các thông số R,L,C,M… tuyến tính hoặc phi tuyến.
3.1.2.6 Theo dạng tín hiệu đầu ra
- Cảm biến có đầu ra là tín hiệu tƣơng tự - Cảm biến đầu ra là tín hiệu số
3.1.3 Các đặc trƣng cơ bản của bộ cảm biến 3.1.3.1 Hàm truyền 3.1.3.1 Hàm truyền
Quan hệ giữa đáp ứng và kích thích của bộ cảm biến có thể cho dƣới dạng bảng giá trị, đồ thị hoặc biếu thức toán học. Gọi x là kích thích, y là tín hiệu đáp ứng, hàm truyền cho ta quan hệ giữa đáp ứng và kích thích. Hàm truyền có thể đƣợc biểu diễn dƣới dạng tuyến tính, phi tuyến, logarit, hàm luỹ thừa hoặc hàm mũ
Quan hệ tuyến tính giữa đáp ứng và kích thích có dạng: y = ax + b
Ở đây a là hằng số bằng tín hiệu ra khi tín hiệu vào bằng không, b là độ nhạy, y là một trong các đặc trƣng của tín hiệu ra, có thể là biên độ, tần số hoặc pha tuỳ theo các tính chất của bộ cảm biến
Hàm truyền logarit có dạng: y = 1 + blnx Dạng mũ: y = aekx Dạng luỹ thừa: y = ao + a1xk với k là hằng số
Các bộ cảm biến phi tuyến không thể đƣợc đặc trƣng bằng các hàm truyền kể trên, trong trƣờng hợp này ta phải sử dụng các hàm gần đúng bậc cao.
Đối với hàm truyền phi tuyến hoặc hàm truyền ở chế độ động, độ nhạy b phải đƣợc định nghĩa theo biểu thức:
dx xo dy
b ( )
Trong nhiều trƣờng hợp ta có thể làm gần đúng hàm truyền phi tuyến bằng phƣơng pháp tuyến tính hoá từng đoạn
3.1.3.2 Độ lớn của tín hiệu vào
Là giá trị lớn nhất của tín hiệu đặt vào bộ cảm biến mà sai số không vƣợt quá ngƣỡng cho phép.
3.1.3.3 Sai số và độ chính xác
Các bộ cảm biến cũng nhƣ các dụng cụ đo lƣờng khác, ngoài đại lƣợng cần đo (cảm nhận) còn chịu tác động của nhiều đại lƣợng vật lý khác gây nên sai số giữa
giá trị đo đƣợc và giá trị thực của đại lƣợng cần đo. Gọi ∆x là độ lệch tuyệt đối giữa giá trị đo và giá trị thực x, sai số tƣơng đối của bộ cảm biến đƣợc tính bằng:
Δ% = .100
x x
Khi đánh giá sai số của cảm biến ta thƣờng phân chúng thành hai loại: sai số hệ thống và sai số ngấu nhiên.
Sai số hệ thống là sai số không phụ thuộc vào số lần đo, có giá trị không đổi hoặc thay đổi chậm theo thời gian đo và thêm vào một độ lệch không đổi giữa giá trị thực và giá trị đo đƣợc. Sai số hệ thống thƣờng do sự thiếu hiểu biết về hệ đo, do điều kiện sử dụng không tốt
Sai số ngẫu nhiên là sai số xuất hiện có độ lớn và chiều không xác định.
3.1.4 Cảm biến số nối tiếp và cách ghép nối
Nhìn chung cảm biến là một thiết bị đƣợc thiết kế thu thập thông tin về một đối tƣợng và chuyển đổi thành tín hiệu điện. Một cảm biến cổ điển có thể chia làm 4 phần nhƣ hình 3.2. Khối đầu tiên là khối cảm nhận (ví dụ, điện trở, điện dung, bán dẫn, vật liệu áp điện, photodiode, cầu điện trở, …). Tín hiệu từ phần cảm nhận thƣờng bị ảnh hƣởng bởi nhiễu. Do đó, cần có các kỹ thuật xử lý tín hiệu nhƣ khuếch đại, tuyến tính hoá, bù và lọc để giảm những tác động đó.
Nếu có nhiều thành phần cảm nhận đƣợc sử dụng trong cùng một chip, cần phải có bộ hợp kênh. Trong trƣờng hợp thu thập dữ liệu, tín hiệu từ cảm biến có dạng nối tiếp hay song song. Chức năng này có thể nhận ra bởi bộ biến đổi tƣơng tự-số hay tần số-số. Khối cuối cùng là bus giao tiếp cảm biến. Một hệ thống thu thập dữ liệu có thể có cấu hình dạng hình sao trong đó mỗi cảm biến đƣợc nối với một bộ hợp kênh số. Khi sử dụng số lƣợng lớn các cảm biến, tổng độ dài cáp và số
Thành phần cảm nhận
Xử lý tín hiệu Chuyển đổi A/D
Bus giao tiếp Máy tính
các kết nối tại bộ hợp kênh có thể rất lớn. Vì lý do đó cần có hệ thống tổ chức bus, nối tất cả các dữ liệu nguồn với các nơi nhận. Hệ thống bus điều khiển tất cả các dữ liệu truyền và đƣợc nối tới một giao tiếp phù hợp mà cảm biến có thể gửi dữ liệu tới máy tính.
Sơ đồ giao tiếp của cảm biến số nối tiếp với vi điều khiển đƣợc thể hiện ở hình 3.3. Một vi điều khiển thƣờng sử dụng xử lý tín hiệu số (ví dụ, lọc số), chuyển đổi tƣơng tự-số, tần số-mã, tính toán và các chức năng giao tiếp. Vi điều khiển có thể kết hợp hay trang bị với các giao tiếp chuẩn. Nhiều vi điều khiển có cả bus giao tiếp 2 dây I2C, có thể truyền với khoảng cách ngắn (vài mét) hay giao diện nối tiếp RS- 232/485 cho truyền khoảng cách dài.
Cảm biến số nối tiếp khác cảm biến tƣơng tự ở bus giao tiếp. Cảm biến tƣơng tự thƣờng đƣa tín hiệu tƣơng tự dạng dòng điện hay điện áp về vi điều khiển, sau đó vi điều khiển phải thực hiện việc chuyển đổi tƣơng tự-số rồi mới đọc dữ liệu. Còn trong cảm biến số nối tiếp, việc chuyển đổi tƣơng tự-số đƣợc thực hiện ngay trong cảm biến, giá trị chuyển đổi sau đó đƣợc đƣa về vi điều khiển dƣới dạng các xung nối tiếp thể hiện giá trị của cảm biến. Điều này sẽ khắc phục đƣợc nhiễu tác động lên bus giao tiếp.
Để gửi lệnh đọc dữ liệu cho cảm biến, vi điều khiển trƣớc tiên phải xác lập xung dữ liệu DATA, sau đó phát xung đồng bộ SCK. Việc gửi các xung dữ liệu đƣợc thực hiện cho tới khi bit cuối cùng của DATA đƣợc gửi đi. Khi đọc dữ liệu từ cảm biến thì vi điều khiển phải phát xung SCK trƣớc, sau đó đọc giá trị xung dữ
Vi điều khiển Cảm biến
GND Vcc
DATA
SCK
liệu dạng bit từ cảm biến. Các bit dữ liệu nhận đƣợc sau đó sẽ đƣợc kết hợp lại thành dữ liệu dạng byte
Thông thƣờng, để đọc dữ liệu từ cảm biến số nối tiếp theo các bƣớc sau:
- Vi điều khiển gửi tín hiệu Start cho cảm biến để bắt đầu quá trình đọc dữ liệu. Tín hiệu Start thƣờng là một chuỗi xung có định dạng
- Khi cảm biến nhận đƣợc tín hiệu này sẽ khởi tạo lại các tham số. Sau khi khởi tạo xong, cảm biến gửi lại thông báo ACK cho vi điều khiển.
- Vi điều khiển sau khi nhận đƣợc ACK từ cảm biến sẽ gửi lệnh đọc dữ liệu cho cảm biến.
- Cảm biến khi nhận đƣợc lệnh đọc dữ liệu từ vi điều khiển sẽ thu thập dữ liệu, biến đổi AD rồi truyền dữ liệu dạng số về cho vi điều khiển.
Các ƣu điểm của cảm biến số nối tiếp:
- Năng lƣợng tiêu thụ thấp: năng lƣợng tiêu thụ của cảm biến chủ yếu xảy ra lúc lấy thông tin và thực biến đổi A/D. Bằng việc cho phép/không cho phép đọc dữ liệu sẽ kiểm soát đƣợc năng lƣợng tiêu thụ. Khi cảm biến không làm việc thì năng lƣợng tiêu thụ là thấp nhất.
- Khả năng chống nhiễu lớn: cảm biến sử dụng đƣờng truyền số, do vậy rất khó bị ảnh hƣởng bởi nhiễu lúc truyền số liệu.
- Độ chính xác cao: Việc tự chuẩn hoá cho phép giảm sai số hệ thống. Việc sử dụng thuật toán thống kê và các thuật toán trung bình trọng số cho phép làm giảm sai số ngẫu nhiên gây nên bởi nhiễu.
DATA
SCK
- Giao tiếp đơn giản, chỉ dùng ít dây: cảm biến số truyền nối tiếp nên chỉ dùng ít dây để truyền dữ liệu. Thông thƣờng, để giao tiếp dữ liệu với vi điều khiển chỉ cần 2 đƣờng tín hiệu, một đƣờng là xung đồng bộ do vi điều khiển phát ra, một đƣờng là dữ liệu đọc về.
- Dải đo rộng. - Kích thƣớc nhỏ.
3.2 Ghép nối giữa CC1010 với các loại cảm biến: 3.2.1 Ghép nối với cảm biến áp suất MS5535: 3.2.1 Ghép nối với cảm biến áp suất MS5535:
Cảm biến áp suất MS5535 cũng là cảm biến số nối tiếp. Nó cũng có cùng nguyên tắc làm việc nhƣ cảm biến số nối tiếp đã giới thiệu ở trên. Tuy nhiên nó cũng có sự khác biệt. Đó là chân dữ liệu DATA có 2 chân là DIN và DOUT, đồng thời có thêm 1 chân Master Clock (MCLK) để làm xung nhịp cho MS5535. Sơ đồ giao tiếp giữa vi điều khiển CC1010 và MS5535 nhƣ sau:
Trong đó:
MCLK: Master Clock của MS5535 DIN: chân dữ liệu vào cho MS5535 DOUT: chân dữ liệu ra cho MS5535
MS-5535 MCLK DIN DOUT SCLK GND VDD VDD P3.4 GND P1.1 P0.3 P1.0 CC1010EM
Hình 3.5. Sơ đồ giao tiếp giữa MS-5535 và CC1010
SCLK: Serial Clock, đồng bộ quá trình đọc ghi dữ liệu cho MS5535
Trong sơ đồ trên hình 3.5, các cổng P0.3 đƣợc định nghĩa làm cổng vào dữ liệu, P1.0, P1.1, và P3.4 làm cổng ra dữ liệu. Để xử lý tình huống này, sử dụng các lệnh chƣơng trình nhƣ sau:
clr P1DIR.0 ;for SCLK MS5535
clr P1DIR.0 ;for DIN MS553
setb P0DIR.3 ;for DOUT MS553
clr P2DIR.3 ;for MSCLK MS5535
Trong đó ghi mức “1” ra cổng P0.0 các lệnh đƣợc hiểu nhƣ sau: clr P0DIR.0 ; đặt bit hƣớng là ghi ra
setb P0.0 ; xuất dữ liệu
Giá trị dữ liệu và tín hiệu trên các cổng vào ra này đƣợc xác định nhờ sử dụng các bộ định thời/đếm và chế độ ngắt của vi mạch CC1010.
Các bộ định thời, các ngắt, tín hiệu SCLK, MCLK và đầu đo MS-5535.
CC1010 có 4 timer/counter trong đó có 2 timer/counter theo chuẩn 8051, 2 Timer còn lại là timer 3 và timer 4, hoạt động ở chế độ timer hoặc chế độ điều chế độ rộng xung PWM (Pulse Width Modultion). Timer 2 /Timer 3 làm việc ở chế độ PWM khi thiết lập bit TCON2.M2/TCON2.M3. Các cổng P3.4 / P3.5 lúc này là các lối ra, thông qua việc lập các bit hƣớng P3DIR.4 / P3DIR.5. Chu kỳ PWM
TnPWM đối với timer n đƣợc tính là:
fsystem e Tn
TnPWM 255.( Pr 1)
Trong đó thời gian ở trạng thái cao Tnh là:
fsystem e Tn Tn
TnhPWM .( Pr 1)
Điều này có nghĩa là trong chế độ PWM, nếu Tn = 0 thì có mức thấp ở đầu ra và nếu Tn = 255 thì có mức cao. Trong sơ đồ hình 3.6, Timer2 ở chế độ PWM tạo
xung Master clock. cho MS-5535, tần số 29kHz. Tần số này phát trên cổng P3.4 bằng các lệnh:
orl TCON2,#0x01 ;đặt Timer 2 ở chế độ PWM mov T2Pre,#1 ;đặt chu kỳ PWM bằng 29kHz
mov T2,#128 ;xung vuông đối xứng setb TR2 ;bắt đầu phát xung
Làm tƣơng tự nhƣ vậy cũng thu đƣợc chuỗi xung SCLK phát trên cổng P1.0.
Chƣơng trình thực hiện
Chƣơng trình làm việc với MS5535 theo các bƣớc sau:
Bƣớc 1: Khởi tạo MS5535.
- Đặt bit hƣớng P3.4, P1.1, P1.0 là hƣớng xuất dữ liệu ra (output) tƣơng ứng là các chân MCLK, DIN và SCLK của MS5535.
- Đặt bit hƣớng P0.3 là hƣớng đọc dữ liệu vào tƣơng ứng (input) là chân DOUT của MS5535.
- Phát xung tần số 29 kHz ra cổng P3.4 để làm Master Clock cho MS5535. - Đọc các hệ số bù nhiệt của MS5535.
Bƣớc 2: Đọc các tham số áp suất và nhiệt độ của MS5535. - Reset MS5535.
- Phát lệnh cho MS5535. Lệnh ở đây có thể là đọc nhiệt độ hay áp suất. - Đọc giá trị trả về từ MS5535.
- Dựa trên giá trị trả về và các hệ số đọc đƣợc ở bƣớc 1, tính giá trị nhiệt độ và áp suất tƣơng ứng.
Chi tiết về làm việc với đầu đo áp suất MS5535 xin xem thêm phần tham khảo [13] và chƣơng trình ở phần phụ lục.
3.2.2 Ghép nối với cảm biến nhiệt độ dạng tƣơng tự
ADCi: ADC0, ADC1, ADC2
Các lối vào AD0, AD1, AD2 của CC1010 có điện áp tham chiếu chọn là 1,25V hoặc VDD, sử dụng chung một ADC trên cơ sở hợp kênh lối vào. Thí dụ, trong hệ thống nói trên, lối ra của đầu đo nhiệt độ đƣợc đƣa tới AD0 và chƣơng trình khởi tạo qúa trình chuyển đổi tƣơng tự số qua ADC phải tiến hành bằng lệnh:
mov ADCON,#0Ch
tức là chọn kênh AD0, điện áp tham chiếu 1,25V internal, bộ biến đổi ADC ở chế độ hoạt động (active ADC). Lệnh bắt đầu chuyển đổi ADC:
setb ADCRUN
Khi ADC thực hiện xong việc chuyển đổi tƣơng tự-số, bit ADCRUN đƣợc xóa tự động. Thời gian đợi chuyển đổi thể hiện qua việc quét bit ADCRUN:
jb ADCRUN,$
Giá trị chuyển đổi đọc ở 2 thanh ghi ADDATL(7:0) và ADDATH(9:8). Giá trị đọc đƣợc từ 0 đến 1023 tƣơng ứng với điện áp lối vào từ 0 vôn đến 1,25 vôn.
Chƣơng trình thực hiện
Chƣơng trình đọc giá trị ADC thực hiện theo các bƣớc sau:
Cảm biến CC1010
VDD VDD
GND GND
ADCi
Bƣớc 1: Khởi tạo ADC
- Đặt bộ biến đổi ADC về chế độ single. - Đặt điện áp tham chiếu là 1,25V
Bƣớc 2: Đọc giá trị ADC - Chọn kênh ADC - Ra lệnh đọc ADC
- Chờ cho ADC biến đổi xong - Đọc giá trị chuyển đổi
3.3 Kết luận:
Chức năng cảm nhận là một trong những chức năng chính của một nút mạng trong WSN. Do đó nút mạng cần phải có khả năng ghép nối đƣợc với nhiều loại cảm biến khác nhau.
Chƣơng III đã giới thiệu tổng quan về cảm biến nói chung và các bƣớc cụ thể để giao tiếp giữa vi điều khiển và cảm biến số nối tiếp. Đồng thời đã xây dựng đƣợc cách làm việc cụ thể với cảm biến áp suất MS5535 cũng là loại cảm biến số nối tiếp. Việc giao tiếp giữa cảm biến số nối tiếp đƣợc thực hiện qua các chân cổng của CC1010. Còn việc giao tiếp giữa cảm biến tƣơng tự với vi điều khiển đƣợc thực hiện qua 3 lối vào tƣơng tự của CC1010, đó là các chân AD0, AD1, AD2. Qua đó cho thấy rằng CC1010 hoàn toàn có thể làm việc đƣợc với nhiều loại cảm biến khác nhau, bao gồm cả cảm biến tƣơng tự và cảm biến số.