Đề tài nghiên cứu hệ điều hành nhúng thời gian thực FREERTOS

47 773 1
Đề tài nghiên cứu hệ điều hành nhúng thời gian thực FREERTOS

Đ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

ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN:Kỹ Thuật Vi Điều Khiển Đề tài: NGHIÊN CỨU HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FREERTOS Thành viên tham gia : Phạm Ngọc Thạch Ngô Hữu Hưng Giáo viên hướng dẫn : Phạm Quốc Thịnh Thái nguyên, tháng 11 năm 2009 MỤC LỤC PHẦN I : MỞ ĐẦU I.1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU NGOÀI NƯỚC I.2 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG NƯỚC I.3 MỤC TIÊU ĐỀ TÀI PHẦN II: GIỚI THIỆU HĐH NHÚNG THỜI GIAN THỰC FREERTOS VÀ VI ĐIỀU KHIỂN ATMEGA 128 II.1 TỔNG QUAN HỆ ĐIỀU HÀNH II.1.1KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH II.1.2 PHÂN LOẠI HỆ ĐIỀU HÀNH II.2 GIỚI THIỆU VI ĐIỀU KHIỂN ATmega 128 II.2.1 TỔNG QUAN II.2.2 CẤU TRÚC BỘ NHỚ VÀ CỔNG VÀO – RA 11 II.2.3 CỔNG VÀO RA 15 II.2.3.1 GIỚI THIỆU 15 II.2.3 BỘ ĐỊNH THỜI CỦA ATmega128 18 II.3 GIỚI THIỆU HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FreeRTOS 30 II.3.1 THỜI GIAN THỰC 30 II.3.2 ĐA NHIỆM 30 II.3.3 CẤU TRÚC FreeRTOS 31 PHẦN III CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA 40 III.1 THIẾT KẾ MẠCH MÔ PHỎNG BẰNG Proteus 40 III.2 LỰA CHỌN CẤU HÌNH CHO HĐH QUA FreeRTConfig.h 42 III.3 VIẾT PHẦN ỨNG DỤNG BẰNG AVR Studio 44 III.4 DỊCH PHẦN ỨNG DỤNG THÀNH FILE hex 44 III.5 DÙNG MẠCH NẠP VÀO VI ĐIỀU KHIỂN 45 PHẦN IV: KẾT QUẢ ĐẠT ĐƯỢC VÀ ĐÁNH GIÁ Error! Bookmark not defined IV.1 KẾT QUẢ ĐÃ ĐẠT ĐƯỢC .Error! Bookmark not defined IV.2 ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC Error! Bookmark not defined Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực TÓM TẮT KẾT QUẢ B Ngày nay, với phát triển chung công nghệ, lĩnh vực hệ điều hành có bước tiến dài trình hình thành phát triển Từ khởi đầu đơn giản có quyền máy tính cá nhân Hệ điều hành DOS, tiến lên phiên Windows win3.1 win95, win 98 hệ điều hành đa nhiệm thời gian thực Win7, bên cạnh phải kể đến hệ điều hành mã nguồn mở Max OS, Linux, Ubuntu xuất hệ điều hành dành cho điện thoại động Windown Mobile, đặc biệt lĩnh vực điện tử có hệ điều hành chuyên biệt cho chip xử lý VxWork, uCLinux,FreeRTOS, OpenRTOS SAFERTOS Trong cần phải nói đến FreeRTOS, với tính thời gian thực ưu điểm giải nhiều yêu cầu công nghệ vi xử lý Để làm rõ điều này, đề tài em trình bày phần: PHẦN I : MỞ ĐẦU PHẦN NÀY TRÌNH BÀY VỀ TÌNH HÌNH NGHIÊN CỨU VỀ ĐỀ TÀI NÀY TRONG VÀ NGOÀI NƯỚC, MỤC TIÊU CỦA ĐỀ TÀI PHẦN II: GIỚI THIỆU HĐH NHÚNG THỜI GIAN THỰC FREERTOS VÀ VI ĐIỀU KHIỂN ATMEGA 128 PHẦN NÀY TRÌNH BÀY NGUYÊN LÝ HỆ ĐIỀU HÀNH NÓI CHUNG VÀ GIẢI THÍCH CÁC KHÁI NIỆM, TRÌNH BÀY VỀ FREERTOS VÀ VĐK ATMEGA 128 PHẦN III: CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA PHẦN NÀY TRÌNH BÀY CÁC BƯỚC THIẾT KẾ ỨNG DỤNG TRÊN HĐH FREERTOS PHẦN IV: CÁC KẾT QUẢ ĐẠT ĐƯỢC VÀ ĐÁNH GIÁ PHẦN NÀY NÊU RA NHỮNG KẾT QUẢ ĐA ĐẠT ĐƯỢC VÀ ĐÁNH GIÁ CHUNG Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực SUMMARY OF RESULTS OF RESEARCH THEMES Today, with the development of technology, field operating system has made strides in the process of formation and development of his From the beginning simple copyright on personal computer operating system like DOS, progress on the Windows version as win3.1 then Win95, Win 98 latest operating system multitasking real-time Win7, in addition to mentioning that the open source operating systems like Mac OS, Linux, Ubuntu now appeared that the operating system for mobile phones as Windown Mobile, and especially in the field of electronics is the operating system dedicated to processing chip as VxWork, uCLinux, FreeRTOS, and OpenRTOS SAFERTOS In which need FreeRTOS mention, with real-time and solved many advantages required in microprocessor technology To illustrate this, she presented the topic of three parts: PART I: TO TOP PRESENTATION OF THIS SITUATION RESEARCH ON THIS TOPIC AT HOME AND ABROAD, OBJECTIVES OF THEMES PART II: ABOUT TIME AVAILABILITY OF OS FREERTOS VI AND CONTROL ATMEGA 128 THIS PRESENTATION AS MANAGER DEVICES AND EXPLANATION Ò GERENAL CONCEPTS, FREERTOS AND PRESENTATION OF VDK ATMEGA 128 PART III: THE STEP DESIGN APPLICATIONS Minh Hoa THIS STEP PRESENTATION OF DESIGN APPLICATIONS ON OS FREERTOS PART IV: THE RESULTS OF ASSESSMENT AND DAT THIS YET ACHIEVED RESULTS AND GENERAL ASSESSMENT Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực PHẦN I : MỞ ĐẦU I.1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU NGOÀI NƯỚC Ngoài nước : đề tài nghiên cứu mạnh mẽ nói hệ thống nhúng sử dụng nhiều lĩnh vực, nhiều mặt hàng từ thiết bị cao cấp vệ tinh, tên lửa, tàu thoi đến thiết bị tiêu dùng lò vi ba, máy sấy, máy hút bụi… Thị trường hệ thống nhúng có tiềm phát triển vô lớn Theo nhà thông kê giới số chip xử lý máy PC server, mạng LAN, WAN, Internet chiếm không đầy 1% tổng số chip vi xử lý có giới Hơn 99% số vi xử lý lại nằm hệ thống nhúng Tại Châu Á, Nhật Bản dẫn đầu thị trường nhúng thị trường phần mềm nhúng hàng đầu giới Đây coi thị trường đầy hứa hẹn với đối tác chuyên sản xuất phần mềm nhúng Trung Quốc, Indonesia, Nga, Ireland, Israel, Việt Nam I.2 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG NƯỚC Trong nước: Hệ thống nhúng quan tâm thời gian gần Các doanh nghiệp làm phần mềm nhúng chưa nhiều, có số trung tâm thuộc trường Đại học Quốc gia, Đại học Bách khoa, đơn vị Học viện Kỹ thuật quân sự, Viện nghiên cứu Điện tử - Tin học Tự động hóa, Tổng công ty Điện tử - Tin học, Công ty thiết bị Điện tử y tế, Công ty VTC – Truyền hình số mặt đất số công ty phần mềm khác… Đây đề tài nghiên cứu mẻ , đa số sử dụng phương thức lập trình đơn nhiệm/ đơn tiến trình điều khiển Cũng có vài hệ thống điều khiển mà lõi hệ thống hệ nhúng cài đặt hệ điều hành nhúng nhằm phục vụ ứng dụng điều khiển đa nhiệm I.3 MỤC TIÊU ĐỀ TÀI Tìm hiểu giải pháp cung cấp dịch vụ cho ứng dụng điều khiển Giảiquyết nhu cầu xử lý đa nhiệm hệ thống điều khiển hệ thống thông tin công nghiệp dân dụng Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực PHẦN II: GIỚI THIỆU HĐH NHÚNG THỜI GIAN THỰC FREERTOS VÀ VI ĐIỀU KHIỂN ATMEGA 128 II.1 TỔNG QUAN HỆ ĐIỀU HÀNH II.1.1KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH Hệ điều hành chương trình hay hệ chương trình hoạt động người sử dụng (user) phần cứng máy tính Mục tiêu hệ điều hành cung cấp môi trường để người sử dụng thi hành chương trình Nó làm cho máy tính dể sử dụng hơn, thuận lợi hiệu Hệ điều hành phần quan trọng hầu hết hệ thống máy tính Một hệ thống máy tính thường chia làm bốn phần : phần cứng, hệ điều hành, chương trình ứng dụng người sử dụng Phần cứng bao gồm CPU, nhớ, thiết bị nhập xuất, tài nguyên máy tính Chương trình ứng dụng chương trình dịch, hệ thống sở liệu, trò chơi, chương trình thương mại Các chương trình sử dụng tài nguyên máy tính để giải yêu cầu người sử dụng Hệ điều hành điều khiển phối hợp việc sử dụng phần cứng cho ứng dụng khác nhiều người sử dụng khác Hệ điều hành cung cấp môi trường mà chương trình làm việc hữu hiệu Hình 1.1 Mô hình trừu tượng hệ thống máy tính Hệ điều hành coi phân phối tài nguyên máy tính Nhiều tài nguyên máy tính thời gian sử dụng CPU, vùng nhớ, vùng lưu trữ tập tin, thiết bị nhập xuất v.v… chương trình yêu cầu để giải vấn đề Hệ điều hành hoạt động quản lý tài nguyên phân phối chúng cho chương trình người sử dụng cần thiết Do có nhiều Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực yêu cầu, hệ điều hành phải giải vấn đề tranh chấp phải định cấp phát tài nguyên cho yêu cầu theo thứ tự để hoạt động máy tính hiệu Một hệ điều hành coi chương trình kiểm soát việc sử dụng máy tính, đặc biệt thiết bị nhập xuất Tuy nhiên, nhìn chung chưa có định nghĩa hoàn hảo hệ điều hành Hệ điều hành tồn để giải vấn đề sử dụng hệ thống máy tính Mục tiêu giúp cho việc thi hành chương trình dễ dàng Mục tiêu thứ hai hỗ trợ cho thao tác hệ thống máy tính hiệu Mục tiêu đặc biệt quan trọng hệ thống nhiều người dùng hệ thống lớn(phần cứng + quy mô sử dụng) Tuy nhiên hai mục tiêu có phần tương phản lý thuyết hệ điều hành tập trung vào việc tối ưu hóa việc sử dụng tài nguyên máy tính II.1.2 PHÂN LOẠI HỆ ĐIỀU HÀNH II.1.2.1 Hệ thống xử lý theo lô Bộ giám sát thường trực : Khi công việc chấm dứt, hệ thống thực công việc mà không cần can thiệp người lập trình, thời gian thực mau Một chương trình, gọi giám sát thường trực thiết kế để giám sát việc thực dãy công việc cách tự động, chương trình luôn thường trú nhớ Hệ điều hành theo lô thực công việc theo thị định trước CPU thao tác nhập xuất : CPU thường hay nhàn rỗi tốc độ làm việc thiết bị nhập xuất (thường thiết bị cơ) chậm nhiều lần so với thiết bị điện tử Cho dù CPU chậm nhất, nhanh nhiều lần so với thiết bị nhập xuất Do phải có phương pháp để đồng hóa việc hoạt động CPU thao tác nhập xuất Xử lý off_line : Xử lý off_line thay CPU phải đọc trực tiếp từ thiết bị nhập xuất thiết bị xuất, hệ thống dùng lưu trữ trung gian CPU thao thác với phận Việc đọc hay xuất đến từ lưu trữ trung gian Spooling : Spool (simultaneous peripheral operation on-line) đồng hóa thao tác bên on-line Cơ chế cho phép xử lý CPU on-line, sử dụng đĩa để lưu liệu nhập xuất II.1.2.2 Hệ thống xử lý theo lô đa chương Khi có nhiều công việc truy xuất lên thiết bị, vấn đề lập lịch cho công việc cần thiết Khía cạnh quan trọng việc lập lịch khả đa chương Đa chương (multiprogram) gia tăng khai thác CPU cách tổ chức công việc cho CPU luôn phải tình trạng làm việc Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Ý tưởng sau : hệ điều hành lưu giữ phần công việc nơi lưu trữ nhớ CPU thực phần công việc Khi thực hiện, có yêu cầu truy xuất thiết bị CPU không nghỉ mà thực tiếp công việc thứ hai… Với hệ đa chương hệ điều hành định cho người sử dụng vậy, hệ điều hành đa chương tinh vi Hệ phải xử lý vấn đề lập lịch cho công việc, lập lịch cho nhớ cho CPU II.1.2.3 Hệ thống chia xẻ thời gian Hệ thống chia xẻ thời gian mở rộng logic hệ đa chương Hệ thống gọi hệ thống đa nhiệm (multitasking) Nhiều công việc thực thông qua chế chuyển đổi CPU hệ đa chương thời gian lần chuyển đổi diễn nhanh Hệ thống chia xẻ phát triển để cung cấp việc sử dụng bên máy tính có giá trị Hệ điều hành chia xẻ thời gian dùng lập lịch CPU đa chương để cung cấp cho người sử dụng phần nhỏ máy tính chia xẻ Một chương trình thi hành gọi tiến trình Trong trình thi hành tiến trình, phải thực thao tác nhập xuất khoảng thời gian CPU thi hành tiến trình khác Hệ điều hành chia xẻ cho phép nhiều người sử dụng chia xẻ máy tính cách đồng thời gian chuyển đổi nhanh nên họ có cảm giác tiến trình thi hành lúc Hệ điều hành chia xẻ phức tạp hệ điều hành đa chương Nó phải có chức : quản trị bảo vệ nhớ, sử dụng nhớ ảo Nó cung cấp hệ thống tập tin truy xuất on-line… Hệ điều hành chia xẻ kiểu hệ điều hành đại ngày II.1.2.4 Hệ thống song song Ngoài hệ thống có xử lý có hệ thống có nhiều xử lý chia xẻ hệ thống đường truyền liệu, đồng hồ, nhớ thiết bị ngoại vi Các xử lý liên lạc bên với Có nhiều nguyên nhân xây dựng dạng hệ thống Với gia tăng số lượng xử lý, công việc thực nhanh chóng hơn, Nhưng theođúng tỉ lệ thời gian, nghĩa có n xử lý nghĩa thực nhanh n lần Hệ thống với máy nhiều xử lý tối ưu hệ thống có nhiều máy có xử lý xử lý chia xẻ thiết bị ngoại vi, hệ thống lưu trữ, nguồn … thuận tiện cho nhiều chương trình làm việc tập hợp liệu Một lý độ tin cậy Các chức xử lý nhiều xử lý hỏng hóc xử lý không ảnh hưởng đến toàn hệ thống Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, cách xử lý chạy với hệ điều hành, liên lạc với cần thiết Một số hệ thống sử dụng đa xử lý bất đối xứng, xử lý giao công việc riêng biệt Một xử lý kiểm soát toàn hệ thống, xử lý khác thực theo lệnh xử lý Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực theo thị định nghĩa trước Mô hình theo dạng quan hệ chủ tớ Bộ xử lý lập lịch cho xử lý khác Một ví dụ hệ thống xử lý đối xứng version Encore UNIX cho máy tính Multimax Hệ thống có hàng tá xử lý Ưu điểm nhiều tiến trình thực lúc Một hệ thống đa xử lý cho phép nhiều công việc tài nguyên chia xẻ tự động xử lý khác Hệ thống đa xử lý không đồng thường xuất hệ thống lớn, hầu hết thời gian hoạt động dành cho xử lý nhập xuất II.1.2.5 Hệ thống phân tán Hệ thống tương tự hệ thống chia xẻ thời gian xử lý không chia xẻ nhớ đồng hồ, thay vào xử lý có nhớ cục riêng Các xử lý thông tin với thông qua đường truyền thông bus tốc độ cao hay đường dây điện thoại Các xử lý hệ phân tán thường khác kích thước chức Nó bao gồm máy vi tính, trạm làm việc, máy mini, hệ thống máy lớn Các xử lý thường tham khảo với nhiều tên khác site, node, computer v.v tùy thuộc vào trạng thái làm việc chúng Các nguyên nhân phải xây dựng hệ thống phân tán là: Chia xẻ tài nguyên : Một người sử dụng A sử dụng máy in laser người sử dụng B người sử dụng B truy xuất tập tin A Tổng quát, chia xẻ tài nguyên hệ thống phân tán cung cấp chế để chia xẻ tập tin vị trí xa, xử lý thông tin sở liệu phân tán, in ấn vị trí xa, sử dụng thiết bị xa đểõ thực thao tác Tăng tốc độ tính toán : Một thao tác tính toán chia làm nhiều phần nhỏ thực lúc Hệ thống phân tán cho phép phân chia việc tính toán nhiều vị trí khác để tính toán song song An toàn : Nếu vị trí hệ thống phân tán bị hỏng, vị trí khác tiếp tục làm việc Thông tin liên lạc với :Có nhiều lúc , chương trình cần chuyển đổi liệu từ vị trí sang vị trí khác Ví dụ hệ thống Windows, thường có chia xẻ chuyển liệu cửa sổ Khi vị trí nối kết với hệ thống mạng, việc trao đổi liệu diễn dễ Người sử dụng chuyển tập tin hay E_mail cho từ vị trí hay vị trí khác II.1.2.6 Hệ thống xử lý thời gian thực Hệ thống xử lý thời gian thực sử dụng có đòi hỏi khắt khe thời gian thao tác xử lý dòng liệu, thường dùng điều khiển thiết bị ứng dụng tận hiến (dedicated) Máy tính phân tích liệu chỉnh điều khiển giải cho liệu nhập Một hệ điều hành xử lý thời gian thực phải định nghĩa tốt, thời gian xử lý nhanh Hệ thống phải cho kết xác khoảng thời gian bị thúc ép nhanh Có hai hệ thống xử lý thời gian thực hệ thống thời gian thực cứng hệ thống thời gian thực mềm Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Hệ thống thời gian thực cứng công việc hoàn tất lúc Lúc liệu thường lưu nhớ ngắn hạn hay ROM Việc xử lý theo thời gian thực xung đột với tất hệ thống liệt kê Dạng thứ hai hệ thống thời gian thực mềm, công việc có độ ưu tiên riêng thi hành theo độ ưu tiên Có số lĩnh vực áp dụng hữu hiệu phương pháp multimedia hay thực ảo II.2 GIỚI THIỆU VI ĐIỀU KHIỂN ATmega 128 II.2.1 TỔNG QUAN Những Tính Năng Chính Của ATmega128: - ROM : 128 Kbytes -SRAM: 4Kbytes -EEPROM : 4Kbytes - 64 ghi I/O -160 ghi vào mở rộng -32 ghi đa mục đích - định thời bit (0,2) -2 định thời 16 bit (1,3) -Bộ định thời watchdog -Bộ dao động nội RC tần số MHz, MHz, MHz, MHz -ADC kênh với độ phân giải 10 bit (Ở dòng Xmega lên tới 12 bit ) -2 kênh PWM bit -6 kênh PWM lập trình thay đổi độ phân giải từ tới 16 bit -Bộ so sánh tương tự lựa chọn ngõ vào -Hai khối USART lập trình -Khối truyền nhận nối tiếp SPI -Khối giao tiếp nối tiếp dây TWI -Hỗ trợ boot loader -6 chế độ tiết kiệm lượng -Lựa chọn tần số hoạt động phần mềm -Đóng gói 64 chân kiểu TQFP -Tần số tối đa 16MHz -Điện : 4.5v - 5.5v Vi điều khiển AVR hãng Atmel ( Hoa Kì ) sản xuất gới thiệu lần đầu năm 1996 AVR có nhiều dòng khác bao gồm dòng Tiny AVR ( AT tiny 13, ATtiny 22…) có kích thước nhớ nhỏ, phận ngoại vi, đến dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thước nhớ vào loại trung bình mạnh dòng Mega ( ATmega32, ATmega128,…) với nhớ có kích thước vài Kbyte đến vài trăm Kb với ngoại vi đa dạng tích hợp chip, có dòng tích hợp LCD chip ( dòng LCD AVR ) Tốc độ dòng Mega cao so với dòng khác Sự khác dòng chình cấu trúc ngoại vi, nhân Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực  Kiểm soát lỗi  Quản lý nhập xuất – Thông qua lệnh lập trình Task Task công việc mà hệ điều hành thực thi Chính số lượng Task thực thi định hệ điều hành đa nhiệm; thực thi nhiều task khác nhau, không; thực thi task Khi tạo ra, người lập trình phải gắn cho task ưu tiên để FreeRTOS dựa vào ưu tiên mà xử lý nó.(giống Co-Routine ) Các trạng thái hoạt động task: -Running -Ready -Blocked -Suspended Hình 2.2 Mô hình chuyển đổi trạng thái -Từ trạng thái Ready, Task chuyển thành Running ,hoặc Suspended có bị hàm vTaskSuspend() gọi đến Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 32 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực -Từ trạng thái Running, Task chuyển thành Blocked hàm khoá API gọi, Suspended có bị hàm vTaskSuspend() gọi đến -Từ trạng thái Blocked, task chuyển thành Ready kiện đó, Suspended có bị hàm vTaskSuspend() gọi đến -Từ trạng thái Suspended task chuyển thành trạng thái Ready hàm vTaskResume() gọi đến Trong FreeRTOS, có file TASK.C chứa hàm viết sẵn thư viện hàm dành cho việc tạo,xoá, quản lý task VD: tạo task ta dùng hàm xTaskCreate(), để xoá task ta dùng hàm xTaskDelete()… void vTaskCode (“Tên”,void * pvParameters) ( for (;;) ( / / Mã số công tác ) ) xTaskCreate (vTaskCode, "Tên", STACK_SIZE, & ucParameterToPass, tskIDLE_PRIORITY, & xHandle); / / Sử dụng handle để xóa bỏ công việc vTaskDelete (xHandle); Co-Routine Có tên đồng thụ tục tiến trình chạy đồng thời với tiến trình khác Khi tạo ra, người lập trình phải gắn cho Co-routine ưu tiên để FreeRTOS dựa vào ưu tiên mà xử lý nó.(giống task ) Các trạng thái Co-routine: -Running -Ready -Blocked Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 33 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Hình2.3 :Sơ đồ chuyển trạng thái -Từ trạng thái Ready,Co-routine chuyển sang trạng thái Running -Từ trạng thái Running,Co-routine chuyển trạng thái Ready chuyển sang trạng thái Blocked có macro block API gọi đến -Từ trạng thái Blocked, Co-routine chuyển trạng thái Ready kiện Trong FreeRTOS có file croutine.c chứa hàm viết sẵn cho Co-routine thư viện VD tạo Co-routine dùng hàm xCoRoutineCreate() , bắt đầu dùng hàm crSTART(), dừng crEND()… void vFlashCoRoutine (xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex) {( //co-routine phải bắt đầu gọi đến crSTART () crSTART (xHandle); for (;;) {( / / Delay cho khoảng thời gian cố định crDELAY (xHandle, 10); // Flash LED vParTestToggleLED (0); }) / / Co-thói quen phải kết thúc gọi đến crEND () crEND (); }) Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 34 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Queue Hàng đợi hình thức thông tin task, chúng dùng để gửi tin nhắn task, hoạt động theo nguyên tắc FIFO( First In First Out) Hình mô tả trình hoạt động Queue Khi Task A muốn gửi cho Task B tin nhắn, dùng hàm xQueueSendToBack()… Khi Task B muốn nhận tin nhắn đó, cần dùng hàm xQueueReceive() Hình 2.4: Các bước thự thông tin Queue Semaphore Là phương tiện đáp ứng mục đích loại trừ đồng bộ, chia loại -Binary semaphore -Counting semaphore Tạo semaphore: Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 35 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực vSemaphoreCreateBinary (xSemaphoreHandle xSemaphore) Hoạt động Binary semaphore -Task cần thông tin từ bên ngoài,nhưng lúc Semaphore trống nên task rời vào trạng thái blocked -Ngắt hoạt động, thông tin tải lên semaphore -Task thoát khỏi trạng thái block, semaphore chuyển thông tin cho task Hình 2.5: Hoạt động Semaphore Ví dụ sử dụng: xSemaphoreHandle xSemaphore; void vATask (void * pvParameters) ( / / Semaphore không sử dụng trước gọi đến vSemaphoreCreateBinary () / / Đây macro qua biến cách trực tiếp vSemaphoreCreateBinary (xSemaphore); Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 36 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực (xSemaphore! = null) ( / / Các semaphore tạo thành công / / Các semaphore sử dụng ) Counting semaphore có hoạt động giống binary thay có vị trí để lưu thông tin binary, couting có hàng đợi Couting dùng để đếm kiện để quản lý tài nguyên void vATask (void * pvParameters) ( xSemaphoreHandle xSemaphore; / / Semaphore không sử dụng trước gọi đến xSemaphoreCreateCounting () / / Các giá trị tối đa mà semaphore đếm 10, / / Gán giá trị ban đầu vào truy cập xSemaphore = xSemaphoreCreateCounting (10, 0); (xSemaphore! = null) ( / / Các semaphore tạo thành công / / Các semaphore sử dụng ) ) Trong FreeRTOS có file semphr.h chứa hàm viết sẵn dành cho semaphore Vd nhận thông tin từ semaphore dùng hàm xSemaphoreTake(), gửi vào semaphore dùng xSemaphoreGiveFromISR() Mutexe Có chế hoạt động giống semaphore binary thích hợp xử lý loại trừ Phương thức hoạt động sau: -khi task A muốn tương tác với tài nguyên bảo vệ, yêu cấu thông tin từ semaphore -semaphore có thông tin chuyển cho task A để trao đổi với tài nguyên -trong A trao đổi task B yêu cầu semaphore gửi thông tin Nhưng A dùng thông tin nên B chuyển sang trạng thái blocked để chờ -khi trao đổi xong, A trả thông tin cho semaphore Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 37 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực -B thoát khỏi trạng thái block yêu cấu thông tin, lúc semaphore chuyển thông tin cho B để B trao đổi với tài nguyên -sau trao đổi xong, B trả lại thông tin cho semaphore Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 38 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 39 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Hình 2.6: Hoạt động Mutex Ví dụ sử dụng: xSemaphoreHandle xSemaphore; void vATask (void * pvParameters) ( / / Mutex semaphores không sử dụng trước gọi đến / / XSemaphoreCreateMutex () Việc tạo mutex trả lại xSemaphore = xSemaphoreCreateMutex (); (xSemaphore! = null) ( / / Các semaphore tạo thành công / / Các semaphore sử dụng ) ) Trace Hook Macros Là phương tiện thu thập thông tin để cung cấp cho ứng dụng người sử dụng Các bước thực Trace hook macros: – Thiết lập thông tin cho task1 hoạt động – Trong task2 ta gọi Trace Hook Macros để thông báo cho thiết bị la task1 hoạt động để khởi động trace dùng hàm vTaskStartTrace(), muốn kết thúc dùng hàm ulTaskEndTrace() PHẦN III CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA III.1 THIẾT KẾ MẠCH MÔ PHỎNG BẰNG Proteus Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 40 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Hình 3.1: Thiết kế mô ứng dụng -Mạch mô gồm: VĐK Atmega 128 Transitor NPN Điện trở LED đơn Bộ tạo dao động gồm thạch anh tụ -Nguyên lý hoạt động: Khi tác động xung từ chân VĐK, cực B Transitor mở mức điện áp tương ứng 1, đóng điện áp Khi transitor mở, dòng điện từ nguồn qua transitor, xuống qua trở, gây sụt áp LED làm led sáng Khi transitor đóng, điện áp LED 0, LED không sáng Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 41 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực III.2 LỰA CHỌN CẤU HÌNH CHO HĐH QUA FreeRTConfig.h Hình 3.2: Cấu hình HĐH FreeRTOS.h File FreeRTConfig.h file cấu hình cho HĐH, sau chức dòng lệnh FreeRTConfig.h 1,configUSE_PREEMPTION Đặt sử dụng hạt nhân ưu tiên, dùng hạt nhân hợp tác 2,configUSE_IDLE_HOOK đặt sử dụng IDLE_HOOK, không sử dụng 3,configUSE_TICK_HOOK đặt sử dụng TICK_HOOK, không sử dụng 4,configCPU_CLOCK_HZ đặt tần số đồng hồ cho lõi xử lý , giá trị dùng để cấu hình thiết bị ngoại vi 5,configTICK_RATE_HZ đặt tần số đánh dấu ngắt RTOS đánh dấu ngắt để đo thời gian, tất ứng dụng RTOS sử dụng tần số 1000Hz 6,configMAX_PRIORITIES đặt số ưu tiên lớn cho task 7,configMINIMAL_STACK_SIZE đặt kích cỡ stack sử dụng idle task, không nên đặt thấp khuyến cáo ứng dụng bạn tải cho cổng bạn sử dụng Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 42 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực 8,configTOTAL_HEAP_SIZE tổng số lượng Ram có sẵn cho hạt nhân sử dụng 9,configMAX_TASK_NAME_LEN chiều dài tối đa cho tên task , task tạo ra, bao gồm ký tự null 10,configUSE_TRACE_FACILITY đặt muốn sử dụng trace thông dụng, đặt sử dụng trace theo dõi, trace theo dõi cần sung cấp đệm 11,configUSE_16_BIT_TICKS đánh dấu gián đoạn hạt nhân kể từ bắt đầu 12,configIDLE_SHOULD_YIELD tham số kiểm soát task độ ưu tiên cho idle, ngăn cản idle task từ kết thúc thời gian xử lý process trước đến process sau 13,configUSE_MUTEXES đặt sử dụng mutex ,hoặc không sử dụng 14,configUSE_RECURSIVE_MUTEXES đặt sử dụng mutex đệ quy ,hoặc không sử dụng 15,configUSE_COUNTING_SEMAPHORES đặt sử dụng đếm semaphore, không đặt 16,configUSE_ALTERNATIVE_API đặt dùng hàng đợi thay thế, không dùng 17,configCHECK_FOR_STACK_OVERFLOW sử dụng để phát tràn stack 18,configQUEUE_REGISTRY_SIZE Việc xếp hàng đăng ký có hai mục đích khác nhau, hai điều liên kết với hạt nhân nhận thức gỡ lỗi: Nó cho phép textual tên để liên kết với hàng đợi cho hàng dễ dàng xác định vòng gỡ lỗi GUI Nó chứa thông tin theo yêu cầu debugger để xác định vị trí xếp hàng đăng ký semaphore Việc xếp hàng đăng ký mục đích, trừ bạn sử dụng hạt nhân nhận thức debugger Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 43 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực 19, configUSE_CO_ROUTINES đặt muốn dùng co-routine, đặt không muốn dụng, dùng cần phải có tệp coutine.c chương trình 20, configMAX_CO_ROUTINE_PRIORITIES đặt độ ưu tiên tối đa cho co-routine 21, configKERNEL_INTERRUPT_PRIORITY configMAX_SYSCALL_INTERRUPT_PRIORITY III.3 VIẾT PHẦN ỨNG DỤNG BẰNG AVR Studio Hình 3.3: Viết ứng dụng AVR Studio Để viết phần mềm ứng dụng HĐH, bạn phải cài AVR Studio WinAVR, sau bạn khởi động AVR Studio, lập trình ứng dụng III.4 DỊCH PHẦN ỨNG DỤNG THÀNH FILE hex Để dịch phần ứng dụng, từ cửa sổ AVR Studio bạn chọn Build => Build Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 44 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực Hình 3.4: Cửa sổ AVR Studio Hình 3.5: Dịch phần ứng dụng thành file hex thành công III.5 DÙNG MẠCH NẠP VÀO VI ĐIỀU KHIỂN Gắn VĐK lên mạch nạp, sau kết nối mạch nạp với máy tính, khởi động phần mềm hỗ trợ nạp, tiến hành chọn file Hex, ấn nút nạp để bắt đầu nạp cho VĐK Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 45 Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực TÀI LIỆU THAM KHẢO [1]Dientuvietnam.net [2]Lý thuyết hệ điều hành-Trần Hạnh Nhi [3] www.atmel.com/ [4]www.freertos.org [5] www.vagam.dieukhien.net Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên 46

Ngày đăng: 24/07/2016, 08:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan