基于双路CAN总线的通讯板卡设计与实现

基于双路CAN总线的通讯板卡设计与实现寻常物的嬗变
包乃兰;宁立革
【摘 要】在煤矿系统中,各个采集监控设备之间都采用CAN总线进行相互传输数据,针对这一问题,设计定制的一款通讯板卡;由于设计小型化的要求,故采用PC104+的总线结构,该通讯卡含有2路CAN总线通信通道,PC104+总线目标接口芯片采用PLX 9030;SJA1000作为CAN控制器,82C250作为CAN收发器;在2路CAN通信通道上均采用光电隔离技术,增强系统在恶劣环境中使用的可靠性;在此基础上编写了驱动程序;该通讯板卡交付验收后,通过实际测试,当CAN总线工作在1M波特率的情况下,电缆长度在40米的情况下,CAN总线收发数据正确;整个系统运行稳定,可靠性高.%Each acquisition and monitoring device transfer data between CAN bus in the coal mine system, in view of this question, a communication board is designed. As the demand of miniaturization, the communication board adopts PC104 plus bus structure , includes dual CAN bus communication channels, Adopts PLX 9030 as PC104 plus bus target interface chip, Adopts SJA1000 as the CAN controller, and 82C250 as the CAN transceiver. Moreover, the communication board adopts photoelectric isolation t
张海钦echnology on the channels to improve the system reliability under bad conditions. On this foundation, the device driver is compiled. After acceptance, through practical testing, when CAN bus to work in 1M baud rate and the cable in 40 metres. CAN bus Receive and transmit data correctly. The whole system runs stability and reliability.
【期刊名称】《计算机测量与控制》
【年(卷),期】2011(019)011
【总页数】3页(P2772-2774)
马萨诸塞紧急状态
【关键词】PC104+总线;CAN总线;驱动程序;通讯板卡
【作 者】包乃兰;宁立革小分子团水
【作者单位】天津工业大学电气工程与自动化学院,天津300160;天津英贝特航天科技有限公司,天津300384
【正文语种】中 文
【中图分类】TP302
0 引言
由于CAN总线容易实现,而且具有卓越的性能,极高的可靠性,现已广泛应用于工业现场控制、煤矿控制系统、温度采集系统、小区安防等众多领域。而在煤矿控制系统中,由于其独特的环境,要求各个设备之间的通讯高可靠性,而且要求布线简单方便,所以通过比较,最终选用CAN总线作为设备之间的通讯总线,CAN总线通讯只需两根线,布线方便,且传输距离远,最远能达到10千米。
待遇服1 系统结构及原理
此项目要求小型化、易挪移。通过调研,由于PC104其简洁完美的堆栈PC结构,在嵌入式系统领域受到越来越多的推广和应用[1],而其结构上的加固型设计使得PC104系统可以应用强振动及强撞击等恶劣的应用环境,但是由于PC104采用的是速度较慢的ISA总线,其速度越来越受到制约,而随着PC104+的诞生,采用了PCI总线技术,克服了这个缺点,因此采用了PC104+架构,设计了基于PC104+的双路CAN 总线通讯板[2]。中年空巢
由于选用专门的PCI接口芯片能有效地降低接口设计的难度,缩短开发时间,因此本设计采用PLX9030,PLX9030作为CAN卡中的PCI接口芯片,负责与计算机之间的数据通信。
2 系统硬件设计
图1所示为CAN总线通讯板卡的硬件设计原理图,电路主要由4部分组成:PCI总线接口芯片、独立CAN总线控制器SJA1000、CAN总线收发器82C250和高速光电耦合器HCPL-0630。
图1 双路CAN通讯板卡的硬件功能框图
本设计中与PC104+总线连接采用的PCI接口芯片是PLX9030,PLX9030的Local总线接口有两种工作方式,分为复用模式和非复用模式,该设计从简化电路以及经过仔细分析CAN总线时序后,采用了服用模式,把PLX9030的MODE连接上拉电阻,PLX9030的LAD0~LAD7直接连接到SJA1000的AD0~AD7,PLX9030的第一个片选CS0连接到第一路CAN总线的片选信号,PLX9030的第二个片选CS1连接到第二路CAN总线的片选信号,PLX9030的 WR,RD,ALE分别连接到SJA1000的WR,RD,ALE,PLX9030的中断INT
0连接到第一路CAN总线的中断INT,PLX9030的中断INT1连接到第二路CAN总线的中断INT,这样PLX9030可以通过中断方式,PLX9030的INT引脚将中断信号写入中断寄存器,通过Burst传送完成对数据的读写[3]。不过,由于PLX9030的INT引脚没有驱动能力,因此该信号线必须加上拉电阻,否则该信号线的电平不确定,CAN总线工作会不正常。
PCI设备的硬件资源是系统动态分配的,因此要对其硬件进行PCI空间配置,PLX9030内部寄存器的配置信息以及对CAN总线的分配空间写在EEPROM中,加电时PLX9030自动加载串行EEPROM配置信息,通过PCI总线对配置寄存器读写。利用PLX9030提供的4个局部地址空间,选用其中的2个作为SJA1000的地址空间,同时设置相应的其他相关寄存器。具体如下:局部寄存器 (LAS0RR)设置为0XFFFFE00,局部寄存器 (LAS1RR)同样设置为0XFFFFE00。另外,PLX9030的LRDY信号为局部总线数据准备信号,由于本设计将SJA1000的寄存器地址映射为I/O地址,数据传输不存在延迟等待,因此将LRDY引脚接地或者在局部配置寄存器中,将相应控制位置零,表示SJA1000的寄存器总是立即可读写。同时把PLX9030的中断电平配置成低电平有效模式[5]CAN总线的控制器采用飞利浦的SJA1000,这款芯片已经得到大量的应用,避免了设计上的风险,CAN总线控制器经过光电隔离器件HCPL-0630与CAN总线收发器82C250连接。
本设计解决的关键技术主要有以下几点:
(1)以往CAN总线设计不能单独复位其中的CAN总线控制器,而本设计中PLX9030与CAN的连接,通过增加1级电路,用于CAN总线的复位使用PLX9030的GPIO1和PLX9030的RESET信号经过一级74AHC1G08与门连接到第一路CAN总线的复位引脚,PLX9030的GPIO2和PLX9030的RESET信号经过一级74AHC1G08与门连接到第二路CAN总线的复位引脚,这是由于当CAN总线通讯有错误时,CAN总线的错误寄存器会记录下当前的错误信息,因此要对CAN总线的各个寄存器进行复位,使其恢复CAN总线初始化时的值,而这时系统整体不复位,只是单独对出错的那一路CAN总线进行复位。
(2)通过采用PLX9030的Local总线的复用模式,简化了电路设计,并且由于煤矿系统的特殊环境,所以一些设计中的关键点要求考虑到位。光隔两边的电路供电部分也采用隔离电源分别供电,这些部分增加了电路的复杂程度,但是提高了CAN总线传输的稳定度和安全性,这样增强了煤矿下系统的可靠性。
(3)82C250的CANH和CANL通过一个小电阻连接到CAN总线上,这样电阻可以起到一定的限流作用,避免82C250受到过流的冲击,CANH和CANL与地之间并联一个小电容,
滤除总线的高频干扰,另外总线与地之间反接一个保护二极管,可以对CAN总线起到过压保护的作用。
在CAN网络中,采用总线式连接,在两端的站点安装匹配电阻,其余站点不安装匹配电阻。如图2所示,只有1#站点和N#站点需安装匹配电阻。如果只有1块CAN卡,建议安装匹配电阻。
通过这些关键技术的考虑,保证了此通讯板的工作稳定以及可靠性。
图2 CAN总线网络终端匹配电阻
4 应用驱动程序
在设计开发PCI设备时,需要开发相应的驱动程序来实现对PCI设备的操作,用户应用程序通过驱动程序来访问PCI设备,本设计采用的驱动开发工具选用WinDriver。
使用WinDriver研发PCI设备驱动程序,使用向导Driver Wizard自动生成驱动程序的框架代码,然后修改其中的部分代码,再加入定制的功能,最后在用户执行和调试代码就行。
本软件设计着重CAN总线部分的部分程序来作一下描述,CAN总线部分的程序主要包括初始化部分、接受子程序、发送子程序3个部分。SJA1000的初始化只能在复位模式下才可以进行。初始化主要包括工作方式的设置、接受滤波方式的设置、接受屏蔽寄存器和接收代码寄存器的设置、波特率参数设置、中断寄存器设置等,需要注意的是在访问总线定时器时,由于其内容决定波特率的数值,总线定时寄存器的初始化值必须依据系统中SJA1000的晶振频率而设定。在初始化SJA1000的寄存器后,SJA1000回到工作状态,进行正常的通信任务[4]。
其代码结构定义如下:
功能:初始化CAN控制器入口参数:
hndFile:板卡句柄,由函数OpenDevice_CAN()获得。
port:CAN控制器号,取值范围为0、1
CAN_CONFIG:can的结构定义如下,该定义在Export_CAN.h中。

本文发布于:2024-09-21 20:52:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/167043.html

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

下一篇:PXI Express 概述
标签:总线   设计   采用   寄存器   系统   部分   设备
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议