CN1269331C - 基于数字信号处理器同步串行接口的数据发送和接收方法 - Google Patents
基于数字信号处理器同步串行接口的数据发送和接收方法 Download PDFInfo
- Publication number
- CN1269331C CN1269331C CN 02122031 CN02122031A CN1269331C CN 1269331 C CN1269331 C CN 1269331C CN 02122031 CN02122031 CN 02122031 CN 02122031 A CN02122031 A CN 02122031A CN 1269331 C CN1269331 C CN 1269331C
- Authority
- CN
- China
- Prior art keywords
- data
- serial interface
- sending
- receiving
- buffering area
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于数字信号处理器同步串行接口的数据发送和接收方法,该方法通过设置通过DSP的同步串行接口发送和接收数据时使用的数据传送同步信号、同步控制中断信号、数据发送缓冲区和接收缓冲区,在数据传送同步信号的控制下,同步串行接口发送模块和发送数据DMA控制器进行数据的发送,同步串行接口接收模块和接收数据DMA控制器进行数据的接收;由同步控制中断信号在数据发送或接收的过程中对DSP的发送和接收数据的DMA控制器、同步串行接口进行数据发送、数据接收的同步控制,并对DSP的CPU进行数据处理监测。这样的同步机制使得对CPU的占用率大大降低;并在时钟信号或帧同步信号错误时,都能使数据传输自动恢复正常。
Description
技术领域
本发明涉及通信系统中的数据发送和接收方法,具体地说涉及基于数字信号处理器同步串行接口的数据发送和接收方法。
背景技术
在计算机和通信系统中,数字信号处理器(DSP)的主要用途是对数字信号进行处理。对于多数DSP来说,通常都包含用来处理数字数据算法的中央处理单元(CPU)和进行数据搬运的直接存储器存取(DMA)控制器。同时,作为DSP输入输出数据通道的DSP的同步串行接口大多具有多通道工作的能力,例如可以设定任意时隙收发数据。在DSP内部CPU的协调管理下,同步串行接口能够与DMA控制器配合实现对同步串行数据的接收和发送。现有的基于DSP同步串行接口的数据发送和接收方法通常有两种,一种方法不使用DSP内部的DMA控制器,直接采用CPU接收和发送同步串行接口的数据。采用该方法时,CPU可以通过中断方式实现同步串行接口的数据发送和接收的同步,但由于每一个发送或接收数据都要向CPU发送中断,这样使CPU处理中断非常频繁,大量占用CPU的处理能力,导致CPU数据处理能力的下降和较低的数据发送、接收速率。另一种方法采用DMA控制器实现对同步串行数据的收发,由CPU对DMA控制器和同步串行接口的状态进行监控,如CPU发现错误则对DMA控制器和同步串口进行修正或重新初始化。这种方法的缺点是数据发送和接收的同步性受限于DSP对内部DMA控制器和同步串发送行接口的状态检测能力,从而难以从根本上保证同步数据发送和接收的可靠性。
发明内容
本发明的目的在于提供一种效率和可靠性较高的基于数字信号处理器同步串行接口的数据发送和接收方法。
为达到上述目的,本发明提供的基于数字信号处理器同步串行接口的数据发送和接收方法,包括:
(1)设置通过数字信号处理器(DSP)的同步串行接口发送和接收数据时使用的数据传送同步信号,以及设置同步控制中断信号;
(2)设置数据发送缓冲区和数据接收缓冲区,在数据传送同步信号的控制下,DSP的同步串行接口发送模块和发送数据直接存储器存取(DMA)控制器利用数据发送缓冲区进行数据的发送,DSP的同步串行接口接收模块和接收数据直接存储器存取(DMA)控制器利用数据接收缓冲区进行数据的接收;
(3)由同步控制中断信号在数据发送或接收的过程中对DSP的发送和接收数据的DMA控制器、同步串行接口进行数据发送、数据接收的同步控制,并对DSP的中央处理单元(CPU)进行数据处理能力的监测。
所述方法还包括对发送或接收数据进行格式划分,将发送或接收的数据以数据块为单位划分,每个数据块包括多个数据帧,每个帧包括多个时隙,每个时隙包括多个比特。
步骤(1)中所述设置数据传送同步信号为设置帧同步信号。
步骤(1)所述同步控制中断信号为与数据传送同步信号同步的中断信号,用于在数据发送时以及数据接收时数据块的同步控制。
步骤(2)所述设置数据发送缓冲区和数据接收缓冲区,为设置两个数据发送缓冲区,设置两个数据接收缓冲区,上述缓冲区的大小与数据发送或接收的数据块大小相同。
步骤(2)DSP的同步串行接口发送模块和DMA控制器利用数据发送缓冲区进行数据发送的步骤包括:
(A1)同步串行接口发送模块发送数据时,每输出一个时隙的数据就向发送数据DMA控制器产生发送数据中断;
(A2)发送数据DMA控制器响应中断,将处于发送状态的发送缓冲区的数据输送到同步串行接口发送模块发出,同时CPU将发送数据发送到非发送状态的发送缓冲区。
步骤(2)DSP的同步串行接口接收模块和DMA控制器利用数据接收缓冲区进行数据接收的步骤包括:
(B1)同步串行接口接收模块接收数据时,每收到一个时隙的数据就向接收数据DMA控制器产生接收数据中断;
(B2)接收数据DMA控制器响应中断,将同步串行接口接收模块接收的数据发送到处于接收状态的接收缓冲区,同时CPU将非接收状态的接收缓冲区中数据输出到系统。
所述步骤(3)通过在数据发送或接收数据块的最后一个数据帧中向DSP发出同步控制中断信号实现。
在同步控制中断信号发出后,对应的中断服务过程包括下述步骤:
(C1)判断CPU是否完成发送和接收数据缓冲区中数据的传送操作,如果没完成,发出CPU处理能力不足告警,否则,
(C2)对发送数据和接收数据DMA控制器和同步串行接口进行复位和初始化。
由于本发明设置了通过DSP的同步串行接口发送和接收数据时使用的数据传送同步信号、同步控制中断信号,在数据传送同步信号的控制下,DSP的同步串行接口发送模块和发送数据DMA控制器利用数据发送缓冲区进行数据的发送,DSP的同步串行接口接收模块和接收数据DMA控制器利用数据接收缓冲区进行数据的接收,同时,同步控制中断信号在数据发送或接收的过程中对数据发送、数据接收进行同步控制;这样的同步机制使得对CPU的占用率大大降低;由于有了同步中断控制信号,在每一次中断时,都能对同步串行接口和DMA控制器进行初始化,因此即使时钟信号错误或帧同步信号错误,都能够使数据传输自动恢复正常。另外,本发明还能够对CPU的数据处理能力进行监测,可以较好地协调CPU资源分布;因此本发明所述的数据发送和接收方法的效率和可靠性均较高。
附图说明
图1是本发明所述方法的实施例流程图;
图2是DSP的同步串行接口的数据收发实施例的波形参考图;
图3是图1所述实施例采用的同步数据发送、接收原理图;
图4是图1所示实施例采用的中断服务程序的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细的描述。
图1是本发明所述方法的实施例流程图。按照图1,本发明的第1步所述方法还包括对发送或接收数据进行格式划分,将发送或接收的数据以数据块为单位划分,每个数据块包括多个数据帧,每个帧包括多个时隙,每个时隙包括多个比特。如果确定了每次数据发送或接收的数据块的大小以及块内数据的划分,就可以在步骤2设置通过数字信号处理器(DSP)的同步串行接口发送和接收数据时使用的数据传送同步信号,以及设置同步控制中断信号。基于上述步骤1的数据格式的划分,将设置数据传送同步信号为设置帧同步信号,使得在数据发送和接收过程中,每个帧的数据传送过程同步一次;所述同步控制中断信号为与数据传送同步信号同步的中断信号,是DSP外部的中断信号,用于实现CPU、DMA控制器和同步串行接口的同步,通过数据发送以及数据接收时数据块的同步控制实现,具体在数据发送或接收数据块的最后一个数据帧中向系统发出同步控制中断信号实现,更具体地说,为了在同步期间初始化同步串行接口和DMA,以及在一个数据块中尽可能多发送数据,在数据发送或数据接收时,同步控制中断信号在发送数据块或接收数据块的最后一个数据帧的后半段的时隙发出,在向系统发出同步控制中断信号后,在数据发送或数据接收数据块的最后一个数据帧中同步控制中断信号发出时占用的时隙以及后续时隙停止数据的发送或接收。
在步骤3进行设置数据发送缓冲区和数据接收缓冲区设置,所述设置数据发送缓冲区和数据接收缓冲区可以分别设置为多个,例如设置两个数据发送缓冲区和两个数据接收缓冲区,以提高数据发送和接收的速度;上述缓冲区的大小最好相同或为数据发送或接收的数据块大小的整数倍,这样便于对缓冲的管理以及提高缓冲区存储单元的利用率。
下面是本实施例具体的数据格式划分、同步信号的设置以及缓冲区的设置内容。将DSP同步串口需要处理的数据分为数据块,每个数据块包含160帧(第0帧至第159帧),每帧32个时隙(第0时隙至第31时隙),每时隙8个比特(比特0至比特7)。DSP的同步串行接口信号包括帧同步输入信号、时钟输入信号和输入/输出同步串行数据码流。同时,同步中断信号为为稳定的周期同步脉冲信号,每160帧(与DSP需要处理的数据块大小相同)产生一次,时序位置在第159帧的第16时隙至第31时隙之间。本例中DSP的同步串行接口的数据收发波形参考图2。图2中表示了DSP同步串口的帧同步输入、时钟输入、同步串行数据码流以及DSP外部中断的时序关系。其中,帧同步输入、时钟输入和DSP外部中断信号需要由DSP外部电路产生。输入帧同步为周期脉冲信号,决定了每一帧的起始位置;输入时钟与输入帧同步保持相位同步,图中的时钟信号为占空比50%的周期信号,该时钟决定了同步串口接收/发送同步数据码流的速率;DSP外部中断脉冲为周期脉冲信号,每160帧产生一个脉冲,输入到DSP的外部中断输入管脚,该脉冲信号的时序位置在第159帧的第16时隙至第31时隙之间,脉冲宽度取决于DSP对外部中断信号的时序要求。
基于上述步骤,在步骤4即可进行数据发送及接收,在数据传送同步信号的控制下,DSP的同步串行接口发送模块和发送数据DMA控制器利用数据发送缓冲区进行数据的发送,DSP的同步串行接口接收模块和接收数据DMA控制器利用数据接收缓冲区进行数据的接收。参考图3。
在图3所示的数据流程中包含同步数据接收和同步数据发送2个部分。
对于同步数据接收,同步串行码流输入到DSP同步串行接口接收模块,该模块每收到一个时隙的数据就向DMA控制器1产生一个接收数据中断,DMA控制器1响应该中断后负责将串行接口接收模块收到的数据搬运到接收数据缓冲区。为防止DMA控制器和CPU读写数据发生冲突,2个接收缓冲区的选择可以由DSP程序中的标志位决定。如果DMA控制器1向接收数据缓冲区1搬运数据,则CPU处理接收数据缓冲区2的数据;如果DMA控制器1向接收数据缓冲区2搬运数据,则CPU处理接收数据缓冲区1的数据。
对于同步数据发送,同步串行码流从DSP同步串行接口发送模块输出,该模块每发送一个时隙的数据就向DMA控制器2产生一个发送数据中断,DMA控制器2响应该中断后负责将发送数据缓冲区的数据搬运到串行接口发送模块。为防止DMA控制器和CPU读写数据发生冲突,2个发送缓冲区的选择也可以由DSP程序中的标志位决定。如果DMA控制器2向发送数据缓冲区1搬运数据,则CPU处理发送数据缓冲区2的数据;如果DMA控制器2向发送数据缓冲区1搬运数据,则CPU处理发送数据缓冲区1的数据。
同步控制中断信号在数据发送或接收的过程中对DSP的发送和接收数据的DMA控制器、同步串行接口进行数据发送、数据接收的同步控制,并对DSP的中央处理单元(CPU)进行数据处理监测。上述控制和监测实际中是通过中断服务程序实现的。该中断服务程序通过设置CPU处理完成标志监测CPU的处理能力,当CPU处理能力足够时置标志为“1”,当CPU处理能力不足时置标志为“0”,因此在初始化时首先置标志为“1”。中断服务程序的具体步骤参考图4。同步中断信号发出时,首先在步骤11进入中断服务程序,然后在步骤12通过CPU处理完成标志判断CPU的处理能力是否足够,如果不够,即置标志为“0”,说明CPU没有及时完成数据块的传送操作,因此在步骤13发出CPU处理能力不足告警并进行相应的操作,然后进行步骤14;如果CPU处理能力足够,即标志为“1”,说明CPU已经完成了数据块的传送操作,因此在步骤14设置标志为“0”,这样设置标志可以在中断服务程序结束之后通过该标志告诉CPU,当前DMA已经完成了缓冲区数据的发送和接收,CPU可以对新的缓冲区数据进行处理。在主程序中,如果CPU处理完缓冲区数据之后读不到标志为“0”的状态,将处于等待状态。在步骤15读取缓冲区选择标志,产生DMA控制器搬运数据的目标地址,接着在步骤16,无论DMA控制器和同步串口处于何种状态,都对DMA控制器和DSP同步串口进行复位和初始化,这样保证了即使产生帧同步输入错误或时钟输入错误导致的数据传送失败都能得以恢复,在最恶劣的情况下,DSP同步串行接口、DMA控制器和CPU之间的同步机制能够在160帧以内恢复正常,从而使本发明具有了可靠自愈的能力。
在与上述中断服务程序配合的DSP的主程序中,在初始化阶段,首先要对DSP相关寄存器进行初始化,使DSP能够正常运转;然后设置CPU处理完成标志和缓冲区选择标志,使DSP的同步机制处于初始状态;初始化DSP同步串口和DMA控制器,使DSP只对每帧的第0时隙至第15时隙进行收发,然后打开中断,并进入主循环程序。之所以使DSP只对每帧的第0时隙至第15时隙进行收发,是因为DSP的同步串口的所有时隙不能全部用于数据收发。因为串行接口数据收发是一个连续的过程,而在DMA和同步串行接口初始化的时刻不能同时进行数据收发操作,所以必须预留出一帧的最后几个时隙不进行数据收发,而且同步中断信号也产生于该时段,CPU进入中断服务程序后对DMA和同步串行接口进行初始化。
在主循环程序中,DSP首先等待CPU处理完成标志被中断服务程序置为“0”,表示DMA控制器已经完成了一个数据块的搬运;然后DSP对缓冲区选择标志进行判断,选择处理缓冲区1或缓冲区2的数据(包括发送缓冲区和接收缓冲区),然后由CPU对缓冲区中的数据进行处理,数据处理完成后,DSP将改变缓冲区选择标志,使下次循环操作中CPU和DMA控制器都切换缓冲区;最后程序置CPU处理完成标志为1,表示数据块已经处理完毕。
Claims (10)
1、一种基于数字信号处理器同步串行接口的数据发送和接收方法,包括:
(1)设置通过数字信号处理器DSP的同步串行接口发送和接收数据时使用的数据传送同步信号,以及设置同步控制中断信号;
(2)设置数据发送缓冲区和数据接收缓冲区,在数据传送同步信号的控制下,DSP的同步串行接口发送模块和发送数据直接存储器存取DMA控制器利用数据发送缓冲区进行数据的发送,DSP的同步串行接口接收模块和接收数据直接存储器存取DMA控制器利用数据接收缓冲区进行数据的接收;
(3)由同步控制中断信号在数据发送或接收的过程中对DSP的发送和接收数据的DMA控制器、同步串行接口进行数据发送、数据接收的同步控制,并对DSP的中央处理单元CPU进行数据处理监测。
2、根据权利要求1所述的数据发送和接收方法,其特征在于:所述方法还包括对发送或接收数据进行格式划分,将发送或接收的数据以数据块为单位划分,每个数据块包括多个数据帧,每个帧包括多个时隙,每个时隙包括多个比特。
3、根据权利要求2所述的数据发送和接收方法,其特征在于步骤(1)中所述设置数据传送同步信号为设置帧同步信号。
4、根据权利要求2所述的数据发送和接收方法,其特征在于:步骤(1)所述同步控制中断信号为与数据传送同步信号同步的中断信号,用于数据发送时数据块的同步控制以及用于数据接收时数据块的同步控制。
5、根据权利要求2所述的数据发送和接收方法,其特征在于步骤(2)所述设置数据发送缓冲区和数据接收缓冲区,为设置两个数据发送缓冲区,设置两个数据接收缓冲区,上述缓冲区的大小与数据发送或接收的数据块大小相同。
6、根据权利要求5所述的数据发送和接收方法,其特征在于步骤(2)DSP的同步串行接口发送模块和DMA控制器利用数据发送缓冲区进行数据发送的步骤包括:
(A1)同步串行接口发送模块发送数据时,每输出一个时隙的数据就向发送数据DMA控制器产生发送数据中断;
(A2)发送数据DMA控制器响应中断,将处于发送状态的发送缓冲区的数据输送到同步串行接口发送模块发出,同时CPU将发送数据发送到非发送状态的发送缓冲区。
7、根据权利要求5所述的数据发送和接收方法,其特征在于步骤(2)DSP的同步串行接口接收模块和DMA控制器利用数据接收缓冲区进行数据接收的步骤包括:
(B1)同步串行接口接收模块接收数据时,每收到一个时隙的数据就向接收数据DMA控制器产生接收数据中断;
(B2)接收数据DMA控制器响应中断,将同步串行接口接收模块接收的数据发送到处于接收状态的接收缓冲区,同时CPU将非接收状态的接收缓冲区中数据输出到系统。
8、根据权利要求2、3、4、5、6或7所述的数据发送和接收方法,其特征在于所述步骤(3)通过在数据发送或接收数据块的最后一个数据帧中向DSP发出同步控制中断信号实现。
9、根据权利要求8所述的数据发送和接收方法,其特征在于同步控制中断信号发出后,对应的中断服务过程包括下述步骤:
(C1)判断CPU是否完成发送和接收数据缓冲区中数据的传送操作,如果没完成,发出CPU处理能力不足告警,否则,
(C2)对发送数据和接收数据DMA控制器和同步串行接口进行复位和初始化。
10、根据权利要求8所述的数据发送和接收方法,其特征在于:在向DSP发出同步控制中断信号后,在数据发送或数据接收数据块的最后一个数据帧中同步控制中断信号发出时占用的时隙以及后续时隙停止数据的发送或接收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02122031 CN1269331C (zh) | 2002-05-31 | 2002-05-31 | 基于数字信号处理器同步串行接口的数据发送和接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02122031 CN1269331C (zh) | 2002-05-31 | 2002-05-31 | 基于数字信号处理器同步串行接口的数据发送和接收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1463114A CN1463114A (zh) | 2003-12-24 |
CN1269331C true CN1269331C (zh) | 2006-08-09 |
Family
ID=29743123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02122031 Expired - Fee Related CN1269331C (zh) | 2002-05-31 | 2002-05-31 | 基于数字信号处理器同步串行接口的数据发送和接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1269331C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100414920C (zh) * | 2004-03-31 | 2008-08-27 | 华为技术有限公司 | 一种实现数字信号处理器之间相互通信的装置和方法 |
CN100553261C (zh) * | 2006-03-07 | 2009-10-21 | 中国科学院声学研究所 | 一种嵌入式系统中以太网接口实现方法 |
US7624297B2 (en) * | 2006-12-13 | 2009-11-24 | International Business Machines Corporation | Architecture for a physical interface of a high speed front side bus |
CN101377762B (zh) * | 2007-08-31 | 2010-12-01 | 凹凸科技(中国)有限公司 | 直接存储器存取系统及用于传输数据的方法 |
CN102833883B (zh) * | 2011-06-13 | 2017-08-11 | 深圳市中兴微电子技术有限公司 | 3g系统中射频流程的控制方法及装置 |
JP5542787B2 (ja) * | 2011-12-08 | 2014-07-09 | シャープ株式会社 | 画像形成装置 |
CN103593261B (zh) * | 2013-10-17 | 2015-09-23 | 北京控制工程研究所 | 一种中断服务程序中通信故障的快速恢复方法 |
TWI538425B (zh) | 2014-04-14 | 2016-06-11 | 微晶片科技公司 | 藍牙介面的資料傳輸系統及傳輸方法 |
CN106874226B (zh) * | 2015-12-10 | 2020-05-12 | 重庆川仪自动化股份有限公司 | 基于stm32f4芯片的串口数据接收、发送、传输装置及方法 |
CN106230536B (zh) * | 2016-07-12 | 2018-08-03 | 上海交通大学 | 一种用于电力电子分布式控制的实时通信与同步发送系统 |
CN107122325B (zh) * | 2017-04-27 | 2020-01-03 | 成都理工大学 | 基于通用串行总线的数据传输系统及方法 |
CN113064342B (zh) * | 2021-03-16 | 2022-02-01 | 重庆两江卫星移动通信有限公司 | 一种数字多波束信号处理系统及时间同步方法 |
-
2002
- 2002-05-31 CN CN 02122031 patent/CN1269331C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1463114A (zh) | 2003-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1269331C (zh) | 基于数字信号处理器同步串行接口的数据发送和接收方法 | |
AU594057B2 (en) | Communication system | |
US4939735A (en) | Information handling system having serial channel to control unit link | |
US5754780A (en) | Apparatus and method for performing serial communication between master and slave devices | |
CN101246678B (zh) | 多屏实时信号处理的方法、系统 | |
CN100481053C (zh) | 可伸缩总线结构 | |
CN101359425A (zh) | 接收器与接收方法 | |
CN1074050A (zh) | 具有双总线体系结构的计算机的总线控制逻辑 | |
CN1326568A (zh) | 经平台总线传送和接收网络协议顺应信号包的方法和设备 | |
WO1998035296A1 (fr) | Controleur de bus et systeme de controle de bus | |
CN1520122A (zh) | 数据通信的方法和数据通信的输入/输入装置 | |
US20190266122A1 (en) | Multilane heterogenuous serial bus | |
CN1286856A (zh) | 总线主控器转换装置 | |
EP1471434B1 (en) | Information transfer protocol | |
JPS63279633A (ja) | 同報通信システム | |
US5724343A (en) | Device for communications between a plurality of functional modules installed in a local unit and an ARINC 629 type external bus | |
CN109154925A (zh) | 通信设备、通信方法、程序和通信系统 | |
JPH0828730B2 (ja) | シリアル・リンク上でのデータの伝送装置 | |
US6081847A (en) | System and method for efficient initialization of a ring network | |
EP0267577B1 (en) | Decoding device capable of producing a decoded video signal with a reduced delay | |
CN110413536B (zh) | 一种多数据格式高速并行NandFlash存储装置 | |
CN1142495C (zh) | 远程图像监控服务器 | |
JPH11346201A (ja) | 情報転送装置 | |
US6460092B1 (en) | Integrated circuit for distributed-type input/output control | |
US20220276980A1 (en) | Transmission device and communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060809 Termination date: 20150531 |
|
EXPY | Termination of patent right or utility model |