法律状态公告日
法律状态信息
法律状态
2018-08-17
未缴年费专利权终止 IPC(主分类):G06F13/28 授权公告日:20150121 终止日期:20170731 申请日:20120731
专利权的终止
2015-01-21
授权
授权
2013-03-27
实质审查的生效 IPC(主分类):G06F13/28 申请日:20120731
实质审查的生效
2012-12-19
公开
公开
技术领域
本发明涉及一种雷达回波数据的处理方法,尤其是涉及一种基于串口的船用雷达回 波数据的采集方法。
背景技术
船用雷达是现代船舶导航系统的必备设备之一,它的主要作用是船舶导航及探测、 避开海上障碍物。现代船用雷达正在往高分辨率、大显示屏的方向发展,造成雷达回波 数据量显著提高,相应的提高了雷达回波数据传输速率,同时,雷达回波数据是持续不 断的数据流。雷达回波数据是整个雷达系统最重要的数据,所有的雷达算法及处理都是 基于雷达回波数据进行的,因此可靠、高效地采集雷达回波数据显得极其重要。
船用雷达的工作流程:雷达的天线单元产生雷达回波数据,雷达回波数据传输至数 据处理单元,数据处理单元对雷达回波数据进行采集与处理,最终将处理完的数据送往 显示单元进行雷达图像显示。
传统的船用雷达回波数据的采集方法使用一个直接存储器存取(Direct Memory Access,即DMA)通道、一个内存缓冲区进行雷达回波数据的采集,通过DMA通道将 雷达回波数据从串口传输至内存缓冲区内,但从DMA通道传输完一个内存缓冲区大小 的数据产生DMA中断到使能DMA进行下一次数据传输之间需要执行中断处理函数, 一旦中断处理函数的执行时间过长,则串口中的雷达回波数据不能及时被传输到内存缓 冲区内,会发生串口接收溢出,造成雷达回波数据的丢失。
发明内容
本发明所要解决的技术问题是提供一种基于串口的船用雷达回波数据的采集方法, 它可防止串口接收溢出,从而有效地避免雷达回波数据的丢失。
本发明解决上述技术问题所采用的技术方案为:一种基于串口的船用雷达回波数据 的采集方法,数据处理单元采集雷达天线单元产生的雷达回波数据,所述的数据处理单 元包括串口、DMA控制器、内存及数据处理模块,所述的串口包括接收FIFO(先入先 出缓冲存储器),雷达回波数据通过DMA控制器从接收FIFO传输至内存中,具体包括 以下步骤:
S1.将串口配置为DMA接收模式,设置接收FIFO的阈值;
S2.在内存中设置两个容量相同的第一缓冲区和第二缓冲区;
S3.在DMA控制器中设置两个DMA通道分别作为第一DMA通道和第二DMA通 道,将第一DMA通道的源地址和第二DMA通道的源地址均设置为接收FIFO的地址, 将第一DMA通道的目的地址设置为第一缓冲区的首地址,将第二DMA通道的目的地 址设置为第二缓冲区的首地址,第一DMA通道的目的地址的寻址方式和第二DMA通 道的目的地址的寻址方式均配置为递增寻址方式;
S4.使能串口,使能第一DMA通道,启动数据处理单元,数据处理单元开始采集 雷达回波数据,接收FIFO开始接收雷达回波数据;
S5.第一DMA通道开始将接收FIFO中的雷达回波数据传输至第一缓冲区中;
S6.当雷达回波数据填满第一缓冲区时,第二DMA通道开始将接收FIFO中的雷达 回波数据传输至第二缓冲区中,同时第一缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第二缓冲区的时间长于数据处理模块对第一缓冲区中的雷 达回波数据进行处理的时间;
S7.当雷达回波数据填满第二缓冲区时,第一DMA通道开始将接收FIFO中的雷达 回波数据传输至第一缓冲区中,同时第二缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第一缓冲区的时间长于数据处理模块对第二缓冲区中的雷 达回波数据进行处理的时间;
S8.循环执行S6~S7,直至数据处理单元停止采集雷达回波数据。
步骤S5的具体步骤如下:
S5-①.当接收FIFO中的雷达回波数据的容量达到所设定的阈值时,串口向DMA 控制器发送DMA接收请求;
S5-②.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,当雷达回波数据未填满第一缓冲区时,返回步骤S5-① 继续执行;当雷达回波数据填满第一缓冲区时,执行步骤S6。
步骤S6的具体步骤如下:
S6-①.当雷达回波数据填满第一缓冲区时,使能第二DMA通道,关闭第一DMA 通道;
S6-②.当接收FIFO中的雷达回波数据的容量达到所设定的阈值时,串口向DMA 控制器发送DMA接收请求;
S6-③.DMA控制器接收到串口的请求后,第二DMA通道开始从接收FIFO中传输 雷达回波数据到第二缓冲区中,同时数据处理模块开始对第一缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第二缓冲区时,返回步骤S6-②继续执行;当雷达回 波数据填满第二缓冲区时,执行步骤S7。
步骤S7的具体步骤如下:
S7-①.当雷达回波数据填满第二缓冲区时,使能第一DMA通道,关闭第二DMA 通道;
S7-②.当接收FIFO中的雷达回波数据的容量达到所设定的阈值时,串口向DMA 控制器发送DMA接收请求;
S7-③.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,同时数据处理模块开始对第二缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第一缓冲区时,返回步骤S7-②继续执行;当雷达回 波数据填满第一缓冲区时,执行步骤S8。
与现有技术相比,本发明的优点在于申请了两个DMA通道进行数据传输,分配了 两个缓冲区用于缓存串口接收的雷达回波数据,两个DMA通道可以交替传输雷达回波 数据,由于对缓冲区中的雷达回波数据进行处理(包含了中断处理函数的执行)与DMA 通道传输雷达回波数据是并行的,因此中断处理函数执行时间并不影响雷达回波数据的 接收,从而有效地解决了串口数据溢出的问题,避免了雷达回波数据的丢失;双通道 DMA传输和双缓冲机制的使用保证了雷达回波数据采集的正确性与稳定性,使得高速、 持续的雷达回波数据能够及时、高效的传输到数据处理单元中进行处理。
附图说明
图1为本发明中数据处理单元的结构原理框图;
图2为本发明基于串口的船用雷达回波数据的采集方法的流程示意图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例一:如图所示,一种基于串口的船用雷达回波数据的采集方法,数据处理单 元采集雷达天线单元产生的雷达回波数据,所述的数据处理单元包括串口、DMA控制 器、内存及数据处理模块,所述的串口包括接收FIFO,雷达回波数据通过DMA控制器 从接收FIFO传输至内存中,串口为TI公司的Mcbsp串口,串口的接收FIFO(先入先出 缓冲存储器)的容量为128×32bit,串口的时钟频率为48MHz,雷达上单元每秒钟发送 3000帧雷达回波数据,每帧雷达回波数据大小为1KB,因此雷达回波数据速率为3MB/s, 具体包括以下步骤:
S1.将串口配置为DMA接收模式,设置接收FIFO的阈值,阈值设置为64×32bit;
S2.在内存中设置两个容量相同的第一缓冲区和第二缓冲区,第一缓冲区和第二缓 冲区的容量设置为24KB;
S3.在DMA控制器中设置两个DMA通道分别作为第一DMA通道和第二DMA通 道,将第一DMA通道的源地址和第二DMA通道的源地址均设置为接收FIFO的地址, 将第一DMA通道的目的地址设置为第一缓冲区的首地址,将第二DMA通道的目的地 址设置为第二缓冲区的首地址,第一DMA通道的目的地址的寻址方式和第二DMA通 道的目的地址的寻址方式均配置为递增寻址方式;
S4.使能串口,使能第一DMA通道,启动数据处理单元,数据处理单元开始采集 雷达回波数据,接收FIFO开始接收雷达回波数据;
S5.第一DMA通道开始将接收FIFO中的雷达回波数据传输至第一缓冲区中;
S6.当雷达回波数据填满第一缓冲区时,第二DMA通道开始将接收FIFO中的雷达 回波数据传输至第二缓冲区中,同时第一缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第二缓冲区的时间长于数据处理模块对第一缓冲区中的雷 达回波数据进行处理的时间,第二DMA通道填满第二缓冲区需要则数 据处理模块需要在8ms内处理完第一缓冲区中的雷达回波数据;
S7.当雷达回波数据填满第二缓冲区时,第一DMA通道开始将接收FIFO中的雷达 回波数据传输至第一缓冲区中,同时第二缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第一缓冲区的时间长于数据处理模块对第二缓冲区中的雷 达回波数据进行处理的时间,第一DMA通道填满第一缓冲区需要则数 据处理模块需要在8ms内处理完第二缓冲区中的雷达回波数据;
S8.循环执行S6~S7,直至数据处理单元停止采集雷达回波数据。
步骤S5的具体步骤如下:
S5-①.当接收FIFO中的雷达回波数据的容量达到64×32bit时,串口向DMA控制 器发送DMA接收请求;
S5-②.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,当雷达回波数据未填满第一缓冲区时,返回步骤S5-① 继续执行;当雷达回波数据填满第一缓冲区时,执行步骤S6。
步骤S6的具体步骤如下:
S6-①.当雷达回波数据填满第一缓冲区(即第一DMA通道传输完24KB雷达回波 数据至第一缓冲区)时,使能第二DMA通道,关闭第一DMA通道;
S6-②.当接收FIFO中的雷达回波数据的容量达到64×32bit时,串口向DMA控制 器发送DMA接收请求;
S6-③.DMA控制器接收到串口的请求后,第二DMA通道开始从接收FIFO中传输 雷达回波数据到第二缓冲区中,同时数据处理模块开始对第一缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第二缓冲区时,返回步骤S6-②继续执行;当雷达回 波数据填满第二缓冲区时,执行步骤S7。
步骤S7的具体步骤如下:
S7-①.当雷达回波数据填满第二缓冲区(即第二DMA通道传输完24KB雷达回波 数据至第二缓冲区)时,使能第一DMA通道,关闭第二DMA通道;
S7-②.当接收FIFO中的雷达回波数据的容量达到64×32bit时,串口向DMA控制 器发送DMA接收请求;
S7-③.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,同时数据处理模块开始对第二缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第一缓冲区时,返回步骤S7-②继续执行;当雷达回 波数据填满第一缓冲区时,执行步骤S8。
实施例二:如图所示,一种基于串口的船用雷达回波数据的采集方法,数据处理单 元采集雷达天线单元产生的雷达回波数据,所述的数据处理单元包括串口、DMA控制 器、内存及数据处理模块,所述的串口包括接收FIFO,雷达回波数据通过DMA控制器 从接收FIFO传输至内存中,串口为TI公司的Mcbsp串口,串口的接收FIFO(先入先出 缓冲存储器)的容量为128×32bit,串口的时钟频率为48MHz,雷达上单元每秒钟发送 3000帧雷达回波数据,每帧雷达回波数据大小为1KB,因此雷达回波数据速率为3MB/s, 具体包括以下步骤:
S1.将串口配置为DMA接收模式,设置接收FIFO的阈值,阈值设置为32×32bit;
S2.在内存中设置两个容量相同的第一缓冲区和第二缓冲区,第一缓冲区和第二缓 冲区的容量设置为24KB;
S3.在DMA控制器中设置两个DMA通道分别作为第一DMA通道和第二DMA通 道,将第一DMA通道的源地址和第二DMA通道的源地址均设置为接收FIFO的地址, 将第一DMA通道的目的地址设置为第一缓冲区的首地址,将第二DMA通道的目的地 址设置为第二缓冲区的首地址,第一DMA通道的目的地址的寻址方式和第二DMA通 道的目的地址的寻址方式均配置为递增寻址方式;
S4.使能串口,使能第一DMA通道,启动数据处理单元,数据处理单元开始采集 雷达回波数据,接收FIFO开始接收雷达回波数据;
S5.第一DMA通道开始将接收FIFO中的雷达回波数据传输至第一缓冲区中;
S6.当雷达回波数据填满第一缓冲区时,第二DMA通道开始将接收FIFO中的雷达 回波数据传输至第二缓冲区中,同时第一缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第二缓冲区的时间长于数据处理模块对第一缓冲区中的雷 达回波数据进行处理的时间,第二DMA通道填满第二缓冲区需要则数 据处理模块需要在8ms内处理完第一缓冲区中的雷达回波数据;
S7.当雷达回波数据填满第二缓冲区时,第一DMA通道开始将接收FIFO中的雷达 回波数据传输至第一缓冲区中,同时第二缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第一缓冲区的时间长于数据处理模块对第二缓冲区中的雷 达回波数据进行处理的时间,第一DMA通道填满第一缓冲区需要则数 据处理模块需要在8ms内处理完第二缓冲区中的雷达回波数据;
S8.循环执行S6~S7,直至数据处理单元停止采集雷达回波数据。
步骤S5的具体步骤如下:
S5-①.当接收FIFO中的雷达回波数据的容量达到32×32bit时,串口向DMA控制 器发送DMA接收请求;
S5-②.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,当雷达回波数据未填满第一缓冲区时,返回步骤S5-① 继续执行;当雷达回波数据填满第一缓冲区时,执行步骤S6。
步骤S6的具体步骤如下:
S6-①.当雷达回波数据填满第一缓冲区(即第一DMA通道传输完24KB雷达回波 数据至第一缓冲区)时,使能第二DMA通道,关闭第一DMA通道;
S6-②.当接收FIFO中的雷达回波数据的容量达到32×32bit时,串口向DMA控制 器发送DMA接收请求;
S6-③.DMA控制器接收到串口的请求后,第二DMA通道开始从接收FIFO中传输 雷达回波数据到第二缓冲区中,同时数据处理模块开始对第一缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第二缓冲区时,返回步骤S6-②继续执行;当雷达回 波数据填满第二缓冲区时,执行步骤S7。
步骤S7的具体步骤如下:
S7-①.当雷达回波数据填满第二缓冲区(即第二DMA通道传输完24KB雷达回波 数据至第二缓冲区)时,使能第一DMA通道,关闭第二DMA通道;
S7-②.当接收FIFO中的雷达回波数据的容量达到32×32bit时,串口向DMA控制 器发送DMA接收请求;
S7-③.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,同时数据处理模块开始对第二缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第一缓冲区时,返回步骤S7-②继续执行;当雷达回 波数据填满第一缓冲区时,执行步骤S8。
实施例三:如图所示,一种基于串口的船用雷达回波数据的采集方法,数据处理单 元采集雷达天线单元产生的雷达回波数据,所述的数据处理单元包括串口、DMA控制 器、内存及数据处理模块,所述的串口包括接收FIFO,雷达回波数据通过DMA控制器 从接收FIFO传输至内存中,串口为TI公司的Mcbsp串口,串口的接收FIFO(先入先出 缓冲存储器)的容量为128×32bit,串口的时钟频率为48MHz,雷达上单元每秒钟发送 3000帧雷达回波数据,每帧雷达回波数据大小为1KB,因此雷达回波数据速率为3MB/s, 具体包括以下步骤:
S1.将串口配置为DMA接收模式,设置接收FIFO的阈值,阈值设置为96×32bit;
S2.在内存中设置两个容量相同的第一缓冲区和第二缓冲区,第一缓冲区和第二缓 冲区的容量设置为24KB;
S3.在DMA控制器中设置两个DMA通道分别作为第一DMA通道和第二DMA通 道,将第一DMA通道的源地址和第二DMA通道的源地址均设置为接收FIFO的地址, 将第一DMA通道的目的地址设置为第一缓冲区的首地址,将第二DMA通道的目的地 址设置为第二缓冲区的首地址,第一DMA通道的目的地址的寻址方式和第二DMA通 道的目的地址的寻址方式均配置为递增寻址方式;
S4.使能串口,使能第一DMA通道,启动数据处理单元,数据处理单元开始采集 雷达回波数据,接收FIFO开始接收雷达回波数据;
S5.第一DMA通道开始将接收FIFO中的雷达回波数据传输至第一缓冲区中;
S6.当雷达回波数据填满第一缓冲区时,第二DMA通道开始将接收FIFO中的雷达 回波数据传输至第二缓冲区中,同时第一缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第二缓冲区的时间长于数据处理模块对第一缓冲区中的雷 达回波数据进行处理的时间,第二DMA通道填满第二缓冲区需要则数 据处理模块需要在8ms内处理完第一缓冲区中的雷达回波数据;
S7.当雷达回波数据填满第二缓冲区时,第一DMA通道开始将接收FIFO中的雷达 回波数据传输至第一缓冲区中,同时第二缓冲区中的雷达回波数据传输至数据处理模块 进行处理,雷达回波数据填满第一缓冲区的时间长于数据处理模块对第二缓冲区中的雷 达回波数据进行处理的时间,第一DMA通道填满第一缓冲区需要则数 据处理模块需要在8ms内处理完第二缓冲区中的雷达回波数据;
S8.循环执行S6~S7,直至数据处理单元停止采集雷达回波数据。
步骤S5的具体步骤如下:
S5-①.当接收FIFO中的雷达回波数据的容量达到96×32bit时,串口向DMA控制 器发送DMA接收请求;
S5-②.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,当雷达回波数据未填满第一缓冲区时,返回步骤S5-① 继续执行;当雷达回波数据填满第一缓冲区时,执行步骤S6。
步骤S6的具体步骤如下:
S6-①.当雷达回波数据填满第一缓冲区(即第一DMA通道传输完24KB雷达回波 数据至第一缓冲区)时,使能第二DMA通道,关闭第一DMA通道;
S6-②.当接收FIFO中的雷达回波数据的容量达到96×32bit时,串口向DMA控制 器发送DMA接收请求;
S6-③.DMA控制器接收到串口的请求后,第二DMA通道开始从接收FIFO中传输 雷达回波数据到第二缓冲区中,同时数据处理模块开始对第一缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第二缓冲区时,返回步骤S6-②继续执行;当雷达回 波数据填满第二缓冲区时,执行步骤S7。
步骤S7的具体步骤如下:
S7-①.当雷达回波数据填满第二缓冲区(即第二DMA通道传输完24KB雷达回波 数据至第二缓冲区)时,使能第一DMA通道,关闭第二DMA通道;
S7-②.当接收FIFO中的雷达回波数据的容量达到96×32bit时,串口向DMA控制 器发送DMA接收请求;
S7-③.DMA控制器接收到串口的请求后,第一DMA通道开始从接收FIFO中传输 雷达回波数据到第一缓冲区中,同时数据处理模块开始对第二缓冲区中的雷达回波数据 进行处理,当雷达回波数据未填满第一缓冲区时,返回步骤S7-②继续执行;当雷达回 波数据填满第一缓冲区时,执行步骤S8。
机译: 基于单频时变阈值的一位回波数据采集方法及系统
机译: 雷达设备,一种错误回波检测方法,是具有记录数据通信功能的雷达设备
机译: 一种基于指纹文件访问技术的数据和指纹系统的采集方法