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

Đồ án truyền động điện

22 481 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Đồ án truyền động điện
Tác giả Đoàn Minh Huy
Người hướng dẫn Th.s Lê Tấn Cường
Trường học Trường Đại Học
Thể loại Đồ án
Năm xuất bản 2010
Thành phố Hồ Chí Minh
Định dạng
Số trang 22
Dung lượng 1,18 MB

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

Nội dung

Trong một số trường hợp chẳnghạn như các máy in thì thông tin đơn giản được lấy từ đường bus dữ liệu 8bít và được gửi đi tới bus dữ liệu 8 bít của máy in.. Đối với truyền thông nối tiếp

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:

1-2010

MSSV: 05111041

Trang 2

Giáo viên hướng dẫn

Trang 3

I DẪN NHẬP.

1 LÍ DO CHỌN ĐỀ TÀI.

Truyền dữ liệu không dây là một mảng lớn trong điện tử thông tin, dữliệu được truyền đi có thể là tương tự cũng có thể là số Trong truyền dữliệu không dây, hiệu quả nhất vẫn là truyền bằng sóng điện từ hay sóngRadio, bởi những ưu điểm là truyền ở khoảng cách xa, đa hướng, tần sốhoạt động cao

Hiện nay, truyền dữ liệu số được ứng dụng rất rộng rãi, nhất là tronglĩnh vực điều khiển, thông tin số Nhiều vi mạch hỗ trợ xử lý tín hiệukhông dây được sử dụng như PT2248, PT2249, PT9148, PT9149,PT2262, PT2272, HT640, HT648… Vấn đề đặt ra là các vi mạch này truyền

dữ liệu chỉ dành cho mục đích riêng là điều khiển thiết bị, thông tin đượctruyền đi đã được mã hoá sẵn, số bit dữ liệu truyền đi thấp, không phù hợpvới nhu cầu truyền dữ liệu hàng loạt và liên tục

Giải quyết vấn đề này, em tận dụng khả năng của vi điều khiển vềtruyền nhận dữ liệu nối tiếp nhờ vào bộ UART trong chíp Vi điều khiển cókhả năng thực hiện truyền thông đa xử lý rất thích hợp cho việc truyền dữliệu trong một hệ thống mạng không dây gồm nhiều bộ xử lý tớ

Đề tài xây dựng một hệ thống đơn giản gồm board phát dữ liệu vàboardthu dữ liệu Dữ liệu bên phát được mã hoá bằng vi điều khiển Một modulephát sẽ được nối vào vi điều khiển thực hiện điều chế ASK và phát dữ liệutới bên thu Bên thu thu nhận tín hiệu RF bằng một mạch thu siêu tái sinh,

dữ liệu thu được sẽ được vi điều khiển mã hoá và hiển thị qua led đơn

2 MỤC TIÊU.

Nghiên cứu được cách thức truyền dữ liệu nối tiếp của VĐK

Ứng dụng được module thu phát RF có sẵn

→ Từ đó thiết kế và thi công mạch chạy thành công

II CƠ SỞ CHUNG.

1 GIỚI THIỆU VỀ TRUYỀN THÔNG NỐI TIẾP.

Khi một bộ vi xử lý truyền thông với thế giới bên ngoài thì nó cấp dữliệu dưới dạng từng khúc 8 bít (byte) một Trong một số trường hợp chẳnghạn như các máy in thì thông tin đơn giản được lấy từ đường bus dữ liệu 8bít và được gửi đi tới bus dữ liệu 8 bít của máy in Điều này có thể làmviệc chỉ khi đường cáp bus không quá dài vì các đường cáp dài làm suygiảm thậm chí làm méo tín hiệu Ngoài ra, đường dữ liệu 8 bít giá thườngđắt Vì những lý do này, việc truyền thông nối tiếp được dùng để truyền dữliệu giữa hai hệ thống ở cách xa nhau hàng trăm đến hàng triệu dặm Hìnhdưới là sơ đồ truyền nối tiếp so với sơ đồ truyền song song

Trang 4

Đối với truyền thông nối tiếp thì để làm được các byte dữ liệuphải được chuyển đổi thành các bít nối tiếp sử dụng thanh ghi giao dịchvào - song song - ra -nối tiếp Sau đó nó có thể được truyền quan mộtđường dữ liệu đơn Điều này cũng có nghĩa là ở đầu thu cũng phải có mộtthanh ghi vào - nối tiếp - ra - song song để nhận dữ liệu nối tiếp và sau đógói chúng thành từng byte một Tất nhiên, nếu dữ liệu được truyền quađường thoại thì nó phải được chuyển đổi từ các số 0 và 1 sang âm thanh ởdạng sóng hình sin Việc chuyển đổi này thực thi bởi một thiết bị cótên gọi là Modem là chữ viết tắt của “Modulator/ demodulator” (điều chế/giải điều chế).

Khi cự ly truyền ngắn thì tín hiệu số có thể được truyền như nói ở trên,một dây dẫn đơn giản và không cần điều chế Tuy nhiên, để truyền dữ liệu

đi xa dùng các đường truyền chẳng hạn như đường thoại thì việc truyềnthông dữ liệu nối tiếp yêu cầu một modem để điều chế (chuyển các số 0 và 1

về tín hiệu âm thanh) và sau đó giải điều chế (chuyển tín hiệu âm thanh vềcác số 0 và 1)

Truyền thông dữ liệu nối tiếp sử dụng hai phương pháp đồng bộ

và dị bộ Phương pháp đồng bộ truyền một khối dữ liệu (các ký tự) tại cùngthời điểm trong khi đó truyền dị bộ chỉ truyền từng byte một Có thể viếtphần mềm để sử dụng một trong hai phương pháp này, những chương trình

có thể rất dài và buồn tẻ Vì lý do này mà nhiều nhà sản xuất đã cho ra thịtrường nhiều loại IC chuyên dụng phục vụ cho truyền thông dữ liệu nốitiếp Những IC này phục vụ như các bộ thu - phát dị bộ tổng hợp UART(Universal Asynchronous Receiver Transmitter) và các bộ thu - phát đồng -

dị bộ tổng hợp UBART (Universal Asynchronous Receiver Transmitter)

Trang 5

Truyền thông nối tiếp dị bộ và đóng khung dữ liệu

Dữ liệu đi vào ở đầu thu của đường dữ liệu trong truyền dữ liệu nóitiếp toàn là các số 0 và 1, nó thật là khó làm cho dữ liệu ấy có nghĩa là nếubên phát và bên thu không cùng thống nhất về một tệp các luật, một thủtục, về cách dữ liệu được đóng gói, bao nhiêu bít tạo nên một ký tự và khinào dữ liệu bắt đầu và kết thúc

Truyền thông dữ liệu nối tiếp dị bộ được sử dụng rộng rãi cho cácphép truyền hướng kỹ tự, còn các bộ truyền dữ liệu theo khối thì sử dụngphương phát đồng bộ Trong phương pháp dị bộ, mỗi ký tự được bố trí giữacác bít bắt đầu (start) và bít dừn (stop) Công việc này gọi là đóng gói dữliệu Trong đóng gói dữ liệu đối với truyền thông dị bộ thì dữ liệu chẳnghạn là các ký tự mã ASCII được đóng gói giữa một bít bắt đầu và một bítdừng Bít bắt đầu luôn luôn chỉ là một bít, còn bít dừng có thể là một hoặchai bít Bít bắt đầu luôn là bít thấp (0) và các bít dừng luôn là các bít cao (bít1) Ví dụ, hãy xét ví dụ trên hình 10.3 trong đó ký tự “A” của mã ASCII(8 bít nhị phân là 0100 0001) đóng gói khung giữa một bít bắt đầu và mộtbít dừng

Đóng khung một ký tự “A” của mã ASCII (41H) có tín hiệu

là 1 (cao) được coi như là một dấu (mark) , còn không có tín hiệu tức là 0 (thấp) thì được coi là khoảng trống (space) Lưu ý rằng phép truyền bắt đầu với start sau đó bít D0, bít thấp nhất LSB, sau các bít còn lại cho đến bít D7, bít cao nhất MSB và cuối cùng là bít dừng stop để báo kết thúc ký tự

“A”.

Trong truyền dữ liệu nếu dữ liệu có thể được vừa phát và vừa được thuthì gọi là truyền song công Điều này tương phản với truyền đơn côngchẳng hạn như các máy in chỉ nhận dữ liệu từ máy tính Truyền song công

có thể có hai loại là bán song công và song công hoàn toàn phụ thuộc vàotruyền dữ liệu có thể xảy ra đồng thời không? Nếu dữ liệu được truyềntheo một đường tại một thời điểm thì được gọi là truyền bán song công.Nếu dữ liệu có thể đi theo cả hai đường cùng một lúc thì gọi là song công toàn phần Tất nhiên, truyền song công đòi hỏi hai đường dữliệu (ngoài đường âm của tín hiệu), một để phát và một để thu dữ liệu cùng

Trang 6

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 AVR với nhau (hoặc kết nối AVR với thiết bị hỗ trợ UART khác) bạn phải đấu

“chéo” 2 châ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 Module USART trên chip Atmega32 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

Baud rate (tốc độ Baud): như trong ví dụ trên về việc truyền 1 bit trong 1ms, bạn thấy rằng để việc truyền và nhận không đồng bộ xảy ra thành công thì các thiết bị tham gia phải “thống nhất” nhau về khoảng thời dành cho 1 bit truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này gọi là tốc độ Baud Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây Ví dụ nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1/19200 ~ 52.083us

Frame (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ố quy cá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ỗi lầ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 Hình 1 là một ví dụ của một khung truyền theo UART, khung truyền này được bắt đầu bằng một start bit, tiếp

Trang 7

theo là 8 bit data, sau đó là 1 bit parity dùng kiểm tra dữ liệu và cuối cùng là 2 bits stop Start bit: start là bit đầu tiên được truyền trong một frame truyền, bit này có chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền tới Ở module USART trong AVR, đường truyền luôn ở trạng thái cao khi nghỉ (Idle), nếu một chip AVR muốn thực hiện việc truyền dữ liệu nó sẽ gởi một bit start bằng cách “kéo” đường truyền xuống mức 0 Như vậy, với AVR bit start là mang giá trị 0 và có giá trị điện áp 0V (với chuẩn RS232 giá trị điện áp của bit start là ngược lại) start là bit bắt buộc phải có trong khung truyền.

Data: data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gởi và nhận Data không nhất thiết phải là gói 8 bit, với AVR bạn có thể quy định số lượng bit của data

là 5, 6, 7, 8 hoặc 9 (tương tự cho hầu hết các thiết bị hỗ trợ UART khác) Trong truyền thông nối tiếp UART, bit có ảnh hưởng nhỏ nhất (LSB – Least Significant Bit, bit bên phải) của data sẽ được truyền trước và cuối cùng là bit có ảnh hưởng lớn nhất (MSB – Most Significant Bit, bit bên trái)

Parity bit: parity là bit dùng kiểm tra dữ liệu truyền đúng không (một cách tương đối) Có 2 loại parity là parity chẵn (even parity) và parity lẻ (odd parity) Parity chẵn nghĩa là số lượng số 1 trong dữ liệu bao gồm bit parity luôn là số chẵn Ngược lại tổng số lượng các số 1 trong parity lẻ luôn là số lẻ Ví dụ, nếu dữ liệu của bạn là 10111011 nhị phân, có tất cả 6 số 1 trong dữ liệu này, nếu parity chẵn được dùng, bit parity sẽ mang giá trị 0 để đảm bảo tổng các số 1 là số chẵn (6 số 1) Nếu parity lẻ được yêu cầu thì giá trị của parity bit là 1 Hình 1 mô tả ví dụ này với parity chẵn được sử dụng Parity bit không phải

là bit bắt buộc và vì thế chúng ta có thể loại bit này khỏi khung truyền (các ví dụ trong bài này tôi không dùng bit parity).

Stop bits: stop bits là một hoặc các bit báo cho thiết bị nhận rằng một gói dữ liệu đã được gởi xong Sau khi nhận được stop bits, thiết bị nhận sẽ tiến hành kiểm tra khung truyền để đảm bảo tính chính xác của dữ liệu Stop bits là các bits bắt buộc xuất hiện trong khung truyền, trong AVR USART có thể là 1 hoặc 2 bits (Trong các thiết bị khác Stop bits

có thể là 2.5 bits) Trong ví dụ ở hình 1, có 2 stop bits được dùng cho khung truyền.Giá trị của stop bit luôn là giá trị nghỉ (Idle) và là ngược với giá trị của start bit, giá trị stop bit trong AVR luôn là mức cao (5V).

(Chú ý và gợi ý: khung truyền phổ biến nhất là : start bit+ 8 bit

data+1 stop bit)

Sau khi nắm bắt các khái niệm về truyền thông nối tiếp, phần tiếp theo chúng ta sẽ khảo sát cách thực hiện phương pháp truyền thông này trên chip AVR (cụ thể là chip Atmega32).

Thanh ghi:

Cũng như các thiết bị khác trên AVR, tất cả hoạt động và tráng thái của module USART được điều khiển và quan sát thô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ểncủ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

Trang 8

ghi TXB (Transmit data Buffer) và RXB (Reveive data Buffer) cóchung địa chỉ Đọc UDR thu được giá trị thanh ghi đệm dữ liệu nhận,viết giá trị vào UDR tương đương đặt giá trị vào thanh ghi đệm phát,chuẩn bị để gởi đi Chú ý trong các khung truyền sử dụng 5, 6 hoặc 7bit 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ìnhnhậ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)…Bạn chú ý một số bit quan trọng của thanh ghi này:

* UDRE (USART Data Register Empty) khi bit bày bằng 1 nghĩa là thanh ghi

