bộ giáo dục đào tạo trờng đại học bách khoa hµ néi - luận văn thạc sỹ khoa học Nghiên cứu, thiết kế hệ điều hành vi điều khiển bít ngành: xử lý thông tin truyền thông M số: vũ trung kiên Ngời hớng dẫn khoa häc: TS Ngun Linh Giang hµ néi 2006 Tãm tắt luận văn Một hệ thống với phần cứng nhng đợc viết hệ điều hành khả trở nên mạnh nhiỊu so víi mét hƯ thèng chØ cã mét ch−¬ng trình Với lý đó, sau qua trình nghiên cứu đà hoàn thành luận văn với nội bao gồm chơng, đó: Chơng 1: Giới thiệu tổng quan hệ điều hành Chơng giới thiệu khái niệm liên quan đến hệ điều hành, giới thiệu thành phần chức hệ điều hành Chơng 2: Giới thiệu vi điều khiển đợc sử dụng để viết hệ điều hành ngôn ngữ lập trình cho vi điều khiển Chơng đề cập tới kiến tróc cđa mét bé vi ®iỊu khiĨn bÝt ®iĨn hình nh vấn đề viết phần mềm (lập trình cho vi điều khiển) Chơng Trình bày nguyên tắc, trình tự thiết kế phần cứng cho hệ vi điều khiển Nội dung chơng trình bày nguyên tắc chung, thủ thuật cần thiết cho trình thiết kế phần cứng thông qua hệ vi điều khiển cụ thể đợc dùng làm mục đích nghiên cứu thí nghiệm Chơng Trình bày nguyên tắc, trình tự thiết kế hệ điều hành cho hệ vi điều khiển Nội dung chơng bao gồm trình tự nguyên tắc thiết kế hệ điều hành vi điều khiển Nội dung đợc trình bày song song với trình thiết kế hệ điều hành thời gian thực hệ vi điều khiển đà đợct thiết kế chơng từ khoá : Hệ điều hành Hệ vi điều khiển Trình dịch Tiến trình Lập lịch bộ giáo dục đào tạo trờng đại học bách khoa hà néi - luận văn thạc sỹ khoa học Nghiên cứu, thiết kế hệ điều hành vi điều khiển bít ngành: xử lý thông tin truyền thông M∙ sè: vị trung kiªn Ng−êi h−íng dÉn khoa häc: TS Ngun Linh Giang hµ néi 2006 -2- Lêi cam đoan Tôi xin cam đoan luận văn kết nghiên cứu thân dới hớng dÉn cđa TS Ngun Linh Giang NÕu cã g× sai phạm, xin hoàn toàn chịu trách nhiệm Ngời làm cam đoan Vũ Trung Kiên -3- Mục lục Lời cam ®oan Danh mơc c¸c ký hiƯu, c¸c chữ viết tắt Danh mục bảng Danh mơc c¸c hình vẽ, đồ thị Lời nói đầu Chơng - Tổng quan hệ điều hành 11 1.1 Khái niệm hệ điều hành (OS-Operating System) 11 1.1.1 Kh¸i niƯm 11 1.1.2 Chức hệ điều hành 11 1.1.3 Các thành phần hệ điều hành 13 1.2 Qu¶n lý tiÕn tr×nh 16 1.2.1 Các trạng thái tiÕn tr×nh 16 1.2.2 Khái niệm tài nguyên găng đoạn tới hạn 17 1.2.3 Hiện tợng bế t¾c 19 1.3 LËp lÞch cho CPU 20 1.3.1 Kh¸i niƯm giê CPU 20 1.3.2 Các trạng thái tiến trình liên quan đến CPU 20 1.3.3 LËp lÞch cho CPU 22 1.4 Qu¶n lý bé nhí 25 1.4.1 Yêu cầu phải quản lý nhớ 25 1.4.2 Các sơ ®å qu¶n lý bé nhí 26 Chơng - Vi điều khiển ngôn ngữ lập trình cho vi điều khiển 28 2.1 Vi ®iỊu khiĨn 28 2.1.1 Vi xư lý vµ vi ®iỊu khiĨn 28 2.1.2 Tỉ chøc bé nhí cđa vi ®iỊu khiĨn 30 2.1.3 Các định thời 35 2.1.4 Bé xư lý ng¾t 37 2.2 Ngôn ngữ lập trình cho vi điều khiển 39 -42.2.1 Tổng quan ngôn ngữ lập trình cho vi điều khiển 39 2.2.2 Những vấn đề với ngôn ngữ C viết cho vi điều khiển 42 Chơng - thiết kế hệ vi điều khiển 49 3.1 Xác định yêu cầu thiết kế 50 3.2 Lùa chän cÊu h×nh cho hƯ thèng 51 3.2.1 Lùa chọn điều khiển trung tâm 51 3.2.2 Giao diƯn ng−êi sư dông 52 3.2.3 Các thiết bị mô trình hoạt động tiến trình 53 3.3 Thiết kế mạch điện 58 3.4 Đo thử kiểm tra lỗi 59 Ch−¬ng - ThiÕt kÕ hệ điều hành .60 4.1.1 Mục đích yêu cầu thiết kế 60 4.1.2 Mơc ®Ých 60 4.1.2 Yêu cầu 63 4.2 Trình tự thiết kế hệ điều hành 64 4.3 X©y dùng tiến trình 65 4.3.1 Xây dựng tác vụ tơng ứng tiến trình 65 4.3.2 Giải toán tài nguyên găng 69 4.4 LËp lÞch cho CPU 71 4.4.1 Sự kiện chuyển trạng thái tiến trình 71 4.4.2 LËp lÞch cho CPU 80 4.5 Qu¶n lý bé nhí 83 KÕt luËn vµ kiÕn nghÞ .86 Tài liệu tham khảo 87 -5- Danh mục ký hiệu, chữ viết tắt STT Chữ viết tắt Chữ đầy đủ FCFS First Come First Served FIFO First In First Out LIFO Last In First Out MCS Micro Controller System OS RTOS RR Round Robbin SJF Shortest Job First SRT Shortest Remain Time 10 uC Operating System Real Time Operating System Micro Controller -6- Danh môc bảng Bảng 1.1 Trạng thái tiến trình 19 B¶ng 1.2 Thời gian thực tiến trình 25 B¶ng 1.3 Thêi gian chờ tiến trình 25 Bảng 2.1 Bộ nhớ liệu chÝp cña AT89S52 33 -7- Danh mục hình vẽ, đồ thị Hình 1.1 Các trạng thái tiến trình 17 Hình 1.2 Các trạng thái tiến trình liên quan đến CPU 20 Hình 1.3 Sơ đồ thực tiến trình 21 Hình 1.4 Sơ đồ tổ chức hàng đợi tiến tr×nh 22 H×nh 1.5 Sơ đồ Grant 25 Hình 2.1 Sơ đồ khèi cđa bé vi ®iỊu khiĨn AT89S52 29 H×nh 2.2 Tỉ chøc bé nhí cđa vi ®iỊu khiĨn 30 Hình 2.3 Sơ đồ ghép nối AT89S52 với EPROM 31 H×nh 2.4 Sơ đồ ghép nối AT89S52 với RAM 34 Hình 2.5 Giải mà địa cho vi mạch nhớ 34 Hình 2.6 Bộ nhớ liệu đọc nh nhớ chơng trình 35 Hình 2.7 Hoạt động Timer0 Timer1 chế độ 36 Hình 2.8 Các nguồn ngắt AT89S52 38 H×nh 3.1 Tr×nh tù thiÕt kÕ phÇn cøng cho hƯ thèng 49 Hình 3.2 Sơ đồ khối hệ vi điều khiÓn 51 Hình 3.3 Ghép nối vi điều khiển với RAM 52 H×nh 3.4 Giao diện ngời sử dụng hệ vi điều khiển 53 Hình 3.5 Hiển thị LED đoạn kỹ thuật quét 54 Hình 3.6 Ghép nối ma trận LED hƯ vi ®iỊu khiĨn 57 Hình 3.7 Nguyên tắc xếp chữ ma trận LED 58 Hình 4.1 Các tác vụ đợc thực đồng thời (song song) 62 Hình 4.2 Các tác vụ đợc thực luân phiên liên tục 62 Hình 4.3 Giản đồ xung P1 69 H×nh 4.4 Chốt lại giá trị P1 70 -8Hình 4.5 Các tiến trình đợc phân bổ thời gian CPU 71 Hình 4.6 Chuyển tiến tr×nh b»ng sù kiƯn time out 73 Hình 4.7 Các tiến trình đợc phân bổ thời gian CPU khác 74 Hình 4.8 Ngời sử dụng lệnh vào thời điểm khác 75 Hình 4.9 Chuyển cá tiến trình kiện interrupt 76 Hình 4.9 Mô tả trạng thái tài nguyên tiến trình 77 Hình 4.10 Các tài nguyên cần lu dừng tiến trình 78 Hình 4.11 Phân bổ ngăn xếp cho tiến trình 79 Hình 4.12 Lập lịch cho tiến trình thực quét chữ ma trận LED 81 Hình 4.13 Lập lịch cho tiến trình quét số LED đoạn 81 Hình 4.14 Lập lịch cho tiến trình điều khiĨn LCD 82 H×nh 4.15 Lập lịch cho tiến trình thời gian thực 82 H×nh 4.16 Tỉ chøc bé nhí ROM cđa hƯ vi ®iỊu khiĨn 83 Hình 4.17 Thay đổi vị trí đặt chơng trình phục vụ ngắt 84 Hình 4.18 Phân bổ nhớ ROM 85 H×nh 4.19 Ph©n bỉ bé nhí RAM 85 ... trình tự thiết kế hệ điều hành cho hệ vi điều khiển Nội dung chơng bao gồm trình tự nguyên tắc thiết kế hệ điều hành vi điều khiển Nội dung đợc trình bày song song với trình thiết kế hệ điều hành. .. tổng quan hệ điều hành Chơng giới thiệu khái niệm liên quan đến hệ điều hành, giới thiệu thành phần chức hệ điều hành Chơng 2: Giới thiệu vi điều khiển đợc sử dụng để vi? ??t hệ điều hành ngôn ngữ... trình cho vi điều khiển 39 -42.2.1 Tổng quan ngôn ngữ lập trình cho vi điều khiển 39 2.2.2 Những vấn đề với ngôn ngữ C vi? ??t cho vi điều khiển 42 Chơng - thiết kế hệ vi điều khiển