基于FT-C6713J400 的信号处理嵌入式软件设计

2022-04-28 00:23窦珊珊
电声技术 2022年3期
关键词:信号处理校验串口

袁 彦,窦珊珊

(中国电子科技集团公司第三研究所,北京 100015)

1 系统设计

本软件为某声探测系统全国产化DSP 平台的信号处理软件。该国产化平台以两片DSP[1],一片现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)和一片微控制单元(Micro Control Unit,MCU)为核心,数字信号处理器(Digital Signal Process,DSP)芯片外围电路连接Flash 闪存和同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,SDRAM),共同完成声信号的实时采集、分发、信号处理以及探测信息上报等功能[2]。其硬件电路设计如图1 所示。AD 采集芯片(ADC)同步采集多通道声阵列信号,FPGA芯片控制采样率和采样通道数,实时把采集的数据以中断的形式分发到两片DSP。DSPA 进行实时的目标定向算法,DSPB 接收到目标方向信息后再进行识别算法,同时DSPB 还接受上位机管控,可上报状态信息,完成数据库接收和自动更新功能。DSPA 和DSPB 把实时的探测结果发送至MCU,MCU 完成界面显示,由网口上报探测信息。本文主要介绍双片DSP 的软件设计。

图1 硬件电路设计示意图

2 软件设计

2.1 信号处理时序设计

本文选用的低功耗浮点DSP 芯片FTQ6713J400,最高主频处理能力为400 Mb·s-1。根据对算法复杂度的估算,设计时就把算法分为两部分,即目标定向算法和目标识别算法,分别在DSPA和DSPB 上完成。DSP 信号处理软件的时序控制如图2 所示。

图2 DSP 信号处理软件的时序控制图

DSP采用2个缓冲器(buffer)存储数据的方式,保证声信号的连续采集存储并进行计算。每一秒定向算法计算完成之后,DSPA 定向软件把当前秒计算的定向结果传送给DSPB,DSPB 结合上一秒完成采集的数据进行识别。声探测主要针对低空慢速目标,连续两秒之间的声特性变化不大。基于这一特性,上一秒数据的定向结果配搭下一秒数据的识别结果是可行的方式,有效合理地解决了因为过大的计算量而分开两片DSP 算法的时序问题。

2.2 软件中断设计

本软件为嵌入式软件,与外部数据的交换通常采用中断的形式。本软件一共设计了3 个中断,即两个串口中断和一个数据采集中断,均设计采用IRQ 外部中断的形式。两个串口中断是1 个字节产生1 次中断。数据采集中断是FPGA 采集满512×16×2 字节产生1 次中断,即1 秒的数据分4次发送完成。为了避免中断嵌套,在中断程序中只做必需的累加计数、设置标志位等操作,把读取串口数据或采集数据以及校验等操作都放在主程序中。3 个中断服务程序分别设置为vector5、vector6和vector7。核心代码如下。

本软件两片DSP 同时接收FPGA 分发的数据,为了有效地利用资源,对于SAD7606 采集的数据,FPGA 内部先入先出队列(First Input First Output,FIFO)缓存采集数据。当FIFO 满512×16×2 个字节,设置IO 变化,产生IRQ 中断,通知DSP 到缓存中读取数据。DSP 读取完成后,也通过设置IO电平变化通知FPGA 可进行下一次数据传输。流程如图3 所示。

图3 信号采集接口示意图

2.3 声探测信号处理软件状态转换流程

低功耗FT-Q6713J400 浮点处理芯片[3]的主频最高为400 Mb·s-1,本项目软件依托硬件设计分为相对独立的两个部分。DSPA 主要完成目标定向和环境噪声监测功能,DSPB 主要完成识别和通道自检功能以及数据库版本查询和更新功能。软件状态转换流程如图4 所示。为了保证对信号处理的长期性和连续性,软件设计每秒进行一次定向和识别探测,所以定向或识别算法要保证在1 s 完成算法计算,即每秒最大计算量不能超过400 Mb·s-1。两片DSP 共同完成探测和管控功能。

图4 声探测信号处理软件状态转换流程

2.4 数据库自动更新设计

本文选用的Flash 是CXF256M8SN,对Flash采取按扇区擦除和字模式写操作。每个扇区1 024字节,可指定若干扇区进行连续擦除。数据库数据格式为Float 型,串口接收的是其对应的32 位HEX 格式,按低字节在前、高字节在后接收并保存到Flash 中。本软件的数据库数据采用分包的方式,把数据库数据分为大小相等的小包,按照通信协议分包发送[4-5]。

DSP 接收到查询版本号指令后,会从相应地址中读取版本号并发送版本号回馈指令。DSP 串口接收到数据库更新指令后,通过串口发出相应的回馈指令,之后开始接收数据库数据。DSP 接收到的每一小包数据都需要通过校验,全部包数据收齐后,再进行包号校验。校验正确后,才进行下一步的Flash 擦写。擦写分为数据库版本号擦写和数据库数据擦写两个部分。Flash 擦写完成后,重新读取Flash 中新烧写的数据与DSP 接收到的数据,再进行二次校验。校验正确,由串口发送数据库更新成功指令。此时,数据库已经更新为新的版本号。数据库接收和更新流程如图6 所示。

图6 数据库自动更新流程图

FLASH 擦写部分代码和烧写代码如下。

3 结语

本文介绍的FT-Q6713J400 是一款低功耗国产浮点DSP芯片,很适用于需要长期值守的探测设备。本软件设计已成功应用于某探测型号项目的分系统设计中。试验结果表明,以双片FT-Q6713J400为核心的软件设计不仅能够满足探测系统较大计算量的要求,而且能实现远程管控,满足系统的实时性要求。本文介绍的应用方法和设计同样适用于同类型的其他型号的DSP 芯片。

猜你喜欢
信号处理校验串口
复杂多耦合仿真模型校验工具研究
包装过程称量信号处理方法研究
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
基于EM9000工控板高性能双串口通信模型设计与实现
精通文件校验的“门道”
MCS—51单片机中的多串口通讯技术的应用
微机串口的测试诊断
基于VC串口通信的实现