新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 一种空间相机的数据通信系统设计

一种空间相机的数据通信系统设计

作者:时间:2012-07-24来源:网络收藏

标签:FPGA CAN总线

本文引用地址:http://www.eepw.com.cn/article/154329.htm

数据采集应用中,为了满足电路板体积重量以及可扩展性的要求,利用FPGA作为主控芯片,控制进行数据采集和传输。在中,FPGA替代了传统的单片机作为CAN总线的主控制器,并给出了详细的硬件电路方法。在对CAN协议控制器SJA1000进行功能及时序分析后,利用硬件语言对其通信流程进行。实践证明,在严格的时序逻辑下,FPGA能够控制CAN总线稳定正确地对数据进行收发。

CAN总线是由ISO定义的串行通信总线,主要用于各种过程检测及控制。它是一种多主总线,具有高位速率和高抗电磁干扰性,而且能够检测出传输中产生的任何错误。显著的优点使得CAN总线成为国际上应用最广泛的现场总线标准之一 [1]。

由于其优良的性能及独特的,CAN总线已被广泛地应用于各种分布式控制中。特别是由于CAN总线具有抗干扰性强、高数据传输率、低成本等优点,在小卫星和微小卫星中得到了越来越广泛的应用。在卫星有效载荷数据控制传输中也会应用,如相机方面。

1

一般来说,每个CAN模块能够被分成三个不同的功能块,其结构如图1所示[2]。CAN总线收发器提供CAN协议控制器与物理总线之间的接口,控制从CAN 控制器到总线物理层或相反的逻辑电平信号。它的性能决定了总线接口、总线终端、总线长度和节点数,是影响整个总线网络通信性能的关键因素之一。CAN控制器执行在CAN 规范里规定的CAN协议,它通常用于报文缓冲和验收滤波,对外具有与主控制器和总线收发器的接口。FGPA主控制器负责执行应用的功能,例如对CCD相机控制命令的发送、读取图像数据等。它通过对CAN控制器的编程控制CAN总线的工作方式、工作状态以及数据的发送和接收。

一种空间相机的数据通信系统设计

在本项目的特殊环境要求下,使用FPGA作为主控芯片,控制空间相机进行数据采集与传输,并通过CAN总线进行数据收发。较之传统设计使用的单片机,FPGA能够在速度和体积上有更好的适应性。FPGA一方面减少了电路板的复杂程度,缩短了实现周期,另一方面是FPGA具有丰富的资源、超高的性能和灵活的可编程性[3],提高了整个设备的可靠性,大大增强了电路板设计的灵活性和可扩展性。

2 通信系统接口设计

电路设计如图2所示。SJA1000的AD0~AD7地址数据复用端口、ALE地址锁存端口、读使能信号RD、写使能信号WR、片选CS端口, 均通过双向总线收发器74ALVC164245与FPGA的I/O口相连[4]。这是因为FPGA的3.3 V的LVTTL电平不支持SJA1000的5 V TTL电平,所以利用双向总线收发器实现两器件信号的电平转换。SJA1000的中断输出信号INT连入FPGA,这样CAN通信就可以采用中断或查询两种方式。RST端口的电路实现SJA1000的上电自动复位功能。MODE模式选择端接+5 V,设置SJA1000控制器为Intel模式。SJA1000的时钟晶振采用16 MHz,频率调整电容取15 pF。设计中CAN总线的终端电阻取120Ω[5]。CAN 驱动器PCA82C250的RS脚为工作模式选择位,接地工作于高速模式,接高工作于待机模式。系统通过电阻R将芯片设定于斜率控制模式, 电阻值为47 kΩ,这时CAN总线应工作于低速模式,可提高CAN总线抵抗射频干扰的能力。在这种情况下,可直接使用非屏蔽双绞线作为总线[6]。

一种空间相机的数据通信系统设计

在接口设计中,有几点需要注意:(1)SJA1000的INT端口是开漏输出,所以在使用时应该加上拉电阻,不然电平一直为低,无法实现中断方式。(2)电平信号AD0~AD7必须按顺序连接在总线收发器74ALVC164245的一个8位端口上,不可分开。

3 通信系统软件设计

3.1 系统流程设计

CAN总线通信模块的控制主要包括三大部分:CAN总线节点初始化、报文发送和报文接收。主流程如图3所示。

一种空间相机的数据通信系统设计

CAN节点主程序主要包括:作为主控制器的FPGA的初始化、CAN控制器初始化、寄存器状态查询、接收发送报文以及数据处理。在此设计中,由于通信模块对接收数据的实时性要求并不是很高,因此CAN总线的接收和发送采用查询方式[7]。在整个流程实现中,主要是对CAN控制器SJA1000中的寄存器进行读写操作。

3.2 读写流程控制

SJA1000 的数据和地址信号为时分复用,而FPGA 中不存在地址的概念,因此在读写寄存器时,要把SJA1000 中的寄存器地址当作数据写入。所以在系统的顶层模块设计中,将设计一个读写子模块来专门产生对CAN寄存器进行读写控制的时序,而核心主模块则只对通信流程进行描述。读写时序的状态机流程图如图4所示。在IDLE状态,对接口信号进行初始化,其中地址锁存信号ALE为低电平、写信号WR 为高电平、读信号RD为高电平、片选信号CS 为高电平、地址数据复用总线ADDR为高阻态、writeover和readover为低电平(writeover为高电平表示一个写时序的完成, readover为高电平表示一个读时序的完成) 。另外对于核心主模块的控制信号start和iswr,当start为低电平时继续在IDLE状态循环,反之则进入写地址状态Address0、Address1。然后根据iswr信号是高电平或低电平而进入写数据进程或读数据进程。读写数据过程均由两个状态完成,分别是RD0、RD1、WR0、WR1。当一个完整的读或写操作完成时,进入IDLE状态。每一个状态描述了ALE、WR、RD、CS、DIR1、ADDR的变化(OE0、OE1、DIR0分别为定值0、0、1,因此未列出来)。这里为了便于描述,设1为高电平,0为低电平,对以上几个信号在各个状态的值进行说明,将信号组{ALE、WR、RD、CS、DIR1}设为CtrS。

一种空间相机的数据通信系统设计

FPGA的时钟为5 MHz,用以上状态机来实现SJA1000 寄存器的读写,在设计中每个状态占用的时间是一个周期,即200 ns。按照SJA1000 接口读写时序参数可知[8],片选信号必须在读写信号有效之前变为有效,并且读信号有效时存储数据总线上的数据。如此,设计的时序符合时序参数要求。其他的时序设计都要严格按照时序参数表来设计。

数字通信相关文章:数字通信原理


通信相关文章:通信原理


上拉电阻相关文章:上拉电阻原理
双绞线传输器相关文章:双绞线传输器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