数据通信装置以及数据通信方法与流程

专利2022-05-09  23


本发明涉及数据通信装置以及数据通信方法。



背景技术:

在电子设备等中使用在控制命令的写入以及状态或数据的读取中执行串行通信的数据通信装置。在这样的数据通信装置中,为了提高响应性,通常进行全双工通信。

尤其是如日本特开平9-50691号公报(专利文献1)那样使用如下结构:基于保存在串行接收数据的寄存器地址信息来选择内置的多个寄存器的存储数据,并且将选择出的寄存器数据作为同一数据包的串行发送数据而发送。

在这样的高速串行通信系统中,在保存有大量寄存器数据的结构中,有可能在要求的时间内完不成根据串行接收到的寄存器地址信息对用于生成串行发送数据的寄存器数据的选择。在这样的情况下,担心需要使波特率降低、或是由于将串行接收数据的寄存器地址与串行发送数据的寄存器数据的比特位置分离而使串行通信格式的自由度降低。

例如,在专利文献1所记载的半导体存储装置中,利用将寄存器电路分为偶数地址用和奇数地址用而配置的结构,来防止串行通信系统的波特率降低。

现有技术文献

专利文献

专利文献1:日本特开平9-50691号公报



技术实现要素:

发明所要解决的技术课题

然而,在专利文献1的结构中,虽然针对连续的地址的寄存器的连续访问能够实现高速化,但是担心对单次的寄存器数据的读取无法实现高速化。

本发明是为了解决这样的问题而做出的,本发明的目的在于,在利用与时钟同步的串行数据的发送/接收的、根据多个比特的地址选择读取数据的处理中,防止串行通信的波特率降低、通信格式的自由度降低。

用于解决技术课题的技术方案

根据本发明的一个方面,作为与时钟同步地工作的数据通信装置,具备接收电路、寄存器电路、寄存器选择电路和发送电路。接收电路与时钟同步地接收串行数据。寄存器电路包含以多个比特构成的地址,存储多个根据该地址被选择的接收数据。寄存器选择电路根据由接收电路在每个时钟周期作为所述串行数据而接收到的多个比特中包含的地址,从在寄存器电路存储的多个接收数据中与时钟同步地选择读取数据。发送电路与时钟同步地发送由寄存器选择电路选择出的读取数据作为串行数据。寄存器选择电路在不同的时钟周期执行基于多个比特中的部分比特从多个接收数据中对多个候选数据的选择和基于多个比特中的除了部分比特之外的剩余比特从多个候选数据中对读取数据的选择。

根据本发明的另一方面,作为与时钟同步地发送/接收串行数据的数据通信方法,在每个时钟周期接收构成用于从在寄存器电路存储的多个数据中选择读取数据的地址的多个比特中的部分比特作为串行数据,在每个时钟周期接收用于选择来自存储多个根据地址被选择的接收数据的寄存器电路的读取数据的、构成该地址的多个比特中的部分比特作为串行数据,基于接收到的部分比特从所述多个数据中选择多个候选数据,接收地址的多个比特中的除了部分比特以外的剩余比特作为串行数据,在比基于接收到的剩余比特选择多个候选数据的时钟周期靠后的时钟周期,从多个候选数据中选择所述读取数据,在每个时钟周期将选择出的读取数据作为串行数据发送。

发明效果

根据本发明,利用与时钟同步的串行数据的发送/接收,能够避免根据多个比特的地址从在寄存器存储的多个数据中选择读取数据的处理集中于1个时钟周期的情况,因此能够防止串行通信的波特率降低、通信格式的自由度降低。

附图说明

图1为说明实施方式1的数据通信装置的结构的框图。

图2为实施方式1的数据通信装置的工作波形图的一例。

图3为说明比较例的寄存器选择电路的结构的框图。

图4为具备图3所示的寄存器选择电路的数据通信装置的工作波形图的一例。

图5为说明实施方式2的数据通信装置的结构的框图。

图6为实施方式2的数据通信装置的工作波形图的一例。

附图标记

100、200:数据通信装置;101:串行接收电路;102:移位寄存器(串行接收用);115:移位寄存器(串行发送用);103:寄存器电路;104:串行通信控制电路;105:串行定时控制电路;106、206:串行发送电路;107、110、207:寄存器选择电路;108、109、114、208~214:选择器;a0~a7:地址;clk:串行时钟;dat0、dat00、dat1、dat01、dat10、dat11:候选数据;rd0~rd7:比特(读取数据);rdat:读取数据;sdi:串行接收数据;sdo:串行发送数据。

具体实施方式

以下参照附图对本发明的实施方式进行详细说明。此外,以下对图中的相同或相当部分附加相同的附图标记,原则上不重复其说明。

实施方式1.

图1为说明实施方式1的数据通信装置的结构的框图。

参照图1,实施方式1的数据通信装置100具备:串行接收电路101,用于从电子设备等外部设备接收串行接收数据sdi;以及串行发送电路106,用于向上述外部设备发送串行发送数据sdo。

数据通信装置100还具备:寄存器电路103,保存发送/接收数据;串行通信控制电路104,控制串行接收电路101及串行发送电路106;以及串行定时控制电路105,生成串行接收及串行发送的定时。

串行接收电路101具有串行接收用的移位寄存器102。串行发送电路106具有串行发送用的移位寄存器115。移位寄存器102与串行时钟clk同步地工作,接收串行接收数据sdi。移位寄存器115与和移位寄存器102共用的串行时钟clk同步地工作,输出串行发送数据sdo。

寄存器电路103能够存储可根据n比特(n:3以上的自然数)的地址被选择的2n个接收数据。接收数据各自以k比特(k:2以上的自然数)构成。例如,寄存器电路103内置根据n比特地址被选择的2n个寄存器(未图示),各寄存器能够存储k比特的接收数据。以下说明如下例子:设为n=8并且k=8,根据地址a0~a7而选择在寄存器电路103保存的28=256个接收数据(寄存器)中的1个数据,k比特(8比特)的接收数据作为串行发送数据sdo从数据通信装置100被输出。

串行发送电路106还具有寄存器选择电路107,该寄存器选择电路107从寄存器电路103的2n个数据(接收数据)中选择1个读取数据rdat。寄存器选择电路107具有第1级选择器108及109和第2级选择器114。第1级选择器108及109和第2级选择器114各自被串行通信控制电路104控制为与串行时钟clk同步地工作。

第1级选择器108及109基于地址a0~a7中的地址a1~a7,进行128(2(n-1)):1(128到1)的选择。其结果是,第1级选择器108输出根据输入的地址a1~a7及a0=“0”而选择的dat0作为候选数据。同样地,第1级选择器109输出根据输入的地址a1~a7及a0=“1”而选择的dat1作为候选数据。即,候选数据dat0及dat1是根据地址a1~a7而从在寄存器电路103存储的2n个数据中选择出的。

由第1级选择器108及109进行的对候选数据dat0及dat1的选择在同一时钟周期执行,并且在该时钟周期,候选数据dat0及dat1被输入到第2级选择器114。

第2级选择器114基于输入的地址a0选择来自第1级选择器108及109的候选数据dat0及dat1中的一个作为读取数据rdat而向移位寄存器115输出。例如,当输入的地址a0=“0”时,选择候选数据dat0,另一方面,当输入的地址a0=“1”时,选择候选数据dat1。

其结果是,向移位寄存器115输入由寄存器选择电路107基于输入的地址a0~a7而选择出的k比特的读取数据rdat。移位寄存器115与串行时钟clk同步地输出k比特的读取数据rdat的每1比特作为串行发送数据sdo。

图2为实施方式1的数据通信装置100的工作波形图。图2中示出了串行时钟clk的各周期(时钟周期)中的串行接收数据sdi及串行发送数据sdo的内容。在图中对能够分配其它命令或数据的、“无关(don’tcare(d.c))”的时钟周期附加了斜线。

参照图2,与串行时钟clk的下降同步地,来自外部设备的串行接收数据sdi被输入至串行接收电路101。串行接收电路101的内部的移位寄存器102与串行时钟clk的上升同步地获取串行接收数据sdi。

根据在包含时刻t0的时钟周期获取的串行接收比特的值,确定了串行接收数据sdi为读取命令(rcm)。进而,根据在包含时刻t1~t7的时钟周期获取的串行接收比特的值,地址a7~a1确定。

在包含时刻t7的时钟周期,n比特地址中的1比特、在此为地址a0未确定,因此应从寄存器电路103读出的数据有两种可能性。因此,在该时钟周期,地址a1~a7被输入至第1级选择器108及109。其结果是,第1级选择器108及109在该时钟周期内选择与确定的地址a1~a7及未确定的a0=“0”对应的候选数据dat0以及与确定的地址a1~a7及未确定的a0=“1”对应的候选数据dat1而对第2级选择器114输出。

根据在包含时刻t8的时钟周期获取的串行接收比特的值,未确定的地址a0确定。确定的地址a0被输入至第2级选择器114。第2级选择器114在该时钟周期内,根据确定的地址a0选择来自第1级选择器108及109的候选数据dat0及dat1中的一个,从而确定为读取数据rdat。像这样,寄存器选择电路107在比选择候选数据dat0、dat1的时钟周期靠后的时钟周期确定读取数据rdat。即,寄存器选择电路107通过分到多个时钟周期的、从2n个数据中的分阶段选择来确定读取数据rdat。

其结果是,在包含时刻t9的时钟周期确定了构成根据地址a0~a7选择的读取数据rdat的比特rd7~rd0。因此,在包含时刻t9~t16的时钟周期的各个时钟周期,移位寄存器115串行输出构成读取数据的比特rd7~rd0作为串行发送数据sdo。

另外,在获取命令及地址a0~a7作为串行接收数据sdi的包含时刻t0~t8的时钟周期,串行发送数据sdo被设为“无关”。另一方面,在发送构成读取数据rdat的比特rd7~rd0作为串行发送数据sdo的包含时刻t9~t16的时钟周期,串行接收数据sdi被设为“无关”。

据此,在实施方式1的数据通信装置中,能够进行如下通信:根据由1比特命令、8比特(n=8)地址及8比特(k=8)数据构成的全双工串行通信格式,从外部设备接收寄存器读取命令,在同一数据包回复来自寄存器电路103的读取数据。

图3中示出了比较例的寄存器选择电路的结构。

参照图3,比较例的寄存器选择电路110接受n比特(n=8)的地址a0~a7,在1个时钟周期选择寄存器电路103的2n个数据(寄存器)中的1个数据。即,寄存器选择电路107对移位寄存器115直接输出与图1的第2级选择器114同样的读取数据rdat。其结果是,在实施方式1的数据通信装置中,在两个时钟周期内进行256:1(2n:1)的寄存器选择,与此相对,在比较例的结构中,需要在1个时钟周期内执行相同规模的寄存器选择。

因此,在由比较例的寄存器选择电路110进行的选择处理不及时的情况下,需要降低串行时钟clk的频率,担心串行通信速度降低。

另一方面,当将串行时钟频率维持为相同时,担心导致如图4所示在地址a0与读取数据rdat的比特rd7之间设置虚拟位等的、通信格式的自由度降低。

参照图4,在与图2同样的包含时刻t0~t8的时钟周期,获取读取命令(rcm)及地址a0~a7,从而在包含时刻t8的时钟周期地址a0~a7确定。另一方面,在由寄存器选择电路110进行的256:1(2n:1)的选择处理中,当假设与图3同样而需要两个时钟周期时,在比较例中,关于构成根据地址a0~a7而选择的读取数据rdat的比特rd7~rd0,在包含下一时刻t9的时钟周期可能产生未确定的情况,在该情况下,成为在包含再下一时刻t10的时钟周期能够从移位寄存器115输出的状态。因此,在包含时刻t10~t17的时钟周期,构成读取数据的比特rd7~rd0作为串行发送数据sdo被串行输出。

其结果是,在图4的工作波形中,在从地址已确定的时钟周期到构成读取数据rdat的比特rd7~rd0的串行发送开始的时钟周期之间,产生串行接收数据sdi及串行发送数据sdo这两者为“无关”的时钟周期(图4中的包含时刻t9的时钟周期)。这是由于串行比特长度的增加等而使通信格式的自由度降低。

对此,根据实施方式1的数据通信装置,能够使用n比特地址中的每个部分比特,使用多个时钟周期执行2n:1的选择处理,因此能够防止全双工通信的串行通信速度的波特率降低、通信格式的自由度降低。

此外,在实施方式1中,多个比特的地址a0~a7当中的用于选择候选数据dat0及dat1的地址a1~a7与“部分比特”的一个实施例对应。另外,用于从候选数据dat0、dat1中选择读取数据rdat的地址a0与“剩余比特”的一个实施例对应。

实施方式2.

在实施方式1中说明了如下例子:将n比特地址分为两份,使用两个时钟周期分阶段地执行基于(n-1)比特的寄存器选择和基于1比特的寄存器选择。然而,该划分数m不限于2,能够设为任意的2以上的自然数(2≤m<n)。在实施方式2中,说明设为m=3的结构例。

图5为说明实施方式2的数据通信装置的结构的框图。

参照图5,实施方式2的数据通信装置200与实施方式1的数据通信装置100(图1)相比较,在具备串行发送电路206来代替串行发送电路106这点上不同。串行发送电路206具有寄存器选择电路207和与图1同样的移位寄存器115。实施方式2的数据通信装置200的其它部分的结构与实施方式1的数据通信装置100(图1)是同样的,因此不重复详细说明。此外,在实施方式2中也与实施方式1同样地说明如下例子:设为n=8并且k=8,根据地址a0~a7来选择在寄存器电路103保存的28=256个数据(寄存器)中的1个数据,以k比特(8比特)构成的读取数据rdat作为串行发送数据sdo从数据通信装置200被输出。

寄存器选择电路207具有第1级选择器208~211、第2级选择器212、213和第3级选择器214。各选择器208~214被串行通信控制电路104控制为与串行时钟clk同步地工作。

第1级选择器208~211基于地址a0~a7中的地址a2~a7进行64(2(n-2)):1(64到1)的选择。在该选择中,由于地址a0及a1未确定,因此留有(a0,a1)=(0,0)、(0,1)、(1,0)及(1,1)这4种可能性。

第1级选择器208输出根据输入的地址a2~a7及a1=“0”、a0=“0”而选择的候选数据dat00。同样地,第1级选择器209输出根据输入的地址a2~a7及a1=“0”、a0=“1”而选择的候选数据dat01。另外,从第1级选择器210输出根据输入的地址a2~a7及a1=“1”、a0=“0”而选择的候选数据dat10,从第1级选择器211输出根据输入的地址a2~a7及a1=“1”、a0=“1”而选择的候选数据dat11。由第1级选择器208~211进行的对候选数据dat00~dat11的选择在同一时钟周期执行,并且在该时钟周期,候选数据dat00、dat01被输入到第2级选择器212,候选数据dat10、dat11被输入到第2级选择器213。即,候选数据dat00、dat01、dat10及dat11是根据地址a2~a7从在寄存器电路103存储的2n个数据(接收数据)中选择出的。

第2级选择器212基于输入的地址a1,选择来自第1级选择器208及209的候选数据dat00及dat01中的一个而输出为候选数据dat0。同样地,第2级选择器213基于输入的地址a1,选择来自第1级选择器210及211的候选数据dat10及dat11中的一个而输出为候选数据dat1。在该选择中,地址a0未确定,因此留有a0=“0”及“1”这两种可能性。

由第2级选择器212及213进行的对候选数据dat0及dat1的选择在同一时钟周期执行,并且在该时钟周期,候选数据dat0及dat1被输入到第3级选择器214。

第3级选择器214基于输入的地址a0,选择来自第2级选择器212及213的候选数据dat0及dat1中的一个作为读取数据rdat而向移位寄存器115输出。例如,当输入的地址a0=“0”时,输出候选数据dat0,另一方面,当输入的地址a0=“1”时,输出候选数据dat1。

其结果是,基于输入的地址a0~a7,分到3个时钟周期而通过寄存器选择电路207选择出的k比特的读取数据rdat被输入到移位寄存器115。移位寄存器115与串行时钟clk同步地将k比特的读取数据rdat的每1比特输出为串行发送数据sdo。

