单位文秘网 2022-02-18 08:17:34 点击: 次
摘要:针对小卫星模拟系统中星载计算机与相机载荷通信及控制问题,研发多路串行通信控制系统系统设计采用HostTarget模式,在星载计算机(Host)端软件实现多路通信管理子系统,设计基于现场可编程门阵列(FPGA)的相机载荷分控单元(Target);同时,在RS232通信协议基础上提出一种多路串行通信协议,完成星载计算机与相机载荷分控单元的通信控制用SignalTapⅡ逻辑分析工具捕捉FPGA内部实时信号对系统性能进行验证,结果表明该系统可对单一或者多路相机载荷进行灵活控制与管理
关键词:小卫星模拟系统; 相机载荷; RS232通信协议; 现场可编程门阵列; 多路控制
中图分类号: TP273.5 文献标志码:A
0引言
作为构建小卫星星上智能观测系统的前期准备,需首先构建地面小卫星模拟系统,在此基础上,进一步构建小卫星智能观测模拟系统,完成星上智能观测系统的性能测试[1-2]模拟系统主要包含星载计算机、五路相机载荷、载荷分控单元、数据存储系统、总线控制系统、电源管理系统和测控系统等几大部分[3],其中,星载计算机与多相机载荷之间的灵活通信与控制,是实现小卫星观测智能化重要的一环[4]常用的卫星总线控制方式,如美国军方制定的MILSTD1553B串行总线[5],其控制方式、传输速度、高可靠性及灵活性都有很大的优势,但是功耗较大,传输匹配很严格,连线要求高,从而限制了在小卫星领域的大规模应用[6]
RS232是一种低速率、短距离、低成本,具有高可靠性的串行通信标准[7],而系统中载荷分控单元和星载计算机之间的命令通信要求可靠稳定,并不需要过高速率,因此以RS232通信协议为基础来构建系统是理想的选择目前,在多路串行通信控制设计主流方案中,可利用处理器通用的I/O口构成串口[8],或者在微处理器并行总线上扩展UART(Universal Asynchronous Receiver/Transmitter)芯片文献[9]用现场可编程门阵列(Field Programmable Gate Array, FPGA)构建多个简易UART实现对设备多路控制,但无完整信息交互协议,在反馈方面缺乏灵活性文献[10]设计基于ARM(Advanced RISC Machine)处理器的多路串行通信接口,性能良好,但无法与智能观测其他子系统较好集成
为了克服传统设计方案控制方式单一、灵活性差的缺点,同时考虑到系统的易于集成性和稳定性,本文提出一种采用HostTarget设计模式,基于FPGA实现的多路串行通信控制方案设计Host(星载计算机)与Target(载荷分控单元)两端各个模块的主要功能及接口,同时在RS232通信协议基础上定义两端通信协议——多路串行通信协议星载计算机上实现的多路通信管理软件系统可实现点对多的通信控制;载荷分控单元基于FPGA设计,完成对星载计算机的命令的解码与判断,然后通过五路通信通道进入相机载荷命令控制单元控制相机完成相应工作
1系统总体设计
系统主要由两大部分组成:星载计算机软件控制和相机载荷分控单元FPGA硬件实现
如图1,通信综合软件管理系统负责多载荷设备的管理、命令数据收发及相关参数设置等功能,包括多载荷设备管理、命令数据收发、相关参数设置等模块在VC6.0平台上基于MFC框架进行开发,在实现顶层功能模块的基础上,完成HostTarget两端数据的多路串行通信协议的封装以及RS232串口通信协议的实现,同时提供给外部应用软件调用接口以实现整个小卫星智能观测系统的软件集成
载荷分控单元主要负责接收通信综合软件管理系统传来的命令数据以及根据命令来对多相机载荷设备进行命令控制,同时接收相机载荷反馈回来数据回传给通信综合软件管理系统,完成基于FPGA的一转多路串行通信系统设计此单元主要由三部分组成:串口数据接收模块、串口数据发送模块和多路串行通信协议解析模块[11]
通信综合软件管理系统采用USB接口,而五路相机载荷和星载计算机之间通信采用串口形式为实现HostTarget两端通信,设计USB转串口电路模块,转换芯片选用Prolific公司PL2303,即可实现USB与串口的数据格式转换[12]
另外,FPGA引脚电平配置为3.3V,而五路相机载荷接口引脚电平为12~15V,设计电平转换电路,实现信号电平转换转换芯片选用Sipex公司的SP3232,配置相应相机载荷接口,完成TTL电平到RS232的转换
2协议分析
系统中,在RS232通信协议的基础上制定HostTarget双端通信协议为多路串行通信协议,如图2,此协议在Host端通信综合软件管理系统负责将应用程序输入到内存缓冲区的数据进行帧包封装,同时在Target端载荷分控单元实现基于FPGA的协议帧包硬核解析在此基础上,实现Host端与Target端之间数据交互
2.1协议帧结构
如图3,协议帧包由同步帧头与同步帧尾、信息域、数据域和校验域四部分组成其中:同步帧头、同步帧尾固定为八字节(32′h7CD215D8),负责同步数据帧[13];信息域主要包含主机与设备等通信双方的地址信息,为数据流向提供依据;数据域由命令域与保留域两部分组成,总共32位,负责接收缓冲区中应用程序命令数据,该指令将会在FPGA状态机中被抽取出来发送到指定的端口输出;校验域则主要用于误码校验
命令数据通过多路串行通信形成帧包后,经过USB转串口驱动,协议帧包将被按照RS232串口帧格式重新分解打包,图4为RS232串口协议帧包结构,主要包括:1位起始位,6~8位数据位,1位校验位和1位停止位设置主要参数为波特率9600b/s,数据位8位,偶校验,1位停止位的单帧11位数据帧结构
2.2协议状态转移分析
主要状态有:
1)STAT_INIT初始化状态,此状态下,系统刚刚对上位机进行初始化,内部缓冲区清空,各个状态复位
2)STAT_IDEL通信空闲状态,在此状态之下,通信链路建立好,可以进行数据通信
3)STAT_COMM数据通信状态,上位机刚发送一帧数据,在等待对方数据应答
4)STAT_ERROR异常处理状态,应答帧超时,等待发送检测帧,等待对方应答
状态转换过程为:
系统最初处于STAT_INIT状态,当通信链路建立完毕(connect_flag=1),则进入STAT_IDLE状态,正式进入通信状态
当发送一帧数据,则进行STAT_COMM状态,此状态下Host端收到应答帧,则回到STAT_IDEL状态等待下一帧的发送
若Host接收应答帧超时,则进入STAT_ERROR状态
发送检测帧,若收到检测应答帧,则回到STAT_IDLE状态;若等待检测应答帧超时,则直接回到STAT_INIT状态,提示Host数据发送失败,请求重新连接
3载荷分控单元设计与实现
3.1基于FPGA顶层模块设计
载荷分控单元硬件系统主要实现通信综合软件管理系统命令的接收与发送、协议解码、多相机设备控制等功能,整个系统在FPGA平台上用硬件编程语言Verilog实现[14]图6为整个分控单元设计顶层信号流程,系统由三大模块组成:星载计算机数据接收及发送模块、协议解码模块和相机载荷数据接收及发送模块
星载计算机数据接收与发送模块负责接对从星载计算机端传过来的RS232串口数据,按照约定波特率进行起始位检测,8位裸数据提取并转成并行输出到协议解码模块;同时,接收协议解码模块传过来的8位并行数据并转换成串行数据后按照RS232标准格式打包,最后按照约定波特率将其串行发送到星载计算机
协议解码模块完成对多路串行通信帧包的解析[15],包括帧头(7CD215D8)的识别、帧包地址信息(设备号)的提取、命令数据的识别及发送等功能其中,模块输入为8位并行裸数据,经协议解析后输出为32位命令数据,在协议帧包中设备地址信息的控制下,命令数据被发往对应的相机载荷发送模块
相机载荷数据接收与发送模块则完成与对应相机载荷的交互通信发送模块在完成32位串并装换的基础上,在波特率控制器的控制下,按照约定速率将封装好的串口数据发送到相机载荷接口,进行控制;同理,接收模块接收相机载荷反馈命令数据,在提取裸数据后进行串并转换后,发送到协议解码模块进行处理
3.2接收与发送模块分析
接收模块由起始位检测模块、计数器、裸数据提取模块、串并转换模块、锁存器及缓存器组成模块工作流程[16]如下:如图7,在波特率时钟CLK的控制下,起始位检测模块在每个CLK时钟上升沿检测信号电平值,当逻辑电平值为由1变为0时,标志RS232数据帧包到来,从下一个时钟开始,计数器开始计数,依次读取10位数据,并将前8位依次存入串并转换模块转换成8位并行数据,再经过锁存器与缓存器调整,将数据发出
发送模块与接收模块原理类似,过程相反如图7,8位并行数据在CLK控制下进来经缓存器与锁存器后进行并串转换形成串行数据,然后在计数器控制下进行打包,最后发送经TXD发送需要注意的是,帧包被协议解析模块解析后,发送出连续的4帧8位并行数据,前面加缓存及锁存即可将连续数据分开,为帧包形成提供缓冲
3.3协议解码模块设计
协议解码模块由两个FIFO及一个解码状态机来实现如图8,在波特率时钟CLK_BPS控制下,当读使能信号WR_EN=1时,数据依次写入到8位FIFO中,读取完毕后,WR_EN=0,同时使状态标志位flag_start=1,通知解码状态机准备接收数据协议解码模块在时钟CLK_BPS控制下,读取FIFO传过来的数据,进行解码32位命令COMMAND及8位相机载荷地址信息DEV_ADDR解码出来的命令信息输出到32位FIFO进行缓冲及发送控制发送读使能信号RD_EN通知下一模块接收数据
图9为解码模块状态机结构图,此状态机为一个8状态的有限状态机,它的同步时钟是系统时钟CLK_BPS,输入信号为FIFO中传进来的8位数据信息DATA和复位信号reset,输出信号为协议帧包中的设备地址信息DEV_ADDR与命令数据信息COMMAND状态的转移只能在同步时钟CLK_BPS的上升沿发生,往哪个状态转移则取决于目前所在的状态及和计数器的数值
状态机开始处于head_s状态每个时钟上升沿来临时,FIFO中数据被依次送入head_s状态下32位缓存中,同时将32位head_s缓存与目标同步头(`HEAD=32′h7CD215D8)进行比较:若相等,则状态机从head_s状态转移到hold_s状态,同时设置计数器,按照协议帧包定义的每个部分的数据长度,将协议帧包各部分数据进行抽取与检测,同时控制状态的转移状态机进入host_s后,提出数据得到host上位机信息处于device_s后,提出数据得到帧包发送目标设备的信息或者设备编号,从而确定command_s状态下命令输出的具体地址当状态转移到end_s状态后,标志着一帧数据的结束,同时状态转移到起始状态head_s等待接收下一个帧包经过上述状态机的一个循环,从星载计算机发送过来的数据帧包就被解码出来,并判断出控制目标设备信息,同时将命令裸数据发送到相应的发送模块,进行处理
4实验分析
载荷分控单元设计完成后,将工程烧到FPGA中,用SignalTapⅡ进行实时信号探测,探测结果显示设计达到预期目标
4.1接收模块时序图
如图10所示,RS232_HOST_RX波形为从星载计算机端传来的串行数据,波特率为9600当RS232_HOST_RX信号下降沿来临时,bps_start_r信号检测到起始位并置1在时钟控制信号clk_bps与计数器num控制下,起始位后8位被依次存入8位缓存temp中,当num=8时,bps_start信号置0,同时等待RS232_HOST_RX信号下一个起始位到来同时,可以看出模块输出信号rx_data_r为8位并行信号(十六进制表示7C、D2等)与多串口控制协议同步头一致
4.2协议解码模块时序图
如图11所示,在时钟CLK_BPS的控制下8位并行数据rx_data先被读入缓存buffer,然后送入状态机进行解码可以看到,当状态机起始状态32位缓存head=32′H7CD215D8时,数据流进入状态机,同时每个状态转以后,都有相应的标志信号位标志状态,最后根据设备信息号,将帧包内命令输出到一个32位缓存中,准备发送给相应的设备图中command信号即为从帧包中提取16位命令数据16′hABCDABCD
4.3发送模块时序图
如图12所示,协议解析模块输入连续4帧的8位解析数据rx_data,在输入控制时钟rx_int的控制下,依次将4帧数据输入缓存tx_data1~tx_data4,信号neg_rx_int控制时钟rx_int的最后一个下降沿,标志接收数据的完成与数据发送的开始在信号clk_bps控制下,4帧8位并行数据分别按串口协议加上头尾校验位后打包,依次转换成串行数据发送出去图12中rs232_tx_r即为打包后发送的串口命令
5结语
本文在构建小卫星模拟智能观测系统基础上提出的多路串行通信控制系统,在功能上解决了星载计算机对多路相机载荷管理与控制的问题;提出了多路串行通信协议,便于提高通信两端信息交互效率系统在设计与功能上具有相对独立性,同时也可作为子模块集成到整个小卫星模拟系统中,为小卫星观测系统智能化提供性能验证支持另外,系统在设计思路上采用Host_Target设计模式,软硬结合交叉开发,各子系统具有功能关联与研发独立性,灵活性高,为系统进一步的完善与模块功能的扩展打下基础
参考文献:
[1]蔡亚梅,宁勇,汪立萍,等.美国空间快响小卫星载荷技术现状与分析[J].航天电子对抗,2012,28(6):28-31.
[2]TIAN S Q,YIN Z B,YAN J. Design and implementation of a lowcost faulttolerant onboard computer for microsatellite [C]// Proceedings of 7th International Conference on Software Testing, Verification and Validation. Washington, DC: IEEE Computer Society, 2012:129-134.
[3]王海涛,杨聪伟.卫星综合电子系统研究与展望[C]//中国第二届卫星导航年会电子文集.上海,中国卫星导航学术年会组委会,2011:1-6.
[4]徐伟,谭超,王绍举,等.基于TSC695F的高可靠航天相机控制器设计[J].长春理工大学学报:自然科学版,2011,34(3):28-32.
[5]LI J F, CHAI M G. Design of 1553B avionics bus interface chip based on FPGA [C]// Proceedings of International Conference on Electronics, Communications and Control. Washington,DC: IEEE Computer Society,2011:3642-3645.
[6]张建东,吴勇,高晓光,等.基于DSPN 的综合航电总线系统的性能评[J].西北工业大学学报,2005,23(4):244-248.
[7]刘萍先,曹清华,赵筱媛,等.基于RS232/ 485 协议的多机通信系统的设计[J].南昌工程学院学报,2008,27(6):16-19.
[8]阮颐,黄培中,卫炎.多路异步串行通信系统在光纤陀螺组合中的设计与实现[J].电子技术应用,2004(8):67-69.
[9]喻少林,韩波,李平,等.基于FPGA 的飞控计算机多路串行通信设计[J].计算机工程,2011,37(20):242-245.
[10]刘国栋.基于ARM的多路串行和以太网通信技术的研究与应用[D].北京:北京交通大学,2007.
[11]ZHAO H M, ZHENG X F,LIU W Y. Intelligent traffic control system based on DSP and Nios II [C]// Proceedings of International Asia Conference on Informatics in Control, Automation and Robotics. Washington, DC: IEEE Computer Society, 2009: 90-94.
[12]文治洪,胡文东,李晓京,等.基于PL2303 的USB 接口设计[J].电子设计工程,2010,18(1):32-34.
[13]LIM J Y, KIM G, O IS, et al. A CSIC implementation with POCSAG decoder and microcontroller for paging applications [C]// ASPDAC 95: Proceedings of the 1995 Asia and South Pacific Design Automation Conference. New York: ACM, 1995: 107-112.
[14]MAHAT N F. Design of a 9bit UART module based on Verilog HDL [C]// Proceedings of 10th IEEE International Conference on Semiconductor Electronics. Washington, DC: IEEE Computer Society, 2012:570-573.
[15]廖文婷.基于FPGA的嵌入式同步控制系统设计[D].成都:西南交通大学,2010.
[16]FANG Y D, CHEN X J. Design and simulation of UART serial communication module based on VHDL [C]// Proceedings of the Third International Workshop on Intelligent Systems and Applications. Washington, DC: IEEE Computer Society, 2011:1-4.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-226-99930-1.html
上一篇:试谈供电企业标准化建设之电能计量
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用