一种数据接口与SPI的转换装置及方法与流程

文档序号:16134489发布日期:2018-12-01 00:45阅读:445来源:国知局

本发明涉及数据转换技术领域,特别是涉及一种数据接口与spi的转换装置及方法。

背景技术

在通过电脑对spi(serialperipheralinterface,串行外设接口)设备进行数据烧录时,为了实现电脑和spi设备之间的正常通信,现有技术中通常会在电脑和spi设备之间设置usb直接转spi的转换装置,而为了实现将串口信号通过usb直接转换为spi信号,通常需要开发相关的usb驱动、api(applicationprogramminginterface,应用程序编程接口)的中间件以及调用相应的库文件,一方面,usb驱动、api的中间件的开发过程以及对库文件的调用过程均比较繁琐且复杂,延长了软件开发周期;另一方面,对usb驱动和库文件的依赖使得现有的usb直接转spi的转换方式不方便在多操作系统平台例如linux、macos、windows上进行移植。



技术实现要素:

本发明的目的是提供一种数据接口与spi的转换装置及方法,采用了串口通信这种最基本的通信方式,利用串口通信的广适用性及开发简易的特点,使得该种转换方式能够较为方便地在各个操作系统平台上进行移植,同时也大大地简化了软件开发过程,缩短了软件开发周期。

为解决上述技术问题,本发明提供了一种数据接口与spi的转换装置,包括:

与主机连接的数据转换模块,用于对通用异步收发传输uart信号和所述主机传输的串口信号进行相互转换;

分别与所述数据转换模块和spi接口连接的处理器,用于对所述uart信号和spi信号进行相互转换;

与spi设备连接的所述spi接口,用于将所述spi信号发送至spi设备或者接收所述spi设备发送的所述spi信号。

优选地,所述数据转换模块包括:

usb接口;

uart转换模块;

一端与所述uart转换模块连接,另一端与所述处理器连接的通讯模块;

所述uart转换模块用于通过所述usb接口从所述主机接收串口信号,并将所述串口信号转换为uart信号,并将所述uart信号通过所述通讯模块传送至所述处理器;还用于通过所述通讯模块从所述处理器接收uart信号,并将所述uart信号转换为串口信号,并将所述串口信号通过所述usb接口传送至主机。

优选地,所述通讯模块包括:

与所述uart转换模块连接的第一蓝牙模块;

一端与所述第一蓝牙模块连接,另一端与所述处理器连接的第二蓝牙模块,用于与所述第一蓝牙模块配合通信实现所述uart信号在所述uart转换模块和所述处理器之间的无线传输。

优选地,所述数据转换模块包括uart转换模块、第三蓝牙模块及与所述第三蓝牙模块建立数据通信的第四蓝牙模块,其中:

所述uart转换模块,用于将从主机接收的串口信号转换为uart信号,并通过所述第三蓝牙模块和所述第四蓝牙模块将所述uart信号传送至所述处理器;还用于将通过所述第一蓝牙模块和所述第二蓝牙模块从处理器接收到的uart信号转换为串口信号,并将所述串口信号传送至主机。

优选地,所述处理器还用于:

确定所述spi设备的供电电压;

控制供电模块输出与所述供电电压大小相等的电压为所述处理器供电。

优选地,所述供电模块包括多个输出不同电压的子供电模块。

优选地,所述处理器还用于接收并保存所述主机发送的包括线制配置信息的配置信息,以实现对所述spi设备的线制的配置。

优选地,所述线制配置信息为3线制或者4线制。

优选地,所述配置信息的格式为json格式。

为解决上述技术问题,本发明还提供了一种数据接口与spi的转换方法,在主机向spi设备发送信号时,该方法包括:

数据转换模块将所述主机传送的串口信号转换为uart信号;

处理器将所述uart信号转换为spi信号;

spi接口将所述spi信号发送至所述spi设备;

在spi设备向主机发送信号时,该方法包括:

spi接口接收所述spi设备发送的spi信号;

处理器将所述spi信号转换为uart信号;

数据转换模块将所述uart信号转换为串口信号,并将所述串口信号传送至所述主机。

