Thiết kế lõi IP APB UART I2C controller

73 783 16
Thiết kế lõi IP APB UART I2C controller

Đ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

Ngày nay, cùng với sự phát triển không ngừng của các dòng vi điều khiển, các loại thiết bị ngoại vi, các chuẩn giao tiếp cũng phát triển ngày càng đa dạng. Các loại vi điều khiển hay các loại thiết bị ngoại vi khác nhau (như LCD, sensor hay các loại bộ nhớ) sẽ sử dụng các chuẩn giao tiếp khác nhau. Vậy liệu có thể tích hợp các chuẩn giao tiếp khác nhau (như I2C, UART) trên cùng 1 chip để có thể chuyển đổi linh hoạt giữa các chuẩn giao tiếp khi ta thay đổi sử dụng các loại ngoại vi khác nhau? Trên cơ sở đó, UARTI2C Controller IP core được thiết kế cho phép vi xử lý lựa chọn linh hoạt giữa 2 chuẩn giao tiếp.Trong nội dung đồ án này, lõi IP UARTI2C Controller được thiết kế theo quy trình thiết kế vi mạch số của tập đoàn Synopsys, một trong những tập đoàn hàng đầu thế giới cung cấp công cụ chuyên dụng trong ngành thiết kế vi hiện nay. Lõi IP được phân tích đến mức cổng logic, từ đó Soft IP được viết bằng ngôn ngữ lập trình phần cứng Verilog, code ở mức RTL được kiểm tra sửa lỗi trên phần mềm ModelSim.Sau đó, lõi IP được tổng hợp ở mức cổng logic trên phần mềm Quartus II, Student Edition và được nạp trên Kit Altera DE2 sử dụng chip FPGA Cyclone II.Lõi IP UARTI2C Controller do nhóm thiết kế đáp ứng các yêu cầu kĩ thuật đặt ra. UART Controller tương thích chuẩn công nghiệp 16550 và có khả năng truyền nhận dữ liệu song công. UART hoạt động với khung dữ liệu 8 bit, 1 bit Start và 1 bit Stop, đồng thời hỗ trợ tốc độc baud cấu hình được, chế độ Auto Flow cũng như chế độ kiểm tra chẵn lẻ. I2C Controller được thiết kế có thể cấu hình hoạt động là Master hoặc Slaver, hỗ trợ tối đa 128 thiết bị cùng hoạt động với chế độ định địa chỉ 7 bits. I2C Controller hỗ trợ 4 mức tốc độ hoạt động 100kbps, 400kbps, 1Mbps và 3.4Mbps. Ngoài ra, lõi IP giaotiếp với vi xử lý theo chuẩn AMBA APB, sử dụng các FIFO 8x16 trong các hoạt động truyền và nhận dữ liệu. Nội dung đồ án bao gồm 4 chương:Chương 1: Cơ sở lý thuyếtChương 2: Thiết kế khối UARTChương 3: Thiết kế khối I2CChương 4: Mô phỏng và tổng hợp

