Mã tài liệu: 255303
Số trang: 85
Định dạng: rar
Dung lượng file: 3,768 Kb
Chuyên mục: Kỹ thuật điện - điện tử
Đề 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 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ế 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 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 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 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 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 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 22
Bảng 2.2 Thiết lập giá trị đường SCL bằng các bit S21,S20 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 24
Bảng 2.4 Thanh ghi điều khiển/trạng thái S1 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ý 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 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) 12
Hình 2.3 Truyền nhận dữ liệu giữa chủ/tớ 13
Hình 2.4 Điều kiện START và STOP của bus I2C 14
Hình 2.5 Quá trình truyền 1 bit dữ liệu 15
Hình 2.6 Dữ liệu truyền trên bus I2C 16
Hình 2.7 Bit ACK, Not-ACK trên bus I2C 16
Hình 2.8 Cấu trúc byte dữ liệu đầu tiên 17
Hình 2.9 Quá trình truyền dữ liệu 17
Hình 2.10 Ghi dữ liệu từ chủ đến tớ 18
Hình 2.11 Đọc dữ liệu từ thiết bị tớ 19
Hình 2.12 Quá trình phối hợp đọc/ghi dữ liệu 19
Hình 2.13 Hình dạng và sơ đồ chân bộ điều khiển bus I2C PCF8584 20
Hình 2.14 Sơ đồ khối PCF8584 21
Hình 2.15 Thanh ghi đồng hồ S2 23
Hình 2.16 Thanh ghi dịch/đệm (shift register/read buffer) dữ liệu S0 25
Hình 2.17 Giản đồ định thì chế độ chủ truyền 29
Hình 2.18 Giản đồ định thì chế độ chủ nhận 30
Hình 2.19 Giản đồ định thì chế độ tớ truyền 30
Hình 2.20 Giản đồ định thì chế độ tớ nhận 30
Hình 2.21 Định thì RESET (tw4>=30tclk) 31
Hình 2.22 Chu kì STROBE (tw5=8tclk) 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 32
Hình 2.24 Sơ đồ giao tiếp với vi điều khiển 8051/8048 33
Hình 2.25 Sơ đồ giao tiếp với vi điều khiển 68000 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
Những tài liệu gần giống với tài liệu bạn đang xem
Những tài liệu bạn đã xem