MẠCH THU PHÁT dị bộ vạn NĂNG UART

10 428 0
MẠCH THU PHÁT dị bộ vạn NĂNG UART

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

Thông tin tài liệu

MẠCH THU PHÁT DỊ BỘ VẠN NĂNG UART I Thế thu phát không đồng vạn (UART) ? - UART tiếng anh viết tắt cụm từ Universal Asynchronous Receiver and Transmitter , nghĩa truyền nhận nối tiếp không đồng Giả sử bạn xây dựng ứng dụng phức tạp cần dung nhiều vi điều khiến ( nhiều điều khiển máy tính ) kết nối với Trong trình làm việc vi điều khiển trao đổi liệu qua , ví dụ Master truyền lệnh cho Slaver Slaver nhận liệu gửi cho Master xử lí …giả sử tín hiệu truyền dãy dài bit cách nối đơn giản kết nối PORT (8 bit) vi điều khiển với , line PORT nhận trách nhiệm truyền bit liệu , cách giao tiếp song song Cách đơn giản liệu nhận trực tiếp không thông qua giải thuật biến đổi tốc độ truyền nhanh Tuy nhiên nhược điểm đường truyền nhiều , số lượng đường truyền tỉ lệ thuận với liệu truyền , hệ thống đường truyền cồng kềnh hiệu Hình : chuyền liệu song song (1a) ; nối tiếp (1b) Truyền thông nối tiếp giải vấn đề , truyền thông nối tiếp liệu truyền bit ( ) đường truyền lí nên dù bạn có chuyển liệu lớn đến đâu dung đường truyền Khi truyền / nhận liệu bị chia nhỏ thành bit nên tốc độ truyền bị giảm Máy tính xử lí liệu dạng song song biến đổi liệu truyền dạng nối tiếp II Nguyên lý , cấu trúc tin Ví dụ thiết bị kết hợp với thiết bị đường , đường liệu đường xung nhịp , lần tb1 muốn send bit liệu ,tb1 điều khiển đường xung nhịp truyền từ mức thấp lên mức cao báo cho tb2 sẵn sàng nhận bit Xung nhịp UART để truyền nhận liệu Bộ tạo xung nhịp cho UART phần UART có số vi mạch sử dụng tạo xung nhịp riêng Trong trường hợp tạo xung phần UART, tần số xung lập trình để thay đổi thơng qua ghi nội UART Khi mạch tạo xung nhịp phận tách biệt với UART tần số xung nhịp xác định vài phương pháp sau: - Tần số cố định: Ðược sử dụng nơi có tốc độ thơng tin không cần thay đổi Mạch tạo xung nhịp đơn giản, gồm tạo dao động thạch anh vài cổng logic Trong số trường hợp sử dụng ln xung nhịp vi xử lý - Tần số thay đổi phần mềm: Gồm tạo xung nhịp riêng, tần số dao động lập trình để điều chỉnh thông qua ghi nội UART tương tự tạo xung nhịp phần UART - Tần số điều chỉnh phần cứng: Bộ tạo xung máy vi tính thường cho phép thay đổi tần số dao động cách thay đổi vị trí jumper bảng mạch mẹ máy tính Có hai cách thường áp dụng để thực thay đổi tần số: Thay đổi tàn số cách chuyển đổi vị trí jumper; Cách thứ hai tạo xung nạp giá trị tương ứng với jumper khởi động, thay đổi vị trí jumper sau không ảnh hưởng đến tần số tạo xung nhịp Dữ liệu truyền nhận vào không bắt buộc phải có tốc độ, nữa, giao thức modem cho truyền song công, tín hiệu điều khiển thường truyền kênh phụ có tốc độ thấp nhiều tốc độ liệu kênh Trong nhiều vi mạch UART, xung nhịp dùng cho truyền liệu xung nhịp dùng cho nhận liệu cung cấp độc lập Việc dùng xung nhịp khác cho phần truyền phần nhận dùng chung định người thiết kế hệ thống Phần truyền liệu UART Một byte liệu cần truyền sau ghi vào địa truyền vi mạch UART đem vào phần truyền vi mạch Phần truyền UART bao gồm ghi dịch, khối logic điều khiển để nạp byte vào ghi dịch truyền đệm truyền Trong phần truyền có lối vào song song ghi dịch truyền để tạo liệu nối tiếp Các bits cần truyền nạp vào ghi dịch dịch sườn xuống xung nhịp Khi tất bits dịch khỏi ghi dịch truyền, SDU (Serial Data Unit) tạo q trình lặp lại Nếu khơng tính bit START ghi dịch truyền phải có độ rộng đủ lớn để chứa từ bits đến 11 bits Các bits liệu nạp trực tiếp từ BUS liệu hệ thống, nhiều vi mạch UART có đệm truyền (Còn gọi ghi đệm truyền: Transmitter Holding Register) tạo thành hàng đợi nhỏ cho liệu trước truyền Vì byte liệu ghi vào đệm truyền UART byte trước dịch khỏi ghi dịch Bộ đệm thuận tiện mà làm cho phần truyền hoạt động hiệu Có thể có vài đệm truyền, phần lớn UART chứa đệm Trong truyền tin không đồng bộ, kí tự trước truyền cần phải thêm bit START, STOP, bit chẵn lẻ (Kí tự có thêm bit gọi SDU) phía nhận nhận kí tự Việc tạo SDU thực phần truyền UART sau: Tạo dạng SDU (Serial data unit) Một SDU bắt đầu bit "0" nạp cách tự động vào bit tạo SDU (Nằm xen ghi dịch truyền đệm truyền) Ba thành phần SDU thay đổi số lượng bit STOP, bit chẵn lẻ số lượng bit liệu, tạo dạng SDU sử dụng tín hiệu giải mã từ ghi "Dạng liệu" (Data format), ghi lập trình để thay đổi giá trị Ví dụ, ghi "Dạng liệu" UART lập trình 7E2h SDU tạo cho kí tự 'E' Chú ý rằng, bit khơng sử dụng phía trái tạo dạng SDU điền Trong trình dịch, bits dịch vào vị trí bỏ trống phía trái bits khơng sử dụng luôn Thanh ghi dịch truyền chứa giá trị mà tất bits dịch ngoài, trừ bit STOP Trạng thái dùng để thông báo đệm truyền rỗng chu kì xung nhịp Khi dệm truyền rỗng, cờ hiệu TxE (Transmitter Empty) bật, lúc chân TxD UART ln mức "1" byte liệu khác truyền Trạng thái đường truyền Viết chương trình để truyền liệu cần biết hai thông tin đệm truyền (Transmitter Bufer) ghi dịch truyền (Transmitter Shìt Register) rỗng Mỗi điều kiện ghi lại ghi trạng thái đường truyền nối tiếp (Serialization Status Register) Khi liệu từ đệm truyền nạp vào ghi dịch truyền, cờ TBE dựng để báo UART nhận thêm byte liệu khác Nếu cờ TBE dựng sau bit cuối SDU dịch ra, cờ TxE dựng để báo ghi dịch truyền rỗng Trong truyền thông song công, phần mềm cần kiểm tra cờ TBE để đảm bảo đệm truyền rỗng trước ghi byte vào UART Nhưng truyền bán song công, phần mềm phải kiểm tra cờ TBE mà phải kiểm tra cờ TxE trước đổi chiều truyền từ phát sang thu để tránh gây liệu Phần nhận liệu UART Việc nhận byte liệu đòi hỏi phải đọc từ địa ghi đệm nhận UART Phần nhận liệu UART có nhiệm vụ tạo lại byte liệu cách đọc bits liệu nối tiếp từ đường truyền sau gỡ bỏ bits thơng tin bao phía Khi byte liệu chuyển vào đệm nhận, cờ RxRDY bật giữ nguyên giá trị đến đệm rỗng Trong truyền nhận liệu tránh khỏi xẩy lỗi, lỗi thường UART xử lý sau: * Các lỗi thường xẩy truyền Nói chung, lỗi xẩy truyền Một lỗi xẩy ghi vào đệm truyền chứa liệu, kết liệu đệm truyền bị mất, lỗi gọi lỗi transmitter overrun Với giả thiết lỗi xẩy truyền, có dễ tránh nên nhiều UART chí khơng ghi nhận chúng * Các lỗi thường xẩy nhận Không truyền, nhận liệu gặp nhiều lỗi xuất hiện: - Khi byte liệu đến nhanh mà phí nhận chưa kịp đọc, đặt vào đệm nhận UART Khi đệm đầy, byte đến sau đè lên byte đến trước dẫn đến liệu, lỗi gọi lỗi receiver overrun Ðây lỗi thường xuất nhận liệu - Nếu giá trị bit chẵn lẻ byte nhận không quán với giá trị đặt ghi dạng liệu (Data Format register) lỗi chẵn lẻ (Parity error) ghi nhận - Nếu bit STOP nhận không hợp lệ tất bit liệu bit chẵn lẻ tức đường truyền trạng thái "0" thời gian tương đương SDU, lúc cờ BREAK bật - Nếu bit STOP nhận không hợp lệ bits liệu phía sau lại có bit bit START nhận không đúng, lỗi framing ghi nhận Các lỗi xẩy với giả thiết phía truyền phía nhận có tốc độ, chúng khác tốc độ truyền nhận có thêm nhiều lỗi xẩy * Ghi nhận lỗi Các lỗi xẩy trình trao đổi liệu UART ghi vào ghi tình trạng đường truyền nối tiếp (Serialization Status Register) Ngồi ghi có số bits sử dụng để làm cờ TxE (Transmitter Shift Register Empty), TBE (Transmitter Buffer Empty), RxRDY (Receiver Ready) * Ðọc lỗi Việc đọc lỗi ghi trạng thái thường reset lại tất cờ lỗi Việc đặt cờ lỗi cờ RxRDY, TBE, TxE ghi nhằm mục đích giảm nhỏ thao tác cho chương trình Khi viết thủ tục nhận liệu, thường chương trình phải hỏi vòng bit trạng thái ghi trạng thái 1, byte liệu đọc vào kiểm tra lỗi Việc hỏi vòng reset lỗi lần đọc ghi trạng thái Với thủ tục truyền liệu phải làm công việc tương tự III Thiết kế mạch vào bit Trong chế độ truyền bất đồng thông tin truyền dạng ký tự khoảng cách ký tự ngẫu nhiên Tuy nhiên để tạo sựđồng máy phát thu, giao thức tầng (Data link protocol) có qui định cụ thể mẫu tín hiệu hệ thống truyền bất đồng sau : - Mỗi ký tự gồm số bit gọi ký tự liệu, số mã Baudot, mã ASCII (American Standard Code for Information Interchange) mã EBCDIC (Extended Binary-Coded Decimal Information Code, mã BCD mở rộng) - Ngoài ra, để tạo đồng bộ, kèm theo bit mã ký tự có bit Start trước ký tự bit Stop sau ký tự Các bit Start bit bit Stop bit Số bit Start luôn bit số bit Stop 1, 1,5 bit - Nếu có thêm bit kiểm sốt chẵn lẻ (parity bit) bit nằm trước bit Stop - Ở trạng thái nghỉ máy phát phát bit gọi bit nghỉ (idle bit), máy thu dò bit Start có biến đổi từ xuống 0, sau chuỗi bit có số lượng theo qui định giao thức Lưu ý truyền liệu, bit LSB ký tự ln truyền trước có hai cách viết (và đọc) tin: theo chiều mũi tên hướng bên phải theo chiều hướng bên trái - Viết theo chiều mũi tên hướng bên phải : bit LSB ký tựđầu tiên nằm bên phải tin Thí dụ tin dùng mã ASCII gồm ký tự ABC có mã 41H (1000001), 42H (1000010) 43H (1000011), bit LSB ký tựđầu tiên (A) phát trước phải nằm bên phải tin nên chuỗi liệu phát có dạng: C B 1000011 A 1000010 1000001 Với cách viết này, mẫu mã hóa ký tựđược giữ nguyên chiều thứ tự ký tự tin bịđảo - Viết theo chiều mũi tên hướng bên trái : bit LSB ký tựđầu tiên nằm bên trái tin Với thí dụ trên, bit LSB ký tựđầu tiên (A) phát trước phải nằm bên trái tin nên chuỗi liệu phát có dạng: A 1000001 B 0100001 C 1100001 Với cách viết này, thứ tự ký tự tin giữ nguyên bit ký tự bịđảo chiều Sơ Đồ Khối ... truyền liệu UART Một byte liệu cần truyền sau ghi vào địa truyền vi mạch UART đem vào phần truyền vi mạch Phần truyền UART bao gồm ghi dịch, khối logic điều khiển để nạp byte vào ghi dịch truyền... đệm truyền UART byte trước dịch khỏi ghi dịch Bộ đệm khơng thu n tiện mà làm cho phần truyền hoạt động hiệu Có thể có vài đệm truyền, phần lớn UART chứa đệm Trong truyền tin khơng đồng bộ, kí tự... sẵn sàng nhận bit Xung nhịp UART để truyền nhận liệu Bộ tạo xung nhịp cho UART phần UART có số vi mạch sử dụng tạo xung nhịp riêng Trong trường hợp tạo xung phần UART, tần số xung lập trình để

Ngày đăng: 06/05/2019, 18:54

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan