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

Giao tiếp UART giữa máy tính và vi điều khiển full code

22 6K 30
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

Định dạng
Số trang 22
Dung lượng 679,13 KB

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

Nội dung

Giao tiếp UART giữa máy tính và vi điều khiển full code 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ộ. Cần chú ý rằng khái niệm USART (hay UART nếu chỉ nói đến bộ truyền nhận không đồng bộ) thường để chỉ thiết bị phần cứng (device, hardware), không phải chỉ một chuẩn giao tiếp. USART hay UART cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó. Ví dụ, chuẩn RS232 (hay COM) trên các máy tính cá nhân là sự kết hợp của chip UART và chip chuyển đổi mức điện áp. Tín hiệu từ chip UART thường theo mức TTL: mức logic high là 5, mức low là 0V. Trong khi đó, tín hiệu theo chuẩn RS232 trên máy tính cá nhân thường là 12V cho mức logic high và +12 cho mức low (tham khảo hình 1). Chú ý là các giải thích trong tài liệu này theo mức logic TTL của USART, không theo RS232.

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ VIỄN THÔNG



BÁO CÁO VI XỬ LÝ

Đề tài :Giao tiếp UART giữa máy tính và vi điều khiển

Giáo viên hướng dẫn:Thầy Nguyễn Hoàng Dũng

Sinh viên thực hiện:

Tào Tuấn Mạnh 20111842 ĐTTT 7 - K56Nguyễn Kim Nam 20101915 ĐTVT 5 - K55Đào Minh Ngọc 20111905 ĐTTT 9 - K56Nguyễn Văn Phòng 20113738 SPKT - K56

Hà Nội 5/2014

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU

Như chúng ta đã biết,vi xử lí có ứng dụng rất rộng rãi trong cuộc sống.Vi xử

lí là bộ xử lý trung tâm trong: máy tính (PC, Laptop, mini computer, super

computer), thiết bị smartphone, thiết bị nhúng, và đặc biệt trong công nghiệp ngành Điện - chuyên ngành tự động hóa: bộ điều khiển khả trình PLC và Vi điều khiển để ứng dụng điều khiển các dây chuyền, hệ thống tự động Để có sự phát triển mạnh mẽ như vậy,vi xử lí đã tiến hóa qua nhiều thế hệ,từ vi xử lí 4 bit thương mại đầu tiên Intel 4004 đến các vi xử lí hiện đại dùng cho máy tính cá nhân ngày nay như Intel Core i5,i7…Các mạch tích hợp trong các vi xử lí đời đầu chỉ chứa vào khoảng vài chục transistor,đến nay đã có thể tích hợp hàng triệu transistor.Sự tăng số lượng transistor tích hợp này tuân theo định luật Moore: sự phức tạp của một mạch tích hợp sẽ tăng lên gấp đôi sau mỗi chu kỳ 18 tháng.Đi cùng với đó là công suất tiêu thụ và giá thành các bộ vi xử lí giảm đáng kể

Phân loại theo chức năng,vi xử lí được chia thành:vi xử lí đa năng,DSP,vi

Trang 3

trong rất nhiều thiết bị trong đời sống như:đèn giao thông,máy giặt,điều hòa nhiệt độ…,vi xử lí được chia thành:vi xử lí đa năng,DSP,vi điều khiển,vi xử lí chuyên dụng ASIP.Trong đó vi điều khiển được sử dụng rộng rãi trong rất nhiều thiết bị trong đời sống như:đèn giao thông,máy giặt,điều hòa nhiệt độ…Với sự hướng dẫn của thầy Nguyễn Hoàng Dũng,nhóm chúng em đã tìm hiểu về họ vi điều khiển AVR của hãng Atmel để hoàn thành bài tập lớn với chủ đề :”Giao tiếp với máy tính bằng UART”

Trang 4

I / Giới thiệu chung về AVR

AVR là một họ vi điều khiển do hãng Atmel sản xuất.AVR là chip vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa-RISC(Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ưu thế trong các bộ xử lí

So với các chip vi điều khiển 8 bits khác, AVR có nhiều đặc tính hơn hẳn, hơn cả trong tính ứng dụng (dễ sử dụng) và đặc biệt là về chức năng:

• Gần như chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng AVR, thậm chí không cần nguồn tạo xung clock cho chip (thường là các khối thạch anh)

• Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ cần vài điện trở là có thể làm được một số AVR còn hỗ trợ lập trình on – chip bằng bootloader không cần mạch nạp…

• Bên cạnh lập trình bằng ASM, cấu trúc AVR được thiết kế tương thích C

• Nguồn tài nguyên về source code, tài liệu, application note…rất lớn trên internet

• Hầu hết các chip AVR có những tính năng sau:

- Có thể sử dụng xung clock lên đến 16MHz, hoặc sử dụng xung clock nội lên đến 8 MHz (sai số 3%)

- Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn, có SRAM (Ram tĩnh) lớn, và đặc biệt có bộ nhớ lưu trữ lập trình được EEPROM

- Nhiều ngõ vào ra (I/O PORT) 2 hướng (bi-directional)

- 8 bits, 16 bits timer/counter tích hợp PWM

- Các bộ chuyển đối Analog – Digital phân giải 10 bits, nhiều kênh

- Chức năng Analog comparator

- Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232)

Trang 5

- Giao diện nối tiếp Serial Peripheral Interface (SPI)

Để lập trình cho các vi xử lý này ta dùng các phần mềm như AVRstudio,

Trang 6

Port A (PA7 ÷ PA0)

XTAL1: Ngõ vào của bộ khuếch đại dao động đảo và mạch tạo xung nhịp bên trong

