1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế và thi công bộ truyền nhận theo giao thức I2C

9 32 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 1,16 MB

Nội dung

Trong nội dung bài báo này, trình bày quá trình thiết kế một module I2C giao tiếp qua chuẩn bus AMBA APB (Advanced Microcontroller Bus Architecture - Advanced Peripheral Bus). Cụ thể, module I2C được thiết kế bằng ngôn ngữ mô tả phần cứng Verilog, có thể cấu hình là Master hoặc Slave và hỗ trợ nhiều tốc độ truyền dữ liệu khác nhau.

60 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh THIẾT KẾ VÀ THI CƠNG BỢ TRÙN NHẬN THEO GIAO THỨC I2C DESIGN AND VERIFICATION OF AN I2C CONTROLLER Dương Minh Trí, Nguyễn Hồng Kỳ Anh, Nguyễn Chí Phúc, Nguyễn Đinh Cao Tú, Trần Minh Trí, Huỳnh Hoàng Hà, Đỗ Duy Tân Trường Đại học Sư phạm Kỹ thuật TP.HCM, Việt Nam Ngày soạn nhận 4/5/2021, ngày phản biện đánh giá 4/6/2021, ngày chấp nhận đăng 25/6/2021 TÓM TẮT I2C (Inter-Integrated Circuit) chuẩn truyền liệu nối tiếp đồng sử dụng rộng rãi để kết nối nhiều IC (Integrated Circuit) với hay kết nối IC ngoại vi với tốc độ trung bình thấp hệ thống số Điểm mạnh chuẩn I2C khả kết nối vi xử lý trung tâm nhiều ngoại vi với phần cứng đơn giản Trong nội dung báo này, chúng tơi trình bày q trình thiết kế module I2C giao tiếp qua chuẩn bus AMBA APB (Advanced Microcontroller Bus Architecture - Advanced Peripheral Bus) Cụ thể, module I2C thiết kế ngôn ngữ mô tả phần cứng Verilog, cấu hình Master Slave hỗ trợ nhiều tốc độ truyền liệu khác Nhiều kết đánh giá qua mô trình bày để xác thực chất lượng module I2C thiết kế Từ khóa: chuẩn I2C; FPGA; giao tiếp số; AMBA; mô ABSTRACT I2C (Inter-Integrated Circuit) is a synchronous serial data transmission standard widely used to connect multiple ICs (Integrated Circuits) together or to connect ICs and peripherals with low-to-medium speed in digital systems The main advantage of the I2C standard is the ability to connect the central processor and multiple peripherals with simple hardware In this paper, we present the design process of an I2C module communicating via AMBA APB (Advanced Microcontroller Bus Architecture - Advanced Peripheral Bus) bus standard Specifically, the I2C module is designed using Verilog hardware description language, can be configured as a Master or a Slave, and supports various data transmission rates Extensive simulation results are presented to verify the performance of the designed I2C module Keywords: I2C standard; FPGA; digital interface; AMBA; testbench GIỚI THIỆU Inter–Intergrated Circuit (I2C) chuẩn bus nối tiếp phát triển hãng sản xuất linh kiện điện tử Philips Do tính ưu việt đơn giản, I2C chuẩn hóa sử dụng rộng rãi module truyền thông nối tiếp vi mạch tích hợp ngày Bus I2C sử dụng cho nhiều loại IC khác loại vi điều khiển 8051, PIC, AVR, ARM, chip RAM tĩnh (static RAM), EEPROM, chuyển đổi tương tự-số (ADC), số-tương tự (DAC), IC điều khiển LCD… Thiết kế bus I2C sử dụng ngôn ngữ mô tả phần cứng Verilog [1-2] trình bày Doi: https://doi.org/10.54644/jte.65.2021.141 nhiều báo [3-8] Trong báo [3], tác giả thực thiết kế chuyển đổi từ giao tiếp SPI sang I2C nhằm mục đích chuyển đổi giao tiếp cho thiết bị gửi có tốc độ truyền nhận cao sang thiết bị nhận có tốc độ truyền nhận thấp Trong báo [4] [5], tác giả thiết kế bus I2C có khả đáp ứng nhiều Master cùng bus bằng việc sử dụng máy trạng thái (FSM) để thực định ưu tiên Master điều khiển I2C hoạt động cùng thời điểm Các tác giả báo [6] [7] trình bày việc triển khai điều khiển I2C FPGA để kết nối ADC thông qua bus I2C nhằm mục đích đờng hóa Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh liệu ADC FPGA Thêm vào đó, báo số [8] trình bày cách thiết kế thi công chuẩn I2C dựa giao thức Wishbone Tuy nhiên, thiết kế [3-8] chưa trình bày chi tiết thiết kế bao gồm thiết kế đơn giản, chưa có nhiều cấu hình hỗ trợ nhiều tốc độ truyền-nhận Để cải thiện hạn chế nêu trên, báo trình bày thiết kế module I2C sử 61 dụng giao tiếp bus AMBA APB (Advanced Microcontroller Bus Architecture-Advanced Peripheral Bus) ARM [9] cấu hình Master Slave, đờng thời hỗ trợ nhiều tốc độ truyền liệu khác Hình minh họa hệ thống System-On-Chip (SoC) sử dụng bus AMBA module I2C Thiết kế đánh giá mô ISE Design Suite 14.7, QuestaSim 10.2 Quartus II 13.0 Hình Hệ thống SoC sử dụng AMBA bus module I2C THIẾT KẾ CHI TIẾT HỆ THỐNG Module thực truyền nhận dựa tín hiệu cấu hình, tệp ghi đệm FIFO có nhiệm vụ lưu liệu cấu hình thực đờng liệu, cuối module giao tiếp với bus I2C Trong báo này, thực thiết kế module giao tiếp I2C có khả giao tiếp tối đa 128 thiết bị cấu hình tốc độ truyền Sơ đồ khối module I2C thể Hình 2.1 Module APB Interface Module APB Interface có chức giao tiếp với bus APB đồng thời điều khiển ghi/đọc liệu Khối APB Interface gồm Register File (tệp ghi) chứa 10 ghi có độ rộng bit, ghi cấu hình tín hiệu điều khiển từ bus APB, tạo tín hiệu điều khiển cho khối lại module I2C hoạt động khối điều khiển ngắt tạo tín hiệu ngắt cho khối I2C (i2c_if) tạo từ tín hiệu tổng hợp ngắt truyền, ngắt nhận ngắt tràn 2.2 Module Clock Divider Module Clock Divider tạo tín hiệu xung clock với tần số mong muốn cung cấp cho bus I2C Khối Clock Divider hoạt động dựa theo tín hiệu kích hoạt i_clock_en tín hiệu bất hoạt i_clock_stop tạo từ khối I2C Interface Tần số đường SCL Master tạo lựa chọn dựa vào tín hiệu apb_csel lấy từ ghi cấu hình 2.3 Bộ đệm TX FIFO RX FIFO TX FIFO đệm cho trình truyền liệu, RX FIFO đệm cho q trình đọc liệu, đảm bảo liệu khơng bị bất đồng miền xung clock vi xử lý giao tiếp I2C Các khối FIFO 62 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh xây dựng dựa khối Write Pointer (con trỏ ghi liệu), Read Pointer (con trỏ đọc liệu), Memory Array (mảng nhớ) Status Control (khối điều khiển trạng thái) Trong đó khối điều khiển trạng thái có chức kiểm tra trỏ đọc ghi để phân biệt trạng thái đầy trống đệm FIFO Hình Sơ đồ khối chi tiết module I2C thiết kế 2.4 Module I2C Interface Module có chức truyền nhận liệu theo giao thức I2C Khối hoạt động hai chế độ Master Slave dựa tín hiệu cấu hình từ tập ghi Register File, tín hiệu txff_empty, rxff_ov giúp thơng báo trạng thái từ đệm TX FIFO RX FIFO, tín hiệu i_clk cung cấp xung clock cho đường SCL từ Clock Divider Bên module cịn có mạch phát điều kiện start/stop dựa thiết kế mạch phát cạnh xung, mạch xác định hướng truyền liệu, mạch xác định xung ACK ghi dịch giúp truyền, nhận liệu nối tiếp đồng với xung clock đường SCL 2.5 Mô tả ghi Các ghi định nghĩa thiết kế miêu tả qua Bảng Cấu hình Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh 63 chi tiết chức ghi miêu tả qua Bảng Slave) để kiểm tra hoạt động thiết kế Mơ hình mơ thể Hình ĐÁNH GIÁ CHẤT LƯỢNG CỦA THIẾT KẾ Bảng Các ghi ứng với địa PADDR kiểu truy cập 3.1 Tài nguyên logic sử dụng Tên Thanh Ghi CONTROL Bảng Chức năng, địa kiểu truy cập ghi PAD DR [7:0] 0x1C 0x20 0x24 0x28 0x2C 0x30 Kiểu truy cập Đọc/ Ghi Đọc Đọc/ Ghi Đọc/ Ghi Đọc/ Ghi Đọc/ Ghi Tên ghi CONTROL STATUS/ENA BLE ADDRESS COMMAND DATA INTERRUPT ENABLE RAW INTERRUPT ENABLE INTERRUPT FLAG REGISTER 0x34 Đọc 0x38 Đọc 0x3c Đọc/ Ghi CLOCK SELECT Đọc/ Ghi TRANSMIT ADDRESS 0x40 Chức Thanh ghi điều khiển Thanh ghi trạng thái Thanh ghi địa STATUS/ENABLE ADDRESS Thanh ghi lệnh Thanh ghi liệu Thanh ghi cho phép ngắt COMMAND Thanh ghi ngắt Thanh ghi cờ ngắt Thanh ghi chứa giá trị tần số xung clock chọn Thanh ghi chứa địa Slave muốn truyền Thiết kế với đầy đủ chức tổng hợp FPGA Spartan XC6SLX9FT(G)256 hãng Xilinx [10] có tài nguyên logic sử dụng tóm tắt Bảng Tần số hoạt động tối đa mạch tổng hợp FPGA Spartan XC6SLX9FT(G)256 124,245 MHz (xem bảng 4) Đồng thời thiết kế tổng hợp Quartus II theo cấu hình board Cylone II [11] để so sánh tài nguyên logic cần sử dụng board FPGA (Bảng 5) Tần số tối đa thiết kế board Cylone II 150.35MHz (Bảng 6) DATA INTERRUPT ENABLE RAW INTERRUPT ENABLE INTERRUPT FLAG REGISTER CLOCK SELECT 3.2 Kết đánh giá qua mơ 3.2.1 Mơ hình mơ tóm tắt Testcase Thiết kế mơ QuestaSim 10.2 với mơ hình cho module thiết kế cấu hình khác (1 Master TRANSMIT ADDRESS Miêu Tả Ký hiệu: CTR CTR[0]: Xóa nội dung FIFO truyền CTR[1]: Xóa nội dung FIFO nhận CTR[2]: Cấu hình hoạt động thiết bị ‘0’ – Slave ,‘1’ – Master Ký hiệu: SE SE[0]: Cho phép I2C hoạt động SE[1]: TX FIFO chưa đầy SE[2]: RX FIFO chưa trống SE[3]: Khối I2C làm việc Ký hiệu: ADDR ADDR[6:0]: Địa thiết bị hoạt động Slave Ký hiệu: COM COM[0]: Điều khiển hướng truyền liệu ‘0’ – Master -> Slave ‘1’ – Master 8’h09 Thanh ghi 286 4608 6% Chân 32 89 36% + CTR (111): cấu hình Master, xóa FIFO truyền, nhận Số bit nhớ 256 1119808 8’h82 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh 65 Hình Mơ hình mơ kiểm tra thiết kế Hình Mơ đường liệu SDA, clock SCL tín hiệu nội Master truyền (Testcase 1) Hình Mô đường liệu SDA, clock SCL tín hiệu nội Slave nhận (Testcase 1) 66 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh Hình Mơ đường liệu SDA, clock SCL tín hiệu nội Master nhận (Testcase 2) Hình Mơ đường liệu SDA, clock SCL tín hiệu nội Slave truyền (Testcase 2) Thiết kế mô qua Testcase liệt kê Bảng 7, bao hàm tốc độ truyền 100 kbps 3,4 Mbps Dữ liệu cấu hình liệu truyền nhận đọc ghi qua chu kỳ giao tiếp bus APB Lần lượt Testcase thực mô kiểm tra Dựa vào đó để kết luận thiết kế hoạt động tốt mô phỏng, đảm bảo việc truyền nhận I2C nhiều tốc độ cấu hình khác nhau, khả giao chuẩn APB 3.2.2 Phân tích kết mơ Trong phần này, chúng tơi trình bày kết đánh giá qua mô tương ứng với Testcase 3.2.2.1 Testcase • Master truyền Hình trình bày kết mơ cho trường hợp master truyền Xung clock Master tạo kết thúc bằng tín hiệu i_clock_en i_clock_stop Con trỏ TX FIFO txff_rptr tăng tương ứng đọc liệu từ ghi txff_data 8’h06, 8’h07, 8’h08, 8’h09 để gửi liệu Máy trạng thái FSM bắt đầu trình giao tiếp chuyển từ trạng thái IDLE sang trạng thái FIRSTBYTE gửi byte địa mà Slave cần giao tiếp, sau nhận bit ACK xác nhận truyền địa chỉ, FSM chuyển trạng thái sang TRANSMIT để phát bit liệu Các tín hiệu hiz, zero one định Master hay Slave lái tín Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh hiệu đường liệu SDA, đảm bảo việc truyền nhận Master Slave • Slave nhận Hình trình bày dạng sóng mơ ứng với trường hợp slave nhận Slave trạng thái nhận liệu nên bit rx_busy tích cực Sau byte địa đầu tiên, Slave kiểm tra địa xác nhận bật bit s_right_add bắt đầu trình truyền nhận Các liệu nhận trên RX FIFO tương ứng liệu gửi, trỏ ghi rxff_wptr tăng Sau byte truyền, nhận đủ byte, ack_return bật lên kéo đường SDA xuống để xác nhận truyền đủ bit Đối với FSM phía Slave, bắt đầu giao tiếp chuyển từ trạng thái IDLE sang trạng thái FIRSTBYTE để so sánh byte địa chỉ, xác chuyển sang trạng thái RECEIVE để bắt đầu nhận liệu Bảng Bảng đánh giá kết mô Testcase Đánh giá - Đảm bảo thiết kế hoạt động xác cấu hình Master truyền hay Slave nhận - Byte địa Master gửi với địa cấu hình Slave (1010101) bit điều khiển truyền nhận xác R/W = (Master gửi liệu) - Các byte liệu đưa xuống Master truyền xác - TX FIFO RX FIFO đảm bảo liệu truyền nhận hoạt động với thiết kế đề - Tốc độ SCL tương ứng 100 kbps - Đảm bảo thiết kế hoạt động xác cấu hình Master nhận hay Slave truyền - Byte địa Master gửi với địa cấu hình Slave (1010101) bit điều khiển truyền nhận xác R/W = (Master nhận liệu) - Các byte liệu đưa xuống Slave truyền xác - TX FIFO RX FIFO đảm bảo liệu truyền nhận hoạt động với thiết kế đề - Tốc độ SCL tương ứng 3,4 Mbps 67 3.2.2.2 Testcase • Master nhận Hình trình bày dạng sóng mô cho trường hợp master nhận Xung clock tạo từ Master tương tự Testcase Khi Master trạng thái Receive, ban đầu phát byte địa giao tiếp với Slave nhận liệu từ Slave đó tín hiệu i_rx_busy tích cực Sau bit, tín hiệu i_rxff_wr bật đờng thời tăng giá trị trỏ ghi rxff_wptr để ghi liệu vào ghi RX FIFO Dữ liệu nhận tương ứng 8’h7f, 8’h80, 8’h81 8’h82 Đồng thời cuối byte liệu nhận, tín hiệu ACK tích cực báo cho Slave • Slave Transmit Hình trình bày kết mơ cho trường hợp slave truyền Sau nhận địa gửi từ Master, FSM phía Slave chuyển từ trạng thái IDLE sang trạng thái TRANSMIT để gửi liệu, liệu truyền 8’h7f, 8’h80, 8’h81, 8’h82 Tín hiệu i_txff_rd bật để tăng trỏ i_txff_wptr để đọc liệu từ TX FIFO gửi liệu Sau so sánh kết mô so với lý thuyết yêu cầu thiết kế, nhận thấy rằng module I2C thiết kế hoạt động xác, đáp ứng yêu cầu thiết kế với nhiều cấu hình khác (như tóm tắt bảng 8) KẾT LUẬN Thiết kế module I2C trình bày báo sử dụng chuẩn bus AMBA APB Thiết kế hỗ trợ nhiều cấu hình tốc độ truyền nhận Bên cạnh đó, thiết kế sử dụng soft IP core trình thiết kế Front-End thiết kế IC Ngoài ra, hầu hết thiết kế vi mạch trình bày chi tiết, báo có giá trị tài liệu tham khảo cho việc học tập môn liên quan tới thiết kế hệ thống số thiết kế vi mạch số 68 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 65 (08/2021) Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh TÀI LIỆU THAM KHẢO [1] [2] Pong P Chu RTL Hardware Design using VHDL A JOHN WILEY & SONS, INC, 2006 Stephen Brown and Zvonko Vranesic Fundamentals of Digital Logic with Verilog Design (third edition) McGraw Hill, 2014 [3] D Trivedi, A Khade, K Jain and R Jadhav, "SPI to I2C Protocol Conversion Using Verilog," 2018 Fourth International Conference on Computing Communication Control and Automation (ICCUBEA), Pune, India, 2018, pp 1-4 [4] A Anagha and M Mathurakani, "Prototyping of dual master I2C bus controller," 2016 International Conference on Communication and Signal Processing (ICCSP), Melmaruvathur, 2016, pp 2124-2129 [5] A Anagha and M Mathurakani, "Prototyping of dual master I2C bus controller," 2016 International Conference on Communication and Signal Processing (ICCSP), Melmaruvathur, India, 2016, pp 2124-2129 [6] P Bagdalkar and L Ali, "Hardware Implementation of I2C Controller on FPGA and Validation Through Interfacing with Low-Cost ADC," 2020 Fourth International Conference on Inventive Systems and Control (ICISC), Coimbatore, India, 2020, pp 887-891 [7] C Liu, Q Meng, T Liao, X Bao and C Xu, "A Flexible Hardware Architecture for Slave Device of I2C Bus," 2019 International Conference on Electronic Engineering and Informatics (EEI), Nanjing, China, 2019, pp 309-313 [8] V Patel K.S and B R, "Design and Verification of Wishbone I2C Master Device," 2018 International Conference on Networking, Embedded and Wireless Systems (ICNEWS), Bangalore, India, 2018, pp 1-5 [9] AMBA™ Specification (Rev 2.0), developer.arm.com/docs/ihi0011/a/amba specification-rev-20 [10] Wael M El-Medany Reconfigurable CRC IP core design on xilinx spartan 3AN FPGA International Journal of Computer Applications in Technology (IJCAT), 55(4), 2017 [11] V Venkataramanan; S Lakshmi; Vineet A Kanetkar Design and implementation of LTE physical layer on FPGA International Journal of Computer Applications in Technology (IJCAT), 61(1), 2019 Tác giả chịu trách nhiệm viết: TS Đỗ Duy Tân Trường Đại học Sư phạm Kỹ thuật TP.HCM Email: tandd@hcmute.edu.vn ... thi? ??t kế thi công chuẩn I2C dựa giao thức Wishbone Tuy nhiên, thi? ??t kế [3-8] chưa trình bày chi tiết thi? ??t kế bao gồm thi? ??t kế đơn giản, chưa có nhiều cấu hình hỗ trợ nhiều tốc độ truyền -nhận. .. đờng liệu, cuối module giao tiếp với bus I2C Trong báo này, thực thi? ??t kế module giao tiếp I2C có khả giao tiếp tối đa 128 thi? ??t bị cấu hình tốc độ truyền Sơ đồ khối module I2C thể Hình 2.1 Module... thuyết yêu cầu thi? ??t kế, nhận thấy rằng module I2C thi? ??t kế hoạt động xác, đáp ứng yêu cầu thi? ??t kế với nhiều cấu hình khác (như tóm tắt bảng 8) KẾT LUẬN Thi? ??t kế module I2C trình bày báo

Ngày đăng: 17/01/2022, 10:10

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

TÀI LIỆU LIÊN QUAN

w