图6为实施方式2的数据通信装置200的工作波形图。

参照图6,在与图2同样的包含时刻t0~t6的时钟周期,获取读取命令(rcm)及地址a2~a7。在包含时刻t6的时钟周期,n比特地址中的两比特、在此为地址a0及a1未确定,因此应从寄存器电路103读出的接收数据有4种可能性。因此在该时钟周期,地址a2~a7被输入至第1级选择器208~211。

其结果是,在该时钟周期内,第1级选择器208及209对第2级选择器212分别输出确定的地址a2~a7及未确定的a1=“0”且a0=“0”的候选数据dat00以及确定的地址a2~a7及未确定的a1=“0”且a0=“1”的候选数据dat01。

同样地,在该时钟周期内,第1级选择器210及211对第2级选择器213分别输出确定的地址a2~a7及未确定的a1=“1”且a0=“0”的候选数据dat10以及确定的地址a2~a7及未确定的a1=“1”且a0=“1”的候选数据dat11。

根据在包含下一时刻t7的时钟周期获取的串行接收比特的值,未确定的地址a1确定。确定的地址a1被输入至第2级选择器212及213。在该时钟周期内,第2级选择器212根据确定的地址a1选择候选数据dat00及dat01中的一个作为候选数据dat0而向第3级选择器214输出。同样地,在该时钟周期内,第2级选择器213根据确定的地址a1选择候选数据dat10及dat11中的一个作为候选数据dat1而向第3级选择器214输出。

根据在包含再下一时刻t8的时钟周期获取的串行接收比特的值,未确定的地址a0确定。确定的地址a0被输入至第3级选择器214。在该时钟周期内,第3级选择器214根据确定的地址a0,将来自第2级选择器212及213的候选数据dat0及dat1中的一个确定为读取数据rdat。在实施方式2中也理解为:寄存器选择电路207在比选择候选数据dat0、dat1的时钟周期靠后的时钟周期确定读取数据rdat,通过分到多个时钟周期的、从2n个数据中的分阶段选择来确定读取数据rdat。

其结果是,与图2同样地,在包含下一时刻t9的时钟周期,确定了构成根据地址a0~a7而选择的读取数据rdat的比特rd7~rd0。因此,移位寄存器115能够在包含时刻t9~t16的各时钟周期(串行时钟clk的下降沿),将构成读取数据rdat的比特rd7~rd0作为串行发送数据sdo而输出。

像这样,在实施方式2的数据通信装置中,也能够使用n比特地址中的每个部分比特,使用多个时钟周期进行2n:1的选择处理,从而防止全双工通信的串行通信速度的波特率降低、通信格式的自由度降低。即能够进行如下通信:根据预先决定的全双工串行通信格式,从外部设备接收寄存器读取命令,在同一数据包回复来自寄存器电路103的读取数据。

此外,在实施方式2中,多个比特的地址a0~a7当中的、用于选择包括候选数据dat0、dat1的候选数据dat00~dat11的地址a2~a7与“部分比特”的一个实施例对应。另外,用于从候选数据dat00~dat11中确定读取数据dat的地址a0、a1与“剩余比特”的一个实施例对应。即,可以如实施方式2所示,跨越多个时钟周期来执行从基于部分比特而选择出的“候选数据”中基于剩余比特对“读取数据”的选择。

另外,在实施方式1和2中分别说明了当将基于n比特地址的2n:1的寄存器选择处理划分为m阶段时设为m=2和m=3的例子,但是如上所述,划分数m(m:(2≤m<n)的自然数)能够设为任意的。但是由于随着划分数的增加也产生寄存器的配置个数增加的缺点,因此可以考虑通信速度及电路规模的折衷来决定划分数m。

应该认为,本次公开的实施方式在所有方面都为举例而非限制性的。本发明的范围不是通过上述说明而是通过权利要求书来示出,意图包含与权利要求书等同的意义及范围内的所有变更。

转载请注明原文地址:https://doc.8miu.com/read-350359.html

最新回复(0)