Thiết bị nhúng trong mạng lưới vạn vật kết nối

Máy tính công nghiệp Advantech hoạt động bền bỉ 24/7/365

Thiết bị nhúng trong mạng lưới vạn vật kết nối

Thiết bị nhúng
Có rất nhiều định nghĩa của các “Things” trong Internet of Things. Thông thường, chúng là các thiết bị nhúng hoặc hệ thống nhúng với chức năng truyền tải và tiếp nhận thông tin từ mạng máy tính.

Hệ thống nhúng là gì?
Hệ thống nhúng được xây dựng xung quanh một vi điều khiển MicroController Unit (MCUs), chạy các phần mềm với vùng phủ bộ nhớ nhỏ. Một số thiết bị Linux và Android cũng có thể gọi là nhúng, nhưng với khả năng tính toán nhiều tác vụ, tùy chỉnh ứng dụng, dữ liệu... chúng chỉ được coi là semi embedded. Đây là lý do MCU-based thường để nói về Deeply Embedded System (DES), đây mới là các Things trong Internets of Things




Các loại MCUs kiến trúc 32- bit đã rẻ hơn rất nhiều trong những năm trở lại đây trở nên rất tiềm năng cho các nhà phát triển IoTs.
Đối với 8 và 16- bit MCUs, ứng dụng thường dùng foreground/ background (là super-loop). Nhưng với sự giảm giá mạnh của 32-bit MCUs, Real-time Operating System (RTOs) là một lựa chọn tốt, cho phép linh hoạt hơn trong việc xây dựng ứng dụng. Một RTOs hoàn chỉnh bao gồm một nhân Kernel, GUI, các files hệ thống, USB, chức năng kết nối mạng… tất cả có thể gói gọn trong dung lượng chỉ 1MB.

Với một RTO, kiến trúc phần mềm trở nên linh hoạt hơn rất nhiều. Việc gỡ lỗi và phát triển thêm tính năng trở nên rất đơn giản, cũng rất dễ dàng để nâng cấp firmware. Tóm lại, rất lý tưởng để dùng kiến trúc phần cứng 32-bit cho RTOs

Vi xử lý của thiết bị nhúng
Hiện giờ, bộ vi xử lý được sử dụng nhiều nhất là của Intel và ARM:

Intel đưa ra nền tảng CPU nhúng Atom để nhắm vào thị trường Internet công nghiệp. Intel Quark mới ra đời lại tập chung vào sâu hơn trong thị trường tiêu dùng.

Các bộ vi xử lý ARM bao gồm kiến trúc 32 bit: Chip ARM là một trong số các loại chip tiêu hao điện năng thấp và các công đoạn khởi động hệ thống cũng đơn giản hơn của Intel.

Người ta tin rằng phần cứng IoT nên có giá thành rẻ, như vậy sẽ dễ dàng hơn trong việc “phủ sóng” các thiết bị IoTs. Tuy nhiên giá thành không phải yếu tố quyết định trong việc lựa chọn thiết bị, mà là chức chức năng và vị trí của chúng.

Đầu tiên, TCP/IP không phải chỉ là vài dòng lệnh. Tất nhiên bạn có thể TCP/IP mã nguồn mở với 32k code space nhưng chúng vẫn dùng các thư viện chuẩn TCP/IP, đây có thể là vấn đề vì IOTs cần các thiết bị có thể hoạt động trên đa số các giao thức mạng.

Thứ hai, TCP cần bộ nhớ đệm để làm việc hiệu quả, vì thế nó cần nhiều ram. Và nếu bạn cần dùng Java, thì thiết bị IoT sẽ yêu cần RTOS như một nền tảng để chạy máy ảo Java (JVM). Tất cả các yếu tố này sẽ tăng giá thành thiết bị IoT lên.

