1. Trang chủ
  2. » Giáo án - Bài giảng

Vi xử lý chapter 3

26 4 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 26
Dung lượng 1,82 MB

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

Nội dung

Ta Kim Truyền tin nối tiếpkhông đồng bộ • Thiết bị phát và thiết bị thu hoạt độngđộc lập • Thiết bị phát gửi dữ liệu tại bất cứ thời gian nào • Thiết bị thu luôn sẵn sàng nhận dữ liệu tạ

Trang 1

Serial Port Cổng truyền tin nối tiếp

Giảng Viên: TS.Đoàn Thị Hương Giang

ĐT: 037 263 0593 Email: giangdth@epu.edu.vn

•Asynchronous serial can be implemented with data lines only.

–Each device generates its own clock (Baud Rate Generator).

–Handshaking lines can be used to signal status of devices.

•Synchronous serial interfaces will have a separate Clock line.

–Clock is generated by a Master device.

•One bit is transferred for each clock cycle.

–Xung nhịp được tạo ra bởi một thiết bị chủ.

–Một số chuẩn truyền không đồng bộ:

Một bit được truyền trong một chu kỳ xung nhịp.

I2C SPI UART RS232 RS485 CAN USB Ethernet,…

Trang 2

Truyền tin nối tiếp đồng bộ

• Yêu cầutín hiệu xung nhịp (clock)để đồng bộ giữa thiết bị thu và

thiết bị phát

• Truyền liên tiếp để giữ xung nhịp đồng bộ

Ta Kim

Truyền tin nối tiếpkhông đồng bộ

• Thiết bị phát và thiết bị thu hoạt độngđộc lập

• Thiết bị phát gửi dữ liệu tại bất cứ thời gian nào

• Thiết bị thu luôn sẵn sàng nhận dữ liệu tại mọi thời điểm

• Không cần có tín hiệu xung nhịp

• …nhưng trong truyền tin, định dạng và tốc độc truyền của dữ liệu phải

được đồng nhất với nhau ở cả bên thu và bên phát

Lưu ý: tốc độ truyền (baudrate): bit/giây- bps( bit per sencond)

So sánh truyền song song với nối tiếp

 Yêu cầu nhiều đường truyền hơn

 Các bit phải được đồng bộ

 Nhanh nhưng chi phí cao

 Yêu cầu ít đường truyền hơn

 Truyền một bit tại bất cứ lúc nào

Chậm nhưng giảm chi phí hơn so sới truyền song song

Trang 3

Frame (khung truyền)

Dữ liệu đi vào ở đầu thu của đường dữ liệu trong truyền dữ liệu nối tiếp là

một dãy các số 0 và 1:

=> Rất khó để hiểu được ý nghĩa của các dữ liệu ấy nếu bê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 bit tạo nên một ký tự và khi nào dữ liệu bắt đầu và kết

thúc,…

- Khung truyền là một yếu tố 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,

- Số lượng các bit trong một data cũng được quy định bởi khung truyền.

Start bit:

 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

 Start là bit bắt buộc phải có trong khung truyền, và nó là một bit thấp (0).

Stop bits:

 Là 01 hoặc nhiều 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 bit bắt buộc xuất hiện trong khung truyền, trong 8051 có thể

là 01 hoặc 02 bit, và chúng là các bit cao 1.

Trang 4

Định nghĩa các mức logic

• TTL: 5V

• CMOS: 5V, 9V, 12V

Giới thiệu chuẩn giao tiếp I2C

• I2C là tên viết tắt của cụm từ tiếng anh “Inter-Integrated Circuit”.

• Nó là một giao thức giao tiếp được phát triển bởi Philips Semiconductors đểtruyền

dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử

dụng hai đường truyền tín hiệu.

• Do tính đơn giả n của nó nên loại giao thức này được sử dụng rộng rãi cho giao tiếp

giữa vi điều khiển và cảm biến, các thiết bị hiển thị, thiết bị IoT, EEPROMs , v.v …

• Đây là một loại giao thức giao tiếp nối tiếp đồng bộ Các bit dữ liệu được

truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi

một tín hiệu xung nhịp

• I2C là giao thức truyền thông nối tiếp đồng bộ phổ biến hiện nay, được sử

dụng rộng rãi trong việc kết nối nhiều IC với nhau, hay kết nối giữa IC và

các ngoại vi với tốc độ thấp

Trang 5

Ví dụ ứng dụng chuẩn I2C

Đặc điểm của chuẩn I2C

• Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết

bị/IC nào trên mạng I2C

• Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong

giao tiếp UART Vì vậy, tốc độ truyền dữ liệu có thể được điều

chỉnh bất cứ khi nào cần thiết

• Có cơ chế đơn giản để xác thực dữ liệu được truyền

• Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị/IC cụ

thể trên bus I2C

• Các mạng I2C dễ dàng mở rộng Các thiết bị mới có thể được

kết nối đơn giản với hai đường bus chung I2C

Trang 6

Bus vật lý I2C

• Bus I2C (dây giao tiếp) chỉ gồm hai dây và được đặt tên là Serial Clock Line (SCL) và Serial Data Line (SDA) Dữ

liệu được truyền đi được gửi qua dây SDA và được đồng bộ với tín hiệu đồng hồ (clock) từ SCL Tất cả các thiết bị

trên mạng I2C được kết nối với cùng đường SCL và SDA như sau:

• Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực máng hở (open drain) Nó có nghĩa là bất kỳ

thiết bị trên mạng I2C có thể lái SDA và SCL xuống mức thấp, nhưng không thể lái chúng lên mức cao Vì vậy, một

điện trở kéo lên (khoảng 1 kΩ đến 4,7 kΩ) được sử dụng cho mỗi đường bus, để giữ cho chúng ở mức cao (ở điện

áp dương) theo mặc định.

• Hệ thống cực máng hở (open drain) là để không xảy ra hiện tượng ngắn mạch, điều này có thể xảy ra khi một thiết

bị cố gắng kéo đường dây lên cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp.

Đặc điểm đường truyền I2C

• Có rất nhiều thiết bị có thể cùng được kết nối vào một bus I2C,

• Không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởỉ một địa

chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối

• Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa

nhận

• Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hay tớ (slave)

Trang 7

Thiết bị chủ (Master) và tớ (Slave)

• Các thiết bị kết nối với bus I2C được phân loại hoặc là thiết bị Chủ (Master) hoặc là

thiết bị Tớ (Slave) Ở bất cứ thời điểm nào thì chỉ có duy nhất một thiết bị Master ở

trang thái hoạt động trên bus I2C Nó điều khiển đường tín hiệu đồng hồ SCL và

quyết định hoạt động nào sẽ được thực hiện trên đường dữ liệu SDA.

• Tất cả các thiết bị đáp ứng các hướng dẫn từ thiết bị Master này đều là Slave Để

phân biệt giữa nhiều thiết bị Slave được kết nối với cùng một bus I2C, mỗi thiết bị

Slave được gán một địa chỉ vật lý 7-bit cố định.

• Khi một thiết bị Master muốn truyền dữ liệu đến hoặc nhận dữ liệu từ một thiết bị

Slave, nó xác định địa chỉ thiết bị Slave cụ thể này trên đường SDA và sau đó tiến

hành truyền dữ liệu Vì vậy, giao tiếp có hiệu quả diễn ra giữa thiết bị Master và một

thiết bị Slave cụ thể.

• Tất cả các thiết bị Slave khác không phản hồi trừ khi địa chỉ của chúng được chỉ

định bởi thiết bị Master trên dòng SDA

Chân I2C PIC18F4550

• Các chân PORTB.0 và PORTB.1 được sử dụng cho giao tiếp I2C dưới dạng SDA

Trang 8

Chuẩn giao tiếp SPI

• Khối SPI của thiết bị Master sẽ kết nối với khối SPI của thiết bị Slave qua 4 chân tín hiệu:

• MOSI (Master Output/Slave Input) – Master gửi dữ liệu đến Slave.

• MISO (Master Input/Slave Output) – Slave gửi dữ liệu cho Master.

• SCLK (Serial Clock) – xung giữ nhịp Clock.

