基于PXI总线高可靠CAN适配卡的设计与实现

阅读: 评论:0

基于PXI总线高可靠CAN适配卡的设计与实现
甄国涌;宋全伟;刘东海
单体建筑【摘 要】根据某测试任务的要求,对CAN传输的可靠性进行调研和分析,设计了一种基于PXI总线的CAN适配卡。以PCI9054为“桥接”芯片,以FPGA为核心控制器实现上位机与CAN接口的通信。以C8051F060作为CAN总线的核心控制器实现CAN数据收发、缓存及编帧等功能。该适配卡可靠性高,已稳定工作于某航天测控系统。%A CAN adaptor card has been designed according to the test task requirements based on PXI bus after the research and analysis of the reliability of CAN transmission.The PCI9054 was used as the“bridge” chip and FPGA was used as core control-lers to implement the communication between upper computer and CAN interface.The C8051F060 was used as the core device of the adaptor card to achieve the following functions,such as the command issued,the reception,the cache and coding of CAN date and so on.The card was put into service in a space measurement and control system depending on its high reliability.
【期刊名称】《仪表技术与传感器》
【年(卷),期】2015(000)012
【总页数】4页(P49-52)
【关键词】CAN适配卡;PXI总线;FPGA;C8051F060
多余人
【作 者】甄国涌;宋全伟;刘东海
【作者单位】中北大学,电子测试技术国家重点实验室,山西太原 030051;中北大学,电子测试技术国家重点实验室,山西太原 030051;中北大学,电子测试技术国家重点实验室,山西太原 030051
【正文语种】中 文
【中图分类】德怀特沃尔多TP274
CAN总线不但在汽车行业中应用广泛,而且在工业控制领域、航天航空领域中得到广泛应用[1]。在航天测试系统及某些工业控制过程中需要计算机作为上位机来监控系统,因此需要一个接口来实现底层CAN网络与上位机的通信[2]。PXI总线与PCI兼容,其高速的传输速
率、开放的软件架构以及价格优势使之成为当今自动化应用和测试的标准台。因此本文根据某航天测试任务的要求设计了一种基于PXI总线的CAN适配卡。
在航天测控领域中,可靠性是第一位的。然而很多测控系统工作现场条件非常恶劣,对系统的可靠性提出更高的要求。所以本设计的关键技术在于可靠性,从CAN总线利用率、系统级冗余及容错等方面提高适配卡的可靠性。
适配卡通过PCI9054“桥接”芯片,实现上位机与CAN接口的通信。采用C8051F060单片机内部集成的CAN核实现数据链路层,通过CAN收发器TJA1040实现物理层协议。适配卡设计框图如图1所示。FPGA通过背板总线接口接收主机卡发出的指令,再经过CAN总线接口转发给各个现场总线CAN节点;另外,通过CAN总线接口接收各个现场总线CAN节点数据,再通过背板总线接口上传给上位机。为了提高适配卡工作的可靠性,采用CAN总线冗余设计,即当一路CAN节点发生错误停止工作后,系统会识别故障并自动切换到另一路CAN节点继续工作。
CAN协议控制器采用C8051F060单片机内部集成的CAN控制器。CAN控制器包含1个CAN核、消息RAM(独立于CIP-51的RAM)、消息处理状态机和控制寄存器[3]。CAN接口硬件电
路如图2所示。
CAN协议控制器和物理总线之间接口采用TJA1040。120 Ω电阻R137为提供总线接口阻抗匹配,防止信号反射。电容C39、C41用于滤除CAN总线上高频干扰。二极管D4、D5会在总线电压异常时将电平钳位在安全电压范围内,防止损坏TJA1040。接口部分采用10 MB/s高速光电耦合器GH-0631进行电气隔离,实现了前后电路互不干扰,提高了接口的可靠性。当单片机I/O输出低电平时,光耦导通输出高电平。2012高考理综全国卷
C8051F060分别将IF1接口寄存器配和IF2接口寄存器配置为发送和接收。使用IF1仲裁寄存器和IF1掩码寄存器将初始化为ID1。首先,上位机发出接收CAN总线数据指令,由FPGA给单片机发送中断,单片机收到中断后启动CAN控制器,发送分布式网络各个子节点的点名指令,待各节点收到指令将CAN数据发送过来后将其缓存、编帧并通过SPI传输至FPGA。为避免由于CAN总线受到外部干扰后产生错误中断,致使CAN中断函数中成功接收数据中断标识位rec_pin不变,无法下发点名采集命令致使适配卡在实际应用过程出现无法上传数据情况。使用定时器1中断在发送点名指令后开始计数,若进入错误中断,即在相应的时间内未成功接收CAN数据,则定时器1溢出触发中断,将rec_pin置位,程序跳出错误中断继续执行。C8051F060单片机流程图如图3所示。
变形计爱在远山全集
适配卡通过PCI9054实现FPGA与PXI接口之间的通信。PCI9054符合PCI R2.2的规范,是具有32位数据带宽,时钟频率为33 MHz的总线主控接口控制器;与之相关的几个主要的应用信号分别为:ADS#、Blast #、LW/R#、Ready#[3]。
PXI接口读写操作流程图如图4所示。当上位机没有下发任何指令时,ADS#无效,处于等待状态;当有指令下发时,ADS#拉低,开始数据传输。当Blast#有效时,开始单周期读写。在单周期访问阶段,上位机下发约定好的开始传输指令,FPGA收到指令后等待。若在下个周期ADS#仍然有效,将指令通过地址总线传输至上位机,上位机进行判断,若指令与下发的一致,说明指令成功下发,上位机软件操作界面提醒指令下发成功,否则提醒下发失败。然后进入突发访问周期,FPGA将FIFO半满标识写入固定的地址中,上位机对此标识进行判断,若有效则上位机突发获取2K的FIFO数据。否则,不能突发获取2K的FIFO数据。上位机会多次判断约定好地址中的标识以判断数据是否准备好,如果超过约定的时间,数据准备好标识仍无效,则退出当前操作[4]。
C8051F060的CAN控制器接收到的数据通过SPI总线传输给FPGA。通过配置SII0CFG配置寄存器和SPI0CN控制寄存器将SPI配置为三线主模式,通过SPI0CKR寄存器将位速率配置
为1 Mbps。位速率fsck由式(1)配置,其中SYSCLK为系统时钟,SPICKR为时钟速率寄存器。
由单片机发送时钟sck给FPGA,通过mosi引脚将SPI数据传输给FPGA缓存。利用ISim对FPGA与C8051F060之间的通信进行仿真,波形如图5所示。可以看出FPGA在sck上升沿锁取mosi线上数据,并依次缓存。
6.1 总线利用率的提高
氨基酸尿
CAN总线最高速率为1 Mbps(此时通信距离最长为40 m)。在某些数据量大、总线速率要求高的应用中,要尽可能提高总线利用率来降低总线负荷,缓解信息流量较大时给总线带来的压力,从而提高适配卡的稳定性。设计中通过改变C8051F060单片机内集成CAN控制器消息对象数量来提高总线传输效率。分别采用1个、2个、4个、8个消息对象在位速率为1 Mbps下发送352Byte(44包)数据量对比总线占有时间,用示波器抓取CAN总线数据波形如图6、图7所示。
通过实验截图得出表1。由表1可以发现,增加CAN控制器消息对象数量可明显减小CAN数
据包间隔,降低总线占有时间,提高总线利用率。这对于增加CAN分布式网络节点个数特别关键,对适配卡传输性能和可靠性的提升也至关重要。
6.2 错误处理机制
为了提高CAN适配卡的可靠性,适配卡需要具有容错机制。适配卡工作过程中可能会遇到多种干扰而使CAN总线发生错误,一个CAN总线节点出错后可能处于3种的一种:主动错误状态(Error Active),被动错误状态(Error Pasitive)和总线关闭状态(Bus off)。当发送错误计数器值大于或等于256时为最严重的总线关闭错误,将导致节点关闭,脱离总线[5]。为了使发生错误的CAN节点能自动重新挂接到总线上继续工作,对处于总线关闭的节点在CAN错误中断处理程序中重新进行初始化,复位CAN控制器,发送错误计数器计数清零[6]。下面给出了CAN控制器初始化程序:

本文发布于:2023-08-15 23:33:36,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/364613.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:总线   数据   适配卡   接口   控制器   上位   中断
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图