1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx

8 477 13
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Điều Khiển Bằng Cổng Nối Tiếp
Tác giả Nguyễn Nhật Tân, Nguyễn Lê Tùng
Người hướng dẫn TS. Nguyễn Văn Giáp
Trường học Trường Đại Học Kỹ Thuật
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 8
Dung lượng 330,15 KB

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

Nội dung

9 ĐIỀU KHIỂN BẰNG CỔNG NỐI TIẾP 9.1 GIỚI THIỆU Ghép nối dùng qua cổng nối tiếp là một trong những kỹ thuật được dùng rộng rãi nhất để ghép nối, giao tiếp giữa các thiết bị với nhau..

Trang 1

9

ĐIỀU KHIỂN BẰNG

CỔNG NỐI TIẾP

9.1 GIỚI THIỆU

Ghép nối dùng qua cổng nối tiếp là một trong những kỹ thuật được dùng rộng rãi nhất để ghép nối, giao tiếp giữa các thiết bị với nhau Qua cổng nối tiếp có thể ghép nối chuột, modem, máy in, bộ biến đổi A/D, các thiết bị đo lường hoặc để giao tiếp giữa các chip, … Cách ghép nối này sử dụng phương pháp truyền thông theo kiểu nối tiếp, trong đó ở một thời điểm chỉ có 1 bit được gửi đi/nhận về trên một đường dẫn Đặc điểm này khác so với phương pháp truyền thông theo kiểu song song, trong đó nhiều bit được gửi đi đồng thời

Ưu điểm chính của kiểu truyền nối tiếp so với kiểu truyền song song là tiết kiệm dây dẫn, truyền đi được xa, khả năng chống nhiễu tốt hơn Nhưng lại có khuyết điểm là tốc độ truyền chậm hơn

Luận văn này dùng truyền thông nối tiếp để giao tiếp giữa máy PC với bộ phát hồng ngoại, và dùng để giao tiếp giữa AT89C2051 và AT90S2313 để điều khiển động cơ Chương này sẽ trình bày về cách thiết lập và phương pháp điều khiển cổng nối tiếp

9.2 GIAO TIẾP VỚI MÁY VI TÍNH

Máy tính được giao tiếp với vi xử lý AT89C2051 bằng chuẩn RS-232

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 2

9.2.1 Chuẩn giao tiếp RS-232

9.2.1.1 Các yêu kỹ thuật của chuẩn RS-232

Các yêu cầu về điện được qui định trong RS- 232C như sau:

+ Mức logic 1: nằm trong khoảng -3V÷ -12V

+ Mức logic 0: nằm trong khoảng +3V ÷ +12V

+ Trở kháng tải về phía bộ nhận của mạch phải lớn hơn 3000(Ω) và phải nhỏ hơn 7000(Ω)

+ Tốc độ truyền / nhận dữ liệu cực đại là 100 Kbit/giây

+ Các lối vào của bộ nhận phải có điện dung nhỏ hơn 2,500 pF

+ Độ dài của cáp nối giữa máy tính và thiết bị ghép nối qua cổng nối tiếp không được vượt quá 15m nếu không sử dụng modem

+ Các giá trị tốc độ truyền dữ liệu chuẩn là : 50, 75, 110, 150, 300, 600,

1200, 2400, 4800, 9600, 19200, 28800,…,56600, 115200 BAUD

9.2.1.2 Sơ đồ chân ra trên PC

Hầu hết các máy tính cá nhân được chế tạo gần đây đều có hai cổng nối tiếp RS-232, đôi khi có 3-4 cổng Cổng đầu tiên có tên là COM1 tiếp theo là COM2, COM3, COM4

Có hai kiểu đầu nối được sử dụng cho cổng nối tiếp RS-232 là loại 25 chân và 9 chân

P2

13 12 11 10 9

218

207

196

185

174

163

152

141

P1

5 4 3 2 1 RI

GND

GND

TXD CTS

DTR DCD

RI

RTS

DTR

RTS

RXD

RXD

DCD DSR DSR

CTS TXD

Hình 9.1 Sơ đồ chân của DB9 và DB25 của RS-232

