Đào Ngọc Tôn và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
99(11): 91 - 96<br />
<br />
TÍCH HỢP DỊCH VỤ ĐO VÀ KIỂM SOÁT TỪ XA SỬ DỤNG FPGA<br />
Đào Ngọc Tôn1, Nguyễn Phương Huy1, Nguyễn Thanh Hà2*<br />
1<br />
<br />
Trường Đại học Kỹ thuật Công nghiệp - ĐH Thái Nguyên<br />
2<br />
Đại học Thái Nguyên<br />
<br />
TÓM TẮT<br />
Bài báo trình bày phương pháp tích hợp các thuật toán đo và điều khiển vào chip FPGA cho đo và<br />
giám sát tòa nhà thông minh qua mạng máy tính. Ở đây các quá trình đo, phần mềm xử lý, các bộ<br />
vi xử lý, các thuật toán điều khiển… được tích hợp vào một file và được nạp vào FPGA theo<br />
hướng SOC (System On Chip).<br />
Từ khóa: FPGA, SOC, nhà thông minh<br />
<br />
MỞ ĐẦU*<br />
Trong những năm gần đây, công nghệ mạng<br />
đã có những bước phát triển vượt bậc. Trong<br />
tương lai rất gần, các dịch vụ truyền tin, điều<br />
khiển, giám sát… sẽ được tích hợp trên nền<br />
mạng Internet.<br />
Hệ thống giám sát và điều khiển từ xa qua<br />
Ethernet dùng FPGA là một hệ thống số hoàn<br />
chỉnh trên FPGA bao gồm các IP logic (hay<br />
các khối logic) tự thiết kế, các IP cung cấp<br />
sẵn, lõi Vi xử lý mềm MicroBlaze [5,8] cùng<br />
với các hệ điều hành khác. Sau khi hoàn<br />
chỉnh, hệ thống sẽ cần xử lý một khối lượng<br />
công việc khá lớn như tổng hợp, thu thập dữ<br />
liệu, giám sát và xử lý tệp sau đó truyền đi<br />
qua giao thức TCP/IP với sự hỗ trợ của các hệ<br />
điều hành [1,5,6]. Bên cạnh đó là việc nhận<br />
và xử lý các tín hiệu điều khiển thiết bị của<br />
người dùng từ phía giao diện web. Để giải<br />
quyết những công việc như vậy, khối logic<br />
xây dựng với mã VHDL đóng vai trò là một<br />
IP logic trong hệ nhúng với vi xử lý<br />
MicroBlaze. Tất cả việc xử lý, sự kiện điều<br />
khiển, truyền trang web được xây dựng trên<br />
hệ điều hành khác nhau...<br />
Việc tích hợp các thiết bị trong một môi<br />
trường hỗn hợp đa phương tiện cho phép xử<br />
lý các thông tin hợp nhất (âm thanh, hình ảnh,<br />
số liệu) áp dụng trong một phạm vi rất rộng<br />
lớn như thông tin gia dụng, các ứng dụng hiện<br />
trường, điều khiển công nghiệp đã và đang có<br />
yêu cầu lớn. Từ các ngành cơ khí, hoá chất,<br />
năng lượng… cho đến các thiết bị di động<br />
*<br />
<br />
Tel: 0913 073591, Email: nguyenthanhha@tnut.edu.vn<br />
<br />
nhỏ gọn với tính năng thông minh rất cao là<br />
minh chứng cho thấy các công nghệ, đặc biệt<br />
là các công nghệ cao ngày càng đáp ứng đầy<br />
đủ các yêu cầu khắt khe của con người<br />
[1,2,4,5].<br />
Trong bài báo này, các tác giả trình bày một<br />
phương pháp tích hợp các thuật toán đo và<br />
điều khiển vào chip FPGA ứng dụng trong<br />
việc đo lường và giám sát tòa nhà thông minh<br />
qua mạng máy tính. Bài báo bao gồm các<br />
phần: i) Mở đầu, ii) Phân tích hệ thống, iii)<br />
Các công cụ phát triển, iv) Hệ nhúng với<br />
MicroBlaze và các hệ điều hành trên FPGA, v)<br />
Thiết kế hệ thống và ứng dụng, vi) Kết luận.<br />
PHÂN TÍCH HỆ THỐNG<br />
Nhu cầu quản lý tòa nhà thông minh<br />
Một hệ thống nhà thông minh phải có các hệ<br />
thống An ninh- An toàn, Chiếu sáng, Điều<br />
khiển nhiệt độ - Quản lý năng lượng, hệ thống<br />
âm thanh, Video - Camera giám sát, Chuông<br />
cửa có hình, Rèm tự động, Bơm bể bơi, Bơm<br />
tưới, và các hệ thống khác theo yêu cầu. Để<br />
điều khiển hệ thống trên thì chi phí vận hành<br />
các máy móc thiết bị cao và dường như đã<br />
vượt quá tầm kiểm soát. Chịu ảnh hưởng từ<br />
những tác động của việc tăng chi phí sử dụng<br />
năng lượng, các yêu cầu về thân thiện với môi<br />
trường, thiết bị và nhân lực làm việc với hiệu<br />
suất thấp, các nhà quản lý đang tìm kiếm các<br />
giải pháp có thể giúp họ quản lý và vận hành<br />
các máy móc thiết bị một cách tiết kiệm và<br />
hiệu quả nhất [3,4].<br />
Các thiết bị, hệ thống cần quản lý<br />
Các thiết bị, hệ thống cần quản lý được mô tả<br />
trong hình 1 bao gồm:<br />
91<br />
<br />
Đào Ngọc Tôn và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
- Hệ thống điều khiển nhiệt độ, quản lý<br />
năng lượng<br />
- Hệ thống điều khiển chiếu sáng<br />
- Hệ thống âm thanh<br />
- Hệ thống camera giám sát<br />
- Hệ thống an ninh<br />
- Hệ thống điện thoại<br />
- Hệ thống tưới vườn tự động và điều khiển<br />
rèm cửa<br />
- Hệ thống bể bơi và spa<br />
- Truy cập và điều khiển từ Internet<br />
<br />
Hình 1. Hệ thống quản lý tòa nhà thông minh<br />
<br />
Hệ thống được xây dựng với hai chức năng<br />
chính là giám sát và điều khiển tòa nhà từ xa<br />
qua Internet. Sau khi phân tích các điều kiện<br />
khả thi và các chức năng của hệ thống một<br />
cách chi tiết, hệ thống được xây dựng dựa<br />
trên nền tảng thiết kế logic trên FPGA với các<br />
chức năng như sau:<br />
- Cung cấp dịch vụ Web server.<br />
- Điều khiển các thiết bị điện qua giao diện<br />
web, các thiết bị này có thể kết nối trực tiếp<br />
tới hệ thống qua dây hoặc không dây.<br />
- Giao tiếp các cảm biến để cho phép theo dõi<br />
được nhiệt độ nơi cần giám sát.<br />
- Có khả năng mở rộng thêm với các chức<br />
năng khác cho hệ thống.<br />
Bên cạnh các yêu cầu chức năng của hệ thống<br />
là các yêu cầu về tính hiệu năng của hệ<br />
thống, môi trường hoạt động, các yêu cầu<br />
về bảo mật…<br />
CÁC CÔNG CỤ PHÁT TRIỂN<br />
Chip FPGA dùng để phát triển hệ thống được<br />
trình bày trong bài báo này là chip của hãng<br />
92<br />
<br />
99(11): 91 - 96<br />
<br />
Xilinx cung cấp, do đó toàn bộ môi trường<br />
phát triển và công cụ phát triển hệ thống<br />
logic trên FPGA là phần mềm của hãng<br />
Xilinx, bao gồm:<br />
- Xilinx EDK (Embedded Development Kit):<br />
Công cụ phát triển hệ thống nhúng trên FPGA.<br />
Công cụ này được coi là công cụ thiết kế và<br />
phát triển hệ thống logic trên FPGA, cho phép<br />
cung cấp một hệ vi xử lý hoàn chỉnh trên<br />
FPGA gồm các IP logic và vi xử lý.<br />
Xilinx<br />
ISE<br />
(Integrated<br />
Software<br />
Environment): công cụ phần mềm môi trường<br />
tích hợp. Công cụ này được coi là công cụ<br />
thiết kế và phát triển các IP logic người dùng,<br />
các IP logic này đã được định nghĩa khi đưa<br />
ra thiết kế hệ thống logic với Xilinx EDK.<br />
Bên cạnh đó, quá trình thiết kế và phát triển<br />
các IP logic đòi hỏi công cụ mô phỏng logic<br />
để kiểm tra các đặc tính, dạng sóng của tín<br />
hiệu vào ra của khối logic đang được phát<br />
triển có đúng theo đặc tả thiết kế hay không.<br />
Trong bài báo này, công cụ mô phỏng được<br />
sử dụng là phần mềm ModelSimXE.<br />
Một công cụ quan trọng được sử dụng trong<br />
đề tài là công cụ phát triển phần mềm nhúng<br />
uClinux-PetaLinux của hãng PetaLogix, cũng<br />
như các hệ điều hành khác. Công cụ này cho<br />
phép nhúng hệ điều hành lên trên nền tảng<br />
phần cứng đã xây dựng trên FPGA, điều<br />
khiển toàn bộ hoạt động của hệ thống và cung<br />
cấp các phần mềm ứng dụng dựa trên chức<br />
năng mong muốn của hệ thống.<br />
Công cụ cuối cùng dùng trong đề tài là phần<br />
mềm thiết kế mạch Orcad của hãng Calence.<br />
Công cụ này cho phép thiết kế các mạch mở<br />
rộng cho chip FPGA giúp kết nối hệ thống<br />
logic trên chip FPGA với các thiết bị bên<br />
ngoài theo yêu cầu chức năng của hệ thống<br />
HỆ NHÚNG VỚI MICROBLAZE VÀ CÁC<br />
HỆ ĐIỀU HÀNH TRÊN FPGA<br />
Một hệ thống FPGA hoàn chỉnh là một hệ<br />
thống logic bao gồm nhiều IP logic, tuy nhiên<br />
để kết hợp và điều khiển các IP đó với nhau<br />
tạo thành một hệ thống có chức năng mong<br />
muốn lại đòi hỏi cần có một Vi điều khiển<br />
trung tâm và phần mềm nhúng. Chương này<br />
sẽ trình bày về hai thành phần quan trọng<br />
<br />
Đào Ngọc Tôn và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
trong hệ thống để thực hiện công việc này, đó<br />
là Vi điều khiển MicroBlaze - Vi điều khiển<br />
mềm của Xilinx và bộ công cụ nhúng hệ<br />
điều hành.<br />
Vi xử lý MicroBlaze<br />
Vi xử lý MicroBlazeTM là một hệ Vi điều<br />
khiển RISC, dạng lõi vi xử lý mềm, được<br />
thiết kế tối ưu cho chip FPGA của Xilinx®. Sơ<br />
đồ khối chức năng của lõi MicroBlaze được<br />
biểu diễn trên hình 2.<br />
<br />
Hình 2. Sơ đồ khối chức năng của MicroBlaze<br />
<br />
MicroBlaze có cấu trúc tương tự như các Vi<br />
điều khiển RISC 32 bit thông thường, bao<br />
gồm các khối chức năng chính như: ALU,<br />
giải mã lệnh, các thanh ghi đặc biệt, tệp thanh<br />
ghi, bộ đếm chương trình, bus lệnh và bus địa<br />
chỉ. Bên cạnh những khối chức năng cố định<br />
thì với đặc tính mềm, MicroBlaze cho phép<br />
tùy chọn các khối chức năng: đệm lệnh, đệm<br />
dữ liệu, bộ nhân, bộ chia, bộ dịch, bộ xử lý<br />
dấu phẩy động FPU. Điều này cho phép cấu<br />
hình linh động MicroBlaze theo các thiết kế<br />
có yêu cầu, đặc trưng riêng. Quá trình xử lý<br />
lệnh theo kiến trúc đường ống, hầu hết các<br />
lệnh của nó thực hiện trong một chu kỳ đồng<br />
hồ. Quá trình xử lý lệnh được chia làm 3 giai<br />
đoạn: nhận lệnh (Fetch), giải mã lệnh<br />
(Decode), thi hành lệnh (Execute).<br />
Phát triển trình điều khiển trên các lõi hệ<br />
điều hành<br />
Để ứng dụng của hệ điều hành có thể giao<br />
tiếp với các thiết bị phần cứng, cần có một<br />
tầng ứng dụng trung gian giữa ứng dụng của<br />
hệ điều hành và các thiết bị gọi là trình điều<br />
khiển, nó có nhiệm vụ xây dựng các API mức<br />
cao giao tiếp với ứng dụng trên hệ điều hành<br />
và chuyển thành các lệnh giao tiếp bậc thấp<br />
<br />
99(11): 91 - 96<br />
<br />
dạng vào ra cơ sở cho các thiết bị phần cứng.<br />
Vì uClinux tuân theo các quy ước của Unix,<br />
mọi thứ được thực hiện qua tệp. Do đó phần<br />
cứng được địa chỉ hóa qua một tệp có liên<br />
quan đến thiết bị gọi là tệp thiết bị. Có ba loại<br />
trình điều khiển thông dụng tương ứng cho ba<br />
loại thiết bị thông dụng:<br />
- Trình điều khiển ký tự (character drivers):<br />
điều khiển thiết bị dòng dữ liệu mà chỉ có thể<br />
được truy cập một cách tuần tự, và các trình<br />
điều khiển truy cập các thiết bị này thông qua<br />
tệp thiết bị như “dev/ttyS0” dành cho trình<br />
điều điều khiển cổng com.<br />
- Trình điều khiển khối (block drivers): truy<br />
cập các khối dữ liệu, chúng cho phép truy cập<br />
ngẫu nhiên, truy cập qua bộ đệm hệ thống, và<br />
truy cập qua tệp thiết bị như “/dev/hda” dành<br />
cho trình điều khiển ổ cứng.<br />
- Trình điều khiển mạng (network drivers):<br />
điều khiển thiết bị hướng gói tin. Các thiết bị<br />
này nhận và truyền các gói tin cũng như truy<br />
cập qua các dịch vụ mạng. Thiết bị mạng truy<br />
cập thông qua định danh duy nhất, như “eth0”.<br />
THIẾT KẾ HỆ THỐNG<br />
Quy trình thiết kế hệ thống<br />
Dựa trên quy trình thiết kế của Xilinx, quy<br />
trình thiết kế VHDL, quy trình thiết kế hệ<br />
nhúng. Trình tự thiết kế cho hệ thống được<br />
chỉ ra trên hình 3 bao gồm.<br />
(1) Xây dựng hệ thống logic - nền tảng phần<br />
cứng của hệ thống, công việc này được thực<br />
hiện trên công cụ Xilinx EDK.<br />
(2) Thiết kế phần mềm nhúng cho hệ thống<br />
bằng công cụ uClinux-Petalinux đã trình bày<br />
trong phần 3<br />
Thiết kế mạch mở rộng cho hệ thống<br />
<br />
Hình 3. Quy trình thiết kế hệ thống<br />
<br />
93<br />
<br />
Đào Ngọc Tôn và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
99(11): 91 - 96<br />
<br />
các lĩnh vực của đời sống. Việc lựa chọn công<br />
nghệ sao cho hợp lý, giảm chi phí và có thể<br />
thiết lập được nhiều chức năng là một trong<br />
những yêu cầu cần thiết. Các thiết bị đo lường<br />
và điều khiển cho hệ thống tòa nhà khi kết nối<br />
vào FPGA được thực hiện trên cơ sở môi<br />
trường phát triển của KIT Spartan 3E. Các kết<br />
nối vào/ra có thể thực hiện trên:<br />
- Các chân J1, J2, J3,…<br />
- 100 chân (100 pins Hirose) trên hình 5<br />
Hình 4. Sơ đồ khối nền tảng phần cứng<br />
<br />
Một hệ thống hoàn chỉnh sẽ bao gồm: nền<br />
tảng phần cứng- hệ thống logic bao gồm các<br />
IP logic cùng vi xử lý hợp thành hệ vi xử lý<br />
nằm trên chip FPGA, hệ điều hành- hệ thống<br />
tệp thực thi điều khiển toàn bộ hệ thống logic,<br />
các mạch mở rộng phụ trợ cho chip FPGA kết<br />
nối tới thiết bị bên ngoài. Cuối cùng, nạp tệp<br />
cấu hình, tệp thực thi xuống FPGA và kết nối<br />
các mạch mở rộng cho hệ thống, có sản phẩm là<br />
một hệ thống logic có chức năng mong muốn.<br />
Sơ đồ khối phần cứng<br />
Hệ thống phần cứng xây dựng trong bài báo<br />
là một hệ Vi điều khiển hoàn chỉnh bao gồm<br />
CPU, RAM, ROM, các khối logic. Mỗi khối<br />
logic đều có chức năng riêng biệt đảm bảo<br />
cung cấp đầy đủ các chức năng riêng rẽ cho<br />
hệ thống, bên cạnh những khối logic dùng sẵn<br />
là các khối logic xây dựng mới bao gồm:<br />
- Vi xử lý MicroBlaze<br />
- Khối điều khiển DDR SDRAM<br />
- Khối điều khiển FLASH ROM<br />
- Khối Ethernet MAC<br />
- Khối UART<br />
- Khối bộ định thời<br />
- Khối điều khiển ngắt<br />
- Khối điều khiển GPIO<br />
Các khối giao tiếp cảm biến<br />
Toàn bộ hệ các khối logic trong hệ thống giao<br />
tiếp với vi xử lí qua bus PLB, đóng vai trò là<br />
tuyến kết nối dữ liệu, tín hiệu điều khiển, tín<br />
hiệu địa chỉ cho toàn bộ nền tảng phần cứng<br />
của hệ thống.<br />
Thử nghiệm hệ thống đo và giám sát qua<br />
internet trên FPGA<br />
Các hệ thống đo và giám sát trên cơ sở mạng<br />
internet đang ngày một gia tăng trong tất cả<br />
94<br />
<br />
Hình 5. Các giao tiếp với các thiết bị ngoài với<br />
KIT Spartan 3E<br />
<br />
Thiết kế phần mềm<br />
Toàn bộ phần mềm của hệ thống xây dựng<br />
trên môi trường hệ điều hành uClinuxpetalinux. Đây là hệ điều hành đa tác vụ, do<br />
đó khi xây dựng các phần mềm ứng dụng,<br />
người dùng không gặp nhiều khó khăn về<br />
việc chia sẻ tài nguyên hệ thống cũng như khả<br />
năng xử lý công việc phức tạp của các module<br />
chương trình. Từ chương trình lõi là hệ điều<br />
hành khác hoặc uClinux, các module phần<br />
mềm ứng dụng sẽ được gọi và xử lý. Phần<br />
mềm của hệ thống bao gồm các module như<br />
sLõi uClinux hay hệ điều hành khác: chương<br />
trình lõi hệ điều hành Linux, chạy cùng thống<br />
từ khi cấp điện và nạp cấu hình cho FPGA.<br />
- Web server: chương trình phục vụ web,<br />
cung cấp giao diện người dùng qua trang web<br />
nhúng trên tệp hệ thống của hệ điều hành.<br />
- Điều khiển thiết bị: chương trình điều khiển<br />
bật, tắt các thíết bị kết nối tới hệ thống qua<br />
mạch điều khiển.<br />
- Giao tiếp DS1820: chương trình giao tiếp<br />
với cảm biến<br />
Giao diện người dùng<br />
Giao diện người dùng là một trang web chính,<br />
nội dung trang web chính bao gồm các thành<br />
<br />
Đào Ngọc Tôn và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
phần chức năng của hệ thống: khung ảnh<br />
MJPEG chứa hình ảnh khu vực cần quan sát,<br />
bộ nút điều khiển hướng chuyển động<br />
camera, bộ bật tắt thiết bị, text box hiển thị<br />
thời gian và nhiệt độ.<br />
<br />
Hình 6: Các module chương trình thiết kế<br />
trên uClinux<br />
<br />
Hình 7. Giao diện người dùng của hệ thống<br />
<br />
Mỗi thành phần đó là một trang web nhỏ,<br />
được tải vào các khung trên giao diện trang<br />
web chính. Nội dung toàn bộ các trang web<br />
và ảnh liên quan lưu trong thư mục httpd của<br />
web server:<br />
- Tệp index.html: trang web chính, cung cấp<br />
giao diện người dùng đầy đủ các chức năng.<br />
Thư mục html: chứa các trang web nhỏ, bao<br />
gồm control.html-giao diện điều khiển thiết<br />
bị,<br />
dummy.htmlgiao<br />
diện<br />
giả,<br />
<br />
99(11): 91 - 96<br />
<br />
temperature.html- giao diện nhiệt độ hệ<br />
thống.<br />
- Thư mục cgi-bin: chứa các tệp thực thi,<br />
control.cgi- điều khiển các thiết bị.<br />
KẾT LUẬN<br />
Bài báo trình bầy một phương pháp thiết kế<br />
hệ đo, xử lý và điều khiển tích hợp vào công<br />
nghệ FPGA qua hệ thống mạng. Hệ thống này<br />
được ứng dụng cho giám sát tòa nhà thông<br />
minh từ xa qua mạng Internet. Đây là một<br />
hướng nghiên cứu mới, rất có ý nghĩa trong<br />
đo lường và điều khiển và xây dựng và thiết<br />
kế các hệ nhúng. Tiếp cận trên cho phép khai<br />
thác được thế mạnh của kỹ thuật lập trình<br />
(đưa được trí tuệ của con người vào hệ thống)<br />
và phần cứng của công nghệ<br />
TÀI LIỆU THAM KHẢO<br />
[1]. Le Ba Dung, Bui Nguyen Dai: A real time<br />
multitasking operating software based on IBM<br />
PC for data acquisition, processing and control.<br />
The Sixth National Conference on Automation<br />
VICA 6, Hà nội, 2005.<br />
[2]. Lê Bá Dũng, Báo cáo đề tài “Thiết kế Bộ xử<br />
lý chuyên dụng cho đo lường và điều khiển”. Viện<br />
KH&CN Việt nam 2009.<br />
[3]. Hệ thống quản lý tòa nhà (IBMS). Nguồn:<br />
http://www.ibs.com.vn<br />
[4]. Nguyễn Thanh Hà, Hệ thống báo cháy tòa nhà<br />
thông qua mạng điện thoại, Tạp chí KHCN 52(4) Đại học Thái nguyên tháng 4 - 2009 - Tr 38-40<br />
[5]. Mentor Graphics Corporation (2007,<br />
September). ModelSim Tutorial [Online].<br />
Available: http://www.mentor.com<br />
[6]. Xilinx (2008, September 18). EDK Concepts,<br />
Tools, and Techniques [Online]. Available:<br />
http://www.xilinx.com<br />
[7]. Xilinx (2008, September 18). ISE 10.1 Quick<br />
Start<br />
Tuorial<br />
[Online].<br />
Available:<br />
http://www.xilinx.com<br />
Xilinx (2008, July 14). MicroBlaze Processor<br />
Reference Guide [Online].<br />
Available:<br />
http://www.xilinx.com.<br />
<br />
95<br />
<br />