Để dễ dàng và thuận tiện cho việc phát triển các ứng dụng sử dụng CC1010, hãng Chipcon cũng cung cấp module CC1010 EM (Evaluation module), trên đó có tích hợp hầu hết các linh kiện cần cho việc xây dựng một nút mạng nhƣ:
- VĐK CC1010
- Dao động thạch anh
- Antena
- Một cảm biến nhiệt độ đƣa vào chân AD1
- Các chân cổng
Việc xây dựng thử nghiệm trong khuôn khổ luận văn cũng dùng module CC1010EM. Việc thử nghiệm sau này đã cho thấy rằng module này đã đáp ứng
đƣợc các chức năng cơ bản nút mạng đó là chức năng mạng và chức năng cảm nhận. Tuy nhiên, giá thành module này còn đắt (khoảng 150USD) trong khi giá thành VĐK CC1010 rất rẻ (khoảng 10USD) nên việc nghiên cứu chế tạo module này ở Việt Nam để hạ giá thành là rất cần thiết.
2.3 Kết luận
Chƣơng này đã giới thiệu các một số loại VĐK có thể đƣợc dùng làm nút mạng trong WSN theo các tiêu chí: năng lƣợng tiêu thụ thấp, tính mềm dẻo, sức mạnh của nút mạng, tính bảo mật, truyền thông, khả năng tính toán, kích thƣớc của nút mạng. Từ các chỉ tiêu đánh giá đó đã chọn đƣợc loại vi điều khiển CC1010 của hãng Chipcon (Nauy) để làm nút mạng. Đây là loại vi điều khiển tƣơng thích họ 8051 thông dụng, sử dụng ngôn ngữ lập trình C và chƣơng trình dịch Keil µVision2.0. Bên cạnh đó Chipcon cũng cung cấp các thƣ viện làm việc với CC1010 làm cho việc viết chƣơng trình trở nên dễ dàng và thuận tiện.
CHƢƠNG 3
CÁC PHƢƠNG PHÁP GHÉP NỐI VỚI CÁC LOẠI ĐẦU ĐO VÀ CHƢƠNG TRÌNH THỰC HIỆN CHỨC NĂNG THU THẬP DỮ LIỆU
3.1 Giới thiệu cảm biến 3.1.1 Khái niệm
Trong các hệ thống đo lƣờng điều khiển mọi quá trình đều đƣợc đặc trƣng bởi các trạng thái nhƣ nhiệt độ, áp suất, tốc độ, momen…Các biến trạng thái này thƣờng là các đại lƣợng không điện. Nhằm mục đích điều chỉnh, điều khiển các quá trình ta cần thu thập thông tin, đo đạc, theo dõi sự biến thiên của các biến trạng thái của quá trình. Các bộ cảm biến thực hiện chức năng này, chúng thu nhận, đáp ứng với các tín hiệu và kích thích, là tai mắt của các hoạt động khoa học và công nghệ của con ngƣời.
Các bộ cảm biến thƣờng đƣợc định nghĩa theo nghĩa rộng là thiết bị cảm nhận và đáp ứng với các tín hiệu và kích thích.
Trong mô hình mạch, ta có thể coi bộ cảm biến nhƣ một mạng hai cửa, trong đó cửa vào là biến trạng thái cần đo x và cửa ra là đáp ứng y của bộ cảm biến với kích thích đầu vào x.
Phƣơng trình mô tả quan hệ giữa đáp ứng y và kích thích x của bộ cảm biến có dạng:
y = f(x)
Trong các hệ thống đo lƣờng - điều khiển hiện đại, quá trình thu thập và xử lý tín hiệu thƣờng do máy tính đảm nhiệm.
Bộ cảm biến x
kích thích
y đáp ứng
Trong sơ đồ hình 3.1, quá trình (đối tƣợng) đƣợc đặc trƣng bằng các biến trạng thái và đƣợc các bộ cảm biến thu nhận. Đầu ra của bộ vi xử lý đƣợc phối ghép với cơ cấu chấp hành nhằm tác động lên quá trình (đối tƣợng). Đây là sơ đồ điều khiển tự động (qúa trình), trong đó bộ cảm biến đóng vai trò cảm nhận, đo đạc và đánh giá các thông số của hệ thống. Bộ vi xử lý làm nhiệm vụ xử lý thông tin và đƣa ra tín hiệu điều khiển quá trình.
3.1.2 Phân loại các bộ cảm biến
3.1.2.1 Theo nguyên lý chuyển đổi giữa đáp ứng và kích thích
Hiện tƣợng Chuyển đổi đáp ứng và kích thích Vật lý Nhiệt điện Quang điện Quang từ Điện từ Quang đàn hồi Từ điện Nhiệt từ Nhiệt quang Hoá học Biến đổi hoá học
Cơ cấu
chấp hành Bộ cảm biến Chƣơng trình
Bộ vi xử lý
Biến đổi điện hoá Phân tích phổ Sinh học Biến đổi sinh hoá
Biến đổi vật lý
Hiệu ứng trên cơ thể sống Phân tích phổ
3.1.2.2 Theo dạng kích thích
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)