位置:51电子网 » 技术资料 » 单 片 机

基于AVR单片机的卫星地面测控系统设计

发布时间:2008/5/27 0:00:00 访问次数:405

本文介绍了单片机atmega128在一种卫星地面测控系统中的应用,该系统利用atmega128完成了10路模拟信号的测量、4路脉冲信号的频率测量以及脉冲宽度的测量,由单片机上的16位定时计数器输出两路与输入信号具有相位关系的信号,并通过外扩串口与其他测试模块及工控机进行通信。由于要求系统能够连续稳定工作3年,并且数据不能丢失,因此,在设计时采用了双电源冗余热备份的方案,并且采用两个工控机同时接收数据并互为备份的设计方案。

硬件设计

atmega128属于atmel公司的avr系列单片机,是一种高性能、低功耗的8位控制器,执行大多数指令只需要一个时钟周期。其最高主频可达到16mhz;自带128kb可在线编程的闪存,4kb的eeprom、4kb的sram,程序可进行加密;自带jtag接口,便于程序的调试;集成外设:两个8位定时计数器,两个16位定时计数器,两个8位pwm通道、6个16位pwm通道、8个10位adc通信、一个i2c接口、两个可编程异步串行接口,一个spi接口、一个看门狗定时器和8个外部中断源。

卫星地面测控系统主要由电源模块、电子机箱、测试箱、工控机以及红外地球敏感器构成,系统结构如图1所示,其中两台电源并联,输出串联二极管。在整个测控系统中,测试箱的控制功能是通过atmega128完成的。

测试箱的硬件原理如图2所示。测试系统以avr单片机为核心,外围电路由串口通信、adc采样和dac输出等部分构成。

单片机与工控机之间通过rs232标准总线进行数据通信,在设计中采用电平转换芯片max202来实现二者的电平兼容。为了能够和测试系统的其他模块进行串口通信,采用xicor公司的双串口芯片st16c2552外扩了两个串口,由于与外扩串口通信的是-12v~+12v的信号,不是标准电平,因此,要另外设计电平转换电路。使用altera公司的可编程逻辑器件epm7128实现对dac和adc的逻辑控制;使用bb公司的12位adc实现对遥测信号的测量;采用bb公司的12位dac芯片dac7615产生电地球波信号。

具体功能如下:

adc测量:将输入的10路模拟信号经过阻抗匹配后连接到通道选择器,再接到adc芯片ads7835的信号输入端,adc的输出信号以及控制信号经过光隔离接到epld逻辑,在逻辑内部实现对adc启动信号、转换通道的选择,以及对时钟信号、数据信号的控制。

dac输出:单片机通过逻辑芯片实现对dac的片选、时钟、数据等信号的控制,dac的输出信号通过光隔离后,再经过运算放大器进行阻抗匹配后才接到整个测试系统的其他模块。dac参考电压的稳定性至关重要,如果参考电压稳定性差,将导致整个dac的输出波动很大,达不到输出精度要求,因此,通过一个稳压芯片ad584给dac提供参考电压。

频率测量:电测箱需要对2路基准信号和2路光栅信号进行测量,利用avr单片机的外部中断和计数器1、3实现测量。将2路基准信号分别接到单片机的外中断int0和int1,将光栅信号分别接到单片机的计数器1和3。在电测箱需要实现的各项功能中,电地球波的输出是一个难点,因为需要电地球波的输出与基准信号具有相位关系,并且要求输出具有可变相位、幅度和斜率的信号,本文通过计数器1和3的比较中断实现电地球波的输出。

串口通信:通过单片机自带的两个异步串口,并经过电平转换与上位工控机通信,通过双串口芯片st16c2552外扩两个串口与测试系统的其他模块通信。此外,为保证系统的可靠性,所有的信号均经过光隔离。

软件实现

单片机软件

运行在单片机的底层软件主要负责adc的采集、dac的输出以及串口的通信,下面详细介绍各个部分:

1、光栅频率测量:测量模拟基准一个周期内的光栅个数

在程序中,每次进入外中断0的处理程序void int0_isr(void)(即基准脉冲上升沿到来时)调用void do_gd_opt_frq()函数测量光栅频率。
在do_gd_opt_frq()函数中,先把前一次读取计数器1的计数值保存在全局变量time1_prev中,再读取计数器1的值并保存在time1_next中,因为两次中断的间隔就是模拟基准的周期,有一个光栅脉冲计数器1就加1,所以,前后两次的差值就是一个模拟基准周期内光栅的个数。

2、模拟基准幅度

在int0的中断处理函数中置一个全局标志refoa_gd_flag=0xff,在一个100μs的定时器的中断处理函数中查询此全局标志,若置位,则对模拟基准的adc通道连续采样400次,采样后清refoa_gd_flag标志并置采样结束的标志refoa_gd_finished=0xff。在主程序main()函数中不断查询refoa_gd_finished标志,若置位,则调用do_refoa_high()函数求出模拟基准幅度,然后清标志。在do_refoa_high()函数中求出采样400个点中的最大值和最小值,两者之差即为模拟基准幅度。

3、模拟基准周期:测量一个模拟基准周期的毫秒值

在一个1ms的定时器溢出中断处理函数中,全局的计数变量ref_gd_count加1,ref_gd_count初始化为0。在外中断0的处理函数int0_isr()中读取ref_gd_count的值,即为模拟基准的周期,再

本文介绍了单片机atmega128在一种卫星地面测控系统中的应用,该系统利用atmega128完成了10路模拟信号的测量、4路脉冲信号的频率测量以及脉冲宽度的测量,由单片机上的16位定时计数器输出两路与输入信号具有相位关系的信号,并通过外扩串口与其他测试模块及工控机进行通信。由于要求系统能够连续稳定工作3年,并且数据不能丢失,因此,在设计时采用了双电源冗余热备份的方案,并且采用两个工控机同时接收数据并互为备份的设计方案。

硬件设计

atmega128属于atmel公司的avr系列单片机,是一种高性能、低功耗的8位控制器,执行大多数指令只需要一个时钟周期。其最高主频可达到16mhz;自带128kb可在线编程的闪存,4kb的eeprom、4kb的sram,程序可进行加密;自带jtag接口,便于程序的调试;集成外设:两个8位定时计数器,两个16位定时计数器,两个8位pwm通道、6个16位pwm通道、8个10位adc通信、一个i2c接口、两个可编程异步串行接口,一个spi接口、一个看门狗定时器和8个外部中断源。

卫星地面测控系统主要由电源模块、电子机箱、测试箱、工控机以及红外地球敏感器构成,系统结构如图1所示,其中两台电源并联,输出串联二极管。在整个测控系统中,测试箱的控制功能是通过atmega128完成的。

测试箱的硬件原理如图2所示。测试系统以avr单片机为核心,外围电路由串口通信、adc采样和dac输出等部分构成。

单片机与工控机之间通过rs232标准总线进行数据通信,在设计中采用电平转换芯片max202来实现二者的电平兼容。为了能够和测试系统的其他模块进行串口通信,采用xicor公司的双串口芯片st16c2552外扩了两个串口,由于与外扩串口通信的是-12v~+12v的信号,不是标准电平,因此,要另外设计电平转换电路。使用altera公司的可编程逻辑器件epm7128实现对dac和adc的逻辑控制;使用bb公司的12位adc实现对遥测信号的测量;采用bb公司的12位dac芯片dac7615产生电地球波信号。

具体功能如下:

adc测量:将输入的10路模拟信号经过阻抗匹配后连接到通道选择器,再接到adc芯片ads7835的信号输入端,adc的输出信号以及控制信号经过光隔离接到epld逻辑,在逻辑内部实现对adc启动信号、转换通道的选择,以及对时钟信号、数据信号的控制。

dac输出:单片机通过逻辑芯片实现对dac的片选、时钟、数据等信号的控制,dac的输出信号通过光隔离后,再经过运算放大器进行阻抗匹配后才接到整个测试系统的其他模块。dac参考电压的稳定性至关重要,如果参考电压稳定性差,将导致整个dac的输出波动很大,达不到输出精度要求,因此,通过一个稳压芯片ad584给dac提供参考电压。

频率测量:电测箱需要对2路基准信号和2路光栅信号进行测量,利用avr单片机的外部中断和计数器1、3实现测量。将2路基准信号分别接到单片机的外中断int0和int1,将光栅信号分别接到单片机的计数器1和3。在电测箱需要实现的各项功能中,电地球波的输出是一个难点,因为需要电地球波的输出与基准信号具有相位关系,并且要求输出具有可变相位、幅度和斜率的信号,本文通过计数器1和3的比较中断实现电地球波的输出。

串口通信:通过单片机自带的两个异步串口,并经过电平转换与上位工控机通信,通过双串口芯片st16c2552外扩两个串口与测试系统的其他模块通信。此外,为保证系统的可靠性,所有的信号均经过光隔离。

软件实现

单片机软件

运行在单片机的底层软件主要负责adc的采集、dac的输出以及串口的通信,下面详细介绍各个部分:

1、光栅频率测量:测量模拟基准一个周期内的光栅个数

在程序中,每次进入外中断0的处理程序void int0_isr(void)(即基准脉冲上升沿到来时)调用void do_gd_opt_frq()函数测量光栅频率。
在do_gd_opt_frq()函数中,先把前一次读取计数器1的计数值保存在全局变量time1_prev中,再读取计数器1的值并保存在time1_next中,因为两次中断的间隔就是模拟基准的周期,有一个光栅脉冲计数器1就加1,所以,前后两次的差值就是一个模拟基准周期内光栅的个数。

2、模拟基准幅度

在int0的中断处理函数中置一个全局标志refoa_gd_flag=0xff,在一个100μs的定时器的中断处理函数中查询此全局标志,若置位,则对模拟基准的adc通道连续采样400次,采样后清refoa_gd_flag标志并置采样结束的标志refoa_gd_finished=0xff。在主程序main()函数中不断查询refoa_gd_finished标志,若置位,则调用do_refoa_high()函数求出模拟基准幅度,然后清标志。在do_refoa_high()函数中求出采样400个点中的最大值和最小值,两者之差即为模拟基准幅度。

3、模拟基准周期:测量一个模拟基准周期的毫秒值

在一个1ms的定时器溢出中断处理函数中,全局的计数变量ref_gd_count加1,ref_gd_count初始化为0。在外中断0的处理函数int0_isr()中读取ref_gd_count的值,即为模拟基准的周期,再

相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!