Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 79 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
79
Dung lượng
2,28 MB
Nội dung
http://tailieu.uetnews.com Tổng quan hệ thống nhúng 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 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 (HTN) thường thiết kế để thực chức chun 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 chun dụng mà ta khơng tìm thấy máy tính đa nói chung Vì hệ thố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 HTN đ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 18/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 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 MITnă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 D-17, 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, AutoneticsD-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 II đưa thuật tố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 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 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à: 19/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt • 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 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 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 tồ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 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ụ chun dụng khơng phải đó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 tồn 20/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 Giao diện Các hệ thống nhúng khơng có 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 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… Đ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 21/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 FPGA (field-programmable gate array) lập trình cho với thành phần ngun lý thiết kế bao gồm CPU Thiết bị ngoại vi Hệ thống nhúng giao tiếp với bên ngồi 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) 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ụ chun 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 tố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 Độ 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 22/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 Ngồ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 tồ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 tồn, ví dụ thiết bị dẫn đường máy bay, thiết bị kiểm sốt độ an tồ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 … 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 hồ, đ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 Cấu trúc bên Router Router ví dụ hệ thống nhúng Các hệ thống nhúng mơ hình Router bao gồm: Microprocessor (4), RAM (6), Flash memory(7) 23/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thiết bị tàu vũ trụ tích hợp nhiều hệ thống nhúng Tàu thăm dò Sao Hỏa 24/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thành phần kiến trúc phần cứng Hệ thống nhúng Kiến trúc điển hình chip VXL/VĐK nhúng Đơn vị xử lý trung tâm CPU Kiến trúc CPU Người ta biết tới phần lõi xử lý vi xử lý (VXL) đơn vị xử lý trung tâm CPU (Central Processing Unit) đóng vai trị não chịu trách nhiệm thực thi phép tính thực lệnh Phần CPU đảm nhận chức đơn vị logic toán học (ALU - Arthimetic Logic Unit) Ngoài để hỗ trợ hoạt động cho ALU thêm số thành phần khác giải mã (decoder), (Sequencer) ghi 25/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bộ giải mã chuyển đổi (thông dịch) lệnh lưu trữ mã chương trình thành mã mà ALU hiểu thực thi Bộ có nhiệm vụ quản lý dòng liệu trao đổi qua bus liệu VXL Các ghi sử dụng để CPU lưu trữ tạm thời liệu cho việc thực thi lệnh chúng thay đổi nội dung trình hoạt động ALU Hầu hết ghi VXL nhớ tham chiếu (mapped) hội nhập với khu vực nhớ sử dụng khu vực nhớ khác Các ghi có chức lưu trữ trạng thái CPU Nếu nội dung nhớ VXL nội dung ghi thời điểm lữu giữ đầy đủ hồn tồn tạm dừng thực phần chương trình khoảng thời gian trở lại trạng thái CPU trước Thực tế số lượng ghi tên gọi chúng khác họ VXL/VĐK thường nhà chế tạo qui định, chúng có chung chức nêu Khi thứ tự byte nhớ xác định người thiết kế phần cứng phải thực số định xem CPU lưu liệu Cơ chế khác tuỳ theo kiến trúc tập lệnh áp dụng Có ba loại hình bản: Kiến trúc ngăn xếp Kiến trúc tích luỹ Kiến trúc ghi mục đích chung Kiến trúc ngăn xếp sử dụng ngăn xếp để thực lệnh toán tử nhận từ đỉnh ngăn xếp Mặc dù chế hỗ trợ mật độ mã tốt mơ hình đơn giản cho việc đánh giá cách thể chương trình ngăn xếp hỗ trợ khả truy nhập ngẫu nhiên hạn chế hiệu suất thực lệnh Kiến trúc tích luỹ với lệnh tốn tử ngầm mặc định chứa ghi tích luỹ giảm độ phức tạp bên cấu trúc CPU cho phép cấu thành lệnh nhỏ gọn Nhưng ghi tích luỹ nơi chứa liệu tạm thời nên giao thông nhớ lớn Kiến trúc ghi mục đích chung sử dụng tập ghi mục đích chung đón nhận mơ hình hệ thống CPU mới, đại Các tập ghi nhanh nhớ thường dễ dàng cho biên dịch xử lý thực thi sử dụng cách hiệu Hơn giá thành phần cứng ngày có xu giảm đáng kể tập ghi tăng nhanh Nếu chế truy nhập nhớ nhanh kiến trúc dựa ngăn xếp lựa chọn lý tưởng, cịn truy nhập nhớ chậm kiến trúc ghi lựa chọn phù hợp 26/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số ghi với chức điển hình thường sử dụng kiến trúc CPU sau: Thanh ghi trỏ ngăn xếp (stack pointer): Thanh ghi lưu giữ địa ngăn xếp Theo nguyên lý giá trị địa chứa ghi trỏ ngăn xếp giảm liệu lưu thêm vào ngăn xếp tăng liệu lấy khỏi ngăn xếp Thanh ghi số (index register): Thanh ghi số sử dụng để lưu địa mode địa sử dụng Nó cịn biết tới với tên gọi ghi trỏ hay ghi lựa chọn tệp (Microchip) Thanh ghi địa lệnh/Bộ đếm chương trình (Program Counter): Một ghi quan trọng CPU ghi đếm chương trình Thanh ghi đếm chương trình lưu địa lệnh chương trình CPU xử lý Mỗi lệnh trỏ tới CPU xử lý nội dung giá trị ghi đếm chương trình tăng lên Chương trình kết thúc ghi PC có giá trị địa cuối chương trình nằm nhớ chương trình Thanh ghi tích lũy (Accumulator): Thanh ghi tích lũy ghi giao tiếp trực tiếp với ALU, sử dụng để lưu giữ toán tử kết phép toán trình hoạt động ALU Xung nhịp trạng thái tín hiệu Trong VXL vi mạch số nói chung, hoạt động hệ thống thực đồng dị theo xung nhịp chuẩn Các nhịp lấy trực tiếp gián tiếp từ nguồn xung chuẩn thường mạch tạo xung Để mô tả hoạt động hệ thống, tín hiệu liệu điều khiển thường mơ tả trạng thái theo giản đồ thời gian mức tín hiệu Hình 2.3 Mơ tả trạng thái tín hiệu hoạt động VXL Mục đích việc mơ tả trạng thái tín hiệu theo giản đồ thời gian mức tín hiệu để phân tích xác định chuỗi kiện hoạt động chi tiết chu kỳ bus Nhờ việc 27/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt trước câu lệnh if(event_1) thời gian phản ứng ngắn Nhưng kiện event_1 xảy sau câu lệnh kiểm tra đó, chương trình lúc phải qt tồn vịng lặp quay trở điểm đầu thực dịch vụ kiện event_1 • Và hệ tất yếu, thời gian phản ứng hàm số lượng kiện kích hoạt thời điểm sau thời gian thực dịch vụ lần quét vòng lặp chương trình • Tất kiện chương trình đối xử cách bình đẳng khơng có ưu tiên • Khi có đặc tính mới, dịch vụ mới, thêm vào chương trình, thời gian phản ứng lại dài thêm Interrupt (ngắt) Phương pháp tiếp cận thứ ngắt (Interrupt) Rất hữu dụng gây khơng khó khăn cho người lập trình Ý tưởng ngắt: xuất kiện “ngắt” tiến trình thực chương trình, “nhồi” thêm thực tiến trình khác vào hình 8.5 Khi tiến trình nhồi thêm thực xong, chương trình lại thực tiếp từ thời điểm bị ngắt Tiến trình kiện ngắt thực mà quan tâm đến chương trình Những tiến trình người ta gọi “chương trình dịch vụ ngắt” (Interrupt Service Routine) viết tắt ISR Các hệ vi xử lý thường thực loại ngắt khác nhau: • Câu lệnh INT, hay nhiều cịn nhắc đến với tên TRAP (bẫy) Nó câu lệnh để gọi chương trình đặc biệt Chúng ta đề cập đến sau • 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 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 82/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 ngồi khơng đồng bộ: • Làm tối đa hố 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) 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) 83/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt • 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 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 ngồi có cách thức thực thể hình 8.8 Một thiết bị bên ngồi đư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 Ngắt cứng 84/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Hình 8.8: Ngắt cứng Ngắt kích hoạt bị vơ hiệu hố Ở cấp độ xử lý, ngắt kích hoạt vơ hiệu hố 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 làđiểm mấu chốtđể thiết kế thực thi phần mềm thời gian thực Cũng khơng có đá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ý 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 đó, cịn giá trị 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 bộđể chúng khơng xảy vào thờiđiểm khơng thích hợp 85/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Có giải pháp, dù khơng hay cho lắm, để giải vấn đề Ta dùng lệnh vơ hiệu hố 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 khố 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 86/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế Hệ thống nhúng Quy trình phát triển hệ thống nhúng 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 Mơ hình hóa kiện tác vụ 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 q 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) 87/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quy ước biểu diễn mơ hình Petrinet 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 (hồ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 88/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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) 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 C1 C2 song song để đảm bảo hoạt động dự phịng; trường hợp vị trí p1 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 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 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 89/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt hệ thống có tượng tắc nghẽn tác vụ khó khăn hầu hết q trình mơ hình gặp phải 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 cịn trống vị trí p2 mơ hình số vị trí điền đầy; ý tổng thẻ chứa vị trí p2 p3 ln số (trong ví dụ 3) Chuyển đổi t2 mơ hình q trình điền đầy vị trí đệm hồ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 t3, 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 hồ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 90/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 cịn trống vị trí p5 mơ hình vị trí đệm điền đầy Tổng số lượng thẻ chứa vị trí p5 p6 phải ln số Nếu thẻ gán cho vị trí p5 dấu khởi tạo tạo khơng thể 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 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 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 hồn thành hai tác vụ khố/cấm lẫn Việc hoàn thành chuyển đổi 91/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 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 hố 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 92/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế phần mềm điều khiển Thiết kế phần mềm điều khiển 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 khơng có đầ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 cịn 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 93/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt Để 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ị q 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 qt 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 = ) Giản đồ trạng thái hệ thống số • Triển khai lập trình số ghép tầng 94/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 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 q 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) 95/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 tố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 96/99 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... 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 … Một số ví dụ hệ thống nhúng Quanh ta... lặp gọi đến chương trình con, chương trình quản lý phần hệ thống phần cứng phần mềm Hệ thống ngắt điều khiển Các hệ thống nhúng thường điểu khiển ngắt Có nghĩa tác vụ hệ thống nhúng kích hoạt loại... 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 Cấu trúc bên Router Router ví dụ hệ thống nhúng Các hệ thống nhúng mơ hình Router bao gồm: Microprocessor