背景技术
IIC(Inter-Integrated Circuit)总线是飞利浦公司于上世纪80年代所设计,是用较少的连线将一个主设备和多个从设备连接在同一总线上的技术。IIC总线包括数据线SDA和时钟线SCL,数据线可以双向传输信号,时钟线由主设备输出给各个从设备。数据线和时钟线均需要加上拉电阻,信号线上高电平是由外加上拉电阻提供,低电平是由各个设备提供。
IIC总线接口特点是接口线少,控制简单。IIC接口主要在低速应用,最高应用也只有3.4Mbit/s。应用较广泛的有FRAM(Ferromagnetic Random Access Memory,铁电存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦可编程只读存储器)、Flash、RTC(Real-Time Clock,实时时钟)、MCU(Micro Control Unit,微控制单元)、LCD驱动器、键盘接口等等。
在测试、测量领域中,射频信号源是射频微波工作者必备的测试测量仪器之一。它可以根据使用者的设定输出不同频率幅度的射频信号,其主要输出连续波(CW)射频信号,当然还能输出各种调制信号,如FM(Frequency Modulation,调频)、AM(AplitudeModulation,调幅)、PM(Phase Modulation,调相)、IQ、Pulse(脉冲)等。随着雷达、通讯技术的发展,对射频源也提出了更高的要求。为实现如此复杂功能,需要用到很多逻辑器件或微控制器,这些器件之间需要很复杂的接口来实现芯片间的通讯。一般来说器件与器件之间的通讯是通过一定的协议来实现,但是若是跨器件的通讯就需要更复杂的握手同步机制来支持通讯,这样势必会让设计变得异常复杂。
如前所述,若两个器件A,B之间进行通讯,一般通过导线连通这两个器件,然后这两个器件遵循共同约定协议进行通讯,但是若在某种条件下这两个器件之间串接 了器件C,这时欲实现A,B间通讯就会很困难。比如A向B发送信号,首先A向C发送信号,C接收到信号后再传给B;B再给A回信息也是先发数据给C,最后由C发送给A。这样C起到翻译的作用。器件C是指逻辑器件或微处理器,如CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、MCU、ARM等。若B器件是低速串行器件,而本身时序操作很复杂,如串行SPI(Serial Peripheral Interface)接口的Flash,串行IIC接口的EEPROM等等,这样对串接器件C的要求就会很高,C需要对不同的A和B器件进行编程。尤其当A或B器件很多时,C的编程就会很复杂,占用大量资源。
现有的可以实现双向IO的器件结构如图1所示,逻辑器件U100实现双向IO功能。逻辑器件U100的一个端口为P101,另外一个端口为P102,控制端口P105,另外一个可能的控制端口P106用虚线表示。工作时,由控制端口P105或者是P106决定端口P101和P102之间的工作状态。
U101和U102是逻辑器件U100内部的三态门,P103和P104分别是三态门的控制端口。逻辑单元101是控制三态门工作状态的控制单元。
设三态门U101的逻辑关系如表1所示:
表1
则图1中电路可能的工作状态如表2:
表2
注:文中所述其他三态门逻辑关系与U101一样。0代表逻辑低电平,1代表逻辑高电平,Hi-Z代表高阻,X代表0或1。文中信号均指逻辑电平信号。
这样逻辑器件U101只需依据表2的逻辑关系实现双向IO的功能。
图2给出了一种逻辑单元100的内部结构图,不用按照表2的逻辑关系,就能简单的实现双向IO。
逻辑器件100的控制端口P105'经过反相器U103'分出两组控制端口P103'和P104'。其中,P103'接图1的P103,P104'接图1的P104,P105'接图1的P105,这样就可实现简单的双向IO控制。
这样图1的逻辑关系变为表3:
表3
图3给出了另外一种逻辑单元100的内部结构图,图3中的逻辑单元100可以实现带使能功能的双向IO。图3中,U103”是非门,U104”和U105”是与门。将图3中的P103”接图1的P103,P104”接P104,P105”接P105,P106”接P107,可以得到如下逻辑关系,见表4:
表4
逻辑器件U101只需按照表3或者表4的逻辑关系实现双向IO的功能,但是此办法比较笨拙,需要必须的控制管脚P105和可能的控制管脚P106来实现双向IO功能。
发明内容
本发明实施例提供了一种具有双向IO功能的测量装置,无需任何外部的控制接口就能实现双向IO功能。该测量装置包括逻辑器件、第一电阻和第二电阻;
所述逻辑器件包括逻辑单元、第一三态门和第二三态门;
所述逻辑单元的第一端口分别与第一三态门的输入端、第二三态门的输出端和第一采样端口连接;所述逻辑单元的第二端口分别与第一三态门的输出端、第二三态门的输入端和第二采样端口连接;所述逻辑单元的第三端口与第一三态门的控制端连接;所述逻辑单元的第四端口与第二三态门的控制端连接;
所述第一电阻的第一端分别与第一采样端口、逻辑单元的第一端口、第一三态门的输入端和第二三态门的输出端连接;第一电阻的第二端接Vcc;
所述第二电阻的第一端分别与第二采样端口、逻辑单元的第二端口、第一三态门的输出端和第二三态门的输入端连接;第二电阻的第二端接Vcc;
所述逻辑单元用于根据第一采样端口和第二采样端口的逻辑电平变化,控制第一三态门和第二三态门的通断。
在一个实施例中,所述根据第一采样端口和第二采样端口的逻辑电平变化,控制第一三态门和第二三态门的通断,包括:
当第一采样端口为低电平时,第一三态门导通,第二三态门断开,第二采样端口为低电平;
当第二采样端口为低电平时,第二三态门导通,第一三态门断开,第一采样端口为低电平;
当第一采样端口和第二采样端口均为高电平时,第一三态门和第二三态门均断开。
在一个实施例中,所述逻辑器件包括内部时钟发生器,用于控制输入输出状态的自动切换。
在一个实施例中,所述逻辑单元还与外部时钟端口连接,用于控制输入输出状态的自动切换。
在本发明实施例中,逻辑单元根据第一采样端口第二采样和端口的逻辑电平变化,自动控制第一三态门的控制端和第二三态门的通断,无需任何外部的控制接口就能实现IO状态的自动转换。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种现有的实现双向IO的器件结构图;
图2是本发明实施例提供的一种逻辑单元100的内部结构图;
图3是本发明实施例提供的一种另外一种逻辑单元100的内部结构图;
图4是本发明实施例提供的一种具有双向IO功能的测量装置;
图5是本发明实施例提供的逻辑单元201的具体实现方法流程图;
图6是本发明实施例提供的双向IO功能的测量装置用于IIC通讯系统的结构图;
图7是本发明实施例提供的双向IO功能的测量装置用于1wire通讯系统的结构图;
图8是本发明实施例提供的双向IO功能的测量装置用于1wire通讯系统的另一种结构图;
图9是本发明实施例提供的双向IO功能的测量装置用于复杂通讯系统的结构图;
图10是本发明实施例提供的双向IO功能的测量装置用于复杂通讯系统的树形结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
本发明提出一种具有双向IO功能的测量装置,无需任何外部的控制接口就能实现双向IO功能。
图4是本发明实施例提供的一种具有双向IO功能的测量装置,如图4所示,测量装置包括逻辑器件U200、第一电阻R201和第二电阻R202;
所述逻辑器件包括逻辑单元201、第一三态门U201和第二三态门U202;
所述逻辑单元201的第一端口分别与第一三态门U201的输入端、第二三态门U202的输出端和第一采样端口P201连接;所述逻辑单元201的第二端口分别与第一三态门U201的输出端、第二三态门U202的输入端和第二采样端口P202连接;所述 逻辑单元201的第三端口与第一三态门U201的控制端连接;所述逻辑单元201的第四端口与第二三态门U202的控制端连接;
所述第一电阻R201的第一端分别与第一采样端口P201、逻辑单元201的第一端口、第一三态门U201的输入端和第二三态门U202的输出端连接;第一电阻R201的第二端接Vcc;
所述第二电阻R202的第一端分别与第二采样端口P202、逻辑单元201的第二端口、第一三态门U201的输出端和第二三态门U202的输入端连接;第二电阻R201的第二端接Vcc;
所述逻辑单元201用于根据第一采样端口P201和第二采样端口P202的逻辑电平变化,控制第一三态门U201和第二三态门U202的通断,实现IO状态的自动转换。
具体的,逻辑单元201的第一端口和第二端口为输入端口,是作用相同的端口,都是用于接收通过第一采样端口和第二采样端口输入的信号,根据信号检测第一采样端口和第二采样端口的逻辑电平变化。
逻辑单元的第三端口、第四端口为输出端口,是作用相同的端口,都是用于输出第一三态门和第二三态门的控制信号。
对于上拉电阻的取值可以参照,IIC总线协议中的规定。
本发明用通用逻辑器件或微处理器实现真正的双向IO功能。实现同一器件两个端口的逻辑直连。
具体实施时,所述逻辑器件U200包括内部时钟发生器,用于控制输入输出状态的自动切换。或,逻辑单元201与外部时钟端口(管脚)CLK连接,用于控制输入输出状态的自动切换。另外本发明不需要任何外部控制信号。
具体实施时,所述根据第一采样端口P201和第二采样端口P202的逻辑电平变化,控制第一三态门U201和第二三态门U202的通断,包括:
当第一采样端口P201为低电平时,第一三态门U201导通,第二三态门U202断开,第二采样端口P202为低电平;
当第二采样端口P202为低电平时,第二三态门U202导通,第一三态门U201断开,第一采样端口P201为低电平;
当第一采样端口P201和第二采样端口P202均为高电平时,第一三态门U201和第二三态门U202均断开。
逻辑单元201具体实现方法如图5所示:
注:为描述方便将P203端口用EA替代,P204端口用EB替代,P201用A替代,P202用B替代。
首先将两个三态门的输出置为高阻,即将EA和EB清0,这样由于接在三态门输出的电阻作用,将输出的两个端口拉高(假设外界均为高阻)。这样整个逻辑单元201处于监控状态。
由于所有状态均是在时钟驱动下改变,故下述每一个状态的转移均在每个时钟周期下转移。
在第一个时钟周期下,逻辑单元201检测A端口是否变为低电平,若未变,说明A端口并未输入任何外界信号,这时EA还是保持原来的0,处于监控状态,在下一个时钟周期,逻辑单元201检测B端口是否变为低电平,若未变,说明B端口并未输入任何外界信号,这时EA还是保持原来的0,处于监控状态。在接下来的时钟周期,逻辑单元201依照上述逻辑转移路线依次检测A端口和B端口逻辑电平。
若A、B端口其中之一变低,则表明外界有信号输入,而且也决定了此电平的传输方向,这时逻辑单元201控制相应的控制端口,使能该方向上的三态门,即置1。同时还需要不断重复检测输入端口逻辑电平是否变高。若变高,则表明外界将总线(总线指A或B)释放,这时逻辑单元201也需要将输出电平变高,即将控制端清0,状态再次转移至监控状态;若不变(保持低电平),则表明外界传输状态保持不变,逻辑单元210需要继续保持该方向上的三态门使能,即保持为1,这时逻辑单元201运行至传输状态。
以实际为例:
在监控状态下,若在其中的一个时钟周期逻辑单元201检测到A端口为低电平,那么表明外界有信号从P201传输到P202,这时需要将U201使能,即EA=1,这样P202端也变为低电平。在接下来的时钟周期里,逻辑单元201不断检测A端口是否为高,若为高,表明外界信号将A端口置高,这时逻辑单元201将U201禁止,即EA=0,这样B端口由于电阻R202的作用拉高,同时逻辑状态返回置监控状态;若逻辑单元201检测到A端口为低,那么继续保持传输状态。
在监控状态下,若在其中的一个时钟周期逻辑单元201检测到B端口为低电平,那么表明外界有信号从P202传输到P201,这时需要将U202使能,即EB=1,这样 P201端也变为低电平。在接下来的时钟周期里,逻辑单元201不断检测B端口是否为高,若为高,表明外界信号将B端口置高,这时逻辑单元201将U202禁止,即EB=0,这样A端口由于电阻R201的作用拉高,同时逻辑状态返回置监控状态;若逻辑单元201检测到B端口为低,那么继续保持传输状态。
当逻辑器件U200中本身自带有时钟,流程图中每一步在自带时钟的驱动下运行,若逻辑器件U200中本身不带有时钟,则用外部时钟控制管脚CLK驱动流程中每一步运行。
此流程图可以有FPGA的Verilog或VHDL语言实现,亦可以通过ARM,MCU编程实现。
需要确定双向IO上逻辑信号的最高频率fmax,理论上此流程图运行最大会有2个时钟周期的延迟,所以每个逻辑单元201的最小频率fCLKmin为3fmax,工程上为了保证建立保持时间,一般取大于6~12fmax比较可靠。
另外,若每增加一个串行逻辑单元,那么频率即要加6~12fmax。若主控与设备之间跨接N个逻辑器件,那么逻辑器件时钟频率应该大于6N~12Nfmax。
采用本发明就可以避免现有技术中存在的问题,即使有中间串接器件C,A与B的通讯也不会受C的影响,C起到直接桥连的作用。
器件C无需大量编程,而且不需要知道A,B器件任何协议的情况下(除最高限制速度fmax(最高频率maximum frequency外),即可实现A和B的互联。
典型应用中如A器件是ARM处理器,C是FPGA,B是IIC接口的EEPROM和温度传感器,这样若A器件ARM欲读取温度,这时只需要通过本发明的芯片桥接办法直接在C器件FPGA中建立一个直通的通道,直接将A器件ARM和B器件温度传感器直连,从而达到直接读取温度的目的。
本发明应用以IIC通讯为例,如图6所示。
图中主控芯片Z401欲与设备S401进行IIC通讯,IIC通讯接口有SCL和SDA两条连线,SCL是单向线,故图4中用带箭头导线表示。而SDA是双向IO,用本发明的逻辑器件U401和U402实现。这样即使设备S401与主控芯片Z401中间隔了2个甚至是3个逻辑器件,本发明任然能够让主控芯片Z401无障碍的访问设备S401。
本发明也可用于1wire通讯系统,如图7所示:
主控芯片Z501可以用本发明通过逻辑器件U501和逻辑器件U502将1wire设备S501连接起来,然后直接访问通讯。
作为一种应用变形如图8所示:
图中,主控芯片Z601可以通过逻辑器件U601分别对1wire设备S601和1wire设备S602进行访问。逻辑器件U601需要用开关将1wire设备S601和1wire设备S602进行区分,并且用CMD601来进行控制。
作为更一般的应用变形可以是图9组成的复杂网络,用总线表示,逻辑器件U701外接多个上拉电阻(R701-R7N1),主控芯片Z701与逻辑器件U701之间用多个CMD(CMD1-CMDN1)来进行控制。图9中的两种电路等价。
则可以得到如图10所示的一般电路,主控芯片Z801与多个外部设备(M1-MN)之间通过多个逻辑器件(U801-U80N)进行访问。逻辑器件(U801-U80N)外接多个上拉电阻(R801-R8NN),主控芯片Z801与第一个逻辑器件U801之间、其它的逻辑器件之间用多个CMD(CMD1-CMDNN)来进行控制。这样可以组成一个树形结构。设所有设备中时钟频率最高为fmax,则对逻辑器件最高时钟频率为6N~12Nfmax。
综上,采用本发明测量装置,通过逻辑单元根据第一采样端口第二采样和端口的逻辑电平变化,自动控制第一三态门的控制端和第二三态门的控制端,无需任何外部的控制接口就能实现IO状态的自动转换。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。