本发明提供了一种数据接口与spi的转换装置,数据转换模块,用于对uart信号和主机传输的串口信号进行相互转换;处理器,用于对uart信号和spi信号进行相互转换;还用于控制供电模块输出相应的电压为处理器供电;spi接口,用于将spi信号发送至spi设备或者接收spi设备发送的spi信号;供电模块。本申请将串口信号与uart信号进行相互转换,将uart信号与spi信号进行相互转换,从而实现串口信号到spi信号的间接转换,本申请采用了串口通信这种最基本的通信方式,利用串口通信的广适用性及开发简易的特点,使得该种转换方式能够较为方便地在各个操作系统平台上进行移植,同时也大大地简化了软件开发过程,缩短了软件开发周期。

本发明还提供了一种数据接口与spi的转换方法,具有与上述转换装置相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种数据接口与spi的转换装置的结构示意图;

图2为本发明提供的一种数据接口与spi的转换装置的电路结构示意图;

图3为本发明提供的一种对spi设备的id检测的原理图;

图4为本发明提供的一种数据接口与spi的转换方法的过程的流程图;

图5为本发明提供的另一种数据接口与spi的转换方法的过程的流程图。

具体实施方式

本发明的核心是提供一种数据接口与spi的转换装置及方法,采用了串口通信这种最基本的通信方式,利用串口通信的广适用性及开发简易的特点,使得该种转换方式能够较为方便地在各个操作系统平台上进行移植,同时也大大地简化了软件开发过程,缩短了软件开发周期。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明提供的一种数据接口与spi的转换装置的结构示意图,该装置包括:

与主机连接的数据转换模块1,用于对通用异步收发传输uart信号和主机传输的串口信号进行相互转换;

分别与数据转换模块1和spi接口3连接的处理器2,用于对uart信号和spi信号进行相互转换;

与spi设备连接的spi接口3,用于将spi信号发送至spi设备或者接收spi设备发送的spi信号。

具体地,区别于现有技术中主机的串口信号通过usb并借助相应的usb驱动、api的中间件及相关的库文件调用直接转换成spi信号,本申请采用间接转换的方式,数据转换模块1(例如可由usb、usb转uart芯片构成)先将串口信号转换为uart信号,处理器2再将uart信号转换为spi信号,spi接口3再将spi信号发送至spi设备,或者,反过来,处理器2先通过spi接口3接收spi信号,再将spi信号转换为uart信号,数据转换模块1再将uart信号转换为串口信号,这两个过程均为串口通信的过程,而串口通信是最基本的通信方式,无论是针对不同操作系统平台如windows、linux、macos,还是针对不同的计算机编程开发语言如c,c++,c#,java,都能用最少的开发成本和代价,完成对spi信号的控制转换的实现,避免了驱动,api,dll,和application的繁重的开发任务和开发过程。

spi接口3用于与spi设备的spi接口进行对接,实现对spi信号的传输。

为了实现串口信号和uart信号的相互转换,可以在主机端直接使用串口工具,再直接使用c++,c#,python等惯用的serial或者com类,使用串口命令完成相关功能的测试和开发,该种方式能够快速适应对应各种spi设备的通信、控制和烧录。另外,这里的主机可以为电脑(对spi设备烧录过程中经常使用到),当然,也可以为主控芯片或者其他主控单元,本申请在此不作特别的限定;此外,spi设备可以为待测电子产品或者待测电路板。

综上,本申请将串口信号与uart信号进行相互转换,将uart信号与spi信号进行相互转换,从而实现串口信号到spi信号的间接转换,本申请采用了串口通信这种最基本的通信方式,利用串口通信的广适用性及开发简易的特点,使得该种转换方式能够较为方便地在各个操作系统平台上进行移植,同时也大大地简化了软件开发过程,缩短了软件开发周期。

在上述实施例的基础上:

作为一种优选地实施例,数据转换模块1包括:

usb接口;

uart转换模块;

一端与uart转换模块连接,另一端与处理器2连接的通讯模块;

uart转换模块用于通过usb接口从主机接收串口信号,并将串口信号转换为uart信号,并将uart信号通过通讯模块传送至处理器2;还用于通过通讯模块从处理器2接收uart信号,并将uart信号转换为串口信号,并将串口信号通过usb接口传送至主机。

具体地,考虑到usb接口及uart串口通信均使用的非常广泛,现有的主机(例如电脑)上几乎都已经设有usb接口及usb转uart时所需的功能模块,因此,由于本申请中的数据转换模块1包括usb接口和uart转换模块,因此无需再开发驱动,只需开发者做一些串口通信时所需的基本软件开发,开发周期及开发成本均很低。

主机向spi设备进行通信时,主机将串口信号通过usb接口传送至uart转换模块,uart转换模块将usb信号转换为uart信号,处理器2将uart信号转换为spi信号,并通过通讯模块、spi接口3传送至spi设备。反过来,spi设备向主机进行通信时,spi接口3接收spi设备发送的spi信号,并通过通讯模块将spi信号传送至处理器2,处理器2将spi信号转换为uart信号,并将uart信号传送至uart转换模块,uart转换模块再将uart信号转换为串口信号,并通过usb接口传送至主机。另外,本申请中提及的uart转换模块可以为但不仅限于型号为ft232rl的转换芯片,ft232rl的速度抗干扰能力非常好。

作为一种优选地实施例,通讯模块包括:

与uart转换模块连接的第一蓝牙模块;

一端与第一蓝牙模块连接,另一端与处理器2连接的第二蓝牙模块,用于与第一蓝牙模块配合通信实现uart信号在uart转换模块和处理器2之间的无线传输。

在实际应用中,有很多不容易或无法完成有线布线的环境,如治具的测试点密集走线复杂,很困难将spi接口3的clk、miso、mosi,cs等信号线走出或者很难将usb线走出,且spi的速度高速后,便无法将spi的信号线拉的过长,过长会导致spi的信号不完整。

为了解决上述问题,本申请中的通讯模块采用无线传输的方式,具体地,该通讯模块采用蓝牙通信方式,在uart转换模块与处理器2之间设置了能够相互通信的第一蓝牙模块和第二蓝牙模块,第一蓝牙模块和第二蓝牙模块实现了uart信号在uart转换模块和处理器2之间的无线传输。本申请采用蓝牙通信,一方面,解决了转换装置不易布线的问题,可以缩短spi的走线长度,对spi的信号完整性有帮助;另一方面,成本低。

当然,这里的通讯模块也可以为wifi或者采用gprs等无线通信方式,本申请在此不作特别的限定。

另外,在具体实现中,这里的处理器2可以采用型号为nrf52832的处理器2,该型号的处理器2除了具有数据处理及控制的功能,还集成有蓝牙模块,也即nrf52832包括了本申请中的第二蓝牙模块和处理器2。为了避免转换装置上设置过多不同类型的芯片而造成的不同芯片间相互干扰,及减少采购人员采购多种类型芯片的负担,这里的第一蓝牙模块也可以采用nrf52832中的蓝牙模块,也即本实施例的数据转换模块1中包括usb接口、uart转换模块及两个nrf52832芯片,其中,第一个nrf52832芯片只用了其中的蓝牙模块,第二个nrf52832芯片中用到了蓝牙模块及处理控制部分。当然,这里也可以不这样设置,还可以采用其他信号的芯片,或者每个功能模块都单独设置,本申请在此不作特别的限定。

在使用两个nrf52832芯片时,第一个nrf52832芯片配置为central(中心节点),第二个nrf52832芯片配置为peripheral(从节点),并使用uartserver,构建一个虚拟的串口透传,这样的目的可以实现本申请中的串口通信,构建起主机与第二个nrf52832芯片的串口通信。

下面主要介绍一下,需要实现的低功耗蓝牙串口透传的主要功能:、

实现串口指令at:connect,xxxxx,指定从机广播名称,或蓝牙地址的链接;

实现断连后,第二个nrf52832芯片主动开始广播,第一个nrf52832芯片主动开始扫描的功能,凭此实现断连后自动恢复链接;

第一个nrf52832芯片实现电脑的串口指令和串口数据,转发给蓝牙传递的功能,并把蓝牙传递来的数据通过串口发送给电脑;

第二个nrf52832芯片实现接收spi设备发送的spi数据,转发给蓝牙传递的功能,并把蓝牙传递来的指令要求和数据通过spi发送给spi设备。作为一种优选地实施例,数据转换模块1包括uart转换模块、第三蓝牙模块及与第三蓝牙模块建立数据通信的第四蓝牙模块,其中:

uart转换模块,用于将从主机接收的串口信号转换为uart信号,并通过第三蓝牙模块和第四蓝牙模块将uart信号传送至处理器2;还用于将通过第一蓝牙模块和第二蓝牙模块从处理器2接收到的uart信号转换为串口信号,并将串口信号传送至主机。

具体地,考虑到实际应用中有相当一部分主机具备蓝牙功能模块,而蓝牙功能模块中又通常设置有uart转换模块,因此,本申请可以利用主机中已有的uart转换模块和第三蓝牙模块进行串口通信,此时只需在转换装置的外部控制板上设置一个与第三蓝牙模块建立数据通信的第四蓝牙模块即可,进一步减少了开发成本,降低了开发难度和开发周期。

