1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn

25 1,1K 6

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 1,37 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn

Trang 1

MỤC LỤC

I Cơ sở lý thuyết 3

1 Tìm hiểu về RTOS 3

1.1 RTOS là gì ? 3

1.1.1 Hệ thống thời gian thực (Real time System): 3

1.1.2 Thời gian thực cứng (Hard Real-time) và thời gian thực mềm (Soft Real- Time): 3

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 trong RTOS: 4

1.2.1 Bộ lịch trình (Scheduler): 4

1.2.2 Bộ điều phối (Dispatcher): 6

1.2.3 Các đối tượng (Objects) trong RTOS: 7

1.3 Định nghĩa Tasks: 8

1.3.1 Task hệ thống (System Task): 8

1.3.2 Các trạng thái của một Task: 9

1.3.3 Cấu trúc của một Task: 10

2 Tìm hiểu về SWI 10

2.1 Định nghĩa SWI 10

2.2 Độ ưu tiên SWI trong 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í trong hệ thống 12

3 Động cơ bước 12

3.1 Khái niệm 12

3.3 Phân loại 13

3.4 Ưu điểm và nhược điểm 13

4 Giới thiệu về Kit Launchpad dùng vi điều khiển TivaC 14

II Thiết kế 15

1 Sơ đồ khối 15

2 Kết nối phần cứng 16

3 Thiết kế phần cứng 16

3.1 Phím nhấn 15

Trang 2

2

3.2 Led đơn 17

3.3 Mạch bảo vệ 17

3.4 Mạch đệm dòng 18

4 Phần mềm CCS 18

III Code điều khiển 18

IV Kết quả đánh giá 24

1 Kết quả đạt được 24

2 Ưu điểm và hạn chế: 24

3 Đề nghị 24

TÀI LIỆU THAM KHẢO 24

Trang 3

TÌM HIỂU SWI VÀ ĐỘNG CƠ BƯỚC HIỂN THỊ

SỐ VÒNG QUAY QUA LED ĐƠN

1.1 RTOS là gì ?

1.1.1 Hệ thống thời gian thực (Real time System):

 Thời gian (Time) :

 Sự chính xác của hệ thống không chỉ phụ thuộc vào kết quả tính toán logic mà còn phụ thuộc vào thời gian cho ra kết quả

 Thực (Real):

 Đáp ứng của hệ thống với những sự kiện bên ngoài

 Thời gian thực (Real-Time):

 Phải đảm bảo các yếu tố:

 Đáp ứng nhanh

 Dự đoán được

 Các tác vụ (Real-time Task) được xác định bằng deadline

 Deadline là thời gian tối đa một 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) và thời gian thực mềm (Soft Real-Time):

Trang 4

4

 Thời gian thực cứng:

 Một tác vụ là thời gian thực cứng nếu như thời gian tính toán vượt quá deadtime có thể gây ra sự phá vỡ môi trường điều khiển

 Thời gian thực mềm:

 Một tác vụ là thời gian thực mềm nếu như đảm bảo thực thi trong deadtime cho phép và nếu như không đảm bảo thì sẽ không tạo ra những nguy hại nào đáng kể cho hệ thống và không làm ảnh

hưởng đến sự ứng xử của hệ thống

1.1.3 Định nghĩa hệ điều hành thời gian thực RTOS:

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 những nền tảng cơ bản để phát triển các ứng dụng trên nó

 Đối tượng (Object):

Là những cấu trúc đặc biệt (Kernel) giúp người lập trình tạo ra các ứng dụng

Trang 5

 Là một phần vô cùng quan trọng của lõi hệ thống điều khiển (Operating System Kernel)

 Nó giúp xác định tác vụ (task) nào sẽ dành quyền CPU để thực thi tiếp theo Sau đó, nó thực hiện việc chuyển trạng thái (context switching) được thực hiện bằng bộ điều phối (dispatcher)

Hình 3: Chuyển đổi trạng thái (Context Switching)

 Trạng thái (ngữ cảnh) của tác vụ (Task)

 Mỗi task có một trạng thái riêng của nó, nó chính là trạng thái của những thanh ghi (registers)

 Mỗi thời điểm 1 task mới được tạo ra, kernel sẽ tạo ra và lưu giữ một block điều khiển liên quan đến task đó (TCBs) TCBs là những cấu trúc dữ liệu hệ thống mà kernel dùng để lưu trữ những thông tin đặc trung của task TCBs chứa mọi thứ mà một kernel cần

để biết về một task cụ thể nào đó Khi task đnag chạy, trạng thái của

nó là động Trạng thái động này được lưu trữ trong TCB Khi task không còn chạy nữa, trạng thái sẽ bị đóng băng (frozen) trong TCB,

và được sử dụng cho lần thực thi tiếp theo của task

 Công tắc chuyển đổi trạng thái (Context Switch):

 Sẽ xảy ra khi bộ lịch trình (scheduler) chuyển từ một trạng thái này sang một 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 để cho bộ lịch trình chuyển từ task này sang task khác

Nó không có liên quan nào đến các lệnh thực hiện trong task Nếu một ứng dụng được thiết kế mà xảy ra chuyển đổi trạng thái thường xuyên thì có thể dẫn đến những 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 ra ít chuyển đổi trạng thái nhất

 Khi nào chuyển đổi xảy ra:

Mỗi khi ứng dụng tạo một lời gọi hệ thống (System Call), bộ lịch trình sẽ xác định rằng có cần chuyển đổi trạng thái hay không Khi bộ lịch trình xác định việc chuyển đổi là cần thiết thì sẽ gọi bộ phân phối (dispatcher) để thực hiện việc chuyển đổi

Trang 6

6

 Ví dụ: Khi bộ thực thi của Kernel xác định cần dừng việc thực thi Task 1 để chuyển qua trạng Task 2 thì nó sẽ thực thi theo các bước sau: Kernel sẽ lưu thông tin trạng thái của Task 1  Load thông tin trạng thái của Task 2, Task 2 trở thành luổng (thread) thực thi hiện tại Trạng thái chuyển đổi của Task 1 sẽ được đóng bang trong khi Task 2 đang được thực thi, nhưng nếu như bộ chuyển đổi xác định cần chạy lại Task 1 thì Task 1 sẽ quay lại vị trí ngay trước khi nó bị chuyển đổi

Hình 4: Ví dụ về Contex Switch

1.2.2 Bộ điều phối (Dispatcher):

 Dòng thực thi (Flow of Execution):

Tại bất kì thời điểm nào RTOS đang chạy, dòng thực thi sẽ chuyển đến 3 vùng: đến các Task ứng dụng (application Task), đến một chương trình phục vụ ngắt (ISR), hoặc đến Kernel

 Khi nào bộ phân phối được thực hiên:

 Khi một Task hoặc ISR tạo một lời gọi hệ thống, dòng điều khiển sẽ chuyển đến Kernel để thực thi một trong số những thủ tục được cung cấp bởi Kernel

 Khi rời khỏi Kernel, dispatcher sẽ có trách nhiệm là chuyển lệnh điều khiển đến một trong số những Task ứng dụng

Hình 5: Điều phối từ một Task

Trang 7

 Cách thực hiện như sau:

 Không cần thiết để chuyển toàn bộ lệnh điều khiển đến cùng một task gọi System Call Điều này sẽ được xác định bằng giải thuật phân chia thời gian biểu (scheduling algorithms) của bộ lịch trình (scheduler)

 Chuyển đổi thực thi từ một Task

 Tùy thuộc vào cách truy cập vào Kernel như thế nào mà dispatching sẽ xãy ra khác nhau Khi một Task thực hiện một lời gọi

hệ thống, dispatcher sẽ được sử dụng để thoát khỏi Kernel mỗi khi Lời gọi hệ thống được hoàn thành Trong trường hợp này, dispatcher được dùng như một lời gọi của lời gọi (call-by-call basic) để nó có thể hỗ trợ cho việc chuyển đổi trạng thái của Task Bất kì Task nào cũng có thể gọi system call Một hay nhiều Task có thể ở trạng thái sắn sàng cho thực thi

 Chuyển đổi thực thi từ 1 chương trình phục vụ ngắt (ISR):

Hình 6: Điều phối từ một ISR

 Khi một ISR tạo một System Call, Dispatcher sẽ bị bỏ vô hiệu hóa cho đến khi ISR thưc thi xong Quá trinh này sẽ đúng miễn

là có đủ tài nguyên để chuyển đổi giữa các Task Chuyển đổi trạng thái này sẽ không được diễn ra bởi vì ISR phải được thực thi xong

mà không được ngắt bởi các Tasks Sau khi ISR thực thi xong, Kernel sẽ thoát đến dispatcher để có thể điều phối đến đúng task thực thi tiếp theo

1.2.3 Các đối tượng (Objects) trong RTOS:

Trang 8

8

Là một kiểu cấu trúc dữ liệu được dùng để đồng bộ hóa hoặc trao đổi thông tin giữa các Tasks

 Real-time embedded applications:

Là sự kết nối giữa các đối tượng của Kernel để giải quyết vấn

đề thời gian thực như sự đồng thời, sự đồng bộ, và trao đổi dữ liệu

1.3 Định nghĩa Tasks:

Hình 7: Sơ đồ cấu trúc của một Task cơ bản

 Task là một luồng thực thi độc lập mà có thể cạnh tranh chiếm quyền thực thi Một ứng dụng được chia ra làm nhiều Tasks đồng thời (Concurrent Task) để tối ưu khả năng đáp ứng vào ra trong luật thời gian

 Một Task được định nghĩa thuần túy là một tập các tham số và cấu trúc dữ liệu

 Các thành phần của một Task:

Khi được tạo ra, Task sẽ có tên, ID duy nhất, độ ưu tiên, một block điều khiển Task (TCB), Stack, và các thủ tục thực thi Task

1.3.1 Task hệ thống (System Task):

Bao gồm các Task sau:

 Task khởi tạo (Initialization or Startup Task)

Khởi tạo hệ thống và tạo task khởi động hệ thống

 Task “Rỗi” (Idle Task)

Idle Task chạy theo chu kì rỗi của hệ thống (idle cycles), được đặt ở độ ưu tiên thấp nhất

Thực thi một vòng lặp vô tận Idle task chắc chắn rằng bộ đếm chương trình luôn luôn có giá trị cho trong trường hợp không có task nào thực thi

Kernel cho phép các thao tác được cấu hình bời người dùng (developer) để chạy những yêu cầu đặc biệt: sleep mode

Trang 9

 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 các trường hợp lỗi hệ thống hoặc ứ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ú ý rằng các task hệ thống khác có thể được tạo ra trong quá trình khởi tạo, phụ thuộc vào các thành phần có trong Kernel

Hình 8: Các trạng thái của một Task

1.3.2 Các trạng thái của một Task:

 Trạng thái của một Task:

Tại bất kì một thời điểm, mỗi task tồn tại một trong số những trạng thái nhỏ bao gồm: Sẵn sàng (Ready), Đang thực thi (Running), hoặc Khóa (Blocked) Khi một hệ thống nhúng thời gian thực chạy, mỗi task thay đổi từ trạng thái này đến trạng thái khác theo quy luật logic của một trạng thái hữu hạn đơn giản (Finite state machine (FSM))

Về cơ bản, 3 trạng thái chính được sử dụng trong hầu hết các

hệ thống Kernel sử dụng phương pháp lịch trình thay thế (preemptive – scheduling)

Trang 10

10

1.3.3 Cấu trúc của một Task:

Hình 9: Hiện thực cấu trúc của một Task

 Chạy đến kết thúc Task (Run – to – completion Task)

Một ví dụ của Run – to – completion Task là 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 và tạo ra các dịch vụ, Tasks, và một số đối tượng của Kernel

 Vòng vô tận Task (Enless-Loop Task)

Một cấu trúc Enless-Loop Task bao gồm cả phần code khỏi tạo nhưng phần khởi tạo chỉ cần một lần, sau đó sẽ là vòng lặp vô tận

Một thành phần không thể thiếu của vòng lặp vô tận là một hay nhiều blocking call nẳm trong vòng lặp Những blocking call này cho phép các Task có độ ưu tiên thấp hơn có thể chạy được

2.1 Định nghĩa SWI

SWI (software interrupt) là một ngắt gây ra bởi phần mềm, thường là

bằng một chương trình trong chế độ người dùng

2.2 Độ ưu tiên SWI trong hệ thống

Trang 11

Hình 10: Độ ưu tiên SWI trong hệ thống

CPU chỉ thực hiện một lệnh ở một thời điểm nên nó chỉ có thể tạm ngưng việc thực thi một tiến trình đang chạy để thực thi một tiến trình khác rồi sau đó quay trở về thực thi tiếp tiến trình đang bị tạm ngưng

Khi một ngắt xuất hiện, việc thực thi trương trình chính tạm thời bị dừng

và CPU thực hiện rẽ nhánh đến trình phục vụ ngắt ISR Ta có thể nói chương trình chính được thực thi ở mức nền còn ISR được thực thi ở mức ngắt

Mỗi một nguyên nhân dẫn đến ngắt phải được thông qua thanh 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 hơn sẽ được phục vụ trước nhờ thanh ghi IP (interrupt priority)

2.3 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 đồ dưới đây cho thấy độ ưu tiên được sắp xếp theo thứ tự tăng dần từ dưới lên trên với Hwi có ưu tiên cao nhất

Trong hình trên SWI có 2 quá trình, swi_a (p1) và swi_b (p2) có độ ưu tiên cao hơn

 Thời gian xử lí linh hoạt

 Thường ở “tỉ lệ khung hình”

 Chu kỳ là mini giây

 Mức độ ưu tiên

Trang 12

12

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 về trạng thái running

Hình 12: Kỹ thuật FIFO Chiến lược FIFO: CPU được cấp phát cho tiến trình đầu tiên trong danh sách sẵn sàng có yêu cầu, và chỉ được giải phóng khi tiến trình đó tự nguyện hoặc có một yêu cầu xuất nhập

Sau khi Hwi gửi yêu cầu ngắt swi_post (swi_b) thì CPU được trả lại cho swi_a (p1), trong khi đó swi_b vẫn ở trạng thái ready và chờ đến khi swi_a thực hiện xong thì swi_b mới chuyển sang trạng thái running

ứ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

3.2 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

INT! Hard R/T Process Post Swi Cleanup, RET

Swi Ready Continue Processing

Trang 13

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à những khối răng làm bằng vật liệu nhẹ có từ tính, cho 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

Độ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 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 nhỏ hơn Ưu điểm của răng nhỏ này là tạo ra các góc

- 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

Trang 14

14

Tiva™ C Series TM4C123G LaunchPad Evaluation Board là nền tảng dành cho ARM® Cortex™-M4F Sử dụng chip TM4C123GH6PMI với tính năng hỗ trợ USB 2.0, chế độ ngủ đông, module điều xung (MC PWM) Trên kit

có các nút nhấn, LED RGB, dễ dàng nạp và debug chương trình với CCS hoặc IAR

Một số tính năng cơ 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 các thiết bị chuyển mạch (ứng dụng/Wake)

 Có sẵn I/O đưa ra tiêu đề trên một 0.1-in (2,54-mm) lưới

 Chuyển đổi-lựa chọn nguồn điện:

Hình 15: KIT Tiva C Launchpad

Trang 15

II Thiết kế

Hình 16 Sơ đồ khối

KEY nối từ port PA2 đến PA5 của Kit Tiva C

LED ĐƠN nối từ port PC4 đến PC7 của 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 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.1 Phím nhấn

Ngày đăng: 18/11/2015, 16:08

HÌNH ẢNH LIÊN QUAN

Hình 2: Các đối tượng trong RTOS - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 2 Các đối tượng trong RTOS (Trang 4)
Hình 4: Ví dụ về Contex Switch - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 4 Ví dụ về Contex Switch (Trang 6)
Hình 5: Điều phối từ một Task - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 5 Điều phối từ một Task (Trang 6)
Hình 7: Sơ đồ cấu trúc của một Task cơ bản. - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 7 Sơ đồ cấu trúc của một Task cơ bản (Trang 8)
Hình 10: Độ ưu tiên SWI trong hệ thống - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 10 Độ ưu tiên SWI trong hệ thống (Trang 11)
Hình 11: Quy tắc lập lịch trình  Biểu đồ dưới đây cho thấy độ ưu tiên được sắp xếp theo thứ tự tăng dần từ  dưới lên trên với Hwi có ưu tiên cao nhất - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 11 Quy tắc lập lịch trình Biểu đồ dưới đây cho thấy độ ưu tiên được sắp xếp theo thứ tự tăng dần từ dưới lên trên với Hwi có ưu tiên cao nhất (Trang 11)
Hình 12: Kỹ thuật FIFO  Chiến  lược  FIFO:  CPU  được  cấp  phát  cho  tiến  trình  đầu  tiên  trong  danh  sách sẵn sàng có  yêu cầu, và chỉ được giải phóng khi tiến trình đó tự nguyện  hoặc có một yêu cầu xuất nhập - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 12 Kỹ thuật FIFO Chiến lược FIFO: CPU được cấp phát cho tiến trình đầu tiên trong danh sách sẵn sàng có yêu cầu, và chỉ được giải phóng khi tiến trình đó tự nguyện hoặc có một yêu cầu xuất nhập (Trang 12)
Hình 14: Cấu tạo động cơ bước - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 14 Cấu tạo động cơ bước (Trang 13)
Hình 15: KIT Tiva C Launchpad - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 15 KIT Tiva C Launchpad (Trang 14)
Hình 16. Sơ đồ khối - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 16. Sơ đồ khối (Trang 15)
Hình 18. Khối hiển thị - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 18. Khối hiển thị (Trang 16)
Hình 20. Khối đệm dòng  Chức năng: đệm dòng cho motor bước. - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 20. Khối đệm dòng Chức năng: đệm dòng cho motor bước (Trang 17)
Hình 19. Khối mạch bảo vệ - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 19. Khối mạch bảo vệ (Trang 17)
Hình 21. Giao diện CCS (Code Composer Studio) - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
Hình 21. Giao diện CCS (Code Composer Studio) (Trang 18)
BẢNG CÔNG VIỆC CỦA CÁC THÀNH VIÊN - Tìm hiểu SWI và động cơ bước hiển thị số vòng quay qua LED đơn
BẢNG CÔNG VIỆC CỦA CÁC THÀNH VIÊN (Trang 25)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w