基于ARM9的1553B与CAN总线转换卡的设计与实现

发布者:数字火箭最新更新时间:2011-06-29 关键字: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种,其实命令字和状态字共用一种帧结构。而这两种帧仅仅是同步头不同,如图1所示。

1553B的帧中,开始3位为同步位,数据字是上跳沿,而命令字和状态字为下降沿,4~19位为数据位,数

据字中为传输的数据,而命令字和状态字中为命令或状态位,最后一位为奇偶校验位。而在CAN总线中,

只有一种帧结构,仅仅是是否采用扩展帧而已,其帧结构如图2所示。

其中帧起始由单个显位组成,仲裁场由标识符和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接口都连接上,整个硬件工作良好。

  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总线之间的信息转换。

关键字:ARM9  1553B  CAN总线 引用地址:基于ARM9的1553B与CAN总线转换卡的设计与实现

上一篇:高性能嵌入式ARM MPU在医疗电子系统中的应用
下一篇:基于ARM处理器的LCD编程设计

推荐阅读最新更新时间:2024-03-16 12:37

【乐拓USB示波器免费试用连载】CAN总线协议分析
CAN总线接口协议分析 通过OSC482L进行CAN总线接口的分析,仪器可选多种测量方式,可以支持单线或双线方式测量。单线测试测量可以支持自动,CAN_H对地,CAN_L对地三种方式,双线差分方式测量支持自动,和A-B通道差分。 本次测试采用单线CAN_H对地的方式。 外部为两个CAN总线设备,将A通道表笔分别和CAN_H和地接好,启动上升沿单次触发方式。 通讯中实际周期性的发送CAN的标准帧ID为0x70A,一个字节长度,D0为0x7F。 实际捕获后,适当调整波形在屏幕上的位置,可以观察到软件对于CAN总线波形的分析结果是完全正确的。 调整内容再次发送,然后启动捕捉功能,可以看到示波器捕捉到CAN数据帧,并正确的分析出
[测试测量]
【乐拓USB示波器免费试用连载】<font color='red'>CAN总线</font>协议分析
μC/OS-II的多任务信息流与CAN总线驱动
摘要:阐述μC/OS-II多任务信息流关键技术与中断处理的一般方法和PC体系中断的基本概念;以CAN总线为例,详细分析在x86实模式下基于μC/OS-II的CAN总线驱动的实现过程。 关键词:μC/OS-II RTOS嵌入式系统 设备驱动 中断处理程序(ISR) 进程调度 μC/OS-II是美国人Jean Labrosse编写的一个免费的、源码公开的嵌入式实时内核。对于开发计算机嵌入式应用产品的技术人员来说是一个实用价值很高的实时嵌入式操作系统ERTOS(Embedded Real Time Operation System)。   要开发出完善的ERTOS,就要在多任务的调度和对I/O设备操作的稳定性、协调性方面做出大
[应用]
1553B总线协议介绍
一、什么是1553B总线   1553B总线是MIL-STD-1553总线的简称,其中B就是BUS,MIL-STD-1553B总线是飞机内部时分制命令/响应式多路复用数据总线。1553B数据总线标准是20世纪70年代由美国公布的一种串行多路数据总线标准。1553B总线能挂31个远置终端,1553B总线采用指令/响应型通信协议,它有三种终端类型:总线控制器(BC)、远程终端(RT)和总线监视器(BM);信息格式有BC到RT、RT到BC、RT到RT、广播方式和系统控制方式;传输媒介为屏蔽双绞线,1553B总线耦合方式有直接耦合和变压器耦合;1553B总线为多冗余度总线型拓扑结构,具有双向传输特性,其传输速度为1Mbps传输方式为半双工方
[嵌入式]
基于CAN总线多视觉传感器测控系统的设计
    1 引言       视觉检测技术是以机器视觉为基础的新型测试技术,因其具有测量非接触、速度快、信息量大、应用领域宽广等特点而受到欢迎。结构光传感器是应用较早、发展较成熟的视觉传感器,因此本系统采用结构光传感器来采集图像并经图像采集卡送给计算机处理。由于视觉传感器在视觉测量中担负着视频图像信号(测量数据)的采集、切换与传输。因此,如何让视觉传感器测控系统快速、精确地获得理想的视频图像信息,进而为后期的图像处理提供可靠的支持,亦即视觉传感器的测控系统的设计显得尤为重要。       2 视觉系统的概述       视觉检测系统中采集被测物体图像的视觉传感器有单目和双目两种之分,本测控系统可以使用单目视觉传感器也可以使用双目视
[嵌入式]
CAN总线与以太网互连系统设计
摘要:介绍了一种基于单片机SX52的CAN与以太网互连方案,阐述了以太网和CAN总线网络协议转换的软硬件设计,实现了以太网与现有CAN总线网的直接连接。保证管理监控层(以太网)与生产测控层(CAN总线网)之间的连接,使得上下层数据能方便地通信。 关键词:现场总线 CAN总线 以太网 在大型企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC机,而下层车间现场则采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡或并行打印口的EPP接口卡实现。这种连接方式成本高,开发周期长。针对这种情况,笔者设计一种单独的CAN以太网网关互连系统,成功地实现以太网与现有CAN总线网
[网络通信]
基于ARM9芯片S3C2410异常中断程序设计
引言 计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的处理器都提供这种机制。异常主要是从处理器被动接受的角度出发的一种描述,指意外操作引起的异常。而中断则带有向处理器主动申请的意味。但这两种情况具有一定的共性,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。若无特别说明,对“异常”和“中断”都不作严格的区分。本文结合经过实际验证的代码对ARM9中断处理流程进行分析,并设计出基于S3C2410芯片的外部中断处理程序。 1.异常中断响应和返回 系统运行时,异常可能会随时发生。当一个异常出现以后,ARM微处理器会执行以下几步操作: 1) 将下一条指令的地址存入相应连接寄存器LR,以便程序在处
[单片机]
基于<font color='red'>ARM9</font>芯片S3C2410异常中断程序设计
ARM9 Bootloader的启动流程
Bootloader启动大多数都分为两个阶段.第一个阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有: 1、基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据cache等)。 2、为第二阶段准备RAM空间。 3、如果是从某个固态存储煤质中,则复制Bootloader的第二阶段代码到RAM。 4、设置堆栈。 5、跳转到第二阶段的c程序入口点。 特别注意的地方: 在第一阶段中为什么要关闭cache?通常使用cache以及写缓冲是为了提高系统性能。但由于cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的
[单片机]
探讨基于DSP的1553B总线系统的设计与实现
  现代航空电子综合化系统通常建立在MIL-STD-1553B多路传输数据 总线基础之上,总线控制器(BC)和各个远程终端(RT)必须满足 MIL-STD-1553B规定的各项协议指标要求,才能正确地联网通讯。MIL-STD-1553B是一种时分制,命令/响应,集中控制式多路传输的半双工串行数据总线,其传输速度为1Mb/s,字长为20b,数据有效长度为16b,信息量最大的长度为32个字。其信息格式有总线控制器BC(Bus Controller)到远程终端RT(Remote Terminal),RT到RC,RT到RT,广播式和系统控制式。MIL-STD-1553B总线协议已经发展成为国际公认的数据总线标准,广泛地应用于航空电子综合系统
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved