CHƯƠNG 1: GIỚI THIỆU VE HE THONG NHÚNG. Hệ thống nhúng là gì? Như chính tên gọi của nó, hệ thống nhúng là một thiết bị nhúng vào một hệ thống lớn hơn, cho phép những hệ thống đó có thể giao tiếp với môi trường vật lý thực thụ. Hệ thống nhúng được thiết kế với giá thấp, hoạt động tin cậy cao sử dụng cho những mục dich đặt biệt nào đó. So với những may tính để bàn, cả hai hệ thống này đều có chương trình ứng dụng và phần cứng nhưng giao tiếp giữa người sử dụng và hệ thống thì hoàn toàn khác nhau.
Thông thường những thiết bị nhúng có những giao diện người dùng rất hạn chế, nó chỉ có một số nút nhấn hay vài led hiển thị giữa người dùng và những hệ thống khác hay có thể chẳng có giao tiếp người dùng nào cả. Những hệ thống nhúng thường thì chỉ giao tiếp với một thiết bị độc lập nào đó thiết kế cho một công việc chuyên biệt nào đó Hệ thống nhúng ngày nay Ngày nay, hệ thống nhúng điều khiển hàng loạt những loạt những tác vụ khác nhau để đưa vào những thiết bị đòi hỏi năng lực xử lý mạnh và tính phức tạp cao. Hệ thống nhúng chang những đựơc tích hợp và nối kết vào nhiều loại máy móc mà còn có thé là những thiết bị đứng độc lập một mình như máy PDA, điện thoại di động, máy nghe nhạc. Những loại thiết bị này có rất hữu dụng cho cuộc sống hằng ngày của chúng ta, mà hoàn toàn có thê cài đặt chương trình ứng dụng theo ý của người dùng.
Một mảng rất lớn những hệ thống nhúng này đã đưa vào công nghiệp đề sử dụng. Với một vài nút nhân, màn hình hiển thị đơn giản, hệ thống nhúng có thề kết nối để dàng với mạng LAN hay Internet mà không cần phải sửa đổi nhiều về hệ thống và phần chương trình. Hệ thống nhúng có thể hoạt động như một modem kết nói với hệ thông lớn. Những thông tin thu thập được có thể hiển thị trên PC thông qua phòng điều khiển và những thông tin cần thiết có thé tắt thiết bị từ xa từ phòng điều khiển.
Hơn nữa hệ thống nhúng có thề gồm những đầu vào/ra tín hiệu tương tự (analog) và sô (digital) đê xử lý những thông tin thu thập được. Hệ thống nhúng ngày nay có thé đơn giản chia thành hai loại: hệ thông nhúng cao cap (high-end Embedded System) và hệ thông nhúng sâu ( deeply embedded System) e Loai High-end Embedded System: sử dụng những hệ điều hành thông dụng, được tinh giản bớt một số chức năng, module. Ngày càng có nhiều hệ thống nhúng dùng ngày, chăng hạn như máy PDA, điện thoại di động. © Deeply Embedded System: được thiết kế cho những ứng dụng chuyên biệt nào đó.
Nó hoàn toàn rất đơn giản, được thiết kế cho một ít những chức năng rất đơn giản. Vì vậy, thiết ké hệ điều hành, phần cứng rất giản đơn cho các hệ thống này, mà người dùng ít thấy những giao tiếp của nó. Một trong những ví dụ đơn giản của hệ thống này như: a điều khiến của lò vi sóng, máy giặt, máy điều hoà. Các phép toán trong hệ thống nhúng: Do những linh kiện như xử lý, bộ nhớ ngày càng rẻ và càng được nhúng vào nhiều thiết bị khác nhau nên giá thành của những linh kiện này ngày càng rẻ, năng lực xử lý ngày càng mạnh hơn, những phép tính toán được ngày càng phức tạp cao.
Những tài nguyên khác nhau chạy trên những thiết bị yêu cầu phải được điều khiển bởi một hệ điều hành ngày càng thông minh hơn. 13 Khái niệm về hệ điều hành cũng chưa được rõ ràng lắm trong trường hợp này. Thông thường hệ điều hành đảm nhận nhửng công việc phát huy khả năng của phần cứng. Điều này có nghĩa là là nó cung cấp một lớp bằng cách cung cấp những driver cho những con chip vật lý và một giao diện API cho người lập trình.
Hệ điều hành cũng cung cấp tài nguyên cho chương trình ứng dụng của người dùng thực hiện bằng cách quản lý những ngắt, quản lý không gian vùng bộ nhớ cho những ứng dụng của người dùng. Hệ điều hành cũng cung cấp những tiện ích cho người lập trình.Những vấn đề giải quyết: Một trong những khác biệt chính của hệ điều hành thông thường và hệ điều hành nhúng là hệ điều hành nhúng xuât phát những phiên bản của hệ điều hành thông thường bỏ đi một số tính năng không cần thiết. Nhiều công ty, tổ chức bắt đầu phát triển những hệ điều hành nhúng cho những yêu cầu thiết bị. Da sé những công ty này chọn giải pháp UNIX-like ( hệ điều hành có kiến trúc giông Unix) để phát triển hệ thống.
Song song với đó, do hệ thống nhúng ngày càng phát triền nên nhiều Embedded OS mã nguôn không mở cũng được phát triển. Nhìn chung hệ điều hành chó thé chia ra thành những lớp sau: API Protocol OS:hệ điều hành 14 Drivers Firmware Firmware Hình 1: Kiến trúc hệ thống nhúng Những thuận lợi của việc triển khai hệ thồng nhúng giống UNIX - Linux là nó vẫn “chung thủy” với tính miễn phi, tính dễ cài đăt cấu hình và hỗ trợ mạnh phần mạng. Nó đã được cài đặt để chạy trên những thiết bị nhúng và đã có nhiều công ty cung cấp những giải pháp Linux này thương mại lẫn phi thương mại. Khi có được hệ thống nhúng này chúng thường bao gồm những bộ công cụ (toolchain), vài chương trình ứng dụng cài sẵn, vài thư viện cài đặt và dĩ nhiên phải có những lõi (KERNEL) thực sự.
Bộ công cụ cho phép bạn xây dựng những ứng dụng hay tạo ra những file ảnh cho thiết bị nhúng. Hầu hết những bộ này đều dựa trên bộ công cụ GNU Toolchain, nhưng nó chỉ bao gồm những gói (packages) cần thiết cho công cụ. Bằng cách bỏ bớt một só module không cần thiết va chi sử dụng những driver từ hệ điều hành thông dụng Linux Kernel, chúng ta có thể biên dich được ở kích thước cỡ khoảng 800Kb. Hầu hết hệ thống nhúng đều sử dụng ý tưởng này, tuy nhiên khi thêm vào những tính năng xử lý thời gian thực và hỗ trợ không dùng MMU, thì cần phải có thêm một số chỉnh sửa.
Một trong những ví dụ tỉnh giản Linux thông thường dé thành hệ điều hành của hệ thống nhúng là uClinux. Quần lý thiết bị trong hệ thống nhúng: Những giao diện vật lý phổ biến nhất của hệ thống nhúng là cổng nối tiếp Serial và công Ethernet. Những giao tiếp này cho phép quản lý vật lý thực hiện không cân phải có giao tiếp 15 người dùng như phần hiển thị và bàn phím. Từ những giao tiếp này, CÓ thể giao tiếp đề điều khiển hệ thống nhúng để điều khiển thiết bị cuối, nhưng ở trong bước phát triên ứng dụng, thì những giao tiếp này đề thiết bị Host kết nối để kiểm tra, gỡ lỗi của chương trình chạy trên hệ thống nhúng.
Cổng Serial cũng dùng để chép những tập tin anh (image file) vào thiết bị hay đề câu hình một sô tính năng cơ bản cho hệ thống nhúng. Giao tiếp USB khá phổ biến ngày nay, tuy nhiên hệ thống nhúng sử dụng giao tiếp này cũng còn ít. Giao tiếp vật lý Ethernet với những kết nói tới chương trình ứng dụng cho phép những thiết bị có thể kết nối với mạng. mô hình TCP/IP OSI có 4 lớp theo hai giao thức chuẩn là UDP và TCP bao quanh bởi những giao thức của lớp Applicaion-layer và lớp Host layer.
Hệ thống nhúng có thể cung cap nhiều loại ứng dụng khác nhau cho phép sử dụng để kết nối thiết và điều khiển những thiết bị. Ngoài ra, các giao thức như FTP, SMTP, HTTP cũng được hỗ trợ trong hệ thống nhúng phục vụ cho mục đích upload, download file cấu hình, chương trình. để gởi email tới host, để làm webserver. Phan cứng: Kiến trúc cơ bản của thiết bị nhúng thường được thiết kế dé kết nối với mạng thông ,qua giao tiếp, mạng.
Hệ thống thường được giữ lại giao tiếp serial dé két nôi với thiết bị nhúng tới toàn bộ hệ thống cuối, một giao tiếp Ethernet đề kết nối với mạng và một Micro controller Unit MCU và một vài loại bộ nhớ. Những hệ thống khác nhau thường liên quan tới nhiều loại bộ xử lý, kích thước và loại bộ nhớ và những giao diện mà nó hỗ trợ. Khi thiết kế phần cứng, mục đích của việc tiết kế là có thể đáp ứng được những yêu cầu thị trường của của khách hàng bằng cách so sánh với những giản pháp hiện thời hay việc đưa ra thị trường sản phâm nhanh hơn những đối thủ cạnh tranh. 16 Một trong những cách thay thế đĩa cứng là bộ nhớ Flash Memory.
Nó thiết kế dé thay thé dé giả lập thay cho 6 đĩa. Bộ nhớ Flash có ưu điểm là tiêu hao điện năng ít, truy xuất nhanh hơn, ít tốn không gian hơn. MCU cũng có hai loại, loại có MMU - Memory Management Unit và một loại khác không có phần MMU. Loại có MMU có ưu điểm là bộ nhớ được bảo vệ chặt chẽ khi những ứng dụng hoạt động, còn loại MMU-less thì phải có những chú ý đặt biệt khi sử dụng bộ nhớ, tuy nhiên giá thành processor sẽ rẻ, và hệ thống nhỏ gọn.
Lap trình trên hệ thống nhúng: Những đoạn mã viết cho những thiết bị nhúng thì được biên dịch trên máy chủ (host-machine) có cài đặt những công cụ phát triển (Development Tool). Trình tự xử lý này gọi là cross-compilation. Điều này có nghĩa là máy chủ ( thường là một Desktop PC) sẽ lưu trữ những kết quả của công cụ biên dịch và từ từ biên dịch ra những đoạn mã máy nhị phân cho những thiết bị nhúng đầu cuối. Ý tưởng chính là việc biên dịch có thể thực hiện trên một máy có năng lực mạnh hơn nên của thiệt bị nhúng thực sự.
Sau đó, toàn bộ những gói dữ liệu được biên dịch ra, bao gồm cả kiến trúc lõi kernel và những chương trình ứng dụng được đóng vào thành một gói là nạp vào hệ thống nhúng. Khi phát triển phần mềm cho những thiết bị hệ thống nhúng, cần phải kiêm tra chương trình. Trong những trường hợp xấu, những hệ ng nhúng độc lập có thê bị treo hoàn toàn bởi những thiết kế không tốt hay quá trình kiểm tra chương trình. Đó là lý do vì so mà chương trình trước khi chạy trên những thiết bị nhúng phải chạy thử trên máy chủ (Host-machine), để hạn chế tối đa lỗi xảy ra trên hệ thống nhúng.
Kích thước đoạn mã thì bị giới hạn bởi bộ nhớ vật lý của thiết bị. Cũng có trường hợp bộ xử lý không đủ mạnh dé chạy những chương trình phức tạp cùng một lúc.