高 阳,李永红*,岳凤英,金志坤,麻少轩
(1.中北大学仪器与电子学院,太原030051;2.中北大学计算机与控制学院,太原030051;3.北京雷博曼科技有限公司,北京100070;4.内蒙古蒙东能源鄂温克电厂,内蒙古呼伦贝尔021000)
基于DSP和FPGA的CAN总线监视系统设计*
高阳1,李永红1*,岳凤英2,金志坤3,麻少轩4
(1.中北大学仪器与电子学院,太原030051;2.中北大学计算机与控制学院,太原030051;
3.北京雷博曼科技有限公司,北京100070;4.内蒙古蒙东能源鄂温克电厂,内蒙古呼伦贝尔021000)
摘要:为了对某武器系统各个节点传输的CAN总线数据进行实时监测与精确采集,设计了基于DSP和FPGA的CAN总线监视系统。该系统采用CAN2.0B协议,用以对两路CAN总线数据进行实时监测与采集。试验结果表明,该系统可在1 000 kbit/s下正常运行,具有很好的实时性,并且抗干扰能力强,能够精确测量与采集该武器系统的各项参数,在实际中取得了很好的应用。
关键词:实时监测;数据采集;CAN总线;DSP;FPGA
项目来源:山西省青年基金项目(2012021013-6)
CAN(Controller Area Network)即控制器局部网,是由德国BOSCH公司为实现汽车测量和汽车部件之间的通讯而设计的、支持分布式控制及实时控制的串行通信网络[1]。目前,在航空航天领域CAN总线技术作为一种新型的现场控制和测量技术,克服了现行遥测系统只有一个主节点、无法构成多主或冗余系统、可靠性差、灵活性差、不能满足较高的实时性、纠错能力差等缺陷[2]。因此,CAN总线在航空航天领域得到了广泛的应用,取得了很好的实际效果。
本系统传输和采集两路CAN总线数据,其中一路为飞控总线,传输的是主机向各个节点发送的控制数据,另一路为遥测总线,传输的是各个节点的数据和状态信息。CAN监视系统框图如图1所示。遥测总线和飞控总线的数据进入DSP后,DSP将飞控总线的数据直接发给FP⁃GA,FPGA通过视频组合输入的码脉冲信号和字门信号将飞控数据进行编码;DSP将遥测数据进行组包并存入RAM中,若DSP收到同步输入中断后,DSP将RAM中数据写入FPGA,FPGA通过视频组合输入的码脉冲信号和字门信号将遥测数据进行编码。最后将两路数据传给地面站进行处理。
图1 系统总体框图
1.1FPGA和DSP简介
在本系统中,DSP芯片采用TI公司的TMS320F28335,主频最高可达150 MHz。该芯片是32位浮点型控制器,其运算时间是TMS320F2812的1/6。Flash可达256 kbit×16 bit,比TMS320F2812增加了一倍。F28335上有两个增强型CAN总线控制器,符合CAN2.0B协议,内部带有32个具有定时发送和接收功能的可配置邮箱[3-5]。FPGA芯片采用的Xilinx公司生产的Spartan6系列XC6SLX45芯片,并且使用Xilinx的开发包进行系统开发。该芯片最大I/O数量可达218个,具有丰富的外设资源,可以方便的与DSP互连通信。
1.2CAN收发器模块
在本系统中,CAN收发器选用TI公司的SN65HVD233,作为DSP的CAN控制器与物理总线的接口。在本系统中,将引脚8(RS)接地选择高速工作方式,在6、7引脚(CANL、CANH)间并联一个120 Ω的匹配电阻,以克服长线效应,减少通信介质中由信号反射造成的干扰。CAN驱动电路如图2所示。
图2 CAN驱动电路
1.3同步信号隔离处理模块
同步脉冲信号隔离模块选用ADI公司的AD⁃UM1201。ADUM1201采用的是iCoupler数字隔离器采用平面磁场隔离技术,具有速度快、功耗低、应用灵活、体积小等优点。同步脉冲信号隔离电路如图3所示。
图3 同步脉冲信号隔离电路
2.1CAN总线通信机制
在本系统中,CAN总线通信采用CAN2.0B协议进行传输,数据采用扩展帧格式,其报文格式如下表1。
每个数据帧包括帧头、传输数据、紧急状态、通信错误信息、帧尾等。CAN总线传送的顺序按位先高后低,优先级从高位开始仲裁,“0”为优先。
在本系统中CAN总线传输的两路数据中,遥测数据总线采用分时发送机制,飞控数据总线采用响应式发送机制。遥测总线上的各个节点在自己规定的时段发送数据,其它时段禁止发送数据。如果超过规定的时间没有接收到数据或者某个节点占用时间过长,发送故障信息。
表1 CAN2.0B数据帧报文格式
2.2DSP数据采集与存储
系统上电后首先进行初始化,包括初始化GPIO 和eCAN等单元,对存储芯片Flash读取芯片ID,以确认芯片能够正常工作。然后对CAN寄存器和邮箱进行初始化,配置中断向量入口地址。DSP中的寄存器PieVectTable存储的是各个中断服务程序的入口地址,通过修改入口地址可以将其重新定位用户自己编写的响应程序。系统的程序流程图4所示。
图4 系统程序流程图
DSP芯片的eCAN模块包含32个邮箱,可采用不同的邮箱发送和接收系统各个节点的数据,发送邮箱和接收邮箱的ID必须相同,采用查询的方式将信息帧发送到CAN的发送缓冲区,通过查询CANRMP寄存器的状态来确定是否收到数据,采用中断的方式接收数据[8- 9]。邮箱功能由寄存器CANMD决定,其相应位置0表示此邮箱为发送邮箱,置1表示为接收邮箱。CAN中断程序框图如图5所示。
图5 CAN中断程序框图
2.3FPGA软件设计
DSP收到两路CAN总线数据后,将其转发至FPGA,由FPGA对其进行编码加密成串行码流信号YDATA。FPGA接收主控设备传输过来的字门信号YZM和同步脉冲信号YCK,信号时序如图6所示。YZM信号在YCK的上升沿触发,在YCK的第8个下降沿结束。FPGA在YZM信号的上升沿开始将YDATA转发出去,在YZM信号的下降沿停止发数。FPGA在没有数据到来时则发送上一帧数据的最后一位,初始状态则发送0。FPGA发送数据完毕后向DSP发送中断信号,停止接收数据。
图6 信号时序图
(1)主微处理器采用TI生产的TMS320F28335,该芯片内置两个CAN总线通信模块。模块中的CAN总线通信接口与现行的CAN2.0B接口完全兼容。因此在硬件设计中,不需要再加入独立的CAN控制器,节约了开发成本,增加了系统的稳定性。
(2)采用了冗余设计。该系统具有两路CAN总线可以形成冗余备份机制,当收到各个节点紧急状态指令或者错误信息指令时,将暂停发送遥测数据,将飞控总线通讯切换到遥测总线,此时遥测总线采用响应式发送机制。
(3)采用了集容错性设计。采用CRC校验和CANID屏蔽过滤技术进行数据的处理和采集。
本系统采用XC6SLX45和TMS320F28335为主控芯片,对某武器系统的各个节点的数据进行了精确的采集与传输。在设计中采用了冗余设计和容错性设计保证了系统的可靠性。在某武器系统的多次试验中,有效地对各个节点的CAN总线数据进行监视和采集,为该系统的下一步的研制和进一步的定型,提供了准确的数据信息。
参考文献:
[1]史久根,张培仁,陈真勇. CAN现场总线系统设计技术[M].国防工业出版社,2004:5-19.
[2]邹青.导弹遥测系统应用CAN总线技术的探讨[J].情报指挥控制系统与仿真技术,2004,38(2):39-41.
[3]连猛,丑修建,李庆等.基于FPGA和DSP的数据采集与压缩系统[J].电子器件,2015,38(2):130-134.
[4]刘陵顺,高艳丽,张树团,等. TMS320F28335DSP原理及开发编程[M].北京:北京航空航天大学出版社,2011.
[5]王誉树,蔡强,郭冬莲,等.基于CAN总线的水产养殖水质在线监控系统设计与实现[J].电子器件,2014,37(4):708-713.
[6]逄锦昊,苏涛,杨涛,等.基于FPGA的多路高速数据传输同步时延测量系统[J].电子器件,2015,38(2):447-451.
[7]王恒升,何清华,薛云.基于CAN总线的凿岩机器人分布式控制系统设计[J].传感技术学报,2007,20(3):711-714.
[8]马秀娟,考丽,赵国良.基于FPGA和DSP的高速数据采集实时处理系统的设计[J].电子器件,2007,30(3):1009-1013.
[9]胡军明. DSP eCAN总线中断方式与上位机的双向通信[J].总线与网络,2010,25(7):13-16.
[10]段帅君.基于VerilogHDL语言的CAN总线控制器设计及测试[D].长春:吉林大学,2009.
[11]张凌烽,王化祥.基于FPGA和DSP的电阻层析成像数据采集系统[J].传感技术学报,2011,24(7):1011-1016.
[12]陈二瑞,乔永明,梁雁冰,等.基于FPGA+DSP的实时图像消旋系统[J].传感技术学报,2010,23(4):538-542.
高阳(1988-),男,满族,河北承德人,中北大学在读硕士研究生,主要研究方向为动态测试与智能仪器,345483488@qq.com;
李永红(1967-),男,汉族,教授,博士,山西临汾人,中北大学硕士生导师,国务院特殊津贴专家,国家人事部、科技部、教育部、财政部、发改委、自然基金委、中国科协等七部委联合确定的“新世纪百千万人才工程国家级人选”,中共中央直接联系的高级专家。主要研究方向为卫星/微惯性组合导航技术、MEMS传感器设计与生产工艺、微系统集成封装、飞行器弹载数据记录仪、常规弹药制导与控制、柔性、超薄蒙皮式网络化、数字化传感器阵列,466678237@qq.com。
Multi-Channel Data Acquisition System Based on FPGA and Ethernet*
JIAO Jiawei1,2,SHI Yunbo1*,ZOU Kun1,2
(1.National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China;2.Suzhou Fashion Nano Technology Company,Suzhou Jiangsu 215123,China)
Abstract:In order to realize the acceleration sensor calibration test and to make 16 acceleration sensors realize test in parallel,a multi-channel data acquisition system has been designed based on FPGA and Ethernet. This system takes the FPGA as the core control chip,which implements the real-time,frame and data storage for the 16 road ana⁃log signals,and through the Ethernet interface the chip W5300 completes communication with PC. The whole sys⁃tem uses modular design,to get low power consumption,high acquisition precision and reliability,and good realtime performance. What is more,it has successfully applied in the equipment of accelerometer mass calibration test. Key words:FPGA;ethernet;data;acquisition;W5300
doi:EEACC:7210G10.3969/j.issn.1005-9490.2016.01.035
收稿日期:2015-04-25修改日期:2015-05-22
中图分类号:TP336
文献标识码:A
文章编号:1005-9490(2016)01-0164-04