基于ARM9的1553B与CAN总线转换卡的设计与实现
扫描二维码
随时随地手机看文章
1 引 言
20世纪70年代诞生的1553B总线是一种主从式多冗余度总线对总线硬件有严格的规定,可靠性和实时性好,传输速率达到1 Mb/s,对于大多数的应用都能满足,通过几十年的发展,已经成为当今军用电子总线的首选。而由德国BOSCH公司开发的CAN总线,采用多主方式,最高速率为1 Mb/s,由于其在汽车电子系统中的卓越表现,现在受到了越来越多的用户的关注和认可。这两种总线都是传输速率高、可靠性高、实时性能好的总线,但是他们都存在一定的不足。1553B总线的任一次数据传输都是由主节点发出命令开始,从节点接到命令后解析并执行,同时把相应状态反馈给主节点,这使得网络上的数据传输率大大降低,并使主节点控制器非常繁忙,而且在下端出现异常时,数据不能立即上传,必须等待主节点的传输命令,灵活性较差。而CAN总线为多主竞发总线,能较好解决这个问题。但是CAN总线也存在很多不足,例如他无法和1553B总线一样给出一个比较确定的响应时间,而且没有双冗余或多冗余结构设计,这使得他的可靠性和实时性不如1553B,而在军用电子中,可靠性和实时性是最重要的。因此军用电子系统中,1553B总线得到了广泛的应用,但同时1553B总线硬件成本非常高,相同条件下是CAN总线的几百倍,对于测试系统来说是很难承受的,所以在现在的测控系统中对于控制仍旧采用1553B总线,对于测试采用CAN总线,而这两者之间的信息交互就成了整个系统的关键,促使了对1553B和CAN总线转换卡的设计与实现。
2 设计思想
1553B总线的帧结构有2种,其实命令字和状态字共用一种帧结构。而这两种帧仅仅是同步头不同
1553B的帧中,开始3位为同步位,数据字是上跳沿,而命令字和状态字为下降沿,4~19位为数据位,数据字中为传输的数据,而命令字和状态字中为命令或状态位,最后一位为奇偶校验位。而在CAN总线中,只有一种帧结构,仅仅是是否采用扩展帧而已。
其中帧起始由单个显位组成,仲裁场由标识符和RTR位组成,一共12位,控制场由2个保留位和4个DLC位组成,数据场由0到8个字组成,每个字8位,CRC场由15位的CRC序列和1位标识位组成,ACK场由1位ACK间隙和一位ACK界定符组成,最后的帧结束由连续的7个隐性位组成。
由此可见,1553B和CAN总线不但帧结构不同,命令体系不一样,而且不同的1553B与CAN总线之间的转换方法也是不一样的,因此1553B与CAN总线之间的转换不仅仅是帧结构的转换,还涉及到两个系统之间命令的解析,所以采用软件的方式可以更加灵活的实现这两种总线的转换。
而要实现转换就需要在CAN和1553B总线端点之间需要搭建一个能够运行并合理调度多个应用程序的平台。综合整个转换板的考虑,采用带操作系统的ARM9处理器来实现这个平台是比较合适的。cAN总线部分,可以设计成一般的主节点,而对于1553B总线部分,由于1553B有3种不同的端点,为了扩展转换板的功能,可以把转换板的这个端点设计成为可以通过不同的配置来实现不同功能,因此这需要1553B端点的协议和上层应用程序可配置,为此可以采用FPGA和ARM共同工作的方式来实现这个端点。而为了实现实时监控,可以通过从ARM9上扩展串口和LCD接口来实现。
3 转换卡的设计实现
3.1 转化卡硬件的选择
转换卡的硬件是整个转换卡功能的基础,其实现框图如图3所示。而在转换卡的硬件设计中,器件的选择决定了设计的实际方案和电路。对于CAN节点,采用了PHILIPS公司的SJA1000T CAN总线控制器和TJA1050CAN总线收发器来共同实现。对于1553B节点,实现协议部分功能的FPGA采用ALTERA的EP1C3T144,收发器和变压器采用了HOLT公司的HI-1567和PD2725,他们与ARM9共同完成了1553B端点协议。最后的核心处理器ARM9则采用ATMEL的AT91RM9200T,他拥有180 MHz的频率,4个PIO接口,不但能够与FPGA共同完成1553B端点功能,满足1553B对实时性的要求,而且还能运行需要的操作系统和应用程序,完成整个转化工作。而对于用于实时监控,LCD芯片采用了EPSON的S1D13506扩展芯片,而串口则采用了传统的MAX3232。以上的这些芯片构成了整个转换卡的框架,通过他们就构成了转换卡的硬件。
在这种方案中,RAM采用了双口RAM,1553B和ARM9共用一个口,这样CAN总线出来的数据和1553B总线过来的数据不用转存就可以直接通过另外一段输出或者缓冲等待发送。S1D13506芯片是一个多功能扩展芯片,他还有多种功能扩展,可以扩展出音频和视频接口。
3.2 转换卡软件实现方式
在整个的转换卡实现中面临的最大问题就是转换的实时性和缓冲数据管理,为此转换卡通过使用实时性非常好的抢占式多任务操作系统RTLinux来解决。他不但能满足系统对实时性的要求,完成总线两边缓冲数据管理,还能为应用程序和转换程序提供一个良好的运行环境。转换程序主要完成两个功能:把1553B总线来的数据转换成CAN总线的帧结构,或者相反;把1553B总线来的命令解析,转换成CAN总线系统的命令并组成CAN的帧结构发送。转换卡采用MiniGUI来为用户提供实现实时监控的图形界面,这个图形界面可以通过转换卡扩展的LCD很好地完成信息交换过程实时监视的任务。最后通过ARM9的JTAG口可以对ARM9中运行的应用程序和转换程序进行修改与调试。
3.3 转换卡转换机制
设计中采用中断源优先级控制机制,不同的中断源设置不同的中断等级,以满足系统对实时性的要求。这种机制主要是基于下列考虑:
(1)来自1553B,CAN以及串口的硬中断请求信号及来自应用程序的软中断信号都是随机的。中断机制可以使ARM9能够实时地响应各个中断,并做出相应的动作。实时性要求相对比较高的1553B端点中断被赋予高优先级,可以剥夺CAN,串口等相对低优先级的中断的服务。而CAN被赋予次高优先级,应用程序以及串口被赋予最低优先级。
(2)1553B和CAN的数据传输速率是不同的。CAN总线的不同配置,1553B总线控制器的不同调度都会引起1553B和CAN总线的数据传输速率的变化,可能1553B比CAN快,也可能CAN比1553B快。采用中断方式可以大大降低慢速对较高速设备的处理延时。
同时在硬件的设计中考虑到软件编程的灵活性,因此所有的中断信号都设计成可以通过查询得到。
3.4 硬件测试
在硬件完成后,对整个硬件进行了测试。首先把1553B端点联入1553B总线系统中,他能正确地响应总线,通过示波器观测由变压器和收发器变换后的信号和序列,得到的信号电平和序列都符合既定的要求。然后把1553B端点协议写入FPGA和ARM,测试端点的反应时间,即接收命令字到发出状态字之间的间隔,这个时间为1.5~2.5μs之间,完全满足1553B总线的协议要求。最后把CAN总线、串口、LCD接口都连接上,整个硬件工作良好。[!--empirenews.page--]
4 转换卡功能及特点
4.1 转换卡的主要功能
(1)转换卡在一个既定的协议下能够实现CAN总线系统与1553B总线系统的信息交互,同时满足两总线系统对实时性的要求。
(2)转换卡可以单独作为一个CAN总线的节点或者1553B总线端点连入总线系统,完成相应的节点功能。
(3)实现现场调试和监控。应用转换卡的LCD扩展口和串口,用户可以通过LCD显示屏或者外部计算机实时监视和控制两总线之间的信息转换。
4.2 硬件主要特点
(1)1553B端点协议采用FPGA与ARM芯片共同实现,这种设计不但可以通过更改协议实现程序把端点配置成远程端点、控制器、监视器等3种不同功能的端点,而且因为是通过ARM9与FPGA共同实现的总线协议,所以当接收完1553B总线数据后可以直接触发总线转换程序,从而减少单独采用1553B协议芯片时对ARM9的数据中断请求时间,更好地满足了控制系统的实时性要求。最后这种设计与直接购买1553B端点协议芯片相比明显地减少了硬件成本,有利于1553B总线的推广和应用。
(2)可以兼容不同速率的CAN总线,通过改变初始化配置,可以实现不同速率的CAN总线与1553B总线系统通信。转换卡对ARM9实现了存储扩展,外扩了16 MB FLASH和32 MB RAM,因此当总线两边数据传输速率不匹配时,就可以把等待发送的数据放到专门开辟的缓冲区中存放,等待总线空闲时再发送,虽然CAN总线的最快传输速率与1553B相同,但是由于1553B是主从式总线,每个节点在一个周期内只能传输一定的数据量,所以他的数据传输速率有可能还比CAN总线慢,因此数据的缓冲是两方面的。
(3)扩展了LCD接口和串口。在现场可以通过40针接口的LCD或者上层的计算机监控两总线之间的信息交互,还可以通过串口和ARM9的JTAG口实时地调试ARM9中的程序。
(4)良好的实时性。在接口中,通过对CAN和1553B总线中断应答优先级的设置,可以非常好地满足整个系统对实时性的要求。
5 结 语
通过实际应用证明,基于ARM9的1553B和CAN总线转换卡无论硬件还是软件都能够很好地满足1553B和CAN总线对实时性、可靠性以及速率的要求,在一定的命令体系中能够很好地完成CAN与1553B总线之间的信息转换。