CN109656850A - 采用单片cpld扩展的dsp串口通信电路 - Google Patents

采用单片cpld扩展的dsp串口通信电路 Download PDF

Info

Publication number
CN109656850A
CN109656850A CN201811344444.1A CN201811344444A CN109656850A CN 109656850 A CN109656850 A CN 109656850A CN 201811344444 A CN201811344444 A CN 201811344444A CN 109656850 A CN109656850 A CN 109656850A
Authority
CN
China
Prior art keywords
dsp
data
com
submodule
pin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811344444.1A
Other languages
English (en)
Other versions
CN109656850B (zh
Inventor
胡晓飞
乔海岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebei Hanguang Heavy Industry Ltd
Original Assignee
Hebei Hanguang Heavy Industry Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hebei Hanguang Heavy Industry Ltd filed Critical Hebei Hanguang Heavy Industry Ltd
Priority to CN201811344444.1A priority Critical patent/CN109656850B/zh
Publication of CN109656850A publication Critical patent/CN109656850A/zh
Application granted granted Critical
Publication of CN109656850B publication Critical patent/CN109656850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种采用单片CPLD扩展的DSP串口通信电路,其采用一片CPLD来控制DSP与外部进行串口通信的时序逻辑,通过对CPLD内部子模块的功能划分、CPLD内部的时序、逻辑配合,以及DSP的控制,实现采用最少芯片对DSP串口的扩展。CPLD被划分为数据接收子模块COM_RX、并口读取子模块Read和输出子模块COM_TX,其中COM_RX子模块应用基准时钟进行接收管脚rxd的实时下降沿检测,一旦检测到下降沿且连续多个基准时钟内均为低电平时,判定为数据的起始位,保证起始位检测正确;并且设计了循环计数器,停止计数器,分频器、移位寄存器等合理的逻辑、时序设计,以实现自动、高可靠性的接收数据,降低误码率。

Description

采用单片CPLD扩展的DSP串口通信电路
技术领域
本发明涉及嵌入式伺服控制技术领域,尤其涉及一种采用单片CPLD扩展的DSP串口通信电路。
背景技术
DSP嵌入式伺服控制产品以其体积小,功耗低,处理能力强等优势,在通讯,电子,工业控制,医疗,航空制导,网络等领域发挥着极其重要的角色。
目前,在复杂的多串口通信伺服控制系统领域,单片DSP一般提供3个串口,往往个数不够用。当需要扩展DSP的串口时,大多采用的技术是DSP+FPGA+存储器组合、双DSP组合、DSP+ST16C554D(四通道异步收发器)+CPLD等组合方式;其中,DSP+FPGA+存储器的组合方案,需要增加FPGA和存储器及其外围电路,不仅成本相对较高,而且FPGA软件设计也相对复杂;对双DSP的组合,能够提供6个串口,但是对于仅需要4个串口的伺服控制产品来说,造成了硬件资源的浪费,而且一个DSP的价格比CPLD高出不少;对于DSP+ST16C554D+CPLD的组合,采用ST16C554D+CPLD实现串口相关时序,但是由于需要ST16C554D及其外围电路,电路较为复杂。可见,上述为DSP扩展串口的方式,不利于产品的集成化、小型化设计要求,不能契合现代伺服控制产品对多串口通信系统提出的硬件集成化、高可靠性、低成本的数据交互要求。
发明内容
有鉴于此,本发明提供了一种采用单片CPLD扩展的DSP串口通信电路,能够仅采用一片CPLD即可实现DSP的串口扩展,电路简单,有利于产品的集成化、小型化设计要求。
为了解决上述技术问题,本发明是这样实现的:
一种采用单片CPLD扩展的DSP串口通信电路,包括:一片DSP和一片CPLD;DSP与CPLD通过读信号管脚XRD、写信号管脚XWE、片选信号管脚XZCS0、地址线管脚以及数据线管脚相连,CPLD还提供一个标志位输出端call_DSP连接DSP;
CPLD被划分为数据接收子模块COM_RX、并口读取子模块Read和输出子模块COM_TX;其中,
数据接收子模块COM_RX,通过串行的数据接收管脚rxd从外部接收数据,并存储在缓冲寄存器COM_data内,一帧数据接收完毕并判定当前接收的数据帧正确后,将标志位call_DSP置1,表示具备被DSP读取的状态;
对于并口读取子模块Read,DSP配置的读信号管脚XRD、片选信号管脚XZCS0、地址线管脚以及数据线管脚分别对接本并口读取子模块Read的DSP读信号DSP_XRD、DSP片选信号DSP_XZCS0、地址总线addrbus和数据总线databus;数据接收子模块COM_RX和并口读取子模块Read中均设有缓冲寄存器COM_data,并通过并口线直连;DSP_XRD、DSP_XZCS0和addrbus组成复选开关地址;并口读取子模块Read的复位管脚reply_DSP对接数据接收子模块COM_RX的接收复位引脚RX_clrn;
DSP在周期性中断中进行标志位call_DSP置1的判断,一旦置1,则在复选开关地址{DSP_XRD、DSP_XZCS0、addrbus}的控制下通过数据线管脚读取缓冲寄存器COM_data中存储的数据;同时并口读取子模块Read实时检测复选开关地址{DSP_XRD、DSP_XZCS0、addrbus}是否为设定的表征数据读取完毕的值,如果是,则通过复位管脚reply_DSP通知数据接收子模块COM_RX进行标志位call_DSP的恢复和缓冲寄存器的清零;
对于输出子模块COM_TX,DSP配置的写信号管脚XWE、片选信号管脚XZCS0、地址线管脚以及数据线管脚分别对接本输出子模块COM_TX的DSP写信号DSP_XWE、DSP片选信号DSP_XZCS0、地址总线addrbus和数据总线databus;
在复选开关地址{DSP_XWE、DSP_XZCS0、addrbus}的控制下,待外发的DSP数据通过数据总线databus传至输出子模块COM_TX的数据缓存器内,一帧数据传输完毕后,再启动串行发送过程,通过串行的数据发送管脚txd发送所述DSP数据。
优选地,在数据接收子模块COM_RX中,将系统时钟进行分频获得基准时钟,通过分频将一位数据的传输时间分为K份,在此基准时钟下进行数据接收管脚rxd的下降沿判定,一旦检测到下降沿且连续k个基准时钟内均为低电平,则判定接收到数据的起始位,开始进行一个字节数据位的串行读入;采用相同的方式完成一帧数据包中多个字节的串行读入;其中1<k≤K。
优选地,数据接收子模块COM_RX在进行一个字节数据位的串行读入时,启动循环计数器和停止计数器;
所述循环计数器的计数值为0至7,计数值存储单元为Cnt1[2:0],该计数值存储单元输出其选定位作为波特率时钟;
所述停止计数器用于记录波特率时钟的个数,计数值为1至8,计数值存储单元为Cnt2[3:0],当记录的波特率时钟为8时,停止计数,此时Cnt2[3:0]的最高位Cnt2[3]输出高电平,该高电平取反,并以所述基准时钟二分频后的时钟进行上升沿输出,从而产生计数器复位信号去复位所述循环计数器和停止计数器;同时Cnt1[2:0]的最高位输出作为一个8位右移寄存器Data_rxd的时钟,以此完成一次8位数据的接收。
优选地,并口读取子模块Read通过复位管脚reply_DSP通知数据接收子模块COM_RX进行标志位call_DSP的恢复和缓冲寄存器的清零时,产生复位管脚reply_DSP高电平到低电平的变化,输出至数据接收子模块COM_RX的接收复位引脚RX_clrn,然后延时设定时间后reply_DSP再次置位高电平。
优选地,并口读取子模块Read中缓冲寄存器COM_data包括COM_data0[7:0]~COM_data11[7:0],用于缓存12字节数据;并口读取子模块Read的addrbus为7位;当复选开关地址的地址值为0至5时,分别对应选通{COM_data1,COM_data0[7:0]}、{COM_data3[7:0],COM_data2[7:0]}、{COM_data5[7:0],COM_data4[7:0]}、{COM_data7[7:0],COM_data6[7:0]}、{COM_data9[7:0],COM_data8[7:0]}、{COM_data11[7:0],COM_data10[7:0]}输出;当复选开关地址为7时,表征数据读取完毕,产生reply_DSP反馈至数据接收子模块COM_RX。
优选地,输出子模块COM_TX中设有二维的缓冲寄存器,用于缓冲待输出的DSP数据;复选开关地址中的addrbus控制DSP数据缓存到缓冲寄存器的哪个位置;
输出子模块COM_TX具备两级发送使能;当复选开关地址为0时,开始通过databus接收DSP数据并缓存到缓冲寄存器的指定位置,此时关闭第一级发送使能,表示不能通过txd向外发送串行数据;当DSP数据接收完成,开启第一级发送使能置,表示可以通过txd向外串行发送所述DSP数据;第二级发送使能在开始向外串行发送DSP数据时被开启,并采用计数器记录发送的字节数,当发送最后一个字节时,停止第二级发送使能位,由此完成DSP多字节数据的并口传输、串口自动发送的过程。
优选地,DSP在周期性中断的频率设计为2kHz。
有益效果:
(1)本发明选用一个DSP芯片和一个CPLD(EPM1270)芯片组合,电路简单,有利于产品的集成化、小型化设计要求。而且,CPLD可以通过Verilog语言嵌入的图形模块来实现相应功能,在硬件电路不更改前提下,可进行编程化设计,适应多种串口通信协议设计。
(2)COM_RX子模块应用基准时钟进行接收管脚rxd的实时下降沿检测,一旦检测到下降沿且连续多个基准时钟内均为低电平时,判定为数据的起始位,保证起始位检测正确;并且设计了循环计数器,停止计数器,分频器、移位寄存器等合理的逻辑、时序设计,以实现自动、高可靠性的接收数据,降低误码率。
(3)COM_RX子模块采用接收一帧数据后,通过总线形式存储到寄存器内,等待DSP读取的设计方法;此设计方法降低了CPLD与DSP数据交互的总线的利用率,提高了CPLD逻辑单元的可靠性设计。
(4)Read子模块采用由DSP的写信号、片选信号、地址组成的复选开关地址,根据复选开关地址值进行自闭环清零或者复位动作,实现串口通信的智能化。而且,复位操作后,延时一段时间再次置位高电平,能够保证前一个动作做完,再进行后续操作,从而保证数据读取的完整性。
(5)COM_TX子模块根据复选开关地址值,自启动、自关闭发送的字节数,以实现DSP并口输入,串口输出的智能化设计。
可见,本方案提供的DSP扩展串口方案,硬件电路简单、成本低、智能化高、可靠性高,解决了以往多串口设计的复杂电路,可靠性差,兼容性差的问题。
附图说明
图1为本发明DSP与CPLD硬件连接示意图。
图2为CPLD的三个子模块划分和连接关系设计图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种采用单片CPLD扩展的DSP串口通信电路,其基本思想是:采用一片CPLD来控制DSP与外部进行串口通信的时序逻辑,通过对CPLD内部子模块的功能划分、CPLD内部的时序、逻辑配合,以及DSP的控制,实现采用最少芯片对DSP串口的扩展。
图1为本发明DSP与CPLD硬件连接示意图。首先,按照该方案将DSP与CPLD连接起来。如图所示,DSP的读信号管脚XRDn、写信号管脚XWE0n、片选信号管脚XZCS0n、7条地址线管脚XA0~XA6、16条数据线管脚XD0~XD15分别与CPLD的读信号管脚DSP_XRD、写信号管脚DSP_XWE、片选信号管脚DSP_XZCS0、地址线管脚addbus[6:0]以及数据线管脚databus[15:0]相连;CPLD还提供一个标志位输出端call_DSP连接DSP,具体是连接DSP的GPIO53。CPLD与外部,例如本实施例中AD公司的ADM3490,通过串行通信接口连接,串行通信接口包括CPLD串行接收数据的数据接收管脚rxd和串行发送数据的数据发送管脚txd。
本实施例中,DSP采用TI公司的浮点型DSP TMS320F28335,CPLD采用一块ALTERA公司的CPLD EPM1270T144I5。
图2为CPLD内部子模块划分和连接关系设计图。如图2所示,CPLD顶层通信模块设计,包括三个子模块,分别为数据接收子模块COM_RX_12Byte、并口读取子模块Read_12Byte、输出子模块COM_TX_32Byte。这里面的12Byte和32Byte分别表示本实施例中接收12字节数据和发送32字节数据。其中,COM_RX_12Byte子模块用于实现12字节数据的读取和上报DSP;Read_12Byte子模块负责DSP并口读取数据后复位接收端口,COM_TX_32Byte子模块负责来自DSP的32字节数据并口获取和自动串口输出。
以波特率为115200、一位起始位、8位数据位、一位停止位,一帧数据包接收12字节数据和发送32字节数据的通信协议为例,三个子模块的大致工作过程是:
当DSP从外部读取串口数据时:
COM_RX_12Byte通过串行的数据接收管脚rxd从外部接收数据,并缓存在内部寄存器中,一帧12字节数据接收完毕后,经判定这帧数据包正确,则将标志位call_DSP置1,表示具备被DSP读取状态。
DSP进行周期性中断,在中断函数里进行标志位call DSP置1的判断,一旦置1,则利用COM_RX_12Byte与Read_12Byte之间缓冲存储器的直连,以及通过复选开关地址对Read_12Byte中缓冲存储器的选通,从CPLD中完成并口数据的读取;同时,CPLD的Read_12Byte子模块设计的合理时序,能够自动识别DSP的地址、读信号和片选信号组合的复选开关地址,在合适的复选开关地址以产生固定时间间隔的复位信号reply_DSP,反馈给COM_RX_12Byte子模块,以清除接收缓冲器和call_DSP置0;
当DSP向外部发送串口数据时:
DSP输出的数据经过并口数据线赋值给CPLD的COM_TX_32Byte子模块里的缓冲寄存器,一帧数据传输完毕后,再启动串行发送过程,通过串行的数据发送管脚txd发送所述DSP数据。本发明中,COM_TX_32Byte子模块可以自动识别由DSP的地址、写信号和片选信号组合的复选开关地址;起始地址时,关闭发送使能位,表示不通过rxd向外发送数据,只能通过数据线管脚databus[15:0]从DSP接收数据;终止地址时,打开发送使能,按照发送通信协议以完成一次数据的自动发送。
下面对本发明实施例中CPLD每个子模块的实现进行详细描述。
(1)COM_RX_12Byte
COM_RX_12byte提供串行数据的数据接收管脚rxd与外部的ADM3490相连,提供clk_29M5管脚连接外部的系统时钟;call_DSP管脚连接DSP;RX_clrn管脚连接Read_12Byte子模块的reply_DSP管脚;内部缓冲寄存器COM_data0[7:0]~COM_data11[7:0]用于缓存从外部读取的12字节的数据,其通过直连的方式连接Read_12Byte子模块中相同大小的缓冲寄存器,DSP对Read_12Byte子模块中缓冲寄存器COM_data的操作相当于对COM_RX_12byte中缓冲寄存器COM_data的操作。在COM_RX_12byte子模块内部还设计有分频器、循环计数器、停止计数器等器件。
该子模块的工作过程为:
根据所需的波特率时钟以及系统时钟,本发明将系统时钟clk_29M5进行32分频即0.921875MHz作为通信的基准时钟clk32,在此基准时钟clk32下进行数据接收管脚rxd的下降沿判定,一旦检测到下降沿且连续k(=6)个基准时钟内均为低电平时,判定为检测到数据的起始位,开始进行一个字节数据位的串行读入。
这里,通过前述的分频操作相当于将一位数据的传输时间分为K份,每份持续一个基准时钟,本实施例是分为8份;数据起始位为1位,持续8个基准时钟。为了保证起始位判定的准确性,采用多次判定的方式,即当判定出现下降沿且持续多个基准时钟时,认为检测到数据的起始位。这多个基准时钟的数量选取至少2个,最多8个,本实施例中选择了6个连续基准时钟维持低电平作为判定标准。
当判定检测到数据的起始位后,COM_RX_12Byte子模块开始进行一个字节数据位的串行读入,具体读入过程为:启动循环计数器和停止计数器;
其中,循环计数器根据基准时钟进行0至7的循环计数,计数值存储单元为Cnt1[2:0],计数值为000~111;该计数值存储单元输出其最高位即Cnt1[2]作为波特率时钟,波特率为115234.375Hz。
停止计数器用于记录波特率时钟的个数,计数值为1~8,即二进制的0001~1000。计数值存储单元为Cnt2[3:0],记录波特率时钟的个数为8时,说明完成了8位数据的传输,停止计数,此时Cnt2[3:0]的最高位Cnt2[3]输出高电平,令其取反,以clk32二分频后的时钟进行上升沿输出,产生一个子模块内部的信号——Cnt_clrn信号去复位上述的循环计数器、停止计数器;同时,Cnt1[2:0]的最高位Cnt1[2]作为一个8位右移寄存器Data_rxd[7:0]的时钟,该右移寄存器Data_rxd[7:0]存储当前串行读入的一个字节的数据,以此完成一次高可靠性的自动闭环有效8位数据的接收。采用相同的方式即可完成一帧数据包中12个字节的串行读入。读取的数据统一存储到COM_RX_12Byte子模块的COM_data0[7:0]~COM_data11[7:0]中。
(2)Read_12Byte子模块
Read_12Byte子模块与COM_RX_12Byte子模块配合一起完成外部串行数据到DSP的传输。
DSP配置的读信号管脚XRDn、片选信号管脚XZCS0n、地址线管脚XA0~XA6以及数据线管脚XD0~XD15分别对接本Read_12Byte子模块的DSP读信号DSP_XRD、DSP片选信号DSP_XZCS0、地址总线addrbus[6:0]和数据总线databus[15:0]。本子模块的数据总线为16位,可以一次传输2个字节的数据。Read_12Byte子模块提供relply_DSP管脚连接COM_RX_12byte子模块的RX_clrn管脚。内部缓冲寄存器COM_data0[7:0]~COM_data11[7:0]通过直连的方式连接COM_RX_12byte子模块中相同大小的缓冲寄存器。
其中{DSP_XRD、DSP_XZCS0、addrbus[6:0]}组成了DSP对本子模块控制的复选开关地址。DSP_XRD和DSP_XZCS0均为0时,本子模块被使能;addrbus[6:0]的值决定了两方面的内容,一方面是:利用addrbus[6:0]的部分值决定读取哪个COM_data的数据;另一方面是:利用addrbus[6:0]的部分值决定什么时候结束读取(这里面包含了结束延时,以确保读取动作完成后再进行后续操作),并通过复位管脚reply_DSP通知COM_RX_12byte子模块进行标志位call_DSP的恢复和缓冲寄存器的清零。
该子模块的工作过程为:
复选开关地址由DSP_XRD、DSP_XZCS0、addrbus[6:0]组成,地址值0至5,分别对应12个COM_data中其中两个的选通,因为一次只能向DSP传2个字节共16位的数据;地址值0~5分别对应{COM_data1[7:0],COM_data0[7:0]}、{COM_data3[7:0],COM_data2[7:0]}、{COM_data5[7:0],COM_data4[7:0]}、{COM_data7[7:0],COM_data6[7:0]}、{COM_data9[7:0],COM_data8[7:0]}、{COM_data11[7:0],COM_data10[7:0]}输出;其他地址值则输出16位高阻状态;当复选开关地址的地址值为6时,实际上数据读取已经完成,但是为了保证读取操作的完成后再进行后续操作,以提高数据读取的可靠性,本发明进行延时,在复选开关地址的地址值为7时,才产生一个固定间隔的低电平信号reply_DSP,反馈至COM_RX_12Byte子模块的接收复位端reply_DSP,完成接收子模块COM_RX_12Byte缓冲器自闭环清零、call_DSP置0的功能。然后延时3个基准时钟后reply_DSP再次置位高电平,以保证相应清零和置0操作顺利完成。
(3)COM_TX_32Byte子模块
COM_TX_32Byte子模块完成DSP数据发送到外部的操作。
DSP配置的写信号管脚XWEn、片选信号管脚XZCS0n、地址线管脚XA0~XA6以及数据线管脚XD0~XD15分别对接本COM_TX_32Byte子模块的DSP写信号DSP_XWE、DSP片选信号DSP_XZCS0、地址总线addrbus[6:0]和数据总线databus[15:0]。本子模块还提供串行数据的数据发送管脚txd,与外部的ADM3490相连。该子模块中还设计有二维的缓冲寄存器[15:0]data[0:15],用以缓存DSP并口传输的32字节数据。
其中,{DSP_XWE、DSP_XZCS0、addrbus[6:0]}组成了DSP对本子模块控制的复选开关地址。DSP_XWE、DSP_XZCS0均为0时表示使能本子模块,由addrbus[6:0]的值来控制将来自DSP的DSP数据缓存到二维缓冲寄存器的哪个位置。具体来说,复选开关地址的地址值为0~15时,databus[15:0]上数据分别赋值给data[0]~data[15]。
该子模块的工作过程为:
待外发的DSP数据通过数据总线databus传至输出子模块COM_TX的二维数据缓存器内,一帧数据传输完毕后,再启动串行发送过程,通过串行的数据发送管脚txd发送所述DSP数据。
COM_TX_32Byte具备两级发送使能;当复选开关地址为0时,开始通过databus接收DSP数据并缓存到指定的缓冲寄存器中,此时关闭第一级发送使能(置0),表示不能通过txd向外发送串行数据;当复选开关地址为15时,第一级发送使能位置1,表示32字节的DSP数据接收完成。同时,需要启动停止计数器(记录到31即停止),计数值存储单元为Cnt3[4:0],并开启第二级发送使能位,通过txd向外串行发送所述DSP数据,当Cnt3的输出值为31时,表示发送最后一个字节,停止第二级发送使能位;由此完成DSP32字节数据的并口传输,串口自动发送的过程。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种采用单片CPLD扩展的DSP串口通信电路,其特征在于,包括:一片DSP和一片CPLD;DSP与CPLD通过读信号管脚XRD、写信号管脚XWE、片选信号管脚XZCS0、地址线管脚以及数据线管脚相连,CPLD还提供一个标志位输出端call_DSP连接DSP;
CPLD被划分为数据接收子模块COM_RX、并口读取子模块Read和输出子模块COM_TX;其中,
数据接收子模块COM_RX,通过串行的数据接收管脚rxd从外部接收数据,并存储在缓冲寄存器COM_data内,一帧数据接收完毕并判定当前接收的数据帧正确后,将标志位call_DSP置1,表示具备被DSP读取的状态;
对于并口读取子模块Read,DSP配置的读信号管脚XRD、片选信号管脚XZCS0、地址线管脚以及数据线管脚分别对接本并口读取子模块Read的DSP读信号DSP_XRD、DSP片选信号DSP_XZCS0、地址总线addrbus和数据总线databus;数据接收子模块COM_RX和并口读取子模块Read中均设有缓冲寄存器COM_data,并通过并口线直连;DSP_XRD、DSP_XZCS0和addrbus组成复选开关地址;并口读取子模块Read的复位管脚reply_DSP对接数据接收子模块COM_RX的接收复位引脚RX_clrn;
DSP在周期性中断中进行标志位call_DSP置1的判断,一旦置1,则在复选开关地址{DSP_XRD、DSP_XZCS0、addrbus}的控制下通过数据线管脚读取缓冲寄存器COM_data中存储的数据;同时并口读取子模块Read实时检测复选开关地址{DSP_XRD、DSP_XZCS0、addrbus}是否为设定的表征数据读取完毕的值,如果是,则通过复位管脚reply_DSP通知数据接收子模块COM_RX进行标志位call_DSP的恢复和缓冲寄存器的清零;
对于输出子模块COM_TX,DSP配置的写信号管脚XWE、片选信号管脚XZCS0、地址线管脚以及数据线管脚分别对接本输出子模块COM_TX的DSP写信号DSP_XWE、DSP片选信号DSP_XZCS0、地址总线addrbus和数据总线databus;
在复选开关地址{DSP_XWE、DSP_XZCS0、addrbus}的控制下,待外发的DSP数据通过数据总线databus传至输出子模块COM_TX的数据缓存器内,一帧数据传输完毕后,再启动串行发送过程,通过串行的数据发送管脚txd发送所述DSP数据。
2.如权利要求1所述的电路,其特征在于,在数据接收子模块COM_RX中,将系统时钟进行分频获得基准时钟,通过分频将一位数据的传输时间分为K份,在此基准时钟下进行数据接收管脚rxd的下降沿判定,一旦检测到下降沿且连续k个基准时钟内均为低电平,则判定接收到数据的起始位,开始进行一个字节数据位的串行读入;采用相同的方式完成一帧数据包中多个字节的串行读入;其中1<k≤K。
3.如权利要求1所述的电路,其特征在于,数据接收子模块COM_RX在进行一个字节数据位的串行读入时,启动循环计数器和停止计数器;
所述循环计数器的计数值为0至7,计数值存储单元为Cnt1[2:0],该计数值存储单元输出其选定位作为波特率时钟;
所述停止计数器用于记录波特率时钟的个数,计数值为1至8,计数值存储单元为Cnt2[3:0],当记录的波特率时钟为8时,停止计数,此时Cnt2[3:0]的最高位Cnt2[3]输出高电平,该高电平取反,并以所述基准时钟二分频后的时钟进行上升沿输出,从而产生计数器复位信号去复位所述循环计数器和停止计数器;同时Cnt1[2:0]的最高位输出作为一个8位右移寄存器Data_rxd的时钟,以此完成一次8位数据的接收。
4.如权利要求1所述的电路,其特征在于,并口读取子模块Read通过复位管脚reply_DSP通知数据接收子模块COM_RX进行标志位call_DSP的恢复和缓冲寄存器的清零时,产生复位管脚reply_DSP高电平到低电平的变化,输出至数据接收子模块COM_RX的接收复位引脚RX_clrn,然后延时设定时间后reply_DSP再次置位高电平。
5.如权利要求1所述的电路,其特征在于,并口读取子模块Read中缓冲寄存器COM_data包括COM_data0[7:0]~COM_data11[7:0],用于缓存12字节数据;并口读取子模块Read的addrbus为7位;当复选开关地址的地址值为0至5时,分别对应选通{COM_data1,COM_data0[7:0]}、{COM_data3[7:0],COM_data2[7:0]}、{COM_data5[7:0],COM_data4[7:0]}、{COM_data7[7:0],COM_data6[7:0]}、{COM_data9[7:0],COM_data8[7:0]}、{COM_data11[7:0],COM_data10[7:0]}输出;当复选开关地址为7时,表征数据读取完毕,产生reply_DSP反馈至数据接收子模块COM_RX。
6.如权利要求1所述的电路,其特征在于,输出子模块COM_TX中设有二维的缓冲寄存器,用于缓冲待输出的DSP数据;复选开关地址中的addrbus控制DSP数据缓存到缓冲寄存器的哪个位置;
输出子模块COM_TX具备两级发送使能;当复选开关地址为0时,开始通过databus接收DSP数据并缓存到缓冲寄存器的指定位置,此时关闭第一级发送使能,表示不能通过txd向外发送串行数据;当DSP数据接收完成,开启第一级发送使能置,表示可以通过txd向外串行发送所述DSP数据;第二级发送使能在开始向外串行发送DSP数据时被开启,并采用计数器记录发送的字节数,当发送最后一个字节时,停止第二级发送使能位,由此完成DSP多字节数据的并口传输、串口自动发送的过程。
7.如权利要求1所述的电路,其特征在于,DSP在周期性中断的频率设计为2kHz。
CN201811344444.1A 2018-11-13 2018-11-13 采用单片cpld扩展的dsp串口通信电路 Active CN109656850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811344444.1A CN109656850B (zh) 2018-11-13 2018-11-13 采用单片cpld扩展的dsp串口通信电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811344444.1A CN109656850B (zh) 2018-11-13 2018-11-13 采用单片cpld扩展的dsp串口通信电路

Publications (2)

Publication Number Publication Date
CN109656850A true CN109656850A (zh) 2019-04-19
CN109656850B CN109656850B (zh) 2022-07-26

Family

ID=66110871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811344444.1A Active CN109656850B (zh) 2018-11-13 2018-11-13 采用单片cpld扩展的dsp串口通信电路

Country Status (1)

Country Link
CN (1) CN109656850B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908861A (zh) * 2019-10-30 2020-03-24 航宇救生装备有限公司 一种基于dsp的外部多信号源监控处理方法
CN111444123A (zh) * 2020-03-28 2020-07-24 珠海市一微半导体有限公司 基于硬件加速的spi接口的自动读取控制系统及方法
CN111477149A (zh) * 2020-04-22 2020-07-31 京东方科技集团股份有限公司 数据输出电路及数据输出方法、显示装置
CN113641617A (zh) * 2021-08-06 2021-11-12 云尖信息技术有限公司 一种基于COMe平台通用串行中断模块实现的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127023A (zh) * 2006-08-17 2008-02-20 四川维肯电子有限公司 一种多总线接口的通用异步串口扩展芯片
CN102760111A (zh) * 2012-06-27 2012-10-31 浙江大学 一种基于fpga的扩展多串口装置及其数据收发方法
CN104866452A (zh) * 2015-05-19 2015-08-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127023A (zh) * 2006-08-17 2008-02-20 四川维肯电子有限公司 一种多总线接口的通用异步串口扩展芯片
CN102760111A (zh) * 2012-06-27 2012-10-31 浙江大学 一种基于fpga的扩展多串口装置及其数据收发方法
CN104866452A (zh) * 2015-05-19 2015-08-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908861A (zh) * 2019-10-30 2020-03-24 航宇救生装备有限公司 一种基于dsp的外部多信号源监控处理方法
CN111444123A (zh) * 2020-03-28 2020-07-24 珠海市一微半导体有限公司 基于硬件加速的spi接口的自动读取控制系统及方法
US11734219B2 (en) 2020-03-28 2023-08-22 Amicro Semiconductor Co., Ltd Automatic read control system based on a hardware accelerated SPI and automatic read control method
CN111477149A (zh) * 2020-04-22 2020-07-31 京东方科技集团股份有限公司 数据输出电路及数据输出方法、显示装置
CN111477149B (zh) * 2020-04-22 2023-06-20 京东方科技集团股份有限公司 数据输出电路及数据输出方法、显示装置
CN113641617A (zh) * 2021-08-06 2021-11-12 云尖信息技术有限公司 一种基于COMe平台通用串行中断模块实现的方法

Also Published As

Publication number Publication date
CN109656850B (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
CN109656850A (zh) 采用单片cpld扩展的dsp串口通信电路
CN101551786B (zh) 波特率自适应串行通信中继器的制作方法
CN103916252A (zh) 一种基于fpga的高带宽以太网ip核
CN100589371C (zh) 一种消除源同步信号长线传输时延的系统及方法
CN110471880A (zh) 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法
CN103870421B (zh) 一种基于fpga的串行接口和pwm组合应用ip核装置
CN108628784A (zh) 串行通信器及串行通信系统
CN109947226A (zh) 一种mcu芯片的uart唤醒电路
CN102546033A (zh) 采用脉冲调制结合串口方式实现的多机通信装置
CN103684698A (zh) 数据信号的处理方法和装置
CN103107862B (zh) 逻辑器件及其mdio数据发送方法
CN104111902B (zh) 基于双倍速率同步动态随机存储器接口的通信系统及方法
CN110365450A (zh) 星载高速可调速率数据传输接口及传输方法
CN104380273B (zh) 基于环形缓冲器的数据的自适应偏移同步
CN109783933A (zh) 一种ahb总线访问片上sram的桥接方法
CN104144137B (zh) 一种高速lvds串行同步通讯控制器
CN203982361U (zh) 一种多路串口通信测试装置
CN101751595B (zh) 一种提高io速度的电路
CN107797956B (zh) 双沿触发环形缓冲器及通信系统
CN103166863A (zh) 集总式8x8低延迟高带宽交叉点缓存队列片上路由器
CN103412615B (zh) 一种用于uart接口芯片的无毛刺自适应时钟切换方法
CN110134622A (zh) 数据采集模块与数据传输模块的数据交互系统
CN109062538A (zh) 环形先进先出缓冲器及数据传输接口、系统、方法
CN103347023A (zh) 一种工业现场环境下hdlc通信控制器
CN106125597B (zh) 基于lvds环网总线的机器人高速测控系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant