4. 1.Giới thiệu
• Embedded Os?
Theo định nghĩa của IEEE thì hệ thống nhúng là một hệ tính toán nằm trong
sản phẩm, tạo thành một phần của hệ thống lớn hơn và thực hiện một số chức
năng của hệ thống
Một hệ điều hành được sử dụng trong các ứng dụng chuyên dùng (hệ
thống nhúng)được gọi là hệ điều hành nhúng. Hệ thống điều hành nhúng
thường rất nhỏ gọn và thường được thiết kế cho các hoạt động thời gian thực
• Hệ điều hành sử dụng:Embedded Linux, VxWorks, Win CE, Lynyos, BSD,
Green Hills, QNX,DOS....
6. 1.Giới thiệu
Do thị trường của các sản phẩm nhúng tăng mạnh nên các nhà
sản xuất ngày càng sử dụng các hệ điều hành nhúng để bảo
đảm sản phẩm có sức cạnh tranh và Embedded Linux đang là
sản phẩm hệ điều hành nhúng có uy tín chiếm vị trí số hàng
đầu.
7. Khả năng phát triển và tiềm năng hiện nay
Cách đây 10 năm ,Embedded Linux là một ý tưởng gây ngạc nhiên với mọi
người.Những năm sau đó Embedded Linux được phát triển với nhiều phiên
bản khác nhau,như DIY(do it yourself),Monta Vista,WindRiver
8. Khả năng phát triển và tiềm năng hiện nay
• Hiện nay 70% các nhà thiết kế các hệ nhúng cân nhắc
đầu tiên sử dụng Embedded Linux cho các ứng dụng
mới của mình và sau đó mới đến các hệ điều hành
nhúng truyền thống như VxWorks, Win CE.
9. Các s n ph m ng d ngả ẩ ứ ụ
Embedded Linux Os
• Các sản phẩm truyền thông tiêu biểu là LCD TV nhãn hiệu Bravia của hãng
Sony…
• Các sản phẩm điện tử tiêu dùng (consumer electronics), tiếp đến là trong
các sản phẩm ô tô, phương tiện vận chuyển, máy móc thiết bị y tế, các thiết
bị năng lượng, các thiết bị cảnh báo bảo vệ và các sản phẩm đo và điều
khiển, đồ chơi, nguời máy công nghiệp, vệ tinh, bộ đọc sách e-book…
10. M t s Embeddedộ ố Os đ c s d ng hi nượ ử ụ ệ
nay
• Lineo Embedix
– Hỗ trợ thời gian thực và các ứng dụng khả năng thích ứng cao
• LynuxWorks BlueCat
• MontaVista Linux
• Vital Systems vLinux
– Hỗ trợ ứng dụng sử dụng kiến trúc ARM
11. 2.Kiến trúc của Embedded Linux
2.1 Kiến trúc tổng quát của Embedded System
Để có thể giải thích đơn giản, chúng ta sẽ xem xét một hệ thống điều khiển các tiến trình
công nghiệp. Nó được thiết kế từ các máy tính kết nối mạng và tất cả đều sử dụng
Embedded Linux. Hình dưới thể hiện các khối đơn giản của hệ thống.
12. 2.Kiến trúc của Embedded Linux System
• Data acquition (DAQ)
• Control
• System Management (SYSM)
• User interface (UI)
• Kết nối bên trong giữa các thành phần sử dụng các giao tiếp
TCP/IP trên Ethenet.
• SYSM có một kết nối với hệ thống mạng bên ngoài. Để điều
khiển một tiến trình, hệ thống luôn cần biết trạng thái của các
tiến trình trong các thành phần khác nhau.
13. 2.Kiến trúc của Embedded Linux System
1. Hardware:
• Vi xử lý, bộ nhớ, tụ điện, điện trở, mạch tích
hợp, bảng mạch in, connector, …. Tất nhiên,
đây là thành phần bắt buột phải có cho tất cả
các hệ thống nhúng.
2. Phần mềm hệ thống:
• Device driver: UART, Ethernet, ADC…
• Hệ điều hành nhúng: eCos, ucLinux,
VxWorks, Monta Vista Linux, BIOS…
• Quản lý bộ nhớ, quản lý tiến trình, quản lý
chia sẽ tài nguyên,có thể tái sử dụng trên một
hệ thống nhúng khác
14. 2.Kiến trúc của Embedded Linux System
3. Phần mềm ứng dụng
•Không bắt buộc phải có.
•Quyết định chức năng của một hệ thống
nhúng.
•Khó tái sử dụng trên một hệ thống nhúng
khác.
16. Phần mềm trong Embedded Linux
Để có thể tồn tại và phát triển, các sản phẩm công nghiệp và tiêu dùng sử
dụng công nghệ nhúng cần phải thường xuyên đổi mới nhiều chức năng tiện
dụng và thông minh hơn. Các chức năng này phần lớn do các chương trình
nhúng tạo nên.
Embedded linux được một số phần mềm, công cụ hỗ trợ như:
•Bootloaders.
•Linux Kernel.
•Cross compiler.
•C library.
•…
17. Phần mềm trong Embedded Linux
1.Cross Complier
• Cross compiler là một trình biên dịch
được sử dụng để thực thi cho hệ thống
nhúng, nó có khả năng tạo ra mã thực
thi cho một nền tảng khác so với trình
biên dịch được chạy.
• Vd:như là biên dịch một image của
ARM trên một máy tính cá nhân dùng
hệ điều hành Linux
18. Phần mềm trong Embedded Linux
2.Bootloader
• Bootloader là một thành phần
quan trọng của hệ thống nhúng,
nó cung cấp nền tảng và phân bổ
cho các hệ thống phần mềm khác
hoạt động.
• Bất cứ chương trình nào muốn
chạy, nó phải được bootloader lấy
mã số khởi tạo từ thiết bị lưu trữ
(thường là bộ nhớ Flash) để khởi
động. Bootloader sẽ chịu trách
nhiệm quản lý chương trình đó
trong suốt quá trình sống của nó.
19. Phần mềm trong Embedded Linux
3.Kernel Linux
• Kernel Linux là phần mềm cơ bản nhất của
hệ thống Linux. Nó quản lý các phần cứng
trống trong hệ thống.
• Kernel Linux xử lý hệ thống cho các
chương trình và truy cập gián tiếp vào các
thiết bị phần cứng. Đặc biệt, Kernel Linux
có thể truy cập vào tài nguyên hệ thống mà
không cần giao tiếp trực tiếp với phần
cứng.
• Cấu hình Kernel cho phép loại bỏ những
hỗ trợ không cần thiết, và ngược lại, nó có
thể hỗ trợ thêm một thiết bị ngoại vi đặc
biệt.
20. Phần mềm trong Embedded Linux
• Linux kernel 2.6 nhiều tính năng mới cải tiến
giúp hệ điều hành tốt hơn như:
• + Tăng cường hiệu quả thời gian thực. Nó có
thể đáp ứng được các nhu cầu nghiêm ngặt về
thời gian.
• + Hỗ trợ cho các mô hình bộ nhớ lớn, hỗ trợ
cho vi điều khiển.
• + Hỗ trợ các phần cứng mới.
• Ngoài ra, Linux kernel 2.6 hỗ trợ một số vi
điều khiển không có đơn vị quản lý bộ nhớ, hỗ
trợ các bộ vi xử lý m68k Motorola,
Dragonball, ColdFire, Hitachi…
• 21/7/2011 Linus Torvalds đã công
bố phiên bản Linux 3.0
21. Phần mềm trong Embedded Linux
• 4.C Library
• Trong hệ thống nhúng linux, ngôn ngữ
được sử dụng chủ yếu là C, hoặc C++. Do
đó, trong hệ thống nhúng linux, cũng cần
có công cụ hỗ trợ các hàm thư viện C.
glibc (thư viện chuẩn C trong GNU)
chiếm khá nhiều chỗ, trong khi chúng ta
cần tìm một thư viện C có đầy đủ các
chức năng và tương đối nhỏ
• uClibc (thư viện chuẩn C trong hệ thống
nhúng linux) cung cấp hầu hết các chức
năng tương tự như glibc nhưng có kích
thước nhỏ gọn hơn .
23. Giới thiệu và tìm hiểu về phần cứng đối với
Embedded Linux
• 1. Yêu cầu phần cứng:
• Phải đáp ứng được được các yêu cầu sau:
• -- Bộ vi xử lý / vi điều khiển 32 bit trở lên, có chứa một đơn vị
quản lý bộ nhớ (MMU).
• -- Phải đủ bộ nhớ RAM cung cấp cho hệ thống. Embedded
Linux yêu cầu tối thiểu khoảng 4MB SDRam và 2MB flash
đối với một hệ thống bao gồm cả networking và file system.
24. Giới thiệu và tìm hiểu về phần cứng đối với
Embedded Linux
• 2. Khả năng tích hợp phần cứng
• Hiện nay, hệ thống nhúng đang rất phát triển. Với FPGA, với
ngôn ngữ mô tả phần cứng, với sự hỗ trợ đắc lực của các phần
mềm, chúng ta có thể dễ dàng xây dựng được một hệ thống
tích hợp trên một chip (SoC - system on chip)
25. Giới thiệu và tìm hiểu về phần cứng đối với
Embedded Linux
• 3. Các phần cứng tích hợp hiện nay
Đ u ghi 8 kênhầ
Điện thoại Motorola E680 sử
dụng Embedded Linux
Thiết bị download torrent sử dụng
Embedded Linux
Motorola RAZR 2
26. Giới thiệu và tìm hiểu về phần cứng đối với
Embedded Linux
Motorola,ARM ELKS ThinLinux
27. IV - Ưu nhược điểm EmbeddedIV - Ưu nhược điểm Embedded
LinuxLinux
28. 1.Ưu điểm của Embedded Linux
• a. Chi phí thấp: chi phí phát triển, giá thành cho thuê rẻ, không mất phí bản
quyền, thời gian bảo trì hệ thống thấp.
•
b. Mã nguồn mở: độc lập với nhà sản xuất, được phát triển bởi nhiều hãng,
nhiều người với nhân Linux và các ứng dụng khác.
•
c. Giao diện Hệ Điều Hành gọn nhẹ (Portable Operation System Interface)
•
d. Khả năng xử lí mạnh: Hiệu suất thực thi cao, nhanh, tần suất thất bại
thấp, chạy ổn định, hỗ trợ nhiều tập công cụ và tiện ích, khả năng làm việc
với mạng cao.
•
e. Hỗ trợ đa dạng phần cứng: từ 1 đến nhiều vi xử lí, từ các hệ thống đơn
giản đến phức tạp, hỗ trợ đầy đủ khả năng tùy biến người dùng trong tất cả
các thành phần của nó.
29. 2.Nhược điểm của Embedded Linux
• Embedded Linux không phải là hệ điều hành thời gian thực:
– Nên có thể không phù hợp với một số ứng dụng như điều khiển quá
trình.
– Các ứng dụng có các yêu cầu xử lý khẩn cấp.
• Thiếu một chuẩn thống nhất.
• Không phải là sản phẩm của một nhà cung cấp duy nhất, nên khả năng hỗ
trợ kỹ thuật ít.
30. 3. So sánh Embedded Linux với hệ nhúng
khác (Windows CE)
WinCE
Không phải hệ điều hành thời gian
thực
Hệ điều hành thời gian thực
Chạy tốt trên những hệ thống vừa và
nhỏ
Phải chạy trên những hệ thống có bộ
nhớ RAM và ROM lớn hơn.
Không có(hoặc ít) hỗ trợ về kỹ thuật Có hỗ trợ về kỹ thuật
Hệ điều hành mã nguồn mở Hệ điều hành không mở, thu phí
31. V.Giới thiệu về các ứng dụng dựa trên nền
Embedded Linux
1.BAE Systems
32. • Hãng sản xuất vũ khí BAE Systems Bofors (Karlskoga,
Sweden) đã chọn MontaVista Linux để điều khiển các hệ
thống pháo mặt đất và pháo trên tàu chiến mới nhất của hãng.
Việc chọn bộ phần mềm Linux nhúng thương mại này nhằm
mục đích lập trình nhanh và có sự hỗ trợ dài hạn mà các ứng
dụng quân sự yêu cầu.
2.BAE Systems
Nói một cách đơn giản khi một hệ tính toán (có thể là PC, IPC, PLC, vi xử lý, vi hệ thống, DSP vv…) được nhúng vào trong một sản phẩm hay một hệ thống một cách hữu cơ và thực hiện một số chức năng cụ thể của hệ thống thì ta gọi đó là một hệ thống nhúng
Tuy nhiên ta cũng hoàn toàn có thể disable phần networking và file system này. Với bộ nhớ 16MB hoặc 32MB SDRAM và 4MB flash sẽ cho phép thêm các “rich set of applications” cho phép tăng hiệu năng.
Field-programmable gate array (FPGA) là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được
Do bản chất sản phẩm, BAE cần một nền tảng tin cậy và có chất lượng cao nhất.Cuối cùng BAE quyết định chọn Linux làm môi trường phát triển và dùng hệ điều hành MontaVista Linux Professional Edition.