• SS/CS (Slave Select/Chip Select) – Master lựa chọn Slave để giao tiếp Cụ thể trong trường hợp hệ thống gồm một Master giao tiếp với nhiều Slave, Master điều khiển tín hiệu mức logic trên chân SS/CS của Slave nào xuống mức LOW (mức 0), nghĩa là Master đang giao tiếp với Slave đó.

Chuẩn giao tiếp SPI

• Khối SPI của thiết bị Master sẽ kết nối với khối SPI của thiết bị Slave qua 4 chân tín

hiệu:

• MOSI (Master Output/Slave Input) – Master gửi dữ liệu đến Slave.

• MISO (Master Input/Slave Output) – Slave gửi dữ liệu cho Master.

• SCLK (Serial Clock) – xung giữ nhịp Clock.

• SS/CS (Slave Select/Chip Select) – Master lựa chọn Slave để giao tiếp Cụ thể trong trường hợp hệ

thống gồm một Master giao tiếp với nhiều Slave, Master điều khiển tín hiệu mức logic trên chân

Trang 9

Ví dụ kết nối SPI

CƠ CHẾ HOẠT ĐỘNG

• Mỗi thiết bị Master và Slave đều có một thanh ghi dịch 8 bits (Shift Register), một bộ tạo

xung nhịp (Clock Generator).

• Khi Master truyền dữ liệu, Master truyền đi 8 bits dữ liệu vào thanh ghi dịch của nó, sau đó

8 bits dữ liệu được truyền theo đường tín hiệu MOSI sang thiết bị Slave Tương tự khi

Slave truyền dữ liệu, các bits trên thanh ghi dịch của Slave truyền đến Master thông qua

đường tín hiệu MISO.

• Bằng cách này, dữ liệu của hai thanh ghi sẽ được trao đổi với nhau Việc đọc và ghi dữ liệu

vào Slave diễn ra cùng một lúc nên tốc độ trao đổi dữ liệu diễn ra rất nhanh Do đó, giao

thức SPI là một giao thức rất có hiệu quả.

• Mỗi chu kỳ đồng hồ, một bit dữ liệu được truyền theo từng hướng tức là từ Master đến

Slave và từ Slave đến Master Vì vậy, đối với một byte dữ liệu được truyền từ mỗi thiết bị,

nó sẽ mất 8 chu kỳ đồng hồ.

Trang 10

Cấu hình SPI

Có hai loại cấu hình trong đó các thiết bị SPI có thể được kết nối

trong một bus SPI Đó là:

• Cấu hình Master và các Slave độc ​​lập (Independent Slave

Configuration)

• Cấu hình Daisy Chain (Daisy Chain Configuration)

Cấu hình Master và các Slave độc ​​lập (Independent Slave

Configuration)

• Master đã dành riêng các đường Slave

Select cho tất cả các Slave và mỗi Slave có

thể được chọn riêng lẻ

• Tất cả tín hiệu đồng hồ của các Slave được

kết nối với chung với SCK của Master.

• Tất cả các chân MOSI của tất cả các SLave

được kết nối với chân MOSI của Master và

tất cả các chân MISO của tất cả các Slave

được kết nối với chân MISO của Master.

Master và các Slave độc ​​lập

Trang 11

Cấu hình Daisy Chain (Daisy Chain Configuration)

• Chỉ có một đường Slave Select được kết nối với tất cả các

Slave

• MOSI của Master được kết nối với MOSI của Slave 1 MISO

của Slave 1 được kết nối với MOSI của Slave 2 và v.v MISO

của Slave cuối cùng được kết nối với MISO của Master.

• Giả sử Master truyền đi 3 byte dữ liệu lên bus SPI Byte đầu

tiên được dịch vào Slave 1 Khi byte thứ hai truyền đến 1, byte

đầu tiên sẽ bị đẩy ra khỏi Slave 1 và truyền đến Slave 2

Tương tự, khi byte thứ ba truyền vào Slave 1, byte thứ hai sẽ

bị dịch sang Slave 2 và byte đầu tiên sẽ bị dịch Slave 3.

• Nếu Master muốn đọc lại dữ liệu trong Slave 1, nó phải truyền

lại chuỗi 3 byte dữ liệu (giả) lần nữa Khi đó dữ liệu trong Slave

1 sẽ chuyển sang Slave 2 rồi chuyển sang Slave 3, sau đó về

Master.

• Suốt quá trình xử lý, Master luôn nhận được byte dữ liệu từ

Slave 2 và 3.

• Tuy nhiên, cấu hình Daisy Chain không phải lúc nào cũng áp

dụng được cho tất cả các thiết bị Slave Do đó, ta cần phải

tham khảo datasheet trước khi tiến hành kết nối.

UART là gì?

UART - Universal Asynchronous Receiver/Transmitter

- Là một vi mạch sẵn có trong một vi điều khiển

- Chức năng chính của UART là truyền dữ liệu nối tiếp

- Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện

theo hai cách là giao tiếp dữ liệu nối tiếp.

Trang 12

TS Đoàn Thị Hương Giang 23

Sơ đồ khối của UART

Truyền thông UART

• Chỉ cần hai dây để truyền dữ liệu

• Không cần thiết /bắt buộc phải có tín hiệu CLK

• Gồm một bit chẵn lẻ để cho phép kiểm tra lỗi

• Sắp xếp gói dữ liệu có thể được sửa đổi

• Kích thước khung dữ liệu tối đa là 9 bit

• Tốc độ truyền của UART phải ở mức 10% của nhau

Khung truyền dữ liệu kiểu UART

Trang 13

Có 2 stop bits được dùng cho khung truyền.

 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 8051 ta có thể quy định số lượng bit của data là 08 hoặc 09 bit

 Trong truyền thông nối tiếp UART:

 Bit có trọng số 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ó trọng số lớn nhất (MSB- Most Significant Bit, bit bên trái).

Parity là bit dùng để kiểm tra dữ liệu

