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

Đề Tài Điều Khiển Động Cơ Thông Qua Ghép Nối Máy Tính

30 579 0

Đ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 30
Dung lượng 0,94 MB
File đính kèm File Chương Trình Kèm Theo.rar (48 KB)

Nội dung

Trong bài này chúng em chỉ đề cập đến phương pháp truyền không đồng bộ dị bộ Khác với cách truyền đồng bộ, truyền thông “không đồng bộ” chỉ cần một đườngtruyền cho một quá trình.. Ví dụ

Trang 1

Lời mở đầu

Sự phát triển của khoa học kỹ thuật ngày càng góp phần nâng cao năng suất lao động đặc biệt là sự ra đời và phát triển của công nghệ mới nhằm tạo ra sự tự động hoá sự tiện lợi trong xã hội cũng như trong công nghiệp.

Với phần ứng dụng của động cơ điện đã tạo lên một nền công nghiệp tự động hoá phát triển mạnh mẽ và rực rỡ như ngày nay Được ứng dụng trên các băng truyền, dây truyền sản xuất, trên những Robot, động cơ điện tạo ra những sự chuyển động nhịp nhàng chính xác Với những ứng dụng to lớn ấy đòi hỏi chúng ta luôn tìm cách phát triển làm chủ công nghệ điều khiển động cơ để ứng dụng vào thực tế mang lại hiệu quả và tính chính xác cao

Với tư cách là những sinh viên, những thế hệ đi sau được kế thừa những thành quả công nghệ tiên tiến, với mong muốn luôn phát triển những thành quả công nghệ đó để góp phần đưa khoa khoa học kỹ thuật tự động hoá vào phục vụ

đời sống của con người Chúng em đã được tìm hiểu và thực hiện đề tài “Điều

khiển động cơ thông qua ghép nối máy tính”

Chúng em thực hiện đề tài này, vì thời gian có hạn vẫn còn nhiều thiếu sót mong các thầy cô giáo đóng góp ý kiến để sản phẩm của chúng em được hoàn thiện hơn

Trang 2

Mục Lục

PHẦN A: LÝ THUYẾT:

1 Giới thiệu cổng COM

2 Giới thiệu Modul truyền thông UASR trên ATmega8

3 Giới thiệu phương thức điều chế PWM

Trang 3

PHẦN A:

I GIỚI THIỆU ĐỀ TÀI:

1 THIẾT KẾ BỘ ĐIỀU KHIỂN ĐỘNG CƠ ĐIỆN 1 CHIỀU SỬ DỤNG CỔNG NỐI TIẾP

Yêu cầu đề tài:

100W

đảo chiều, phím Q để dừng động cơ

Ứng dụng thực tế:

- Sử dụng vi điều khiển họ AVR (atmega8)

+ Ghép nối máy tính bằng truyền thông nối tiếp không đồng bộ(UART)

+ Điều khiển động cơ bằng phương pháp điều chế độ rộng xung(PWM)

- Giao diện điều khiển viết bằng ngôn ngữ VB6.0

Trang 4

II LÝ THUYẾT ÁP DỤNG:

1 CỔNG TRUYỀN THÔNG NỐI TIẾP (COM):

Cổng truyền thông nối tiếp COM hay còn gọi là cổng R232 thể hiện trên máy tínhbằng hai chuẩn, chuẩn 9 chân và chuẩn 25 chân Hầu hết các loại máy tính cá nhân đuợcchế tạo gần đây đều có một cổng chuẩn 9 chân hoặc bị bỏ đi vì nó cồng kềnh và làm việckém hiệu quả hơn khi cổng USB ra đời Nhưng nó vẫn tồn tại vì vẫn còn nhiều thiết bịcần đến giao tiếp thông qua cổng này

Phổ biến nhất là loại cổng 9 chân

Hình dáng cổng COM 9 chân:

Mô tả tín hiệu các chân:

Sơ đồ sau mô tả cách thức chuyển đổi điện áp của hai tiêu chuẩn này

Trang 5

Bước chuyển đổi mức tín hiệu điện áp này thông qua IC max232:

