a. Khái niệm bộ vi điều khiển, bộ vi xử lý, FPGA và ASIC:
Bộ điều khiển là thành phần trung tâm của một nút cảm biến không dây. Nó thu thập dữ liệu từ các cảm biến, xử lý dữ liệu này, quyết định thời gian và địa điểm gửi dữ liệu đến, nhận dữ liệu từ các nút cảm biến khác và quyết định hành vi của các cơ cấu chấp hành. Ngoài ra, nó còn thực hiện các chƣơng trình khác, sắp xếp các giao thức giao tiếp và xử lý tín hiệu theo
Bộ nhớ
Cảm biến/CCCH Thiết bị truyền thông
Nguồn cấp Bộ điều khiển
43
thời gian tới hạn và các chƣơng trình ứng dụng. Nó là khối xử lý trung tâm (CPU) của nút. Sự đa dạng trong nhiệm vụ xử lý tạo nên các kiến trúc khác nhau của bộ điều khiển dựa trên sự thoả hiệp giữa độ linh hoạt, đặc tính, hiệu quả năng lƣợng và giá thành.
Một giải pháp là sử dụng bộ vi xử lý cho mục đích chung, nhƣ máy tính để bàn. Đây là những bộ vi xử lý rất mạnh nhƣng tiêu thụ năng lƣợng quá lớn. Các bộ xử lý đơn giản hơn có thể tạo ra bằng cách sử dụng các hệ thống nhúng. Các bộ xử lý này thƣờng đƣợc gọi là các bộ vi điều khiển. Đặc điểm chính khiến các vi điều khiển đặc biệt phù hợp với các hệ thống nhúng là sự linh hoạt trong việc kết nối với các thiết bị khác (nhƣ bộ cảm biến), tập lệnh đƣợc thiết lập để xử lý tín hiệu theo thời gian tới hạn và năng lƣợng tiêu thụ thấp. Một điểm thuận tiện nữa là nó thƣờng có bộ nhớ đƣợc xây dựng bên trong. Ngoài ra, chúng có thể lập trình đƣợc nên rất linh hoạt. Các vi điều khiển cũng thích hợp cho WSN vì nó có thể giảm năng lƣợng tiêu thụ bằng các trạng thái ngủ, tức là chỉ có một số phần của bộ điều khiển hoạt động. Một trong những khác biệt chính với các hệ thống đa dụng là hệ vi điều khiển thƣờng không có đơn vị quản lý bộ nhớ nên nó phần nào hạn chế chức năng của bộ nhớ.
Trƣờng hợp riêng của bộ vi xử lý có thể lập trình đƣợc là bộ xử lý tín hiệu số (DSP -
Digital Signal Processors). Đây là một thiết bị chuyên dụng, đặc trƣng bởi cấu trúc và tập lệnh, dùng để xử lý một lƣợng lớn dữ liệu trong các ứng dụng xử lý tín hiệu. Trong nút cảm biến không dây, DSP nhƣ vậy có thể đƣợc sử dụng để xử lý dữ liệu từ một thiết bị truyền thông vô tuyến tƣơng tự đơn giản để tạo ra dữ liệu số. Trong giao tiếp không dây băng thông rộng, DSP thực sự phù hợp và có hiệu quả. Nhƣng trong các mạng cảm biến không dây, các yêu cầu về truyền thông không dây thƣờng khiêm tốn hơn nhiều (ví dụ nhƣ đơn giản, dễ điều chế, sử dụng hiệu quả trong phần cứng của thiết bị truyền thông) và các nhiệm vụ xử lý tín hiệu liên quan đến việc cảm nhận thực tế dữ liệu cũng không quá phức tạp. Do đó, những lợi thế của DSP thƣờng không cần thiết đối với nút WSN và nó thƣờng không đƣợc sử dụng.
Một lựa chọn khác cho bộ điều khiển xuất phát từ yêu cầu cao về tính linh hoạt của bộ vi điều khiển là sử dụng mảng cổng logic lập trình đƣợc (FPGA – Field Programmable Gate Arrays) hoặc mạch tích hợp chuyên dụng (ASIC - Application- Specific Integrated Circuits). FPGA có thể tái lập trình (hay tái cấu hình) theo yêu cầu. Tuy nhiên, điều này có thể mất thời gian và năng lƣợng. ASIC là một bộ xử lý chuyên dụng và ngƣời sử dụng có thể thiết kế để phù hợp với ứng dụng đã cho, ví dụ nhƣ các chuyển mạch và định tuyến tốc độ cao. Cân nhắc trong quá trình thiết kế ở đây là phải đảm bảo thoả hiệp giữa độ linh hoạt và hiệu quả năng lƣợng cũng nhƣ các đặc tính của thiết bị. Mặt khác, khi bộ vi điều khiển đòi hỏi phải phát triển phần mềm, ASIC sẽ cung cấp chức năng tƣơng tự trong phần cứng, điều này sẽ làm tăng giá thành của phần cứng.
Với một ứng dụng WSN chuyên dụng, nơi mà nhiệm vụ các nút cảm biến không thay đổi trong thời gian tồn tại và số lƣợng của chúng đủ lớn để đảm bảo sự phát triển trong ASIC thì chúng có thể có giải pháp mạnh hơn. Tuy nhiên, với công nghệ WSN hiện nay, các bộ vi điều khiển linh hoạt hơn và sử dụng đơn giản hơn đã tạo ra giải pháp đƣợc ƣa thích hơn.
Trong phần còn lại của cuốn sách này, giả sử WSN có kiến trúc dựa trên bộ vi điều khiển.
44
b. Một số ví dụ về các bộ vi điều khiển:
Các bộ vi điều khiển sử dụng trong một số mẫu nút cảm biến không dây là bộ xử lý Atmel hoặc MSP 430 của Texas Instrument. Trong các mẫu cũ hơn, bộ xử lý Intel StrongArm cũng đƣợc dùng nhƣng từ lâu nó không còn là lựa chọn trên thực tế. Tuy nhiên, các tính chất lý thuyết của các bộ xử lý và điều khiển này là tƣơng tự nhau, các kết luận từ các nghiên cứu gần nhất vẫn có giá trị.
Intel StrongARM: Intel StrongARM trong WSN là một bộ xử lý high-end khá tốt, nó nhƣ là một thiết bị cầm tay, giống các PDA. Model SA-1100 có lõi là máy tính có bộ lệnh rút gọn 32 bit (RISC - Reduced Instruction Set Computer) và tốc độ lên đến 206 MHz.
Texas Instruments MSP 430: Texas Instrument cung cấp một họ các bộ vi điều khiển dƣới tên gọi MSP 430. Không giống nhƣ StrongARM, nó rất rõ ràng là dùng cho các ứng dụng nhúng. Do đó, nó chạy trên lõi RISC 16 bit ở các tần số clock thấp hơn nhiều (đến 4 MHz) nhƣng kết hợp với một loạt các khả năng kết nối và một tập lệnh đi kèm để dễ xử lý với các kiểu ngoại vi khác nhau. Nó mô tả những nét nổi bật của một lƣợng các RAM trên chip khác nhau (kích thƣớc 2-10 kB), một số bộ chuyển đổi tƣơng tự/số 12 bit và đồng hồ thời gian thực. Hiển nhiên là nó đủ mạnh để xử lý các nhiệm vụ tính toán của các nút cảm biến không dây thông thƣờng.
Atmel ATmega: Atmel ATmega 128L là một bộ vi điều khiển 8 bit, cũng thƣờng dùng cho các ứng dụng nhúng, đƣợc trang bị các giao diện bên ngoài để dùng cho các thiết bị ngoại thông thƣờng.