1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề cương hệ thống nhúng

92 156 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 3,24 MB

Nội dung

HỆ THỐNG NHÚNG MỤC LỤC MỤC LỤC .1 Bài 1: Tổng quan hệ thống nhúng .3 1.1 Giới thiệu môn học 1.2 Hệ thống nhúng gì? 1.3 Lịch sử phát triển hệ thống nhúng .4 1.4 Xu hướng phát triển hệ thống nhúng 1.5 Những thách thức vấn đề tồn với hệ thống nhúng 1.6 Các đặc điểm hệ thống nhúng 1.6.1 Giao diện 1.6.2 Kiến trúc CPU 1.6.3 Thiết bị ngoại vi .8 1.6.4 Công cụ phát triển 1.6.5 Độ tin cậy 1.7 Một số ví dụ hệ thống nhúng .9 Bài 2: Các thành phần kiến trúc phần cứng Hệ thống nhúng 11 2.1 Đơn vị xử lý trung tâm CPU 11 2.2 Xung nhịp trạng thái tín hiệu .13 2.3 Bus địa chỉ, liệu điều khiển 16 2.4 Bộ nhớ 18 2.5 Ngoại vi 21 2.6 Giao diện 27 Bài 3: Một số phần cứng nhúng thông dụng 32 3.1 Chip Vi xử lý/Vi điều khiển nhúng 32 3.2 Chip DSP 33 Bài 4: Cơ sở kỹ thuật phần mềm nhúng 36 4.1 Phần mềm nhúng gì? 36 4.2 Đặc điểm phần mềm nhúng .36 4.3 Quy trình phát triển phần mềm nhúng .37 Bài 5: Hệ điều hành cho hệ thống nhúng 41 5.1 Đặc điểm chung hệ điều hành 41 5.2 Hệ điều hành cho hệ thống nhúng - hệ điều hành thời gian thực 41 5.2.1 Thời gian thực (Real - Time) gì? .41 5.2.2 Các dạng thời gian thực .42 5.2.3 Hệ điều hành thời gian thực 43 Bài 6: Cơ lập trình nhúng 47 6.1 Giới thiệu chung 47 6.1.1 Các hệ thống số .47 6.1.2 Số nguyên 47 6.2 Ngôn ngữ lập trình 52 6.3 Các kiến trúc phần mềm nhúng thông dụng 54 6.3.1 Vòng lặp kiểm soát đơn giản 54 6.3.2 Hệ thống ngắt điều khiển .54 6.3.3 Đa nhiệm tương tác 54 6.3.4 Đa nhiệm ưu tiên 55 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG 6.3.5 Vi nhân (Microkernel) nhân ngoại (Exokernel) 55 6.3.6 Nhân khối (monolithic kernels) 55 6.4 Tập lệnh 56 6.4.1 Cấu trúc tập lệnh CISC RISC 56 6.4.2 Các kiểu truyền địa toán tử lệnh 57 Bài 7: Tác vụ truyền thông tác vụ 62 7.1 Các tác vụ (Task) 62 7.2 Truyền thông đồng tác vụ 64 7.2.1 Semaphore 64 7.2.2 Monitor 67 Bài 8: Kĩ thuật lập lịch xử lý ngắt thời gian thực 69 8.1 Các khái niệm 69 8.2 Các phương pháp lập lịch phổ biến 70 8.2.1 Lập lịch có chu kỳ 70 8.2.2 Lập lịch không theo chu kỳ 71 8.2.3 Lập lịch theo kiểu chiếm quyền thực thi lập lịch chiếm quyền thực thi 71 8.3 Kỹ thuật lập lịch 73 8.4 Xử lý ngắt 75 8.4.1 Polling 75 8.4.2 Interrupt (ngắt) 76 Bài 9: Thiết kế Hệ thống nhúng 82 9.1 Quy trình phát triển 82 9.2 Mô hình hóa kiện tác vụ 82 9.2.1 Phương pháp mô hình Petrinet 82 9.2.3 Mô tả tình hoạt động với Petrinet 84 Bài 10: Thiết kế phần mềm điều khiển 88 10.1 Thiết kế phần mềm điều khiển 88 10.2 Một số phương pháp phát triển phần mềm nhúng 90 Bài 11: Thảo luận kiến trúc phần cứng hệ điều hành nhúng, phần mềm nhúng hệ điều hành nhúng 91 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG HỆ THỐNG NHÚNG (EMBEDDED SYSTEM) Bài 1: Tổng quan hệ thống nhúng 1.1 Giới thiệu môn học Module cung cấp cho người học kiến thức hệ thống nhúng, Nội dung bao gồm: Giới thiệu chung hệ thống nhúng; Kiến trúc phần cứng hệ thống nhúng; Hệ điều hành nhúng, phần mềm nhúng Sau hoàn thành module này, người học có khả năng: - Giải thích số khái niệm liên quan đến hệ thống nhúng, hệ điều hành nhúng phần mềm nhúng - Phân tích đặc điểm cấu trúc phần cứng, hệ điều hành phần mềm cho hệ thống nhúng - Ứng dụng thiết kế phát triển phần mềm cho hệ thống nhúng đơn giản - Rèn luyện khả tự nghiên cứu, khả làm việc theo nhóm Để học tốt môn học người học phải tự xây dựng cho phương pháp học thích hợp Nhưng phương pháp chung để học môn học người học phải hiểu thật kỹ phần lý thuyết từ tìm hiểu phần kiến thức mở rộng 1.2 Hệ thống nhúng gì? Hệ thống nhúng (Embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần phềm để thực một nhóm chức chuyên biệt cụ thể Hệ thống nhúng thường thiết kế để thực chức chuyên biệt Khác với máy tính đa chức năng, chẳng hạn máy tính cá nhân, hệ thống nhúng thực một vài chức định, thường kèm với yêu cầu cụ thể bao gồm số thiết bị máy móc phần cứng chuyên dụng mà ta không tìm thấy máy tính đa nói chung Vì hệ thống Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG xây dựng cho số nhiệm vụ định nên nhà thiết kế tối ưu hóa nhằm giảm thiểu kích thước chi phí sản xuất Các hệ thống nhúng thường sản xuất hàng loạt với số lượng lớn Hệ thống nhúng đa dạng, phong phú chủng loại Đó thiết bị cầm tay nhỏ gọn đồng hồ kĩ thuật số máy chơi nhạc MP3, sản phẩm lớn đèn giao thông, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Xét độ phức tạp, hệ thống nhúng đơn giản với vi điều khiển phức tạp với nhiều đơn vị, thiết bị ngoại vi mạng lưới nằm gọn lớp vỏ máy lớn Các thiết bị PDA máy tính cầm tay có số đặc điểm tương tự với hệ thống nhúng hệ điều hành vi xử lý điều khiển chúng thiết bị hệ thống nhúng thật chúng thiết bị đa năng, cho phép sử dụng nhiều ứng dụng kết nối đến nhiều thiết bị ngoại vi 1.3 Lịch sử phát triển hệ thống nhúng Hệ thống nhúng Apollo Guidance Computer (Máy tính dẫn đường Apollo) phát triển Charles Stark Draper phòng thí nghiệm trường đại học MIT năm 1960 Hệ thống nhúng sản xuất hàng loạt máy hướng dẫn cho tên lửa quân vào năm 1961 Nó máy hướng dẫn Autonetics D17, xây dựng sử dụng bóng bán dẫn đĩa cứng để trì nhớ Khi Minuteman II đưa vào sản xuất năm 1996, D-17 thay với máy tính sử dụng mạch tích hợp Tính thiết kế chủ yếu máy tính Minuteman đưa thuật toán lập trình lại sau để làm cho tên lửa xác hơn, máy tính kiểm tra tên lửa, giảm trọng lượng cáp điện đầu nối điện Từ ứng dụng vào năm 1960, hệ thống nhúng phát triển mạnh mẽ khả xử lý Bộ vi xử lý hướng đến người tiêu dùng Intel 4004, phát minh phục vụ máy tính điện tử hệ thống nhỏ khác Tuy nhiên cần chip nhớ hỗ trợ khác Vào năm cuối 1970, xử lý bit sản xuất, nhìn chung chúng cần đến chip nhớ bên Vào thập niên 80, kỹ thuật mạch tích hợp đạt trình độ cao dẫn đến nhiều thành phần đưa vào chip xử lý Các vi xử lý gọi vi điều Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG khiển chấp nhận rộng rãi Với giá thấp, vi điều khiển trở nên hấp dẫn để xây dựng hệ thống chuyên dụng Đã có bùng nổ số lượng hệ thống nhúng tất lĩnh vực thị trường số nhà đầu tư sản xuất theo hướng Ví dụ, nhiều chip xử lý đặc biệt xuất với nhiều giao diện lập trình kiểu song song truyền thống để kết nối vi xử lý Vào cuối năm 80, hệ thống nhúng trở nên phổ biến hầu hết thiết bị điện tử khuynh hướng tiếp tục 1.4 Xu hướng phát triển hệ thống nhúng Sau máy tính lớn (mainframe), PC Internet hệ thống nhúng sóng đổi thứ công nghệ thông tin truyền thông Xu hướng phát triển hệ thống nhúng là: - Phần mềm ngày chiếm tỷ trọng cao trở thành thành phần cấu tạo nên thiết bị bình đẳng phần khí, linh kiện điện tử, linh kiện quang học… - Các hệ nhúng ngày phức tạp đáp ứng yêu cầu khắt khe thời gian thực, tiêu lượng hoạt động tin cậy ổn định - Các hệ nhúng ngày có độ mềm dẻo cao đáp ứng yêu cầu nhanh chóng đưa sản phẩm thương trường, có khả bảo trì từ xa, có tính cá nhân cao - Các hệ nhúng ngày có khả hội thoại cao, có khả kết nối mạng hội thoại với người sử dụng - Các hệ nhúng ngày có tính thích nghi, tự tổ chức cao có khả tái cấu thực thể, tác nhân - Các hệ nhúng ngày có khả tiếp nhận lượng từ nhiều nguồn khác (ánh sáng, rung động, điện từ trường, sinh học….) để tạo nên hệ thống tự tiếp nhận lượng trình hoạt động 1.5 Những thách thức vấn đề tồn với hệ thống nhúng Hệ thống nhúng phải đối mặt với vấn đề sau: - Độ phức tạp liên kết đa ngành phối hợp cứng - mềm Độ phức tạp hệ thống tăng cao kết hợp nhiều lĩnh vực đa ngành, kết hợp phần cứng - mềm, phương pháp thiết kế kiểm tra Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG chưa chín muồi Khoảng cách lý thuyết thực hành lớn thiếu phương pháp lý thuyết hoàn chỉnh cho khảo sát phân tích toàn cục hệ nhúng - Thiếu phương pháp tích hợp tối ưu thành phần tạo nên hệ nhúng bao gồm lý thuyết điều khiển tự động, thiết kế máy, công nghệ phần mềm, điện tử, vi xử lý, công nghệ hỗ trợ khác - Thách thức độ tin cậy tính mở hệ thống: Do hệ thống nhúng thường phải hội thoại với môi trường xung quanh nên nhiều gặp tình không thiết kế trước dễ dẫn đến hệ thống bị loạn Trong trình hoạt động số phần mềm thường phải chỉnh lại thay đổi nên hệ thống phần mềm không kiểm soát Đối với hệ thống mở, hãng thứ đưa module mới, thành phần vào gây nên hoạt động thiếu tin cậy 1.6 Các đặc điểm hệ thống nhúng Hệ thống nhúng thường có số đặc điểm chung sau: - Các hệ thống nhúng thiết kế để thực số nhiệm vụ chuyên dụng đóng vai trò hệ thống máy tính đa chức Một số hệ thống đòi hỏi ràng buộc tính hoạt động thời gian thực để đảm bảo độ an toàn tính ứng dụng Một số hệ thống không đòi hỏi 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ối riêng biệt mà hệ thống phức tạp nằm thiết bị mà điều khiển - Phần mềm viết cho hệ thống nhúng gọi firmware lưu trữ chip nhớ đọc (ROM - Read Only Memory) nhớ flash ổ đĩa Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: bàn phím, hình có với kích thước nhỏ, nhớ hạn chế Sau đây, sâu, xem xét cụ thể đặc điểm thành phần hệ thống nhúng Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG 1.6.1 Giao diện Các hệ thống nhúng giao diện (đối với hệ thống đơn nhiệm) có đầy đủ giao diện giao tiếp với người dùng tương tự hệ điều hành thiết bị để bàn Đối với hệ thống đơn giản, thiết bị nhúng sử dụng nút bấm, đèn LED hiển thị chữ cỡ nhỏ hiển thị số, thường kèm với hệ thống menu đơn giản Còn hệ thống phức tạp hơn, hình đồ họa, cảm ứng có nút bấm lề hình cho phép thực thao tác phức tạp mà tối thiểu hóa khoảng không gian cần sử dụng Ý nghĩa nút bấm thay đổi theo hình lựa chọn Các hệ thống nhúng thường có hình với nút bấm dạng cần điểu khiển (joystick button) Sự phát triển mạnh mẽ mạng toàn cầu mang đến cho nhà thiết kế hệ nhúng lựa chọn sử dụng giao diện web thông qua việc kết nối mạng Điều giúp tránh chi phí cho hình phức tạp đồng thời cung cấp khả hiển thị nhập liệu phức tạp cần đến, thông qua máy tính khác Điều hữu dụng thiết bị điều khiển từ xa, cài đặt vĩnh viễn Ví dụ, router thiết bị ứng dụng tiện ích 1.6.2 Kiến trúc CPU Các xử lý hệ thống nhúng chia thành hai loại: Vi xử lý vi điều khiển Các vi điều khiển thường có thiết bị ngoại vi tích hợp chip nhằm giảm kích thước hệ thống Có nhiều loại kiến trúc CPU sử dụng thiết kế hệ nhúng ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Z80, Z8 … Điều trái ngược với loại máy tính để bàn, thường bị hạn chế với vài kiến trúc máy tính định Các hệ thống nhúng có kích thước nhỏ thiết kế để hoạt động môi trường công nghiệp thường lựa chọn PC/104 PC/104++ làm tảng Những hệ thống thường sử dụng DOS, Linux hệ điều hành nhúng thời gian thực QNX hay VxWorks Còn hệ thống nhúng có kích thước lớn thường sử dụng cấu hình thông dụng hệ thống on chip (System on a chip – SoC), bảng mạch tích hợp cho ứng dụng cụ thể (An Application Specific Integrated Circuit – ASIC) Sau nhân CPU thêm vào phần thiết kế chip Một chiến lược tương tự sử dụng Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG FPGA (field-programmable gate array) lập trình cho với thành phần nguyên lý thiết kế bao gồm CPU 1.6.3 Thiết bị ngoại vi Hệ thống nhúng giao tiếp với bên thông qua thiết bị ngoại vi, ví dụ như: - Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485 - Universal Serial Bus (USB) - Networks: Controller Area Network, LonWorks - Bộ định thời: PLL(s), Capture/Compare Time Processing Units - Discrete IO: General Purpose Input/Output (GPIO) 1.6.4 Công cụ phát triển Tương tự sản phẩm phần mềm khác, phần mềm hệ thống nhúng phát triển nhờ việc sử dụng trình biên dịch (compilers), chương trình dịch hợp ngữ (assembler) công cụ gỡ rối (debuggers) Tuy nhiên, nhà thiết kế hệ thống nhúng sử dụng số công cụ chuyên dụng như: - Bộ gỡ rối mạch chương trình mô (emulator) - Tiện ích để thêm giá trị checksum CRC vào chương trình, giúp hệ thống nhúng kiểm tra tính hợp lệ chương trình - Đối với hệ thống xử lý tín hiệu số, người phát triển hệ thống sử dụng phần mềm workbench MathCad Mathematica để mô phép toán - Các trình biên dịch trình liên kết (linker) chuyên dụng sử dụng để tối ưu hóa thiết bị phần cứng - Một hệ thống nhúng có ngôn ngữ lập trình công cụ thiết kế riêng sử dụng cải tiến từ ngôn ngữ có sẵn Các công cụ phần mềm tạo công ty phần mềm chuyên dụng hệ thống nhúng chuyển đổi từ công cụ phát triển phần mềm GNU Đôi khi, công cụ phát triển dành cho máy tính cá nhân sử dụng xử lý hệ thống nhúng gần giống với xử lý máy PC thông dụng Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG 1.6.5 Độ tin cậy Các hệ thống nhúng thường nằm cỗ máy kỳ vọng chạy hàng năm trời liên tục mà không bị lỗi khôi phục hệ thống gặp lỗi Vì thế, phần mềm hệ thống nhúng phát triển kiểm thử cách cẩn thận phần mềm cho máy tính cá nhân Ngoài ra, thiết bị rời không đáng tin cậy ổ đĩa, công tắc nút bấm thường bị hạn chế sử dụng Việc khôi phục hệ thống gặp lỗi thực cách sử dụng kỹ thuật watchdog timer – phần mềm không đặn nhận tín hiệu watchdog định kì hệ thống bị khởi động lại Một số vấn đề cụ thể độ tin cậy như: - Hệ thống ngừng để sửa chữa cách an toàn, ví dụ hệ thống không gian, hệ thống dây cáp đáy biển, đèn hiệu dẫn đường… Giải pháp đưa chuyển sang sử dụng hệ thống dự trữ phần mềm cung cấp phần chức - Hệ thống phải chạy liên tục tính an toàn, ví dụ thiết bị dẫn đường máy bay, thiết bị kiểm soát độ an toàn nhà máy hóa chất… Giải pháp đưa lựa chọn backup hệ thống - Nếu hệ thống ngừng hoạt động gây tổn thất nhiều tiền ví dụ dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát nhà máy … 1.7 Một số ví dụ hệ thống nhúng Quanh ta có nhiều sản phẩm nhúng lò vi sóng, nồi cơm điện, điều hoà, điện thoại di động, ô tô, máy bay, tàu thuỷ, đầu đo cấu chấp hành thông minh … Ta thấy hệ thống nhúng có mặt lúc nơi sống Các máy trả lời tự động, thiết bị y tế, máy in, hệ thống dẫn đường không lưu có tích hợp hệ thống nhúng Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG - Các trường hợp đặc biệt xử lý Các điều kiện lỗi lỗi chia 0, lỗi truy cập bất hợp pháp vào nhớ điều khiển thông qua chế ngắt Hình 8.5: Ngắt Hai loại ngắt kể đồng với việc thực lệnh Trong đó: INT câu lệnh lỗi đặc biệt xử lý kết trực tiếp việc thực lệnh Loại ngắt thứ tạo kiện xảy bên xử lý Loại ngắt tạo I/O phần cứng xảy không đồng với việc thực lệnh Các ngắt không đồng bộ: - Làm tối đa hoá hiệu suất thông lượng hệ thống máy tính - Gây phần lớn lỗi rắc rối cho người lập trình Hầu hết xử lý sử dụng lược đồ ngắt giống Hình 8.6 kiến trúc ngắt Intel x86 1kilo byte (KB) nhớ giành cho bảng véctơ ngắt (Interrupt Vector Table) Mỗi véctơ có byte thể địa (segment offset) chương trình dịch vụ ngắt Các véctơ mang ý nghĩa, chức khác định nghĩa kiến trúc xử lý Ví dụ: véctơ lỗi chia 0, véctơ breakpoint (lệnh ngắt INT 1byte) Bộ môn Kỹ thuật Máy tính – Khoa CNTT 77 HỆ THỐNG NHÚNG Hình 8.6: Ngắt - Bảng véctơ ngắt Một số véctơ dành cho ngắt Trong PC, véctơ đến 15 0x70 đến 0x77 dành cho phần cứng Tất véctơ truy cập thông qua lệnh ngắt INT 2byte, đó, byte thứ số thứ tự véctơ (ngắt) Phần mềm hệ thống thường thiết lập quy ước liên quan đến nhiều véctơ Ví dụ: PC BIOS sử dụng số ngắt cho dịch vụ phần cứng LINUX sử dụng ngắt INT 0x80 để gọi dịch vụ kernel Sau ví dụ việc sử dụng ngắt INT 0x80 Linux: - Bộ xử lý lưu lại giá trị thời ghi đếm chương trình Program Counter (PC) Code Segment (CS) vào ngăn xếp stack với từ điều khiển trạng thái xử lý Proccesor Status Word (PSW) - Byte thứ câu lệnh INT số bảng véctơ ngắt để từ tìm địa chương trình dịch vụ ngắt (ISR) Bộ xử lý nạp địa vào ghi PC CS việc thực chương trình thực từ điểm 78 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG Hình 8.7: Ngắt hoạt động ngắt - Kết thúc ISR câu lệnh IRET (Interrupt Return) Nó giải phóng PC CS để nạp lại giá trị chương trình thực tiếp lệnh sau lệnh INT Lệnh INT tương tự lệnh gọi chương trình CALL có đôi chút khác biệt: địa đích lệnh CALL nhúng vào câu lệnh với INT, ta không cần quan tâm đến địa ISR Địa nầm bảng véctơ ngắt Đây điểm thuận lợi cho việc truyền thông chương trình biên dịch chương trình tải, ví dụ chương trình ứng dụng hệ điều hành Các ngắt có cách thức thực thể hình 8.8 Một thiết bị bên đưa “yêu cầu ngắt” Interrupt Request (IRQ) Khi xử lý phản ứng lại xác nhận “chấp nhận ngắt” Interrupt Acknowledge (IAK), thiết bị gửi số thứ tự véctơ ngắt lên bus liệu Bộ xử lý sau thiết lập lệnh ngắt INT với số véctơ ngắt cung cấp Hình 8.8: Ngắt cứng Trong thực tế, hầu hết hệ thống sát nhập thêm thiết bị ngoại vi đặc biệt gọi điều khiển ngắt Interrupt Controller để quản lý công việc chi Bộ môn Kỹ thuật Máy tính – Khoa CNTT 79 HỆ THỐNG NHÚNG tiết chẳng hạn gửi số véctơ ngắt lên bus liệu vào thời điểm cần thiết Kiến trúc PC bao gồm điều khiển ngắt 8259, quản lý ngắt Mỗi 8259 có chế quản lý ngắt theo kiểu ưu tiên Do đó, thiết bị quan trọng ưu tiên thiết bị khác quan trọng Ngắt kích hoạt bị vô hiệu hoá Ở cấp độ xử lý, ngắt kích hoạt vô hiệu hoá thông qua câu lệnh STI CLI Các ngắt kích hoạt vô hiệu cách có chọn lọc điều khiển ngắt 8259 hay thiết bị Trên thực tế, việc kích hoạt vô hiệu ngắt điểm mấu chốt để thiết kế thực thi phần mềm thời gian thực Cũng đáng ngạc nhiên nói ngắt không đồng có vấn đề đáng bàn Để ý ứng dụng thu thập liệu dựa A/D đa kênh hình 8.9 Cứ chuyển đổi A/D thu thập tập hợp liệu kênh, ngắt xử lý Chương trình dịch vụ ngắt đọc liệu cất vào nhớ đệm, nơi mà chương trình khác (còn gọi chương trình nền) tiếp tục xử lý Hình 8.9: Ví dụ ngắt Hoạt động điều khiển ngắt cho phép phản ứng lại A/D cách nhanh chóng nhớ đệm tách chương trình khỏi nguồn liệu, ví dụ: chương trình không cần quan tâm đến liệu từ đâu mà có Bây xem đến đoạn mã lệnh ghi hình 8.9 Giả thiết thí nghiệm, cung cấp tín hiệu biến đổi liên tục vào kênh Đồng thời, giả thiết chương trình không bị “fail” thực đo tín hiệu đồng Trong thực tế, chương trình viết chắn bị “fail” ngắt xảy cập nhật biến Cur_temp cập nhật biến Set_temp với kết giá trị biến Cur_temp cập nhật từ tập hợp liệu cũ trước đó, giá trị 80 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG biến Set_temp cập nhật từ tập hợp liệu thời Như vậy, tín hiệu đầu vào thay đổi theo thời gian tập hợp liệu tách rời thời gian xác định, giá trị biến khác đó, chương trình “fail” Đây chất vấn đề lập trình thời gian thực Cần phải quản lý ngắt không đồng để chúng không xảy vào thời điểm không thích hợp Có giải pháp, dù không hay cho lắm, để giải vấn đề Ta dùng lệnh vô hiệu hoá ngắt (CLI) trước cập nhật biến Cur_temp kích hoạt ngắt lệnh STI sau cập nhật biến Set_temp Việc làm giúp ngắt tránh khỏi phiền phức việc cập nhật liên tục đề cập Có vẻ sáng suốt sử dụng lệnh CLI STI chìa khoá cho giải pháp đắn, đơn giản rải lệnh CLI STI code chương trình chẳng khác việc sử dụng lệnh “go to” biến toàn cục Bộ môn Kỹ thuật Máy tính – Khoa CNTT 81 HỆ THỐNG NHÚNG Bài 9: Thiết kế Hệ thống nhúng 9.1 Quy trình phát triển Quá trình phát triển hệ thống nhúng thực theo chu trình sau: ✓ (1) Problem specification ✓ (2) Tool/chip selection ✓ (3) Software plan ✓ (4) Device plan ✓ (5) Code/debug ✓ (6) Test ✓ (7) Integrate 9.2 Mô hình hóa kiện tác vụ 9.2.1 Phương pháp mô hình Petrinet Năm 1962 Carl Adam Petri công bố phương pháp mô hình hình hoạ tác vụ hay trình theo phụ thuộc nhân phổ cập rộng rãi biết tới ngày với tên gọi mạng Petri Mạng Petri sử dụng phổ biến để biểu diễn mô hình phân tích hệ thống có cạnh tranh trình hoạt động Một hệ thống hiểu tổ hợp nhiều thành phần thành phần có thuộc tính Các thuộc tính thay đổi đặc trưng biến trạng thái Một chuỗi trạng thái mô tả trình động hệ thống Mạng Petri thực giải pháp mô tả hệ thống động với kiện rời rạc tác động làm thay đổi trạng thái đối tượng hệ thống theo điều kiện cụ thể trạng thái hệ thống Mạng Petri thiết lập dựa thành phần chính: (1) Các điều kiện, (2) kiện, (3) quan hệ luồng Các điều kiện thoả mãn không thoả mãn Các kiện xảy không Và quan hệ luồng mô tả điều kiện hệ trước kiện xảy Các điều kiện đòi hỏi phải thoả mãn để kiện xảy chuyển trạng thái thực gọi điều kiện trước (precondition) Các điều kiện mà thoả mãn kiện xảy gọi điều kiện sau (postcondition) 9.2.2 Quy ước biểu diễn mô hình Petrinet 82 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG Hình 9.1: Ví dụ mô hình mạng Petri Trong qui ước biểu diễn hình hoạ mạng Petri sử dụng vòng tròn để biểu diễn điều kiện, hộp để biểu diễn kiện, mũi tên biểu diễn quan hệ luồng Một ví dụ minh hoạ mạng Petri mô tả Hình 13.1, đó: - P = {p1 , p2 , , pnp } tập gồm np vị trí biểu diễn mô hình (được mô tả vòng tròn) - T = {t1 , t2 , , tnt } tập gồm nt chuyển đổi tập chuyển đổi biểu diễn mô hình (được mô tả hình chữ nhật) - I biểu diễn quan hệ vào chuyển đổi ký hiệu đường mũi tên theo hướng từ vị trí tới chuyển đổi - O biểu diễn quan hệ khỏi chuyển đổi ký hiệu đường mũi tên theo hướng từ chuyển đổi tới vị trí - M = {m1 , m2 , mnp } dấu trạng thái chuyển đổi hệ thống Các giá trị mi số thẻ (được ký hiệu chấm tròn đen) chứa bên vị trí pi tập dấu M Hệ thống động mô tả mạng Petri nhờ chuyển dịch thẻ vị trí hệ thống mô hình tuân thủ theo luật sau: - Một chuyển đổi phép thực thi tất vị trí vào chuyển đổi chứa thẻ - Khi chuyển đổi thực thi xong (hoàn thành) thẻ bị loại khỏi vị trí vào chuyển đổi đồng thời bổ sung thêm thẻ vào vị trí đầu tương ứng chuyển đổi Bộ môn Kỹ thuật Máy tính – Khoa CNTT 83 HỆ THỐNG NHÚNG Các trạng thái động hệ thống mô tả tập R(M) đánh dấu dấu tập M Trong ví dụ có phần tử dấu tập R M , M , M , M , M Tương ứng sau: - M = (1, 0, 0, 0, 0) - M = (0,1,1, 0, 0) - M = (0,1, 0, 0,1) - M = (0, 0, 0,1,1) - M = (0, 0,1,1, 0) 9.2.3 Mô tả tình hoạt động với Petrinet ✓ Song song đồng bộ: Trong mô hình PN mô tả Hình 9.2 (a), chuyển đổi t1 t2 phép thực đồng thời; hoạt động chúng không ảnh hưởng đến Các hoạt động mô hình hai chuyển đổi thực song song Trong hệ thống dự phòng với độ tin cậy cao, mô hình sử dụng để biểu diễn hai thành phần C C2 song song để đảm bảo hoạt động dự phòng; trường hợp vị trí p p3 biểu diễn điều kiện làm việc, vị trí p2 p4 biểu diễn điều kiện lỗi, t1 t2 kiện lỗi tác vụ C1 C2 cách tương ứng Hình 9.2: Mô hình Petrinet hoạt động song song: Độc lập (a) đồng (b) Trong hoạt động song song, tác vụ hoàn toàn độc lập, nhiên kiện cần phải kết thúc điều kiện chuyển đổi khác hoạt động đồng thực nhờ bổ sung chuyển đổi t3 mô tả Hình 9.2 (b) Khi chuyển đổi t3 cần thẻ đồng thời p2 p4 ✓ Chia sẻ đồng bộ: Một yếu tố đặc trưng hoạt động hệ thống phân tán thường phải chia sẻ số tài nguyên hữu hạn Sự thiếu thốn tài nguyên làm hạn chế hoạt động 84 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG hệ thống trình xử lý chí làm tắc nghẽn hệ thống Việc mô hình phân tích hệ thống có tượng tắc nghẽn tác vụ khó khăn hầu hết trình mô hình gặp phải Hình 9.3: Hoạt động đệm với dung lượng hữu hạn Để minh hoạ tình này, biểu diễn hoạt động đệm với dung lượng hữu hạn mô tả PN Hình 9.3 Vị trí p3 mô hình số vị trí đệm trống vị trí p2 mô hình số vị trí điền đầy; ý tổng thẻ chứa vị trí p2 p3 số (trong ví dụ 3) Chuyển đổi t2 mô hình trình điền đầy vị trí đệm hoàn thành có vị trí đệm trống với thẻ chứa vị trí p1 p3 Chuyển đổi t3 phép thực có vị trí đệm điền đầy Khi hoàn thành chuyển đổi t 3, thẻ chuyển từ vị trí p2 sang vị trí p3 ✓ Tuần tự: Hoạt động mô tả minh hoạ hoạt động tạo sử dụng thông qua đệm Bộ tạo sinh đối tượng để đưa vào đệm lấy sử dụng Quá trình sử dụng phải thực cách theo trình tạo đối tượng Mô hình cho hoạt động diễn tả PN Hình 9.4 (a) Thẻ chứa vị trí p1 có nghĩa tạo sẵn sàng thực Khi chuyển đổi t1 t2 hoàn thành đối tượng tạo (một thẻ tương ứng chuyển vào đệm mô hình vị trí p5) tạo lại sẵn sàng trở lại Nếu sử dụng có nhu cầu tiêu thụ (được mô hình thẻ chứa vị trí p3 ) có đối tượng đệm thẻ chứa vị trí p5 lấy chuyển đổi t3 hoàn thành Bộ môn Kỹ thuật Máy tính – Khoa CNTT 85 HỆ THỐNG NHÚNG Hình 9.4: Hoạt động tạo sử dụng với đệmvô hạn (a) hữu hạn(b) Trong cách mô tả Hình 9.4 (a) việc tạo sử dụng thực thông qua đệm với giả thiết có dung lượng vô hạn Trong thực tế đệm hữu hạn, để mô tả hoạt động với đệm loại Hình 9.4 (b) sử dụng Vị trí p6 mô hình vị trí đệm trống vị trí p5 mô hình vị trí đệm điền đầy Tổng số lượng thẻ chứa vị trí p p6 phải số Nếu thẻ gán cho vị trí p5 dấu khởi tạo tạo tạo thêm đối tượng chừng sử dụng chưa tiêu thụ đối tượng đệm Loại trừ xung đột Hình 9.5: Hoạt động loại trừ hai tác vụ song song chia sẻ tài nguyên Hai tác vụ C1 C2 phép làm việc song song chia sẻ tài nguyên CS, không truy nhập vào tài nguyên đồng thời Giản đồ PN cho hoạt động mô tả Hình 10.5 Các vị trí p1 p5 biểu diễn tác vụ C1 C2 làm việc độc lập; vị trí p2 p6 biểu diễn yêu cầu tác vụ C1 C2 cách tương ứng muốn truy nhập vào tài nguyên chia sẻ CS; p3 p7 biểu diễn CS bị chiếm dụng tác vụ C1 C2 cách tương ứng Vị trí p4 86 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG mô tả định xem tác vụ truy nhập tài nguyên Cs tránh vị trí p3 p7 bị đánh dấu đồng thời Thực tế p2 p6 đánh dấu chuyển đổi t2 t5 xung đột Việc hoàn thành hai tác vụ khoá/cấm lẫn Việc hoàn thành chuyển đổi t3 t6 mô hình việc giải phóng nguồn tài nguyên chung (chuyển thẻ trở lại vị trí p4) trở điều kiện làm việc bình thường 9.2.4 Ngôn ngữ mô tả phần cứng (VHDL) VHDL (Very High Speed Integrated Circuit Hardware Description Lanuage) ngôn ngữ chung để mô tả thiết kế phần cứng mức phần tử logic cấu thành nên hệ thống phát triển tổ chức quốc phòng Mỹ Mục đích để thuận tiện cho việc trao đổi liệu thiết kế phần cứng theo định dạng chuẩn mà người hiểu thông dịch, tạo điều kiện thuận lợi việc phối hợp hay hợp tác dự án thiết kế Đặc biệt thuận tiện việc chuyển đổi hay tổng hợp biên dịch thành dạng ngôn ngữ thực thi phần cứng thực Điều khó thực ngôn ngữ bậc cao C với VHDL điều ưu điểm bật mạnh việc mô hình hoá hệ thống, mô tả cách chi tiết phần tử cứng cấu thành tham gia hệ thống VHDL chuẩn IEEE (Std - 1076) hỗ trợ nhiều nhà cung cấp phát triển phần cứng Ứng dụng cách chuyên nghiệp ngôn ngữ phục vụ cho việc mô tả mạch ASICs phức hợp, chế tạo thực thi mạch FPGA Ngôn ngữ VHDL đọc hiểu dễ dàng với cấu trúc cú pháp rõ ràng gần giống ngôn ngữ Visual Basic Pascal Nó phát huy mạnh cú pháp để định nghĩa xây dựng kiểu liệu hỗ trợ cho việc lập trình theo nhóm Với xu nhóm phát triển thực thi với điều kiện cách xa khoảng cách địa lý, việc phối hợp thiết kế theo nhóm cần thiết Bộ môn Kỹ thuật Máy tính – Khoa CNTT 87 HỆ THỐNG NHÚNG Bài 10: Thiết kế phần mềm điều khiển 10.1 Thiết kế phần mềm điều khiển Hình 10.1: Hệ thống điều khiển số Để thực thi điều khiển số thiết bị vật lý thực phải đòi hỏi xét xem điều khiển với mô hình hàm truyền cho thực hóa không Điều kiện phải xét thực để đảm bảo đầu hệ thống lại xuất trước có tín hiệu vào Hay nói cách khác hệ thống xây dựng phải tuân thủ tính nhân Nếu khai triển hàm truyền điều khiển số mô tả dạng tổng quát: thành chuỗi lũy thừa theo z phải không phép chứa phần tử chứa lũy thừa dương z Hay nói cách khác điều khiển mô tả phải có bậc ≤ tức bậc tử số phải nhỏ bậc mẫu số (n ≥ m) Sau thiết kế điều khiển số việc lại lập trình nạp vào điều khiển vật lý khả trình Thực chất trình thực thi hàm truyền điều khiển số lập trình số điều khiển vật lý có Ở chủ yếu quan tâm đến việc triển khai để chuẩn bị cho bước lập trình hàm truyền điều khiển số Xuất phát từ mô tả hàm truyền dạng tổng quát điều khiển số: đó, a0 ≠ b0 ≠ ; m n số nguyên dương Có thể triển khai để thực thi hàm truyền điều khiển số theo cách sau: Triển khai lập trình số trực tiếp 88 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG Để triển khai lập theo phương pháp lập trình trực tiếp hàm truyền điều khiển cho biểu diễn miền z phải chuyển đổi dạng hàm truyền rời rạc: Từ đẳng thức dễ dàng tính giá trị đầu u * (t ) điều khiển số cho theo giá trị khứ đầu vào e* (t ) giá trị khứ Để thực điều khiển yêu cầu phải lưu trữ giá trị khứ đầu vào đầu điều khiển Với điều khiển cho yêu cầu phải có n + m giá trị cần phải lưu trữ hay nói cách khác cần phải có n + m phần tử lưu trữ Một phương pháp khác để triển khai lập trình trực tiếp sử dụng chế tách trực tiếp đầu vào đầu điều khiển theo biến trung gian X(z) Không tính tổng quát nhân tử mẫu hàm truyền điều khiển số cho với biến X(z) Từ rút hàm truyền đầu vào E(z) theo X(z) hàm truyền đầu U(z) theo X(z) Phương pháp thực sau: Theo phương pháp yêu cầu số phần tử lưu trữ giá trị n, bậc đa thức mẫu số hàm truyền điều khiển số cho Từ đẳng thức ta dễ dàng xây dựng giản đồ trạng thái mô tả hàm truyền điều khiển số (giả thiết m = n = ) Hình 10.2: Giản đồ trạng thái hệ thống số ✓ Triển khai lập trình số ghép tầng Bộ môn Kỹ thuật Máy tính – Khoa CNTT 89 HỆ THỐNG NHÚNG Cách triển khai yêu cầu chuyển đổi điều khiển dạng tích hàm truyền đơn giản để dễ dàng thực chương trình đơn giản Hay nói cách khác điều khiển số cho kết ghép tầng nhiều điều khiển nhỏ ✓ Triển khai lập trình số song song Bộ điều khiển cho tách thành tổng điều khiển đơn giản thực lập trình song song cho điều khiển 10.2 Một số phương pháp phát triển phần mềm nhúng Trong trình phát triển, phần mềm cần phải thử nghiệm với đối tượng điều khiển Tuỳ thuộc vào môi trường phát triển tiến hành theo số phương pháp sau ✓ Mô hình Offline Trong hệ thống phát triển phần cứng nhúng đích mô mô hình chạy PC đối tượng điều khiển mô hình mô chạy PC Vì trình phát triển thực chất trình chạy mô hệ thống thực hoàn toàn PC Với hệ thống thử nghiệm cho kiện đáp ứng thời gian thực thời gian mô khác với thời gian diễn biến thực hệ thống ✓ Hệ thống phát triển (Software in the loop) 90 Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG Hệ thống mô phần cứng thực PC cho đáp ứng hành vi giống với vi mạch cứng thực mô hình đối tượng mô hình thực thi PC Loại hệ thống tương tự hệ thống mô offline nhiên có ưu điểm khả mô hành vi đáp ứng vi mạch nhúng xác trung thực Và có nhược điểm không thử nghiệm toán thời gian thực ✓ Mô thời gian thực Hệ thống sử dụng phần cứng nhúng đích thực đối tượng mô hình thời gian thực đối tượng thực Ưu điểm mềm dẻo thay đổi cấu hình đơn giản trình phát triển để thử nghiệm với hành vi khác đối tượng Rút ngắt đơn giản hóa công việc xây dựng đối tượng ✓ Mô hình phát triển thực Hệ thống sử dụng phần cứng nhúng đích thực với đối tượng thực Tuy nhiên có hỗ trợ công cụ phát triển để cài đặt thử nghiệm trực tiếp phần cứng thực Đây dạng mô hình cho kết trung thực xác dạng hệ thống phát triển nêu Tuy nhiên phần cứng thường phát triển hỗ trợ nhà cung cấp để tương thích với công cụ phần mềm kèm theo Bài 11: Thảo luận kiến trúc phần cứng hệ điều hành nhúng, phần mềm nhúng hệ điều hành nhúng Bộ môn Kỹ thuật Máy tính – Khoa CNTT 91 ... máy in, hệ thống dẫn đường không lưu có tích hợp hệ thống nhúng Bộ môn Kỹ thuật Máy tính – Khoa CNTT HỆ THỐNG NHÚNG Hình 1.1: Cấu trúc bên Router Router ví dụ hệ thống nhúng Các hệ thống nhúng. .. hiểu phần kiến thức mở rộng 1.2 Hệ thống nhúng gì? Hệ thống nhúng (Embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần... quan hệ thống nhúng 1.1 Giới thiệu môn học Module cung cấp cho người học kiến thức hệ thống nhúng, Nội dung bao gồm: Giới thiệu chung hệ thống nhúng; Kiến trúc phần cứng hệ thống nhúng; Hệ điều

Ngày đăng: 24/10/2017, 15:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w