Bài viết này đề xuất một IoT gateway có cấu hình mới với 3 ưu điểm: (1) có thể cắm được các module có giao thức truyền thông khác nhau của các mạng khác nhau; (2) có các giao diện bên ngoài hợp nhất để phát triển phần mềm linh hoạt; (3) có giao thức linh hoạt để chuyển dữ liệu từ các cảm biến khác nhau thành một định dạng thống nhất.
Trang 1ĐẠI HỌC SÀI GÒN OF SAIGON UNIVERSITY
Email: tcdhsg@sgu.edu.vn ; Website: https://tapchikhoahoc.sgu.edu.vn
XÂY DỰNG GATEWAY ĐA GIAO THỨC CHO HỆ THỐNG IOT
Implementation of a multi-protocol IoT gateway
ThS Trần Quang Thuận
Học viện Công nghệ Bưu chính Viễn thông
Tóm tắt
Sự phát triển nhanh chóng của Internet vạn vật (IoT) hiện nay kéo theo nhu cầu ngày càng tăng về việc kết nối các thiết bị phổ biến với các giao thức khác nhau như BLE, Wi-fi, RFID, Zigbee, LAN, v.v., thành một mạng thống nhất Một số ứng dụng điển hình như giao thông thông minh, nhà thông minh, điều khiển công nghiệp , cần có cổng kết nối (gateway) thông minh cung cấp tốc độ truyền dữ liệu cao, các thiết bị đầu cuối sử dụng băng thông rộng với các giao thức khác nhau trong các mạng không đồng nhất Bài báo này đề xuất một IoT gateway có cấu hình mới với 3 ưu điểm: (1) có thể cắm được các module có giao thức truyền thông khác nhau của các mạng khác nhau; (2) có các giao diện bên ngoài hợp nhất để phát triển phần mềm linh hoạt; (3) có giao thức linh hoạt để chuyển dữ liệu từ các cảm biến khác nhau thành một định dạng thống nhất
Từ khóa: cổng kết nối, internet vạn vật, IoT, giao thức
Abstract
With rapid development of Internet of Things (IoT), there exists an ever-growing demand for ubiquitous connectivity to integrate multiple heterogeneous networks, such as BLE, Wi-fi, RFID, Zigbee, LAN, etc Some typical applications, namely intelligent transportation, smart home, industry control, etc., require a smart gateway to provide high data rate, end-to-end connectivity utilizing the higher bandwidth of multi-hop networks among those heterogeneous networks This paper proposes a novel configurable IoT gateway which has three important benefits Firstly, the gateway has pluggable architecture, whose modules with different communication protocols can be customized and plugged in Secondly, it has unified external interfaces which are fit for flexible software development Finally, it has flexible protocol to transfer data from different sensors into a unified format
Keywords: gateway, internet of Things, IoT, protocol
1 Giới thiệu
Internet of Things (IoT) đang thúc đẩy
sự đổi mới trong gần như mọi khía cạnh
cuộc sống Việc kết nối những đối tượng
chưa từng được kết nối trước đây đang cho
phép thu thập những thông tin dữ liệu đầy
đủ và chuyên sâu dẫn đến sự thay đổi có ý
nghĩa trong cuộc sống Hiện nay, khái niệm
IoT - mạng kết nối tất cả mọi vật đã trở nên phổ biến cùng với các khái niệm như Smart City (thành phố thông minh), Smart Grid (lưới điện thông minh), Smart Building (tòa nhà thông minh), Smart Home (ngôi nhà thông minh)… đã dần trở thành hiện thực và đi vào cuộc sống
Hệ thống IoT bao gồm các module cảm Email: thuantq@ptithcm.edu.vn
Trang 2biến, gateway và máy chủ trung tâm Các
module cảm biến đại diện cho đối tượng
(things), thể hiện như các node trong mạng
Gateway là thiết bị làm chức năng chuyển
đổi giữa các loại mạng hoặc các ứng dụng
khác nhau, thực hiện kết nối các node của
mạng với máy chủ Máy chủ với ứng dụng
công nghệ đám mây (cloud) thực hiện điều
hành và quản lý toàn bộ mạng IoT
Đối với IoT gateway, việc kết nối
nhiều loại giao thức (protocol) hiện có và
truyền tải lưu lượng thông tin lớn là một
thách thức Ngoài ra, yêu cầu bảo mật cao
cho hệ thống IoT cũng là một khó khăn
Với sự tồn tại của nhiều kỹ thuật kết nối
đang được sử dụng như LAN, WiFi,
3G/4G, Bluetooth, Z-Wave, ZigBee,
LoRA, việc tổ chức một Gateway đáp ứng
đầy đủ các giao thức kết nối là vấn đề hết
sức phức tạp Để giải quyết những vấn đề
này, tác giả bài báo đề xuất một gateway
thông minh với các tính năng có thể cấu
hình, đa chức năng và tiết kiệm chi phí
Ngoài giới thiệu trên đây, bài báo có
phần 2 khái quát các nghiên cứu liên quan,
phần 3 trình bày cấu trúc của Smart IoT
gateway, phần 4 trình bày việc thực hiện
IoT gateway (phần cứng và phần mềm) và
phần cuối là kết luận cùng với hướng phát
triển
2 Các nghiên cứu liên quan
Công trình [4] và [7] đề xuất các
gateway kết nối các mạng với nhiều giao
thức khác nhau như ZigBee, Bluetooth,
GPRS, Ethernet, nhưng những gateway
này không linh hoạt vì không thể tùy chỉnh
được cho các ứng dụng khác nhau
Jong-Wan cùng các tác giả của công
trình [5] đã đề xuất một hệ thống gồm một
máy chủ chính và một số máy chủ cảm
biến kết nối với các mạng cảm biến khác
nhau Nhưng trong hệ thống đó, hầu hết
các tác vụ được hoàn thành bởi các máy
chủ cảm biến phụ thuộc vào mạng khác hơn là một gateway thông minh Điều này làm cho chi phí phần cứng quá cao
Năm 2011, nhóm nghiên cứu của tác giả Anurag Bansal ứng dụng công nghệ Bluetooth để thiết kế một thiết bị kết nối đến internet trung tâm Thiết bị này sử dụng mô hình IGAP [2] với ý tưởng xây dựng một lớp ứng dụng phần mềm chạy trên điện thoại di động và một lớp phần mềm chạy trên PC có kết nối với Internet
và Bluetooh, từ đó điện thoại di động có thể kết nối vào Internet thông qua kết nối với máy tính thông qua Bluetooth Tuy nhiên, giải pháp này phụ thuộc nhiều vào ứng dụng phần mềm và chưa tập trung vào giảm thiểu năng lượng tiêu thụ của thiết bị cảm biến Một trong những nhược điểm của công trình [2] là không phát triển một thiết bị Gateway độc lập mà sử dụng máy tính thu thập dữ liệu từ các thiết bị cảm biến sử dụng công nghệ Bluetooth
Lin Wu và các tác giả của công trình [6] đã thiết kế gateway định hướng dịch vụ
có thể cấu hình plug-play, nhằm làm cho
nó nhanh hơn và dễ sử dụng các ứng dụng mạng cảm biến bên ngoài khác nhau Gateway này cho phép kết nối dữ liệu và thông tin của các mạng cảm biến không đồng nhất Nó cung cấp các ứng dụng bên ngoài với quyền truy cập các tài nguyên tương ứng thông qua các giao diện thân thiện và đồng nhất, độc lập với các loại mạng cảm biến Nhưng đây là gateway không dành cho các loại mạng hoặc ứng dụng cảm biến cụ thể, tính năng plug-configurable-play đạt được bằng cách tách chương trình tổng quát khỏi thông tin cụ thể của mạng cảm biến, nhược điểm của nó
là chạy trên PC và đòi hỏi môi trường phần cứng cao nên những lợi thế trong các ứng dụng IoT thực tế là không rõ ràng
Tổng quan trên đây về phát triển hạ
Trang 3tầng và giải pháp ứng dụng đố với IoT cho
thấy, hiện nay hầu hết các Công ty lớn
(Intel, Taxas Instrument, NXP, …) và các
nhóm nghiên cứu từ các trường đại học
trên thế giới tập trung vào các bài toán
quan trọng như: hạ tầng thiết bị và kết nối
IoT (IoT Platform), lưu trữ và phân tích dữ
liệu (Data Analysis), bảo mật và phòng
chống tấn công (Security)
Nhìn chung, các giải pháp hiện có trên
thị trường đáp ứng yêu cầu riêng rẽ cho
nhà thông minh nhưng chưa ứng dụng
được hạ tầng theo định nghĩa của IoT Tuy
nhiên, các giải pháp đó chưa đồng bộ hoá
và đảm bảo cho việc quản lý của các cơ
quan, khu công nghiệp, hay rộng hơn đối
với nhà nước trong lĩnh vực an ninh năng
lượng, an ninh thông tin
3 Cấu trúc của IoT gateway
Mô hình hệ thống IoT được đề xuất
như Hình 1
Mô hình này sử dụng gateway để kết
nối các cảm biến không dây và thiết bị với
trung tâm quản lý bằng ứng dụng công
nghệ đám mây Việc sử dụng điện thoại
thông minh, máy tính bảng cho phép người
điều hành một lĩnh vực như kiểm soát an
ninh, kiểm soát môi trường và có thể giám
sát công việc ở mọi nơi, mọi lúc
Software
Trung tâm quản lý
Quản lý di động
Thiết bị/ Devices Cảm biến/sensors
Master Gateway
Tích hợp chuẩn kết nối WiFi, Ethernet, 3G, 4G/LTE
Hình 1 Mô hình hệ thống IoT
Master gateway là cầu nối giữa mạng truyền thống và mạng cảm biến; ở trung tâm là IoT gateway chịu trách nhiệm chuyển đổi giao thức và kết hợp dữ liệu của các cảm biến Máy chủ hỗ trợ toàn bộ
hệ thống, chịu trách nhiệm xử lý dữ liệu quá khứ và hiển thị trực quan Các thẻ người dùng (user card) thông qua một giao diện chung để phù hợp với các giao thức kết nối khác nhau Nhiệm vụ cụ thể của IoT gateway được cho trong Hình 2
Hình 2 Vai trò của gateway trong hệ thống
IoT
Để đáp ứng yêu cầu băng thông khác nhau, IoT gateway cung cấp các giao tiếp mạng như Ethernet, 3G/LTE hoặc RS485 Gateway không chỉ có thể truyền dữ liệu tốc độ cao như dữ liệu âm thanh và video,
mà còn truyền cả dữ liệu tốc độ thấp như
dữ liệu cảm biến nhiệt độ và độ ẩm Đối với các ứng dụng có giao diện khác nhau,
có thể giảm sự phức tạp và cả chi phí hệ thống, đạt được sự phát triển thân thiện với người dùng IoT Gateway đề xuất cung cấp
8 giao diện người dùng hợp nhất Trong các ứng dụng thực tế, chúng tôi đã thiết kế các thẻ người dùng khác nhau dưới dạng giao diện PCI-E Các giao diện hợp nhất này có 2 ưu điểm: thứ nhất, thiết kế phần cứng của IoT gateway có thể được đơn giản hóa để tạo thuận lợi cho việc truy cập
Trang 4các nhu cầu ứng dụng khác nhau.; thứ hai,
có thể thay đổi tự do số lượng thẻ người
dùng theo các môi trường ứng dụng khác
nhau Ví dụ: với một số ứng dụng cần 3 thẻ
người dùng ZigBee, trong khi với ứng
dụng khác lại cần 3 thẻ người dùng RS485
IoT Gateway của chúng tôi có thể đáp ứng
được các yêu cầu này Nó có thể tạo điều
kiện thuận lợi cho việc truy cập các loại thẻ
người dùng khác nhau, và trong các môi
trường ứng dụng khác nhau Trong thực tế,
chúng tôi thiết kế nhiều giao diện truyền
thông giữa IoT và thẻ người dùng, như
giao diện SPI, giao diện UART, Ethernet
(RJ45), USB, giao diện âm thanh và video
và giao diện I2C Đến nay, IoT Gateway
của chúng tôi có thể hỗ trợ cho nhiều loại
thẻ người dùng như: thẻ người dùng định
vị UWB; thẻ người dùng ZigBee; thẻ
vào/ra tương tự/số; thẻ người dùng RFID
2.4GHz & 915MHz; thẻ người dùng
RS485 và thẻ thu thập dữ liệu cảm biến
Ngoài ra, có thể sử dụng cho các loại thẻ
người dùng khác với một số ứng dụng đặc
biệt mà không cần thay đổi cấu trúc của
IoT gateway
4 Thực hiện IoT gateway
4.1 Giới thiệu phần cứng
4.1.1 Mô tả gateway
Để đáp ứng các yêu cầu của IoT
gateway được đề cập trên đây, chúng tôi sử
dụng bộ vi xử lý Samsung S5PV210 cho
bộ điều khiển chính của gateway CPU có
xung clock đạt tới 1 GHz, hỗ trợ 32KB
I-Cache, 32KB D-I-Cache, 512KB L2 I-Cache,
64KB ROM và 96KB SRAM Bộ xử lý hỗ
trợ các giao diện ngoài phong phú như
USB, SD/SDIO, UART, CMOS/CCD,
SPI,
Theo yêu cầu của các ứng dụng thực
tế, cấu trúc phần cứng của gateway IoT
được hiển thị trong Hình 3, gồm 8 khe cắm
thẻ người dùng Tất cả các khe cắm thẻ người dùng đều hỗ trợ giao diện Ethernet
và giao diện USB Chip chuyển mạch Ethernet RTL8309 được sử dụng để mở rộng giao diện Ethernet một chiều trong CPU ARM Cortex A8 thành các giao diện Ethernet 8 chiều Giao diện Ethernet có thể đáp ứng hầu hết các ứng dụng truyền thông tốc độ cao Đồng thời, 2 chip USB2514 được sử dụng để mở rộng 2 cổng USB thành 8 cổng USB Điều này giúp tăng cường khả năng mở rộng của hệ thống Chúng tôi sử dụng 2 chip VK3224 để cho phép 8 khe thẻ người dùng cùng một lúc
hỗ trợ giao diện UART 8 chiều Khe cắm thẻ người dùng cũng hỗ trợ giao diện Audio/Video
IoT gateway này có thể hỗ trợ 3 loại giao tiếp dữ liệu với mạng chung, đó là Ethernet, 3G và RS485 Người dùng có thể chọn các giao diện truyền dữ liệu khác nhau theo nhu cầu cụ thể
Hình 3 Cấu trúc phần cứng của IoT
gateway 4.1.2 Giới thiệu thẻ người dùng
Để phù hợp với các ứng dụng khác nhau, giao diện của tất cả các thẻ người dùng phải giống nhau Chúng tôi chọn giao diện chuẩn PCI-E, với cấu trúc chi tiết của thẻ người dùng được minh họa như Hình 4
Trang 5Hình 4 Cấu trúc phần cứng của user card
Để chuẩn hóa thiết kế gateway, tất cả
các thứ tự dây của giao diện đều giống
nhau, loại thẻ người dùng được phân biệt
bằng phần mềm chạy trên gateway Trong
thực tế, chúng tôi đã phát triển 6 loại thẻ
người dùng như được giới thiệu trong phần
3 Trong số các thẻ người dùng, thẻ UWB
và thẻ RFID sử dụng giao diện USB, thẻ
ZigBee, thẻ I/O tương tự/số và thẻ RS485
sử dụng giao diện UART, thẻ thu thập dữ
liệu cảm biến sử dụng giao diện Ethernet
và UART
Người dùng có thể sử dụng thẻ theo
yêu cầu vì cùng giao diện với thẻ của mình
Một EEPROM 1K bit (chip 24LC01) được
sử dụng để xác định loại thẻ người dùng
4.2 Giới thiệu phần mềm
Chức năng chính của phần mềm chạy
trên gateway là chuyển đổi giữa các giao
thức khác nhau và nhận dạng loại thẻ
người dùng
4.2.1 Chuyển đổi giao thức
Kiểu dữ liệu đến từ các giao diện khác
nhau thường không giống nhau, và bản
thân dữ liệu cũng khác nhau Điều này có
thể làm tăng độ khó của việc giao tiếp giữa
máy chủ và các cảm biến Vì vậy, cần phải
đóng gói dữ liệu khác nhau trên gateway
Thực tế, cấu trúc khung dữ liệu được định
nghĩa như trong Hình 5
Hình 5 Cấu trúc khung dữ liệu
Các chức năng của các phần khác nhau của khung được giải thích như sau:
• Preamble sequence: byte đồng bộ hóa gói dữ liệu truyền thông, bao gồm ký
tự đầu và ký tự khoảng thời gian bắt đầu khung
• TYPE: cho biết dữ liệu là đường lên (0x01) hoặc đường xuống (0x02)
• Dest_ID: địa chỉ đích, 2 byte
• Source_ID: địa chỉ nguồn, 2 byte
• SN (Message nember): số tin nhắn (phân biệt đúng thông điệp đến), 1 byte
• Len: chiều dài của toàn bộ tin nhắn
• Pkt_Type: loại gói, bao gồm Pkt Type Ind và Pkt SubType Ind, 1 byte
• Reserved: dự phòng, 1 byte
• FCS: CRC16, kiểm tra tính toàn vẹn của dữ liệu trong các gói
4.2.2 Nhận dạng loại thẻ người dùng
IoT gateway của chúng tôi yêu cầu độ tương thích cao, chẳng hạn: nó có thể kết nối với cảm biến của bên thứ ba mà không thay đổi định dạng dữ liệu cảm biến Vì vậy, không thể phân biệt các loại thẻ người dùng bằng cách điều chỉnh định dạng dữ liệu của chúng [3] Ở đây, chúng tôi đề xuất giải pháp cho vấn đề này như sau:
Sử dụng chip EEPROM 24LC01 để ghi lại các loại thẻ người dùng trong một byte
Đầu tiên, chip được cấu hình thông qua cổng IIC; sau đó chỉ cần đọc nội dung của chip để lấy thông tin loại thẻ người dùng
Trang 6Chip đọc ngẫu nhiên được thể hiện
như trong Hình 6
Hình 6 Chip đọc ngẫu nhiên
4.2.3 Cấu hình của IoT gateway
Trong [6], hầu hết các IoT gateway
đều thích nghi với cấu trúc C/S Một trong
những thiếu sót của cấu trúc C/S là phần
mềm phải được cập nhật khi gateway được
thêm vào các chức năng mới Điều này có
thể gây ra nhiều bất tiện cho việc phát triển
dự án và hạn chế tính tương thích của
gateway Để khắc phục nó, chúng tôi áp
dụng chế độ B/S, trong đó người dùng có
thể cấu hình gateway bằng PC hoặc các
thiết bị di động khác và chức năng này
được thực hiện bởi một máy chủ web
Trong chế độ B/S, khách hàng chạy
phần mềm trình duyệt để gửi yêu cầu truy
cập đến máy chủ Web thông qua siêu văn
bản Chế độ yêu cầu bao gồm phương thức
POST và phương thức GET
Đối với phương thức GET, trình duyệt
nhận yêu cầu URL bao gồm tên và nội
dung các biến
Đối với phương thức POST, trình
duyệt sẽ tạo gói dữ liệu để làm gọn biến thể
và nội dung của nó, sau đó gửi gói đến máy
chủ Sau khi nhận được yêu cầu, máy chủ
web sẽ gửi các trang tĩnh hoặc trang động
cho khách hàng Tiếp đến phần mềm tương
ứng sẽ bắt đầu truy cập mô-đun, cơ sở dữ
liệu và gửi kết quả đến máy chủ web Phản
hồi từ máy chủ web thường bao gồm dòng
trạng thái, dòng trống và tài liệu Trình
duyệt của khách hàng sẽ phân tích phản hồi
và hiển thị nội dung lên web
5 Kết luận và hướng phát triển
IoT gateway là cầu kết nối giữa các mạng truyền thống và mạng cảm biến Bài báo này trình bày một IoT gateway có thể được cấu hình linh hoạt để thích nghi với các yêu cầu ứng dụng khác nhau, có thể làm giảm những khó khăn, chi phí cũng như dễ dàng và nhanh chóng áp dụng cho các ứng dụng mới Trong đề xuất của chúng tôi, gateway có giao diện bên ngoài thống nhất, khả năng mạnh mẽ để thích ứng với các nhu cầu khác nhau, người sử dụng có thể phát triển thẻ (người dùng) phù hợp theo các ứng dụng khác nhau
Trong tương lai, chúng tôi sẽ bổ sung chính sách bảo mật và chiến lược phòng chống lỗi vào gateway đã đề xuất để đảm bảo cho nó hoạt động ổn định và đáng tin cậy hơn, từ đó có thể áp dụng cho hệ thống quản lý các khu công nghiệp và khu công nghệ cao
LỜI CẢM ƠN
Công trình này nhận được sự tài trợ từ đề tài khoa học công nghệ cấp Học viện Công nghệ Bưu chính Viễn thông, mã số 09-HV-2018-RD_ĐT2
TÀI LIỆU THAM KHẢO
Amiruddin Amiruddin, Anak Agung Putri Ratna, Ruki Harwahyu, Riri Fitri Sari (2018),
“Secure Multi-protocol Gateway for Internet of
Things”, IEEE Wireless Telecommunications Symposium (WTS), Phoenix, AZ, USA
Yashodhan Joshi, Anurag Bansal (2011),
“Implementation of Bluetooth hotspots
using IGAP”, IJCSET, Vol.1 (Issue 11)
2 Dong Min; Zeng Xiao; Bi Sheng; Guo
implementation of the multi-channel
RS485 IoT gateway”, Cyber Technology
Trang 7in Automation, Control, and Intelligent
Systems (CYBER), IEEE International
Conference on, pp.366-370
3 Emara, K A., Abdeen, M., & Hashem, M
(2009), “A gateway-based framework for
transparent interconnection between WSN
and IP network”, EUROCON '09, pages
1775-1780
4 Jong-Wan, Y., Yong-ki, K., Choon-Sung,
N., & Dong-Rye, S (2009), “Sensor
Network Middleware for Distributed and
International Conference on New Trends in
Information and Service Science (NISS '09),
pages 979-982
5 L.Wu, Y Xu, C Xu, and F.Wang (2013),
“Plug-configure-play service oriented gateway for fast and easy sensor network
application development”, Proceedings of the 2nd International Conference on Sensor Networks (SENSORNETS ’13)
6 Qian, Z., Ruicong, W., Qi, C., Yan, L., & Weijun, Q (2010), “IoT Gateway: Bridging Wireless Sensor Networks into
Internet of Things” IEEE/IFIP 8th International Conference on the Embedded and Ubiquitous Computing
(EUC’2010), pages 347-352
Ngày nhận bài: 05/07/2018 Biên tập xong: 15/12/2018 Duyệt đăng: 20/01/2019