本申请涉及通信,尤其涉及一种寄存器扩展方法。
背景技术:
1、串行外设接口(serial peripheral interface,spi)是一种同步串行接口,通常用于主机与外围设备之间的通信。外围设备中通常设置有存储数据的寄存器。然而,外围设备中的寄存器的数量是有限的,经常处于不够用的状态。
2、相关技术中,通过扩展地址位的方式来增加寄存器的数量。例如,假设寄存器地址位宽为6位,那么,共有64个寄存器地址,每个寄存器地址对应一个寄存器,寄存器的数量为64;如果将寄存器地址位宽增加至7位,那么寄存器的数量就增加至128个。
3、然而,spi通信协议对数据格式有严格要求,其可以选用8bits数据流或16bits数据流,如果寄存器地址因为8位位宽不够而扩展至16位位宽,一方面,会增加单次通信时间,导致通信速率降低,另一方面,寄存器数量过多,会出现大量不使用的寄存器,造成浪费。此外,一个主机通常会连接多个从机,如果从机之间的数据格式不同,可能会造成难以预估的后果。因此,亟需一种新的寄存器扩展方法。
技术实现思路
1、有鉴于此,提出了一种寄存器扩展方法。
2、第一方面,本申请的实施例提供了一种寄存器扩展方法,其特征在于,应用于串行外设接口通信中的从机,所述从机包括普通寄存器和扩展寄存器;所述方法包括:在接收到主机发送的第一写命令的情况下,根据所述第一写命令,向第一预设寄存器写入扩展寄存器的起始地址,所述第一预设寄存器为普通寄存器;在所述第一写命令之后接收到第二写命令的情况下,根据所述第二写命令,向第二预设寄存器写入第一数量,所述第一数量用于指示待写入的扩展寄存器的数量,所述第二预设寄存器为普通寄存器;根据所述起始地址及所述第一数量,将所述第二写命令中的待写入的数据,写入所述扩展寄存器。
3、在一些可能的实现方式中,所述第二预设寄存器的地址大于所述第一预设寄存器的地址。
4、在一些可能的实现方式中,所述第二预设寄存器的地址与所述第一预设寄存器的地址相邻。
5、在一些可能的实现方式中,所述方法还包括:将所述从机的普通寄存器按照地址从小到大的顺序进行排序;将所述从机的普通寄存器中的倒数第二个寄存器,确定为所述第一预设寄存器;将所述从机的普通寄存器中的倒数第一个寄存器,确定为所述第二预设寄存器。
6、在一些可能的实现方式中,所述第一写命令包括三个字节;所述第一写命令的第一个字节用于指示向所述第一预设寄存器写入数据;所述第一写命令的第二个字节用于指示写入所述第一预设寄存器的数据的数量;所述第一写命令的第三个字节用于指示所述起始地址。
7、在一些可能的实现方式中,所述第二写命令包括多个字节,所述第二写命令的第一个字节用于指示向所述第二预设寄存器写入数据,所述第二写命令的第二个字节用于指示所述第一数量,所述第二写命令的第三个字节及之后的字节用于指示待写入的数据。
8、在一些可能的实现方式中,所述第一数量为m,m为整数且m≥0,所述待写入的扩展寄存器的数量为m+1,所述待写入的数据的数量为m+1;所述根据所述起始地址及所述第一数量,将所述第二写命令中的待写入的数据,写入所述扩展寄存器,包括:将所述第二写命令中的待写入的第1个数据,写入与所述起始地址对应的扩展寄存器中;将所述第二写命令中的待写入的第i+1个数据,写入与所述起始地址+i的地址对应的扩展寄存器中,i为整数且0≤i≤m;将所述第二写命令中的待写入的第m+1个数据,写入与所述起始地址+m的地址对应的扩展寄存器中。
9、在一些可能的实现方式中,所述方法还包括:在所述第一写命令之后接收到预设的读命令的情况下,根据所述预设的读命令,向所述第二预设寄存器写入第二数量,所述第二数量用于指示待读取的扩展寄存器的数量;根据所述起始地址及所述第二数量,从所述扩展寄存器中读取数据,并将读取的数据,发送给所述主机。
10、在一些可能的实现方式中,所述预设的读命令包括两个字节,所述预设的读命令的第一个字节用于指示从所述第二预设寄存器读取数据,所述预设的读命令的第二个字节用于指示所述第二数量。
11、在一些可能的实现方式中,所述第二数量为k,k为整数且k≥0,所述待读取的扩展寄存器的数量为k+1,所述待读取的数据的数量为k+1;所述根据所述起始地址及所述第二数量,从所述扩展寄存器中读取数据,并将读取的数据,发送给所述主机,包括:从与所述起始地址对应的扩展寄存器中,读取第1个数据,并将所述第1个数据发送给主机;从与所述起始地址+j的地址对应的扩展寄存器中,读取第j+1个数据,并将所述第j+1个数据发送给主机,j为整数且0≤j≤k;从与所述起始地址+k的地址对应的扩展寄存器中,读取第k+1个数据,并将所述第k+1个数据发送给主机。
12、根据本申请实施例的寄存器扩展方法,在接收到主机发送的第一写命令的情况下,从机向第一预设寄存器写入扩展寄存器的起始地址;若在第一写命令之后接收到第二写命令,从机向第二预设寄存器写入第一数量(待写入的扩展寄存器的数量),再根据起始地址及第一数量,将第二写命令中的数据写入扩展寄存器,从而能够将指定的普通寄存器(第一预设寄存器及第二预设寄存器)作为访问扩展寄存器的桥梁,实现了扩展寄存器中数据的写入。通过这种方式,能够在不用改变spi通信协议的内容及格式的基础上,增加大量可用的寄存器,提高了寄存器的使用便利性。
13、本申请的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。
1.一种寄存器扩展方法,其特征在于,应用于串行外设接口通信中的从机,所述从机包括普通寄存器和扩展寄存器;
2.根据权利要求1所述的方法,其特征在于,所述第二预设寄存器的地址大于所述第一预设寄存器的地址。
3.根据权利要求2所述的方法,其特征在于,所述第二预设寄存器的地址与所述第一预设寄存器的地址相邻。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述第一写命令包括三个字节;所述第一写命令的第一个字节用于指示向所述第一预设寄存器写入数据;所述第一写命令的第二个字节用于指示写入所述第一预设寄存器的数据的数量;所述第一写命令的第三个字节用于指示所述起始地址。
6.根据权利要求1所述的方法,其特征在于,所述第二写命令包括多个字节,所述第二写命令的第一个字节用于指示向所述第二预设寄存器写入数据,所述第二写命令的第二个字节用于指示所述第一数量,所述第二写命令的第三个字节及之后的字节用于指示待写入的数据。
7.根据权利要求6所述的方法,其特征在于,所述第一数量为m,m为整数且m≥0,所述待写入的扩展寄存器的数量为m+1,所述待写入的数据的数量为m+1;
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述预设的读命令包括两个字节,所述预设的读命令的第一个字节用于指示从所述第二预设寄存器读取数据,所述预设的读命令的第二个字节用于指示所述第二数量。
10.根据权利要求8所述的方法,其特征在于,所述第二数量为k,k为整数且k≥0,所述待读取的扩展寄存器的数量为k+1,所述待读取的数据的数量为k+1;