Đối với đầu nối 25 chân, trong một số trường hợp có sử dụng chân số 1 để nối với vỏ kim loại của cáp truyền để hạn chế nhiễu, thông thường thì cáp truyền chỉ bọc nhựa Khi đó chân 1 sẽ được nối với đất mass của thiết bị, chân này khác với chân số 7 là chân mass của tín hiệu

Tiêu chuẩn RS- 232C qui định rõ việc sử dụng đầu nối thống nhất để tất cả các sản phẩm đều tương thích với nhau Cho nên thứ tự và chức năng của các chân đã được qui định rất cụ thể và phải tuân thủ một cách nghiêm ngặt

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 3

Bảng dưới đây chỉ ra tất cả các đường dẫn được nối với các chân trên DB9 và DB25

Bảng 9.1 Các chân và chức năng

1 -

FG Frame ground (đất vỏ máy)

-

Chân này thường được nối với vỏ bọc kim của dây cáp, với vỏ máy, với đai bao ngoài hoặc đất thật sự

2 3 TxD Transmit data ⇐ Truyền dữ liệu

3 2 RxD Receive Data ⇒ Nhận dữ liệu

4 7 RTS Request to send ⇐

Yêu cầu gửi; bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu

Xóa để gửi; bộ nhận đặt đường này lên mức hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu

6 6 DSR Data set ready ⇒

Dữ liệu sẵn sàng; tính hoạt động giống như CTS, nhưng được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu

7 5 SG Signal ground - Mass của tín hiệu

8 1 DCD Data carrier detect ⇒ Phát hiện tín hiệu mang dữ liệu

20 4

DTR Data terminal ready

Đầu cuối dữ liệu sẵn sàng; tính hoạt động giống với RTS nhưng được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu

22 9 RI Ring Indicate ⇒ Báo chuông, cho biết là bộ nhận đang nhận tín hiệu rung chuông + Ghi chú: ⇒ lối vào; ⇐ lối ra

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 4

9.2.2 Các thanh ghi và địa chỉ

Chúng ta cần phải thiết lập các thông số cho cổng nối tiếp trước khi muốn

sử dụng nó Những thiết lập này được thực hiện trong vùng BIOS của máy tính

và tùy vào cổng nối tiếp sử dụng mà ta dùng các địa chỉ cơ sở tương ứng Các địa

chỉ cơ sở này được cho trong bảng dưới

Bảng 9.2 Địa chỉ các cổng COM

UART có tổng cộng là 12 thanh ghi, qua đó tất cả các chức năng nhập vào

và xuất ra nối tiếp có thể được điều khiển Các thanh ghi được trao đổi qua 7 địa

chỉ, trong đó có những địa chỉ được sắp xếp 2 lần Bảng sau đây giới thiệu tất cả

các thanh ghi Nhưng trong luận văn này chúng ta chỉ sử dụng một số thanh ghi

trong số này

Bảng 9.3 Địa chỉ offset các thanh ghi

+0

=1 Đọc/Ghi - Thanh ghi tốc độ BAUD (byte thấp)

=0 Đọc/Ghi IER Thanh ghi cho phép ngắt

+1

=1 Đọc/Ghi - Thanh ghi tốc độ BAUD (byte cao)

- Ghi FCR Thanh ghi điều khiển FIFO

+3 - Đọc/Ghi LCR Thanh ghi điều khiển đường dẫn

+4 - Đọc/Ghi MCR Thanh ghi điều khiển MODEM

+5 - Đọc LSR Thanh ghi trạng thái đường dẫn

Việc truy nhập trực tiếp lên thanh ghi diễn ra qua địa chỉ thanh ghi, được

tính bằng cách lấy tổng của địa chỉ cơ sở của giao diện và độ lệch Offset của

thanh ghi trong UART, cụ thể là:

Địa chỉ cơ sở + Offset = Địa chỉ thanh ghi

Như đã nói ở trên, chúng ta chỉ sử dụng một số thanh ghi và sẽ được trình

bày sau đây

9.2.2.1 Thanh ghi cho phép ngắt (IER)

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 5

Bảng 9.4 Chức năng từng bit của thanh ghi IER

7 -

6 -

5 Cho phép chế độ nguồn giảm

4 Cho phép chế độ nghỉ

3 Cho phép ngắt modem

2 Cho phép ngắt nhận

1 Cho phép ngắt truyền

0 Cho phép nhận dữ liệu khi có ngắt

