Để có cơ sở thực tiễn cho việc vận dụng PPMP trong dạy thiết kế hệ thống nhúng, trong chương này tác giả đã:
Phân tích thực trạng đội ngũ giáo viên, cơ sở vật chất, cơ sở hạ tầng củakhoaCNTTTrường Đại học Công Nghiệp Việt Hung.
Đánh giá thực trạng về sử dụng các phương pháp giảng dạy ở khoa hiện nay, phân tích những thuận lợi và khó khăn của việc giảng dạy theo phương pháp mô phỏng làm cơ sở cho việc thực hiện soạn bài giảng ở chương 3.
Giới thiệu, nêu ưu nhược điểm của một số phần mềm mô phỏng, từ đó lựa chọn phần mềm Ptolemy.
46
Chương 3:
SỬ DỤNGPHẦN MỀM PTOLEMY TRONG DẠY MÔ PHỎNG THIẾT KẾ HỆ THỐNG NHÚNG
3.1. GIỚI THIỆU HỆ THỐNG NHÚNG VÀ PHẦN MỀM NHÚNG 3.1.1. Hệ thống nhúng
Hiện nay chúng ta đang ở thời kỳ hậu PC, sau giai đoạn phát triển của máy tính lớn (Mainframe) 1960-1980, và sự phát triển của PC-Internet giai đoạn 1980- 2000. Giai đoạn hậu PC-Internet này được dự đoán từ năm 2000 đến 2020, là giai đoạn của môi trường thông minh mà hệ thống nhúng là cốt lõi và đang làm nên làn sóng đổi mới trong công nghệ thông tin nói riêng. Một thực tế khách quan là thị trường của các hệ thống nhúng lớn gấp khoảng 100 lần thị trường PC; trong khi chúng ta mới nhìn chỉ thấy bề nổi của công nghệ thông tin là PC và Internet,thì phần chìm của công nghệ thông tin chiếm 99% số processor trên toàn cầu này nằm trong các hệ nhúng còn ít được biết đến. Cùng với đó là thị trường dành cho phần mềm nhúngđang ngày càng phát triển và mở rộng. Các doanh nghiệp Việt Nam đang đứng trước cơ hội lớn về phát triển loại hình phần mềm mới mẻ này, khi nhu cầu về phần mềm nhúng ngày càng phát triển trên thế giới.
Hệ thống nhúng (Embedded system): là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần phề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 hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao, có khả năng tự trị, chạy trong các thiết bị mà không cần tới hệ điều hành.
Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên dụng, thường nó có khả năng tự hành và được thiết kế tích hợp vào một hệ thống lớn hơn để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với những yêu cầu cụ thể và bao
47
gồm một số thiết bị máy móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung.
Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất. Các hệ thống nhúng thường được sản xuất hàng loạt với số lượng lớn. Hệ thống nhúng rất đa dạng, phong phú về chủng loại. Quanh ta có rất nhiều sản phẩm nhúng, đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và máy chơi nhạc MP3, điều hòa, lò vi sóng, nồi cơm điện, điện thoại di độnghoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân,…. Xét về độ phức tạp, 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. Các thiết bị PDA (Personal Digital
Assistant) hoặc máy tính cầm tay cũng có một số đặc điểm tương tự với hệ thống
nhúng như các hệ điều hành hoặc vi xử lý điều khiển chúng nhưng các thiết bị này không phải là hệ thống nhúng thật sự bởi chúng là các thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết bị ngoại vi.
Hệ thống nhúng bao gồm cả thiết bị phần cứng và phần mềm, hầu hết đều phải thỏa mãn yêu cầu hoạt động theo thời gian thực (real-time). Tùy theo tính chất và yêu cầu, mức độ đáp ứng của hệ thống có thể phải là rất nhanh (ví dụ như hệ thống thắng trong xe hơi hoặc điều khiển thiết bị trong nhà máy), hoặc có thể chấp nhận một mức độ chậm trễ tương đối (ví dụ như điện thoại di động, máy lạnh, ti-vi).
Để có thể dễ hình dung, ta xem ví dụ sau đây: một chiếc xe hơi trung bình có khoảng 70-80 chip vi xử lý (micro controller unit), mỗi bộ vi xử lý đảm nhiệm một nhiệm vụ, chẳng hạn như đóng mở cửa, điều khiển đèn tín hiệu, đo nhiệt độ trong/ngoài xe, hiển thị giao diện người dùng, điều khiển thắng (nếu dùng hệ thống thắng điện)… Mỗi bộ phận như thế là một hệ thống nhúng, tất cả được thiết kế tích hợp vào một hệ thống chung lớn hơn, chính là chiếc xe hơi.
Một ví dụ khác gần gũi hơn với cuộc sống hằng ngày, đó là những chiếc điện thoại di động. Các chức năng như điều khiển màn hình hiển thị, máy nghe nhạc và
48
radio, bộ cảm ứng chụp hình, kết nối với máy tính và thiết bị ngoại vi, hoặc cao cấp hơn là kết nối với hệ thống định vị toàn cầu (GPS), tất cả đều là những hệ thống nhúng được tích hợp chung vào chiếc điện thoại.
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ị chữ cỡ nhỏ hoặc chỉ hiển thị số, thường đi kèm với một hệ thống menu đơn giản. Cò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. Các hệ thống nhúng thường có một màn hình với một nút bấm dạng cần điểu khiển (joystick button). Sự phát triển mạnh mẽ của mạng toàn cầu đã mang đến cho những nhà thiết kế hệ nhúng một lựa chọn mới 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 khi cần đến, thông qua một máy tính khác. Điều này là hết sức hữu dụng đối với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn. Ví dụ, các router là các thiết bị đã ứng dụng tiện ích này.
Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy hàng năm trờ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ì thế, 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 là các phần mềm đơn giả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.
Một số vấn đề cụ thể về độ tin cậy:
Hệ thống không thể ngừng để sửa chữa một cách an toàn, ví dụ như ở các hệ thống không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn
49
đường,… Giải pháp đưa ra là 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 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à lựa chọn 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 của ví dụ như các dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát trong các nhà máy.
3.1.2.Phần mềm nhúng
Đó là phần mềm nằm trong hệ thống nhúng, phục vụ hoạt động của hệ thống nhúng với các đặc điểm và yêu cầu như đã nêu.
Phần mềm nhúng có thể là những chương trình đơn giản chạy trực tiếp trên nền phần cứng hoặc là những chương trình ứng dụng chạy trên nền một hệ điều hành nhúng. Phần mềm nhúng 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ỏ, bộ nhớ hạn chế.
Phần mềm nhúng thường được lập trình trên máy tính cá nhân của lập trình viên, được biên dịch với một trình biên dịch và một môi trường phát triển, máy tính dùng để lập trình được gọi là host. Sau đó chương trình được nạp lên thiết bị và chạy, thiết bị mà chương trình được nạp lên gọi la target. Với mỗi target khác nhau sẽ có cấu trúc vi điểu khiển khác nhau, và sử dụng hệ điều hành nhúng khác nhau, do vậy tùy từng loại sẽ có các cách thức lập trình tương ứng.
3.1.2. Quy trình thiết kế hệ thống nhúng
Thiết kế Hệ thống Nhúng đòi hỏi phải có hiểu biết về điện tử, vi xử lý, kĩ thuật điều khiển và lập trình thời gian thực.
50
Hình 3.1. Quy trình thiết kế hệ thống nhúng
Bước 1: Thu thập các thông tin yêu cầu về hệ thống: các yêu cầu chức năng
và các yêu cầu không chức năng (kíchthước, khối lượng, giá, công suất tiêu
thụ).
Bước 2: Từ các thông tin về hệ thống, phân tích thành bản mô tả chi tiết hơn
đó là: phân tích các thành phần hệ thống cần có (chỉ phân tích hành vi hoạt
động của các thành phần chưa quan tâm đến hệ thống hoạt động như thế nào).
Bước 3: Thiết kế kiến trúc của hệ thống và chia từng thành phần của hệ thống thành những thành phần nhỏ hơn. Hiện thực các thành phần của hệ
thống: Hardware; Software (cài đặt các thông số cho từng thành phần)
Bước 4: Tích hợp thành hệ thống hoàn chỉnh và kiểm thử để phát hiện lỗi nhanh chóng.
3.2 PHẦN MỀM PTOLEMY
3.2.1.Giới thiệu về phần mềm Ptolemy
Ptolemy là một phần mềm mã nguồn mở hỗ trợ thử nghiệm với thiết kế là các mô hình, mô phỏng. Ptolemy xây dựng các mô hình hóa, mô phỏng và thiết kế đồng thời, thời gian thực, hệ thống nhúng, tập trung vào lắp ráp các thành phần đồng thời.
Yêu cầu hệ thống
Phân tích, mô tả
Thiết kế các thành phần
51
Các nguyên tắc cơ bản quan trọng trong phần mềm này là việc sử dụng các mô hình được xác định rõ có sự tính toán chi phối sự tương tác giữa các thành phần. Một vấn đề khu vực chính được giải quyết là việc sử dụng các hỗn hợp không đồng nhất của mô hình tính toán. Một hệ thống phần mềm được gọi là Ptolemy II được xây dựng bằng cốt lõi Java. Công việc xây dựng được tiến hành tại tại Khoa Điện và Khoa học Máy tính của Đại học California tại Berkeley. Phần mềm này được thực hiệnbởi Giáo sư Edward Lee. Phần mềm này được đặt tên theo Claudius Ptolemaeus, nhà thiên văn học Hy Lạp thế kỷ thứ hai, nhà toán học và nhà địa lý.
Ptolemy II đã được phát triển từ năm 1996, nó là một kế thừa từ Ptolemy cổ điển (1990). Cốt lõi của Ptolemy II là một bộ sưu tập của các lớp mô hình. Hạt nhân hỗ trợ một cú pháp trừu tượng bằng ngôn ngữ java, một cấu trúc phân cấp với các bộ mô hình khác nhau. Một bộbiên tập viên đồ họa gọi là Vergil hỗ trợ chỉnh sửa hình ảnh của cú pháp trừu tượng này. Một cú pháp XML cung cấp một định dạng tập tin liên tục cho các mô hình. Ptolemy IIhỗ trợ các công cụđể mô phỏng ở các chuyên ngành khác nhau, bao gồm cả HyVisual (cho mô hình hệ thống hybrid), Kepler (đối với công việc khoa học), VisualSense (cho mô hình và mô phỏng mạng không dây), Viptos (cho thiết kế mạng cảm biến), và một số sản phẩm khác….Bộ phận quan trọng của cơ sởbao gồm một trình diễn các ngữ nghĩa trừu tượng, cho phép khả năng tương tác của các mô hình khác nhau của mộttính toán với một ngữ nghĩa được xác định rõ, một mô hình thời gian (cụ thể, thời gian siêu dày đặc, cho phép tương tác động lực liên tục); và một hệ thống tinh vi hỗ trợ kiểm tra. Các loại hệ thống Ptolemy II gần đây đã được mở rộng để hỗ trợ bản thể người dùng.
Ptolemy là phần mềm khá trưởng thành trong việc thiết kế ổn định và chủ yếu là không thay đổi. Ptolemy II sử dụng một hệ thống dựa trên XMLPtolemy có giao diện người dùng khác nhau. Giao diện người dùng Ptolemy II là dễ dàng sử dụng hơn so với giao diện người dùng của Ptolemy cổ điển.
Ptolemy cổ điển hoạt động tốt nhất trên Unix. Có một phiên bảncủa Ptolemy cổ điểndành cho Windows, nhưng nó không hoạt động tốt. Ptolemy II hoạt động
52
trên cả hai hệ điều hành Unix và Windows. Ptolemy II có thể tạo mã cho các mô hình SDF không phân cấp và cho các mô hình phân cấp.
3.2.2.Cài đặtvà sử dụng phần mềm Ptolemy II 3.2.2.1. Cài đặtphần mềm PtolemyII
Bước 1:Download phần mềm Ptolemy phiên bản PtolemyII 8.0.1 miễn phí tại trang web: http://ptolemy.org (hoặc http://ptolemy.eecs.berkeley.edu)
Bước 2: Tiến hành thực hiện cài đặt (cho thực thi file vừa download về) và
làm theo các hướng dẫn cài đặt cụ thể.
3.2.2.1. Sử dụng phần mềm PtolemyII
Bước 1: Khởi động chương trình Ptolemy II bằng cách vào START>PROGRAMS>PTOLEMY- ptII8.0.1>vergil.
Xuất hiện cửa sổ màn hình sau:
53
Hình 3.2. Trang thiết kếcủaphần mềm Ptolemy
Bước 2: Chọnthành phần rời rạc và thực hiện kết nối các thành phần.
Vào trong cácmục mô hình ở của sổ bên trái: Utilities (tiện ích); Directors (thư
mục); Actors (hành động);MoreLibraries (thư viện), chọn ra cácmạch thành phần phù hợp:
Để nốidây giữa các mạch rời rạc,ta di chuyển chuộtvào điểm cuối cùng của của từng mạch, nơi sẽ bắt đầu 1 dây nối ấn chuột trái và nối đến điểm đầu của mạch tiếp theo.
Để tiếp tục thiết kế tiếp một mạch bên trong một mạch ta kích chuột phải vào mô hình mạch đó mạch đó chọn Open Actor.
Để xem tính năng tác dụng của một mạch rời rạc tích hợp sẵn trong phần mềm Ptolemy ta kích chuột phải vào mạch đó chọn Documentation>Get Documentation.
Để đổi tên một mô hình mạch rời rạc ta kích chuột phải vào mạch đó chọn Customize>Rename. R un P ause S top Các cổng vào ra Các bộ mô hình mạch
54
Để thực thi một mô hình mạch đã thiết kế ta kích chuột vào biểu tượng Run trên thanh công cụ học gõ Ctlrl+R. Muốn dừng quá trình chạy ta kích vào biểu tượng Stop (Ctrl+H).
3.3. XÂY DỰNG BÀI GIẢNG SỬ DỤNG PHẦN MỀMPTOLEMY
Tác giả đã thực hiện xây dựng 05 bài giảng ứng dụng phần mềm Ptolem để thiết kế hệ thống nhúng đó là:
Bài 1: Thiết kế hệ thống Chat.
Bài 2: Thiết kế mạch thực hiện gộp hai dãy số.
Bài 3: Thiết kế bộ tự động ổn định nhiệt.
Bài 4: Thiết kế bộ tự động điều chỉnh chế hòa khí
Bài 5: Thiết kế bộ điều khiển Router
Trong luận văn này, tác giả giới thiệu chi tiếtmột bài giảng thiết kế hệ thống nhúng,đó là thiết kế bộ điều khiển tự động ổn định nhiệttrong phần thực hành của
học phần hệ thống nhúng (Phụ lục 1).
3.3.1. Đề cươngbài giảng
1) Giới thiệu bộ tự động ổn định nhiệt
Bộ tự độngổn định nhiệt độlà sự kết hợp các khả năng xử lý, phân tích thông tin về nhiệt độ môi trường rồi từ đó điều khiển lại nhiệt độ môi trường.Bộ tự động ổn định nhiệt có thể được ứng dụng trong các trang trại chăn nuôi, trong các máy ấp trứng và được áp dụng với hệ thống điều khiển điều hoà trên ô tô….
Chức năng:Ổn định nhiệt độ bằng cách đưa nhiệt độ môi trường về một khoảngnhiệt được chọn (mức cao-mức thấp).
Các yêu cầu:Đo nhiệt độ; Có thể cài đặt theo yêu cầu và hiển thị tín hiệu về nhiệt độ môi trường, quá trình điều chỉnh nhiệt độ (nóng lạnh); Khi nhiệt độ