Tìm hiểu về hệ thống nhúng
ĐẠI HỌC CÔNG NGHỆ
TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI
TIỂU LUẬN:
TÌM HIỂU VỀ HỆ THÔNG NHÚNG
Giáo viên hướng dẫn:
Nhóm học viên thực hiện:
TS. Võ Đình Hiếu
Nguyễn Thị Thu Hằng
Vũ Thị Quyên
Nguyễn Văn Tuân
Hà Nội, 4-2013
K19-HTTT-ĐHCN-ĐHQGHN
1
Tìm hiểu về hệ thống nhúng
MỤC LỤC
Contents
K19-HTTT-ĐHCN-ĐHQGHN
2
Tìm hiểu về hệ thống nhúng
LỜI NÓI ĐẦU
Các hệ thống nhúng ngày nay rất phát triển với những ứng dụng rộng rãi trong
nhiều lĩnh vực công nghiệp và đời sống, đâu đâu ta cũng bắt gặp các ứng dụng của hệ
thống nhúng, từ những thiết bị nhỏ như điện thoại, máy nghe nhạc đến các hệ thống phức
tạp như ô tô, máy móc công nghiệp. Có thể nói đánh dấu sự ra đời và phát triển của hệ
nhúng trước tiên phải kể đến sự ra đời của các bộ vi xử lý, vi điều khiển.
Thập kỷ 80 có thể được coi là khởi điểm bắt đầu kỷ nguyên của sự bùng nổ về
phát triển các hệ nhúng. Từ đó khởi nguồn cho làn sóng ra đời của hàng loạt các chủng
loại vi xử lý và gắn liền là các hệ nhúng để thâm nhập rộng khắp trong các ứng dụng
hàng ngày của cuộc sống chúng ta ví dụ như, các thiết bị điện tử sử dụng cho sinh hoạt
hàng ngày (lò vi sóng, TV, tủ lạnh, máy giặt, điều hoà ...) và văn phòng làm việc (máy
fax, máy in, máy điện thoại...)... Các bộ vi xử lý và phần mềm cứng ngày càng được sử
dụng rộng rãi trong rất nhiều các hệ thống nhỏ. Các loại vi xử lý được sử dụng trong các
hệ thống nhúng hiện nay đã vượt xa so với PC về số lượng chủng loại và vẫn còn tiếp tục
phát triển để nhằm đáp ứng và thoả mãn rất nhiều ứng dụng đa dạng.
Trong tiểu luận này, chúng tôi sẽ tập trung tìm hiểu khái niệm, thiết kế phần mềm
nhúng, vai trò phần mềm nhúng, các lĩnh vực ứng dụng và xu thế phát triển của hệ thống
nhúng.
Chúng tôi xin chân thành cảm ơn TS. Võ Đình Hiếu đã giúp đỡ chúng tôi hoàn
thành tiểu luận này.
K19-HTTT-ĐHCN-ĐHQGHN
3
Tìm hiểu về hệ thống nhúng
NỘI DUNG
PHẦN 1: GIỚI THIỆU VỀ HỆ THỐNG NHÚNG
1.1. Hệ thống nhúng là gì?
Trong thế giới thực của chúng ta bất kỳ một thiết bị hay hệ thống điện/điện tử có
khả năng xử lý thông tin và điều khiển đều có thể tiềm ẩn trong đó một thiết bị hay hệ
nhúng, ví dụ như các thiết bị truyền thông, thiết bị đo lường điều khiển, các thiết bị phục
vụ sinh hoạt hàng ngày như lò vi sóng, máy giặt, camera... Rất dễ dàng có thể kể ra hàng
loạt các thiết bị hay hệ thống như vậy đang tồn tại quanh ta, chúng là hệ nhúng. Vậy hệ
nhúng là một phần hệ thống xử lý thông tin nhúng trong các hệ thống lớn, phức hợp và
độc lập. Ví dụ như trong ôtô, các thiết bị đo lường, điều khiển, truyền thông và thiết bị
thông minh nói chung. Chúng là những tổ hợp của phần cứng và phần mềm để thực hiện
một hoặc một nhóm chức năng chuyên biệt.
1.2. Hệ thời gian thực
Trong các bài toán điều khiển và ứng dụng, chúng ta rất hay gặp thuật ngữ “thời
gian thực”. Thời gian thực được hiểu là yêu cầu của hệ thống phải đảm bảo thỏa mãn về
tính tiền định trong hoạt động của hệ thống. Tính tiền định nói lên hành vi của hệ thống
thực hiện đúng trong một khung thời gian cho trước hoàn toàn xác định. Khung thời gian
này được quyết định bởi đặc điểm hoặc yêu cầu của hệ thống, có thể là vài giây cũng có
thể là vài nano giây hoặc nhỏ hơn nữa.
Người ta phân ra làm hai loại đối với khái niệm thời gian thực là cứng (hard real
time) và mềm (soft real time). Thời gian thực cứng là khi hệ thống hoạt động với yêu cầu
thoả mãn sự ràng buộc trong khung thời gian cứng tức là nếu vi phạm thì sẽ dẫn dến hoạt
động của toàn hệ thống bị sai hoặc bị phá huỷ. Ví dụ về hoạt động điều khiển cho một lò
phản ứng hạt nhân, nếu chậm ra quyết định có thể dẫn đến thảm họa gây ra do phản ứng
phân hạch và dẫn đến bùng nổ cả hệ thống. Thời gian thực mềm là khi hệ thống hoạt
động với yêu cầu thoả mãn ràng buộc trong khung thời gian mềm, nếu vi phạm và sai
lệch nằm trong khoảng cho phép thì hệ thống vẫn có thể hoạt động được và chấp nhận
được. Ví dụ như hệ thống phát thanh truyền hình, nếu thông tin truyền đi từ trạm phát tới
người nghe/nhìn chậm một vài giây thì cũng không ảnh hưởng đáng kể đến tính thời sự
của tin được truyền đi và hoàn toàn được chấp nhận bởi người theo dõi.
K19-HTTT-ĐHCN-ĐHQGHN
4
Tìm hiểu về hệ thống nhúng
1.3. Lĩnh vực ứng dụng của hệ thống nhúng
Chúng ta có thể kể ra được rất nhiều các ứng dụng của hệ thống nhúng đang được
sử dụng hiện nay, và xu thế sẽ còn tiếp tục tăng nhanh. Một số các lĩnh vực và sản phẩm
thị trường rộng lớn của các hệ nhúng có thể được nhóm như sau:
•
•
•
•
•
•
•
•
•
Các thiết bị điều khiển
Ôtô, tàu điện
Truyền thông
Thiết bị y tế
Hệ thống đo lường thẩm dịnh
Toà nhà thông minh
Thiết bị trong các dây truyền sản xuất
Rôbốt
...
1.4. Đặc điểm công nghệ và xu thế phát triển của hệ thống nhúng
1.4.1. Đặc điểm công nghệ
Các hệ thống như vậy đều có chung một số đặc điểm như yêu cầu về khả năng thời
gian thực, độ tin cậy, tính độc lập và hiệu quả. Một câu hỏi đặt ra là tại sao hệ thống
nhúng lại phát triển và được phổ cập một cách nhanh chóng như hiện nay? Câu trả lời
thực ra nằm ở các yêu cầu tăng lên không ngừng trong các ứng dụng công nghệ hiện nay.
Một trong những yêu cầu cơ bản đó là:
Khả năng độc lập và thông minh hóa: Thể hiện rõ hơn qua các thuộc tính, yêu cầu
cụ thể như:
o Độ tin cậy
o Khả năng bảo trì và nâng cấp
o Sự phổ cập và tiện dụng
o Độ an toàn
o Tính bảo mật
• Hiệu quả: Thể hiện qua một số các đặc điểm của hệ thống như sau:
o Năng lực tiêu thụ
o Kích thước về phần cứng và phần mềm
o Hiệu quả về thời gian thực hiện
o Kích thước và khối lượng
o Giá thành
• Phân hoạch tác vụ và chức năng hóa: Các bộ vi xử lý trong các hệ nhúng thường
được sử dụng để đảm nhiệm và thực hiện một hoặc một nhóm chức năng rất độc
•
K19-HTTT-ĐHCN-ĐHQGHN
5
Tìm hiểu về hệ thống nhúng
lập và cũng đặc thù cho từng phần chức năng của hệ thống lớn mà nó được nhúng
vào.
• Khả năng thời gian thực: Các hệ thống đều gắn liền với việc đảm nhiệm một chức
năng chính và phải được thực hiện đúng theo một khung thời gian quy định.
Tuy nhiên, trong thực tế không phải hệ nhúng nào cũng đều có thể thỏa mãn tất cả
những yêu cầu nêu trên.
1.4.2. Xu thế phát triển của hệ nhúng
Vì sự phát triển hệ nhúng là sự kết hợp nhuần nhuyễn giữa phần cứng và phần
mềm nên công nghệ gắn liền với nó cũng chính là công nghệ kết hợp giữa các giải
pháp cho phần cứng và mềm.
• Lớp hệ nhúng ưu tiên phát triển the tiêu chí về kích thước nhỏ gọn, tiêu thụ năng
lượng ít mà giá thành thấp.
• Lớp hệ nhúng ưu tiên thực thi khả năng xử lý tính toán với tốc độ thực hiện nhanh.
• Lớp hệ thống ưu tiên cả hai tiêu chí phát triển của hai lớp trên, tức là kích thước
nhỏ gọn, mức tiêu thụ năng lượng thấp, tốc độ tính toán nhanh.
•
Với mỗi một nền phần cứng nhúng thường có những đặc thù riêng và kèm theo
một giải pháp phát triển phần mềm tối ưu tương ứng. Không có một giải pháp nào chung
và chuẩn tắc cho tất cả các hệ nhúng. Chính vì vậy thông thường các nhà phát triển và
cung cấp phần cứng cũng lại chính là nhà cung cấp giải pháp phần mềm hoặc công cụ
phát triển phần mềm kèm theo.
1.5. Mô hình hệ thống nhúng
Hình 1.1: Mô hình hệ thống nhúng
K19-HTTT-ĐHCN-ĐHQGHN
6
Tìm hiểu về hệ thống nhúng
Hình trên chỉ ra rằng tất cả các hệ thống nhúng đều có chung một thành phần
giống nhau ở tầng cao nhất, đó là chúng đều có ít nhất một lớp (phần cứng) hoặc nhiều
lớp (phần cứng, phần mềm và ứng dụng) trong đó chứa tất cả các components. Phần cứng
bao gồm tất cả những thành phần vật lý có trên mạch nhúng, phần mềm và các ứng dụng
bao gồm tất cả những thành phần logic có trong hệ thống nhúng.
PHẦN 2: THIẾT KẾ HỆ THỐNG NHÚNG
2.1. Các giai đoạn thiết kế
•
•
•
•
•
Các yêu cầu: Các yêu cầu chức năng và các yêu cầu không chức năng (kích thước,
khối lượng, tiêu thụ công suất và giá)
Đặc tả người dùng: Các chi tiết giao tiếp người dùng cùng với các tác vụ thỏa các
yêu cầu của người dùng
Kiến trúc: Các thành phần phần cứng (bộ xử lý, ngoại vi, logic khả lập trình và
ASSP[Application Specific Standard Product]), các thành phần phần mềm (các
chương trình chính và các tác vụ của chúng)
Thiết kế thành phần: Các thành phần được thiết kế trước, được sửa đổi và các
thành phần mới
Tích hợp hệ thống (phần cứng và phần mềm): Sắp xếp kiểm chứng có hệ thống để
tìm lỗi nhanh chóng
Thiết kế Hệ thống Nhúng đòi hỏi phải có hiểu biết đa ngành về điện tử, xử lý tín hiệu,
vi xử lý, kĩ thuật điều khiển và lập trình thời gian thực.
Việc quyết định công nghệ nền cho thiết kế số ở phần kiến trúc phụ thuộc vào một
số ràng buộc sau:
o
o
o
o
o
o
o
o
Tốc độ cập nhật thời gian thật
Công suất
Giá thành
Giải pháp đơn chip
Dễ lập trình
Tính khả chuyển của mã (Portability of code)
Các thư viện mã có thể tái sử dụng
Các công cụ lập trình
K19-HTTT-ĐHCN-ĐHQGHN
7
Tìm hiểu về hệ thống nhúng
2.2. Thiết kế hệ thống nhúng
Ta có thể sử dụng một số mô hình sau để mô tả chu kỳ thiết kế các hệ thống
nhúng. Một số mô hình là cơ sở, các mô hình khác được hình thành dựa trên các mô hình
cơ sở này:
Mô hình big-bang: trong mô hình thiết kế này, ta không có khái niệm về kế hoạch
hay quá trình trong cả quá trình phát triển hệ thống
• Mô hình code-and-fix: đầu tiên các yêu cầu về sản phẩm được làm rõ, sau đó việc
thực hiện mã lệnh được tiến hành dựa trên các mô tả yêu cầu này, tiếp theo mã
lệnh được thực thi và nếu có lỗi thì lại trở về bước trước đó, nghĩa là thực hiện lại
mã lệnh.
• Mô hình Waterfall: Quá trình phát triển sản phẩm được chia thành từng bước, kết
quả của bước trước sẽ là dữ liệu của bước sau.
• Mô hình Spiral:cũng dựa trên việc phân chia thành từng bước như waterfall, tuy
nhiên trong mỗi một quá trình, các phản hồi của người dùng hoặc người phát triển
khác được tiếp thu và được tích hợp lại vào trong quá trình phát triển tiếp theo.
•
Ta xét mô hình Embebded Design and Development Lifecycle Model sau:
K19-HTTT-ĐHCN-ĐHQGHN
8
Tìm hiểu về hệ thống nhúng
Hình 2.2: Mô hình Embebded Design and Development Lifecycle
K19-HTTT-ĐHCN-ĐHQGHN
9
Tìm hiểu về hệ thống nhúng
PHẦN 3: MÔ HÌNH KIẾN TRÚC
Ba mô hình kiến trúc thời gian thực thường được sử dụng trong hệ thống nhúng đó
là:
Mô hình Theo dõi và phản ứng lại: Mô hình này được sử dụng khi bộ cảm
biến được hiển thị và theo dõi thường xuyên. Khi bộ cảm biến cho biết một sự
kiện xảy ra như cuộc gọi đến trên điện thoại di động thì hệ thống phản ứng lại
bằng tiến trình xử lý sự kiện đó.
• Mô hình Kiểm soát môi trường: Mô hình này được sử dụng khi hệ thống
gồm có nhiều cảm biến cung cấp thông tin về môi trường và các bộ khởi động
mà thông tin này có thể thay đổi bởi môi trường. Khi các bộ cảm biến phát
hiện ra sự thay đổi của môi trường, tín hiệu điều khiển được gửi tới các bộ khởi
động hệ thống.
• Mô hình Đường ống xử lý: Mô hình này được sử dụng khi dữ liệu được
truyền từ một điểm tới một điểm trước khi nó được xử lý. Sự biến đổi này
được thực hiện thông qua một chuỗi các bước xử lý, có thể được thực hiện
đồng thời. Điều này cho phép xử lý dữ liệu rất nhanh bởi vì mỗi bộ xử lý riêng
biệt có thể thực hiện mỗi thay đổi.
•
Thông thường người dùng sẽ nhìn thấy các mô hình này được kết hợp kết hợp với
nhau trong các hệ thống đơn lẻ.
3.1. Mô hình Theo dõi và phản ứng lại
Hệ thống giám sát là một phần quan trọng trong hệ thống nhúng thời gian thực. Hệ
thống giám sát kiểm tra môi trường thông qua một bộ cảm biến và thường hiển thị trạng
thái của môi trường theo một cách nào đó. Có thể trên một màn hình tích hợp, trên các
màn hình thiết bị chuyên dùng hoặc hiển thị từ xa. Nếu hệ thống phát hiện ra một sự kiện
nào đó thì hệ thống giám sát đưa ra một hành động cụ thể. Thông thường điều này liên
quan đến việc gia tăng các cảnh báo để gây sự chú ý tới người điều hành hệ thống. Đôi
khi hệ thống có thể đưa ra các hành động để ngăn chặn việc này như tắt hệ thống để bảo
vệ hệ thống không bị phá hủy.
Tên
Mô tả
Mô hình Theo dõi và phản ứng lại
Giá trị đầu vào của các bộ cảm biến giống nhau được thu thập và phân
tích. Các giá trị này được hiển thị theo một cách cụ thể nào đó.
K19-HTTT-ĐHCN-ĐHQGHN
10
Tìm hiểu về hệ thống nhúng
Đầu vào
Giá trị đầu vào nhận được từ các bộ cảm biến được gắn vào hệ thống
Đầu ra
Giá trị đầu ra được dùng để hiển thị, kích hoạt báo động, gửi tín hiệu
đến các hệ thống phản ứng lại.
Xử lý
Quan sát, phân tích, hiển thị, báo động, phản ứng lại
Sử dụng trong
Hệ thống giám sát, hệ thống báo động
Hình 3.1: Mô hình Theo dõi và phản ứng lại
Mô hình Theo dõi và phản ứng lại như hình dưới đây là mô hình thường được sử
dụng trong các hệ thống giám sát. Các giá trị của bộ cảm biến được theo dõi và khi phát
hiện ra các giá trị đặc biệt thì hệ thống sẽ phản ứng lại theo một cách nào đó. Các hệ
thống giám sát có thể bao gồm một số mô tả của mô hình Theo dõi và phản ứng lại cho
mỗi loại cảm biến trong hệ thống. Tùy thuộc vào yêu cầu của hệ thống, người dùng có
thể tối ưu hóa thiết kế bằng các quy trình kết hợp. Ví dụ như người dùng có thể sử dụng
quá trình hiển thị duy nhất để hiển thị thông tin cho tất cả các bộ cảm biến khác nhau.
Hình 3.2: Quy trình xử lý của mô hình Theo dõi và phản ứng lại.
3.3. Mô hình Kiểm soát môi trường
Trong phần mềm nhúng các hệ thống điều khiển được sử dụng rộng rãi nhất.
Trong các hệ thống này, phần mềm điều khiển hoạt động của thiết bị, dựa trên tác động
từ môi trường thiết bị.
K19-HTTT-ĐHCN-ĐHQGHN
11
Tìm hiểu về hệ thống nhúng
Tên
Mô hình Kiểm soát môi trường
Mô tả
Hệ thống phân tích thông tin từ dữ liệu mà bộ cảm biến thu thập trong
môi trường hệ thống. Thông tin chi tiết có thể được thu thập về tình
trạng của các bộ khởi động được kết nối tới hệ thống. Dựa trên dữ liệu
thu thập được từ các bộ cảm biến và các bộ khởi động, tín hiệu điều
khiển gửi tới bộ khởi động và sau đó thay đổi môi trường hệ thống.
Thông tin về các giá trị của bộ bộ cảm biến và trạng thái của các bộ
khởi động có thể được hiển thị.
Đầu vào
Giá trị đầu vào là thông tin từ các bộ cảm biến được gắn vào hệ thống
và trạng thái của các bộ khởi động hệ thống
Đầu ra
Tín hiệu điều khiển tới bộ khởi động, thông tin hiển thị
Xử lý
Giám sát, điều khiển, hiển thị, driver của bộ khởi động, giám sát bộ
khởi động
Sử dụng trong
Các hệ thống điều khiển
Hình 3.3: Mô hình Điều khiển môi trường
Hệ thống điều khiển có thể sử dụng mô hình Kiểm soát môi trường. Mô hình này
được mô tả như trong hình 3.3, với quy trình xử lý được biểu diễn như hình 3.4. Mô hình
này có thể là cơ sở cho việc thiết kế các hệ thống điều khiển với mô tả của mô hình Kiểm
soát môi trường cho mỗi bộ khởi động đang được điều khiển. Người dùng có thể tối ưu
hóa thiết kế bằng cách giảm số lượng các tiến trình. Ví dụ: Người dùng có thể kết hợp
tiến trình giám sát bộ khởi động và điều khiển bộ khởi động, hoặc kết hợp tiến trình điều
khiển và tiến trình giám sát đơn cho nhiều bộ khởi động khác nhau. Việc tối ưu hóa mà
người dùng chọn phụ thuộc vào yêu cầu thời gian.
K19-HTTT-ĐHCN-ĐHQGHN
12
Tìm hiểu về hệ thống nhúng
Hình 3.4: Quy trình xử lý của mô hình Kiểm soát môi trường
3.3. Mô hình Đường ống xử lý
Nhiều hệ thống thời gian thực liên quan đến việc thu thập dữ liệu từ môi trường hệ
thống, sau đó truyền dữ liệu từ nơi thu thập được tới nơi có thể được phân tích và xử lý
nhanh hơn. Hệ thống này cũng có thể chuyển đổi dữ liệu số sang dữ liệu tương tự và sau
đó gửi ra môi trường. Ví dụ: Phần mềm radio chấp nhận các gói tin số từ các đài phát
thanh truyền hình và biến đối chúng thành tín hiệu âm thanh mà người dùng có thể nghe
được.
Quá trình xử lý dữ liệu liên quan tới nhiều hệ thống có thể được thực hiện rất
nhanh. Nếu không dữ liệu đến có thể bị mất và các tín hiệu gửi đi có thể chia nhỏ bởi vì
thông tin cần thiết bị mất. Mô hình Đường ống xử lý có thể xử lý nhanh chóng vấn đề
này bằng cách đưa dữ liệu cần tìm vào một chuỗi các biến đổi riêng biệt, với mỗi chuyển
đổi được thực hiện bởi một quá trình độc lập. Đây là kiến trúc phù hợp với các hệ thống
sử dụng nhiều bộ xử ý hoặc xử lý đa lõi. Mỗi tiến trình trong đường ống có thể được kết
hợp với một bộ xử lý riêng biệt để các bước xử lý được thực hiện song song.
Tên
Mô tả
Mô hình Đường ống xử lý
Mô hình xử lý đường ống được thiết lập với dữ liệu di chuyển theo
K19-HTTT-ĐHCN-ĐHQGHN
13
Tìm hiểu về hệ thống nhúng
trình tự từ điểm cuối của đường ống này tới đường ống khác. Quy trình
xử lý thường được liên kết bởi các bộ đệm đồng bộ cho phép quá trình
xử chạy ở nhiều tốc độ khác nhau. Đỉnh điểm của quá trình xử lý
đường ống có thể được hiển thị, lưu trữ dữ liệu hoặc đường ống có thể
chấm dứt trong bộ khởi động.
Đầu vào
Giá trị đầu vào nhận được từ môi trường hoặc tiến trình khác
Đầu ra
Giá trị đầu ra tới môi trường hoặc bộ đệm được chia sẻ
Xử lý
Producer, Buffer, Consumer
Sử dụng trong
Hệ thống thu thập dữ liệu, hệ thống đa phương tiện
Hình 3.5: Mô hình đường ống xử lý
Một ví dụ về hệ thống sử dụng đường ống xử lý là một hệ thống thu thập dữ liệu
tốc độ cao. Các hệ thống thu thập dữ liệu thu thập dữ liệu từ các bộ cảm biến để phân tích
và xử lý. Các hệ thống này được sử dụng trong các trường hợp các bộ cảm biến thu thập
nhiều dữ liệu từ môi trường hệ thống và không thể hoặc không cần phải xử lý dữ liệu
trong thời gian thực. Thay vào đó, các hệ thống này lựa chọn và lưu trữ dữ liệu để phân
tích sau. Các hệ thống thu thập dữ liệu thường được sử dụng trong các thí nghiệm khoa
học và trong các hệ thống điều khiển quá trình xử lý vật lý như phản ứng hóa học. Trong
các hệ thống này, các bộ cảm biến có thể tạo dữ liệu rất nhanh và hệ thống thu thập dữ
liệu phải đảm bảo rằng bộ cảm biến thu thập được dữ liệu trước khi các giá trị này thay
đổi.
Hình 3.7 là một mô hình đơn giản của hệ thống thu thập dữ liệu có thể là một phần của
phần mềm điều khiển trong lò phản ứng hạt nhân. Đây là một hệ thống thu thập dữ liệu từ
các bộ cảm biến theo dõi mật độ neutron.
Hình 3.6: Quy trình xử lý của mô hình Đường ống xử lý
K19-HTTT-ĐHCN-ĐHQGHN
14
Tìm hiểu về hệ thống nhúng
Hình 3.7: Mô hình thu thập dữ liệu mật độ Neutron
PHẦN 4: PHÂN TÍCH THỜI GIAN
Tính chính xác của hệ thống thời gian thực không chỉ phụ thuộc vào tính chính
xác của kết quả đầu ra mà còn phụ thuộc vào thời gian mà tại thời điểm đó các kết quả
được đưa ra. Điều này có nghĩa là một việc quan trọng trong hệ thống nhúng đó là phân
tích thời gian. Trong phân tích này, người dùng tính toán mỗi tiến trình trong hệ thống
phải được thực thi để đảm bảo rằng tất cả các yếu tố đầu vào được xử lý và tất cả hồi đáp
của hệ thống phải được đưa ra kịp thời. Kết quả phân tích thời gian được sử dụng để
quyết định mỗi tiến trình nên thực thi thường xuyên như thế nào và hệ điều hành thời
gian thực nên sắp xếp các tiến trình này như thế nào.
Phân tích thời gian cho các hệ thống thời gian thực đặc biệt khó khi các hệ thống
phải đối phó với trường hợp đầu vào và đầu ra không tuân theo chu kỳ cụ thể nào. Bởi vì
bạn không thể đoán trước được các đầu vào không theo chu kỳ nên bạn phải đưa ra giả
định về khả năng xảy ra và yêu cầu ứng dụng tại bất cứ thời điểm cụ thể nào.
Khi bạn đang phân tích các yêu cầu thời gian trong các hệ thống nhúng thời gian
thực và các hệ thống thiết kế để đáp ứng các yêu cầu này, có 3 yếu tố chính bạn cần phải
xem xét:
1. Deadline: Thời gian mà đầu vào phải được xử lý và hệ thống phải đưa ra tín hiệu
đầu ra. Nếu hệ thống không đáp ứng thời hạn đó, và nếu đây là một hệ thống thời
gian thực phần cứng thì đây là một lỗi của hệ thống, còn nếu đây là một hệ thống
thời gian thực phần mềm thì đây là hệ thống kém chất lượng.
2. Tần số: Số lần trên giây mà tiến trình phải thực hiện để bạn tin rằng hệ thống luôn
luôn đáp ứng được deadline.
K19-HTTT-ĐHCN-ĐHQGHN
15
Tìm hiểu về hệ thống nhúng
3. Thời gian thực thi: Thời gian được yêu cầu để xử lý đầu vào và đưa ra kết quả.
Thời gian thực hiện không phải luôn luôn giống nhau bởi vì các điều kiện thực thi
của đoạn mã, độ trễ do chờ các tiến trình khác,…
Chúng ta có tìm hiểu về ví dụ lỗi nguồn điện cung cấp cho hệ thống nhúng thời
gian thực, giả định rằng sau khi lỗi nguồn điện xảy ra, bạn có 50ms để điện áp cung
cấp không rơi xuống tình trạng phá hủy hệ thống. Chính vì thế, tiến trình ngắt thiết bị
phải được thiết kế trong vòng 50ms khi lỗi nguồn điện. Trong trường hợp này, quá
trình xử lý này phải được thiết lập ở thời gian ngắn hơn 40ms bởi vì khác biệt vật lý
trong mỗi thiết bị. Điều này có nghĩa là các chỉ lệnh tắt máy cho tất cả các thiết bị và
nguy gây ra lỗi phải được xử lý trong vòng 40ms, giả định rằng các thiết bị cũng phụ
thuộc vào các nguồn điện cung cấp.
Nếu bạn phát hiện lỗi nguồn điện bằng cách theo dõi mức điện áp, bạn có
nhiều thông tin phát hiện rằng điện áp cung cấp đang giảm. Nếu bạn thực hiện 250
tiến trình trên một giây, điều này có nghĩa là cứ 4ms bạn có thể yêu cầu dò tìm sự suy
giảm điện năng. Vì vậy, phải mất đến 8ms để phát hiện ra lỗi. Do đó trong trường hợp
xấu nhất thì thời gian thực hiện quá trình ngắt hệ thống không được vượt quá 16ms,
để đảm bảo rằng thời hạn 40ms được đảm bảo. Điểm đầu tiên của quá trình phân tích
trong hệ thống thời gian thực là yêu cầu thời gian cho mỗi deadline của các yêu cầu
và hồi đáp trong hệ thống.
Khi bạn hoàn thành quá trình phân tích thời gian, bạn nên chú thích các mô
hình xử lý với thông tin về tần số và thời gian thực hiện dự kiến. Hình 4.1 là một ví dụ
minh họa về quy trình xử lý thời gian.
K19-HTTT-ĐHCN-ĐHQGHN
16
Tìm hiểu về hệ thống nhúng
Hình 4.1: Quy trình xử lý thời gian
Bước cuối cùng trong quá trình thiết kế là thiết kế hệ thống lên lịch để đảm bảo
các tiến trình xử lý luôn luôn được hoạch định trước deadline. Người lập kế hoạch trong
hệ điều hành thời gian thực sẽ phân bổ một tiến trình để bộ xử lý trong một khoảng thời
gian. Thời gian này có thể cố định hoặc thay đổi tùy thuộc vào mức độ ưu tiên của tiến
trình.
PHẦN 5: HỆ THỐNG THỜI GIAN THỰC
5.1. Giới thiệu về hệ thống thời gian thực
Trong những năm gần đây, các hệ thống điều khiển theo thời gian thực là một
trong những lĩnh vực thu hút nhiều sự chú ý trong giới khoa học nghiên cứu về khoa học
máy tính. Trong đó, vấn đề điều hành thời gian thực và vấn đề lập lịch là đặc biệt quan
trọng. Một số ứng dụng quan trọng của hệ thống thời gian thực (RTS) đã và đang được
ứng dụng rộng rãi hiện nay là các dây chuyền sản xuất tự động, robot, điều khiển không
lưu, điều khiển các thí nghiệm tự động, truyền thông, điều khiển trong quan sự... Thế hệ
ứng dụng tiếp theo của hệ thống này sẽ là điều khiển robot có hoạt động giống con người,
hệ thống kiểm soát thông minh trong các nhà máy công nghiệp, điều khiển các trạm
không gian, thăm dò đáy đại dương...
K19-HTTT-ĐHCN-ĐHQGHN
17
Tìm hiểu về hệ thống nhúng
5.2. Khái niệm hệ thống thời gian thực
Một hệ thống thời gian thực (RTS – Realtime Systems) có thể được hiểu như là
một mô hình xử lý mà tính đúng đắn của hệ thống không chỉ phụ thuộc vào kết quả tính
toán logic mà còn phụ thuộc vào thời gian mà kết quả này phát sinh ra.
Hệ thống thời gian thực được thiết kế nhằm cho phép trả lời (response) lại các yếu
tố kích thích phát sinh từ các thiết bị phần cứng trong một ràng buộc thời gian xác định.
Ở đây ta có thể hiểu thế nào là một RTS bằng cách hiểu thế nào là một tiến trình, một
công việc thời gian thực. Nhìn chung, trong những RTS chỉ có một số công việc được gọi
là công việc thời gian thực, các công việc này có một mức độ khẩn cấp riêng phải hoàn
tất, ví dụ một tiến trình đang cố gắng điều khiển hoặc giám sát một sự kiện đang xảy ra
trong thế giới thực. Bởi vì mỗi sự kiện xuất hiện trong thế giới thực nên tiến trình giám
sát sự kiện này phải xử lý theo kịp với những thay đổi của sự kiện này. Sự thay đổi của
sự kiện trong thế giới thực xảy ra rất nhanh, mỗi tiến trình giám sát sự kiện này phải thực
hiện việc xử lý trong một khoản thời gian ràng buộc gọi là deadline, khoản thời gian ràng
buộc này được xác định bởi thời gian bắt đầu và thời gian hoàn tất công việc. Trong thực
tế, các yếu tố kích thích xảy ra trong thời gian rất ngắn vào khoảng vài mili giây, thời
gian mà hệ thống trả lời lại yếu tố kích thích đó tốt nhất vào khoảng dưới một giây,
thường vào khoảng vài chục mili giây, khoảng thời gian này bao gồm thời gian tiếp nhận
kích thích, xử lý thông tin và trả lời lại kích thích. Một yếu tố khác cần quan tâm trong
RTS là những công việc thời gian thực này có tuần hoàn hay không? Công việc tuần hoàn
thì ràng buộc thời gian ấn định theo từng chu kỳ xác định. Công việc không tuần hoàn
xảy ra với ràng buộc thời gian vào lúc bắt đầu và kết thúc công việc, ràng buộc này chỉ
được xác định vào lúc bắt đầu công việc. Các biến cố kích hoạt công việc không tuần
hoàn thường dựa trên kỹ thuật xử lý ngắt của hệ thống phần cứng.
Về mặt cấu tạo, RTS thường được cấu thành từ các thành tố sau:
-
Đồng hồ thời gian thực
Bộ điều khiển ngắt
Bộ định biểu
Bộ quản lý tài nguyên
Bộ điều khiển thực hiện
Các thành tố trên có thể được phân định là thành phần cứng hay mềm tùy thuộc
vào hệ thống và ý nghĩa sử dụng. Thông thường, các RTS được kết hợp vào phần cứng có
K19-HTTT-ĐHCN-ĐHQGHN
18
Tìm hiểu về hệ thống nhúng
khả năng tốt hơn so với hệ thống phần mềm có chức năng tương ứng và tránh được chi
phí quá đắt cho việc tối ưu hóa phần mềm. Ngày nay, chi phí phần cứng ngày càng rẻ,
chọn lượng ưu tiên phần cứng là một xu hướng chung.
KẾT LUẬN
Trên đây nhóm chúng tôi đã trình một cách sơ lược về hệ thống nhúng và các quy
trình thiết kế, các mô hình được sử dụng để thiết kế hệ thống nhúng. Chúng tôi xin chân
thành cảm ơn thầy TS. Võ Đình Hiếu đã giúp chúng tôi hoàn thành bài tiểu luận này
TÀI LIỆU THAM KHẢO
[1] Ian. Sommerville - Software Engineering 9th editor (Pearson 2011)
[2] TS. Lưu Hồng Việt – Trường ĐH Bách khoa HN - Tài liệu tóm tắt bài giảng “Hệ
thống điều khiển nhúng”
K19-HTTT-ĐHCN-ĐHQGHN
19