Vì ta không dùng ngắt nối tiếp nên chúng ta ghi giá trị 0 vào thanh ghi này

9.2.2.2 Thanh ghi điều khiển đường dẫn (LCR)

Thanh ghi này được dùng hai lần để thiết lập thông số truyền của cổng

Việc này được kiểm soát bằng bit DLAB Thanh ghi này được mô tả như sau

Bảng 9.5 Chức năng từng bit của thanh ghi LCR

0 Truy xuất đến các bộ đệm và các thanh ghi cho

phép ngắt

1 2 stop bit đối với khung truyền 6,7,8 bit hay1,5 stop bit với khung truyền 5 bit

Bit 0 và bit 1

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 6

Sau khi có các hiểu biết về chuẩn RS-232 và cổng nối tiếp của máy PC, phần tiếp theo sẽ trình bày phương thức thiết lập giao tiếp giữa máy PC và chip AT89C2051

9.2.3 Giao tiếp giữa PC với AT89C2051

9.2.3.1 Khung truyền dữ liệu

Bảng dưới chỉ ra khung truyền một byte dữ liệu mà chúng ta dùng để giao tiếp giữa máy tính và chip AT89C2051

Bảng 9.6 Khung truyền dữ liệu

Khung truyền dữ liệu

19200 BAUD 1 stop bit No parity 8 bytes

9.2.3.2 Sơ đồ MẠCH nối AT89C2051 với RS232

Chúng ta sử dụng một IC MAX 232 để ghép mức điện áp Chương trình điều khiển đơn giản có thể được viết một cách dễ dàng khi nắm vững hoạt động của bộ vi xử lý AT89C2051

1uF 1uF

10k 1uF

AT89C2051

1

5

4 12 13 14 15 16 17 18

19 2

3 6 7 8 9 11

RST/VPP

XTAL1

XTAL2 P1.0/AIN0 P1.1/AIN1P1.2 P1.3 P1.4 P1.5 P1.6

P1.7 P3.0/RXD

P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1

33p

0

11.059M

1uF

COM PC

0

VCC

10uF

MAX232/SO

1 3 4 5

2 6

9 10 8

7

C1+

C1-C2+

C2-V+

V-R2OUT T2IN

R2IN T2OUT

0

1

2

3

0

Hình 9.2 Ghép nối tiếp AT89C2051 với PC qua MAX2

Dữ liệu được máy tính truyền qua cổng COM lần lượt theo định dạng sau:

o Byte thứ nhất + số 13 - quy định số thứ tự động cơ

o Byte thứ hai + số 13 – quy định vị trí của động cơ đó

o 255 - byte đồng bộ hóa

Chẳng hạn ví dụ nếu chúng ta muốn điều khiển động cơ thứ 3 đến vị trí góc 500 (mỗi động cơ có 560 vị trí góc) thì ta phải truyền đi là: số 3 + 13 + 500 +

13 + 255 + 13

Do mỗi lần giao tiếp nối tiếp ta chỉ có thể gửi được một byte Trong khi dữ liệu truyền cần để xác định vị trí của động cơ phải là word (2 byte) Do vậy việc gửi đi ký tự có mã ASCII 13 có ý nghĩa như là một “stop byte”

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 7

Byte “255”: được gửi nhằm đồng bộ hóa các dữ liệu đã gửi đi Khi nhận được byte này thì chip AT90S2313 mới gửi các vị trí mới tới các động cơ, còn không thì các vị trí mới này vẫn được lưu trong bộ nhớ của chip AT90S2313

9.3 GIAO TIẾP NỐI TIẾP GIỮA AT89C2051 VÀ AT90S2313

AT89C2051 và AT90S2313 ghép nối tiếp với nhau bằng 2 chân RxD và TxD được nối chéo với nhau Mức điện áp trên đường truyền là mức TTL Trước khi giao tiếp nối tiếp giữa hai chip, chúng ta cần phải thiết lập tốc độ BAUD giống nhau ở hai chip

Trong luận văn này, chúng ta dùng tốc độ BAUD là 9600 cho việc truyền dữ liệu giữa hai chip Do chip AT90S2313 vừa thực hiện việc điều khiển động cơ vừa nhận dữ liệu nối tiếp, nên để bảo đảm dữ liệu không bị mất, chúng ta sử dụng thêm một chân làm cờ bắt tay trong việc truyền nhận giữa hai chip