具体实现时,可以采用信号为nrf52832的处理器2来实现第四蓝牙模块和处理器2。当然,也可以采用其他设置方式,根据实际情况来定。

作为一种优选地实施例,处理器2还用于:

确定spi设备的供电电压;

控制供电模块输出与供电电压大小相等的电压为处理器2供电。

具体地,该转换装置还包括为处理器2供电的供电模块,为了减少人工的参与,提高自动化程度,本申请中的处理器2还用于自动确定spi设备的供电电压,然后控制供电模块输出与供电电压大小相等的电压为处理器2供电(处理器2和spi设备正常通信的前提条件)。在具体实现时,处理器2在通过spi接口3与spi设备连接时,处理器2会采集spi设备的供电电压,然后输出控制信号控制供电模块输出与供电电压大小相等的电压为处理器2供电。

这里的供电电压通常为3.3v或者1.8v,根据spi设备来定。

该实施例对应的软件算法具体为:

当处理器2识别到spi设备的电源插入后,串口打印提示信息“3.3vtargetinsert”。

并且根据识别到vref值,设置相应spi接口3的信号电平强度。

通过软件代码设置一个定时器;

定时轮询spi接口3,vtef即目标待测板的电平,电平的采集通过nrf52832的模数转换模块来采集;

如果扫描到引脚有3v3左右的电平插入,则通过串口发送给主机(电脑或其他主控芯片)一种提示信息,表示有3v3的待测设备插入,并把电压切换到3v3模式;

如果扫描到引脚有1v8左右的电平插入,则通过串口发送给主机一种提示信息,表示有1v8的待测设备插入,并把电压切换到1v8模式。

如果未有以上的3v3或1v8的电平,则静默,表示没有任何设备插入。

下面展示实现这个功能的主体代码。

设置的方式如下

1:if((vref>=3v)&&(vref<=3v5)){

3v3_enable=true;

1v8_enable=fault;

printf(“3.3vtargetinsert\r\n”);

}

elseif((vref<3v)&&(vref>=1v8)){

3v3_enable=fault;

1v8_enable=true;

printf(“3.3vtargetinsert\r\n”);

}

作为一种优选地实施例,供电模块包括多个输出不同电压的子供电模块。

首先需要说明的是,上述已经提到,为了使得处理器2和spi设备正常通信,要求处理器2和spi设备的电压相等,而spi设备的供电电压通常是已知的,因此,选择合适的子供电模块也是不难实现的。

具体地,供电模块包括多个输出不同电压的子供电模块,例如当供电电压3.3v或者1.8v时,供电模块可以包括39130s-3v3,或39130s-1v8,以实现5v转3v3或5vvbus转1v8。

处理器2在确定spi设备的供电电压后,可以直接控制输出电压与该供电电压相等的子供电模块工作。则一方面,自动化程度高,另一方面,能够适应多种spi设备,适用范围广。

此外,也可以在供电模块与处理器2之间设置电压调节装置,也即此时供电模块的输出电压是一定的,但是可以通过电压调节装置来对供电模块的输出电压进行调节,以适应不同spi设备的需求。

作为一种优选地实施例,处理器2还用于接收并保存主机发送的包括线制配置信息的配置信息,以实现对spi设备的线制的配置。

作为一种优选地实施例,线制配置信息为3线制或者4线制。

现有技术中,有些usb转spi转换装置缺少三线制的配置,从而使得该种转换装置不能应用于三线制的spi设备。本申请为了解决这个问题,基于串口通信的基础上,软件上也对spi配置进行配置,其中,配置信息包括限制配置信息,用户可以根据实际需要来确定spi设备的线制,进而确定线制配置信息的内容,例如这里的限制配置信息可以设置成3线制,也可以设置成4线制,以满足3线制和4线制的需求。通过该种配置方式可以进一步增大对不同spi设备的适应性。

下面对spi配置,实现的主要功能作介绍:

为应对不同时序,不同模式,不同线制的待测spi设备或spi芯片,通过软件的设计,实现电脑或其他主控单元通过特定的串口协议或串口指令完成模式、线制、时序的设置,以便适应与不同spi设备或spi芯片的通信。

设计的主要逻辑如下:

1:nrf52832接收到电脑或其他主控单元的串口设置命令;

2:软件解析命令格式是否合法;

3:软件解析命令内容是否合法;

4:如果2,3不合法,通过串口发送反馈给电脑,收到的命令不合法;

5:如果2,3合法,将相应的配置信息,写到芯片制定的数据寄存器,并把设置的结果通过串口发送反馈给电脑。

通过下面的列表1,主要展示了电脑通过串口对spi方式配置的命令,采用了json命令格式,json命令格式明了,便于电脑或其他主控单元的命令解析和数据解析。

使用以下命令,可完成基本的串口设置的需求。

以下命令的具体实现方式大致相同,比如设置三线或四线制的方法大致如下:

1:nrf52832的串口接收到一串{“type”:”set_spi_mode”,”wires”:x}的指令。

2:程序检测收到的指令是否符合json的数据格式,如果不符合给电脑反馈指令错误的数据反馈,通过uart发送完成。

3:如果2符合,查找程序内有没有json的这个对象,如果没有,通过uart发送,给电脑反馈没有这个json对象的反馈。

4:如果2,3符合,查找“set_spi_mode”的这个对象的数据内容是否包含“wires”:x的键值对,如果没有这个键值对,则给电脑反馈没有这个键值对的反馈。

5:如果2,3,4符合,查找“wires”:x的x的值是否等于3或4,如果即不等于3又不等于4,则给电脑反馈键值对的值不正确的反馈。

6:如果3,4,5都正确,将wires:x的x的值写在相应的spi功能的配置数据寄存器,并获取配置的成功与否,如果不成功,则通过串口,给电脑反馈配置未成功的信息。

7:如果3,4,5,6都正确,则通过串口,给电脑反馈配置成功的信息。

表1spi配置信息表

作为一种优选地实施例,配置信息的格式为json格式。

具体地,json格式具有格式明了,便于解析的优点,当然,这里的配置信息的格式还可以采用其他格式,根据实际情况来定。

为方便对本申请的理解,请参照图2,图2为本发明提供的一种数据接口与spi的转换装置的电路结构示意图。图2中,uart转换模块使用了ftdi的ft232rl对usb的接口转uart的功能实现。供电模块包括39130s-3v3,或39130s-1v8,能够实现自适应外部spi信号的信号电平,当电平为1v8时,使能1v8,失能3v3。当信号电平为3v3时,使能3v3,失能1v8。处理器2为nrf52832,主控器nrf52832的外围主要包括指示灯(可以用来指示主机与spi设备是否通讯成功或者配置信息是否正确)和电源使能信号(引脚p0.11和引脚p0.12),及天线匹配电路(对应引脚ant)。vref是主控器nrf52832的adc检测到的spi设备的供电电压。

作为一种优选地实施例,处理器2还用于检测spi设备的id是否正确。

具体地,请参照图3,图3为本发明提供的一种对spi设备的id检测的原理图。

图3展示了电脑通过本申请提供的转换装置构建与spi设备通信的链路过程。

过程描述:

①电脑串口助手或程序员程序代码,给控制器发送读取待测spi设备或spi芯片的设备id的串口指令,spi_device_id的指{"type":"readspiid","device_id_address":x},这条指令的意义在于当转接板侦测到待测spi设备或spi芯片插入时并通过串口将插入的信息反馈到电脑,在此之后,电脑可以通过这条指令的发送,并判断相应的返回,来判断待测spi设备是否合法和spi设备属于哪一范畴或哪一种类。

②控制器收到指令后,释义串口的指令格式是否符合json和指令规范要求。如果符合,通过spi通信,给待测spi电路板或待测spi产品或待测spi芯片,发送读取id的指令,随后发送deviceid的存储地址,并读出id数值。

③控制器将②步获取的状况通过串口返回到电脑,如果②没有获取到相应的数据,则返回错误的信息给串口。

请参照图4和图5,图4和图5均为本发明提供的一种数据接口与spi的转换方法的过程的流程图,在主机向spi设备发送信号时,该方法包括:

步骤11:数据转换模块将主机传送的串口信号转换为uart信号;

步骤12:处理器将uart信号转换为spi信号;

步骤13:spi接口将spi信号发送至spi设备;

在spi设备向主机发送信号时,该方法包括:

步骤21:spi接口接收spi设备发送的spi信号;

步骤22:处理器将spi信号转换为uart信号;

步骤23:数据转换模块将uart信号转换为串口信号,并将串口信号传送至主机。

对于本发明提供的数据接口与spi的转换方法的介绍请参照上述装置实施例,本申请在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1