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

Báo cáo đồ án chuyên ngành THIẾT KẾ BỘ TRUYỀN NHẬN UARTVÀ BÍT NẠP TRÊN KIT FPGA

47 2,7K 20

Đ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 47
Dung lượng 4,29 MB

Nội dung

Đồ án chuyên ngành ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA ĐIỆN TỬ-VIỄN THÔNG BÁO CÁO ĐỒ ÁN CHUYÊN NGHÀNH ĐỀ TÀI: THIẾT KẾ BỘ TRUYỀN NHẬN UART BIT NẠP TRÊN KIT FPGA Sinh viên thực : Lớp : Giáo viên hướng dẫn: Đỗ Tiến Thành 09DT2 ThS Võ Tuấn Minh Đà Nẵng, 2014 LỜI CAM ĐOAN Tôi xin cam đoan nội dung đồ án chép đồ án có từ trước Nếu vi phạm xin chịu hình thức kỷ luật Khoa Sinh viên thực Đỗ Tiến Thành NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành Đà Nẵng, ngày tháng năm 2014 GIÁO VIÊN HƯỚNG DẪN (Ký tên) LỜI MỞ ĐẦU Ngày nay, hệ thống truyền liệu có hai cách đưa tín hiệu lên đường truyền: nối tiếp song song Cách truyền song song thường truyền khoảng cách ngắn, ví dụ thiết bị phòng từ máy tính sang máy in Cách truyền nối tiếp thường thực khoảng cách truyền xa Ngoài ra, cách truyền nối tiếp, dựa vào cách thực đồng nơi phát thu ta có hai chế độ hoạt động: đồng bộvà bất đồng Trong chế độ bất đồng bộ, xung đồng hồ tạo cách riêng rẻ máy phát máy thu dựavào tần số danh định tương ứng với vận tốc truyền (bit rate baud rate) Trong chế độ đồng bộ, nơi phát gửi xung đồng hồ tới nơi thu theo kênh truyền song song với kênh truyền liệu nơi thu tự tạo xung đồng hồ cách tách tín hiệu thời gian từ dòng liệu Trong đồ án này, xin trình bày chuẩn truyền thông nối tiếp không đồng UART (Universal Asynchronous Receiver Transmitter) Vì truyền thông nối tiếp có ưu điểm sau: - Khoảng cách truyền xa truyền song song - Sốdây kết nối - Có thể truyền không dây dùng hồng ngoại - Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device) - Cho phép nối mạng - Có thể tháo lắp lúc máy tính làm việc SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành MỤC LỤC SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành Chương MÔ TẢ TỔNG QUAN VỀ GIAO TIẾP UART Truyền nối tiếp (serial transmission) thông tin số hay bit thông qua dây đơn (single wire) hay vật liệu trung gian tiết kiệm chi phí nhiều so với truyền song song dùng nhiều dây lúc Truyền liệu dùng UART thực theo phương thức song công (full duplex) tức việc gửi nhận thực lúc, hay bán song công (half duplex), tức thiết bị thay phiên phát nhận Bộ truyền UART phát bit byte liệu cách Bộ thu UART chịu trách nhiệm lắp ghép bit lại thành byte hoàn chỉnh Mỗi UART gồm có hai ghi dịch, dùng làm thành phần việc chuyển nối tiếp sang song song ngược lại 1.1 Đặc trưng khung truyền Hình 1.1 Định dạng khung truyền Mỗi ký tự gửi sau bit khởi tạo gọi start bit mức logic thấp, số bit liệu thường 5, có thêm bit kiểm tra chẵn lẻ (parity bit) hay nhiều stop bit mức logic cao Start bit báo hiệu cho thu ký tự gửi (hay nói đến) Tiếp theo sau start bit, thu nhận từ đến bit liệu, phụ thuộc vào tùy vào cấu hình sử dụng Theo sau bit liệu bit kiểm tra chẵn lẻ cuối phải có stop bit mức cao báo hiệu trình truyền ký tự kết thúc Bộ thu tiến hành xử lý bit nhận chờ start bit để nhận byte liệu Bởi start bit mức logic stop bit mức logic không gây hiểu lầm hai bit liên tiếp truyền SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành 1.1.1 Bộ nhận liệu Hình 1.2 Bộ nhận liệu Tất hoạt động phần cứng UART đồng hay điều khiển tín hiệu xung đồng hồ (clock) chạy với tốc độ số nhân nguyên tốc độ liệu, ví dụ việc truyền hay nhận bit liệu kéo dài vòng 16 xung clock chẳng hạn Bộ thu kiểm tra trạng thái tín hiệu gửi đến xung đồng hồ (theo cạnh lên hay cạnh xuống) để xem xảy start bit Nếu thời gian start bit kéo dài nửa thời gian bit liệu, xem hợp lệ báo hiệu việc truyền ký tự xảy Nếu Start bit không đáp ứng yêu cầu, xung xem xung sai (spurious pulse) bị bỏ qua Thời gian truyền bit giám sát trạng thái đường truyền lấy mẫu điểm bit Đồng thời tạo xung clock (cạnh lên hay xuống) cho phép dịch liệu vào ghi dịch (shift register) Sau kết thúc khung liệu, nội dung ghi dịch chuẩn bị sẵn sàng dạng song song để gửi tới xử lý liệu hệ thống UART lúc đặt cờ (flag) để báo hiệu liệu nhận sẵn sàng, tạo ngắt (interrupt) để yêu cầu xử lý nhận liệu vừa nhận SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành Trong vài kiểu UART, nhớ đệm nhỏ kiểu FIFO (First In First Out) đặt ghi dịch thu xử lý, việc làm cho phép xử lý có nhiều thời gian để thao tác liệu nhằm hạn chế việc liệu trường hợp tốc độ xử lý xử lý chậm trình nhận liệu 1.1.2 Bộ phát liệu Hình 1.3 Bộ phát liệu Một nhớ đệm nhỏ kiểu FIFO (First In First Out) đặt ghi dịch phát xử lý giống bên nhận liệu Ngay sau liệu gửi vào ghi dịch phần cứng UART tạo start bit, dịch số bit liệu yêu cầu đường truyền, tạo ghép bit kiểm tra chẵn lẻ vào cuối byte liệu truyền có, đồng thời chèn stop bit Bởi việc truyền khung liệu tương đối lâu so với tốc độ xử lý, nên UART trì cờ báo hiệu trạng thái bận để hệ thống không ghi byte liệu vào liệu truyền xong, việc báo hiệu thực thông qua ngắt 1.1.3 Tốc độ Baud Baud rate đại lượng xác định tốc độ phát bit liệu truyền bất đồng bộ, đơn vị bps (bit per second) SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành Bình thường, baud rate dùng để đo số bit thực gửi kênh truyền lượng liệu thực gửi từ máy sang máy khác.Việc tính baud rate gồm start bit, stop bit hay bit kiểm tra chẵn lẻ tạo UART gửi bị loại bỏ UART thu Điều có nghĩa từ liệu có độ dài bit phải cần đến bit 10 bit (nếu có bit kiểm tra chẵn lẻ) để truyền Do đó, modem có khả phát 300 bit giây từ nơi sang nơi khác truyền 30 khung liệu bit có dùng bit kiểm tra chẵn lẻ, stop bit start bit Như vậy, số bit liệu thực giây modem 210 bit, số bit chèn thêm 90 bit Chương PHÂN TÍCH TỔNG QUAN VÀ THIẾT KẾ CÁC KHỐI CHỨC NĂNG CỦA BỘ UART Thiết kế truyền bất đồng theo chuẩn UART thử nghiệm KIT FPGA Cụ thể, thiết kế truyền nối chuẩn UART (Universal Asynchronous Receiver SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành Transmitter) có đặc điểm sau: Cấu hình tốc độ BAUD (tốc độ truyền liệu) theo công thức : Trong đó: fbaud tốc độ BAUD cần cấu hình, BRG ghi thiết lập tốc độ baud có độ rộng bit, fosc tần số xung clock mạch Khung liệu gồm: start bit, bit liệu, stop bit bit liệu cần truyền có giá trị từ H00 đến HFF chuyển đổi dạng mã ASCII trước truyền Ví dụ: Dữ liệu cần truyền là: H85 đổi thành H38 (là mã ASCII số 8) H35(là mã ASCII số 5) Sau hai giá trị H38 H35 truyền qua đường truyền nối tiếp 2.1 Những yêu cầu thiết kế : - Tốc độ baud chọn cố định trước tổng hợp thông qua biến BRG - Khung liệu gồm bit start, bit liệu, bit stop - Truyền nhận song công (Dữ liệu truyền đồng thời theo hướng) Hình 2.1 Truyền nhận song công  Sơ đồ khối tổng quát: Thiết kế có khối sau SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành Lõi UART-FPGA gồm khối sau: Khối truyền nối tiếp (TRANSMITTER): Nhận liệu từ ngõ vào data_in phát dựa tốc độ baud tính khối BAUD RATE Khối nhận liệu nối tiếp (RECEIVER): Phát hiện, lấy mẫu lưu trữ liệu nhận nối tiếp từ chân RX UART thông qua tín hiệu uart_rx với tốc độ baud SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang Đồ án chuyên ngành tính khối BAUD RATE Khối có thêm đệm FIFO tầng để lưu tạm liệu tránh mát liệu Khối tạo tốc độ truyền (BAUD RATE): Dựa vào thông số tốc độ truyền cấu hình, khối tính toán tạo xung nhịp truyền liệu phát lấy mẫu liệu nhận Khối điều khiển hiển thị (CONTROL DISPLAY): tiếp nhận tín hiệu điều khiển tx_in để tạo tín hiệu cho phép khối truyền liệu UART hoạt động Đồng thời nhận giá trị liệu từ khối nhận liệu UART để giải mã LED đoạn hiển thị kết Bốn khối kết nối với thành thiết kế hoàn chỉnh file core_uart 2.2 Sơ đồ tín hiệu vào sơ đồ chi tiết khối thiết kế 2.2.1 Khối TRANSMITTER *Sơ đồ tín hiệu giao tiếp *Chức tín hiệu: Tên tín hiệu clk reset_n uart_en tx_enable data_in[7:0] brg_tx_clken Chiều input input input input input input SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 10 Mô tả Clock đồng Reset đồng bộ,tích cực mức thấp Cho phép hoạt động,tích cực mức cao Cho phép bắt đầu truyền liệu Bus liệu truyền Tín hiệu xác định vị trí dịch liệu Đồ án chuyên ngành Read byte FIFO,hiển thị liệu Led đoạn(mã Hex 0X61 tương ứng mã ASCII kí tự a) Khi read byte cuối led empty sáng: SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 33 Đồ án chuyên ngành ĐÁNH GIÁ ĐỀ TÀI THIẾT KẾ Thuận lợi Áp dụng kiến thức học thiết kế vi mạch số vào thực tiễn Thiết kế nạp chạy kit DE1 thành công,từ gúp nắm quy trình thiết kế mạch số FPGA Kit có sẵn nên giảm bớt chi phí mua linh kiện lắp rắp mạch Khó khăn Trong trình làm đồ án, gặp phải khó khăn việc nạp chạy thử kit bước đầu làm quen với việc thiết kế mạch FPGA Không có kit DE1 nên việc thử nhà bất tiện Hướng phát triển đề tài Tuy thiết kế đáp ứng yêu cầu ban đầu đặt để tối ưu ta thiết kế lõi UART có thêm số tính năng: o Cấu hình tốc độ Baud Data truyền ghi o Thiết kế ghi dịch để truyền thêm bit Parity kiểm tra chẵn lẻ o Thiết kế thêm số tín hiệu báo việc truyền/nhận diễn o Thiết kế thêm số chuẩn giao tiếp UART với MCU thiết bị ngoại vi khác Tài liệu tham khảo [1] [2] [3] [4] DE1 Development and Education Board User Manual – Altera Thiết kế Logic số -học viện kỹ thueetj quân Bảng mã ASCII-Bách khoa toàn thư Wikipedia Thiết kế Uart đơn giản dùng VHDL – Diễn đàn Icdesignvn.com PHỤ LỤC Code Verilog HDL mô tả thiết kế Dùng phần mềm Modelsim Altera để viết code Verilog mô tả chi tiết khối SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 34 Đồ án chuyên ngành Code khối Transmitter module transmitter(clk,reset_n,uart_en,tx_enable,brg_tx_clken,data_in,uart_tx); input clk,reset_n; input uart_en,tx_enable,brg_tx_clken; input [7:0] data_in; output reg uart_tx; wire shift; wire shift_en; wire load_data; //wire fsm_en; // wire load_msb; // wire set_uart_tx; wire set_tx_count; wire tx_shift; reg [3:0] tx_count; reg [9:0] tsr;// Transmitter Shift Reg parameter IDLE = 2'b00; parameter LOAD_TXS = 2'b01; parameter SHIFT_DATA = 2'b10; reg [1:0] state; reg [1:0] next_state; //FSM may trang thai // assign fsm_en = tx_enable & brg_tx_clken; always @ (posedge clk or negedge reset_n) begin if (~reset_n) state [...]... với thiết kế. Khối Receiver nhận dữ liệu qua FIFO đúng với thiết kế Kết luận: SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 28 Đồ án chuyên ngành Dạng sóng mô phỏng đúng chức năng các khối của UART thiết kế Vậy thiết kế đúng với yêu cầu truyền- nhận bất đồng bộ dữ liệu 8 bit với tốc độ baud cấu hình được Chương 4 DEMO THỰC TẾ TRÊN KIT DE1 CỦA HÃNG ALTERA SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 29 Đồ án chuyên ngành. .. empty sáng: SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 33 Đồ án chuyên ngành ĐÁNH GIÁ ĐỀ TÀI THIẾT KẾ 1 Thuận lợi Áp dụng được những kiến thức đang học về thiết kế vi mạch số vào thực tiễn Thiết kế đã nạp chạy được trên kit DE1 thành công,từ đó đã gúp tôi nắm được quy trình thiết kế mạch số trên FPGA Kit đã có sẵn nên giảm bớt chi phí mua linh kiện lắp rắp mạch 2 Khó khăn Trong quá trình làm đồ án, tôi... trên kit ,sau đó ta nạp thiết kế lên kit DE1.Dùng các Switch và các Key (Key0 đến Key3) để cấu hình các tín hiệu cho phép truyền, nhận Dùng 2 Led7-đoạn để quan sát dữ liệu mà FIFO nhận được Dùng phần mềm Terminal để truyền dữ liệu từ máy tính xuống kit qua bộ chuyển đổi RS232 Bảng cấu hình các trên I/O của thiết kế trên kit DE1: SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 30 Đồ án chuyên ngành Mô hình kết... Kit DE1 của hãng Altera là kit FPGA có đầy đủ các phần: Chip FPGA Cyclone II, bộ nhớ SDRAM 8 Mbyte,SRAM 512 kbyte, bộ cấu hình gồm các 10 switch và 4 key, các cổng giao tiếp I/O, các led báo hiệu Kit này dùng để nạp các thiết kế viết bằng ngôn ngữ verilog hoặc VHDL lên để Demo kết quả 4.2 Demo thiết kế trên kit DE1 Dùng phần mềm Quartus II 9.0 của hãng Altera để cấu hình các chân I/O của thiết kế trên. .. khăn về việc nạp chạy thử trên kit vì bước đầu làm quen với việc thiết kế mạch trên FPGA Không có kit DE1 nên việc thử tại nhà rất bất tiện 3 Hướng phát triển của đề tài Tuy thiết kế đã đáp ứng được yêu cầu ban đầu đặt ra nhưng để tối ưu hơn ta có thể thiết kế lõi UART có thêm 1 số tính năng: o Cấu hình tốc độ Baud và Data truyền trên cùng 1 thanh ghi o Thiết kế thanh ghi dịch để có thể truyền thêm... ngành Mô hình kết nối: Byte data hiển thị trên phần mềm Terminal khi truyền nhận : SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 31 Đồ án chuyên ngành Uart_tx: Trạng thái ban đầu FIFO trống ,led báo Empty sáng: Khi PC gửi đủ 8 byte data thì FIFO đầy ,Led báo Full sáng: SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 32 Đồ án chuyên ngành Read từng byte của FIFO,hiển thị dữ liệu trên Led 7 đoạn(mã Hex 0X61 tương ứng mã.. .Đồ án chuyên ngành uart_tx khi bộ truyền hoạt động Ngõ ra nối tiếp của dữ liệu truyền ,gán output ra cổng RS232 *Máy trạng thái của bộ truyền dữ liệu: *Mô tả các trạng thái : Trạng thái hiện Mô tả Điều kiện tại Trạng thái kế tiếp Trạng thái rảnh IDLE khi bộ truyền tx_enable LOAD_TXS không hoạt động Trạng thái nạp dữ LOAD_TXS SHIFT_DATA liệu vào thanh ghi dịch Trạng thái truyền brg_tx_clken... hex0=100000 kết quả nhận được đúng với mạch giải mã Led 7 đoạn Vậy mạch giải mã Led 7 đoạn hoạt động đúng theo thiết kế SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 27 Đồ án chuyên ngành 3.2.2 Khối Baud rate: Từ dạng sóng ta thấy:cứ 16 xung nhận( brg_rx_clken) lại có 1 xung truyền( brg_tx_clken) Vậy kết quả mô phỏng đúng với mạch tạo xung truyền và mạch tạo xung nhận trong khối Baud Rate thiết kế 3.2.3 Khối... trong Byte dữ liệu nhận được Giá trị giải mã LED 7 đoạn của 4 bit cao trong Byte dữ liệu nhận được SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 23 Đồ án chuyên ngành uart_tx output Đường truyền dữ liệu nối tiếp bất đồng bộ gán ra cổng RS232 *Sơ đồ chi tiết khối CONTROL DISPLAY Mạch giải mã LED 7 đoạn cho dữ liệu nhận hiện tại: Chức năng: giải mã 4 bit của rc_data thành 7 bit để hiện thị trên LED 7 đoạn Mạch... vào để cấu hình cho tốc độ Baud *Sơ đồ chi tiết khối BAUD RATE: Mạch tạo xung truyền : SVTH: ĐỖ TIẾN THÀNH – LỚP 09DT2 Trang 21 Đồ án chuyên ngành Mạch gồm bộ cộng để tăng giá trị đếm lên 1, cổng AND2, các bộ MUX để chọn các giá trị ngõ vào khác nhau, bộ so sánh bằng, thanh ghi DFF để tạo tín hiệu tx_count[15:0] Khi có tín hiệu uart_en = 1, thì BRG sẽ được nạp vào ,bộ đếm sẽ bắt đầu đếm từ 0 cho tới

Ngày đăng: 20/09/2016, 14:43

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

TÀI LIỆU LIÊN QUAN

w