CHƯƠNG 1: TỔNG QUAN 1. Giới thiệu hệ thống nhúng và thiết kế mô hình hệ thống nhúng bằng MATLAB/Simulink 1. Giới thiệu hệ thống nhúng Hệ thống nhúng (embedded system) [3] là một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hóa điều khiển, quan trắc và truyền tin.
Đặc điểm của hệ thống nhúng là hoạt động ổn định và có tính năng tự động hóa cao. Hệ thống nhúng thường có một số đặc điểm chung như: • Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ nhất định chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng. Một số hệ thống yêu cầu ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng. Một số hệ thống không yêu cầu ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất.
• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống phức tạp nằm trong thiết bị mà nó điều khiển. • Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa. Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp. Hệ thống nhúng rất đa dạng, phong phú về chủng loại (đồng hồ kỹ thuật số, máy chơi nhạc MP3, đèn giao thông,.
Hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn. Lê Thị Ngân-D17HTTT1 13 ĐỒ ÁN TỐT NGHIỆP Đặc điểm của các thành phần trong hệ thống nhúng: • Giao diện: Các hệ thống nhúng có thể không có giao diện (đổi với những hệ thống đơn nhiệm) hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều hành trong các thiết bị để bàn. Đối với các hệ thống đơn giản, thiết bị nhúng sử dụng nút bấm, đèn LED và hiển thị cỡ chữ nhỏ hoặc chỉ hiển thị số, thường đi kèm với một hệ thống menu đơn giản. Trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc có các nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp mà tối thiểu hóa được khoảng không gian cần sử dụng, ý nghĩa của các nút bấm có thể thay đổi theo màn hình và các lựa chọn.
Một lựa chọn mới khi thiết kế hệ thống nhúng là sử dụng một giao diện web thông qua việc kết nối mạng. Điều này có thể giúp tránh được chi phí cho những màn hình phức tạp nhưng đồng thời vẫn cung cấp khả năng hiển thị và nhập liệu phức tạp thông qua một máy tính khác. Điều này hết sức hữu dụng với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn (router). • Kiến trúc CPU: Các bộ xử lý trong hệ thống nhúng có thể được chia thành hai loại: vi xử lý và vi điều khiển.
• Thiết bị ngoại vi: Hệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vi (Serial Communication Interfaces (SCI), Universal Serial Bus (USB), …) • Công cụ phát triển: phần mềm hệ thống nhúng được phát triển nhờ sử dụng các trình biên dịch (compilers), chương trình dịch hợp ngữ (assembler) hoặc các công cụ gỡ lỗi (debuggers). • Độ tin cậy: Các hệ thống nhúng thường được kỳ vọng là sẽ chạy trong thời gian dài liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống khi gặp lỗi. Vì vậy các phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn phần mềm cho máy tính cá nhân. Ngoài ra, các thiết bị rời không đáng tin cậy như ổ đĩa, công tắc hoặc nút bấm thường bị hạn chế sử dụng.
Việc khôi phục hệ thống khi gặp lỗi có thể được thực hiện bằng cách sử dụng các kỹ thuật như watchdog timer - nếu phần mềm không đều đặn nhận được các tín hiệu watchdog định kỳ thì hệ thống sẽ bị khởi động lại. Lê Thị Ngân-D17HTTT1 14 ĐỒ ÁN TỐT NGHIỆP Một số vấn đề về độ tin cậy: • Hệ thống không thể ngừng để sửa chữa một cách an toàn mà sẽ chuyển sang sử dụng các hệ thống con dự trữ hoặc các phần mềm cung cấp một phần chức năng (hệ thống dây cáp dưới đáy biển). • Hệ thống phải được chạy liên tục vì tính an toàn, ví dụ như các thiết bị dẫn đường máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất,. Giải pháp đưa ra là backup hệ thống.
• Nếu hệ thống ngừng hoạt động sẽ gây tổn thất rất nhiều tiền. Ví dụ như các dịch vụ bán tự động, hệ thống chuyển tiền,. Xuất phát từ những thực tiễn trên cho thấy việc mô phỏng, kiểm thử hệ thống nhúng là vô cùng quan trọng để giảm thiểu rủi ro, sai sót trong quá trình sử dụng. Giới thiệu MATLAB/Simulink 1.
MATLAB MATLAB [2] là viết tắt từ “Matrix Laboratory” - thư viện về ma trận. MATLAB là một ngôn ngữ lập trình bậc cao, là phần mềm cung cấp môi trường tính toán kỹ thuật số và lập trình, do công ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với các chương trình máy tính được viết bằng nhiều ngôn ngữ lập trình khác. Dữ liệu cùng với các thư viện có sẵn, MATLAB cho phép: • Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường.
• Lập trình tạo ra những ứng dụng mới • Mô phỏng các mô hình thực tế • Phân tích, khảo sát và hiển thị dữ liệu • Phát triển và giao tiếp với một số phần mềm khác như C, Fortran. Lê Thị Ngân-D17HTTT1 15 ĐỒ ÁN TỐT NGHIỆP 1. Simulink Simulink [8] là một phần mềm mở rộng của MATLAB dùng để mô hình hóa, mô phỏng và phân tích một hệ thống động. Thông thường dùng để thiết kế hệ thống điều khiển, thiết kế DPS, hệ thống thông tin và các ứng dụng mô phỏng khác.
Simulink là thuật ngữ mô phỏng được ghép bởi Simulation và Link. Simulink cho phép mô tả hệ thống tuyến tính, hệ phi tuyến, các mô hình trong miền thời gian liên tục, hay gián đoạn hoặc một hệ gồm cả liên tục và gián đoạn. Để mô hình hóa, Simulink cung cấp một giao diện đồ họa để sử dụng và xây dựng mô hình sử dụng thao tác nhấn và kéo chuột. Với giao diện đồ họa ta có thể xây mô hình và khảo sát mô hình một cách trực quan hơn.
Simulink được sử dụng phổ biến như một công cụ tạo mẫu hoặc thiết kế hệ thống ở mức cao trong nhiều linh vực như hệ thống máy bay, điều khiển động cơ ô tô, … Mô hình Simulink gồm 2 yếu tố chính là khối và đường. Khối là các đơn vị chức năng được sử dụng để tạo, điều khiển và xuất tín hiệu. Các khối được kết nối với nhau bởi các đường, một khối có thể là một khối cha bao gồm các khối và đường khác. Các khối được lấy từ thư viện khối có sẵn trong thư viện Simulink.
Từ các khối kết nối với nhau bằng các đường tín hiệu để tạo thành một mô hình Simulink và dựa trên đó để có thể mô phỏng, phân tích trước khi xây dựng một hệ thống thật. Vì vậy, Simulink đang ngày càng đóng vai trò quan trọng trong việc xây dựng, phân tích thiết kế hệ thống nhúng. Mô hình hóa và mô phỏng hệ thống nhúng bằng MATLAB/Simulink 1. Mô hình hóa và mô phỏng Mô hình(model) là một sơ đồ phản ánh đối tượng, con người dùng sơ đồ đó để nghiên cứu, thực nghiệm nhằm tìm ra quy luật của hoạt động của đối tượng.
Mô hình hóa (modeling) là thay thế đối tượng gốc bằng một mô hình nhằm thu nhận các thông tin quan trọng về đối tượng bằng cách tiến hành thực nghiệm trên mô hình. Lý thuyết xây dựng mô hình và nghiên cứu mô hình để hiểu biết về đối tượng gốc gọi là lý thuyết mô hình hóa. Lê Thị Ngân-D17HTTT1 16 ĐỒ ÁN TỐT NGHIỆP Mô phỏng (Simulation) là phương pháp mô hình hóa dựa trên việc xây dựng mô hình số (Numerical model) và dùng phương pháp số (Numerical method) để tìm các lời giải. Mô hình hóa và mô phỏng là cho phép xây dựng mô hình của hệ vật lý và thực hiện thực nghiệm trên mô hình đó.
MATLAB/Simulink là công cụ hữu hiệu để biểu diễn mô hình toán của hệ trên máy tính số và cho phép phân tích nó. Mô hình hóa và mô phỏng được sử dụng khi hệ vật lý không tồn tại, tốn thời gian hoặc chi phí để xây dựng. Đồng thời cũng cho phép quan sát, phân tích hệ thống trước khi thực hiện trên hệ thống thật và là công cụ hữu dụng cho việc thiết kế, nghiên cứu với chi phí thấp, dễ dàng thay đổi. Thiết kế mô hình hệ thống nhúng bằng MATLAB/Simulink Mô hình hệ thống nhúng MATLAB/Simulink được tạo bởi nhiều khối như: inport(vào), outport (ra), mathematical operator (phép toán), logical/relational operator (logic/quan hệ), multiport switch, delay,.
Các block liên kết với nhau bằng lines, truyền dữ liệu Boolean, integer, floating/fixed/point giữa chúng. Mỗi khối thực hiện một vài chức năng trên các đầu vào của nó và xuất ra kết quả. Đầu ra của các khối là đầu vào cho khối khác (được biểu diễn bằng các đường nối các cổng vào/ra tương ứng). Các mô hình có thể được phân cấp.
Mỗi khối có thể là một hệ con bao gồm các khối và đường khác. Mô hình thiết kế bằng MATLAB/Simulink Lê Thị Ngân-D17HTTT1 17 ĐỒ ÁN TỐT NGHIỆP 1. Bài toán sinh mô hình MATLAB/Simulink tự động phục vụ cho kiểm thử Sinh dữ liệu kiểm thử để kiểm tra là một bước quan trọng đối với bất kỳ hệ thống nào. Trong hệ thống nhúng, đối với các hệ thống lớn yêu cầu tổ hợp đầu vào, việc sinh mô hình MATLAB/Simulink thủ công gặp nhiều khó khăn, tiêu tốn nhiều thời gian và công sức.
Vì vậy việc sinh mô hình MATLAB/Simulink tự động giúp giảm đáng kể thời gian, công sức, đồng thời giúp tăng hiệu quả kiểm thử.