微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 多路异步串行通信系统在光纤陀螺组合中的设计与实现

多路异步串行通信系统在光纤陀螺组合中的设计与实现

时间:02-11 来源:不详 点击:

涉及到UART的实际地址在DSP中的转换。本方案中DSP的CE3空间设为8位异步模式,相应的地址范围为0xB0000000~0xBFFFFFFF。而对应于UART的读写操作地址以及四个独立通道的选通地址,就要加上相应的偏移量。相应的读写及片选逻辑由CPLD完成。CPLD相应的内部逻辑如下:

——CE3 COMMUNICATION SPACE ADDR=B0000000—BFFFFFFF

D3: CSF3<=CE3 OR(NOT EA5);--通道C FOG3ADDR=B0000008

CSF2<=CE3 OR(NOT EA4);--通道B FOG2ADDR=B0000004

CSFl<=CE3 OR(NOT EA3);--通道A FOG1ADDR=B0000002

CSF4<=CE30R(NOT EA2);--通道D RS422ADDR=B0000001

其中,CSF1~CSF4为通道选择信号,低电平有效;EA2~EA5为DSP的地址线。

3 软件设计

该系统软件设计包括PC机、TMS320C711及ST16C554的初始化和通信协议等。下面将结合本系统的硬件给出TMS320C711初始化ST16C554的程序。初始化的主要任务是设置操作每个通道所需要的参数,这些参数包括串行通信时数据串的数据位数、停止位数、奇偶校验等。另外,还需要设置发送和接收的波特率及中断方式。

其中RHR为接收保持寄存器,THR为发送保持寄存器。FCR为FIFO控制寄存器,设置为FIFO使能。IER为中断使能寄存器,与FCR配合使用,设置为FIFO中断方式,也可以设置为DMA方式。LSR为线性状态寄存器,通过查询最低位检测FIFO或RHR中是否有数据。DLL及DLM为波特率设置寄存器,通过对晶振分频完成波特率的设置。当LCR的最高位为1时,才能改变DLL及DLM的设置。

以通道A为例,DSP对ST16C554初始化的C语言程序如下:

/*FOG1*/

*(char*)0xb0000032=0x80;/*lcr=80*/

*(char*)0xb0000002=0x08;/*dll=08*/

*(char*)0xb0000012=0x00;/*dlh=00*/

*(char*)0xb0000032=0xlb;/*lcr=1b*/

*(char*)0xb0000022=0x01;/*fcr=01*/

*(char*)0xb0000012=0x01;/*ier=01*/

*(char*)0xb0000022=0x03;/*fcr=01*/

*(char*)0xb0000022=0x01;/*fcr=01*/

四个通道都设置为FIFO方式及中断使能。通道A、通道B、通道C分别设置给RS232,波特率为115.2kBPS;通道D设置给RS485/422,波特率为921.6kBPS。

DSP对通道A的数据读取程序如下:

while((readtp & 0x01)!=0)

{readdata=*(char*)0xb0000002;/*read rhr */

readtp=*(char*)0xb0000052;/*read 1sr*/



4 与光纤陀螺的对接测试

将该系统与光纤陀螺对接,测试表明该系统完全满足设计要求。

图3为陀螺仪的标度因数测试结果,图中横坐标为输入角速率,纵坐标为DSP输出的数据经D/A转换后的电压输出值,图中曲线是根据输入输出数据用最小二乘法拟合求得的。

该系统的软件及硬件已调试通过,并成功地应用于航天光纤陀螺角速度测量系统中。该方案能够灵活高效地完成DSP与多个PC机或传感器(即多个光纤陀螺)之间的异步串口通信,还可以实现与MODEM之间的标准接口。另外,若利用DSP的EDMA功能完成收发,还可以进一步提高系统性能,实现高速串行通信[4]。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top