Đánh giá kết quả

Một phần của tài liệu Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS (Trang 46)

Ở trên đã tiến hành thực hiện các phép đo để đánh giá khả năng thời gian thực. Có nhiều thông số hơn có thể đƣợc đo để đánh giá hiệu năng thời gian thực. Trong đó các thông số cơ bản đƣợc dùng để đánh giá các hệ điều hành thời gian thực là trễ ngắt, trễ lập lịch trình và thời gian chuyển khóa ngữ cảnh. Từ các kết quả ở trên ta thấy, thời gian đáp ứng với ngắt ngoài của Xenomai và RTAI là tƣơng đƣơng nhau. Kết quả của của phép đo trễ lập lịch trình là khác nhau chút ít. Trong không gian ngƣời dùng không có sự khác nhau giữa Xenomai và RTAI. Tuy nhiên, nếu sử dụng trong nhiệm vụ không gian nhân, RTAI cung cấp hiệu năng tốt hơn nhiều so với Xenomai. Thời gian chuyển khóa ngữ cảnh tới Linux, thì Xenomai là tốt hơn chút ít so với RTAI.

Ngoài ra, RTAI có đặc điểm rất hữu ích đó là chuyển các sơ đồ khối thành các chƣơng trình có thể thực thi thời gian thực đƣợc. Luận văn này sẽ lựa chọn RTAI để thực hiện điều khiển và sẽ tiến hành ứng dụng để điều khiển động cơ một chiều.

45

CHƢƠNG 4: THỰC HIỆN HỆ THỐNG THỜI GIAN THỰC 4.1. Cấu trúc hệ thống thời gian thực

4.1.1. Phần cứng

Sử dụng PC:

- Intel(R) Pentium(R) 4CPU 2.80GHz - 1024 MB main memory

- Base kernel: 2.6.17 and 2.6.17 - 100 Mbit/s Ethernet

4.1.2. Hệ điều hành

Hệ điều hành Linux: Ubuntu 10.04

4.1.3. Các phầm mềm đƣợc sử dụng

Comedi: Cung cấp các trình điều khiển, thƣ viện hàm, và API giao tiếp với phần cứng truy nhập tín hiệu. Hỗ trợ hàm trăn cá thiết bị khác nhau.

www.comedi.org.

RTAI: Real-Time Application Interface (RTAI) là bản vá nhân Linux. RTAI

trèn một nhân phụ ở đó nhiệm vụ thời gian thực có thể thực hiện, bộ nhớ FIFOs và bộ nhớ chia sẻ có thể sử dụng để truyền dữ liệu giữa cá tiến không gian ngƣời dùng và không gian nhân.www.rtai.org.

RTAI-LIB: RTAI-Lib cho phép bạn biên dịch các sơ đồ khối với cơ cấu chấp hành và cảm biến thành ứng dụng có thể thực thi. Nó cung cấp giao tiếp giữa RTAI và phầm cứng truy nhận dữ liệu. Nó có trong sẵn gói phần mềm RTAI.

QRTAILab: QRTAILab giống nhƣ phần mềm hiện sóng, nó có thể kết nối với cá ứng dụng thời gian thực của bạn và cho bạn giám sát tín hiệu trên màn hình.

Nó cũng cho phép bạn điều chỉnh các thông số của ứng dụng thời gian thực trong

khi chạy. http://qrtailab.sourceforge.net

Matlab: Matlab là phầm mềm cho phép thiết kế mô phỏng hệ thống điều

46

4.2. Các bƣớc tiến hành cài đặt hệ điều hành thời gian thực RTAI.

4.2.1. Chuẩn bị các gói phần mềm cần thiết phục vụ cài dặt các phần mềm. 4.2.1.1. Các gói phục vụ chung cho tất cả phần mềm. 4.2.1.1. Các gói phục vụ chung cho tất cả phần mềm.

Bảng 4.1: Cài đặt các gói phần mềm phục vụ cài đặt chung cho hệ thống.

Tên gói phần mềm cvs

subversion build-essential

Lệnh thực hiện sudo apt-get install cvs subversion build-essential 

4.2.1.2. Các gói phục vụ cho cài đặt nhân.

Bảng 4.2: Các gói phần mềm phục vụ cài đặt cho nhân hệ thống.

Tên gói phần mềm kernel-package linux-source libncurses5-dev

Lệnh thực hiện sudo apt-get install kernel-package linux-source libncurses5- (adsbygoogle = window.adsbygoogle || []).push({});

dev 

4.2.1.3. Các gói phục vụ cho cài đặt rtai.

Bảng 4.3: Các gói phần mềm phục vụ cài đặt cho bản vá thời gian thực RTAI.

Tên gói phần mềm Libtool automake

Lệnh thực hiện sudo apt-get install libtool automake 

4.2.1.4. Các gói phục vụ cho cài đặt comedi-lib.

Bảng 4.4: Các gói phần mềm phục vụ cài đặt thƣ viện trình điều khiển Comedi.

Tên gói phần mềm bison flex

Lệnh thực hiện sudo apt-get install bison flex 

4.2.1.5. Các gói phục vụ cho cài đặt comedi-calibrate.

Bảng 4.5: Các gói phần mềm phục vụ cài đặt kiểm thử trình điều khiển Comedi.

Tên gói phần mềm libboost-dev

libboost-program-options-dev libgsl0-dev

47

dev libgsl0-dev 

4.2.1.6. Các gói phục vụ cho cài đặt qrtailab.

Bảng 4.6: Các gói phần mềm phục vụ cài đặt phần mềm giám sát quá trình QRTAILAB.

Tên gói phần mềm libqt4-dev libqwt5-qt4-dev

Lệnh thực hiện sudo apt-get install libqt4-dev libqwt5-qt4-dev 

4.2.2. Chuẩn bị các bộ cài cho hệ thống thời gian thực 4.2.2.1. Bộ cài Nhân. 4.2.2.1. Bộ cài Nhân.

Bảng 4.7: Các lệnh cài đặt nhân hệ thống.

Tên phần mềm Kernel

Địa chỉ website http://www.kernel.org

Lệnh thực hiện cd /usr/src 

sudo wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-

2.6.32.11.tar.bz2 

sudo tar xjvf linux-2.6.32.11.tar.bz2 

sudo ln –s linux-2.6.32.11 linux 

4.2.2.2. Bộ cài RTAI.

Bảng 4.8: Các lệnh cài đặt phần mềm thời gian thực. (adsbygoogle = window.adsbygoogle || []).push({});

Tên phần mềm RTAI

Địa chỉ website https://www.rtai.org

Lệnh thực hiện cd /usr/src 

sudo cvs -d:pserver:anonymous@cvs.gna.org:/cvs/rtai co magma

sudo ln –s magma rtai 

4.2.2.3. Bộ cài COMEDI.

Bảng 4.9: Các lệnh cài đặt trình điều khiển thiết bị Comedi.

Tên phần mềm COMEDI

Địa chỉ website http://www.comedi.org

Lệnh thực hiện cd /opt 

48 login  sudo cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi  sudo cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedilib  sudo cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi_calibrate  sudo cvs –d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi-nonfree-firmware  4.2.2.4. Bộ cài QRTAILab

Bảng 4.10: Các lệnh cài đặt phần mềm giám sát quá trình QRTAILAB.

Tên phần mềm QRTAILab

Địa chỉ website http://www.qrtailab.sf.net

Lệnh thực hiện cd /opt 

sudo svn co

https://qrtailab.svn.sourceforge.net/svnroot/qrtailab/trunk qrtailab



4.2.3. Thực hiện cài đặt các phần mềm.

Sau khi cài hệ điều hành Ubuntu 10.4, Thì hệ thống sử dụng gói phần mềm grub 2 để quản lý các hệ điều hành có trên hệ thống. Tuy nhiên, do g bản vá thời gian thực RTAI chƣa tƣơng thích với gói phần mềm này, nên cần phải đƣa về sử dụng phiên bản cũ hơn đó là Grub Legacy (GRUB 0.97).

4.2.3.1. Thực hiện cài đặt phiên bản quản lý hệ điều hành GRUB 0.97 Bảng 4.11: Các lệnh thực hiện lƣu lại cấu hình phiên bản Grub 2. Bảng 4.11: Các lệnh thực hiện lƣu lại cấu hình phiên bản Grub 2.

Lệnh sudo cp /etc/default/grub /ect/default/grub.old 

sudo cp –R /ect/grub.d /etc/grub.d.old 

