一种单双线兼容的spi通信装置及其通信方法

文档序号:6444441阅读:1036来源:国知局
专利名称:一种单双线兼容的spi通信装置及其通信方法
技术领域
本发明涉及通信领域,尤其涉及的是一种单双线兼容的SPI通信装置及其通信方法。
背景技术
随着通讯产业的飞速发展和社会分工的越来越明细,通讯设备的制造越来越呈现`出模块化的趋势,通讯模块是一个比较宽泛的概念,即通讯设备(装置)中具有某一种或几种独立功能的、由一种或多种元器件组成的部件,目前应用较多的有用户接口模块(以下简称用户模块)和中继接口模块(以下简称中继模块)。用户接口参数(如二线端口阻抗AD、DA双方向点电平增益;馈电电压、电流;振铃频率、电压、电流;计费脉冲;摘挂机检测阈值;来电显示信号电平等)和中继接口参数(如模拟阻抗及模拟增益等)均可通过SPI接口进行调整和设置,串行外设接口 SPI允许主机(一般具有标准的SPI接口)和从机(通讯模块)之间进行高速的同步数据传输。这种具有可编程功能的通讯模块量的需求越来越大,质的要求越来越高,使用者和生产者越来越多,模块的定义和脚位也越来越“标准化”(这种标准化是为了方便不同制造厂家间的良性竞争,更方便使用者有更多更好的选择。他们相互促进和影响,共同致力于行业健康发展而逐渐形成的),在使用中遇到的一个突出问题是用户模块和中继模块的管脚是兼容的,但是SPI通信的方式不一致,一种是使用标准的SPI接口(如图I所示,以下简称双线SPI),标准SPI接口使用4条信号线与主机接口,分别是(SPI从机选择引脚,低电平有效)、SCK(SPI总线的串行时钟,由主机发出,对主机而言不论是发送数据还是接收数据都要产生)、MOSI (SPI总线的主机输出/从机输入信号,对从机的MOSI以下简称DI)、MISO(SPI总线的主机输入/从机输出信号,对从机的MISO以下简称D0)。另一种是使用非标准的SPI接口(如图2所示,以下简称单线SPI),非标准的SPI使用3条信号线与主机接口,收发共用一条信号线DI/0 (收发共用管脚,当主机发送数据时,数据从主机的MOSI 口输出经电阻I从从机的DI/0 口输入,当主机接收数据时,数据从从机的DI/0 口输出经电阻2从主机的MISO 口输入),DI/0占用标准SPI接口中DI的管脚位,DO管脚在从机内部悬空。为了兼容单双线的SPI接口,一般的做法是在从机的DI(对单线SPI而言为DI/0)和主机的MISO 口之间预留电阻3,当从机为双线SPI接口时去掉电阻3,当从机为单线SPI接口时增加电阻3 (如图3所示)。主机发送数据时,通过将需要的从机的引脚拉低,主机启动一次通讯过程。主机和从机将需要发送的数据放入相应的移位寄存器。主机在SCK引脚上产生时钟脉冲以交换数据,这种方案在从机为单个时并不存在什么问题,并且具有成功案例,具体过程是在SPI双线应用时,主机的数据从主机的MOSI移出,经过电阻I从从机的DI 口移入;从机的数据从从机的DO移出,经过电阻2从主机的MISO移入,主机通过将从机的拉高实现与从机的同步。单线SPI应用时,主机的数据从主机的MOSI移出,经电阻I从从机的DI/0 口移入,因为DI/0经电阻3连接主机的MISO,MISO是输入管脚,所以并不对DI/0处数据产生影响。从机的数据从从机的DI/0移出,经电阻3从主机的MISO移入,因为此时DI/0还经电阻I和MOSI相连,MOSI是输出管脚会对DI/0产生影响,因此在读操作时要将MOSI管脚置为输入管脚,在写操作时再将MOSI置为输出管脚。当有多个从机时,因为一条SPI总线上要并联多个从机,一是增加了片选信号的数量,需要占用主机的1/0(主机的输入/输出口)口资源较多;二是SPI总线需要驱动多个从机,驱动能力有可能不够;三是主机的收发数据线上由于并联多个从机而存在相互干扰,特别是当单线应用时多个电阻3的并联使这种干扰可能增大;四是所加电阻值的大小关系到信号传输的阻抗匹配问题,同时也影响数据传输的速率,选择不当会对信号特性产生影响;五是对于不同的从机需要更改硬件,不利于生产。 因此,现有技术还有待于改进和发展。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种单双线兼容的SPI通信装置及其通信方法,其可以实现单双线SPI接口硬件可完全兼容,并可以实现一个主机通过可编程逻辑处理单元选通连接多个从机。本发明解决技术问题所采用的技术方案如下
一种单双线兼容的SPI通信装置,包括主机、多个从机及SPI总线,所述从机通过所述SPI总线与所述主机进行通信,其中,所述从机与所述SPI总线之间还连接一可编程逻辑处理单元,所述主机还通过一片选信号线与所述可编程逻辑处理单元的选通端相连;
所述主机通过所述可编程控制器来控制与所述从机连接,根据不同的片选逻辑将需要的从机与所述主机进行通信。所述单双线兼容的SPI通信装置,其中,所述可编程逻辑处理单元为一 CPLD。所述单双线兼容的SPI通信装置,其中,主机的I/O 口通过CPLD进行译码产生片选。所述单双线兼容的SPI通信装置,其中,当所述从机为8个时,所述SPI总线包括 用于传输主机输出数据的主机输出/从机输入信号线MOSI ;
用于传输主机输入数据的主机输入/从机输出信号线MISO ;
第一时钟信号线SCKl ;
用于传输写指示信号SPI_WR的SPI写信号线;
用于传输读指示信号SPI_RD的SPI读信号线;
SPI类型线SPI_TYPE,用于当SPI_TYPE为I时对应为双线SPI,当SPI_TYPE为O时对应为单线SPI。所述单双线兼容的SPI通信装置,其中,所述片选信号线为4条,分别连接CPLD的4个I/O 口供产生8个片选信号
所述4个I/O 口中包括三个片选控制口和一个使能控制口分别为第一 I/ O 口 1/0[1]、第二 I/ O 口 1/0[2]、第三 I/ O 口 1/0[3],第四 I/ O 口 1/0[4]。所述单双线兼容的SPI通信装置,其中,每一从机的SPI从机选择引脚连接至CPLD的一片选逻辑输出端,当为8个从机时,CPLD提供8个片选逻辑。所述单双线兼容的SPI通信装置,其中,所述主机为CPU。一种如上所述单双线兼容的SPI通信装置的通信方法,其中,包括步骤
从机为双线SPI时,CPLD都将主机的主机输出/从机输入信号线MOSI与从机的数据输入端DI相连,将从机的数据输出端DO与主机的主机输入/从机输出信号线MISO相连;主机发送数据时,通过CPLD选择一路从机,然后主机的数据从主机的主机输出/从机输入信号线MOSI输出,经过CPLD从从机的数据输入端口 DI输入;主机接收数据时,也要选择一路从机,从机的数据从从机的数据输出端DO输出,经过CPLD从主机的主机输入/从机输出信号线MISO输入,主机通过将从机的SPI从机选择引脚拉高实现与从机的同步
从机为单线SPI时的操作受控于一写指令信号和一读指示信号,当读有效时CPLD将从 机的输入输出端DI/0与主机的主机输入/从机输出信号线MISO相连,当写有效时,CPLD将主机的主机输出/从机输入信号线MOSI与从机的输入输出端DI/0相连;当主机发送数据时,通过CPLD选择一路从机并置写有效,然后主机的数据从主机的主机输出/从机输入信号线MOSI输出,经过CPLD从从机的输入输出端DI/0输入;主机接收数据时,首先要选择一路从机并置读有效,然后从机的数据从从机的输入输出端DI/0移出,经过CPLD从主机的主机输入/从机输出信号线MISO移入,主机通过将从机的SPI从机选择引脚拉高实现与从机的同步。所述单双线兼容的SPI通信装置的通信方法,其中,其还包括步骤
双线SPI通信写过程步骤主机通过CPLD选择一路从机打开片选使能,写入命令和地址并通过判断标志位查看是否写入完成,若完成则写入数据,通过判断标志位查看是否写入数据完成,若完成则整个SPI写过程结束,继续进行下一个操作;
双线SPI通信读过程步骤主机通过CPLD选择一路从机打开片选使能,写入命令和地址并通过判断标志位查看是否写入完成,若写入完成则继续写入SPI中的一个空操作产生时钟,等待所述空操作写入完成,若完成则从SPI接收缓冲器中读出接收到的数据,整个SPI读过程结束,接续进行下一个操作;
单线SPI通信写过程步骤主机通过CPLD选择一路从机打开片选使能,置写有效写入命令和地址并通过判断标志位查看是否写入完成,若完成则置写有效写入数据,通过判断标志位查看是否写入数据完成,若完成则整个SPI写过程结束,继续进行下一个操作;
单线SPI通信读过程步骤主机通过CPLD选择一路从机打开片选使能,置写有效写入命令和地址并通过判断标志位查看是否写入完成,若写入完成则置读有效写入SPI中的一个空操作产生时钟,等待所述空操作写入完成,若完成则可从SPI接收缓冲器中读出接收到的数据,整个SPI读过程结束,继续进行下一个操作。本发明所提供的单双线兼容的SPI通信装置及其通信方法,其通过一可编程逻辑处理单元,可以实现单双线SPI接口硬件可完全兼容,并具有如下优点
I :单双线SPI接口硬件可完全兼容,只需修改CPLD固件即可,接口选择灵活、方便。2 =SPI的总线的驱动能力可通过CPLD调整,这为从机的扩展提供便利。3 :将主机的I/O 口通过CPLD进行译码产生片选的方式节省了主机的I/O 口,并且增加了 SPI使能位,保证在无SPI操作时关闭所有SPI片选。4 :单线应用时将MOSI和MISO完全隔离,不同的读写模式下将DI/0与不同的管脚相连避免了相互之间可能存在的干扰。


图I是现有技术中双线SPI的主从通信结构示意图。图2是现有技术中单线SPI的主从通信结构示意图。图3是现有技术中传统的SPI单双线兼容方案结构示意图。图4是本发明实施例的单双线兼容的SPI通信装置结构示意图。图5是本发明实施例的双线SPI写过程流程图。图6是本发明实施例的双线线SPI读数据过程流程图。·图7是本发明实施例的单线SPI写数据过程流程图。图8是本发明实施例的单线SPI读数据过程流程图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例提供的一种单双线兼容的SPI通信装置,包括主机、多个从机(如图4所示的从机I至从机8)及SPI总线101,所述从机通过所述SPI总线101与所述主机进行通信,所述从机与所述SPI总线之间还连接一可编程逻辑处理单元,所述主机还通过一片选信号线102与所述可编程逻辑处理单元的选通端相连;
所述主机通过所述可编程控制器来控制与所述从机连接,根据不同的片选逻辑将需要的从机与所述主机进行通信。较佳地,采用所述可编程逻辑处理单元为一 CPLD( (Complex Programmable LogicDevice)复杂可编程逻辑器件)。以下将对图4所示的单双线兼容的SPI通信装置进行详细说明,如图4所示,在主机和从机之间增加CPLD (可编程逻辑处理单元),通过CPLD (Complex Programmable LogicDevice)可编程逻辑处理单元对SPI接口进行调整,以适应单双线的SPI接口,以下以8路接口为例进行说明,本实施例中所述主机为CPU。如图4所示,当所述从机为8个时,所述SPI总线101包括
用于传输主机输出数据的主机输出/从机输入信号线MOSI ;
用于传输主机输入数据的主机输入/从机输出信号线MISO ;
时钟信号线SCK (即第一时钟信号线SCKl);
用于传输写指示信号SPI_WR的SPI写信号线;
用于传输读指示信号SPI_RD的SPI读信号线;
SPI类型线SPI_TYPE,用于当SPI_TYPE为I时对应为双线SPI,当SPI_TYPE为O时对应为单线SPI。本实话例中,所述主机通过片选信号线102内的片选信号控制CPLD选通,如图4所示,所述片选信号线为4条,分别连接CPLD的4个1/0 口供产生8个片选信号如图4所示,所述4个I/O 口中包括三个片选控制口和一个使能控制口分别为第一 I/
O口 1/0[1]、第二 I/ O 口 1/0[2]、第三 I/ O 口 1/0[3],第四 I/ O 口 1/0[4]。每一从机的SPI从机选择引脚连接至CPLD的一片选逻辑输出端,当为8个从机时,CPLD提供8个片选逻辑,如图4所示的SSO,SSI··· SS7。如图4所示,从机I至从机8的时钟线SCK并接在一 起、双线SPI的数据输出端DO并接在一起、双线SPI的数据输入端DI或(单线SPI的数据输入输出DI/0)并接在一起分别连接至所述CPLD。本实施例中,首先根据从机的SPI接口类型将CPLD的固件烧写到CPLD芯片中,CPLD通过SPI_TYPE脚(CPLD的一个I/O 口 )端将从机的接口类型传递到主机中,具体来说当SPI_TYPE为I时从机为双线SPI,当SPI_TYPE为O时为单线SPI,这样,可以根据需要定义选择,选择非常灵活。在进入片选逻辑时,本实施例中为了保证主机能与8个从机通信,还必须提供8个片选逻辑,片选逻辑由I/o 口数据经CPLD (可编程逻辑处理单元)译码产生,提供8个片选信号共需3个I/O 口(2~3=8),为了保证在无SPI操作时能禁止所有口的SPI通讯,必须提供一个SPI使能位,在SPI操作之前打开使能,在操作完成之后关闭使能,因此CPU共需提供 4 个 I/O 口(如图 4 所示的 I/O [O] 口、I/O [I] 口、I/O [2] 口、I/O [3] 口)供产生 SPI 片选信号,逻辑如下表I如示
注I =H=高电平,L=低电平,X=不定;
注2 :Q1、Q2为电平O或I ;
注3 :输入与输出是相对于CPLD而言。表I :片选逻辑表
权利要求
1.一种单双线兼容的SPI通信装置,包括主机、多个从机及SPI总线,所述从机通过所述SPI总线与所述主机进行通信,其特征在于,所述从机与所述SPI总线之间还连接一可编程逻辑处理单元,所述主机还通过一片选信号线与所述可编程逻辑处理单元的选通端相连; 所述主机通过所述可编程控制器来控制与所述从机连接,根据不同的片选逻辑将需要的从机与所述主机进行通信。
2.根据权利要求I所述单双线兼容的SPI通信装置,其特征在于,所述可编程逻辑处理单元为一 CPLD。
3.根据权利要求2所述单双线兼容的SPI通信装置,其特征在于,主机的I/O口通过CPLD进行译码产生片选。
4.根据权利要求2所述单双线兼容的SPI通信装置,其特征在于,当所述从机为8个时,所述SPI总线包括 用于传输主机输出数据的主机输出/从机输入信号线MOSI ; 用于传输主机输入数据的主机输入/从机输出信号线MISO ; 第一时钟信号线SCKl ; 用于传输写指示信号SPI_WR的SPI写信号线; 用于传输读指示信号SPI_RD的SPI读信号线; SPI类型线SPI_TYPE,用于当SPI_TYPE为I时对应为双线SPI,当SPI_TYPE为O时对应为单线SPI。
5.根据权利要求4所述单双线兼容的SPI通信装置,其特征在于,所述片选信号线为4条,分别连接CPLD的4个I/O 口供产生8个片选信号 所述4个I/O 口中包括三个片选控制口和一个使能控制口分别为第一 I/ O 口(I/o[i])、第二 I/ ο 口 α/ο[2])、第三 I/ ο 口 α/ο[3]),第四 i/ ο 口 α/ο[4])。
6.根据权利要求4所述单双线兼容的SPI通信装置,其特征在于,每一从机的SPI从机选择引脚连接至CPLD的一片选逻辑输出端,当为8个从机时,CPLD提供8个片选逻辑。
7.根据权利要求I所述单双线兼容的SPI通信装置,其特征在于,所述主机为CPU。
8.—种如权利要2-7任一项所述单双线兼容的SPI通信装置的通信方法,其特征在于,包括步骤 从机为双线SPI时,CPLD都将主机的主机输出/从机输入信号线MOSI与从机的数据输入端DI相连,将从机的数据输出端DO与主机的主机输入/从机输出信号线MISO相连;主机发送数据时,通过CPLD选择一路从机,然后主机的数据从主机的主机输出/从机输入信号线MOSI输出,经过CPLD从从机的数据输入端口 DI输入;主机接收数据时,也要选择一路从机,从机的数据从从机的数据输出端DO输出,经过CPLD从主机的主机输入/从机输出信号线MISO输入,主机通过将从机的SPI从机选择引脚拉高实现与从机的同步 从机为单线SPI时的操作受控于一写指令信号和一读指示信号,当读有效时CPLD将从机的输入输出端DI /O与主机的主机输入/从机输出信号线MISO相连,当写有效时,CPLD将主机的主机输出/从机输入信号线MOSI与从机的输入输出端DI/0相连;当主机发送数据时,通过CPLD选择一路从机并置写有效,然后主机的数据从主机的主机输出/从机输入信号线MOSI输出,经过CPLD从从机的输入输出端DI/0输入;主机接收数据时,首先要选择一路从机并置读有效,然后从机的数据从从机的输入输出端DI/0移出,经过CPLD从主机的主机输入/从机输出信号线MISO移入,主机通过将从机的SPI从机选择引脚拉高实现与从机的同步。
9.根据权利要求8所述单双线兼容的SPI通信装置的通信方法,其特征在于,其还包括步骤 双线SPI通信写过程步骤主机通过CPLD选择一路从机打开片选使能,写入命令和地址并通过判断标志位查看是否写入完成,若完成则写入数据,通过判断标志位查看是否写入数据完成,若完成则整个SPI写过程结束,继续进行下一个操作; 双线SPI通信读过程步骤主机通过CPLD选择一路从机打开片选使能,写入命令和地址并通过判断标志位查看是否写入完成,若写入完成则继续写入SPI中的一个空操作产生时钟,等待所述空操作写入完成,若完成则从SPI接收缓冲器中读出接收到的数据,整个SPI读过程结束,接续进行下一个操作; 单线SPI通信写过程步骤主机通过CPLD选择一路从机打开片选使能,置写有效写入命令和地址并通过判断标志位查看是否写入完成,若完成则置写有效写入数据,通过判断标志位查看是否写入数据完成,若完成则整个SPI写过程结束,继续进行下一个操作; 单线SPI通信读过程步骤主机通过CPLD选择一路从机打开片选使能,置写有效写入命令和地址并通过判断标志位查看是否写入完成,若写入完成则置读有效写入SPI中的一个空操作产生时钟,等待所述空操作写入完成,若完成则可从SPI接收缓冲器中读出接收到的数据,整个SPI读过程结束,继续进行下一个操作。
全文摘要
本发明公开了一种单双线兼容的SPI通信装置及其通信方法,包括主机、多个从机及SPI总线,所述从机通过所述SPI总线与所述主机进行通信,其特征在于,所述从机与所述SPI总线之间还连接一可编程逻辑处理单元,所述主机还通过一片选信号线与所述可编程逻辑处理单元的选通端相连;所述主机通过所述可编程控制器来控制与所述从机连接,根据不同的片选逻辑将需要的从机与所述主机进行通信。其可以实现单双线SPI接口硬件可完全兼容,并可以实现一个主机通过可编程逻辑处理单元选通连接多个从机。
文档编号G06F13/38GK102929820SQ20111045448
公开日2013年2月13日 申请日期2011年12月30日 优先权日2011年12月30日
发明者房军杰, 吴天勇 申请人:广东佳和通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1