dữ liệu UDR đang trống và sẵn sàng cho một nhiệm vụ truyền hay nhận tiếptheo Vì thế nếu bạn muốn truyền dữ liệu đầu tiên bạ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

* U2X là bit chỉ định gấp đôi tốc độ truyền, khi bit này được set lên 1, tốc độtruyền so cao gấp 2 lần so với khi bit này mang giá trị 0

* MPCM là bit chọn chế độ hoạt động đa xử lí (multi-processor)

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ừngbit của thanh ghi này

* 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ếp khô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á

Trang 9

* TXEN (Transmitter Enable) là bit điều khiển bộ phát Set bit này lên 1 bạn

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 ghi

UCSRC quy định độ dài của dữ liệu truyền/nhận Chúng ta sẽ khảo sát chi tiếtkhi tìm hiểu thanh ghi UCSRC

* RXB8 (Receive Data Bit 8) gọi là bit dữ liệu 8 Bạn nhớ lại rằng USART trong AVR có hỗ trợ truyền dữ liệu có độ dài tối đa 9 bit, trong khi thanh ghi

dữ liệu là thanh ghi 8 bit Do đó, khi có gói dữ liệu 9 bit được nhận, 8 bit đầ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 Bạ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)

* TXB8 (Transmit Data Bit 8), tương tự như bit RXD8, bit TXB8 cũng đóng 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ốinho nhỏ 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áchkhá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 chipAVR hiểu là thanh ghi điều khiển UCSRC, nhưng nếu bit URSEL=0thì thanh ghi UBRRH sẽ được sử dụng

Các bit còn lại trong thanh ghi UCSRC được mô tả như sau:

* 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

* Hai bit UPM1 và UPM0( Parity Mode) được dùng để quy định kiểm trapariry Nếu UPM1:0=00, parity không được sử dụng (mode này khá thông

Trang 10

dụng), UPM1:0=01 không được sử dụng, UPM1:0=10 thì parity chẵn đượcdùng, UPM1:0=11 parity lẻ được sử dụng (xem thêm bảng 1).

Bảng 1: chọn kiểm tra parity

* USBS (Stop bit Select), bit Stop trong khung truyền bằng AVR USART có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 trongthanh ghi UCSRB tạo thành 3 bit quy định độ dài dữ liệu truyền Bảng 2 tómtắt các giá trị có thể có của tổ hợp 3 bit này và độ dài dữ liệu truyền tươngứng

Bảng 2: độ dài dữ liệu truyền

* 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 bạn

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àcao quy định tốc độ baud

Nhắc lại là thanh ghi UBRRH dùng chung địa chỉ thanh ghi UCSRC, bạnphải set bit này bằng 0 nếu muốn sử dụng thanh ghi UBRRH Như bạn quansát trong hình trên, chỉ có 4 bit thấp của UBRRH được dùng, 4 bit này kết

Trang 11

hợp với 8 bit trong thanh ghi UBRRL tạo thành thanh ghi 12 bit quy định tốc

độ baud Chú ý là nếu bạn viết giá trị vào thanh ghi UBRRL, tốc độ baud sẽtức thì được cập nhật, vì thế bạn phải viết giá trị vào thanh ghi UBRRH trướckhi viết vào thanh ghi UBRRL

Giá trị gán cho thanh ghi UBRR không phải là tốc độ baud, nó chỉ đượcUSART dùng để tính tốc độ baud Bảng 3 hướng dẫn cách tính tốc độ bauddựa vào giá trị của thanh ghi UBRR và ngược lại, cách tính giá trị cần thiếtgán cho thanh ghi UBRR khi đã biết tốc độ baud

Bảng 3: tính tốc độ baud

Trong các công thức trong bảng 3, fOSC là tốc tần số xung nhịp của hệthống (thạch anh hay nguồn xung nội…) Để tiện cho bạn theo dõi, tôi đínhkèm bảng ví dụ cách đặt giá trị cho UBRR theo tốc độ baud mẫu

III Nghiên cứu về các module phát thu RF

1 Khối thu, phát RF không có IC giải mã.

Mạch thu

Ngày đăng: 22/04/2014, 21:58

HÌNH ẢNH LIÊN QUAN

Bảng 2: độ dài dữ liệu truyền. - Đồ án truyền động điện
Bảng 2 độ dài dữ liệu truyền (Trang 10)
Bảng 3: tính tốc độ baud. - Đồ án truyền động điện
Bảng 3 tính tốc độ baud (Trang 11)
Sơ đồ mạch phát dung IC PT2262: - Đồ án truyền động điện
Sơ đồ m ạch phát dung IC PT2262: (Trang 15)

TỪ KHÓA LIÊN QUAN

w