一种数据接收装置和数据发送装置的制造方法_2

文档序号:8258446阅读:来源:国知局
要求。
[0039]需要说明的是,本实施例所提供的第一数据处理单元和第二数据处理单元分别采用FPGA和DSP,但这仅仅是为了更加清楚地阐述本发明的优点,并不是对本发明的限定。在本发明的其他实施例中,第一数据处理单元和第二数据处理单元均可以采用其他合理的芯片及电路形式,例如采用ARM+FPGA的架构等,本发明不限于此。
[0040]图2示出了本实施例所提供的数据接收装置进行数据接收的流程图。
[0041]如图2所示,本实施例所提供的接收装置100从外部通信电路101接收数据时,第一数据处理单元102首先在步骤S201中对接收到的外部通信电路101传输来的数据进行相应地处理。在步骤S202中,第一数据处理单元102将处理得到的数据存储到第一存储单元中,并向第二数据处理单元103发出第一控制信号。
[0042]第二数据处理处理单元103在步骤S203中,根据接收到的第一控制信号,从第一存储单元中读取相应地数据,从而实现从外部通信电路101中接收所需要的数据。
[0043]本实施例中,第一数据处理单元现将接收到的数据进行处理后再发送给第二数据处理单元进行进一步处理,这样能够充分利用第一数据处理单元和第二数据处理单元各自的优势,从而实现对数据快速、高效地处理。
[0044]图3示出了所实施例所提供的数据接收装置进行数据接收过程中第一数据处理单元的处理流程图。
[0045]如图3所示,第一数据处理单元在步骤S301中对接收到的数据进行解码处理(例如HDLC解码)、数据链路层校验处理和分帧处理,并在步骤S302中将处理得到的数据存储到第一存储单元。
[0046]本实施例中,第一数据处理单元将处理得到的数据存储到其内部寄存器ch0_rx_buf (即接收数据寄存器)中,该寄存器的地址区间为0x104?0xl7F。当然,在本发明的其他实施例中,还可以采用其他合理的存储单元来存储经处理后的数据,例如外部存储器等,本发明不限于此。
[0047]同时,还需要说明的是,在发明的其他实施例中,第一处理单元对接收到的数据进行的处理既可以为以上所列项中的任一项或几项,也可以为其他未列出的合理处理过程,本发明不限于此。
[0048]在步骤S303中,第一数据处理单元还在对接收到的数据进行分帧的过程中,利用自身内部的计数器来产生各帧的时间戳信号,并将当前帧的时间戳信号存储到第一数据存储单元中的相应位置。本实施例中,第一数据处理单元为FPGA,其利用内部集成的50MHz的32位循环计数器来产生时间戳信号,该FPGA将当前帧的时间戳信号存储在时间戳寄存器(即寄存器chO_rx_timestampl和寄存器chO_rx_timestamph)中,其中,寄存器ch0_rx_timestampl用于存储时间戳信号的低16位数据,寄存器chO_rx_timestamph用于存储时间戳信号的高16位数据。
[0049]在步骤S304中,第一数据处理单元还检测第一存储单元中是否存在未被读取的数据帧,根据检测结果产生相应的第一状态数据,并将该第一状态数据存储到第一存储单元中的相应寄存器中。本实施例中,存储第一状态数据的寄存器为FPGA内部的状态寄存器,第一状态数据能够表征该状态寄存器的数据位是否有效。
[0050]在步骤S305中,第一数据处理单元向第二数据处理单元发出第一控制信号。本实施例中,第一控制信号为中断触发信号,当然,在本发明的其他实施例中,第一控制信号也可以为其他合理形式的信号,例如读/写使能信号等,本发明不限于此。
[0051]图4示出了本实施例中第二数据处理单元在数据接收过程中的处理流程图;
[0052]如图4所示,在步骤S401中,第二数据处理单元(即DSP芯片)接收第一数据处理单元(即FPGA)发出的中断触发信号,并对该信号进行响应,从FPGA内部的状态寄存器中读取第一状态数据。
[0053]在步骤S402中,DSP芯片根据读取到的第一状态数据判断状态寄存器数据位是否有效。如果有效,则表明FPGA中存在未被读取的数据帧,那么DSP芯片在步骤S403中从FPGA的时间戳寄存器中读取当前帧的时间戳信号以备用;如果无效,则表明FPGA中不存在未被读取的数据帧,那么此时DSP芯片则不继续进行数据的读取操作。
[0054]在步骤S404中,DSP芯片从FPGA的数据存储地址区间(即地址区间0x104?0xl7F)中读取相应的数据,从而得到外部通信电路传输来的数据。本实施例中,DSP芯片从FPGA中读取数据的过程中,还在步骤S405中判断所读取的地址是否达到了数据存储地址区间的末位地址(即0xl7F)。如果此次数据读取过程中末位地址0xl7F已被读取,则执行步骤S407以对读取到的数据进行进一步地分析处理;如果此次数据读取过程中末位地址0xl7F未被读取,本实施例中,DSP芯片则执行步骤S406来对末位地址0xl7F进行一次数据读取操作,随后执行步骤S407以对读取到的数据进行进一步地分析处理。
[0055]本实施例中,在第二数据处理单元从接收数据存储地址区间读取数据的过程中,第一数据处理单元将检测接收数据存储地址区间的末位地址是否被第二数据处理单元读取。如果接收数据存储地址区间的末位地址被第二数据处理单元读取,第一数据处理单元则会清除第一控制信号。
[0056]而在本发明的一个实施例中,在第二数据处理单元从接收数据存储地址区间的末位地址读取数据时,第一数据处理单元还判断是否存在下一帧数据。如果存在,此时第一数据处理单元将保留所述第一控制信号,以使得第二数据处理单元继续读取下一帧数据;否则第一数据处理单元将清除所述第一控制信号。
[0057]在本发明的一个实施例中,第一数据处理单元将处理得到的数据存储到其内部寄存器,内部寄存器的接收数据缓冲区分成8个124字长度的字段,每个字段存储一帧有效数据,按循环缓冲的模式管理。第二数据处理单元可通过寄存器ch0_rx_buf (即接收数据寄存器)作为访问窗口对缓冲区的有效字段进行访问,该寄存器的地址区间为0x104?0xl7Fo当然,在本发明的其他实施例中,还可以采用其他合理的存储单元来存储经处理后的数据,例如外部存储器等,本发明不限于此。
[0058]本实施例中,第一数据处理单元通过检测第一存储单元中是否存在未被读取的数据帧来产生相应的第一状态数据,第二数据处理单元在从第一存储单元中读取数据的过程中,首先通过读取第一状态数据来判断第一数据存储单元的数据存储状态,以便判断是否需要继续进行数据读取。这样有效提高了第二数据处理单元的数据读取效率,也就提高了整个装置的数据接收效率。
[0059]本实施例中,第一数据处理单元在对从外部通信电路传输来的数据进行处理的过程中,还会生成相应的第二状态数据,并将生成的第二状态数据存储在相应的寄存器中。具体地,本实施例中,第二状态数据包括:CRC校验错误状态数据、接收帧数据长度错误状态数据、接收缓冲溢出状态数据和数据接收有效性状态数据。当然,在本发明的其他实施例中,第二状态数据也既可以包括以上所列项中的任一项或几项,也可以包括未列出的其他合理的状态参数数据,本发明不限于此。
[0060]相应地,第二数据处理单元在从第一数据存储单元中读取数据的过程中,还会读取第二状态数据,并根据第二状态数据判断整个装置的数据接收状态,从而实现在接收过程中的状态检测功能。
[0061]从上述描述中可以看出,本实施例所提供的数据接收装置中,第一数据处理单元通过检测第一存储单元中是否存在未被读取的数据帧来产生相应的第一状态数据。第二数据处理单元在从第一存储单元中读取数据的过程中,首先通过读取第一状态数据来判断第一数据存储单元的数据存储状态,以便判断是否需要继续进行数据读取。这样有效提高了第二数据处理单元的数据读取效率,也就提高了整个装置的数据接收效率。
[0062]本实施例还提供了一种数据发送装置,该装置与图1所示出的数据接收装置的硬件结构相同,在此不再赘述。图5示出了图1所示的装置进行数据发送的流程图。
[0063]如图5所示,在进行数据发送时,第二数据处理单元(即DSP芯片)首先在步骤S501中将待发送数据的数据长度写入第一数据处理单元(即FPGA)中的数据长度存储单元。具体地,本实施例中,数据长度存储单元为FPGA内部的发送数据长度寄存器ch0_tx_data_len,该寄存器为16位寄存器。
[0064]在步骤S502中,第二数据处理单元将待发送数据写入第一数据处理单元中的发送数据存储单元中。本实施例中,发送数据存储单元为FPGA内部的发送数据寄存器ch0_tx_buf,该寄存器的地址区间为0x184?OxlFF.
[0065]需要说明的是,在本发明的其他实施例中,待发送数据及其数据长度还可以存储在其他合理的存储单元或寄存器中,本发明不限于此。
[0066]在步骤S503中,第一数据
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1