Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hệ điều khiển thời gian thực SVTH: Nhóm MỤC LỤC I Cơ sở lý thuyết Tìm hiểu RTOS .3 1.1 RTOS ? 1.1.1 Hệ thống thời gian thực (Real time System): 1.1.2 Thời gian thực cứng (Hard Real-time) thời gian thực mềm (Soft Real- Time): 1.1.3 Định nghĩa hệ điều hành thời gian thực RTOS: .4 1.2 Các thành phần RTOS: 1.2.1 Bộ lịch trình (Scheduler): .4 1.2.2 Bộ điều phối (Dispatcher): 1.2.3 Các đối tượng (Objects) RTOS: .7 1.3 Định nghĩa Tasks: 1.3.1 Task hệ thống (System Task): 1.3.2 Các trạng thái Task: 1.3.3 Cấu trúc Task: 10 Tìm hiểu SWI 10 2.1 Định nghĩa SWI 10 2.2 Độ ưu tiên SWI hệ thống 10 2.3 Quy tắc lập lịch trình (Scheduling Rules) 11 2.4 Các bước xử lí hệ thống 12 Động bước .12 3.1 Khái niệm .12 3.3 Phân loại .13 3.4 Ưu điểm nhược điểm .13 Giới thiệu Kit Launchpad dùng vi điều khiển TivaC 14 II Thiết kế 15 Sơ đồ khối .15 Kết nối phần cứng 16 Thiết kế phần cứng 16 3.1 Phím nhấn .15 Hệ điều khiển thời gian thực SVTH: Nhóm 3.2 Led đơn 17 3.3 Mạch bảo vệ 17 3.4 Mạch đệm dòng 18 Phần mềm CCS 18 III Code điều khiển 18 IV Kết đánh giá .24 Kết đạt .24 Ưu điểm hạn chế: 24 Đề nghị .24 TÀI LIỆU THAM KHẢO 24 Hệ điều khiển thời gian thực SVTH: Nhóm TÌM HIỂU SWI VÀ ĐỘNG CƠ BƯỚC HIỂN THỊ SỐ VÒNG QUAY QUA LED ĐƠN Mục tiêu: Trong điều khiển chuyển động kỹ thuật số, động bước cấu chấp hành đặc biệt hữu hiệu thực trung thành lệnh đưa dạng số Động bước ứng dụng nhiều ngành Tự động hoá, chúng ứng dụng thiết bị cần điều khiển xác Ví dụ: Điều khiển robot, điều khiển tiêu cự hệ quang học, điều khiển định vị hệ quan trắc, điểu khiển bắt, bám mục tiêu khí tài quan sát, điều khiển lập trình thiết bị gia công cắt gọt, điều khiển cấu lái phương chiều máy bay Trong công nghệ máy tính, động bước sử dụng cho loại ổ đĩa cứng, ổ đĩa mềm, máy in I Cơ sở lý thuyết Tìm hiểu RTOS 1.1 RTOS ? 1.1.1 Hệ thống thời gian thực (Real time System): Thời gian (Time) : Sự xác hệ thống không phụ thuộc vào kết tính toán logic mà phụ thuộc vào thời gian cho kết Thực (Real): Đáp ứng hệ thống với kiện bên Thời gian thực (Real-Time): Phải đảm bảo yếu tố: Đáp ứng nhanh Dự đoán Các tác vụ (Real-time Task) xác định deadline Deadline thời gian tối đa tác vụ phải hoàn thành việc thính toán 1.1.2 Thời gian thực cứng (Hard Real-time) thời gian thực mềm (Soft Real-Time): Hình 1: Thời gian thực cứng thời gian thực mềm Hệ điều khiển thời gian thực SVTH: Nhóm Thời gian thực cứng: Một tác vụ thời gian thực cứng thời gian tính toán vượt deadtime gây phá vỡ môi trường điều khiển Thời gian thực mềm: Một tác vụ thời gian thực mềm đảm bảo thực thi deadtime cho phép không đảm bảo không tạo nguy hại đáng kể cho hệ thống không làm ảnh hưởng đến ứng xử hệ thống 1.1.3 Định nghĩa hệ điều hành thời gian thực RTOS: 1.2 Là hệ thống có: Lịch trình thực thi theo thời gian Quản lý tài nguyên hệ thống Cung cấp tảng để phát triển ứng dụng Các thành phần RTOS: 1.2.1 Hình 2: Các đối tượng RTOS Bộ lịch trình (Scheduler): Là tập thuật toán để xác định tác vụ (Task) thực thi Đối tượng (Object): Là cấu trúc đặc biệt (Kernel) giúp người lập trình tạo ứng dụng Dịch vụ (Service) : Là điều khiển mà Kernel (lõi) thực thi đối tượng (object): chia thời gian (Timing), ngắt (interrupt), đáp ứng (handling) quản lý tài nguyên hệ thống (resource management) Bộ lịch trình (Scheduler): Hệ điều khiển thời gian thực SVTH: Nhóm Là phần vô quan trọng lõi hệ thống điều khiển (Operating System Kernel) Nó giúp xác định tác vụ (task) dành quyền CPU để thực thi Sau đó, thực việc chuyển trạng thái (context switching) thực điều phối (dispatcher) Hình 3: Chuyển đổi trạng thái (Context Switching) Trạng thái (ngữ cảnh) tác vụ (Task) Mỗi task có trạng thái riêng nó, trạng thái ghi (registers) Mỗi thời điểm task tạo ra, kernel tạo lưu giữ block điều khiển liên quan đến task (TCBs) TCBs cấu trúc liệu hệ thống mà kernel dùng để lưu trữ thông tin đặc trung task TCBs chứa thứ mà kernel cần để biết task cụ thể Khi task đnag chạy, trạng thái động Trạng thái động lưu trữ TCB Khi task không chạy nữa, trạng thái bị đóng băng (frozen) TCB, sử dụng cho lần thực thi task Công tắc chuyển đổi trạng thái (Context Switch): Sẽ xảy lịch trình (scheduler) chuyển từ trạng thái sang trạng thái khác Việc chuyển đổi trạng thái bao gồm: Thời gian chuyển đổi: Là thời gian tiêu tốn lịch trình chuyển từ task sang task khác Nó liên quan đến lệnh thực task Nếu ứng dụng thiết kế mà xảy chuyển đổi trạng thái thường xuyên dẫn đến thực thi không cần thiết Vì vậy, nên thiết kế ứng dụng theo cách mà tạo chuyển đổi trạng thái Khi chuyển đổi xảy ra: Mỗi ứng dụng tạo lời gọi hệ thống (System Call), lịch trình xác định có cần chuyển đổi trạng thái hay không Khi lịch trình xác định việc chuyển đổi cần thiết gọi phân phối (dispatcher) để thực việc chuyển đổi Hệ điều khiển thời gian thực SVTH: Nhóm Ví dụ: Khi thực thi Kernel xác định cần dừng việc thực thi Task để chuyển qua trạng Task thực thi theo bước sau: Kernel lưu thông tin trạng thái Task Load thông tin trạng thái Task 2, Task trở thành luổng (thread) thực thi Trạng thái chuyển đổi Task đóng bang Task thực thi, chuyển đổi xác định cần chạy lại Task Task quay lại vị trí trước bị chuyển đổi Hình 4: Ví dụ Contex Switch 1.2.2 Bộ điều phối (Dispatcher): Dòng thực thi (Flow of Execution): Tại thời điểm RTOS chạy, dòng thực thi chuyển đến vùng: đến Task ứng dụng (application Task), đến chương trình phục vụ ngắt (ISR), đến Kernel Khi phân phối thực hiên: Khi Task ISR tạo lời gọi hệ thống, dòng điều khiển chuyển đến Kernel để thực thi số thủ tục cung cấp Kernel Khi rời khỏi Kernel, dispatcher có trách nhiệm chuyển lệnh điều khiển đến số Task ứng dụng Hình 5: Điều phối từ Task Hệ điều khiển thời gian thực SVTH: Nhóm Cách thực sau: Không cần thiết để chuyển toàn lệnh điều khiển đến task gọi System Call Điều xác định giải thuật phân chia thời gian biểu (scheduling algorithms) lịch trình (scheduler) Chuyển đổi thực thi từ Task Tùy thuộc vào cách truy cập vào Kernel mà dispatching xãy khác Khi Task thực lời gọi hệ thống, dispatcher sử dụng để thoát khỏi Kernel Lời gọi hệ thống hoàn thành Trong trường hợp này, dispatcher dùng lời gọi lời gọi (call-by-call basic) để hỗ trợ cho việc chuyển đổi trạng thái Task Bất kì Task gọi system call Một hay nhiều Task trạng thái sắn sàng cho thực thi Chuyển đổi thực thi từ chương trình phục vụ ngắt (ISR): Hình 6: Điều phối từ ISR Khi ISR tạo System Call, Dispatcher bị bỏ vô hiệu hóa ISR thưc thi xong Quá trinh miễn có đủ tài nguyên để chuyển đổi Task Chuyển đổi trạng thái không diễn ISR phải thực thi xong mà không ngắt Tasks Sau ISR thực thi xong, Kernel thoát đến dispatcher để điều phối đến task thực thi 1.2.3 Các đối tượng (Objects) RTOS: Tasks: Là luồng (thread) thực thi tồn độc lập “cạnh tranh” để dành quyền thực thi Semaphores: Là đối tượng bắt kiện để đồng tasks, tăng giảm Message Queues: Hệ điều khiển thời gian thực SVTH: Nhóm 1.3 Là kiểu cấu trúc liệu dùng để đồng hóa trao đổi thông tin Tasks Real-time embedded applications: Là kết nối đối tượng Kernel để giải vấn đề thời gian thực đồng thời, đồng bộ, trao đổi liệu Định nghĩa Tasks: 1.3.1 Hình 7: Sơ đồ cấu trúc Task Task luồng thực thi độc lập mà cạnh tranh chiếm quyền thực thi Một ứng dụng chia làm nhiều Tasks đồng thời (Concurrent Task) để tối ưu khả đáp ứng vào luật thời gian Một Task định nghĩa túy tập tham số cấu trúc liệu Các thành phần Task: Khi tạo ra, Task có tên, ID nhất, độ ưu tiên, block điều khiển Task (TCB), Stack, thủ tục thực thi Task Task hệ thống (System Task): Bao gồm Task sau: Task khởi tạo (Initialization or Startup Task) Khởi tạo hệ thống tạo task khởi động hệ thống Task “Rỗi” (Idle Task) Idle Task chạy theo chu kì rỗi hệ thống (idle cycles), đặt độ ưu tiên thấp Thực thi vòng lặp vô tận Idle task chắn đếm chương trình luôn có giá trị cho trường hợp task thực thi Kernel cho phép thao tác cấu hình bời người dùng (developer) để chạy yêu cầu đặc biệt: sleep mode Hệ điều khiển thời gian thực SVTH: Nhóm Task “đăng nhập” (Logging Task) Là tin nhắn truy cập vào hệ thống Task “Lỗi” (Exception- Handling Task) Thực thi trường hợp lỗi hệ thống ứng dụng Task “sữa lỗi” (Debug Agent Task) Cho phép sữa lỗi thông qua công cụ debug (host debugger) Chú ý task hệ thống khác tạo trình khởi tạo, phụ thuộc vào thành phần có Kernel 1.3.2 Hình 8: Các trạng thái Task Các trạng thái Task: Trạng thái Task: Tại thời điểm, task tồn số trạng thái nhỏ bao gồm: Sẵn sàng (Ready), Đang thực thi (Running), Khóa (Blocked) Khi hệ thống nhúng thời gian thực chạy, task thay đổi từ trạng thái đến trạng thái khác theo quy luật logic trạng thái hữu hạn đơn giản (Finite state machine (FSM)) Về bản, trạng thái sử dụng hầu hết hệ thống Kernel sử dụng phương pháp lịch trình thay (preemptive – scheduling) Hệ điều khiển thời gian thực SVTH: Nhóm 1.3.3 Cấu trúc Task: Hình 9: Hiện thực cấu trúc Task Chạy đến kết thúc Task (Run – to – completion Task) Một ví dụ Run – to – completion Task Task khởi tạo cấp ứng dụng (application level) Task khởi tạo có nhiệm vụ khởi tạo ứng dụng tạo dịch vụ, Tasks, số đối tượng Kernel Vòng vô tận Task (Enless-Loop Task) Một cấu trúc Enless-Loop Task bao gồm phần code khỏi tạo phần khởi tạo cần lần, sau vòng lặp vô tận Một thành phần thiếu vòng lặp vô tận hay nhiều blocking call nẳm vòng lặp Những blocking call cho phép Task có độ ưu tiên thấp chạy Tìm hiểu SWI 2.1 Định nghĩa SWI SWI (software interrupt) ngắt gây phần mềm, thường chương trình chế độ người dùng 2.2 Độ ưu tiên SWI hệ thống 10 Hệ điều khiển thời gian thực Idle SVTH: Nhóm Task SWI HWI Thời gian xử lí linh hoạt Thường “tỉ lệ khung hình” Chu kỳ mini giây Mức độ ưu tiên Hình 10: Độ ưu tiên SWI hệ thống 2.3 CPU thực lệnh thời điểm nên tạm ngưng việc thực thi tiến trình chạy để thực thi tiến trình khác sau quay trở thực thi tiếp tiến trình bị tạm ngưng Khi ngắt xuất hiện, việc thực thi trương trình tạm thời bị dừng CPU thực rẽ nhánh đến trình phục vụ ngắt ISR Ta nói chương trình thực thi mức ISR thực thi mức ngắt Mỗi nguyên nhân dẫn đến ngắt phải thông qua ghi cho phép ngắt IE (interrupt enable) Ưu tiên ngắt: Các ngắt có mức ưu tiên cao phục vụ trước nhờ ghi IP (interrupt priority) Quy tắc lập lịch trình (Scheduling Rules) Hình 11: Quy tắc lập lịch trình Biểu đồ cho thấy độ ưu tiên xếp theo thứ tự tăng dần từ lên với Hwi có ưu tiên cao Trong hình SWI có trình, swi_a (p1) swi_b (p2) có độ ưu tiên cao 11 Hệ điều khiển thời gian thực SVTH: Nhóm Khởi đầu swi_a trạng thái running sau Hwi yêu cầu ngắt swi_post (swi_b) Khi nhận yêu cầu ngắt từ Hwi swi_b từ trạng thái ready chuyển sang trạng thái running Trong swi_a hàng đợi sẵn sàng, tiến trình swi_b kết thúc swi_a quay trạng thái running 2.4 Hình 12: Kỹ thuật FIFO Chiến lược FIFO: CPU cấp phát cho tiến trình danh sách sẵn sàng có yêu cầu, giải phóng tiến trình tự nguyện có yêu cầu xuất nhập Sau Hwi gửi yêu cầu ngắt swi_post (swi_b) CPU trả lại cho swi_a (p1), swi_b trạng thái ready chờ đến swi_a thực xong swi_b chuyển sang trạng thái running Các bước xử lí hệ thống INT! Hard R/T Process Post Swi Swi Ready Cleanup, RET Continue Processing Hình 13: Các bước xử lý hệ thống Động bước 3.1 Khái niệm 3.2 Động bước thiết bị - điện dùng để biến đổi xung điện chiều thành chuyển động quay học rời rạc Góc quay tốc độ quay tương ứng với số xung tần số xung điện cấp cho động Mỗi vòng quay trục động thiết lập số lượng hữu hạn góc bước, góc quay roto stato bị đảo cực tính Cấu tạo Động bước coi tổng hợp hai loại động cơ: Động chiều không tiếp xúc động đồng giảm tốc công suất nhỏ Động bước mô tả động điện không dung chuyển mạch 12 Hệ điều khiển thời gian thực SVTH: Nhóm Cụ thể, mấu động rotor stato nam châm vĩnh cửu trường hợp động biến từ trở khối làm vật liệu nhẹ có từ tính, cho phép chúng quay nhanh với mô điều khiển thích hợp cho phép chúng khởi động dừng lại vị trí ta muốn cách dễ dàng Hình 14: Cấu tạo động bước 3.3 Phân loại 3.4 Động bước phân loại dựa theo cấu trúc cách quấn cuộn dây stator • Dựa theo cấu trúc rotor, động bước chia thành loại: - Động bước từ trở biến thiên - Động bước nam châm vĩnh cửu - Động bước lai • Dựa theo quấn dây stator, động bước chia thành loại: - Động bước đơn cực - Động bước lưỡng cực Ngoài ra, loại rơi vào hai phương pháp cấu tạo Trong phương pháp thứ nhất, rotor có bình thường Stator có tượng tự để giữ cuộn dây Trong phương pháp thứ hai, mặt rotor stator có nhiều nhỏ Ưu điểm nhỏ tạo góc bước nhỏ Ưu điểm nhược điểm Ưu điểm: - Khi dùng động bước không cần mạch phản hồi cho điều khiển vị trí vận tốc - Thích hợp với thiết bị điều khiển số với khả điều khiển số trực tiếp - Dễ dàng điều khiển khởi động, dừng đảo chiều quay - Không có chổi than nên làm việc tin cậy Nhược điểm - Cộng hưởng xảy điều khiển không cách - Công suất thấp 13 Hệ điều khiển thời gian thực SVTH: Nhóm Giới thiệu Kit Launchpad dùng vi điều khiển TivaC Tiva™ C Series TM4C123G LaunchPad Evaluation Board tảng dành cho ARM® Cortex™-M4F Sử dụng chip TM4C123GH6PMI với tính hỗ trợ USB 2.0, chế độ ngủ đông, module điều xung (MC PWM) Trên kit có nút nhấn, LED RGB, dễ dàng nạp debug chương trình với CCS IAR Một số tính bản: Chuyển động kiểm soát PWM USB micro-ab kết nối: Thiết bị chế độ cấu hình mặc định Máy chủ/OTG chế độ supportable Rgb dẫn người sử dụng Hai người sử dụng thiết bị chuyển mạch (ứng dụng/Wake) Có sẵn I/O đưa tiêu đề 0.1-in (2,54-mm) lưới Chuyển đổi-lựa chọn nguồn điện: ICDI Thiết bị USB Chuyển đổi thiết lập lại Cài đặt sẵn rgb QuickStart ứng dụng Được hỗ trợ Tivaware C loạt phần mềm bao gồm thư viện USB driver thiết bị ngoại vi Tiva C loạt TM4C123G bệ phóng Boosterpack xl giao diện, có tính Stackable tiêu đề để mở rộng khả Tiva C loạt bệ phóng tảng phát triển Hình 15: KIT Tiva C Launchpad 14 Hệ điều khiển thời gian thực II Thiết kế Sơ đồ khối SVTH: Nhóm Hình 16 Sơ đồ khối Kết nối phần cứng KEY nối từ port PA2 đến PA5 Kit Tiva C LED ĐƠN nối từ port PC4 đến PC7 Kit Tiava C Từ KIT TIVA C nối từ port PD0 đến PD3 với đầu vào MẠCH BẢO VỆ (PC817) Đầu MẠCH BẢO VỆ nối từ chân đến chân ULN2803 (mạch đệm dòng) Chân 15 đến chân 18 ULN2803 nối với MOTOR BƯỚC Thiết kế phần cứng 3.1 Phím nhấn Hình 17 Khối phím nhấn 15 Hệ điều khiển thời gian thực SVTH: Nhóm Chức năng: A1 quay thuận vòng A2 quay nghịch vòng A3 quay nghịch 900 A4 quay thuận 1800 3.2 Led đơn Hình 18 Khối hiển thị Sử dụng led đơn tính theo mã nhị phân để hiển thị số vòng quay motor bước Ví dụ: 0001: giá trị mặc định 0010: hiển thị mã nhị phân giá trị 0011: hiển thị mã nhị phân giá trị 16 Hệ điều khiển thời gian thực 3.3 SVTH: Nhóm Mạch bảo vệ Hình 19 Khối mạch bảo vệ 3.4 Chức năng: để bảo vệ kit Tiva C Mạch đệm dòng Hình 20 Khối đệm dòng Chức năng: đệm dòng cho motor bước 17 Hệ điều khiển thời gian thực SVTH: Nhóm Phần mềm CCS Hình 21 Giao diện CCS (Code Composer Studio) III Code điều khiển /* * ======== empty.c ======== */ /* XDCtools Header files */ #include #include #include /* BIOS Header files */ #include /* TI-RTOS Header files */ #include // #include // #include // #include // #include // #include 18 Hệ điều khiển thời gian thực SVTH: Nhóm /* Board Header file */ #include "Board.h" // TivaWare Header Files // -#include #include #include "inc/hw_types.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" #include "inc/hw_ints.h" #include "driverlib/interrupt.h" #include "driverlib/timer.h" #include "string.h" // -// Prototypes // -void hardware_init(void); void quay(void); void Timer_ISR(void); // // Globals // - unsigned char code[]={0x08,0x0b,0x02,0x06,0x04,0x05,0x01,0x0a}; int i, k; unsigned char key; uint8_t ReadData; 19 Hệ điều khiển thời gian thực SVTH: Nhóm uint8_t ReadData2; uint8_t ReadData3; uint8_t ReadData4; uint8_t ReadData5; // // main() // void main(void) { hardware_init(); // init hardware via Xware BIOS_start(); } // // hardware_init() // // inits GPIO pins for toggling the LED // void hardware_init(void) { //Set CPU Clock to 40MHz 400MHz PLL/2 = 200 DIV = 40MHz SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_ 16MHZ|SYSCTL_OSC_MAIN); // setup PORT D 0,1,2,3 lam output motor SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); //pa SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); //pa2 20 Hệ điều khiển thời gian thực SVTH: Nhóm GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2); // Khai bao chan PF4 la Input GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //pa3 GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_3); // Khai bao chan PF4 la Input GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_3, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //pa4 GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_4); // Khai bao chan PF4 la Input GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //pa5 GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_5); // Khai bao chan PF4 la Input GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_5, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //timer for 500ms uint32_t ui32Period; SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER2); // enable Timer periph clks TimerConfigure(TIMER2_BASE, TIMER_CFG_PERIODIC); // cfg Timer mode - periodic ui32Period = (SysCtlClockGet() /2); // period = CPU clk div (500ms) TimerLoadSet(TIMER2_BASE, TIMER_A, ui32Period); // set Timer period TimerIntEnable(TIMER2_BASE, TIMER_TIMA_TIMEOUT); // enables Timer to interrupt CPU TimerEnable(TIMER2_BASE, TIMER_A); // enable Timer } 21 Hệ điều khiển thời gian thực SVTH: Nhóm void quay(){ //Semaphore_pend(LEDSem, BIOS_WAIT_FOREVER); // wait for Sem from ISR ReadData2 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_2); // Doc gia tri chan PA ReadData3 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_3); // Doc gia tri chan PA ReadData4 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_4); // Doc gia tri chan PA ReadData5 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_5); // Doc gia tri chan PA if ((ReadData2&0x04)==0) //quay thuan vong { for(i=0;i0;i ){ int st=i%8; GPIOPinWrite(GPIO_PORTD_BASE, 0x0f,code[st]&0x0f); SysCtlDelay(80000); } } else if ((ReadData4&0x10)==0)//quay thuan 1/2 vong { for(i=200;i>0;i ){ int st=i%8; GPIOPinWrite(GPIO_PORTD_BASE, 0x0f,code[st]&0x0f); 22 Hệ điều khiển thời gian thực SVTH: Nhóm SysCtlDelay(80000); } } else if ((ReadData5&0x20)==0)//quay thuan 1/4 vong { for(i=100;i>0;i ){ int st=i%8; GPIOPinWrite(GPIO_PORTD_BASE, 0x0f,code[st]&0x0f); SysCtlDelay(80000); } } } void Timer_ISR(void) { TimerIntClear(TIMER2_BASE, TIMER_TIMA_TIMEOUT); // must clear timer flag FROM timer Swi_post(mtstep); } Các thành phần: HWI Timer tạo xung 500ms để post SWI SWI đươc gọi đọc ngõ vào Xét điều kiện cho motor quay 23 Hệ điều khiển thời gian thực IV Kết đánh giá Kết đạt SVTH: Nhóm Mạch điều khiển động bước hoạt động tốt, hoàn thành yêu cầu đề tài đặt Ưu điểm hạn chế: Ưu điểm: Phần cứng thiết kế theo dạng module nên dễ kiểm tra lỗi Mạch hoạt động nhanh xác Hạn chế: Lập trình phần mềm CCS hạn chế Phần cứng chưa tối ưu Đề nghị Cần nhiều thời gian để tìm hiểu ngôn ngữ CCS Kit Tiva C hoạt động động bước cách kết nối cần thiết để điều khiển động bước CÁM ƠN Nhóm xin chân thành cám ơn hướng dẫn nhiệt tình Thầy Nguyễn Khắc Nguyên hướng dẫn tận tình giúp đỡ nhóm chúng em trính thực đồ án Nhóm xin cám ơn bạn lớp đóng góp ý kiến giải thích chỗ chưa hiểu để thực đồ án TÀI LIỆU THAM KHẢO http://www.ti.com/tool/ek-tm4c123gxl http://www.ti.com/tool/CCSTUDIO http://www.payitforward.edu.vn/wordpress/tutorials/arm-cortex-m4/ 24 Hệ điều khiển thời gian thực SVTH: Nhóm BẢNG CÔNG VIỆC CỦA CÁC THÀNH VIÊN BUỔI 10 11 12 Thành viên nhóm Lý Trường Giang Có Có Có Có Có Có Có Có Có Có Có Có Tăng Vũ Hải Có Có Có Có Có Có Có Có Có Có Có Có Thiết kế mạch làm mạch thực tế: Thuyết trình: Bài báo cáo: Powerpoint: Viết code CCS: Nguyễn Trọng Minh Có Có Có Có Có Có Có Có Có Có Có Có Nguyễn Trọng Minh + Tăng Vũ Hải Lý Trường Giang Tăng Vũ Hải + Lý Trường Giang Nguyễn Trọng Minh Cả nhóm 25 [...]... Các bước xử lý trong hệ thống 3 Động cơ bước 3.1 Khái niệm 3.2 Động cơ bước là một thiết bị cơ - điện dùng để biến đổi xung điện một chiều thành chuyển động quay cơ học rời rạc Góc quay và tốc độ quay tương ứng với số xung và tần số xung điện cấp cho động cơ Mỗi vòng quay của trục động cơ được thiết lập bởi một số lượng hữu hạn các góc bước, là góc quay của roto mỗi khi stato bị đảo cực tính Cấu tạo Động. .. phép chúng quay khá nhanh và với một mô điều khiển thích hợp cho phép chúng khởi động và dừng lại ở bất kỳ vị trí nào ta muốn một cách dễ dàng Hình 14: Cấu tạo động cơ bước 3.3 Phân loại 3.4 Động cơ bước có thể được phân loại dựa theo cấu trúc hoặc cách quấn các cuộn dây trên stator • Dựa theo cấu trúc rotor, động cơ bước được chia thành 3 loại: - Động cơ bước từ trở biến thiên - Động cơ bước nam châm... cực tính Cấu tạo Động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ Động cơ bước có thể được mô tả như là một động cơ điện không dung chuyển mạch 12 Hệ điều khiển thời gian thực SVTH: Nhóm 1 Cụ thể, các mấu trong động cơ là rotor và stato là các nam châm vĩnh cửu hoặc trong trường hợp của động cơ biến từ trở nó là... đầu vào MẠCH BẢO VỆ (PC817) Đầu ra MẠCH BẢO VỆ nối từ chân 1 đến chân 4 của ULN2803 (mạch đệm dòng) Chân 15 đến chân 18 của ULN2803 nối với MOTOR BƯỚC 3 Thiết kế phần cứng 3.1 Phím nhấn Hình 17 Khối phím nhấn 15 Hệ điều khiển thời gian thực SVTH: Nhóm 1 Chức năng: A1 quay thuận một vòng A2 quay nghịch một vòng A3 quay nghịch 900 A4 quay thuận 1800 3.2 Led đơn Hình 18 Khối hiển thị Sử dụng 4 led đơn. .. góc bước nhỏ hơn Ưu điểm và nhược điểm Ưu điểm: - Khi dùng động cơ bước không cần mạch phản hồi cho điều khiển vị trí và vận tốc - Thích hợp với các thiết bị điều khiển số với khả năng điều khiển số trực tiếp - Dễ dàng điều khiển khởi động, dừng và đảo chiều quay - Không có chổi than nên làm việc tin cậy Nhược điểm - Cộng hưởng sẽ xảy ra khi điều khiển không đúng cách - Công suất thấp 13 Hệ điều khiển... trên SWI có 2 quá trình, swi_ a (p1) và swi_ b (p2) có độ ưu tiên cao hơn 11 Hệ điều khiển thời gian thực SVTH: Nhóm 1 Khởi đầu swi_ a đang ở trạng thái running và sau đó Hwi yêu cầu một ngắt swi_ post (swi_ b) Khi nhận được yêu cầu ngắt từ Hwi thì lập tức swi_ b từ trạng thái ready chuyển sang trạng thái running Trong khi đó swi_ a đang ở hàng đợi sẵn sàng, khi tiến trình swi_ b kết thúc thì swi_ a sẽ quay. .. nam châm vĩnh cửu - Động cơ bước lai • Dựa theo các quấn dây trên stator, động cơ bước được chia thành 2 loại: - Động cơ bước đơn cực - Động cơ bước lưỡng cực Ngoài ra, các loại này còn rơi vào một trong hai phương pháp cấu tạo Trong phương pháp thứ nhất, rotor có các răng bình thường Stator có các răng tượng tự để giữ các cuộn dây Trong phương pháp thứ hai, mặt răng của rotor và stator có nhiều răng... tính theo mã nhị phân để hiển thị số vòng quay của motor bước Ví dụ: 0001: giá trị mặc định 0010: hiển thị mã nhị phân giá trị là 2 0011: hiển thị mã nhị phân giá trị là 3 16 Hệ điều khiển thời gian thực 3.3 SVTH: Nhóm 1 Mạch bảo vệ Hình 19 Khối mạch bảo vệ 3.4 Chức năng: để bảo vệ kit Tiva C Mạch đệm dòng Hình 20 Khối đệm dòng Chức năng: đệm dòng cho motor bước 17 Hệ điều khiển thời gian thực 4 SVTH:... hơn để tìm hiểu về ngôn ngữ CCS trên Kit Tiva C cũng như hoạt động của động cơ bước và các cách kết nối cần thiết để điều khiển được động cơ bước CÁM ƠN Nhóm xin chân thành cám ơn sự hướng dẫn nhiệt tình của Thầy Nguyễn Khắc Nguyên đã hướng dẫn tận tình và giúp đỡ nhóm chúng em trong quá trính thực hiện đồ án Nhóm cũng xin cám ơn các bạn trong lớp đã đóng góp ý kiến và giải thích những chỗ chưa hiểu. .. Timer tạo xung 500ms để post SWI SWI khi đươc gọi thì đọc các ngõ vào Xét điều kiện cho motor quay 23 Hệ điều khiển thời gian thực IV Kết quả đánh giá 1 Kết quả đạt được SVTH: Nhóm 1 Mạch điều khiển động cơ bước hoạt động tốt, hoàn thành yêu cầu đề tài đặt ra 2 Ưu điểm và hạn chế: Ưu điểm: Phần cứng được thiết kế theo dạng module nên dễ kiểm tra lỗi Mạch hoạt động nhanh và chính xác Hạn chế: Lập trình ... 24 Hệ điều khiển thời gian thực SVTH: Nhóm TÌM HIỂU SWI VÀ ĐỘNG CƠ BƯỚC HIỂN THỊ SỐ VÒNG QUAY QUA LED ĐƠN Mục tiêu: Trong điều khiển chuyển động kỹ thuật số, động bước cấu chấp hành đặc... nhấn 15 Hệ điều khiển thời gian thực SVTH: Nhóm Chức năng: A1 quay thuận vòng A2 quay nghịch vòng A3 quay nghịch 900 A4 quay thuận 1800 3.2 Led đơn Hình 18 Khối hiển thị Sử dụng led đơn tính theo... rotor, động bước chia thành loại: - Động bước từ trở biến thiên - Động bước nam châm vĩnh cửu - Động bước lai • Dựa theo quấn dây stator, động bước chia thành loại: - Động bước đơn cực - Động bước