Nghiên cứu và thiết kế lõi IP mềm của I2C Core (Võ Thanh Hải) Full
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.
NỘI DUNG:
MỤC LỤC i
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
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.
NỘI DUNG:
MỤC LỤC i
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
Không có nhận xét nào: