多路同步串行数据总线转换为并行数据总线的装置及方法

文档序号:1362539 发布日期:2020-08-11 浏览:16次 >En<

阅读说明:本技术 多路同步串行数据总线转换为并行数据总线的装置及方法 (Device and method for converting multi-path synchronous serial data bus into parallel data bus ) 是由 张宝利 李尧 刘丛林 庞岩 许新骥 于 2020-04-16 设计创作,主要内容包括:本发明公开了一种多路同步串行数据总线转换为并行数据总线的装置及方法,所述方法包括:通道位数计数器、通道位数计数保持计数器和数据寄存器;其中,所述通道位数计数保持计数器接收经反相的位同步时钟信号,对其高电平进行计数,并生成通道位数计数保持使能信号,传输至通道位数计数器;通道位数计数器接收经反相的位同步时钟信号,以及通道位数计数器,当二者均有效时,对经反相的位同步时钟信号的高电平进行计数,并将ADC数据码流传输至移位寄存器;完成一帧ADC数据码流计数时,将移位寄存器中的ADC数据存储至数据寄存器。本发明的转换过程中,数据位由菊花链数据接口总线中的位同步时钟标定,不会出现丢码、误码、错码。(The invention discloses a device and a method for converting a multi-channel synchronous serial data bus into a parallel data bus, wherein the method comprises the following steps: a channel bit number counter, a channel bit number counting and holding counter and a data register; the channel digit counting and holding counter receives the inverted bit synchronization clock signal, counts the high level of the clock signal, generates a channel digit counting and holding enabling signal and transmits the channel digit counting and holding enabling signal to the channel digit counter; the channel digit counter receives the inverted bit synchronization clock signal, counts the high level of the inverted bit synchronization clock signal when the inverted bit synchronization clock signal and the channel digit counter are both effective, and transmits an ADC data code stream to the shift register; and when one frame of ADC data code stream counting is finished, the ADC data in the shift register is stored to the data register. In the conversion process, the data bits are calibrated by a bit synchronous clock in the daisy chain data interface bus, and code loss, error codes and wrong codes cannot occur.)

多路同步串行数据总线转换为并行数据总线的装置及方法

技术领域

本发明属于串并转换技术领域,尤其涉及一种多路同步串行数据总线转换为并行数据总线的装置及方法。

背景技术

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

在一些应用场合中,数据采集系统对模拟/数字转换(ADC)的要求是多路并发(同步)、高分辨率、高采样率、高输出率(与采样率相匹配),ADC转换器数据吞吐量大,芯片制造商多采用菊花链数据接口总线作为ADC转换器的数据接口。这种菊花链数据接口总线易于与DSP、FPGA、具有菊花链数据接口总线的微处理器(MPU)等配合使用,具有菊花链数据接口总线的微处理器不常见,DSP、FPGA的使用技术门槛高,硬件成本高,系统的设计难度和复杂度都大,不适用于低成本应用场合。

在采用没有菊花链数据接口总线的MPU时,菊花链数据接口总线占用微处理器的大量外部输入IO引脚,这些引脚一般要具有外部中断输入资源或捕获资源,需要频繁进行中断操作,系统资源消耗相当巨大,这对MPU的处理速度要求很高;同时,中断操作处理流程和主处理流程相互影响,严重影响程序执行的顺畅性和代码执行效率,造成数据接收出现丢码误码情况。

发明内容

为克服上述现有技术的不足,本发明提供了一种多路同步串行数据总线转换为并行数据总线的装置及方法,可以同时接收输入的多路同步串行数据码流,将数据由串行方式转换为并行数据,由外部微处理器通过并行接口读取数据从而实现转换。

为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:

一种多路同步串行数据总线转换为并行数据总线的装置,包括:通道位数计数器、通道位数计数保持计数器和数据寄存器;

其中,所述通道位数计数保持计数器接收经反相的位同步时钟信号,对其高电平进行计数,并生成通道位数计数保持使能信号,传输至通道位数计数器;

通道位数计数器接收经反相的位同步时钟信号,以及通道位数计数器,当二者均有效时,对经反相的位同步时钟信号的高电平进行计数,并将ADC数据码流传输至移位寄存器;完成一帧ADC数据码流计数时,将移位寄存器中的ADC数据存储至数据寄存器。

一个或多个实施例还提供了一种多路同步串行数据总线转换为并行数据总线的方法,包括:

自串行数据总线接收串行数据码流,对位同步时钟信号进行反相操作;

对经反相的位同步时钟信号的高电平进行持续计数,并将ADC数据码流传输至移位寄存器;

完成一帧ADC数据码流计数时,将移位寄存器中的ADC数据存储至数据寄存器,完成串行数据到并行数据的转换。

以上一个或多个技术方案存在以下有益效果:

整个数据格式转换过程中,数据位由菊花链数据接口总线中的位同步时钟标定,通过位同步时钟信号的计数按帧读取数据,帧长度严格的与菊花链数据接口总线中的帧同步信号保持同步,不会出现丢码、误码、错码。

通过使用移位寄存器对数据进行缓存实现串行数据到并行数据的转换。

适合于所有具有并行数据总线的MPU,可以灵活的与各芯片制造厂商制造的具有菊花链数据接口总线的ADC转换芯片接口,易于实现、适应性强、应用面广、降低了应用技术门槛、减小了硬件成本开销和印刷电路板的设计难度,也缩短了应用程序或代码的开发周期。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1为现有技术中菊花链数据接口总线时序示意图;

图2为本发明实施例中多路同步串行数据总线转换为并行数据总线的装置总体框架图;

图3为本发明实施例中多路同步串行数据总线转换为并行数据总线的逻辑关系图;

图4为本发明实施例中多路同步串行数据总线转换为并行数据总线的内部时序与菊花链数据接口总线时序对应时序图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

首先对菊花链数据接口总线的时序进行简要说明。如图1,信号DCLK、DRDY、DOUTn均是外部ADC转换器的菊花链数据接口总线的信号线,n=1,2,3,4……表示可以支持的输入菊花链数据接口总线中的模拟通道数或串行数据码流通道数。

其中,信号DCLK为菊花链数据接口总线的位同步时钟,下降沿有效,从上升沿开始到下一次上升沿之前的时间为一个时钟周期Tc;信号DRDY为菊花链数据接口总线的帧同步脉冲,持续时长为Tc,信号DRDY在前一帧的最后一个位同步时钟DCLK的上升沿时置位为逻辑1,直到下一个位同步时钟DCLK上升沿时刻之前置位为逻辑0;信号DOUTn为菊花链数据接口总线的模拟信号通道转换完成后输出的某一路同步串行数据码流,包含了数模转换的模拟数据的位和校验(或标志)字的位码流,串行数据码流的数据位在DCLK下降沿时有效。

实施例一

本实施例公开了一种多路同步串行数据总线转换为并行数据总线的装置,包括:通道位数计数器、通道位数计数保持计数器、帧同步清零计数器、写清零器、移位寄存器、数据寄存器(FIFO)及数据总线选择器。其中,

其中,所述通道位数计数保持计数器接收经反相的位同步时钟信号,对其高电平进行计数,并生成通道位数计数保持使能信号,传输至通道位数计数器;当对经反相的位同步时钟信号计数到预设大小时,通道位数计数保持使能信号失效。

通道位数计数器接收经反相的位同步时钟信号,以及通道位数计数器,当二者均有效时,对经反相的位同步时钟信号的高电平进行计数,并将ADC数据码流传输至移位寄存器;完成一帧ADC数据码流计数时,将移位寄存器中的ADC数据存储至数据寄存器,同时,输出ADC数据格式转换完成的脉冲信号,以便通知外接MPU,由MPU通过并行数据总线将ADC数据读出;若此时位同步时钟信号同时有效,则生成计数器清零信号,将通道位数计数器中涉及的计数清零。

帧同步清零计数器,接收帧同步脉冲信号并对其进行反相,当经反相的帧同步脉冲信号发生上升沿跳变,且通道位数计数保持使能信号失效时,生成帧同步清零信号。

写清零器,接收外部微处理器的写信号,以及外部微处理器的并行总线指向所述数据寄存器空间的选通信号,当二者均有效时,生成数据寄存器清零信号,数据寄存器清零信号和计数器清零信号中其中之一有效时,生成移位寄存器清零信号。

移位寄存器,接收经反相的位同步时钟信号,当所述经反相的位同步时钟信号高电平时,所述移位寄存器均同时向左移动一位数据。

如图2和3所示,所述通道位数计数器,包括与门U1、计数器U2、D型触发器U3、反相器U4、与门U5、或门U6;所述通道位数计数保持计数器,包括带使能的计数器U8、与门U9、带使能的D型触发器U11、反相器U10;所述帧同步清零计数器,包括反相器U12、与门U13、反相器U14、带使能的D型触发器U15、带使能的D型触发器U16、与门U17;所述写清零器,包括与门U18、反相器U19、带使能的D型触发器U20、或门U21;所述移位寄存器,包括U22、U24、U26、U28四个带清零的8位左移移位寄存器组成32位移位寄存器;所述数据寄存器(FIFO)由4个带清零的8位数据寄存器U23、U25、U27、U29组成,数据总线选择器图中为U30。

以下说明中上述逻辑电路均以Ux简称,其中x是序号,x=1、2、3……30。上述内部逻辑电路Ux是由一个/一种或多个/多种简单数字门电路组成的能实现期望的逻辑功能的功能性逻辑电路,下文叙述中所述的逻辑单元的意义与此相同。下文中“/”表示的信号是同名不带“/”的信号的反相信号,与图2和3中同名带上划线的信号意义相同,是描述的同一个信号,以下描述中出现“/”时意义与此相同。

逻辑电路在上电后,所有的内部逻辑电路的初始状态均为默认值,装置中的计时器、触发器、移位寄存器和数据寄存器等的输出Q或Qn(这里n指计数器的输出端子,表示2的指数,一般n=1、2、3、4、5等)均为0,触发时钟均为上升沿有效,使能输入高电平有效,清零输入高电平有效。

所述通道位数计数器,包括与U1、U2、U3、U4、U5、U6等逻辑单元组成,所述信号DCLK、/DCLK、DK_E、DK_D1(U2的Q5输出,表示计数值25=32)、ALE(U3的Q5输出,表示计数值25=32)、IRQ、ALE_S、DK_CLR、EN_CT、S_CLR等是本逻辑单元的输入输出信号。

其中,所述/DCLK是由DCLK经过反相器U7输出产生;所述S_CLR来自写清零器中的U21的输出;所述EN_CT来自通道位数计数保持计数器中的U10的输出。

所述EN_CT初始化后为逻辑电平1,所述ALE、S_CLR、DK_D1初始化后为逻辑电平0。所述/DCLK与EN_CT通过U1后输出的上升沿触发计数器U2计数,所述U2计数到第32个/DCLK的上升延时,所述U2的输出DK_D1由逻辑0跳变为逻辑1,此上升沿触发所述U3锁存逻辑1到输出端ALE;所述ALE的一路输送给数据寄存器FIFO的触发时钟的输入端从而锁存ADC的数据;所述ALE的一路经过U4反相输出逻辑0给外部电路,以标识ADC数据格式转换完成/有效;所述ALE的一路信号与所述DCLK经过U5输出ALE_S,所述ALE_S与S_CLR经过或门U6输出计数器清零信号DK_CLR为逻辑1,所述DK_CLR使U2、U3清零,所述信号DK_D1、ALE、ALE_S均恢复为逻辑0,所述IRQ恢复为逻辑1,所述通道位数计数器准备进行下一帧ADC数据码流计数。

所述通道位数计数保持计数器,由U8、U9、U11、U10等逻辑单元组成,信号/DCLK、EN_CT、DK_D2、DCLK、DK_D2S、CK_L、FS等是本逻辑单元的输入输出信号。

所述DK_D2、CK_L、FS、DK_D2S初始化后为逻辑电平0,所述CK_L经过反相器U10输出的信号EN_CT为逻辑电平1,所述EN_CT与U8的使能控制端CE和U10的使能控制端CE相连接,并使能U8的计数功能、U10的触发功能。所述/DCLK的上升沿触发U8计数,当计数到第32个/DCLK的上升延时,所述U8的输出DK_D2由逻辑0跳变为逻辑1,经过1/2时钟周期Tc后所述DK_D2与所述DCLK经过U9使输出信号DK_D2S由逻辑0跳变为逻辑1;所述DK_D2S输送给U11的时钟端,所述DK_D2S上升沿触发U11的输出CK_L跳变为逻辑1;所述CK_L一路经过U10,其输出信号EN_CT转变为逻辑0,使U1、U8、U11的输出状态锁定不变;所述CK_L的另一路和DY_P经过帧同步清零器中的U17,其输出信号FS跳变为逻辑1(当DY_P为逻辑1时),使通道位数计数保持计数器中的U8、U11均清零从而恢复为默认状态,准备进行下一帧ADC数据码流计数。

所述信号FS的跳变时刻滞后于CK_L的跳变时刻,滞后时长由增加或减少U17内部逻辑电路的级数来调整,且所述FS脉冲有足够宽度,以保证前述相关逻辑电路的正常逻辑,不会在同一时刻即输出逻辑状态又同时被清除或锁定输出逻辑状态,之后所述FS脉冲恢复到逻辑0,此逻辑0维持时间满足下一个所述DCLK和DRDY的持续时间间隔。

上述CK_L跳变为逻辑1时刻到FS脉冲跳变为逻辑1时刻之前的时间段内,前述处于逻辑0的EN_CT使前述通道位数计数器的U1输出DK_E锁定为逻辑0,不受信号/DCLK控制,前述U2停止计数且前述DK_D1保持逻辑1;所述FS有效且使CK_L清零从而使EN_CT置位为逻辑1后,前述U1的输出DK_E受信号/DCLK的控制,通道位数计数器恢复计数功能,这就是通道位数计数保持计数器的功能。

上述ALE、ALE_S、DK_CLR的有效时刻早于FS,从ALE、ALE_S、DK_CLR有效时刻到FS跳变为有效及FS跳变为无效过程的总时间大于1/2Tc和小于Tc。

所述帧同步清零计数器,由U12、U13、U14、U15、U16、U17等逻辑单元组成,所述DRDY、/DRDY、/DCLK、DK_G、DY_D、DY_CE、DY_P、FS等是本逻辑单元的输入输出信号。

所述DK_G、DY_D、DY_P、FS初始化后为逻辑0;所述DY_D经过U14输出的信号DY_CE为逻辑1,所述DY_CE与U15的使能端CE相连接且使能U15的功能。所述DRDY与/DCLK经过U13输出DK_G,所述DK_G上升沿触发U15使其锁存输出DY_D为逻辑1;所述DY_D经过U14输出DY_CE为逻辑0从而禁止U15的触发功能,所述DY_D连接到U16的使能端CE从而使能U16的功能;所述DRDY经过U12输出的/DRDY为上升沿跳变时,触发U16的输出信号DY_P跳变为逻辑1;所述DY_P与来自前述通道位数计数保持计数器输出的信号CK_L(此时为逻辑1)经过U17输出信号FS;所述FS被分别输送给前述通道位数计数器、通道位数计数保持计数器、写清零器、移位数据锁存器等,清除所述各逻辑单元的输出为逻辑0。

所述FS是帧数据同步清零信号,由前述通道位数计数保持计数器输出的CK_L与U16输出的DY_P经过U17后逻辑输出,所述FS为逻辑1时U2、U3、U8、U11、U15、U16、U20、U22、U24、U26、U28均清零,恢复为默认状态。

所述写清零器,由U18、U19、U20、U21等逻辑单元组成,所述CS、WR、WR_CS、WR_CLR、ALE_S、S_CLR等是本逻辑单元的输入输出信号。所述U20初始化后输出WR_CLR为逻辑0,所述WR_CLR经过U19反相为逻辑1并使能U20的触发功能。

其中,所述写信号WR来自外部MPU的并行数据总线,是写有效标志位,上升沿有效;在外部MPU写信号WR是逻辑低电平/下降沿有效时,本装置中内部设置逻辑反相器使之转换为上升沿有效。数据选择总线、其它数据总线来自与本装置连接的外部MPU的并行总线,它们的寻址空间都在外部MPU的寻址范围内;内部信号CS是外部MPU的并行总线指向内部缓冲ADC数据的缓冲区FIFO空间的选通信号,其可由数据选择总线逻辑产生,高电平有效;除上述信号外,所述其它信号均由内部逻辑电路产生。

所述CS和WR均为有效时,两者经过U18后输出WR_CS,所述WR_CS的上升沿触发U20输出数据寄存器清零信号WR_CLR为逻辑1;所述WR_CLR一路经过U19输出逻辑0从而不使能U20的触发功能,使所述WR_CLR不变;所述WR_CLR一路与前述ALE_S经过U21输出移位寄存器清零信号S_CLR为1,使前述U2、U3、U22、U24、U26、U28清零;所述WR_CLR一路输送给前述U23、U25、U27、U29并使它们清零。

所述WR_CLR在前述FS有效时清除,进而在前述ALE_S无效时S_CLR为无效。

所述的移位寄存器,如图2所示,由U22、U24、U26、U28四个8位左移移位寄存器组成32位移位寄存器,所述32位移位寄存器有4组,所述4组32位移位寄存器共有128位数据位(16字节),增加或减少所述32位移位寄存器的组数可以实现多种位数的数据码流缓冲。

所述32位移位寄存器的输入端口包括WR_CLR、DOUTn、/DCLK、S_CLR、ALE;DOUTn是外部数模转换器ADC的菊花链接口总线中的数据码流端口线中的一条的序号,可以是n=1、2、3、4,……等,这里n=4(以4通道为例)。

前述/DCLK上升沿时将DOUTn的状态锁存到的Q0,所述U28的原Qn(n=0,1……,7)同步左移一位,所述U28原Q7输送给U26并被所存到U26的Q0,所述U26原Qn依照U28的工作原理移动数据位,同理所述U24、U22在所述/DCLK上升沿时都同时向左移动一位数据;在所述/DCLK的上升沿跳变32次时,DOUTn的32位数据位分别被锁存到了所述32位移位寄存器的输出端,这样完成了串行ADC数据码流到并行的转变。

所述WR_CLR、/DCLK、S_CLR、ALE等的功能参见前述的描述。

所述的数据寄存器(FIFO)及数据总线选择器,如图2所示,由4个数据寄存器U23、U25、U27、U29和数据总线选择器U30组成。所述U23、U25、U27、U29在前述ALE跳变为逻辑1时将前述32位移位寄存器输出的位锁存起来并保持;在前述WR_CLR为逻辑1时U23、U25、U27、U29保存的数据被清零。

所述U30的输入信号包括:DB0-DB7、DB8-DB15、DB16-DB23、DB24-DB31、其它数据总线、数据选择总线。所述DB0-DB7、DB8-DB15、DB16-DB23、DB24-DB31是所述数据寄存器FIFO锁存ADC数据的内部保持总线;所述其它数据总线是指应用于某系统中时,由外接MPU统一分配数据存储空间时,除了指向所述的数据寄存器FIFO的寻址空间之外的部分或全部数据存储器储空间中的数据地址总线;所述数据选择总线即上述外接MPU统一分配数据存储空间时指向所述的数据寄存器FIFO的寻址空间的地址总线。

上述逻辑过程的时序如附图3所示。

本实施例所述装置可以同时接收菊花链数据接口总线输送来的多通道同步串行数据码流,每通道每次ADC转换的串行数据码流一次性转换为并行数据并被保存在数据缓冲器里(FIFO),此时,输出一个数据转换完成通知脉冲,以便通知外部MPU缓冲的ADC数据有效,外部MPU通过并行数据总线将缓冲在数据缓冲器中的ADC数据读出,读出数据过程不会清除FIFO。

本实施例所述的转换装置,适合于所有具有并行数据总线的MPU(或使用IO接口仿并行数据总线),占用很少的MPU资源从而降低了系统负担。本方法易于实现,可以灵活的与各芯片制造厂商制造的具有菊花链数据接口总线的ADC转换芯片接口,适应性强、应用面广、降低了应用技术门槛,减小了硬件开销和印刷电路板的设计难度。

实施例二

本实施例的目的是提供一种多路同步串行数据总线转换为并行数据总线的方法。所述方法包括:

自串行数据总线接收串行数据码流,对位同步时钟信号进行反相操作;

对经反相的位同步时钟信号的高电平进行持续计数,并将ADC数据码流传输至移位寄存器;

完成一帧ADC数据码流计数时,将移位寄存器中的ADC数据存储至数据寄存器,完成串行数据到并行数据的转换,由MPU通过并行数据总线将ADC数据读出。

为了保证外部MPU能够及时读取数据,完成一帧ADC数据码流计数时,还输出ADC数据格式转换完成的脉冲信号。

为了保证数据转换的效率,以及计数准确性,完成一帧ADC数据码流计数时,若位同步时钟信号处于高电平,则生成计数器清零信号。

整个转换过程以位同步时钟信号标定,严格的与菊花链数据接口总线中的帧同步信号、数据位同步时钟保持同步,具有较高的数据转换效率。

以上实施例二中涉及的各步骤与实施例一相对应,具体实施方式可参见实施例一的相关说明部分。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于总线模式的应用接口通信方法和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!