truyền có đúng không (một cách tương đối)

 Parity chẵn (even 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.

 Parity lẻ (odd parity): Tổng số lượng

các số “1” trong parity lẻ luôn là số lẻ.

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.

Một số chuẩn tín hiệu

UART (5V)

RS232 (±24V) RS485 (±5V)

Hai dây tín hiệu với mức logic ngược nhau

Trang 14

Ví dụ: Nếu tốc độ baudrate được đặt là 19200 thì thời gian dành cho

1 bit truyền là 1/19200 ~ 52.083us.TS Đoàn Thị Hương Giang

27

Vi mạch chuyển đổi mức tín hiệu MAX232

 Max232 là vi mạch được xem như một bộ chuyển đổi giữa hai mức tín hiệu

 Giúp cho hai thiết bị có mức tín hiệu khác nhau có thể thực hiện giao tiếp được

với nhau

Mức điện áp chuẩn RS232 (±24V)

Mức điện áp chuẩn UART(0-5V)

Trang 15

Số chân Mô tả

1 2 3 4 5 6 7 8 9

Data carrier detect (DCD) Received data (RxD) Transmitted data (TxD) Data terminal ready (DTR)

Signal ground (GND) Data set ready (DSR) Request to send (RTS) Clear to send (CTS) Ring indicator (RI)

Tránh tín hiệu mạng dữ liệu

Dữ liệu được nhận

Dữ liệu được gửi Đầu dữ liệu sẵn sàng Đất của tín hiệu

Dữ liệu sẵn sàng Yêu cầu gửi Xoá để gửi Báo chuông

- Chuyển từ mức tín hiệu RS232 sang TTL và ngược lại

- Max232 sử dụng nguồn 5V tương tự như nguồn trong 8051

- Sơ đồ mạch kết nối giữa Max232 với 8051 và cổng truyền tin nối tiếp

Trang 16

Vi mạch chuyển đổi max232

• Hai chân 11 và 12 của

MAX232 được nối với 2

chân TX và RX của vi điều

khiển.

Thanh ghi điều khiển chế độ truyền tin nối tiếp trong 8051

Trang 17

Thanh ghi SBUF(99H)

• SBUF là thanh ghi 8 bit được dùng riêng cho truyền thông nối tiếp

trong 8051.

• Một byte truyền qua đường TxD thì nó phải được đặt trong thanh

ghi SBUF.

• Khi dữ liệu chuyển từ ngoài vào RxD của 8051 thì dữ liệu cũng

được đặt trên SBUF:

• Khi một byte được ghi vào thanh ghi SBUF nó sẽ được đóng khung với

các bit Start, Stop và được truyền nối tiếp quan chân TxD.

• Khi các bit được nhận nối tiếp từ RxD thì 8051 mở khung đó để loại trừ

các bit Start, Stop để lấy ra một byte từ dữ liệu nhận được và đặt byte đó

vào thanh ghi SBUF.

Thiết lập chế độ truyền bằng thanh ghi SCON

Bit tên Địa chỉ Chức năng

7 SM0 9Fh Xác định chế độ cổng nối tiếp (bit 0)

6 SM1 9Eh Xác định chế độ cổng nối tiếp (bit 1)

5 SM2 9Dh Cho phép truyền thông đa xử lý

4 REN 9Ch Bit cho phép nhận

3 TB8 9Bh Sử dụng trong chế độ 2 và 3

2 RB8 9Ah Sử dụng trong chế độ 2 và 3

1 TI 99h Cờ truyền: được bật sau khi truyền song 1 byte

0 RI 98h Cờ nhận: được bật sau khi nhận đủ 1 byte

Trang 18

Serial port in 8051 Cổng truyền tin nối tiếp trong 8051

Lệnh truyền/nhận số liệu trong 8051

- Để truyền dữ liệu lên đường truyền nối tiếp thực hiện bằng cách ghi dữ liệu ra buffer

- Để nhận dữ liệu từ cổng nối tiếp thực hiện đọc dữ liệu từ buffer vào thanh ghi.

Trang 19

Các chế độ hoạt động của cổng nối tiếp

• Trước khi sử dụng cổng nối tiếp, SCON được khởi tạo trị với chế độ đúng

Ví dụ:

MOV SCON, #01010010B khởi tạo trị cho cổng nối tiếp ở chế độ 1 (SM0/SM1=0/1), cho phép bộ thu

(REN=1) và đặt cờ ngắt phát (T1=1) để chỉ bộ phát sẵn sàng hoạt động.

SM0 SM1 Chế độ Khung dữ liệu Tốc độ baud

0 0 0 8-bit shift register Oscillator

Thanh ghi PCON

Trang 20

Thanh ghi PCON

• Khi 8051 được bật nguồn thì bit SMOD của thanh ghi PCON ở mức thấp (0)

• Khi set = 1 bằng phần mềm  nhân đôi được tốc độ baud

• Khi PCON.7=0:

TH1 = 256 – ((Crystal / (12*32)) / Baud) = 256 – ((Crystal / 384) / Baud)

• Khi PCON.7=1 :

TH1 = 256 – ((2*Crystal / (12*32)) / Baud) = 256 – ((Crystal / 192) / Baud)

Đặt tốc độ baud cho cổng nối tiếp

Trang 21

Cách tính toán từ tần số thạch anh sang tốc độ

baud rate

• Tốc độ truyền của cổng nối tiếp là có thể lập trình được.

• Sử dụng timer1 để tạo tốc độ baud:

• Từ f của Xtal -> chu kỳ máy T = 12/f

• UART của 8051 chia chu kỳ máy cho 16 hoặc 32 để sử dụng làm

Ngày đăng: 12/10/2022, 01:21

HÌNH ẢNH LIÊN QUAN

• Để thiết lập giao tiếp I2C giữa các thiết bị  phải cấu hình PIC18F4550. - Vi xử lý chapter 3
thi ết lập giao tiếp I2C giữa các thiết bị  phải cấu hình PIC18F4550 (Trang 7)
Cấu hình SPI - Vi xử lý chapter 3
u hình SPI (Trang 10)
Cấu hình Daisy Chain (Daisy Chain Configuration) - Vi xử lý chapter 3
u hình Daisy Chain (Daisy Chain Configuration) (Trang 11)
• Cấu hình chế độ truyền tin nối tiếp ở chế độ 1 hoặc 3 (để xác có thể điều chỉnh tốc độ truyền tin theo timer) - Vi xử lý chapter 3
u hình chế độ truyền tin nối tiếp ở chế độ 1 hoặc 3 (để xác có thể điều chỉnh tốc độ truyền tin theo timer) (Trang 23)
w