Vì vậy ngoài gọi là cổng COM ra còn gọi là cổng 232

1.1 Phương thức truyền 232

Phương thức truyền 232 không đồng bộ chỉ thực hiện trên 2 dây tín hiệu, một tínhiệu truyền(TXD) và một tín hiệu nhận(RXD) Trong một thời điểm có thể sảy ra cảtruyền cả nhận (gọi là song công), trong một thời điểm mà chỉ có nhiệm vụ được thựchiện hoặc truyền hoặc nhận(gọi là đơn công)

Ngoài ra nếu sử dụng phương pháp truyền đồng bộ thì phải có thêm một tìn hiệuxung nhịp để đồng bộ khoảng thời gian Nghĩa là cứ mỗi lần máy tính muốn truyền 1 bit

dữ liệu, thì nó sẽ điều khiển đường xung nhịp chuyển từ mức thấp lên mức cao báo choVĐK sẵn sàng nhận một bit Bằng cách “báo trước” này tất cả các bit dữ liệu có thểtruyền/nhận dễ dàng với ít “rủi ro” trong quá trình truyền Tuy nhiên, cách truyền này đòihỏi ít nhất 2 đường truyền cho 1 quá trình, tốc độ truyền cũng bị hạn chế vì đòi hỏi bênnhận phải liên tục “quan sát” đường xung nhịp trước khi đọc bất kỳ bit dữ liệu nào Trong bài này chúng em chỉ đề cập đến phương pháp truyền không đồng bộ (dị bộ)

Khác với cách truyền đồng bộ, truyền thông “không đồng bộ” chỉ cần một đườngtruyền cho một quá trình “Khung dữ liệu” đã được chuẩn hóa bởi các thiết bị nên khôngcần đường xung nhịp báo trước dữ liệu đến Ví dụ Máy tính và VĐK đang giao tiếp vớinhau theo phương pháp này, chúng đã được thỏa thuận với nhau rằng cứ 1ms sau bit Sartthì sẽ có 1 bit dữ liệu truyền đến, như thế thiết bị nhận chỉ cần kiểm tra và đọc đườngtruyền mỗi mili-giây để đọc các bit dữ liệu và sau đó kết hợp chúng lại thành dữ liệu có ýnghĩa Truyền thông nối tiếp không đồng bộ vì thế nhanh và hiệu quả hơn truyền thôngđồng bộ Tuy nhiên, để quá trình truyền thành công thì việc tuân thủ các tiêu chuẩntruyền là hết sức quan trọng Ở đây tốc độ Baud là tiêu chuẩn quan trọng trong phươngpháp truyền không đồng bộ:

Trang 6

Tốc độ baud: Như ở trên đã nói muốn truyền nhận đúng thì cả truyền và nhận

phải đồng nhất khoảng cách thời gian giữa 2bit Theo định nghĩa, tốc độ baud là số bittruyền trong 1 giây Ví dụ nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bittruyền là 1/19200 ~ 52.083us

Khung truyền: Do truyền thông nối tiếp mà nhất là nối tiếp không đồng bộ rất dễ

mất hoặc sai lệch dữ liệu, quá trình truyền thông theo kiểu này phải tuân theo một số quycách nhất định Bên cạnh tốc độ baud, khung truyền là một yếu tốc quan trọng tạo nên sựthành công khi truyền và nhận Khung truyền bao gồm các quy định về số bit trong mỗilần truyền, các bit “báo” như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra sốlượng các bit trong một data cũng được quy định bởi khung truyền

Khung truyền này được bắt đầu bằng một start bit, tiếp theo là 8 bit data, sau đó là

1 bit parity dùng kiểm tra dữ liệu và cuối cùng là 1 bits stop

2 PHƯƠNG THỨC TRUYỀN THÔNG NỐI TIẾP UART TRÊN AVR:

Thuật ngữ USART trong tiếng anh là viết tắt của cụm từ: Universal Synchronous

& Asynchronous serial Reveiver and Transmitter, nghĩa là bộ truyền nhận nối tiếp đồng

bộ và không đồng bộ

Vi điều khiển Atmega8 có 1 module truyền thông nối tiếp USART Có 3 chânchính liên quan đến module này đó là chân xung nhịp - XCK (chân số 1), chân truyền dữliệu – TxD (Transmitted Data) và chân nhận dữ liệu – RxD (Reveived Data) Trong đóchân XCK chỉ được sử dụng như là chân phát hoặc nhận xung giữ nhịp trong chế độtruyền động bộ Tuy nhiên bài này chúng em không khảo sát chế độ truyền thông đồng

bộ, vì thế chỉ cần quan tâm đến 2 chân TxD và RxD Vì các chân truyền/nhận dữ liệu chỉđảm nhiệm 1 chức năng độc lập (hoặc là truyền, hoặc là nhận), để kết nối các chip AVRvới R232 (hoặc kết nối AVR với thiết bị hỗ trợ UART khác) chúng ta phải đấu “chéo” 2chân này TxD của thiết bị thứ nhất kết nối với RxD của thiết bị 2 và ngược lại ModuleUSART trên chip Atmega8 hoạt động “song công” (Full Duplex Operation), nghĩa là quátrình truyền và nhận dữ liệu có thể xảy ra đồng thời

Sơ đồ ghép nối truyên thông COM với ATMega8:

(COM)

TXD RXD GND

TXDRXDGND

TXD RXD

GND

Trang 7

2.1 Các thanh ghi của module UASRT:

Tất cả hoạt động và tráng thái của module USART được điều khiển và quan sátthông qua các thanh ghi trong vùng nhớ I/O Có 5 thanh ghi được thiết kế riêng cho hoạt

động và điều khiển của USART, đó là:

UDR: hay thanh ghi dữ liệu, là 1 thanh ghi 8 bit chứa giá trị nhận được và phát đi

của USART Thực chất thanh ghi này có thể coi như 2 thanh ghi TXB (Transmit dataBuffer) và RXB (Reveive data Buffer) có chung địa chỉ Đọc UDR thu được giá trị thanhghi đệm dữ liệu nhận, viết giá trị vào UDR tương đương đặt giá trị vào thanh ghi đệmphát, chuẩn bị để gởi đi Chú ý trong các khung truyền sử dụng 5, 6 hoặc 7 bit dữ liệu,các bit cao của thanh ghi UDR sẽ không được sử dụng

UCSRA (USART Control and Status Register A): là 1 trong 3 thanh ghi điều

khiển hoạt động của module USART

Thanh ghi UCSRA chủ yếu chứa các bit trạng thái như bit báo quá trình nhận kết thúc(RXC), truyền kết thúc (TXC), báo thanh ghi dữ liệu trống (UDRE), khung truyền có lỗi(FE), dữ liệu tràn (DOR), kiểm tra parity có lỗi (PE)

Một số bit quan trọng của thanh ghi này cần chú ý:

ghi dữ liệu UDR đang trống và sẵn sàng cho một nhiệm vụ truyền hay nhậntiếp theo Vì thế nếu muốn truyền dữ liệu đầu tiên phải kiểm tra xem bitUDRE có bằng 1 hay không, sau khi chắc chắn rằng UDRE=1 hãy viết dữliệu vào thanh ghi UDR để truyền đi

truyền so cao gấp 2 lần so với khi bit này mang giá trị 0

UCSRB (USART Control and Status Register B): đây là thanh ghi quan trọng

điều khiển USART Vì thế chúng ta sẽ khảo sát chi tiết từng bit của thanh ghi này

Các bit trong thanh ghi:

Trang 8

 RXCIE (Receive Complete Interrupt Enable) là bit cho phép ngắt khi quátrình nhận kết thúc Việc nhận dữ liệu truyền bằng phương pháp nối tiếpkhông đồng bộ thường được thực hiện thông qua ngắt, vì thế bit này thườngđược set bằng 1 khi USART được dung nhận dữ liệu.

 TXCIE (Transmit Complete Interrupt Enable) bit cho phép ngắt khi quátrình truyền kết thúc

 UDRIE (USART Data Register Empty Interrupt Enable) là bit cho phépngắt khi thanh ghi dữ liệu UDR trống

USART, đề kích hoạt chức năng nhận dữ liệu bạn phải set bit này lên 1

sẽ khởi động bộ phát của USART

 UCSZ2 (Chracter size) bit này kết hợp với 2 bit khác trong thanh ghiUCSRC quy định độ dài của dữ liệu truyền/nhận Chúng ta sẽ khảo sát chitiết khi tìm hiểu thanh ghi UCSRC

trong AVR có hỗ trợ truyền dữ liệu có độ dài tối đa 9 bit, trong khi thanhghi dữ liệu là thanh ghi 8 bit Do đó, khi có gói dữ liệu 9 bit được nhận, 8bit đầu sẽ chứa trong thanh ghi UDR, cần có 1 bit khác đóng vai trò bit thứchín, RXD8 là bit thứ chín này chúng ta cần chú ý là các bit được đánh số

từ 0, vì thế bit thứ chín sẽ có chỉ số là 8, vì lẽ đó mà bit này có tên là RXD8(không phải RXD9)

vai trò bit thứ 9 truyền thông, nhưng bit này được dung trong lúc truyền dữliệu

UCSRC: (USART Control and Status Register C): thanh ghi này chủ yếu quy

định khung truyền và chế độ truyền Tuy nhiên, có một rắc rối là thanh ghi này lại cócùng địa chỉ với thanh ghi UBRRH (thanh ghi chứa byte cao dùng để xác lập tốc độbaud), nói một cách khác 2 thanh ghi này là 1 Vì thế bit 7 trong thanh ghi này, tức bitURSEL là bit chọn thanh ghi Khi URSEL=1, thanh ghi này được chip AVR hiểu làthanh ghi điều khiển UCSRC, nhưng nếu bit URSEL=0 thì thanh ghi UBRRH sẽ được sửdụng

Trang 9

Các bit còn lại trong thanh ghi UCSRC :

 UMSEL (USART Mode Select) là bit lựa chọn giữa 2 chế độ truyền thôngđồng bộ và không đồng bộ Nếu UMSEL=0, chế độ không đồng bộ đượcchọn, ngược lại nếu UMSEL=1, chế độ đồng bộ được kích hoạt

 UPM1 và UPM0( Parity Mode) được dùng để quy định kiểm tra pariry.Nếu UPM1:0=00, parity không được sử dụng (mode này khá thông dụng),UPM1:0=01 không được sử dụng, UPM1:0=10 thì parity chẵn được dùng,UPM1:0=11 parity lẻ được sử dụng

Bảng sau thể hiện cách sử dụng bít kiểm tra(parity):

thể là 1 hoặc 2 bit, nếu USBS=0 thì Stop bit chỉ là 1 bit trong khi USBS=1

sẽ có 2 Stop bit được dùng

 Hai bit UCSZ1 và UCSZ2 (Character Size) kết hợp với bit UCSZ2 trong

tóm tắt các giá trị có thể có của tổ hợp 3 bit này và độ dài dữ liệu

Trang 10

 UCPOL (Clock Pority) là bit chỉ cực của xung kích trong chế độ truyềnthông đồng bộ nếu UCPOL=0, dữ liệu sẽ thay đổi thay đổi ở cạnh lên củaxung nhịp, nếu UCPOL=1, dữ liệu thay đổi ở cạnh xuống xung nhịp Nếu

sử dụng chế độ truyền thông không đồng bộ, hãy set bit này bằng 0

UBRRL và UBRRH: (USART Baud Rate Register): 2 thanh ghi thấp và caoquy định tốc độ baud

Thanh ghi UBRRH dùng chung địa chỉ thanh ghi UCSRC, ta phải set bit này bằng

0 nếu muốn sử dụng thanh ghi UBRRH Như quan sát trong hình trên, chỉ có 4 bit thấpcủa UBRRH được dùng, 4 bit này kết hợp với 8 bit trong thanh ghi UBRRL tạo thànhthanh ghi 12 bit quy định tốc độ baud Chú ý là nếu viết giá trị vào thanh ghi UBRRL, tốc

độ baud sẽ tức thì được cập nhật, vì thế phải viết giá trị vào thanh ghi UBRRH trước khiviết vào thanh ghi UBRRL Giá trị gán cho thanh ghi UBRR không phải là tốc độ baud,

nó chỉ được USART dùng để tính tốc độ baud

Trang 11

Sau đây là bảng tính tốc độ baud của USART dựa vào giá trị của thanh ghi UBRR:

Trong đó fOSC là tốc tần số xung nhịp của hệ thống (thạch anh hay nguồn xungnội…)

2.2 Cách sử dung module USART:

Thông thường, để sử dụng module USART trên AVR ta phải thực hiện 3 việcquan trọng, đó là: cài đặt tốc độ baud (thanh ghi UBRR), định dạng khung truyền(UCSRB, UCSRC) và cuối cùng kích hoạt bộ truyền, bộ nhận, ngắt…, Trong hầu hết cácứng dụng, tốc độ baud và khung truyền thường không đổi, trong trường hợp này chúng ta

có thể khởi tạo trực tiếp USART ở phần đầu trong main và sau đó chỉ cần truyền hoặcnhận dữ liệu mà không cần thay đổi các cài đặt Tuy nhiên, nếu trường hợp giao tiếp

“linh hoạt” ví dụ muốn chế tạo một thiết bị có khả năng giao tiếp với một thiết bị đầucuối khác (như máy tính chẳng hạn), lúc này ta nên cho phép người dùng thay đổi tốc độbaud hoặc các thông số khác để phù hợp với thiết bị đầu cuối Đối với những ứng dụngkiểu này nên viết 1 chương trình con để khởi động USART và có thể gọi lại nhiều lần khicần thay đổi

3 PHƯƠNG PHÁP ĐIỀU CHẾ ĐỘ RỘNG XUNG (PWM):

Trên vi điều khiển ATmega8 có các bộ Timer/Counte 0,1,2 (các bộ định thời )trong đề tài này chúng em sử dụng timer1 tạo ra xung PWM dùng để điều khiển động cơ.Nên chung em đi sâu vào các chế độ hoạt động và phương pháp điều chế độ rộng xung(Fast PWM) của timer counter1, ngoài ra những Timer/Counte và chế độ hoạt động kháctrong đề tài này sẽ không đề cập đến

3.1 Giới thiệu Timer/Counter1:

Là bộ định thời, đếm đa năng 16 bit Bộ Timer/Counter này có 5 chế độ hoạt độngchính Ngoài các chức năng thông thường, Timer/Counter1 còn được dùng để tạo ra xungđiều chế độ rộng PWM dùng cho các mục đích điều khiển Có thể tạo 2 tín hiệu PWM độc lập trên các chân OC1A (chân 15) và OC1B (chân 16) bằng Timer/Counter1 Các bộTimer/Counter kiểu này được tích hợp thêm khá nhiều trong các chip AVR khác

Trang 12

3.1.1 Các thanh ghi trong timer1:

TCNT1H và TCNT1L: (Timer/Counter Register): là 2 thanh ghi 8 bit tạo thành

thanh ghi 16 bits (TCNT1) chứa giá trị vận hành của Timer/Counter1 Cả 2 thanh ghi nàycho phép đọc và ghi giá trị một cách trực tiếp, Khi có một xung đưa vào thì giá trị của

thanh ghi này tăng lên một đơn vị Thanh ghi này chứa giá trị đếm từ 00x0 đến FFx0 trên

mỗi thanh ghi

khiển hoạt động của T/C1 Tất cả các mode hoạt động của T/C1 đều được xác định thôngqua các bit trong 2 thanh ghi này Tuy nhiên, đây không phải là 2 byte cao và thấp củamột thanh ghi mà là 2 thanh ghi hoàn toàn độc lập Các bit trong 2 thanh ghi này bao gồmcác bit chọn mode hay chọn dạng sóng (Waveform Generating Mode – WGM), các bitquy định dạng ngõ ra (Compare Output Match – COM), các bit chọn giá trị chia prescalercho xung nhịp (Clock Select – CS)…

