基于ARM9的1553B与CAN总线转换卡的设计与实现
3.2 转换卡软件实现方式
本文引用地址:http://www.amcfsurvey.com/article/87444.htm在整个的转换卡实现中面临的最大问题就是转换的实时性和缓冲数据管理,为此转换卡通过使用实时性非常好的抢占式多任务操作系统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总线之间的信息转换。
评论