31
1 Các hthi gian thc – Gii thiu Ngô Khánh Hiếu Các hthi gian thc – Gii thiu Ngô Khánh Hiếu 1 Tng quan vhtin hc thi gian thc (1/5) - Htin hc thi gian thc nhn các thông tin vtrng thái ca quá trình bên ngoài, xlý các dliu, và tùy thuc vào kết quđưa ra "quyết định" tác động đến môi trường bên ngoài trong điu kin các ràng buc nghiêm ngt vthi gian nhm bo đảm trng thái n định ca quá trình. - Mt chương trình thi gian thc không có các đặc tính thường thy các chương trình tun t: không có sràng buc nào giakết qutính toán vi thi gian tính toán, có khnăng tái sdng (comportement reproductible). Hthi gian thc là hmôi trường song song

Tong quan ve he dieu khien

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Tong quan ve he dieu khien

1

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

1

Tổng quan về hệ tin học thời gian thực (1/5)

- Hệ tin học thời gian thực nhận các thông tin về trạng thái của quá trình bên ngoài, xửlý các dữ liệu, và tùy thuộc vào kết quả mà đưa ra "quyết định" tác động đến môi trường bên ngoài trong điều kiện các ràng buộc nghiêm ngặt về thời gian nhằm bảo đảm trạng thái ổn định của quá trình.

- Một chương trình thời gian thực không có các đặc tính thường thấy ở các chươngtrình tuần tự:

⇒ không có sự ràng buộc nào giữa kết quả tính toán với thời gian tính toán,

⇒ có khả năng tái sử dụng (comportement reproductible).

Hệ thời gian thực là hệ môi trườngsong song

Page 2: Tong quan ve he dieu khien

2

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

2

Tổng quan về hệ tin học thời gian thực (2/5)

- Khái niệm "song song" (Parallélisme) trong hệ tin học có thể được hiểu đơn giản theo các cách sau:

(1) Hệ tin học hình thành từ nhiều máy tính

(2) Hệ tin học chỉ gồm một máy tính nhưng có nhiều vi xử lý (processeurs)

(3) Hệ tin học chỉ gồm một máy tính với một vi xử lý (mono-processeur) nhưng có khả năng quản lý thời gian tính toán theo "khoảng thời gian" xác định (tranches de temps). Khái niệm "song song" nếu được hiểutheo nghĩa này còn được gọi là "pseudo-parallélisme".

- Một vòng lặp: ứng mỗi lần lặp sẽ thực hiện việc tính toán một ít của "tâche 1", một ít của"tâche 2",… và cứ thế cho đến khi các "tâches" kết thúc việc tính toán.

- Chia một chương trình tin học thời gian thực làm hai phần: phần I liên quan đến việc thiết kế (conception) các "tâches" cho chương trình; phần II giải quyết vần đề "parallélisme" hay"pseudo-parallélisme" giữa các "tâches".

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

3

Tổng quan về hệ tin học thời gian thực (3/5)

- Phân loại các hệ thống "song song" (Système parallèle):

(2) SIMD (Single Instruction Multiple Data): cùng thực hiện chung một lệnh(instruction) nhưng mỗi một "ouvrier" sẽ tính các phần khác nhau hay cácdữ liệu khác nhau.