Để khởi tạo các chế độ làm việc của timer/counter là rất nhiều sẽ đề cập ở phần khởi tạoxung PWM ở đây chúng ta thấy 3 bít quen thuộc là CS10, CS11 và CS12 Đây là các bitchọn xung nhịp cho T/C1, Thể hiện cách dùng 3bít này ở bảng sau:

OCR1A và OCR1B: (Ouput Compare Register A và B): Là 2 thanh ghi dùng để

so sánh của hai kênh A và B Trong lúc T/C hoạt động, giá trị thanh ghi TCNT1 tăng, giátrị này được liên tục so sánh với các thanh ghi OCR1A và OCR1B (so sánh độc lập vớitừng thanh ghi), việc so sánh này trên AVR gọi là gọi là Ouput Compare Khi giá trị so

Trang 13

sánh bằng nhau thì 1 “Match” xảy ra, khi đó một ngắt hoặc 1 sự thay đổi trên chân OC1A(hoặc/và chân OC1B) xảy ra (đây là cách tạo PWM bởi T/C1) Tại sao lại có A và B? Đó

là vì người thiết kế AVR muốn mở rộng khả năng ứng dụng T/C1 A và B đại diện cho 2kênh (channel)A và B Cũng vì điều này mà chúng ta có thể tạo 2 kênh PWM bằngT/C1 Tóm lại, cơ bản 2 thanh ghi này chứa các giá trị để so sánh

TIMSK: (Timer/Counter Interrupt Mask Register): Thanh ghi điều khiển ngắt

dùng khởi tạo các ngắt cho T/C

 TOIE1: bit quy định ngắt tràn cho thanh T/C1 (tương tự trường hợp của T/C0)

 OCIE1B: là bit cho phép ngắt khi có 1 “Match” xảy ra trong việc so sánhTCNT1 với OCR1B

 OCIE1A: là bit cho phép ngắt khi có 1 “Match” xảy ra trong việc so sánhTCNT1 với OCR1A

 TICIE1:là bit cho phép ngắt trong trường hợp Input Capture được dùng

Các chế độ hoạt động của T/C1được khởi tạo từ thanh ghi điều khiển TCCR1A và

TCCR1B thể hiện ở bảng sau:

Trang 14

3.1.2 Nguyên lý hoạt động của chế độ (Fast PWM)

Trong chế độ Fast PWM, 1 chu kỳ được tính trong 1 lần đếm từ BOTTOM lênTOP (single-slope), vì thế mà chế độ này gọi là Fast PWM (PWM nhanh) Việc xác lậpchế độ hoạt động cho Fast PWM thực hiện thông qua 4 bit WGM và các bit chọn dạngxung ngõ ra, Compare Output Mode trong thanh ghi TCCR1A Như trên đã nói Chúng tachỉ sử dụng chế độ (Fast PWM) để điều khiển động cơ, Theo bảng trên chúng ta sẽ khởitạo thanh ghi điều khiển TCCR1A và TCCR1B ở Model5

Vậy khởi tạo giá trị 2 thanh TCCR1A và TCCR1B như sau:

Khi hoạt động thanh ghi TCNT1 tăng giá trị từ 0, giả sử các bit phụ COM1A=1,COM1A0=0, lúc này trạng thái của chân OC1A (chân 15) là HIGH (5V), khi TCNT1tăng đến bằng giá trị của thanh ghi OCR1A thì chân OC1A được xóa về mức LOW (0V),thanh ghi đếm TCNT1 vẫn tiếp tục tăng đến khi nào nó bằng giá trị TOP là FF thìTCNT1 tự động reset về 0 và chân OC1A trở về trạng thái HIGH, cái này gọi là “ClearOC1A/OC1B on Compare Match, set OC1A/OC1B at TOP”

Hình dưới mô tả cách tạo xung PWM trên chân OC1A ở mode 5.

COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10

ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10

Trang 15

OCR1A TOP=0xFF BOTTOM =0x00

Chân OC1A

Ngày đăng: 30/09/2016, 10:46

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w