XTAL2: Ngõ ra của bộ khuếch đại dao động đảo

Trang 7

AVCC: là chân nguồn cung cấp cho Port A và bộ chuyển đổi A/D Nó nên được kết nối ngoài tới VCC, ngay khi nếu bộ ADC không được dùng Nếu bộ ADC được sử dụng thì nó được kết nối tới VCC thông qua một mạch lọc thông thấp.AREF: là chân tham chiếu cho bộ chuyển đổi A/D.

Hình 1 mô tả cấu trúc bộ nhớ của AVR

Hình 1: Cấu trúc bộ nhớ của AVR

II / Thiết kế mạch

1 / Phân tích yêu cầu đề tài

+ Đối với đề tài:” Giao tiếp với máy tính bằng UART”, nhóm chúng em đã tìm hiểu về cách thức giao tiếp giữa vi xử lí và máy tính này

a / UART (Universal Asynchronous serial Reveiver and Transmitter – Bộ truyền nhận nối tiếp không đồng bộ)

- UART thường để chỉ thiết bị phần cứng (device, hardware), không phải chỉ một chuẩn giao tiếp UART cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó

- Tín hiệu từ chip UART thường theo mức TTL: mức logic high là 5, mức low là 0V

Các khái niệm trong phương thức truyền thông này:

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

Trang 8

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 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

Trang 9

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)

(Khung truyền phổ biến nhất là : 1 start bit+ 8 bit data+1 stop bit)

b / Xác định đề tài

- Các vi điều khiển như Atmega 8,Atmega16… đã có sẵn module

UART.Có 2 chân liên quan đến module này là RxD(chân nhận dữ liệu) và TxD(chân truyền dữ liệu)

- Sau khi nhận đề tài và thảo luận,nhóm quyết định thực hiện đề tài:”Đo

và điều khiển đo nhiệt độ phòng và giao tiếp với máy tính bằng UART”

- Nhóm sử dụng cảm biến nhiệt độ để đo nhiệt độ phòng, rồi truyền số liệu nhận được bằng giao tiếp UART giữa vi điều khiển và máy tính

để hiện thị lên màn hình máy tính

2 / Xây dựng sơ đồ khối

Mạch của nhóm có sơ đồ khối tổng quan:

Trang 10

Hình 2: Sơ đồ khối tổng quan

3 / Thông số kĩ thuật từng khối

a / Khối nguồn

+ Mạch cần có nguồn nuôi là nguồn 5V DC

+ Để có nguồn nuôi ổn định,nhóm sử dụng adapter 9V – 1A và mạch sử dụng

IC LM7805 để có đầu ra là dòng 5V – 1A

Trang 11

c / Khối điều khiển

+ Có nhiều vi điều khiển AVR trên thị trường.Để phù hợp với chức năng của mạch,đồng thời tiết kiệm tiền bạc và tài nguyên bộ nhớ,nhóm quyết định chọn

vi điều khiển Atmega16

+ Để tiện cho việc nạp code,nhóm sử dụng chân nạp ISP

+ Vi điều khiển được tạo dao động với thạch anh 8Mhz và có nút bấm để Reset

d / Khối giao tiếp máy tính

Trong truyền thông với máy tính, chuẩn giao tiếp RS232 được sử dụng vì vậy cần kết nối với IC MAX232 để chuyển các mức điện áp thành chuẩn TTL.

Trang 12

e / Khối hiển thị

Sử dụng LCD 1602 để hiện thị nhiệt độ đo được và các kí tự nhận được từ máy tính

Trang 13

4 / Xây dựng sơ đồ nguyên lí toàn mạch

Trang 14

5 / Xây dựng sơ đồ mạch in toàn mạch

Trang 16

3 / Kết quả mô phỏng

LCD hiển thị nhiệt độ đo được và kí tự khi gõ kí tự từ bàn phím máy tính

Khi bấm kí tự e (quy ước để điểu khiển đo nhiệt độ) thì LM35 sẽ đo và cập nhật lại nhiệt độ ,hiển thị lên LCD

Trang 17

IV / Kết luận

Sau một thời gian học tập và nghiên cứu, nhóm chúng em đã hoàn thành bài tập lớn,mạch đã chạy được tuy nhiên còn nhiều hạn chế như trễ hơi lâu ,đôi khi LCD hiện không đúng chữ mong muốn.Nhóm chúng em mong nhận được nhiều góp ý

từ thầy

Tài liệu tham khảo:

• Giáo trình vi điều khiển AVR

• Kỹ thuật vi điều khiển AVR

• WEB: hocavr.com

Trang 19

// USART Mode: Asynchronous

// USART Baud Rate: 9600

sprintf(str,"Giao tiep UART \n");

puts(str); //Gui len may tinh chuoi ki tu DDTT07-K56

putchar(13);

sprintf(str,"Nhan phim e de cap nhat lai nhiet do hien thi LCD");

Trang 21

if (Data == 'e') goto F;

}

}

PHỤ LỤC 2: Bảng phân công công việc nhóm

Trang 22

3 Tìm hiểu chung AVR(tìm hiểu UART+xác định yêu

Viết Code9

10

15 Viết báo cáo

Ngày đăng: 21/07/2014, 12:04

HÌNH ẢNH LIÊN QUAN

Hình 1: Cấu trúc bộ nhớ của AVR - Giao tiếp UART giữa máy tính và vi điều khiển full code
Hình 1 Cấu trúc bộ nhớ của AVR (Trang 7)
Hình 2: Sơ đồ khối tổng quan - Giao tiếp UART giữa máy tính và vi điều khiển full code
Hình 2 Sơ đồ khối tổng quan (Trang 10)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w