(1) Dạng dãy tuyến tính: hệ thống song song "pipeline" (dạng cấu trúc của"processeur" hay "microprocesseur" cho phép thực hiện cùng một lúcnhiều lệnh (instructions).

(3) MIMD (Multiple Instruction Multiple Data): cho phép cùng một lúc thựchiện nhiều "tâches" khác nhau (lưu ý: một "tâche" có thể gọi một haynhiều lệnh).

(4) SPMD (Single Program Multiple Data): là dạng đặc biệt của MIMD, ở mỗi thời điểm trong quá trình thực hiện một chương trình (program), một"tâche" không thể được tính ở hai hay nhiều nơi khác nhau (lưu ý: một chuơng trình là tập hợp của một hay nhiều "tâche").

Page 3: Tong quan ve he dieu khien

3

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

4

Tổng quan về hệ tin học thời gian thực (4/5)

- Phân loại tổng quát các hệ thống tin học (Systèmes informatiques):

(2) Các hệ tương tác (Systèmes interactifs): là hệ được hiểu theo nghĩa dữ liệu được tạo ra bởi sự tác động với "môi trường" bằng nhiều hính thức khác nhaunhư: bàn phím, file dữ liệu, mạng, chuột,... Đặc tính về thời gian trong trườnghợp này không có ảnh hưởng nào khác ngoài cảm giác không thoải mái khi làmviệc (aspect confort de travail) hay chất lượng phục vụ (qualité de service).

(1) Các hệ biến đổi (Systèmes transformationnels): là các hệ sử dụng các dữ liệu đầu vào (input) được cung cấp lúc khai báo ban đầu, sau đó xử lý các dữ liệu đó để xuất ra các dữ liệu đầu ra (output) mà không có bất cứ ràng buộc nào vềthời gian.

(3) Các hệ điều khiển hay phản ứng (Systèmes de contrôle-commande ou réactifs): là các hệ có mối quan hệ với môi trường thực tế thông qua các dữ liệu đầu vào, tuy nhiên khác với hệ tương tác, hệ điều khiển hay phản ứng có sự ràng buộcbắt buộc về thời gian dưới các hình thức như: thời gian phản ứng (temps de réaction), hạn thời gian phản hoàn thành (temps d’une échéance à respecter),...

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

5

Tổng quan về hệ tin học thời gian thực (5/5)

Page 4: Tong quan ve he dieu khien

4

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

6

Phân loại hệ điều khiển (Système de contrôle-commande ou réactif) (1/2)

Từ định nghĩa hệ điều khiển ta có thể phân loại hệ điều khiển dựa theo các yêu cầu (specifications) riêng của hệ như sau:

(1) Các hệ thời gian thực (Systèmes temps réel): là hệ điều khiển mà yêu cầu ứngxử "đúng/chính xác" (exactitude) của các ứng dụng của nó không những chỉphụ thuộc vào kết quả (résultat), mà còn phụ thuộc vào thời gian mà kết quả đó được tạo ra. Và nếu các ràng buộc về thời gian (contraintes temporelles) củaứng dụng không được tuân thủ, ta nói hệ bị sai sót/lỗi (défaillance du système).

Dựa vào các ràng buộc thời gian này ta có thể chia hệ thời gian thực làm 2 loại:

1.a. ràng buộc thời gian lỏng/tương đối (contraintes temporelles relatives ou lâches): là hệ có thể chịu được/bỏ qua (tolérance) một số lỗi xác định vềthời gian nếu phát sinh trong quá trình vận hành (ví dụ: trò chơi điện tử, các ứng dụng về nghe nhìn, điện thoại di động,…).

1.b. ràng buộc thời gian chặt/nghiêm ngặt (contraintes temporelles strictes ou dures): là hệ không chấp nhận/bỏ qua bất kỳ lỗi về thời gian nào phát sinhtrong quá trình vận hành (ví dụ: thiết bị điện tử hàng không, tàu vũ trụ, xe hơi, hệ thống đường sắt…).

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

7

Phân loại hệ điều khiển (Système de contrôle-commande ou réactif) (2/2)

(2) Các hệ điều khiển "embarqué" (Systèmes de contrôle-commande embarqué): được hiểu đơn giản là hệ được tích hợp trên các thiết bị hay các hệ thống khác để điều khiển quá trình hoạt động của thiết bị hay hệ thống đó.

(3) Các hệ điều khiển "dédié" (Systèmes de contrôle-commande dédié): được hiểu đơn giản là các hệ "cứng" hoặc "mềm" (architectures matériels ou logiciels) được thiết kế dành riêng cho một ứng dụng cụ thể (ví dụ: hạt nhân hay lõi(noyau) của một microprocesseur, vi xử lý (processeur),...).

(4) Các hệ điều khiển "distribué" (Systèmes de contrôle-commande distribué): được hiểu đơn giản là một cấu trúc phần "cứng" (l’architecture matériel) đượchình thành từ nhiều vi xử lý (processeurs) liên kết với nhau thông qua một"bus" hay một hệ thống mạng (réseau).

Page 5: Tong quan ve he dieu khien

5

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

8

Các đặc tính cơ bản của hệ điều khiển (1/6)

Mối quan hệ tương hỗ giữa hệ điều khiển với môi trường bênngoài mà nó điều khiển có thểphân chia thành hai phần sau:

■ phần "quan sát" (observations) thông qua các cảm biến (sensors), cho phép thunhận các thông tin dưới hình thức các ngắt (interruptions, information tout ou rien), hoặc các giá trị đo (mesures, information continue) từ quá trình thực tế màhệ điều khiển.

■ phần "hành động" (actions) được thực hiện nhờ các cơ cấu chấp hành(actuators), cho phép phản ứng lại quá trình thực tế mà hệ điều khiển dưới hìnhthức các lệnh (commandes) làm thay đổi trạng thái hiện hành của hệ thống, hoặc đơn giản là dưới hình thức các hiển thị (affichage) như diodes, bóng đèn, mànhình hiển thị, thiết bị hiển thị,…

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

9

Các đặc tính cơ bản của hệ điều khiển (2/6)

Một ứng dụng của hệ điều khiển trong điều khiển quá trình đốt cháy của động cơ

Page 6: Tong quan ve he dieu khien

6

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

10

Các đặc tính cơ bản của hệ điều khiển (3/6)

Các đặc tính cơ bản của hệ điều khiển là:

(1) rất đa dạng các thiết bị đầu vào và đầu ra (dispositifs d’entrées/sorties): dữ liệu đầu vào yêu cầu, được cung cấp bởi các cảm biến, và các dữ liệu đầu ra cung cấp cho các cơ cấu chấp hành có các kiểu dữ liệu (types) rất đa dạng (liên tục, rời rạc, "tout ou rien", hoặc "analogique").

(2) có khả năng tính toán song song (comportements concurrents): tập hợptất cả các dữ liệu thực tế từ bên ngoài, và "mạng" (le réseau) cho phépnhập các dữ liệu dạng tin nhắn (messages) không được đồng bộ (ne sont pas synchronisés) so với sự phát triển của chúng. Điều này dẫn đến, hệthống tin học phải có khả năng chấp nhận những sự khác biệt đồng thờicủa các tham số (variations simultanées des paramètres).

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

11

Các đặc tính cơ bản của hệ điều khiển (4/6)

Các đặc tính cơ bản của hệ điều khiển là: (tiếp theo)

(3) tuân thủ các ràng buộc về thời gian (contraintes temporelles): đặc tính trước đó của hệ điều khiển đặt ra cho hệ thống tin học một mặt phải có mộtkhả năng "phản ứng" (réactivité) đủ để xét hết tất cả các ứng xử đồng thời(comportements concurrents), mặt khác phải trả lời các ứng xử đó bằngcách tạo ra các lệnh trong tuân thủ một giới hạn thời gian (un délai) tươngứng/phù hợp với tính động học của hệ thống (la dynamique du système)

(4) sự chắc chắn trong hoạt động (sureté de fonctionnement): các hệ điềukhiển thường được sử dụng trong các ứng dụng mà ở đó yêu cầu ở mức độ rất quan trọng về sự an toàn vì lý do chi phí (cout) hoặc tính mạng củacon người (vies humaines). Để đáp ứng được yêu cầu này, rất cần thiết phải bảo đảm tính chắc chắn trong hoạt động của các hệ điều khiển thôngqua các biện pháp như phát triển "chắc chắn", tests, các phương pháp"formelles", các dự đoán (prévisibilité), déterminisme, tolérance aux fautes, redondance,…

Page 7: Tong quan ve he dieu khien

7

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

12

Các đặc tính cơ bản của hệ điều khiển (5/6)

So sánh tính động học của các ứng dụng khác nhau của hệ điều khiển

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

13

Một vài ứng dụng của hệ điều khiển (6/6)

■ Robot sản xuất: một robot, thực hiện một hoạt động cụ thể trong một chuỗi sản xuất, phải hoàn thành công việc của nó trong khoảng thời gian cố định xác địnhbởi dây chuyền chế tạo. Nếu thời gian này quá sớm hoặc quá trễ sản phẩm chế tạo sẽ bị phá hủy hoặc làm hư hỏng dẫn đến các thiệt hại về kinh tế hoặc con người nghiêm trọng.

■ Robot thăm dò/thám hiểm: robot này phải có khả năng tự dịch chuyển trong mộtphạm vi mà về cơ bản là không biết rõ trước (như vùng nhiễm phóng xạ gần mộttại nạn về phóng xạ, hành tinh,…). Điều quan trọng đối với các robot loại này là chúng phải có thể phản ứng lại các chướng ngại vật cố định hoặc di động để tránhbị mất lái hay bị kẹt.

■ Điện thoại di động: hệ thống điều khiển phải có khả năng hoàn thành nhiều chức năng mà trong đó một số có ràng buộc về thời gian cao để có chất lượng phục vụtốt (QoS, Quality of Service). Chức năng đầu tiên là truyền và nhận tín hiệu giọngnói (577 µs giọng nói được phát cho mỗi 4.6 ms, và 577 µs giọng nói được nhậncho mỗi 4.6 ms ở các khoảng cách khác nhau). Vi vậy cần phải

Page 8: Tong quan ve he dieu khien

8

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

14

Cấu trúc của các ứng dụng của hệ điều khiển (1/16)

■ Cấu trúc phần mềm (Architecture logicielle) (1/14)

Ứng xử đồng thời của các tín hiệu được thể hiện dưới dạng các "événements" và các đại lượng thực bên ngoài (grandeurs physiques externes) dẫn đến mô tả/thể hiện môi trường điều khiển như là một hệ thống bắt buộc song song.

Cấu trúc phần mềm có thể đáp ứng tốt nhất để trả lời các ứng xử song song củaquá trình điều khiển bên ngoài (comportement parallèle du procédé externe) là cấu trúc "multitâche" (multi-task hay multiprogrammation).

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

15

Cấu trúc của các ứng dụng của hệ điều khiển (2/16)

■ Cấu trúc phần mềm (Architecture logicielle) (2/14)

“In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for that task.

Multitasking solves the problem by scheduling which task may be the one running at any given time, and when another waiting task gets a turn. The act of reassigning a CPU from one task to another one is called a context switch.

When context switches occur frequently enough the illusion of parallelism is achieved. Even on computers with more than one CPU (called multiprocessor machines), multitasking allows many more tasks to be run than there are CPUs.”

(Trích nguồn Wikipedia)

Page 9: Tong quan ve he dieu khien

9

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

16

Cấu trúc của các ứng dụng của hệ điều khiển (3/16)

■ Cấu trúc phần mềm (Architecture logicielle) (3/14)

“Operating systems may adopt one of many different scheduling strategies, which generally fall into the following categories:- In multiprogramming systems, the running task keeps running until it performs an

operation that requires waiting for an external event (e.g. reading from a tape) or until the computer's scheduler forcibly swaps the running task out of the CPU. Multiprogramming systems are designed to maximize CPU usage.

- In time-sharing systems, the running task is required to relinquish the CPU, either voluntarily or by an external event such as a hardware interrupt. Time sharing systems are designed to allow several programs to execute apparently simultaneously.

- In real-time systems, some waiting tasks are guaranteed to be given the CPU when an external event occurs. Real time systems are designed to control mechanical devices such as industrial robots, which require timely processing.”

(Trích nguồn Wikipedia)

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

17

Cấu trúc của các ứng dụng của hệ điều khiển (4/16)

■ Cấu trúc phần mềm (Architecture logicielle) (4/14)

Page 10: Tong quan ve he dieu khien

10

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

18

Cấu trúc của các ứng dụng của hệ điều khiển (5/16)

■ Cấu trúc phần mềm (Architecture logicielle) (5/14)

(1) “tâches" nhập/xuất (tâches d’entrées/sorties): đây là các "tâches" cho phép tiếp cận với các dữ liệu bên ngoài thông qua các "cartes" giao tiếp nhập/xuất, và cáccảm biến (capteurs), các cơ cấu chấp hành (actionneurs) liên kết trực tiếp vớiquá trình điều khiển. Các "tâches" này có thể được kích hoạt một cách đều đặn (façon régulières) hoặc bằng "ngắt" (par interruption).

(2) “tâches" xử lý/tính toán (tâches de traitement): các "tâches" này tạo nên phần trung tâm của ứng dụng. Nó tích hợp các phương pháp xử lý tín hiệu(traitements de signaux) như phân tích phổ, sự tương đồng, xử lý hình ảnh,…; các quy luật điều khiển (lois de commande) như điều khiển có chu kỳ theo thờigian, điều khiển kiểu "tout ou rien", điều khiển PID,… Trong khuôn khổ của môn học này, ta có thể xem các "tâches" xử lý/tính toán như là các hộp đen mà ở đó phần xử lý/tính toán của từng "tâche" sẽ là phạm vi của các lĩnh vực liên quannhư xử lý tín hiệu, xử lý hình ảnh, điều khiển tự động,…

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

19

Cấu trúc của các ứng dụng của hệ điều khiển (6/16)

■ Cấu trúc phần mềm (Architecture logicielle) (6/14)

(3) “tâches" quản lý giao tiếp người sử dụng (tâches de gestion de l’interface utilisateur): đây là các "tâches" cho phép hiển thị trạng thái của quá trình điềukhiển, cũng như việc giao tiếp với người sử dụng. Theo đó, người điều khiển cóthể hiệu chỉnh các dữ liệu điều khiển hoặc thay đổi các lệnh điều khiển. Các"tâches" này có thể rất phức tạp và đắt về mặt thời gian tính toán nếu giao diện điều khiển có kích thước "quan trọng" (de taille importante) như bảng điều khiểntrong buồng lái máy bay (tableau de bord) hoặc thuộc kiểu giao điện đồ họa như hiển thị 3D,…

(4) “tâches" thông tin liên lạc (tâches de communications): các "tâches" này đượctạo ra để dành cho việc quản lý việc gởi và nhận các "messages" trong mộthoặc nhiều mạng hoặc thiết bị kết nối (réseaux ou bus de terrain). Nếu các"tâches" dạng này xuất hiện trong ứng dụng của hệ điều khiển thì ứng dụng được gọi là "phân phối" (distribuée ou répartie).

Page 11: Tong quan ve he dieu khien

11

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

20

Cấu trúc của các ứng dụng của hệ điều khiển (7/16)

■ Cấu trúc phần mềm (Architecture logicielle) (7/14)

(5) “tâches" lưu trữ (tâches de sauvegarde): đây là các "tâches" cho phép lưu trữtrạng thái của hệ thống (l’état du système) ở các thời điểm cố định. Việc lưu trữnày có thể được sử dụng sau đó (a posteriori) để phân tích việc vận hành củaứng dụng hoặc ngay sau một sự lấy lại trạng thái vận hành ở một giai đoạn trước đó (une reprise d’exécution à une étape précédente).

Sau giai đoạn phân tích (l’analyse) và thiết kế (la conception) ứng dụng, ta thu được tập hợp các "tâches" hay các "activités" có quan hệ lẫn nhau để thựchiện việc điều khiển của quá trình. Các "tâches" này thuộc về các nhóm khácnhau như liệt kê ở trên. Cách thức phân chia theo chức năng này có thể đượcsửa đổi trong trường hợp áp dụng phương pháp thiết kế hướng về các đối tượng hoặc các "entités" điều khiển.

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

21

Cấu trúc của các ứng dụng của hệ điều khiển (8/16)

■ Cấu trúc phần mềm (Architecture logicielle) (8/14)

Sơ đồ thể hiện cấu trúc "multitâche" của một ứng dụng của hệ điều khiển

Các "tâches" cấu thành lên ứng dụng của hệ điều khiển không phải là các thực thểhoạt động độc lập. Một số "tâches" được kết nối với bên ngoài để nhập/xuất; một số"tâches" có thể được liên kết với nhau trong quá trình vận hành của ứng dụng.

Page 12: Tong quan ve he dieu khien

12

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

22

Cấu trúc của các ứng dụng của hệ điều khiển (9/16)

■ Cấu trúc phần mềm (Architecture logicielle) (9/14)

- Synchronisation: đây là kiểu kết nối giữa hai hay nhiều "tâches" để thể hiện mộtmối quan hệ trước sau (une relation de précédence d’exécution) giữa chúng.

- Communication: đây là kiểu kết nối giữa hai hay nhiều "tâches" để thể hiện mộtmối quan hệ trước sau nhưng có bổ sung thêm sự chuyển dữ liệu (le transfert de données) giữa chúng.

- Partage de ressources: đây là kiểu kết nối giữa hai hay nhiều "tâches" cùng chia sẽ với nhau các nguồn nghiêm ngặt (ressources critiques). Các nguồn nghiêmngặt là các nguồn mà sự tiếp cận chúng bởi hai hay nhiều "tâches" cùng một lúchoặc không thể thực hiện được, hoặc không thể để có một sự vận hành đúng.

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

23

Cấu trúc của các ứng dụng của hệ điều khiển (10/16)

■ Cấu trúc phần mềm (Architecture logicielle) (10/14)

Vai trò chính yếu của hệ tin học là điều phối sự đan xen (l’enchainement) và đồng thời(la concurrence) của các "tâches" nhằm tối ưu thời gian chiếm dụng vi xử lý, chức năngnày thường được gọi là "ordonnancement" (schedulability).

- Mô hình “synchrone”: ở mô hình này sự nhận thức thời điểm kích hoạt của tất cả dữ kiện điều khiển (l’occurrence de tout événement) bởi hệ thống bị trễ bởi thờigian tính toán của "tâche" hiện hành. Hay nói cách khác, các "tâches" của mô hình"synchrone" là các "tâches" không thể ngắt (non interruptibles ou non préemptibles)

Ta có thể phân chia mô hình vận hành của các hệ điều khiển thành hai mô hình sau: môhình "synchrone" và mô hình "asynchrone".

- Mô hình “asynchrone”: ở mô hình này sự nhận thức thời điểm kích hoạt của tất cả dữ kiện điều khiển (l’occurrence de tout événement) được ghi nhận ngay lập tức bởihệ thống để cân nhắc tính chất khẩn (urgence) hay tính chất quan trọng của chúng. Hay nói cách khác, các "tâches" của mô hình "asynchrone" là các "tâches" có thểngắt (interruptibles ou préemptibles)

Page 13: Tong quan ve he dieu khien

13

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

24

Cấu trúc của các ứng dụng của hệ điều khiển (11/16)

■ Cấu trúc phần mềm (Architecture logicielle) (11/14)

Mô hình "synchrone" của một ứng dụng điều khiển

Phương pháp phân tích "ordonnancement" trong mô hình "synchrone" được gọi là phương pháp phân tích "ordonnancement hors ligne".

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

25

Cấu trúc của các ứng dụng của hệ điều khiển (12/16)

■ Cấu trúc phần mềm (Architecture logicielle) (12/14)

Mô hình "asynchrone" của một ứng dụng điều khiển

Phương pháp phân tích "ordonnancement" trong mô hình "asynchrone" được gọi là phương pháp phân tích "ordonnancement en ligne".

Page 14: Tong quan ve he dieu khien

14

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

26

Cấu trúc của các ứng dụng của hệ điều khiển (13/16)

■ Cấu trúc phần mềm (Architecture logicielle) (13/14)

Cấu trúc củaứng dụng: tâches và

noyau temps réel

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

27

Cấu trúc của các ứng dụng của hệ điều khiển (14/16)

■ Cấu trúc phần mềm (Architecture logicielle) (14/14)

Các ngôn ngữ lập trình được sử dụng để phát triển các ứng dụng điều khiểnvới hạt nhân thời gian thực

1. Gestion des interruptions 2. Ordonnancement 3. Relations entre les tâches

Page 15: Tong quan ve he dieu khien

15

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

28

Cấu trúc của các ứng dụng của hệ điều khiển (15/16)

■ Cấu trúc phần cứng (Architecture matérielle) (1/2)

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

29

Cấu trúc của các ứng dụng của hệ điều khiển (16/16)

■ Cấu trúc phần cứng (Architecture matérielle) (2/2)

Cấu trúc phần cứng giữ một vai trò rất quan trọng trong các ứng dụng hệ điều khiển. Nó liên quan một mặt đến sự kết nối trực tiếp với môi trường thực tế nhờ vào các hệthống nhập/xuất đa dạng (une grande diversité de systèmes d’entrées/sorties); mặt khác đến thiết bị tin học phần cứng (matériel informatique) chuyên biệt và được pháttriển dành riêng cho một ứng dụng nào đó.

Rất nhiều ứng dụng của hệ điều khiển vận hành dựa trên các nền PC truyền thống. Tuy vậy, việc lắp đặt các cartes nhập/xuất, chúng phải được đồng bộ hóa (việc thunhận dữ liệu và xuất lệnh được thực hiện ở các thời điểm chính xác), là luôn cần thiết. Vì vậy, trong các ứng dụng tin học này, các phần cứng chuyên biệt luôn tồn tại và hỗ trợ tính năng về thời gian.

Trong nhiều trường hợp, các ứng dụng của hệ điều khiển thuộc dạng "distribué" mà ở đó chúng vận hành trong môi trường "multitâche", được kết nối với nhau bởi một hoặc nhiều hệ thống mạng (như Erthenet, CAN, FIP…)

Page 16: Tong quan ve he dieu khien

16

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

30

Sự phát triển của các ứng dụng của hệ điều khiển (1/27)

Sự phát triển của các ứng dụng tin học có thể được chia thành các giai đoạn phát triểnchính sau: giai đoạn mô tả đặc tính/yêu cầu (Spécification); giai đoạn thiết kế (Conception); giai đoạn xây dựng/triển khai (Implémentation/Codage); và giai đoạn kiểm tra (Test/Validation).

Nếu như việc kiểm tra (Test/Validation), giữ vai trò quan trọng sống còn trong việc đạt được chất lượng của hệ thống, có thể được thực hiện dễ dàng trong các ứng dụng tin học truyền thống (như các programmes tính toán…) thì đối với các ứng dụng của hệ điều khiển việc kiểm tra vận hành thực tế của hệ thường rất phức tạp phát sinh từ rất nhiều nguyên nhân mà ta có thể nêu ra sau: việc vận hành là duy nhất (vệ tinh do thám…), chi phí rất cao (hệ thống tên lửa, hệ thống tạo lực đẩy…), rủi ro cao về nhânmạng (thiết bị bay…)…

Vòng phát triển với các giai đoạn chính nêu trên cho phép vừa thu được các ứng dụng đạt chất lượng cao xét về khía cạnh cấu trúc phần mềm, vừa gia tăng khả năng về bảo dưỡng/sửa chữa (maintenabilité) và mở rộng/phát triển (évolutivité).

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

31

Sự phát triển của các ứng dụng của hệ điều khiển (2/27)

Vòng phát triển cổ điển "Cascade" (1/5)

Được đưa ra đầu tiên bởi W. Royce vào những năm 1970, vòng"Cascade" nguyên thủy là một sựphát triển theo trình tự từ giai đoạn "Spécification" đến giai đoạn "Test".

Có sự xuất hiện của một liên kết giữa cácgiai đoạn sau giai đoạn "Spécification" ban đầu cho phép thực hiện các "Tests" ở cuốimỗi giai đoạn trong vòng phát triển và phản hồi kịp thời đến giai đoạn liền trước đó nếu có vấn đề phát sinh

Page 17: Tong quan ve he dieu khien

17

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

32

Sự phát triển của các ứng dụng của hệ điều khiển (3/27)

Vòng phát triển cổ điển "Cascade" (2/5)

?

?

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

33

Sự phát triển của các ứng dụng của hệ điều khiển (4/27)

Vòng phát triển cổ điển "Cascade" (3/5)

(1) Giai đoạn “Spécification": tìm hiểu hệ thống dưới cái nhìn tổng quát đến tất cả các đặc tính của nó nhằm mục đích trả lời cho câu hỏi "Hệ thống làm gì?".

Các khía cạnh khảo sát ở đây không chỉ đơn thuần là các yêu cầu thuộc vềchức năng (besoins fonctionnels), mà còn bao hàm cả những yêu cầu khôngthuộc về chức năng (besoins non fonctionnels) như yêu cầu về ứng xử/đápứng của hệ thống (services comportementaux), vật liệu (matériaux), yêu cầu về chất lượng (qualités requises), các ràng buộc về thời gian đối với các hệthời gian thực…

Page 18: Tong quan ve he dieu khien

18

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

34

Sự phát triển của các ứng dụng của hệ điều khiển (5/27)

Vòng phát triển cổ điển "Cascade" (4/5)

(2) Giai đoạn “Conception": có thể phân chia thành hai giai đoạn, thiết kế sơ bộ(conception préliminaire) và thiết kế chi tiết (conception détaillée). Mục đích củagiai đoạn này là "định nghĩa" cấu trúc bên trong của hệ thống (architecture interne du système) từ các yêu cầu đặt ra ở giai đoạn trước đó nhằm mục đíchtrả lời cho câu hỏi "Hệ thống làm như thế nào?".

Thiết kế sơ bộ đưa ra cấu trúc tổng quát của hệ thống bằng cách phân chia nóthành các bộ phận cấu thành, đặc biệt là các "tâches" và các "modules". Module ở đây có thể được hiểu là một đơn vị tập hợp một nhóm các "fonctions" hoặc các"procédures" dành cho việc sử dụng kết hợp với các bộ phận khác.

Thiết kế chi tiết cho phép đi từ kết quả của thiết kế sơ bộ việc phân chia tiếp tụchệ thống cho đến cấp độ mô tả chi tiết/cụ thể nhất từng bộ phận cấu thành của nónhư: các lựa chọn "algorithmes", mô tả chi tiết từng "tâche", "fonction", cấu trúcdữ liệu, quan hệ giữa các "tâches"…

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

35

Sự phát triển của các ứng dụng của hệ điều khiển (6/27)

Vòng phát triển cổ điển "Cascade" (5/5)

(3) Giai đoạn “Implémentation": giai đoạn này cho phép triển khai các khái niệm được đưa ra trong giai đoạn thiết kế thể hiện dưới dạng code chương trình.

Đối với các hệ song song, hoặc sử dụng các ngôn ngữ hỗ trợ song song như Ada, Module 2…; hoặc sử dụng một ngôn ngữ tuần tự được dùng kết hợp vớimột hệ điều hành "multitâche" hay một hạt nhân thời gian thực (noyau temps réel) như ngôn ngữ C phát triển thành các chuẩn POSIX, VxWorks, OSEK/VDX…

Ngôn ngữ đồ họa có thể được sử dụng trong giai đoạn này. Dựa vào đặc tính đồ họa, ngôn ngữ này cho phép không những triển khai các khái niệm thiết kế, màcòn có thể tích hợp với các bộ phận của ứng dụng thực tế trong một môi trường đồng nhất liên tục một cách trực quan. LabVIEW là một trong số những ngôn ngữ đồ họa trong quá trình phát triển của các ứng dụng của hệ điều khiển.

Page 19: Tong quan ve he dieu khien

19

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

36

Sự phát triển của các ứng dụng của hệ điều khiển (7/27)

Vòng phát triển dạng "V" (1/3)

Là một dạng thay đổi của mô hình "Cascade", mô hình V tập trung vào quá trình kiểm tra/làm cho có hiệu lực quátrình phát triển của hệ điều khiển (vérification et validation).

- Đường dốc xuống bên trái là sự thể hiện lại của các giai đoạn phát triển của mô hình"Cascade" từ "Spécification" đến "Conception".

- Đường dốc lên bên phải là sự thể hiện của các quátrình "tests" mà ở đó ứng vớimỗi giai đoạn của quá trình"Analyse" và "Conception" ta thực hiện một quá trình"Test" và "Validation".

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

37

Sự phát triển của các ứng dụng của hệ điều khiển (8/27)

Vòng phát triển dạng "V" (2/3)

(4) Giai đoạn “tests unitaires": cho phép kiểm tra sự hoạt động của các thành phần của hệ thống một cách độc lập để đảm bảo mỗi chúng phải thỏa các yều cầu hoạt động riêng, và phải hoạt động "đúng" trong mọi điều kiện.

(5) Giai đoạn “tests d’intégration": là giai đoạn kiểm tra được tiến hành sau giai đoạn "tests unitaires" nhằm mục đích kiểm tra sự hoạt động của các thành phần củahệ thống trong sự vận hành tổng thể của nó: mối quan hệ giữa các bộ phận; sựhoạt động của các "tâches" dựa trên các bộ phận này; các cơ chế bảo đảm "communication/synchronisation" giữa các "tâches"…

(6) Giai đoạn “validation": là giai đoạn cho phép kiểm tra tính hiệu lực/tính đúng củahệ điều khiển được phát triển trước các yêu cầu (besoins) đề ra ở giai đoạn đầu tiên: "besoins fonctionnels" và "besoins non fonctionnels".

Page 20: Tong quan ve he dieu khien

20

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

38

Sự phát triển của các ứng dụng của hệ điều khiển (9/27)

Vòng phát triển dạng "V" (3/3)

Mô hình "V" so với mô hình "Cascade" giúp giảm bớt quá trình "retours" vềcác giai đoạn trước đó trong vòng phát triển của hệ điều khiển: cụ thể là mỗi giai đoạn ở phần "lên" (montant) sẽ chỉ phản hồi thông tin lại cho một giai đoạn tương ứng của phần "xuống" (descendant) trong sơ đồ V nhờ đó các lỗi được phát hiện sẽ được chỉnh sửa kịp thời.

Mô hình "V" vẫn mang đặc tính của một mô hình tuyến tính (modèle linéaire) nên các vấn đề gặp phải ở mô hình "Cascade" vẫn chưa được khắc phục: giai đoạn sau chỉ được bắt đầu khi giai đoạn trước hoàn tất và kết thúc, nên giai đoạn "tests" và "validation" chỉ được tiến hành sau khi giai đoạn "implémentation" kết thúc, phần lớn các lỗi lại phát sinh ở giai đoạn "spécification" ⇒ les retours coûtent chers

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

39

Sự phát triển của các ứng dụng của hệ điều khiển (10/27)

Một số vòng phát triển khác (1/6)

Mô hình tuyến tính sẽ rất phù hợp đối với các hệ điều khiển mà ở đó các yêu cầu của nó có thể được xác định ngay từ giai đoạn đầu. Điều đó một mặt giúp chuẩn bịtốt hơn cho giai đoạn "tests et validation"; mặt khác cố định và xuyên suốt các yêucầu ở những giai đoạn tiếp theo của vòng phát triển.

Tuy nhiên, đối với các mô hình "dirigés par les documents" thì phần lớn các ý tưởng ban đầu của hệ được xác định ở giai đoạn "spécification" đều ở dạng chưa hoàn chỉnh, nên rất có nhiều khả năng những "code" hay những thiết kế (conception) đưa ra trong các giai đoạn tiếp theo của vòng phát triển không thể sửdụng được/không phù hợp (inutilisable). Việc áp dụng các vòng phát triển dưa trênmô hình tuyến tính (Cascade, V) cho các mô hình này là không thật sự phù hợp.

il est favorable d’utiliser d‘autres techniques de prototypage qui permettent de valider tout ou une partie du cahier des charges et de prendre en considération le «feed-back» entre le concepteur et l’utilisateur.

Page 21: Tong quan ve he dieu khien

21

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

40

Sự phát triển của các ứng dụng củahệ điều khiển (11/27)

Một số vòng phát triển khác (2/6)

Mô hình "RapidPrototype"

Mô hình "Rapid Prototype" là mô hình mà ở đó mục tiêu của hệ (objectifs du système) sẽ được tập trung ngay từ những giai đoạn đầu của vòng phát triển.

- một thiết kế (conception) và một "prototype" đượchình thành nhanh nhằm kiểm tra các mục tiêu củahệ trước khi bắt đầu giai đoạn "spécification",

- yêu cầu ít các vòng "feed-back" hơn so với mô hìnhtuyến tính, điều đó giúp phát hiện và sửa chữa kịp thờicác lỗi phát sinh ở giai đoạn sử dụng.

Mô hình "Rapid Prototype" được sử dụng nhiềutrong ngành công nghiệp ô tô.

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

41

Sự phát triển của các ứng dụng củahệ điều khiển (12/27)

Một số vòng phát triển khác (3/6)

Mô hình« Incremental and

Iterative"

Mô hình "Incremental and Iterative" là mô hìnhmà ở đó quá trình phát triển được chia thànhnhiều chặn (étapes), và hệ được chia thànhnhiều phần nhỏ (morceaux) mỗi phần sẽ tươngứng với một nhóm các yêu cầu (besoins). Ở mỗi chặn phát triển, ta sử dụng mô hình tuyến tính để phân tích một hoặc nhiều phần nhỏ cùng mộtlúc, sau đó các phần nhỏ này sẽ được tích hợplại với nhau và "tests" tổng thể. Sản phẩm cuốicùng sẽ là một chuỗi liên tiếp (série) các mô hìnhphát triển tăng dần (modèles incrémentiels).

Page 22: Tong quan ve he dieu khien

22

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

42

Sự phát triển của các ứng dụng củahệ điều khiển (13/27)

Một số vòng phát triển khác (4/6)

Mô hình "Spiral" là mô hình "dirigé par les risques" do W. Boehm đưa ra.

Mô hình "Sprial"

- la dimension radicale représente le coût cumulatif,

- la dimension angulaire représente le progrès atteint à chaque cycle de spirale (phase),

- une phase commence par l’identification des objectifs de la phase, des alternatives pour obtenir ces objectifs et leurs contraintes

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

43

Sự phát triển của các ứng dụng củahệ điều khiển (14/27)

Một số vòng phát triển khác (5/6)

Mô hình "Sprial"

"Puis, chaque alternative est analysée sous un point de vue «risques». Des prototypes, des simulations,... seront préparés afin de résoudre chacun des potentiels risques. Si tous les risques sont résolus, le concepteur peut poursuivre l’étape suivante. Cette étape correspond à un modèle de vie classique (en «Cascade» ou en «V» avec Recherche des fonctionnalités, Analyse des besoins, Conception Préliminaire, Conception Détaillée, etc.) modifié pour incorporer au développement évolutif. Enfin, les résultats du cycle actuel sont évalués et un plan est vérifié pour les cycles successifs"

Page 23: Tong quan ve he dieu khien

23

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

44

Sự phát triển của các ứng dụng của hệ điều khiển (15/27)

Một số vòng phát triển khác (6/6)

Mô hình "Round-Tripping" của Booch

Lập trình hướng đối tượng không phải là một mô hình phát triển đúng nghĩa của hệ điều khiển. Nó được nói đến ở đây chủ yếu nhờ vào cơ chế "encapsulation" và cơ chế "polymorphisme", cho phép giảm đáng kể tính phức tạp (complexité) và gia tăng khả năng tái sử dụng (réutilisabilité) của chương trình.

"A gauche, nous voyons que les diagrammes UML sont utilisés pour l’analyse et la conception d’un système, tandis qu’à droite le langage Java est utilisé pour l’implémentation. Le code Java est généré à partir des diagrammes UML, et le «feedback» des changements de code est renvoyé aux diagrammes UML."

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

45

Sự phát triển của các ứng dụng của hệ điều khiển (16/27)

Vòng phát triển "Logiciel/Matériel" cổ điển (1/3)

"En informatique industrielle, on parle d’un système temps réel lorsque ce systèmeinformatique contrôle un procédé physique à une vitesse adaptée à l’évolution du procédé contrôlé. Ce système doit réagir continuellement à des événements en provenance du procédé contrôlé avec des contraintes temporelles dont le respect est aussi important que l’exactitude du résultat. Une réaction ne respectant pas son échéance pourrait causer une catastrophe humaine et financière. Un tel système comporte deux parties fondamentales: le matériel et le logiciel. Le matériel est la partie physique (le microprocesseur, la carte d’acquisition, le convertisseur A/D ou D/A, etc.) permettant de piloter le procédé et de recueillir des informations en provenance de ce dernier. Le logiciel est un ensemble des éléments informatiques assurant le fonctionnement du procédé contrôlé. Une part significative du développement d’un système temps réel consiste à décider des composants matériels et des composants logiciels du système, ainsi que du choix de quelles parties peuvent être implémentées comme des logiciels s’exécutant sur des composants programmables et lesquelles peuvent être implémentées sur des matériels spécifiques."

Page 24: Tong quan ve he dieu khien

24

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

46

Sự phát triển của các ứng dụng của hệ điều khiển (17/27)

Vòng phát triển "Logiciel/Matériel" cổ điển (2/3)

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

47

Sự phát triển của các ứng dụng của hệ điều khiển (18/27)

Vòng phát triển "Logiciel/Matériel" cổ điển (3/3)

"L’approche développement «Matériel/Logiciel» traditionnelle est une approche très répandue dans le monde des systèmes embarqués temps réel. En séparant un tel système en une partie matérielle et une partie logicielle, l’approche traditionnelle donne une vue claire de l’architecture opérationnelle d’un système temps réel."

"La lacune de l’interaction entre le matériel et le logiciel dans l’approche traditionnelle peut causer des influences imprévues sur le temps acquis pour le développement d’un système au point de la livraison («time-to-market»)."

Page 25: Tong quan ve he dieu khien

25

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

48

Sự phát triển của các ứng dụng của hệ điều khiển (18/27)

Vòng phát triển "Logiciel/Matériel en Co-design" (1/5)

“Logiciel/Matériel en Co-design" nhấn mạnh sự gặp nhau của các mục tiêu của hệbằng cách khai thác sự đồng thuận (synergie) của phần cứng (matériel) và phần mềm(logiciel) nhờ vào quá trình thiết kế đồng thời của chúng (conception concurrente).

"Un développement va commencer avec une notation abstraite telle que chaque composante ou module est indépendant(e) de sa réalisation finale en matérielle ou en logicielle. Puis, la séparation des composantes matérielles/logicielles peut être effectuée de manière la plus appropriée. L’intégration «Matériel/Logiciel» est ensuite complétée par un ensemble des instructions permettant des tests et des co-simulations."

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

49

Sự phát triển của các ứng dụng của hệ điều khiển (19/27)

Vòng phát triển "Logiciel/Matériel en Co-design" (2/5)

“Logiciel/Matériel en Co-design" thích hợpcho các ứng dụng mà ở đó các yêu cầu thiết kế có thể thay đổi liên tục và yếu tố "time-to-market" ảnh hưởng rất lớn đến sự thànhcông của thiết kế.

“Logiciel/Matériel en Co-design" pháttriển dựa trên nền "communication synchrone dirigée par événements".

Sự mô tả về chức năng của hệ được thể hiện dưới dạng các "graphes orientés", gọi là cácCFSMS (Co-design Finite State Machine).

"Un CFSM interprète un ensemble d’entrées en un ensemble de sorties avec un nombre fini d‘états internes. Mais, contrairement à un FSM traditionnel, un CFSM ne change pas tous ses états exactement en même temps. La communication entre des CFSMs est réalisée par des événements unidirectionnels, non zéro et sans bornes de temps (asynchrone globalement)."

Page 26: Tong quan ve he dieu khien

26

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

50

Sự phát triển của các ứng dụng của hệ điều khiển (20/27)

Vòng phát triển "Logiciel/Matériel en Co-design" (3/5)

"Les CFSMs sont supposés indépendant des choix matériels ou logiciels. Cela permet un choix libre de l’implémentation dans l’étape de «Matériel/Logiciel Partition»."

"Des interfaces entre des composantes matérielles et des composantes logicielles sont générées automatiquement grâce à des techniques de mémoire partagée (pour des communications dans lesquelles l’événement émis par le logiciel est consommé par le matériel), de «scrutation» ou d’«interruption», de communication directe entre des matériels ou des logiciels par «bus» ou «drapeau» respectivement."

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

51

Sự phát triển của các ứng dụng của hệ điều khiển (21/27)

Vòng phát triển "Logiciel/Matériel en Co-design" (4/5)

"Les co-simulations s’exécutent sur des matériels simulés (i.e., des ASICs, Application Specific IntegratedCircuit), ce qui permet de réduire le coût de production et d’augmenter la fiabilité, mais d’élever également le coût et le temps de développement."

"Par ailleurs, l’implémentation des logiciels possède un temps de réponse pouvant être plus grand que celui des matériels. Notamment, si le logiciel est basé sur un système d’exploitation avec le mécanisme de préemption, le temps de réaction d’un logiciel ne peut être représenté exactement par un modèle basé sur une hypothèse synchrone."

Page 27: Tong quan ve he dieu khien

27

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

52

Sự phát triển của các ứng dụng của hệ điều khiển (22/27)

Vòng phát triển "Logiciel/Matériel en Co-design" (5/5)

"De nos jours, avec des outils de conception assistés par ordinateur (CAO), l’introduction du FPGA (Field-Programmable Gate Array), et des HDLs (Hardware Description Language), le développement «Matériel/Logiciel» en Co-designdevient un vaste domaine de recherche et une clé de technologie pour des systèmes numériques pour le COSYMA (COSYnthesis for eMbedded micro Achitectures), pour le Ptolemy, pour le POLIS, etc."

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

53

Sự phát triển của các ứng dụng của hệ điều khiển (23/27)

Vòng phát triển "W" trong phương pháp cổ điển (1/5)

Mặc dù "Co-design" rất phù hợp đối với các ứng dụng đòi hỏi sự tích hợp cao giữaphần cứng và phần mềm, tuy nhiên để "hiểu và nắm bắt" được cách thức diễn đạt các yêu cầu ban đầu của ứng dụng: yêu cầu thuộc chức năng, yêu cầu không thuộcchức năng, yêu cầu về phần cứng… người thiết kế phải có một sự hiểu biết nhất định về một số phương pháp "formelles", và nhất là HDL (Hardware Description Language). Điều này thật sự không hề đơn giản.

Ngày nay, quá trình thiết kế ngày càng có xu hướng hướng đến sự đơn giản hóa để có thể giảm thiểu chi phí và thời gian, và để có thể có được một sự lựa chọn phần cứng cụ thể, chính xác, nhất là trong ngành công nghiệp ô tô (1 hoặc 2 vi điều khiển, thu thập dữ liệu thực hiện thông qua một mạng trao đổi thông tin hai chiều "réseau de terrain"). Trong trường hợp này, sự phát triển phần cứng nhiều khi chỉ còn lại sựthiết lập một số mạch (circuits) cho một số chức năng (fonctions) không thể đượcthực hiện bằng cách thức của phần mềm vì vấn đề "khả năng tính toán" (puissance de calcul).

Page 28: Tong quan ve he dieu khien

28

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

54

Sự phát triển của các ứng dụng của hệ điều khiển (24/27)

Vòng phát triển "W" trong phương pháp cổ điển (2/5)

Nếu như sự tương tác của phần cứng lên phần mềm có thể được nhận biết sớm vàrõ ràng, thì vòng phát triển "phần cứng/phần mềm" cổ điển vẫn có thể giúp rút ngắn thời gian phát triển của ứng dụng, và vẫn tỏ ra có hiệu quả so với vòng phát triển"phần cứng/phần mềm" dạng Co-design.

Vòng phát triển phần mềm dạng "W" trong phương pháp cổ điển là một trong những hướng hiện dạng được ứng dụng phổ biến hiện nay. Nhờ nó, người thiết kế có thể,

- Xác định và xây dựng các tương tác của phần cứng lên phần mềmtrong quá trình phát triển của phần mềm.

- kiểm tra phần mềm một cách dễ dàng, độc lập với phần cứng

- "codage - croisé"

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

55

Sự phát triển của các ứng dụng của hệ điều khiển (25/27)

Vòng phát triển "W" trong phương pháp cổ điển (3/5)

- Conception adaptée: hiệuchỉnh quá trình thiết kế chi tiết của phần mềm do cácyếu tố của phần cứng.

- Codage croisé: làm phù hợp các code đặc biệt, code điều khiểnthiết bị của các bộ phận thuộcphần mềm theo một chuẩn phần cứng được chọn (ex., POSIX, VxWorks, OSEK/VDX…).

- Validation sur cible: kiểm tra sự kết hợp giữa phần cứng và phần mềm để bảo đảm tất cả vận hành tốt trên phần cứng được chọn để triển khai.

- Validation temporelle: kiểm tra quá trình "ordonnancement" (schedulability) của môhình các "tâches" được triển khai thành các code tương ứng chạy trên phần cứng.

Page 29: Tong quan ve he dieu khien

29

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

56

Sự phát triển của các ứng dụng của hệ điều khiển (26/27)

Vòng phát triển "W" trong phương pháp cổ điển (4/5)

A partir de la conception préliminaire, on prend le premier V pour développer le logiciel en des composantes «pures». Ce sont des tâches, des modules, des outils de communication ou synchronisation, des tests et des simulations vérifiant son aspect fonctionnel. Puis dans le deuxième V, en associant des informations en provenance de l’architecture matérielle, on peut générer des codes des composantes logicielles qui s’adaptent bien à une cible. Cela nous permet de tester l’intégration matériel/logiciel et la validation temporelle. Alors, un changement de l’architecture matérielle n’entraîne que des modifications sur la deuxième partie de l’architecture logicielle.

Le modèle en "W" permet une flexibilité du choix du matériel par rapport au modèle en "V" classique.

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

57

Sự phát triển của các ứng dụng của hệ điều khiển (27/27)

Vòng phát triển "W" trong phương pháp cổ điển (5/5)

On peut diviser l’architecture logicielle en deux parties, donc une part indépendante du matériel et une part étant spécifique à une cible réelle.

Page 30: Tong quan ve he dieu khien

30

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

58

Mô hình "Top-down" vs. Mô hình "Bottom-up"

“Bottom-up” ??? “Top-down” ???

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

59

Các phương pháp phân tích và thiết kế cho vòng phát triển (1/3)

Có rất nhiều phương pháp phân tích - thiết kế dùng sự phát triển phần mềm của cácứng dụng của hệ điều khiển. Các phương pháp này có thể đóng góp vào một haynhiều giai đoạn của vòng phát triển. Ta có thể chia chúng thành 3 nhóm sau:

■ Các phương pháp dạng cấu trúc theo chức năng (Méthodes fonctionnelles structurées): dựa trên nền tản là sự phân chia ứng dụng điều khiển theo cácchức năng, liên kết với nhau bằng các dòng dữ liệu (flots de données).

- JSD: Jackson System Design (Michael Jackson, 1981)- SA-RT: Structured Analysis for Real-Time Systems (Ward-Mellor,

1984; Pirbhay-Harley, 1986)- DARTS: Design Approach for Real-Time Systems (Gomaa, 1984)- SDL: Specification and Description Language (CCITT,1988)- MSMC: Modélisation Simulation des Machines Cybernétiques

(Brenier, 2001)

Page 31: Tong quan ve he dieu khien

31

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

60

Các phương pháp phân tích và thiết kế cho vòng phát triển (2/3)

■ Các phương pháp dựa trên các mô hình trạng thái (Méthodes basées sur les machines à états): nền tản của các phương pháp này là các nền "formelles", chophép ta kiểm tra và đánh giá thiết kế một cách chuyên sâu hơn so với phươngpháp dạng cấu trúc theo chức năng.

- Réseaux de Petri (Petri, 1962)- GRAFCET: Graphe Fonctionnel de Commande Etape Transition (IEC, 1988)- Statecharts (D. Harel, 1987)- Langages réactifs synchrones: Lustre (Caspi,1991), Esterel (Berry, 1991),

Signal (le Guernic, 1991)

■ Các phương pháp phân tích-thiết kế hướng đối tượng (Méthodes objets ou orientés objets):

- UML: Unified Modeling Language (OMG, 1995)- HOOD: Hierarchical Object Oriented Design (CRI-Cisi Ingénierie-Matra, 1987)

Các hệ thời gian thực – Giới thiệu

Ngô Khánh Hiếu

61

Các phương pháp phân tích và thiết kế cho vòng phát triển (3/3)