本发明涉及通信,具体地说是适用于risc-v架构的i2c通信控制装置及方法。
背景技术:
1、i2c总线硬件设计简单,有极低的功耗,抗干扰能力强,可以实现多主多从,在电路设计中被广泛使用。
2、i2c是半双工的通信方式,现有的i2c控制器的数据收发共用同一个16bit的数据缓冲器tx_rd_data。在数据接收的时候16个bit全部发挥作用,但是在数据发送时只使用了低8个bit即tx_rd_data[7:0],tx_rd_data[8]被用于表示接收发送标志,tx_rd_data[9]用于表示总线重启标志,极大的影响了i2c的传输速率,尤其是在面对液晶屏等通信数据量较大的外设时,通信速率更是捉襟见肘。
3、如何提高i2c通信速率,是需要解决的技术问题。
技术实现思路
1、本发明的技术任务是针对以上不足,提供适用于risc-v架构的i2c通信控制装置及方法,来解决如何提高i2c通信速率的技术问题。
2、第一方面,本发明一种适用于risc-v架构的i2c通信控制装置,包括总线状态寄存器fifo_latch、数据收发缓冲寄存器tx_rd_data、以及从机地址寄存器i2c_addr,fifo_latch用于存储接收发送标志以及总线重启标志,tx_rd_data用于提供数据接收和发送缓存,i2c_addr用于存储放本次i2c通信的从机地址。
3、作为优选,fifo_latch[0]用于表示接收发送标志,fifo_latch[1]用于表示总线重启标志,tx_rd_data[15:0]用于数据接收和发送缓冲,i2c_addr[9:0]用于存储放本次i2c通信的从机地址。
4、作为优选,mcu向i2c模块发送数据时,所述装置用于执行如下:
5、mcu向i2c_addr写入目标从机地址,并向fifo_latch[1]写入总线重启标志,向fifo_latch[0]写入总线发送标志;
6、i2cm模块在读到以上寄存器后会将总线拉低,并产生一个起始位,将从机地址发出,在收到从机的应答后,依次将后面的数据通过总线发出。
7、作为优选,mcu从i2c模块接收数据时,所述装置用于执行如下:
8、mcu向i2c_addr寄存器写入目标从机地址,并向fifo_latch[1]写入总线重启标志,向fifo_latch[0]写入总线接收标志;
9、i2cm模块在读到以上寄存器后会将总线拉低,并产生一个起始位,将从机地址发出。
10、第二方面,本发明一种适用于risc-v架构的i2c通信控制方法,应用于如第一方面任一项所述的一种适用于risc-v架构的i2c通信控制装置,在muc与i2c模块进行数据传输时,通过fifo_latch存储接收发送标志以及总线重启标志,通过tx_rd_data提供数据接收和发送缓存,通过i2c_addr存储放本次i2c通信的从机地址。
11、作为优选,通过fifo_latch[0]表示接收发送标志,通过fifo_latch[1]表示总线重启标志,通过tx_rd_data[15:0]表示数据接收和发送缓冲,通过i2c_addr[9:0]存储放本次i2c通信的从机地址。
12、作为优选,mcu向i2c模块发送数据时,执行如下操作:
13、mcu向i2c_addr写入目标从机地址,并向fifo_latch[1]写入总线重启标志,向fifo_latch[0]写入总线发送标志;
14、i2cm模块在读到以上寄存器后会将总线拉低,并产生一个起始位,将从机地址发出,在收到从机的应答后,依次将后面的数据通过总线发出。
15、作为优选,mcu从i2c模块接收数据时,执行如下操作:
16、mcu向i2c_addr寄存器写入目标从机地址,并向fifo_latch[1]写入总线重启标志,向fifo_latch[0]写入总线接收标志;
17、i2cm模块在读到以上寄存器后会将总线拉低,并产生一个起始位,将从机地址发出。
18、本发明的适用于risc-v架构的i2c通信控制装置及方法具有以下优点:新增一个专用的总线状态寄存器fifo_latch,可以很大幅度降低i2c控制器状态机复杂度,降低soc应用代码的编写难度,极大提高数据发送速率。
1.一种适用于risc-v架构的i2c通信控制装置,其特征在于,包括总线状态寄存器fifo_latch、数据收发缓冲寄存器tx_rd_data、以及从机地址寄存器i2c_addr,fifo_latch用于存储接收发送标志以及总线重启标志,tx_rd_data用于提供数据接收和发送缓存,i2c_addr用于存储放本次i2c通信的从机地址。
2.根据权利要求1所述的适用于risc-v架构的i2c通信控制装置,其特征在于,fifo_latch[0]用于表示接收发送标志,fifo_latch[1]用于表示总线重启标志,tx_rd_data[15:0]用于数据接收和发送缓冲,i2c_addr[9:0]用于存储放本次i2c通信的从机地址。
3.根据权利要求1或2所述的适用于risc-v架构的i2c通信控制装置,其特征在于,mcu向i2c模块发送数据时,所述装置用于执行如下:
4.根据权利要求1或2所述的适用于risc-v架构的i2c通信控制装置,其特征在于,mcu从i2c模块接收数据时,所述装置用于执行如下:
5.一种适用于risc-v架构的i2c通信控制方法,其特征在于,应用于如权利要求1-3任一项所述的一种适用于risc-v架构的i2c通信控制装置,在muc与i2c模块进行数据传输时,通过fifo_latch存储接收发送标志以及总线重启标志,通过tx_rd_data提供数据接收和发送缓存,通过i2c_addr存储放本次i2c通信的从机地址。
6.根据权利要求5所述的适用于risc-v架构的i2c通信控制方法,其特征在于,通过fifo_latch[0]表示接收发送标志,通过fifo_latch[1]表示总线重启标志,通过tx_rd_data[15:0]表示数据接收和发送缓冲,通过i2c_addr[9:0]存储放本次i2c通信的从机地址。
7.根据权利要求5或6所述的适用于risc-v架构的i2c通信控制装置,其特征在于,mcu向i2c模块发送数据时,执行如下操作:
8.根据权利要求5或6所述的适用于risc-v架构的i2c通信控制装置,其特征在于,mcu从i2c模块接收数据时,执行如下操作: