Luận Văn Thiết kế core I2C

Thảo luận trong 'Điện - Điện Tử' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    Đề tài: Thiết kế core I2C


    MỤC LỤC

    DANH MỤC CÁC BẢNG BIỂU iii
    DANH MỤC CÁC HÌNH VẼ iii
    DANH MỤC CÁC TỪ VIẾT TẮT iii
    LỜI NÓI ĐẦU vi
    CHƯƠNG 1: NGÔN NGỮ VERILOG VÀ PHẦN MỀM THIẾT KẾ, MÔ PHỎNG 1
    1.1 Giới thiệu sơ lược về ngôn ngữ lập trình Verilog [4] 1
    1.1.1 Mô tả 1
    1.1.2 Tại sao sử dụng Verilog ? 1
    1.1.3 Một số qui ước thiết kế [1] 2
    1.1.3.1 Cấu trúc chương trình: 3
    1.1.3.2 Các kiểu dữ liệu và vùng nhớ: 3
    1.1.3.3 Toán tử 4
    1.1.3.4 Các cấu trúc điều khiển 6
    1.1.3.5 Điều khiển theo sự kiện 7
    1.1.3.6 Sự kết hợp giữa nhiều module 8
    1.2 Phần mềm thiết kế vi mạch Quartus II [4] 9
    1.2.1 Giới thiệu về phần mềm Quartus II 9
    1.2.2 Chức năng của phần mềm Quartus II 9
    1.2.2.1 Design Entry (Thiết kế ban đầu) 9
    1.2.2.2 Tổng hợp (Synthesis) 10
    1.2.2.3 Nối dây và định vị các phần tử-Fitting (Placement and Routing) 10
    1.2.2.5 Programing and Configuration 10
    1.3. Phần mền mô phỏng Modelsim Altera [4] 10
    CHƯƠNG 2: CHUẨN GIAO TIẾP I2C VÀ BỘ ĐIỀU KHIỂN BUS I2C PCF8584 11
    2.1 Chuẩn giao tiếp I2C [3] 11
    2.1.1 Giới thiệu chung về chuẩn giao tiếp I2C 11
    2.1.2 Đặc điểm giao tiếp I2C 11
    2.1.2.1 Điều kiện START và STOP (START and STOP conditions) 14
    2.1.2.2 Định dạng dữ liệu truyền 15
    2.1.2.3 Định dạng địa chỉ thiết bị 16
    2.1.2.4 Truyền dữ liệu trên bus I2C, chế độ Master - Slave 17
    2.1.2.5 Chế độ Multi‐Master 19
    2.2 Bộ điều khiển bus I2C PCF8584 20
    2.2.1 Đặc điểm [2] 20
    2.2.2 Sơ đồ và chức năng các chân 22
    2.2.3 Miêu tả các thanh ghi [2] 23
    2.2.3.1 Thanh ghi địa chỉ nội S0’ 23
    2.2.3.2 Thanh ghi đồng hồ S2 23
    2.2.3.3 Thanh ghi vector ngắt S3 24
    2.2.3.4 Thanh ghi dịch/đệm (shift register/read buffer) dữ liệu S0 25
    2.2.4 Truy cập các thanh ghi 28
    2.2.5 Giản đồ định thì ở các chế độ hoạt động 29
    2.2.6 RESET và STROBE: 31
    2.2.7 Cách chọn chế độ giao tiếp 31
    2.2.8 Sơ đồ giao tiếp với các vi điều khiển/vi xử lý 33
    CHƯƠNG 3: THIẾT KẾ VÀ MÔ PHỎNG LÕI IP CORE MỀM ĐIỀU KHIỂN BUS I2C 34
    3.1 Giới thiệu tính năng 34
    3.2 Sơ đồ chân 35
    3.3 Sơ đồ khối 36
    3.3.1 Mô tả chức năng và mục đích các khối 37
    3.3.2 Mô tả các thanh ghi 37
    3.4 Thiết kế và phân tích các khối 39
    3.4.1 Khối cpu_interface 39
    3.4.1.1 Tính năng 39
    3.4.1.2 Sơ đồ chân 42
    3.4.1.3 Mô tả chân 43
    3.4.1.4 Giản đồ định thời 45
    3.4.2 Khối control 46
    3.4.2.1 Tính năng 46
    3.4.2.2 Sơ đồ chân 46
    3.4.2.3 Mô tả chân 47
    3.4.2.4 Quá trình hoạt động : 48
    3.4.2.5 Lưu đồ hoạt động của từng trạng thái: 51
    3.4.3 Khối i2c_interface 51
    3.4.3.1 Tính năng: 51
    3.4.3.2 Mô tả chân 52
    3.4.3.3 Các trạng thái hoạt động của khối: 54
    3.4.3.4 Mô tả hoạt động từng trạng thái: 54
    3.4.3.5 Các loại mạch được sử dụng trong khối i2c_interface 56
    3.4.3.6 Giản đồ timing hoạt động của khối: 58
    3.4.4. Khối compare 60
    3.4.4.1 Mô tả chân 60
    3.4.4.2 Hoạt động chi tiết của khối compare 61
    3.4.5. Khối clock_generator 62
    3.4.5.1 Mô tả chân 62
    3.4.5.2 Tính năng 63
    3.4.6. Khối interrupt 64
    3.4.6.1 Mô tả chân 64
    3.4.6.2 Mục đích 65
    3.4.6.3 Thực hiện 65
    3.5 Kết quả mô phỏng 65
    3.5.1 Chủ truyền – Tớ nhận (Master Transmitter – Slave Receiver) 65
    3.5.2 Chủ nhận – Tớ truyền (Master Receiver - Slave Transmitter) 66
    3.5.3 Tiếp tục trao đổi dữ liệu sau khi phát lệnh Stop: 67
    3.5.3 Restart khi đang trao đổi dữ liệu: 72
    3.5.4 Bus lỗi: 74
    CHƯƠNG 4: KẾT LUẬN CHUNG VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 76
    4.1 Nhận xét chung 76
    4.1.1 Những kết quả đạt được 76
    4.1.2 Những giới hạn tồn tại 76
    4.2 Hướng phát triển 77
    TÀI LIỆU THAM KHẢO 77


    DANH MỤC CÁC BẢNG BIỂU​Bảng 2.1 Sơ đồ và chức năng chân PCF8584 [2] 22
    Bảng 2.2 Thiết lập giá trị đường SCL bằng các bit S21,S20 [2] 24
    Bảng 2.3 Giá trị các bit S24, S23, S22 tương ứng với giá trị tần số đồng hồ ở chân CLK [2] 24
    Bảng 2.4 Thanh ghi điều khiển/trạng thái S1 [2] 26
    Bảng 2.5 Giá trị bit STA-STO 27
    Bảng 2.6 Cách truy cập các thanh ghi của PCF8584 29
    Bảng 2.7 Các tín hiệu tự động cài đặt bởi PCF8584 khi giao tiếp với vi điều khiển / vi xử lý [2] 32
    Bảng 3.1 Sơ đồ chân I2C Core 35
    Bảng 3.2 Các thanh ghi 37
    Bảng 3.3 Chức năng các bit của thanh ghi S1 control (S1c) 37
    Bảng 3.4 Chức năng các bit của thanh ghi S1 status (S1s) 38
    Bảng 3.5 Thanh ghi data_buffer (S0d) 39
    Bảng 3.6 Mô tả chân khối cpu_interface 43
    Bảng 3.7 Giải mã địa chỉ các thanh ghi 44
    Bảng 3.8 Mô tả chân khối control 47
    Bảng 3.9 Mô tả chân khối i2c_interface 52
    Bảng 3.10 Bảng lựa chọn giữa gen_clko và scli 578
    Bảng 3.11 Mô tả chân khối compare 601
    Bảng 3.12 Mô tả chân khối clock_generetor 623
    Bảng 3.13 Bảng chia tần số đường SCL 63
    Bảng 3.14 Bảng chia tần số clock hoạt động của Core 634
    Bảng 3.15 Mô tả chân khối interrupt 645


    DANH MỤC CÁC HÌNH VẼ

    Hình 2.1 BUS I2C và các thiết bị ngoại vi [5] 11
    Hình 2.2 Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ nhanh (Fast mode) [3] 12
    Hình 2.3 Truyền nhận dữ liệu giữa chủ/tớ [3] 13
    Hình 2.4 Điều kiện START và STOP của bus I2C [3] 14
    Hình 2.5 Quá trình truyền 1 bit dữ liệu [3] 15
    Hình 2.6 Dữ liệu truyền trên bus I2C [3] 16
    Hình 2.7 Bit ACK, Not-ACK trên bus I2C [3] 16
    Hình 2.8 Cấu trúc byte dữ liệu đầu tiên [3] 17
    Hình 2.9 Quá trình truyền dữ liệu [3] 17
    Hình 2.10 Ghi dữ liệu từ chủ đến tớ [3] 18
    Hình 2.11 Đọc dữ liệu từ thiết bị tớ [3] 19
    Hình 2.12 Quá trình phối hợp đọc/ghi dữ liệu [3] 19
    Hình 2.13 Hình dạng và sơ đồ chân bộ điều khiển bus I2C PCF8584 [2] 20
    Hình 2.14 Sơ đồ khối PCF8584 [2] 21
    Hình 2.15 Thanh ghi đồng hồ S2 [2] 23
    Hình 2.16 Thanh ghi dịch/đệm (shift register/read buffer) dữ liệu S0 [2] 25
    Hình 2.17 Giản đồ định thì chế độ chủ truyền [2] 29
    Hình 2.18 Giản đồ định thì chế độ chủ nhận [2] 30
    Hình 2.19 Giản đồ định thì chế độ tớ truyền [2] 30
    Hình 2.20 Giản đồ định thì chế độ tớ nhận [2] 30
    Hình 2.21 Định thì RESET (tw4>=30tclk) [2] 31
    Hình 2.22 Chu kì STROBE (tw5=8tclk) [2] 31
    Hình 2.23 Chọn lựa chế độ giao tiếp: (1) Giao tiếp với họ MOTOROLA;(2) giao tiếp với họ INTEL [2] 32
    Hình 2.24 Sơ đồ giao tiếp với vi điều khiển 8051/8048 [2] 33
    Hình 2.25 Sơ đồ giao tiếp với vi điều khiển 68000 [2] 33
    Hình 3.1 Sơ đồ chân I2C core 35
    Hình 3.2 Sơ đồ khối I2C IP Core 36
    Hình 3.3 Bộ giải mã các thanh ghi 41
    Hình 3.4 Sơ đồ chân khối cpu_interface 42
    Hình 3.5 Ghi dữ liệu vào thanh ghi 45
    Hình 3.6 Đọc dữ liệu từ thanh ghi 45
    Hình 3.7 Sơ đồ chân khối control 46
    Hình 3.8 Sơ đồ máy trạng thái khối control 50
    Hình 3.9 Sơ đồ chân khối i2c_interface 52
    Hình 3.10 Sơ đồ máy trạng thái của khối i2c_interface 54
    Hình 3.11 Mạch phát hiện điều kiện Start/Stop trên bus I2C 56
    Hình 3.12 Mạch tạo tín hiệu nội i2c_busy_ox 56
    Hình 3.13 Mạch đồng bộ scl_s và sdai với clock hệ thống 57
    Hình 3.14 Mạch lấy dữ liệu tại cạnh lên của xung scli 58
    Hình 3.16 Quá trình đọc data và ghi ACK ra I2C bus 58
    Hình 3.17 Quá trình trì hoãn xung sclovà khi bus lỗi 59
    Hình 3.18 Timing của một số tín hiệu khác 59
    Hình 3.19 Sơ đồ chân khối compare 60
    Hình 3.20 Timing compare địa chỉ 61
    Hình 3.21 Sơ đồ chân khối clock_generator 62
    Hình 3.22 Sơ đồ chân khối interrupt 64
    Hình 3.23 Mạch tạo cờ ngắt 65
    Hình 3.24 Chủ phát Start + địa chỉ + truyền dữ liệu + phát Stop 65
    Hình 3.25 Tớ nhận điều kiện Start + địa chỉ + nhận dữ liệu + điều kiện Stop 66
    Hình 3.26 Chủ phát Start + địa chỉ + nhận dữ liệu + phát Stop 66
    Hình 3.27 Tớ nhận điều kiện Start + địa chỉ + phát dữ liệu +điều kiện Stop 67
    Hình 3.28 Chủ phát Start + địa chỉ + truyền dữ liệu + Stop + Start 67
    Hình 3.29 Chủ tiếp tục phát địa chỉ + truyền dữ liệu và lệnh Stop 68
    Hình 3.30 Tớ nhận điều kiện Start + địa chỉ + nhận dữ liệu + điều kiện Stop + Start 68
    Hình 3.31 Tớ nhận tiếp địa chỉ + nhận dữ liệu + điều kiện Stop 68
    Hình 3.32 Chủ phát Start + địa chỉ + truyền dữ liệu + Stop + Start + địa chỉ + nhận dữ liệu 69
    Hình 3.33 Tớ nhận điều kiện Start + địa chỉ + nhận dữ liệu + điều kiện Stop + điều kiện Start + địa chỉ + truyền dữ liệu 69
    Hình 3.34 Chủ phát Start + địa chỉ + nhận dữ liệu + Stop + Start + địa chỉ + truyền dữ liệu 70
    Hình 3.35 Tớ nhận điều kiện Start + địa chỉ + truyền dữ liệu + điều kiện Stop + điều kiện Start + địa chỉ + nhận dữ liệu 71
    Hình 3.36 Chủ phát Start + địa chỉ + nhận dữ liệu + Stop +Start + địa chỉ + nhận dữ liệu 71
    Hình 3.37 Tớ nhận điều kiện Start + byte địa chỉ + truyền dữ liệu + điều kiện Stop + điều kiện Start + địa chỉ+ truyền dữ liệu 72
    Hình 3.38 Chủ phát Start + địa chỉ + truyền dữ liệu + Restart + địa chỉ + truyền dữ liệu 72
    Hình 3.39 Chủ phát Restart + nhận dữ liệu 73
    Hình 3.40 Tớ nhận điều kiện Start + địa chỉ + nhận dữ liệu + Restart + địa chỉ + nhận dữ liệu 73
    Hình 3.41 Tớ nhận điều kiện Restart + địa chỉ + truyền dữ liệu 74
    Hình 3.42 Bus lỗi khi phát hiện điều kiện Start sai vị trí 74
    Hình 3.43 Bus lỗi khi phát hiện điều kiện Stop sai vị trí 75


    DANH MỤC CÁC TỪ VIẾT TẮT​Từ viết tắt Từ đầy đủ
    IC Integrated Circuit
    I2C-BUS Inter IC bus
    SDA Serial Data Line
    SCL Serial Clock Line
    VHDL VHSIC (Very High Speed Integrated Circuits) Hardware Language Design
    IEEE Institute of Electronics and Electrical Engineers
    FPGA Field-programmable Gate Array
    ACK Acknoledgement


    LỜI NÓI ĐẦU​Kể từ khi được phát triển bới hãng điện tử Phillips vào đầu những năm 1980, chuẩn giao tiếp I2C đã trở thành một chuẩn giao tiếp quốc tế, được công nhận ở hơn 50 quốc gia trên thế giới.Bus I2C hiện nay được rất nhiều các hãng điện tử nổi tiếng tích hợp vào trong các sản phẩm của hãng như vi xứ lý, vi điều khiển Do đó khả năng ứng dụng của bus I2C trong thiết kế vi mạch và các hệ thống số là rất rộng lớn.Tuy tốc độ giao tiếp không cao bằng nhiều chuẩn giao tiếp ra đời sau này, nhưng nhờ sự đơn giản về phần cứng, bus I2C vẫn là một sự lựa chọn phổ biến cho các hệ thống điều khiển sử dụng vi xử lý hay vi điều khiển.
    Xuất phát từ các yêu cầu thực tế và khả năng ứng dụng rộng rãi của bus I2C, nhóm chúng em quyết định chọn việc nghiên cứu và thiết kế lõi IP mềm của I2C Core với mục tiêu đề ra và đã đạt được là Core có thể điều khiển các chế độ hoạt động chủ yếu theo chuẩn giao tiếp I2C như:
    o Chủ truyền (Master Transceiver)
    o Chủ nhận (Master Receiver)
    o Tớ truyền (Slave Transceiver)
    o Tớ truyền (Slave Receiver)
    Đồng thời Core có thể giao tiếp ở tốc độ tiêu chuẩn (100kb/s) và tốc độ nhanh (400kb/s).
    Khả năng ứng dụng thực tế của đề tài này là có thể tích hợp I2C Core này vào các vi xử lý hay vi điều khiển do trung tâm ICDREC thiết kế.
    Sau đây là bố cục các nội dung được trình bày trong khóa luận:
    - Chương 1: Cung cấp các kiến thức cơ bản về ngôn ngữ Verilog , phần mềm Quartus II và chương trình mô phỏng ModelSim.
    - Chương 2: Giới thiệu về chuẩn giao tiếp I2C ở các phần cơ bản như cấu trúc phần cứng,cách kết nối giữa các phần tử trên bus,cách thực hiện giao tiếp truyền nhận dữ liệu giữa các phần tử,định dạng khung dữ liệu.Tiếp theo là đôi nét cơ bản về bộ điều khiển bus I2C PCF8584 do hãng Phillips chế tạo.Thiết kế của I2C Core trình bày trong luận văn này là dựa theo hình mẫu của PCF8584 với một số chỉnh sửa nhằm tạo sự đơn giản và thuận tiện cho việc thiết kế.
    - Chương 3: Là phần mô tả đặc tính chi tiết của từng module (bộ phận) trong I2C Core.Mỗi module đều được miêu tả chi tiết ở các chân vào (input)/ra (output), cách hoạt động và kết nối với các module khác để tạo nên một I2C Core hoàn chỉnh.Ngoài ra các sơ đồ khối,sơ đồ máy trạng thái,giản đồ định thì của các module cũng được trình bày nhằm giúp người đọc có thể dễ dàng tham khảo.
    - Chương 4: Tổng kết kết quả đạt được,những ưu điểm và hạn chế của đề tài cũng như hướng phát triển của đề tài trong tương lai.
     

    Các file đính kèm:

Đang tải...