Lựa chọn một MCU
  • Chọn MCU nào khi phát triển thiết bị IoT
  • Với vi xử lý ARM, Cortex-M0 là lựa chọn hoàn hảo. Trong khi ARM Cortex –M3/M4 hoặc Cortex-A có thể làm Gateway với khả năng xử lý dữ liệu tốt.
  • Với các chip xử lý khác, nên lựa chọn Renesas RL78 hoặc RX100 cho thiết bị và Renesas RX600 hoặc RZ cho Gateway
  • Các vi xử lý với nhiều bộ nhớ flash và RAM khác cũng đã xuất hiện trên thị trường với giá thành rẻ hơn.

Mức tiêu hao điện năng
Cho đến bây giờ, cách thông thường để giảm tiêu tốn điện năng của các thiết bị nhúng là hoạt động nhanh hết mức có thể rồi đi vào trạng thái ngủ đông ngay lập tức. Hiện tại, có một số kiến trúc vi xử lý tiêu tốn rất ít điện năng. Đây là một lựa chọn cho các mạng cảm biến không dây Wireless Sensor Network (WSN). Cho phép thiết bị hoạt động dưới mức điện áp yêu cầu.

ARM hiện đang phát triển một vi điều khiển tối ưu, hoạt động gần điện áp ngưỡng của CMOS bóng bán dẫn với xung nhịp 10s kilohertz. Thiết kế ARM gần ngưỡng này tương thích với kiến trúc Cortex-M0. Đem lại sự khác biệt với thiết kế sub-threshold cần phải tùy biến công đoạn sản xuất nhiều rủi ro.

Ngôn ngữ lập trình

Ngôn ngữ lập trình có C, C++ và đôi khi là Java. Ứng dụng Java luôn cần nền tảng để chạy. Vì thế lựa chọn ở đây không phải là C hoặc Java mà là C và Java.

Java rất hấp dẫn với các thiết bị IoT bởi cộng đồng phát triển ngôn ngữ này là cực kỳ lớn. Oracles và ARM có 450000 kỹ sư phần mềm trên, và có thêm khoảng 9 triệu nhà phát triển Java trên toàn thế giới. Đem lại sự tăng trưởng ấn tượng hàng năm.

Oracle’s Java ME nhúng được thiết kế cho các thiết bị nhỏ và có dự toán theo yêu cầu của Oracles:
  • Hệ thống dựa trên ARM và System On Chips (SOCs)
  • Vùng phủ bộ nhớ từ 130 KB RAM/350KB ROM tùy chỉnh tối thiểu, từ 700KB RAM/2000 KB ROM cho cấu hình thông thường.
  • Nhân nhúng đơn giản mà vẫn đảm bảo khả năng xử lý của OS/RTOS.
  • Ít nhất một giao thức mạng kết nối, không dây hoặc có dây.
Theo các yêu cầu ở trên, nhân nhúng và khả năng kết nối mạng yêu cầu dung lượng ROM và RAM lớn hơn, đẩy giá thành thiết bị lên cao hơn. Rõ ràng, vai trò của Java’s sẽ bị giới hạn với các máy nhúng giá rẻ.

Thiết kế thiết bị

Khi giá thành không còn là vấn đề, bạn có thể lựa chọn một vi xử lý mạnh, chạy tất cả các tác vụ yêu cầu. Tuy nhiên ta nên dùng 2 bộ vi xử lý sensor/actuator riêng biệt : Một vi xử lý giá rẻ (8 hay 16 bit) dùng cho physical world và vi xử lý 32-bit dùng cho các giao thức mạng.


Khi hai vi xử lý sensor/actuator được trang bị, có thể không cần đến real time kernel nữa, nhưng nó lại cần cho các module trao đổi dữ liệu.
Thiết kế Gateway


Một gateway kết nối được hai hay nhiều giao thức mạng và đảm nhận vai trò truyền tải, xử lý dữ liệu giữa các mạng đó.

Ví dụ, trong dự án nhà thông minh. Các công ty khác nhau có thể cài đặt các thiết bị IoT khác nhau với các loại gateway khác nhau trong các ngành điện, gas, nước, internet, hệ thống báo động, thiết bị y tế… Một số loại gateways này có thể có các chức năng thêm như lưu trữ và có giao diện người dùng.

Share this:

Post a Comment