LỜI CAM ĐOAN Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập – Tự – Hạnh phúc *** LỜI CAM ĐOAN Kính gửi: Hội đồng Bảo vệ Tốt nghiệp khóa 09ĐTVT khoa Điện tử - Viễn thông Chúng gồm: - Lê Hữu Việt, sinh viên lớp 09DT2, khoa Điện tử - Viễn thông - Võ Thị Kim Nga, sinh viên lớp 09DT2, khoa Điện tử - Viễn thông - Lê Hà Bảo Ngọc, sinh viên lớp 09DT2, khoa Điện tử - Viễn thông Chúng xin cam đoan nội dung đồ án tự nhóm nghiên cứu thiết kế hướng dẫn TS Huỳnh Việt Thắng mà không chép đồ án hay công trình nghiên cứu có từ trước Nếu vi phạm xin chịu hoàn toàn trách nhiệm Người thực MỤC LỤC MỤC LỤC DANH MỤC TỪ VIẾT TẮT DANH MỤC TỪ VIẾT TẮT I2C Inter Intergrated Circuit UART Universal Aschynorous Receiver Transmitter IP Intellectual Property RTL Register Transfer Level FPGA Field Programmable Gate Array I/O Input / Output IC Intergrated Circuit BRG Baud Rate Generater APB Advanced Peripheral Bus AMBA Advanced Microcontroller Bus Architecture ACK Acknowledge FIFO First In First Out Tx Transmitter Rx Receiver DMA Direct Memory Access LỜI MỞ ĐẦU LỜI MỞ ĐẦU Ngày nay, với phát triển không ngừng dòng vi điều khiển, loại thiết bị ngoại vi, chuẩn giao tiếp phát triển ngày đa dạng Các loại vi điều khiển hay loại thiết bị ngoại vi khác (như LCD, sensor hay loại nhớ) sẽ sử dụng chuẩn giao tiếp khác Vậy liệu tích hợp chuẩn giao tiếp khác (như I2C, UART) chip để chuyển đổi linh hoạt chuẩn giao tiếp ta thay đổi sử dụng loại ngoại vi khác nhau? Trên sở đó, UART/I2C Controller IP core được thiết kế cho phép vi xử lý lựa chọn linh hoạt chuẩn giao tiếp Trong nội dung đồ án này, lõi IP UART/I2C Controller được thiết kế theo quy trình thiết kế vi mạch số tập đoàn Synopsys, tập đoàn hàng đầu giới cung cấp công cụ chuyên dụng ngành thiết kế vi Lõi IP được phân tích đến mức cổng logic, từ Soft IP được viết ngôn ngữ lập trình phần cứng Verilog, code ở mức RTL được kiểm tra sửa lỗi phần mềm ModelSim.Sau đó, lõi IP được tổng hợp ở mức cổng logic phần mềm Quartus II, Student Edition được nạp Kit Altera DE2 sử dụng chip FPGA Cyclone II Lõi IP UART/I2C Controller nhóm thiết kế đáp ứng yêu cầu kĩ thuật đặt UART Controller tương thích chuẩn công nghiệp 16550 có khả truyền nhận liệu song công UART hoạt động với khung liệu bit, bit Start bit Stop, đồng thời hỗ trợ tốc độc baud cấu hình được, chế độ Auto Flow chế độ kiểm tra chẵn lẻ I2C Controller được thiết kế cấu hình hoạt động Master Slaver, hỗ trợ tối đa 128 thiết bị hoạt động với chế độ định địa bits I2C Controller hỗ trợ mức tốc độ hoạt động 100kbps, 400kbps, 1Mbps 3.4Mbps Ngoài ra, lõi IP giaotiếp với vi xử lý theo chuẩn AMBA APB, sử dụng FIFO 8x16 hoạt động truyền nhận liệu Nội dung đồ án bao gồm chương: LỜI MỞ ĐẦU     Chương 1: Cơ sở lý thuyết Chương 2: Thiết kế khối UART Chương 3: Thiết kế khối I2C Chương 4: Mô tổng hợp PHÂN CÔNG CÔNG VIỆC Công việc Tìm hiểu lý thuyết Thiết kế UART Thiết kế I2C Code RTL Mô Lê Hữu Việt I2C Receiver Võ Thị Kim Nga UART Lê Hà Bảo Ngọc Board Education and Developtment Altera DE2 APB Interface Transmitter Baudrate Clock Devider Tx FIFO APB Interface I2C Interface Rx FIFO APB Master Theo phần thiết kế Tổng hợp code mô phỏng, sửa lỗi độc lập Bên cạnh đó, được thực tập tốt nghiệp suốt tháng Trung tâm Thiết Kế Vi mạch thành phố Đà Nẵng, nên định chọn Đồ án tốt nghiệp theo hướng thiết kế vi mạch để vận dụng kiến thức học được trình thực tập Nhóm xin chân thành cảm ơn toàn thể thầy cô khoa Điện Tử Viễn Thông nhiệt tình hỗ trợ nhóm suốt trình thực đồ án tốt nghiệp, đặc biệt Ts Huỳnh Việt Thắng tận tình hướng dẫn nhóm hoàn thành đồ án theo mục tiêu đề Chương 1: CƠ SỞ LÝ THUYẾT Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu chương: Chương giới thiệu tổng quan quy trình thiết kế vi mạch số, cung cấp nhìn sơ lược lịch sử công nghiệp vi mạch tích hợp, bước tiến công nghệ khái niệm bảntrong luồng chế tạo vi mạch Sau trình bày sở lý thuyếtchuẩn bus AMBA APB, UART, I2C giới thiệu sơ lược Altera DE2 Board Development and Education 1.2 Tổng quan quy trình thiết kế vi mạch số[9]: 1.2.1 Quy trình thiết kế vi mạch số: Hình 1.1 Tổng quan quy trình thiết kế vi mạch số Quy trình thiết kế vi mạch số bao gồm bước sau: 1.2.1.1 Specification: Specification (Hình 1.2) trình nghiên cứu đặc tính kĩ thuật lõi IP, từ phân tích thiết kế lõi IP đến mức cổng logic,bao gồm bước chính: Trang Chương 1: CƠ SỞ LÝ THUYẾT Nghiên cứu: Tìm kiếm, đọc hiểu tài liệu phân tích giao thức, chức năng, thông số mong muốn,… để tạo bảng chức chi tiết High-level Design: Thiết kế mức kiến trúc: Bao gồm vẽ sơ đồ khối thiết kế được chia thành khối riêng biệt, khối sẽ đảm nhiệm chức riêng theo ý muốn kĩ sư thiết kế Và vẽ sơ đồ tín hiệu xác định số lượng, chức định thời tín hiệu Nếu thiết kế có giao diện được mô tả giao thức chuẩn, tín hiệu sẽ được liệt kê tài liệu giao thức Hình 1.2 Chi tiết trình thiết kế: Specificaton Verification Low-level Design: Phân tích cấu trúc thiết kế ở mức cổng Tất khối được phân tích việc sử dụng MUX, cổng AND, OR, XOR, NOT Flip-flop,… Bước chiếm nhiều thời gian đóng vai trò đặc biệt quan trọng luồng thiết kế Kết thu được sau phân tích sơ đồ cấu trúc chi tiết thiết kế Trang Chương 1: CƠ SỞ LÝ THUYẾT Coding: Việc viết code RTL được hoàn thành dựa vào sơ đồ cấu trúc chi tiết thiết kế được phân tích ở bước thiết kế mức chức Block-level check: Kiểm tra mô tất khối riêng biệt công cụ kiểm tra phần mềm mô 1.2.1.2 Verification: Verification (Hình 1.2): trình được sử dụng để kiểm tra tính đắn mặt chức thiết kế, nhằm đảm bảo chắn thiết kế logic phù hợp với specification Có loại Verification thông dụng Functional Verification Timing Verification Mục đích: phát lỗi thiết kế Bởi lỗi tìm thấy ở block-level gây thiệt hại Lỗi tìm thấy ở system-level ảnh hưởng đến thời gian sản xuất IC thị trường Lỗi tìm thấy sau chế tạo gây tốn lớn chi phí chế tạo lại Lỗi tìm thấy bởi khách hàng gây thiệt hại hàng triệu đô la uy tín Verification gồm bước chính: - RTL-level Simulation: Mô phỏng, phát sửa lỗi thiết kế ở mức RTL - code Gate-level Simulation: Mô kiểm tra tính tương đương thiết kế ở - mức cổng logic FPGA Test: Kiểm tra hoạt động thiết kế KIT FPGA 1.2.1.3 Physical design: Trang Chương 1: CƠ SỞ LÝ THUYẾT Hình 1.3 Chi tiết trình thiết kế vật lý Synthesis (Hình 1.4.): trình chuyển đổi thiết kế dạng mô tả ngôn ngữ phần cứng(RTL-level) sang mô tả cổng logic (Gate-level) Quá trình tổng hợp logic được thực cách tổ hợp RTL code thư viện công nghệ, thư viện chứa cell chuẩn thông số chúng bao gồm cổng logic (AND OR XOR NOT) Macro Cell ( Adder, Mux, Memory, Flip-flop) Trang Chương 1: CƠ SỞ LÝ THUYẾT Hình 1.4 Quá trình tổng hợp logic Pre-layout Timing: Phân tích vi phạm timing sau tổng hợp Place and Route: Xác định vị trí cổng logic đặt chip vật lý đồng thời đảm bảo tối thiểu hóa độ trễ Critical Path, độ nghẽn routing độ trễ đường dây cách thay đổi kích thước cổng logic, chèn thêm đệm thực tổng hợp lại phần Post-layout Timing: Phân tích, kiểm tra timing cho đường timing sau trình Place & Route Physical Verification: Kiểm tra layout IC có thỏa mãn tiêu chí kĩ thuật theo luật lệ thiết kế, tính đồng Schematic Layout 1.2.2 Công cụ sử dụng thiết kế vi mạch số: 1.2.2.1 Specification: Microsoft Word: viết mô tả thiết kế hướng dẫn sử dụng Notepad++/ Emeditor: viết code RTL XEmacs: tự động kết nối khối LEDA (Synopsys) : Kiểm tra lỗi cú pháp code RTL Microsoft Visio: Vẽ sơ đồ khối, sơ đồ tín hiệu, sơ đồ chi tiết mức cổng logic sơ đồ máy trạng thái hữu hạn Công cụ FPGA: Quartus (Altera), Leonardo Spectrum (Mentor Graphics), ISE Design Suite (Xilinx) được dùng để biên dịch code RTL FPGA 1.2.2.2 Verification: Trang 10 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP Hình 4.2:Sơ đồ tín hiệu vào khối APB Master Theo sơ đồ trên,các tín hiệu vào khối APB Master bao gồm:pclk,prst_n,data_in,data_sel,data_wr,apb_we,apb_re,prdata + Tín hiệu data_in bit vào bên khối APB MASTER sẽ được biến đổi để tạo thành tín hiệu ngõ pwdata 32 bit ghi vào ghi cấu hình Hình 4.3:Giản đồ trạng thái khối APB MASTER + Tín hiệu data_wr data_sel được đưa vào mạch logic bên khối APB MASTER để biến đổi tạo thành tín hiệu paddr_sel pwdata_sel lựa chọn việc ghi giá trị vào bus địa hay liệu Trang 59 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP Để thực được chức đó,khối APB MASTER được thiết kế để hoạt động ở trạng thái bản:IDLE,READ,WRITE.Giản đồ trạng thái khối được mô tả Hình 4.3 + Trạng thái IDLE:Khối APB MASTER ở trạng thái rỗi + Trạng thái READ:Khi bắt được sườn xuống apb_re khối chuyển sang trạng thái READ.Trong trạng thái này,tín hiệu psel,penable bật lên tín hiệu pwrite giữ mức + Trạng thái WRITE:Khi bắt được sườn xuống apb_we từ trạng thái IDLE khối chuyển sang trạng thái WRITE.Trong trạng thái này,cả ba tín hiệu psel,penable pwrite bật lên 4.3.2 Mô UART: Phương pháp mô phỏng: - Thiết lập ghi cấu hình UART + Control Register (1110101): Xóa FIFO truyền; xóa FIFO nhận; set mức ngưỡng FIFO truyền nhận byte; bật chế độ Autoflow + Baudrate Register : (11011000): đưa tốc độ Baud tương ứng 19200 + Interrupt Enable Register (11111): cho phép ngắt Truyền, ngắt Nhận, ngắt Overrun, ngắt Frame ngắt Parity + Status Register (111): bật bit kiểm tra chẵn lẻ Parity, chọn Bsel = cho - phép UART hoạt động Đưa liệu từ APB xuống UART Nếu muốn kiểm tra cờ trạng thái FIFO - viết nhiều liệu Để đánh giá đồng thời việc truyền nhận UART, nối đầu TX vào đầu - vào RX Kiểm tra tín hiệu nội UART Kết mô phỏng: Trang 60 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP Hình 4.4: Truyền nhận UART Giải thích kết quả: - Tín hiệu apb_we ghi giá trị vào ghi cấu hình UART, đồng thời đưa liệu xuống cho TxFIFO: 8’h11, 8’h22, 8’h33, 8’h44, 8’h55, 8’h66, 8’h77, - 8’h88, 8’h99 Con trỏ ghi TxFIFOtxff_wptr tăng lên theo byte Đối với UART, TxFIFO có liệu sẽ được phát đường truyền uart_tx, đó, tín hiệu tx_txff_rd được tích cực để đọc liệu từ TxFIFO Tương ứng, - trỏ đọc txff_rptrtăng lên Vì đường uart_tx được nối ngược vào đường uart_rx, nên liệu thu tương ứng 8’h11, 8’h22, 8’h33, 8’h44, 8’h55, 8’h66, 8’h77, 8’h88, 8’h99 Và - trỏ ghi RxFIFOrxff_wptr tăng lên Tuy nhiên, liệu được ghi vào RxFIFO mà không được đọc nên vượt mức ngưỡng (4/16), rx_rtstích cực, tương ứng uart_cts(được nối ngược) - bật lên, khóa không cho UART phát tiếp, để tránh liệu Khi APB đọc liệu từ RxFIFO lên, apb_re apb_rxff_rd bật lên tương ứng với số lượng byte đọc, trỏ đọc RxFIFO rxff_rptr tăng, RxFIFO trở lại Trang 61 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP mức ngưỡng, rx_rts tắt, trình truyền nhận tiếp tục hết - liệu Đánh giá: Dữ liệu phát đường phát TX nhận RX với liệu truyền từ APB - xuống UART Các tín hiệu điều khiển FIFO truyền nhận trỏ địa (ptr), cho phép đọc (re), cho phép ghi (we) tín hiệu báo trạng thái FIFO (full, empty, - threshold) hoạt động thiết kế Máy trạng thái chế độ truyền nhận hoạt động đồng thời với yêu - cầu Baudrate được tạo tương thích với tốc độ baud được APB ghi vào ghi BRG 4.4 Mô I2C: 4.4.1 Mode Master truyền – Slave nhận: - Phương pháp mô phỏng: Thiết lập ghi cấu hình I2C Slave sau: + Control Register (011): xác định thiết bị Slave, xóa FIFO truyền; xóa FIFO nhận + Address Register (1010101): gán địa thiết bị Slave + Interrupt Enable Register (111): cho phép ngắt Truyền, ngắt Nhận ngắt - Overrun + Status Register: cho phép I2C Slave hoạt động Đưa liệu từ APB xuống I2C Master Thiết lập giá trị ghi điều khiển I2C Master sau: + Control Register (111): xác định thiết bị Master; xóa FIFO truyền; xóa FIFO nhận + Transmit Address Register (1010101): cho Master biết địa Slave sẽ giao tiếp + Interrupt Enable Register (111): cho phép ngắt Truyền; ngắt Nhận ngắt Overrun + Clock Devider Register (00): tốc độ chuẩn 100kbps + Command Register (010): phát tín hiệu Start, tắt W/R để báo Slave biết - Master sẽ phát liệu Sau phát Stop (000) + Status Register: cho phép I2C Master hoạt động Kiểm tra đường liệu SDA clock SCL Trang 62 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP - Kiểm tra tín hiệu nội I2C Slave I2C Master Kết mô phỏng: Hình 4.5: Master truyền Hình 4.6: Slave nhận Giải thích kết quả: Trang 63 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP - Master Transmitter: + Clock Master được tạo từ khối Clock Devider với tín hiệu i_clock_en i_clock_stop + Master ở mode Transmit với liệu phát txff_data 8’h02, 8’h03, 8’h04 được đọc từ TxFIFO Tương ứng ta thấy trỏ đọc TxFIFOtxff_rptr tăng lên để trỏ đến liệu xác + Đối với máy trạng thái hữu hạn FSM, máy ở trạng thái IDLE, sau đến trạng thái FIRSTBYTE để truyền byte chứa địa Slave muốn giao tiếp bit hướng truyền Sau nhận bit ACK xác nhận truyền địa chỉ, máy chuyển sang trạng thái TRANSMIT để phát byte liệu Các tín hiệu m_fsm_idle, m_fsm_firstbyte, m_fsm_transmit ứng với trạng thái IDLE, FIRSTBYTE, TRANSMIT + Các bit hiz, zero, one để quy định mức đường liệu SDA Bit zero one bật lên ở đoạn đầu đoạn cuối trình truyền hình 4.4 để tạo điều kiện START STOP Khi truyền byte liệu, tín hiệu tắt, SDA thay đổi theo liệu Ở xung clock thứ 9, bit hiz bật lên, thả đường truyền cho Slave trả bit ACK - Slave Receiver: + Tương tự, Slave ở trạng thái nhận nên bit rx_busy tích cực + Sau byte đầu tiên, Slave kiểm tra địa với địa mình, nên s_right_add bật lên, trình truyền nhận bắt đầu + Các liệu nhận được ghi vào RxFIFO tương ứng 8’h02, 8’h03, 8’h04 Con trỏ ghi rxff_wptr tăng + Sau cuối byte truyền, thấy nhận đủ byte, ack_return bật lên để kéo đường SDA xuống 0, tương ứng bit s_hiz tắt để bật bit zero Trong trình truyền, s_hiz tích cực để thả đường SDA cho Master truyền liệu + Đối với máy trạng thái hữu hạn, ban đầu ở trạng thái chờ IDLE (bit s_fsm_idle tích cực), sau phát được bit START đường truyền chuyển sang trạng thái FIRSTBYTE để so sánh địa (bit s_fsm_firstbyte tích cực) Sau kiểm tra địa với địa máy chuyển sang trạng thái RECEIVE (s_fsm_receive tích cực) để nhận liệu phát bit STOP Trang 64 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP Đánh giá kết quả: - Byte Master truyền địa Slave (1010101) bit R/W = - (master truyền) Các byte liệu truyền được 8’h02, 8’h03, 8’h04 với liệu - đưa xuống I2C Master Transmit FIFO Master Receive FIFO Slave hoạt động với thiết - kế Tốc độ SCL tương ứng 100kps 4.4.2 Mode Master nhận – Slave truyền: - - Phương pháp mô phỏng: Thiết lập ghi cấu hình I2C Slave tương tự mode 3.3.3.2 + Control Register (011): xác định thiết bị Slave, xóa FIFO truyền, nhận + Address Register (1010101): gán địa thiết bị Slave + Interrupt Enable Register (111): cho phép ngắt Truyền, Nhận Overrun + Status Register: cho phép I2C Slave hoạt động Đưa liệu từ APB xuống I2C Slave Thiết lập giá trị ghi điều khiển I2C Master sau: + Control Register (111): thiết bị Master, xóa FIFO truyền, nhận + Transmit Address Register (1010101): cho Master biết địa Slave sẽ giao tiếp + Interrupt Enable Register (111): cho phép ngắt Truyền, Nhận Overrun + Clock Devider Register (00): tốc độ chuẩn 100kbps + Command Register (011): phát tín hiệu Start, bật W/R để báo Slave biết - Master sẽ đọc liệu Sau phát Stop (001) + Status Register: cho phép I2C Master hoạt động Kiểm tra đường liệu SDA clock SCL Kiểm tra tín hiệu nội I2C Slave I2C Master Kết mô phỏng: Trang 65 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP Hình 4.7: Master nhận Hình 4.8: Slave truyền Giải thích kết quả: - Master Receiver: Trang 66 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP + Khi Master ở trạng thái Receive, ban đầu sẽ phát byte địa nên bit i_tx_busy tích cực, sau sẽ nhận liệu từ Slave nên i_rx_busy bật lên + Cứ sau lần dịch đủ bit 1byte bit i_rxff_wr lại bật lên để ghi vào RxFIFO, tương ứng trỏ ghi rxff_wptr tăng lên để ghi liệu vào địa Dữ liệu nhận được thấy theo tín hiệu rx_din 8’h7f, 8’h80, 8’h81 + Cuối byte, bit ack_return bật lên để trả ACK cho Slave, bit zero tích cực + Máy trạng thái hữu hạn hoạt động lần lượt từ IDLE sang FIRSTBYTE đến RECEIVE + Để kiểm soát đường truyền, bit hiz, one zero phải tích cực thống Trong trình tạo điều kiện START STOP one zero bật lần lượt Trong truyền liệu hiz bật, thả SDA cho liệu từ Slave - Slave Transmitter: + Sau phát bit START, Slave nhảy vào trạng thái FIRSTBYTE để kiểm tra địa Khi byte với địa (s_right_add tích cực) xác nhận hướng truyền từ Slave qua Master Slave nhảy sang trạng thái TRANSMIT + Dữ liệu truyền 8’h7f, 8’h80, 8’h81 Tín hiệu i_txff_rd tích cực để đọc byte liệu TxFIFO + Trong trình truyền byte liệu, hiz tắt để SDA truyền liệu Tại xung clock thứ SCL, hiz bật để chờ nhận ACK từ Master Đánh giá kết quả: - Byte Master truyền địa Slave (1010101) bit R/W = - (master nhận) Các byte liệu truyền được 8’h7f, 8’h80, 8’h81 với liệu - đưa xuống I2C Slave Transmit FIFO Slave Receive FIFO Master hoạt động với thiết - kế Tốc độ SCL tương ứng 100kps 4.5 Mô APB – UART/I2C Controller: Phương pháp mô phỏng: Trang 67 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP - Cấu hình cho thiết bị I2C ở mode Master nhận – Slave truyền ở mục 3.3.3.2 với APB – UART/I2C Controller đóng vai trò I2C Master: + Thiết lập ghi cấu hình I2C Slave:  Control Register (011): xác định thiết bị Slave, xóa FIFO truyền; xóa FIFO nhận  Address Register (1010101): gán địa thiết bị Slave  Interrupt Enable Register (111): cho phép ngắt Truyền, ngắt Nhận ngắt Overrun  Status Register: cho phép I2C Slave hoạt động + Thiết lập giá trị ghi điều khiển I2C Master sau:  Control Register (111): xác định thiết bị Master; xóa FIFO truyền; xóa FIFO nhận  Transmit Address Register (1010101): cho Master biết địa Slave sẽ giao tiếp  Interrupt Enable Register (111): cho phép ngắt Truyền; ngắt Nhận ngắt Overrun  Clock Devider Register (00): tốc độc chuẩn 100kbps  Command Register (011): phát tín hiệu Start, bật W/R để báo Slave biết Master sẽ đọc liệu Sau phát Stop (001)  Status Register: cho phép I2C Master hoạt động - Cấu hình cho UART: + Control Register (1110101): Xóa FIFO truyền; xóa FIFO nhận; set mức ngưỡng FIFO truyền nhận byte; bật chế độ Autoflow + Baudrate Register : (11011000): đưa tốc độ Baud tương ứng 19200 + Interrupt Enable Register (11111): cho phép ngắt Truyền, ngắt Nhận, ngắt Overrun, ngắt Frame ngắt Parity + Status Register (111): bật bit kiểm tra chẵn lẻ Parity, chọn Bsel = cho phép - UART hoạt động Dữ liệu được lưu FIFO nhận I2C Master sẽ được APB Master đọc - đưa lên UART UART phát liệu vừa nhận từ APB Đồng thời nối đầu TX vào đầu vào RX - nên UART đồng thời nhận liệu Kiểm tra liệu đường truyền SDA có với liệu đưa vào I2C Slave Kiểm tra hoạt động clock SCL Kiểm tra liệu phát nhận vào đường TX RX có với liệu - từ I2C Kiểm tra tín hiệu nội UART I2C Trang 68 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP Kết mô phỏng: Hình 4.11: Truyền nhận UART/I2C Controller Giải thích kết quả: - Kết mô thêm trường hợp sử dụng bit RESTART Khi có - bit RESTART, đường SCL kéo lên mức Ban đầu Master nhận liệu 8’h7f, 8’h80, 8’h81, 8’h82 từ Slave Sau có bit RESTART, Master nhảy lại trạng thái FIRSTBYTE để truyền địa hường truyền Sau RESTART, Master truyền byte liệu 8’h02, 8’h03, 8’h04, 8’h05 Ta thấy trỏ ghi RxFIFO rxff_wptr, trỏ đọc TxFIFO txff_rptr tăng lên theo byte liệu nhận hay - truyền Dữ liệu nhận từ I2C được APB điều khiển đọc truyền qua UART byte 8’h7f, 8’h80, 8’h81 - Đánh giá kết quả: I2C Master nhận được byte liệu từ I2C Slave Theo điều khiển APB - Master truyền byte đầu cho UART UART truyền nhận lại byte theo điều khiển APB Master theo - tốc độ baud thiết kế Vậy APB – UART/I2C Controller hoạt động Trang 69 Chương 4: MÔ PHỎNG VÀ TỔNG HỢP 4.6 Tổng hợp phần mềm Quartus II 9.0 Web Edition: Kết tổng hợp: Hình 4.12: Kết tổng hợp Quartus Đánh giá kết quả: + + + + Thiết kế được nhúng EP2C35F672C6, thuộc họ Cyclone II Lõi IP sử dụng: 411/33.216 ghi (3%) 554/483.840 bit nhớ (3%) 943/33.216 thành phần logic ([...]... clock ngoại Trang 22 Chương 2: THIẾT KẾ KHỐI UART Chương 2: THIẾT KẾ KHỐI UART 2.1 Giới thiệu chương: Chương này đi vào chi tiết các bước thiết kế, cho thấy rõ cấu tạo bên trong của lõi IP UART Controller Quá trình thiết kế lõi IP UART được thực hiện từ việc nghiên cứu các nguồn tài liệu liên quan đến UART để từ đó xây dựng sơ đồ tín hiệu và sơ đồ khối tổng quát (thiết kế mức kiến trúc) Tiếp theo,... liệu 2.3 Thiết kế mức kiến trúc: Từ cơ sở lý thuyết về UART đã trình bày trong chương 1,ta thiết kế được lõi UART với các đặc trưng như yêu cầu.Sơ đồ tín hiệu vào ra của lõi UART được thể hiện theo Hình 2.1 Như đã đề cập ở trên ,lõi UART sẽ giao tiếp với bus AMBA APB nên tín hiệu vào của UART là các tín hiệu điều khiển từ vi điều khiển thông qua APB bus Tín hiệu vào UART còn là tín hiệu uart_ rx... Reset APB Tín hiệu Clock APB Tín hiệu chọn lựa APB Tín hiệu tra cứu APB Tín hiệu đọc/ghi APB Bus địa chỉ APB Bus dữ liệu ghi từ APB Bus dữ liệu đọc ra APB Đường dữ liệu ra Đường dữ liệu vào Clear to send Request to send Cờ ngắt truyền Cờ ngắt nhận Cờ ngắt overrun Cờ ngắt parity Cờ ngắt lỗi khung dữ liệu Cờ ngắt tổng hợp Trang 24 Chương 2: THIẾT KẾ KHỐI UART Bảng 2.1 Tín hiệu của lõi IP UARTController... trúc) Tiếp theo, các khối con được phân tích chi tiết đến mức cổng logic (thiết kế mức chức năng), sau đó code RTL được viết từ sơ đồ mạch 2.2 Đặc tính của lõi IP UART Controller: - Lõi IP UARTController được thiết kế với các đặc tính chính sau: Tương thích chuẩn công nghiệp 16550 Giao tiếp với vi xử lý theo chuẩn bus AMBA APB Hỗ trợ tốc độ baud cấu hình được Khung dữ liệu 8 bit, 1 bit stop Hỗ... Frame Flag Cờ ngắt khung dữ liệu Bảng 2.2 Tập thanh ghi cấu hình lõi IP I2C Controller 2.5 Thiết kế mức chức năng: Trên cơ sở thiết kế mức kiến trúc như trên,ta sẽ đi vào thiết kế sơ đồ chi tiết của từng khối nhỏ.Có 5 khối nhỏ trong toàn bộ khối UART như trình bày ở trên 2.5.1 Khối AMBA APB INTERFACE: Hình 2.4.Sơ đồ khối khối AMBA APB INTERFACE Từ các tín hiệu vào và ra của khối (Hình 2.4),ta sẽ... báo bên phát dừng phát dữ liệu nếu như RxFIFO nhận đã đầy Ngoài ra UART gửi 5 tín hiệu ngắt,hoặc 1 tín hiệu ngắt tổ hợp về vi điều khiển xử lý Hình 2.1.Sơ đồ tín hiệu vào ra khối UART Tên tín hiệu prst_n pclk psel penable pwrite paddr pwdata prdata uart_ tx uart_ rx uart_ cts uart_ rts uart_ txif uart_ rxif uart_ ovif uart_ peif uart_ feif uart_ if Độ dài bit 1 1 1 1 1 32 32 32 1 1 1 1 1 1 1 1 1 1 Input/Output... chức năng logic của thiết kế 1.2.2.3 Physical Design: Design Compiler: tổng hợp code RTL thành các cổng logic IC Compiler: thực hiện quá trình layout thiết kế Prime Timer: kiểm tra timing của thiết kế Hercules: kiểm tra thiết kế vật lý, Design Rule Check (DRC) và Layout Versus Schematic (LVS) 1.3 Cơ sở lý thuyết về AMBA APB 1.3.1 Giới thiệu chung về Bus APB [1] APB (Advanced Peripheral Bus) là 1 phần... liệu nhận được từ đường truyền Ngoài ra lõi UART còn nhận tín hiệu uart_ cts để điều khiển truyền nhận tự động.Nếu tín hiệu uart_ ctstích cực nghĩa là bên nhận đã nhận đầy vào RxFIFO và đang yêu cầu UART phát dừng quá trình phát Tín hiệu ra của khối UART là dữ liệu truyền đi trên đường truyền uart_ tx Trang 23 Chương 2: THIẾT KẾ KHỐI UART UART còn gửi đi tín hiệu uart_ rts để thông báo bên phát dừng phát... của UART. Để thiết kế được khối UART hoàn chỉnh ta chia thành thiết kế 5 khối nhỏ (Hình 2.2) - Khối AMBA APB INTERFACE: Chức năng chính của khối AMBA APB INTERFACE là thực hiện quá trình giao tiếp giữa UART với bus APB. Bên trong khối này ta còn xây dựng thêm các khối nhỏ là khối các thanh ghi cấu hình,khối điều khiển ngắt cũng như TxFIFO - Khối BAUD RATE GENERATOR:Quá trình truyền và nhận trong UART. .. trong lõi UART. Khối BAUD RATE GENERATOR này tạo tốc độ baud mong muốn từ nguồn clock 50Mhz sẵn có của Kit FPGA - Khối TRANSMITTER:nhận dữ liệu từ bus APB (apb_ data),dịch từng bit và truyền đi trên đường truyền - Khối RECEIVER:nhận dữ liệu từ đường truyềnuart_rx, chuyển thành byte và lưu vào RxFIFO Hình 2.2.Sơ đồ khối tổng quát UART 2.4 Thanh ghi cấu hình củaUART: Trang 25 Chương 2: THIẾT KẾ KHỐI UART

Ngày đăng: 24/06/2016, 22:22

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

Tài liệu liên quan