Dữ liệu được truyền một chiều từ AT89C2051 đến AT90S2313

9.3.1 Thiết lập tốc độ BAUD 4800

9.3.1.1 Thiết lập tốc độ BAUD cho AT89C2051

MOV SCON,#52H ; Port nối tiếp chế độ 1

MOV TCON,#20H ; Bộ định thời 1, chế độ 2

MOV TH1,#-6 ; Giá trị nạp để có tốc độ BAUD là 4800

SETB TR1 ; Bộ định thời 1 hoạt động

9.3.1.2 Thiết lập tốc độ BAUD cho AT90S2313

EQU BAUDR=143

EQU MYVAL =129

LDI UCR,MYVAL ;Nạp giá trị vào thanh ghi cho phép sử dụng RxD, TxD

LDI UBBR,BAUDR ;Nạp giá trị để định tốc độ BAUD là 4800

9.3.2 Chương trình truyền (AT89C2051) và nhận (AT90S2313) dữ liệu

9.3.2.1 Chương trình con truyền dữ liệu viết cho AT89C2051

Transmit:

JNB TI,$

CLR TI

JB BUSY,$ ; Busy là chân bắt tay phần cứng

MOV SBUF,{byte cao của data}

JNB TI,$

CLR TI

JB BUSY,$

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Trang 8

MOV SBUF,{byte thấp của data}

JNB TI,$

CLR TI

JB BUSY,$

MOV SBUF,#13

RET

Cờ Busy sẽ được set lên 1 trong AT90S2313 mỗi khi chip này vào chương trình phục vụ ngắt để điều khiển động cơ

9.3.2.2 Chương trình con nhận dữ liệu viết cho AT90S2313

Receive:

L2:

Charin = 0

Again:

Portb = &B11000000

SBIS USR,7 ; Chờ cho RXEN được set

RJMP Again

Portb = &B11110000

IN R17,UDR ; Ghi buffer vào thanh ghi R17

CPI R17,13 : So sánh với số 13

BREQ Thoat

STS {temp},R17 ; Chuyển nội dung R17 vào biến temp

Shift Charin , Left , 8

Charin = Charin + Temp

RJMP Again

Thoat:

Ret

9.4 KẾT LUẬN

Chương này chúng ta đã tìm hiểu khá rõ về việc sử dụng cổng nối tiếp để giao tiếp và điều khiển; và với các tập lệnh của các họ vi xử lý đã biết chúng ta có thể dễ dàng viết một chương trình con xử lý dữ liệu theo khung truyền mong muốn Chương tiếp chúng ta sẽ nghiên cứu một cách truyền dữ liệu khác cũng khá phổ biến hiện nay, đó là việc truyền nhận dữ liệu không dây bằng sóng hồng ngoại

GVHD: TS NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Ngày đăng: 03/07/2014, 05:20

HÌNH ẢNH LIÊN QUAN

9.2.1.2  Sơ đồ chân ra trên PC - đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx
9.2.1.2 Sơ đồ chân ra trên PC (Trang 2)
Bảng dưới đây chỉ ra tất cả các đường dẫn được nối với các chân trên DB9  và DB25. - đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx
Bảng d ưới đây chỉ ra tất cả các đường dẫn được nối với các chân trên DB9 và DB25 (Trang 3)
Bảng 9.3  Địa chỉ offset các thanh ghi - đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx
Bảng 9.3 Địa chỉ offset các thanh ghi (Trang 4)
Bảng 9.4  Chức năng từng bit của thanh ghi IER - đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx
Bảng 9.4 Chức năng từng bit của thanh ghi IER (Trang 5)
Bảng 9.5  Chức năng từng bit của thanh ghi LCR - đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx
Bảng 9.5 Chức năng từng bit của thanh ghi LCR (Trang 5)
Bảng dưới chỉ ra khung truyền một byte dữ liệu mà chúng ta dùng để giao  tiếp giữa máy tính và chip AT89C2051 - đồ án thiết kế chế tạo và điều khiển tay máy, chương 9 ppsx
Bảng d ưới chỉ ra khung truyền một byte dữ liệu mà chúng ta dùng để giao tiếp giữa máy tính và chip AT89C2051 (Trang 6)

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