sudo cp –R /boot/grub /boot/grub.old 

Mục đích Lƣu lại cấu hình cài đặt của phiên bản Grub 2 để có thể khôi phục khi xảy ra lỗi.

Bảng 4.12: Các lệnh thực hiện gỡ bỏ gói phần mềm Grub 2. Lệnh sudo apt-get purge grub2 grub-pc 

49

Mục đích Gỡ bỏ gói phần mềm quản lý khởi động của các hệ điều hành.

Lúc này hệ thống sẽ không thể khởi động cho tới khi gói phần mềm quản lý khởi động khác đƣợc cài vào. (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 4.13: Các lệnh thực hiện cài đặt gói phần mền grub legacy (GRUB 0.97).

Lệnh sudo apt-get install grub 

Mục đích Cài đặt gói phần mền grub legacy (GRUB 0.97).

Lúc này hệ thống đã có thể khởi động. Tuy nhiên để có thể lựa chọn các hệ điều hành để thực hiện hệ thống thì phải tạo cấu hình lại hệ thống.

Bảng 4.14: Các lệnh thực hiện tạo file cấu hình khởi động cho hệ thống.

Lệnh sudo update-grub 

sudo grub-install /dev/sdX 

echo “grub hold” | sudo dpkg –set-selections 

sudo reboot 

Mục đích Trong đó: /dev/sdX: là phần vùng đặt root của linux (có thể là sda, sdb …)

Tạo ra các file cấu hình lựa chọn hệ điều hành khở động: menu.lst và stage1/stage2.

Khởi động lại máy để hoàn thành cài đặt gói phần mềm GRUB 0.97

4.2.3.2. Thực hiện cài đặt bản vá nhân hỗ trợ thời gian thực. Bảng 4.15: Các lệnh thực hiện sửa đổi mã nguồn của nhân. Bảng 4.15: Các lệnh thực hiện sửa đổi mã nguồn của nhân.

Lệnh cd /usr/src/linux 

sudo su

patch -p1 < /usr/src/rtai/base/arch/x86/patches/hal-linux-2.6.32.11-x86-

2.6-03.patch 

Mục đích Thực hiện sử đổi mã nguồn của nhân để nhân có thể hỗ trợ hệ thống thực hiện thời gian thực

Bảng 4.16: Các lệnh thực hiện tạo file cấu hình biên dịch nhân. Lệnh sudo cp /boot/config-`uname –r` .config 

cd /usr/src/linux 

50

Mục đích Thực hiện tạo ra file cấu hình để biên dịch nhân hỗ trợ thời gian thực. Những lựa chọn ở đây sẽ ảnh hƣởng đến hiệu năng thực hiện thời gian thực của hệ thống.

Giao diện để cấu hình nhân:

Hình 4.1: Giao diện cấu hình biên dịch nhân.

Để cấu hình cho hệ thống thời gian thực ở đây ta phải loại bỏ các yếu tố dẫn đến việc hệ thống loại bỏ trễ. Có thể lựa chọn cấu hình nhƣ ở dƣới:

 Enable loadable module support:

o chọn “Enable module support”.

o bỏ chọn “Module versioning support”

 Processor type and features:

o Bỏ chọn “Tickless System”. (adsbygoogle = window.adsbygoogle || []).push({});

o Chọn cấu máy là PC-Compatible

o Chọn dòng của bộ xử lý Due 2 core.

o Chọn « Preemption Model (Preemptible kernel (Low-Latency

Desktop))”

51

o bỏ chọn “CPU Frequency scaling”.

Bảng 4.17: Các lệnh thực hiện biên dịch nhân.

Lệnh cd /usr/src/linux 

sudo make-kpkg clean 

sudo make-kpkg --initrd kernel_image kernel_headers kernel_source 

Mục đích Thực hiện biên dịnh mã nguồn nhân thành file có thể thực hiện trong môi trƣờng Linux.

Bảng 4.18: Các lệnh thực hiện vài đặt nhân. Lệnh cd /usr/src 

sudo dpkg -i linux-headers-2.6.32.11-rtai_2.6.32.11-rtai-

10.00.Custom_i386.deb 

sudo dpkg -i linux-image-2.6.32.11-rtai_2.6.32.11-rtai-

10.00.Custom_i386.deb 

sudo update-initramfs –c –k 2.6.32.11-rtai 

sudo reboot 

Mục đích Thực hiện cài đặt phiên bản nhân đã biên dịch.

Khởi động lại hệ thống và chọn phiên bản nhân hỗ trọ thời thực này.

4.2.3.3. Cài đặt các module hỗ trợ lập trình thời gian thực RTAI Bảng 4.19: Các lệnh thực hiện cài đặt bản vá thời gian thực RTAI. Bảng 4.19: Các lệnh thực hiện cài đặt bản vá thời gian thực RTAI.

Lệnh cd /usr/src/rtai 

sudo make menuconfig 

sudo make 

sudo make install 

sudo sed -i 's/\(PATH=\"\)/\1\/usr\/realtime\/bin:/' /etc/environment

'export PATH=/usr/realtime/bin:$PATH' 

Mục đích Thự hiện cài đặt các module hỗ trợ thời gian thực của hệ thống. Chú ý:

Trong trƣờng hợp xảy ra lỗi nhƣ: “../../../base/include/asm/rtai_leds.h:24:20: error:asm/io.h: No such file or directory” thì xóa bỏ dòng “#include <asm/io.h>” trong file rtai_leds.h và thực hiện lại lệnh make.

52 (adsbygoogle = window.adsbygoogle || []).push({});

4.2.3.4. Cài đặt trình điều khiển thiết bị cho các thiết bị mở rộng COMEDI Bảng 4.20: Các lệnh thực hiện cài đặt trình điều khiển thiết bị truy nhập dữ liệu.

Lệnh cd /opt/comedi 

sudo sh autogen.sh 

sudo ./configure --with-linuxdir=/usr/src/linux --with-

rtaidir=/usr/realtime 

sudo make 

sudo make install 

sudo make dev 

Mục đích Cài đặt trình điều khiển cho các thiết bị truy nhập dữ liệu đƣợc bổ xung vào hệ thống.

Bảng 4.21: Các lệnh thực hiện cài đặt các thƣ việc hỗ trợ lập trình để khai thác thiết bị truy nhập dữ liệu (thƣ việc COMEDILIB).

Lệnh cd /opt/comedilib 

sudo sh autogen.sh 

sudo ./configure 

sudo make 

sudo make install 

sudo mkdir /usr/local/include/linux 

Mục đích Cài đặt thƣ viện hỗ trợ lập trình giao tiếp với thiết bị truy nhập dữ liệu.

Bảng 4.22: Các lệnh thực hiện cài đặt các công cụ căn chỉnh, kiểm định thiết bị truy nhập dữ liệu(COMEDI-CALIBRATE).

Lệnh cd /opt/comedi_calibrate 

sudo autoreconf -i -B m4 

sudo ./configure 

sudo make 

sudo make install 

Mục đích Cài đặt các công cụ căn chỉnh thiết bị truy nhập dữ liệu. Căn chỉnh phạm vi, giá trị quy chiếu của các cổng vào/ra.

53

4.2.3.5. Cài đặt các module hỗ trợ thời gian thực RTAI, cập nhập hỗ trợ thêm module truy nhập dữ liệu COMEDI

Bảng 4.23: Thêm các thƣ viện của trình điều khiển truy nhập dữ liệu mở rộng vào bản vá thời gian thực RTAI.

Lệnh sudo cp /opt/comedi/include/linux/comedi.h /usr/local/include/ 

sudo cp /opt/comedi/include/linux/comedilib.h /usr/local/include/ 

sudo ln -s /usr/local/include/comedi.h  (adsbygoogle = window.adsbygoogle || []).push({});

/usr/local/include/linux/comedi.h 

sudo ln -s /usr/local/include/comedilib.h 

/usr/local/include/linux/comedilib.h 

cd /usr/src/rtai 

sudo make menuconfig 

Mục đích Thêm các module điều khiển truy nhập dữ liệu mở rộng và thực hiện cấu hình để RTAI hỗ trợ module điều khiển.

Để cấu hình RTAI hỗ trợ module điều khiển. thực hiện nhƣ sau;

Trong mục “Add-Ons” chọn “Real Time COMEDI support in user space”

54

Hình 4.2: Giao diện cấu hình biên dịch các module RTAI.

Bảng 4.24: Thực hiện biên dịch và cài lại các module RTAI đã tích hợp trình điều khiển Comedi.

Lệnh sudo ./configure 

sudo make 

sudo make install 

Mục đích Thực hiện cài đặt các module hỗ trợ lập trình thời gian thƣc RTAI sau khi thêm module hỗ trợ các bo mạch truy nhập dữ liệu mở rộng

Bảng 4.25: Tải các module RTAI vào nhân.

Lệnh /sbin/insmod /usr/realtime/modules/rtai_smi.ko  /sbin/insmod /usr/realtime/modules/rtai_hal.ko  /sbin/insmod /usr/realtime/modules/rtai_lxrt.ko  /sbin/insmod /usr/realtime/modules/rtai_fifos.ko  /sbin/insmod /usr/realtime/modules/rtai_sem.ko  /sbin/insmod /usr/realtime/modules/rtai_mbx.ko 

55 /sbin/insmod /usr/realtime/modules/rtai_msg.ko  /sbin/insmod /usr/realtime/modules/rtai_netrpc.ko  /sbin/insmod /usr/realtime/modules/rtai_shm.ko  modprobe comedi  modprobe kcomedilib  modprobe comedi_fc  modprobe ni_mio_cs  insmod /usr/realtime/modules/rtai_comedi.ko 

comedi_config -v /dev/comedi0 ni_mio_cs 0x0100 

comedi_calibrate –calibrate 

chmod a+rw /dev/comedi0 

Mục đích Thực hiện tải các module hỗ trợ thời gian thực vào nhân để các ứng dụng có thể thực hiện đƣợc các nhiệm vụ thời gian thực.

Chú ý: Để các hệ thống có thể chạy đƣợc thời gian thực thì các module này phải đƣợc tải lại mỗi khi khở động.

Cài đặt tải tự động các module thời gian thực mỗi khi khởi động hệ thống.

 Tạo file start_rtai trong /usr/local/bin/start_rtai chứa các lệnh thực

hiện tải các module vào nhân ở trên.

 Thay đổi thực tính để file này có thể thực hiện trong môi trƣờng

Linux bằng lệnh: sudo chmod a+x /usr/local/bin/start_rtai.

 Mở file /etc/rc.local bằng lệnh sudo gedit /etc/rc.local để thêm lệnh

nạp các module RTAI vào. Sau khi mở file /etc/rc.local, chèn dòng lệnh „/usr/local/bin/start_rtai‟ vào trƣớc lệnh „exit 0‟. Các lệnh nằm trong dấu nháy đơn. (adsbygoogle = window.adsbygoogle || []).push({});

 Khởi động lại máy, hoàn tất quá trình cài đặt hệ điều hành thời gian

thực RTAI.

 Để kiểm tra các module đƣợc nạp vào nhân chƣa có thể thông qua

56

Hình 4.3: Kết quả kiểm tra các module RTAI đƣợc nạp bằng lệnh dmesg.

4.2.3.6. Cài đặt công cụ giám sát các thông số của hệ thống QRTAILAB Bảng 4.26: Cài đặt phần mềm giám sát quá trình Qrtailab. Bảng 4.26: Cài đặt phần mềm giám sát quá trình Qrtailab.

Lệnh cd /opt/qrtailab 

sudo qmake-qt4 

sudo make 

sudo make install 

Mục đích Cài đặt công cụ giám sát các thông số của ứng dụng thời gian thực. Nó có thể thực hiện thay đổi các thuộc tính của đối tƣợng thời gian thực. Giao diện của chƣơng trình qrtailab:

57

Hình 4.4: Giao diện của phần mềm giám sát QRTAILAB.

4.2.3.7. Cài đặt môi trƣờng phát triển ứng dụng thời gian thực Matlab

Matlab đƣợc lƣu trữ trong file matu2k8b.iso có định dạng ISO (là định dạng file ảnh của đĩa DVD-ROM).

Bảng 4.27: Tạo đƣờng dẫn cho phép truy nhập vào file matu2k8b.iso.

Lệnh sudo mkdir /media/matlab_iso 

sudo mount –o loop /path_to_iso_file/matu2k8b.iso 

Mục đích Tạo thƣ mục để có thể truy nhập đƣợc vào file matu2k8b.iso. nhƣ một thƣ mục thông thƣờng để có thể thực hiện các file cài đặt bên trong

Một phần của tài liệu Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS (Trang 46)