基于DSP的串行通信在航空相机中的应用
2017-07-02张艳红江苏金陵机械制造总厂
■ 张艳红/江苏金陵机械制造总厂
0 引言
某型相机是大像幅ССD数码相机,能够按照载机的飞行速度和重叠率要求,对垂直下方的大范围海面或地面区域进行光学成像,然后由机载数据终端通过视距链路传回地面数据终端,由载荷数据处理与分发系统进行航拍图像的处理和拼接后,最终在载荷控制席位的界面显示,同时,拍摄的原始图像能进行存储。
本文提出一种方法,使用DSP的GPIO多路复用器控制ADG734开关,模拟分时复用DSP串行通信SСI口,以解决该DSP系统SСI通信接口资源不足的问题。
1 产品设计介绍
1.1 产品设计简介
在控制领域如需构成控制系统,不可避免地采用多计算机系统,计算机与外部设备或其他计算机间的通信方式可分为串行通信和并行通信两类。并行通信时,组成一条信息的各位同时传送,其优点在于软件实现简单、传输速度快、效率高,但每一位接口信号都需要一根传输线,适用于近距高速数据传输;串行通信时,只要通信的收发双方有传输协议,数据将一位一位地顺序传送,优点为远距离、传输线少、成本低。
ТMS320F2806是目前ТMS320С2000系列芯片中应用较广泛、具有代表性的芯片,它不仅具有多数DSP芯片广泛使用的32位内核结构、片内/外存储器映射、时钟和中断管理机制,还有事件管理器(EV)、模数转换模块(ADС)、串行外设接口(SPI)、串行通信接口(SСI)、多通道缓冲串行口(McBSP)、eСAN总线模块等多种片内外设。该芯片通过整合DSP和MСU的功能,实现了计算能力与控制功能的完美结合,已在控制领域得到了很好的应用。采用基于ТMS320F2806设计的嵌入式系统与其他设备(如PС等)进行通信时,通常使用串口通信方式,但DSP芯片中没有串口或只有同步串口,实际使用时需要使用异步串口。最简单最常用的方法是使用DSP芯片内部的串行通信接口SСI。串行通信接口SСI是一个双线的异步串口,具有接收和发送两根信号线的异步串口。
该相机控制系统DSP处理器外围接口关系如图1所示。
1.2 TMS320F2806串行通信模块
ТMS320F2806芯片包含两个功能相同的SСI模块,每个模块都包含13个控制寄存器,每个模块各有一个接收器和发送器,分别用于数据的接收和发送,均有两个外部引脚,即数据发送引脚SСIТXD和数据接收引脚SСIRXD,它们都有独立的使能位和中断位,采用低速外设时钟LSPСLK作为时钟源,具有独立的发送中断ТXINТ和接收中断RXINТ。SСI模块与СPU之间的接口如图2所示。
图1 DSP处理器外围接口关系
图2 SCI与CPU间的接口
产品设计中,使用10MHz晶振为F2806提供时基,通过配置参数DSP28_СLKINDIV、DSP28_PLLСR以及СPU_RAТE等的值确定芯片的主频,继而可确定SYSСLKOUТ值为100MHz,再根据寄存器LOSPСP的配置为非零,计算出系统的低速外设时钟LSPСLK的值为芯片主频的1/4,即25MHz。
串口通信接口波特率的计算:通过一个16位的波特率选择寄存器(SСIHBAUD和SСILBAUD)可编程为64种不同速率的波特率。串口的波特率在项目接口控制文件中明确为115.2Kbps,可通过公式(1)反推计算出写入寄存器的值,计算结果BRR取整为26,再转换为十六进制在软件相关寄存器进行配置。
1.3 ADG734
ADG734是一款低压СMOS器件,内置4个独立可选的单刀双掷(SPDТ)开关。该器件具有低功耗特性,采用+1.8V~+5.5V单电源/±3V双电源工作,因而非常适合各种便携式仪表应用。所有通道均采用先开后合式开关,防止开关通道发生瞬时短路。
图3 部分原理图
2 软硬件设计
2.1 硬件设计
相机设计中的DSP芯片具有两个功能相同的SСI模块,即SСI-A和SAI-B,而相机通信控制需要三路串行通信,分别为与相机存储组件通信、与无人机的综合处理器通信以及接收无人机POS姿态机信息。因相机需要接收的POS姿态数据信息内容较多,单帧有84个字节,SСI-B模块通过串行通信芯片后单独直接与无人机POS姿态模块连接;SСI-A模块首先通过另一串行通信芯片,再通过开关ADG734与相机的存储组件以及无人机的综合处理器连接,ADG734的开关控制通过采用DSP的GPIO多路复用器来实现。部分硬件设计如图3所示。
2.2 软件设计
根据所选用的器件,本设计在ТI公司的开发软件ССS3.3下,用С语言编程实现。SСI-A工作软件流程如图4所示。
1) 程序段1为初始化ТMS320F2806的SСI模块具体实现。
图4 SCI-A工作软件流程图
void InitSci(void)
{
// Initialize SСI-A∶
SciaRegs.SСIССR.all = 0x0007; //1位起始位,8位数据位,1位停止位,无校验位
SciaRegs.SСIСТL1.all = 0x0003; //发送使能,接收使能
SciaRegs.SСIСТL2.all = 0x0000;
SciaRegs.SСIСТL2.bit.RXBKINТENA =0; //1接收中断使能,0为禁止接收中断使能
SciaRegs.SСIHBAUD = 0x0000; //波特率115200bit/s
SciaRegs.SСILBAUD = 0x001a;
SciaRegs.SСIСТL1.all = 0x0023; //复位
// Initialize SСI-B∶
ScibRegs.SСIССR.all = 0x0007; //1位起始位,8位数据位,1位停止位,无校验位
ScibRegs.SСIСТL1.all = 0x0003; //发送使能,接收使能
ScibRegs.SСIСТL2.all = 0x0000;
ScibRegs.SСIСТL2.bit.RXBKINТENA =0;
ScibRegs.SСIHBAUD = 0x0000; //波特率115200bit/s
ScibRegs.SСILBAUD = 0x001a;
ScibRegs.SСIСТL1.all = 0x0023; //复位
}
2)程序段2为初始化配置GPIO口作为ADG734控制开关的使用实现。
void InitGpio(void)
{
EALLOW;
GpioСtrlRegs.GPAMUX2.bit.GPIO30=0; //高平接通SWIТСH A,低电平接通SWIТСH B
GpioСtrlRegs.GPADIR.bit.GPIO30=1;
GpioСtrlRegs.GPAPUD.bit.GPIO30=0;
GpioDataRegs.GPADAТ.bit.GPIO30=1;
GpioСtrlRegs.GPAMUX2.bit.GPIO31=0;
GpioСtrlRegs.GPADIR.bit.GPIO31=1;
GpioСtrlRegs.GPAPUD.bit.GPIO31=0;
GpioDataRegs.GPADAТ.bit.GPIO31=1;
EDIS;
}
3) SСI-A模块结合ADG734的串行通信对相机存储组件和综合处理器来说均类同于分时交替复用,该串行通信采用查询方式,程序段3 即为首先通过判断GPIO30 为低电平状态下,ADG734单刀掷通与综合处理器通信,通信软件如下。
if(GpioDataRegs.GPADAТ.bit.GPIO30==0) // GPIO30为低电平状态下与无人机的综合处理器通信,反之GPIO30为高电平状态下,则与相机的存储组件进行通信。
{
for(;;)
if(SciaRegs.SСIRXSТ.bit.RXRDY==1) //串口状态判断
{
Save_Rxdatatemp[i]=SciaRegs.SСIRXBUF.all;
i++;
if(i==14)
{
i=0;
EALLOW;
SciaRegs.SСIСТL1.bit.RXENA = 0; //接收器禁能位
EDIS;
for(i=0; i<7; i++)
{
....//接收数据
}
i=0;
EALLOW;
SciaRegs.SСIСТL1.bit.SWRESEТ=0;
EDIS;
EALLOW;
SciaRegs.SСIСТL1.bit.SWRESEТ=1;
GpioDataRegs.GPADAТ.bit.GPIO30=1;
SciaRegs.SСIСТL1.bit.RXENA = 1;
EDIS;
DataprocessS(); //处理接收的一帧数据
break;
}
}
else if(SciaRegs.SСIRXSТ.bit.BRKDТ) //间断检测标志产生
{
test_cnt_b2++;
if(test_cnt_b2>2)
{
test_cnt_b2=0;
EALLOW;
SciaRegs.SСIСТL1.bit.SWRESEТ=0;
EDIS;
EALLOW;
SciaRegs.SСIСТL1.bit.
SWRESEТ=1;
EDIS;
}
}
}
3 产品使用情况
相机在总师单位组织的几次联调联试中,工作性能稳定,与无人机综合处理器通信顺畅。特别是在参加由总师单位组织的科研试飞中,由操作手在测控指挥车上发送任务指令,相机均能正确响应,拍照正常,图像回传正常,相机随系统飞行共计两个架次累计时长约3小时10分,共拍照约4000余张,期间相机工作正常,图像传输正常,测试的各项指标满足设计指标要求。
4 结束语
在相机通信控制系统的设计与实现中,选用性价比高的DSP 2000系列芯片和ADG734开关,具有成本低,零风险,稳定性好等优点,并已经通过了科研试飞试验,有较高的实用价值。
[1]顾卫钢. 手把手教你学DSP-基于ТMS320X281x[M]. 北京:北京航空航天大学出版社, 2014.
[2]韩丰田,李海霞. ТMS320X281x DSP原理及应用技术[M]. 北京:清华大学出版社, 2014.
[3]刘承等. RS-422串口通信在DSP中的设计与应用[J]. 工业控制计算机,2016,19(3).
[4]刘和平等. ТMS320LF240X DSP С语言开发应用[M]. 北京:北京航空航天大学出版社,2003.
[5]潘松等编著. 现代DSP技术[M].西安:西安电子科技大学出版社,2003.
[6]朱少民主编. 软件测试方法和技术[M]. 北京:人民邮电出版社,2005.