XÂY DỰNG HỆ THỐNG NHÚNG THỜI GIAN THỰC VỚI VI ĐIỀU KHIỂN AT91SAM7S256

24 617 2
XÂY DỰNG HỆ THỐNG NHÚNG THỜI GIAN THỰC VỚI VI ĐIỀU KHIỂN AT91SAM7S256

Đ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

XÂY DỰNG HỆ THỐNG NHÚNG THỜI GIAN THỰC VỚI VI ĐIỀU KHIỂN AT91SAM7S256

Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN  XÂY DỰNG HỆ THỐNG NHÚNG THỜI GIAN THỰC VỚI VI ĐIỀU KHIỂN AT91SAM7S256 GVHD: Th.S CAO TRẦN BẢO THƯƠNG SVTH: NGUYỄN CÔNG MINH 0520043 HOÀNG TRỌNG HẠNH 0620020 TRƯƠNG THANH HẢI 0620019 TP Hồ Chí Minh – Tháng 06/2010 -1- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Mục lục MỤC LỤC .2 Giới thiệu chung 1.1 Phần cứng 1.2 Phần mềm Quá trình thực 13 Kết luận .23 TAÌ LIỆU THAM KHẢO 24 NHẬN XÉT CỦA GIẢNG VIÊN 25 -2- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Giới thiệu chung 1.1 Phần cứng Cấu trúc ARM (viết tắt từ tên gốc Acorn RISC Machine) loại cấu trúc vi xử lý 32-bit kiểu RISC sử dụng rộng rãi thiết kế nhúng Do có đặc điểm tiết kiệm lượng, CPU ARM chiếm ưu sản phẩm điện tử di động, mà với sản phẩm việc tiêu tán công suất thấp mục tiêu thiết kế quan trọng hàng đầu Ngày nay, 75% CPU nhúng 32-bit thuộc họ ARM, điều khiến ARM trở thành cấu trúc 32-bit sản xuất nhiều giới CPU ARM tìm thấy khắp nơi sản phẩm thương mại điện tử, từ thiết bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trị chơi cầm tay, máy tính cầm tay) thiết bị ngoại vi máy tính (ổ đĩa cứng, định tuyến để bàn.) Một nhánh tiếng họ ARM vi xử lý Xscale Intel Nhóm sử dụng vi điều khiển AT91SAM7S256 - hãng Atmel, tích hợp bên vi xử lý 32-bit ARM7TDMI RISC Và vi điều khiển lại tích hợp vào AT91SAM7S Evaluation Board PNlab Thơng tin sản phẩm VĐK AT91SAM7S256 trang chủ Atmel -3- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Cấu trúc vi điều khiển dòng SAM7S Cấu trúc AT91SAM7S Evaluation Board PNlab -4- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Các hỗ trợ chính: * Vi xử lý : AT91SAM7S256, 256kByte Flash, 64kByte RAM, USB 2.0, RTT, 10 bit ADC 384 ksps, 2x UARTs, TWI (I2C), SPI, 3x 32bit TIMERS, 4x PWM, SSC, WDT, PDC (DMA) cho tất ngoại vi, tốc độ tối đa 60MHz * USB 2.0 Full Speed * Cổng RS232 hỗ trợ giao tiếp UART DBG * cổng chuyển đổi USB2COM chuyên dụng hỗ trợ làm việc Laptop * SD/MMC Socket * nút bấm đa * LED trạng thái * Thạch anh 18.432 Mhz onboard * Kết nối chuẩn JTAG 20 chân * Hỗ trợ SAM-BA In System Programming (USB RS232) * Biến trở xoay nối trực tiếp với ADC * Header mở rộng cho tất cổng vào * Vùng Free Gird cho ứng dụng người dùng * Nguồn cấp từ cổng USB 5-9V DC * Mạch lớp chất lượng cao, linh kiện SMD Chức sản phẩm : AT91SAM7S256 vi điều khiển hiệu cao thuộc dòng ARM7-TDMI 32 bit phát triển Atmel AT91SAM7S_EB hệ phát triển cho phép kỹ sư dễ dàng tiếp cận làm việc cánh nhanh chóng với dịng ARM Với khe cắm thẻ nhớ SD/MMC người dùng hồn tồn phát triển ứng dụng lưu trữ sử dụng số liệu dung lượng cao Ngồi ra,phần cứng có sẵn cho phép lập trình minh họa hoạt động giao tiếp UART, ADC, GPIO, USB 2.0 Đặc biệt Board hỗ trợ chế độ lập trình BOOT ASSISTANT Atmel, có khả nạp chương trình trực tiếp qua cổng USB RS232 mà không cần đến mạch nạp JTAG 1.2 Phần mềm Nhóm sử dụng phát triển - Driver giao tiếp USB 2.0 cổng COM ảo Windows - Phần mềm biên dịch IAR Embedded Workbench for ARM version 5.11 - Phần mềm nạp SAMBA version 2.8, hỗ trợ chế độ boot assistant - Phần mềm Terminal giao tiếp board máy tính qua cổng COM, viết mơi trường Visual Basic.net - Hệ điều hành thời gian thực FreeRTOS version 5.4.2 -5- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 - Code giao tiếp với máy tính qua cổng COM USB 2.0, nạp cho VĐK AT91SAM7S256 Về hệ thống nhúng thời gian thực Mặc dù khái niệm hệ thống nhúng (embedded system) đời cách thực chưa lâu (1971), nhiên phát triển thành cơng ngày rõ nét chưa có giới hạn cuối - Giới thiệu Ngày nay, hệ thống nhúng có ứng dụng rộng rãi sống hàng ngày tìm gặp thiết bị điện tử Ví dụ thiết bị điện tử dân dụng (máy giặt, tủ lạnh, TV ), thiết bị điện tử “thông minh” (điện thoại di động), thiết bị truyền thông, thiết bị y tế, xe hơi, chí máy tính cá nhân (card mở rộng) Một hệ thống nhúng phát triển Intel vào năm 1971 Đó chip vi xử lý 4004 cho máy tính cầm tay Một chip giống sử dụng cho tất máy tính cầm tay với nhiều chủng lại khác nhau, chúng khác phần mềm tương ứng với dòng nạp ROM Ngày nay, giới xấp xỉ 98% loại vi xử lý/vi điều khiển sử dụng hệ thống nhúng Và ARM nhà cung cấp hàng đầu vi xử lý dựa kiến trúc RISC 32 bit (chiếm 75% thị trường) cho hệ thống nhúng Điểm đặc biệt ARM bán IP khơng bán chip, việc tích hợp IP vi xử lý 32 bit ARM vào chip để xây dựng SoC trở nên dễ dàng - Hệ thống nhúng gì? Trong năm gần đây, phân chia khái niệm hệ thống nhúng không nhúng ngày mờ nhạt, không rõ ràng Lý đơn giàn, hầu -6- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 hết hệ thống ngày hệ thống nhúng Hệ thống nhúng có số lượng lớn ứng dụng từ nhỏ đến lớn, từ dân dụng đến công nghiệp, từ điều khiển đơn giản đến xử lý phức tạp Trong khuôn khổ viết này, hệ thống nhúng định nghĩa sau : hệ thống chuyên dụng cho mục đích xác định, bao gồm nhiều thành phần (bộ nhớ, I/O, module chức ) xung quanh vi xử lý với hệ điều hành nhỏ, gọn, nhanh nhằm mục đích điều khiển vi xử lý, tất nằm chip (SoC) hay board mạch Điểm quan trọng cần lưu ý khác biệt hệ thống nhúng hệ thống máy tính PC : hệ thống nhúng hệ thống chuyên dụng với chức cụ thể, hệ thống máy tính PC hệ thống đa dụng với chức thời điểm phần mềm định Trong hệ thống nhúng có nhiều chương trình phần mềm chạy lúc với hệ điều hành Bởi hệ thống nhúng cịn phần nhỏ hệ thống lớn hơn, nên nằm board mạch với vi xử lý riêng với phần mềm lưu trữ ROM Vì hệ thống chuyên dụng, nên hầu hết hệ thống nhúng phải đáp ứng thay đổi tín hiệu ngõ vào (input) thời gian ngắn có thể, tức phải đảm bảo tốc độ hoạt động Vì vậy, hệ thống nhúng có tốc độ hoạt động cao xếp vào loại thời gian thực (real time) Với ứng dụng đơn giản, cần chương trình nhỏ (mà khơng cần hệ điều hành) để điều khiển hệ thống, nhiên, hệ điều hành cài đặt hệ thống nhúng để chạy chương trình ứng dụng giúp cho hệ thống trở nên linh hoạt - Đặc trưng hệ thống nhúng Một đặc trưng quan trọng hệ thống nhúng “tính định” Đặc trưng có nghĩa tất trạng thái bên hệ thống, giá trị ngõ vào liên quan đến ngõ tính tốn trước (về mặt nguyên tắc) Tất nhiên “tính định” không đặc trưng riêng cho hệ thống nhúng mà hệ thống bất kỳ, vậy, đặc tính khác quan trọng mang nét riêng hệ thống nhúng thời gian thực Một hệ thống nhúng phải có khả thực chức khoảng thời gian hữu hạn, biết trước Một hệ thống nhúng “bao bọc” hệ thống phần cứng mà điều khiển, vậy, người sử dụng cuối, họ không nhận diện hệ thống nhúng thiết bị phần cứng Do đó, khác biệt hệ thống nhúng máy tính cá nhân Một hệ thống nhúng có khả tương tác với giới bên ngoài, nhiên giao diện người sử dụng lại thường đơn giản Lĩnh vực hệ thống nhúng đòi hỏi kết hợp nhiều ngành lại với : kỹ thuật phần mềm, hệ điều hành, thiết kế phần cứng (chip) Vì vậy, kỹ sư thiết kế hệ thống nhúng phải có khả hiểu nhiều lĩnh vực khác nhau, từ thiết kế phần cứng, xuống layout chip, đến lập trình phần mềm, cài đặt hệ điều hành -7- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 - Hệ thống thời gian thực Như đề cập trên, hệ thống có khả thực thời gian thực nghĩa hệ thống phải thực chức khoảng thời gian xác định nhỏ chấp nhận Khi đáp ứng yêu cầu này, hệ thống gọi hệ thống thời gian thực Các hệ thống phải có khả đáp ứng tín hiệu ngõ vào kiện giới hạn khoảng thời gian bắt buộc Cho nên hệ thống trả kết mà phải nhanh đáp ứng yêu cầu tốc độ hệ thống Trong hệ thống thời gian thực, tốc độ quan trọng không độ xác Có loại thời gian thực : thời gian thực cứng thời gian thực mềm Đối với hệ thống thời gian thực cứng, tất chức phải thực thi xác khoảng thời gian xác định, không hệ thống bị lỗi nghiêm trọng Ví dụ : hệ thống điều khiển khơng lưu, hệ thống dẫn đường tên lửa, thiết bị y tế Đối với hệ thống thời gian thực mềm, chức phải thực khoảng thời gian xác định nhỏ không bắt buộc - Hệ điều hành thời gian thực (RTOS) kernel thời gian thực Một số ứng dụng nhúng thực hiệu mà cần chương trình đơn giản chạy độc lập điều khiển hệ thống Tuy nhiên, đa số ứng dụng mang tính thương mại, hệ nhúng cần phải có hệ điều hành thời gian thực kernel thời gian thực Một kernel thời gian thực thường nhỏ nhiều so với RTOS hoàn chỉnh Trong lý thuyết hệ điều hành, kernel phần hệ điều hành, nạp lên nhớ tồn lúc chương trình hoạt động Một kernel thời gian thực cung cấp hầu hết dịch vụ cần thiết cho ứng dụng nhúng.Do phần hệ điều hành nạp thẳng lên nhớ, nên kernel thời gian thực thường có kích thước nhỏ, phù hợp cho nhớ có dung lượng thấp hệ thống nhúng Hình mơ tả kernel RTOS hoàn chỉnh -8- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Hoạt động hệ thống nhúng đươc thực theo chương trình, gồm tác vụ (task) luồng (thread) việc đáp ứng tín hiệu ngõ vào hay trình xử lý bình thường theo yêu cầu hệ thống Các trình xử lý phải trả kết khoảng thời gian xác định - Chương trình, tác vụ luồng Một chương trình hệ thống nhúng phần mềm có khả thực thi độc lập có vùng nhớ riêng Nó bao gồm môi trường thực thi chức cụ thể khả tương tác với hệ điều hành Một chương trình bắt đầu chạy cách độc lập từ chương trình khác Một hệ điều hành có khả thực thi nhiều chương trình lúc song song Tuy nhiên, chương trình có khả tự chia vài phần có khả thực thi song song nhau, phần gọi luồng Một luồng phần chương trình phụ thuộc mặt chức so với luồng khác lại có khả hoạt động độc lập Các luồng chia sẻ chung nhớ chương trình Khái niệm tác vụ luồng thay cho Hình mơ tả khác chương trình luồng - Kiến trúc hệ thống thời gian thực Kiến trúc hệ thống thời gian thực định luồng thực thi cách Có kiến trúc phổ biến kiến trúc điều khiển vịng lặp với polling mơ hình xếp ưu tiên Trong kiến trúc điều khiển vòng lặp với polling, kernel thực thi vịng lặp vơ hạn, vịng lặp chọn luồng mẫu định trước Nếu luồng cần dịch vụ, xử lý Có vài biến thể phương pháp này, nhiên phải đảm bảo luồng có khả truy cập đến vi xử lý Hình mơ tả cách xử lý phương pháp -9- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Mặc dù phương pháp điều khiển vòng lặp với polling dễ thực hiện, nhiên có hạn chế nghiêm trọng Thứ nhiều thời gian, mà luồng cần truy cập đến vi xử lý phải chờ đến lượt mình, chương trình có q nhiều luồng bị chậm nhiều Thứ hai, phương pháp khơng có phân biệt luồng, luồng quan trọng luồng quan trọng, từ xác định mức độ ưu tiên luồng Một phương pháp khác mà kernel thời gian thực hay sử dụng mơ hình xếp mức độ ưu tiên Trong mơ hình này, luồng kèm với mức độ ưu tiên nó, lúc này, vi xử lý thiết lập đường truy cập tới luồng có mức độ ưu tiên cao địi hỏi phục vụ Cũng có vài biến thể phương pháp này, nhiên phải đảm bảo luồng có mức độ ưu tiên thấp phải truy cập tới vi xử lý vài lần Hình mơ tả phương pháp cách xử lý phương pháp - 10 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Một ưu điểm quan trọng phương pháp có khả tạm hỗn thực thi luồng có luồng khác với mức độ ưu tiên cao cần phục vụ Q trình lưu trữ lại thơng tin thời luồng bị tạm hỗn thực thi có luồng khác với mức độ ưu tiên cao cần phục vụ gọi “context switching” Quá trình phải thực nhanh đơn giản để luồng bị tạm hỗn thực tiếp nhiệm vụ cách xác lấy lại đươc quyền điều khiển Một hệ thống nhúng thời gian thực phải có khả đáp ứng lại tín hiệu ngõ vào hay kiện cách nhanh xác nhất, ngắt hệ thống Ngắt hệ thống phải làm cho vi xử lý ngưng nhiệm vụ thực thi để xử lý ngắt Một ngắt xử lý ISR (interrupt service routine), có khả kích hoạt luồng có mức độ ưu tiên cao luồng thực thi Lúc này, tạm hoãn lại luồng để dành quyền cho luồng có mức độ ưu tiên cao Ngắt tạo phần mềm (ngắt mềm) hay thiết bị phần cứng (ngắt cứng) - Sự phát triển hệ thống nhúng Các ứng dụng nhúng ngày rộng rãi phát triển ngày cao phần cứng lẫn phần mềm Các ứng dụng nhúng cần phải có thời gian thực, khác biệt lớn hệ thống nhúng hệ thống máy tính truyền thống Ngày để tăng tốc độ hệ thống nhúng, phải có khả thực xử lý song song luồng với Do vậy, cách viết chương trình phần mềm truyền thống khơng cịn phù hợp lập trình cho hệ thống nhúng đa luồng Hơn nữa, vi xử lý hệ thống nhúng đòi hỏi tốc độ cao khơng cịn làm nhiệm vụ xử lý, mà làm nhiệm vụ điều khiển giám sát hoạt động hệ thống Chức xử lý luồng liệu module phần cứng hệ thống đảm nhận thực song song Kiến trúc hệ thống nhúng thời gian thực có khác biệt nhiều cải tiến đáng kể so với kiến trúc hệ thống máy tính truyền thống trước Điều nhằm đảm bảo xác cải thiện tốc độ hệ thống Hầu hết hệ thống nhúng ngày dùng ngơn ngữ C để lập trình, nhiên số dùng hợp ngữ Nguyên tắc hoạt động HĐH FreeRTOS - 11 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Hoạt động đa nhiệm trỏ program counter stack pointer định hướng hoạt động cho HĐH - 12 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Quá trình thực Ý tưởng nhóm cài đặt hệ điều hành thời gian thực FreeRTOS phiên 5.4.2 lên nhớ flash VĐK AT91SAM7S256 thực chương trình giao tiếp với PC qua cổng COM USB A Truyền nhận text board máy tính qua cổng COM ảo B Mô Joystick qua cổng USB - Cài đặt phần mềm nạp Samba 2.7, nằm AT91-ISP (In System Programmer) 1.12 Atmel, chương trình cài đặt hãng Atmel - Cài đặt driver giao tiếp với máy tính qua cổng USB COM ảo - 13 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Cài đặt driver giao tiếp USB thành công, máy nhận board - 14 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Cài đặt driver COM ảo thành công, máy nhận board - Cài đặt trình biên dịch IAR Embedded Workbench for ARM version 5.11: chương trình dùng để viết biên dịch chương trình cho VĐK AT91SAM7S256 - 15 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 - Tải cài HĐH FreeRTOS 5.4.2 - Tiến hành chỉnh sửa biên dịch mã nguồn FreeRTOS, viết ứng dụng giao tiếp với máy tính mơi trường IAR Giao diện chương trình IAR - 16 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Chọn xuất file bin dịch xong Bắt đầu biên dịch chương trình, chuột phải vào tên project menu bên trái, chọn “Rebuild All” - 17 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Đã biên dịch thành công chương trình, IAR xuất file bin, dùng để nạp vào VĐK board - Sau tiến hành viết chương trình Terminal giao tiếp board máy tính qua cổng COM ảo, môi trường Microsoft Visual Basic.net 2008 Giao diện Microsoft Visual Basic.net 2008 - Dùng Samba nạp HĐH FreeRTOS ứng dụng (dạng file hex) vào nhớ flash VĐK AT91SAM7S256 - 18 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Chạy chương trình nạp SAMBA, chọn cổng kết nối USB, tên VĐK AT91SAM7S256 Chọn file bin dịch thành công tiến hành nạp chương trình - 19 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 A Truyền nhận text board máy tính qua cổng COM ảo Khởi chạy chương trình giao tiếp qua cổng COM thiết lập chế độ hoạt động thích hợp Giao tiếp qua cổng COM ảo, truyền nhận text board với máy tính - 20 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 B Mô Joystick qua cổng USB Ta mô joystick, kết nối, PC nhận dạng board thiết bị USB cắm vào Kết nối thành cơng, board cấu hình thành joystick USB Ta tiếp tục kiểm tra chế độ điều khiển joystick Ta sử dụng nút nhấn PA20 PA19 board để điều khiển hướng joystick, nút phải (switch 2) xuống nút trái (switch 1) lên Kết luận - 21 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Đề tài nhóm dừng mức độ nghiên cứu cách tổng quan cấu tạo ứng dụng dịng vi xử lý ARM nói riêng, thao tác quy trình xây dựng phát triển ứng dụng nhúng nói chung - 22 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Tài liệu tham khảo Bách khoa mở wikipedia.org - http://vi.wikipedia.org/wiki/Cấu_trúc_ARM How FreeRTOS works - http://www.freertos.org/implementation/index.html Hệ thống nhúng thời gian thực - BIMOS Việt Nam - 23 - Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 Nhận xét giảng viên - 24 - ... thống nhúng không nhúng ngày mờ nhạt, khơng rõ ràng Lý đơn giàn, hầu -6- Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256 hết hệ thống ngày hệ thống nhúng Hệ thống nhúng. .. hệ thống Trong hệ thống thời gian thực, tốc độ quan trọng khơng độ xác Có loại thời gian thực : thời gian thực cứng thời gian thực mềm Đối với hệ thống thời gian thực cứng, tất chức phải thực. .. nhúng thời gian thực với vi điều khiển AT91SAM7S256 - Hệ thống thời gian thực Như đề cập trên, hệ thống có khả thực thời gian thực nghĩa hệ thống phải thực chức khoảng thời gian xác định nhỏ chấp

Ngày đăng: 01/04/2014, 21:19

Từ khóa liên quan

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

Tài liệu liên quan