以下是小编为大家整理的汽车CAN总线与电线束技术(共含9篇),希望对您有所帮助。同时,但愿您也能像本文投稿人“linzita88”一样,积极向本站投稿分享好文章。
汽车CAN总线与电线束技术
1 汽车CAN总线 20世纪90年代以来,汽车上由电子控制单元指挥的部件数量越来越多,例如电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电控门窗装置、主动悬架等等.
作 者:肖艳 Xiao Yan 作者单位: 刊 名:城市公共交通 英文刊名:URBAN PUBLIC TRANSPORT 年,卷(期): “”(2) 分类号: 关键词:基于CAN总线和虚拟仪器技术的汽车CAN节点测试仪设计
引言 Controller Area Network(控制器局域网,缩写为CAN),是为解决汽车电子控制单元间的信息通信而由德国Bosch公司提出的一种总线标准,以其卓越的性能、极高的'可靠性和低廉的价格,现在已经在汽车领域获得广泛应用.
作 者:侯冬冬 于良杰 马建辉 作者单位:山东省科学院自动化研究所 刊 名:世界电子元器件 英文刊名:GLOBAL ELECTRONICS CHINA 年,卷(期): “”(4) 分类号: 关键词:基于CAN总线的军用汽车控制系统数据传输研究
将CAN总线技术运用于军用EQ2082E6D型越野汽车控制系统中,解决了多节点数据传输问题,给出了控制系统数据传输CAN模块电路设计、软件设计流程和CAN总线系统的报文识别码.
作 者:舒华 陈适 薛乃恩 赵劲松 杨丹 许玉新 SHU Hua CHEN Shi XUE Nai-en ZHAO Jin-song YANG Dan XU Yu-xin 作者单位:舒华,赵劲松,SHU Hua,ZHAO Jin-song(军事交通学院,装备保障系,天津,300161)陈适,CHEN Shi(军事交通学院,研究生管理大队,天津,300161)
薛乃恩,XUE Nai-en(海军92076部队,北京,102202)
杨丹,YANG Dan(空军装备部,北京汽车修理厂,北京,100141)
许玉新,XU Yu-xin(军事交通学院,外训系,天津,300161)
刊 名:军事交通学院学报 英文刊名:JOURNAL OF ACADEMY OF MILITARY TRANSPORTATION 年,卷(期):2008 10(2) 分类号:V270.1 关键词:CAN总线 控制系统 数据传输一种基于CAN总线的DSP程序加载技术
摘要:为灵活方便地调试磁悬浮列车上众多基于DSP芯片的控制系统,介绍了一种基于CAN总线的DSP程序加载技术。该技术使对DSP芯片程序的加载可以脱离仿真器而直接受控于列车的主控机。该技术可靠性高、使用灵活方便,具有很强的实用性。关键词:CAN总线 单片机 DSP HPI ISA
磁悬浮列车上有很多基于DSP芯片的模块和系统。目前,(本网网收集整理)DSP芯片程序的加载与运行都主要依赖于仿真器,而DSP仿真器价格高、体积大,这使得磁悬浮列车系统的调试很不灵活方便;且这些基于DSP芯片的系统一旦脱离仿真器就只能运行事前载入的单一的程序,也使系统的灵活性受到了很大的限制。
本文研究了DSP芯片程序加载的基本原理,并根据这些原理,基于CAN总线,实现了DSP芯片程序的受控加载,使得DSP芯片程序的加载与启动可直接受控于上位主控机。由于主控机的灵活性很大,磁悬浮列车系统在调试时就可根据需要对其上各个控制模块的主控DSP芯片加载不同的程序,控制它的启动运行,非常方便灵活。
1 CAN总线的特点及工作原理
CAN?Control Area Network,即控制器局域网?总线是一种有效支持分布式控制或定时控制的串行通讯网络?它以半双工的方式工作?一个节点发送信息?多个节点接收信息?实现了全分布式多机系统?提高了数据在网络中传输的可靠性。其结构形式如图1所示。CAN总线的信息存取利用了广播式的存取工作方式?信息可以在任何时候由任何节点发送到空闲的总线上?每个节点的CAN总线接口必须接收总线上出现的所有信息?因此各节点都设置有一个接收寄存器?该寄存器接收信息?然后根据信息标文符决定是否读取信息包中的数据以判断是否使用这一信息。
CAN总线的特点是以通信数据块编码代替传统的地址编码?CAN总线面向的是数据而不是节点?这种方式的优点是可使网络内的节点个数在理论上不受限制?加入或减少设备不影响整个系统的工作。基于CAN总线的各种系统可以根据用户需要任意改变节点数量。CAN总线收发数据的长度最多为8个字节?因而不存在占线时间问题?可以保证通信的实时性?通信速率最高可达1Mb/s?距离为40m??最远可达10km?速率为5kb/s?。对通信介质的要求较低?可以是光纤或同轴电缆甚至双绞线。
2 DSP芯片的'程序加载与运行原理
在本项技术中,DSP的程序加载与启动运行是通过对其HPI 8位并行口的操作实现的。下面先简单介绍一下DSP的HPI 8位并行口以及如何对它进行读写操作,然后介绍本文研究的这种DSP程序加载技术。
2.1 DSP芯片的并口(HPI)简介
HPI并行口的读写操作主要由DSP的三个16位寄存器控制,它们分别是:HPIC?HPI Control Register,控制寄存器?、HPID?HPI Data Register,数据寄存器?、HPIA?HPI Adress Register,地址寄存器?。写HPIC寄存器控制HPI并口的读写方式以及数据高低字节的读写顺序等;写HPIA寄存器控制写入或读出数据的具体地址(自增模式下?2?为数据写入/读出时的初始地址);从HPID直接写入/读出数据。
HPI有两种读写方式:普通模式下的读写按照HPIA的地址将HPID的数据写入内存或将该地址的数据读入HPID;自增模式下HPIA则是首地址,每次读或写操作后它都会自动指向下一个待读写的地址。
2.2 DSP芯片的程序加载与启动
由CCS编译器生成的DSP可执行文件是一种.out文件。本方法中首先调用TI公司提供的hex500.exe程序,将其转换为.hex文件?3?,这种.hex文件的组织结构具体如下:
它由一个一个的块(block)组成,每一个块的第一个字节表示当前块包含的待加载的有效数据的长度,第二、第三个字节表示这些有效数据写入DSP内存时的首地址,从第五个字节开始是待写入DSP内存的有效数据(第四个字节通常为0x00,是无效数据),超出当前有效数据长度的数据不需要处理。需要注意的是,文件的结尾(也就是最后一个块)的第一个字节的数据是0,表示当前块为文件的结尾,其后的任何数据都是无效数据。
知道这种.hex文件的组织结构后,就可以分离出其中的有效数据,然后就可将这些有效数据写入DSP的内存。本技术
是通过DSP的HPI口来完成写操作的。具体如下:
首先对DSP复位,清除原来的数据;然后在单片机的控制下从.hex文件读出每次写入的初始地址,从这些初始地址开始不断地将有效数据写入DSP的内存;写操作完成后,向DSP的内存地址0x007f写数据0x8000,程序即启动,开始执行。
3 系统的组成
系统组成框图如图2所示。ISA插卡通过ISA插槽与PC机(即相当于磁悬浮系统上的主控机)连接,受PC机的控制,接收来自PC机的数据,向PC机转发收到的数据。插卡上有SJA1000芯片,通过它与PCB板上的SJA1000实现数据交换。PCB板上的SJA1000的数据/地址信号线与单片机的P0并口相连,同时P0并口也与DSP的HPI并口数据线HD0~7相连。在单片机的控制下,SJA1000接收来自PC机的数据,并将其通过P0并口发送给单片机,然后单片机再将这些数据通过HPI发送给DSP。
4 系统的实现
4.1 硬件实现
根据系统组成框图,各个具体模块的硬件实现如图3、图4、图5所示。
图3为单片机的接口电路,并口P0与SJA1000的并行数据口D0~D7(如图4所示)及DSP的HPI口(如图5所示)相连,实现数据交换:SJA1000接收来自CAN总线的数据,通过并行数据口D0~D7及P0口发送给单片机,单片机接收到数据并经过处理后又通过P0口和HPI口转发给DSP。
HBIL、HCT0、CHT1、HR/W为HPI口的控制信号?2?,故HPI的读写等操作都受控于单片机。
CSCAN为SJA1000的选通信号,/RST为SJA1000与DSP的复位信号;RD、WR分别为读写控制信号。
4.2 软件实现
PC机程序负责对.hex文件的分析,并根据分析结果,通过SJA1000,将每一个块的“头部”和有效数据有区别地向CAN总线上发送,直到遇到文件结束符为止。
单片机控制程序负责接收从SJA1000上传的CAN总线上的数据,分析数据的性质(即该帧数据是“头部”还是有效数据),然后通过DSP芯片的HPI并行口将有效数据正确地写入相应的内存地址。
本文研究的这项技术提供了一种简单易行、成本低廉的DSP程序加载方法。这项技术具有高度的可靠性、灵活性和实用性。此项技术用于磁悬浮列车这样一个复杂的DCS系统后,能够很好地控制列车上众多基于DSP芯片的系统的程序加载,并方便地对它们进行调试,使这些系统能根据不同的需要执行不同的程序,取得了很好的效果。目前上海引进的磁悬浮列车也采用了此项在线调试技术。
一种基于CAN总线的DSP程序加载技术
摘要:为灵活方便地调试磁悬浮列车上众多基于DSP芯片的控制系统,介绍了一种基于CAN总线的DSP程序加载技术。该技术使对DSP芯片程序的加载可以脱离仿真器而直接受控于列车的主控机。该技术可靠性高、使用灵活方便,具有很强的实用性。关键词:CAN总线 单片机 DSP HPI ISA
磁悬浮列车上有很多基于DSP芯片的模块和系统。目前,DSP芯片程序的加载与运行都主要依赖于仿真器,而DSP仿真器价格高、体积大,这使得磁悬浮列车系统的调试很不灵活方便;且这些基于DSP芯片的系统一旦脱离仿真器就只能运行事前载入的单一的程序,也使系统的灵活性受到了很大的限制。
本文研究了DSP芯片程序加载的基本原理,并根据这些原理,基于CAN总线,实现了DSP芯片程序的受控加载,使得DSP芯片程序的加载与启动可直接受控于上位主控机。由于主控机的灵活性很大,磁悬浮列车系统在调试时就可根据需要对其上各个控制模块的主控DSP芯片加载不同的`程序,控制它的启动运行,非常方便灵活。
1 CAN总线的特点及工作原理
CAN?Control Area Network,即控制器局域网?总线是一种有效支持分布式控制或定时控制的串行通讯网络?它以半双工的方式工作?一个节点发送信息?多个节点接收信息?实现了全分布式多机系统?提高了数据在网络中传输的可靠性。其结构形式如图1所示。CAN总线的信息存取利用了广播式的存取工作方式?信息可以在任何时候由任何节点发送到空闲的总线上?每个节点的CAN总线接口必须接收总线上出现的所有信息?因此各节点都设置有一个接收寄存器?该寄存器接收信息?然后根据信息标文符决定是否读取信息包中的数据以判断是否使用这一信息。
CAN总线的特点是以通信数据块编码代替传统的地址编码?CAN总线面向的是数据而不是节点?这种方式的优点是可使网络内的节点个数在理论上不受限制?加入或减少设备不影响整个系统的工作。基于CAN总线的各种系统可以根据用户需要任意改变节点数量。CAN总线收发数据的长度最多为8个字节?因而不存在占线时间问题?可以保证通信的实时性?通信速率最高可达1Mb/s?距离为40m??最远可达10km?速率为5kb/s?。对通信介质的要求较低?可以是光纤或同轴电缆甚至双绞线。
2 DSP芯片的程序加载与运行原理
在本项技术中,DSP的程序加载与启动运行是通过对其HPI 8位并行口的操作实现的。下面先简单介绍一下DSP的HPI 8位并行口以及如何对它进行读写操作,然后介绍本文研究的这种DSP程序加载技术。
2.1 DSP芯片的并口(HPI)简介
HPI并行口的读
[1] [2] [3]
摘要:讨论了CAN总线控制器与DSP之间的接口,介绍了流行的CAN控制器芯片SJA1000和TMS320系列DSP芯片的接口时序,并给出了它们的接口方法和电路。
关键词:CAN控制器 DSP 时序 接口电路
现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一。CAN总线是现场总线中的应用热点,CAN总线支持分布式控制和适时控制的串行通信网络。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。基于CAN总线的CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此CAN控制器与其它微处理器的接口成为设计CAN总线系统的首要工作。当前已有一些微处理器将CAN控制器嵌入到系统之中,成为在片的策处理器,例如,P8XC592(其内核即为80C51的CPU),MCS96系列中的87C196CA、87C196CB,TMS320系列中的在片CAN微控制器TMS320LF2407、TMS320F2810/F2812,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。本文讨论这些微处理器与CAN控制器的接口问题,重点介绍CAN控制器与TMS320系列DSP的接口方法和接口电路。
(本网网收集整理)
1 CAN控制器接口信号和时序
CAN控制器(以PCX82C200或SJA1000为例)提供的微处理器的接口信号主要有AD0~AD7共8根地址数据线和ALE、CS、RD、WR、RST、MODE、RESET和INT,控制器的数据和地址分时复用线,其中MODE为接口方式选择信号,可选用INTEL方式或MODTOROLA方式。不同方式下引脚定义如表1,接口时序如图1和图2所示。
表1 SJA1000引脚定义
引脚符号INTEL(MODE=Vdd)MOTOROLA(MODE=Vss)ALEALEASRDRDEWRWRRD/WR从引脚定义和时序关系可知CAN控制器提供了与INTEL方式和MOTOROLA方式的直接接口信号,其中INTEL方式对于目前流行的51/96系列单片机来说提供了方便快捷的直接接口设计。
2 DSP的接口信号和时序
DSP芯片以TI公司生产TSM320系列产品为国内的主流产品,TSM320系列产品至今已经历了若干代,有'C1X'、'C2X、'C2XX、'C5X、'C54X、'C62X等定点DSP,有'C3X、'C4X、'C67X等浮点DSP和'C8X多处理器DSP。DSP采用了先进的哈佛结构,内部采用多总线结构和流水线的工作方式,从而大大地提高了系统的运行速度和数字信号处理能力,DSP的指令执行时间在ns数量级,内部程序和数据存储器目前已达几十K字,并带有内部的硬件乘法器,这些都有DSP提供了广阔的应用空间。
DSP芯片的片外引脚一般采用地址线和数据分离的设计方法,不再使用地址数据分时复用线,也没有ALE地址有效信号,这样就给CAN控制器与DSP的接口带来一定困难,且不同的DSP芯片外部引脚和时序也略有区别。要设计CAN控制器与DSP的接口,首先必须讨论一下DSP的时序,下面以DSP中较流行的TMS320LF2407和TMS320VC5402为例进行讨论。
2.1 TMS320LF2407 DSP的I/O时序
DSP的存储器分为三个空间:程序存储器空间、数据存储器空间和I/O空间。I/O空间有专用的输入指令PORIR和输出指令PORTW以及专用的I/O空间选择信号IS,TMS320LF2407的I/O信号与存储器操作信号复用,它们是存储器和I/O设备选通信号STBR、写选通信号WR、读选通信号RD和读写信号R/W,TMS320LF2407的I/O时序如图3和图4所示。
2.2 TMS320VC5402 DSP的I/O时序
TMS320VC5402与TMS320LF2407一样,用IS作为I/O空间选择信号,不同的地方是I/O空间有专用的I/O设备选通信号IOSTRB和通用的读写信号R/W,而不设读选通信号RD和写选通信号WR,其时序如图5和图6所示。
2.3 DSP的I/O时序分析
I/O的输入或输出工作周期一般在两个机器周期内完成,在此期间,IS信号和地址总线一直保持有效。对于TMS320LF2407,I/O选通信号STRB发生在第一个机器周期有效之后并持续一个机器周期以上,RD和WE有效时数据有效。对于TMS320VC5402,I/O设备选通信号IOSTRB的低电平有效发生在延迟了半个机器周期的上升沿到下一个机器周期的上升沿,持续一个机器周期,数据有效发生在第二个机器周期内。R/W读写信号在输入周期内一直保持为“1”,在输出周期一直保持为“0”,仅起到控制数据流的方向作用。以上分析期,则每次I/O操作均延长一个机器周期,即需要三个机器周期完成I/O操作(等待周期时序从略)。
从以上分析可分看到,TMS320系列DSP没有提供与SJA1000 CAN控制器的直接接口信号,以SJA1000的INTEL方式为例,为了使TMS320系列DSP满足SJA1000的接口信号要求,可以从以下几点进行设计。
3.1 地址数据复用线的设计
将DSP的数据线D0~D7作为CAN的地址/数据复用线,用DSP的数据线去选择CAN的内部端口和传送数据。
3.2 地址有效信号ALE的产生
对于TMS320LF2407,用地址线A0、写选通信号WR和端口选通信号STRB的逻辑组合产生DSP的ALE信号,对于TMS320VC5402,则用地址线A0、I/O端口选通信号IOSTRB的逻辑组合产生ALE信号。
3.3 读写信号的产生
对于TMS320LF2407,用读信号和A0的逻辑组合产生SJA1000的读选通信号,用写信号和A0的逻辑组合产生SJA1000的写选通信号。对于TMS320VC5402,则用A0、IOSTRB和R/W的逻辑组合产生SJA1000的读和写选通信号。逻辑关系如表2所示。
表2 TMS320LF2407和TMS320VC5402与SJA1000接口逻辑
TMS320LF2407TMS320VC5402SJA1000A0STRBR/WWEA0IOSTRBR/WALEWERD100X100111000000000100110010103.4 片选信号的产生
用DSP的I/O空间选通信号IS和高位地址的译码信号的逻辑组合产生CAN的片选CS。
从以上设计思想可以看到,这种方法是将DSP的数据线改为适应CAN控制器的数据地址线。为此将DSP的A0作为地址数据选择线。A0=1时,地址有效;A0=0时,数据有效。即用奇数地址选择端口,用偶数地址传送数据。同时,通过信号的逻辑组合,在地址有效期间不产生读写信号,而是产生满足CAN的地址有效信号ALE;在数据有效期间产生满足CAN的读和写逻辑信号时序。
4 CAN与DSP的接口电路
以TMS320VC5402与SJA1000芯片为例设计的接口电路如图7所示。图中,用一片GAL16V8B作为接口逻辑转换电路。为突出接口电路,其它部分从略。用FM书写的设计文件如下:
GAL16V8B
INTERFACE
CH SH APR 19,2
DECODER
NC NC IS IOSTRB A0 RW A14 A15
NC GND
NC NC CS WR RD ALE NC NC NC VCC
CS=A15*A14 *IS
ALE=A0*IOSTRB*R/W
RD=A0*IOSTRB*R/W
DESCRIPTION
CAN总线与以太网互连系统设计
摘要:介绍了一种基于单片机SX52的CAN与以太网互连方案,阐述了以太网和CAN总线网络协议转换的软硬件设计,实现了以太网与现有CAN总线网的直接连接。保证管理监控层(以太网)与生产测控层(CAN总线网)之间的连接,使得上下层数据能方便地通信。关键词:现场总线CAN总线以太网
在大型企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC机,而下层车间现场则采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡或并行打印口的EPP接口卡实现。这种连接方式成本高,开发周期长。针对这种情况,笔者设计一种单独的CAN以太网网关互连系统,成功地实现以太网与现有CAN总线网的直接数据互联。
1系统结构
系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关、以太网信息管理终端(如监控平台和网络数据库等),如图1所示。
CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层需通过数据网关。嵌入式透明SX52网关就是为此而设计的。
透明式网关在以太网应用层构建和解析完整的CAN协议数据包。CAN协议数据包作为TCP/IP网络应用层的数据进行传输,它对通信数据的具体实际意义不做任何解释。透明式网关由通信处理器、CAN总线控制器和以太网控制器三部分组成。其中SX52单片机为核心处理器,它实现了CAN控制网络与以太网之间的协议转换。以太网信息管理层的控制指令发送到嵌入式透明SX52网关,将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明SX52网关,再通过网关协议转换程序将CAN协议数据封装成TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。
以太网信息管理终端是一个根据用户的具体要求而设计的用户层应用软件。它可以是一个WIN32监控程序或网络数据库(记录CAN节点设备数据)软件等;甚至可能是CAN节点设备的`服务器软件,为设备提供较复杂的数据处理工作。
2硬件设计
系统硬件分为两大部分:CAN总线网络设备接口设计和嵌入式透明SX52网关设计。
2.1CAN总线网络设备接口设计
CAN总线网络设备接口设计较网关设计简单。它是在完成设备功能的基础上加入一个CAN通信控制器接口芯片,实现与CAN总线网络的连接。考虑到开发成本和灵活性,笔者在设计中选用PHILIPHS公司的独立CAN通信控制器SJA1000芯片和CAN总线收发器82C250芯片。其结构如图2所示。
2.2嵌入式透明SX52网关设计
嵌入式透明网关设计是整个系统设计的核心。其结构如图3所示。它由CAN控制器协议转换模块和以太网控制器协议转换模块两部分组成。网关硬件中SX52微处理器起核心作用。它是由美国Ubicom公司研制的高速可配置通信控制器,其处理速度相当高。在外接100MHz时钟时,指令执行速度可达100MIPS。它可实现TCP/IP协议栈中的ARP、IP、UDP、TCP、HTTP、SMTP、ICMP等网络协议。
CAN控制器协议转换模块硬件电路原理如图3左框图。它由三部分组成:微控制器SX52、独立CAN通信控制器SJA1000、CAN总线收发器82C250。其中SX52为唯一的CPU核心,负责SJA1000的初始化,通过读写SJA1000内部寄存器实现数据的接收、发送和错误处理等。PCA82C250则提供对总线的差动发送能力和对CAN控制器的差动接收能力。
以太网控制器协议转换模块主要由微控制器SX52、以太网通信控制器RTL8019AS和隔离滤波器FB2002组成。RTL8019AS是台湾Realtek公司制造的一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。在网关设计中,使用跳线模式(JP置为高)硬配置RTL8019AS为8位模式。使用RTL8019的低5位地址线A0~A4以及低8位数据线D0~D7。SX52的B口的B0~B4脚作为地址线连接RTL8019AS的低5位地址线,B5~B7作为控制线分别连接读写时序控制脚IORB、IOWB、IOCHRDY;C口作为数据线连接RTL8019AS的低8位数据线;A口保留,用作日后扩展。图3中
AT24C64为8KBEEPROM,主要用来保存嵌入式透明SX-52网关的配置信息,如网关IP地址、MAC地址和SJA1000的ID网络标示符、网络掩码AMR和总线定时(BTR0、BTR1)等。这样,可以灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。
RTL8019AS除与SX52连接外,还将其网络收发器的4根引脚TPOUT+、TPOUT-、TPIN+、TPIN-通过外接的隔离滤波器FB2002与以太网相连。采用隔离滤波器FB2002是为了提高网络通信的抗干扰能力。
3软件设计
整个互联系统的软件设计可以分为三部分:CAN总线设备接口通信程序、透明网关协议转换程序和以太网层应用程序设计。其中,CAN总线设备接口通信程序和透明网关协议转换程序的CAN控制器协议模块在结构上有较大的相似性,但有可能因采用微控制器不同而导致实现的程序语言相异。因而,在此不作论述,而主要讨论后两个方面的程序设计。
3.1透明网关协议转换程序
透明网关协议转换程序的整体设计思路为:当以太网应用层有数据要发送到CAN节点时,首先,数据发送到透明网关由以太网控制器协议转换模块从传输层数据报文中解析出完整的CAN协议数据包,存放在数据缓冲区A?再通知总调度模块,由它调用CAN控制器协议模块将CAN协议数据包发送到CAN总线上。反过来,当CAN设备有数据要发送到用户层时,首先,数据发送到透明网关由CAN控制器协议模块将完整的CAN协议数据包存放在数据缓冲区B?再通知总调度模块,由它调用以太网控制器协议转换模块将完整的CAN协议数据包作为应用层数据封装起来,再发送到以太网的应用层。其程序结构如图4所示。
3.1.1CAN控制器协议模块
CAN控制器协议转换模块程序主要由SJA1000的寄存器读程序CANRead、写程序CANWrite()、初始化程序CANInit()、发送程序txdsub()、接收程序rxdsub()程序组成。之所以要编写单独的SJA1000的寄存器读、写子程序,这是由SX52芯片只有I/O端口决定的。
选用CAN2.0A协议构建CAN总线控制网络,对SJA1000的初始化主要完成控制寄存器CR、验收代码寄存器ACR、验收屏蔽寄存器AMR、总线定时寄存器BTR0,1和输出控制寄存器OCR的设置。初始化完成后,由总调度模块监控SJA1000控制器。当CAN总线上有数据到达时,它调用接收子程序rxdsub(),把这一帧数据包存入数据缓冲区B中,然后释放接收缓冲器。同样,当有按CAN2.0A协议格式组合成的一帧数据报文在数据缓冲区A中要发送到CAN总线上去时,总调度模块将调CAN发送子程序txdsub()发送。
3.1.2以太网控制器协议转换模块
以太网控制器协议转换模块主要负责从UDP数据包中解析出完整CAN协议报文,存入数据缓冲区A。同时,可能将数据缓冲区B中的完整CAN协议报文封装成UDP数据报,然后将其发送到以太网上。
在通信传输层采用UDP协议是考虑到CAN协议数据报为短帧形式(每个数据帧最多为8字节)。如果采用TCP传输协议,要传输8字节CAN协议数据,要先通过3次握手建立连接,再传输数据,之后还要通过握手释放连接。这样传输效率对有限的网络资源来说无疑是一种浪费。而UDP是无连接的传输,可以提高网络传输效率,同时,也减轻网关的处理任务。当然,UDP传输协议是不可靠的,对于控制网络来说,是不允许的。为了提高通信的可靠性,采用了回传校验机制。通过实验测试表明这种方式是行之有效的。
以太网控制器协议转换模块主要由以太网卡驱动、ARP、UDP协议的若干个API函数组成,如NICInit()、NICDMAInit()、NICInitTxFrame()、NICSendTxFrame()、NICReadAgain()、ARPCheckIfIs()、ARPSendResponse()、ARPSendStPacket()、ICMPProcPktIn()、UDPAppInit()、IPGenCheckSum()、、UDPAppProcPktIn()、UDPStartPktOut()和UDPEndPktOut()等。所使用的变量有:remoteIP[3:0]、myIP[3:0]、UDPRxSrcPortMSB、UDPRxSrcPortLSB、UDPRxDataLenMSB、UDPRxDataLenLSB、UDPTxSrcPortMSB,UDPTxSrcPortLSB、UDPTxDestPortMSB、UDPTxDestPortLSB、DPTxDataLenMSB,UDPTxDataLenLSB等。
系统首次执行或复位时,以太网控制器协议转换模块将首先调用NICInit和UDPAppInit()等进行NIC、ARP、IP、UDP和应用程序的初始化。初始化完成后,即进入主循环。在主循环中,SX52将反复检测RTL8019AS是否接收以太网帧。当有数据被接收时,SX52调用NICDMAInit()和NICReadAgain()读入以太网帧首部?再调用ARPCheckIfIs()判断接收帧是否为ARP数据。若是ARP,则转入ARPSendResponse()和ARPSendStPacket()子程序进行ARP处理并发送响应ARP数据报;若不是ARP,则判断是否为IP数据报。若非IP数据报则清除该以太网帧;当所接收帧包含IP数据报时,则需进一步判断是ICMP数据报还是UDP数据报文。若是ICMP数据报则执行ICMPProcPktIn()子程序处理ICMP数据报并重发IP数据报;若数据为UDP数
据报文,则调用UDPProcPktIn()子程序。该程序将读入UDP数据报文首部的数据并进行相应处理,还原出完整的CAN协议数据报文存入数据缓冲区B中,再通知总调度程序,由总调度程序调用CAN总线控制子程序将CAN协议数据报文发往CAN总线。
反过来,当总调度程序通知以太网控制器协议转换模块将数据缓冲区B中准备好的CAN协议数据发送到以太网上时,它将调用NICInitTxFrame()、UDPStartPktOut()、IPGenCheckSum()、IPStartPktOut()、NICSendTxFrame()、UDPEndPktOut()等子函数进行发送处理,从而实现CAN总线到以太网的数据传输。
3.2以太网层应用程序设计
以太网上的通信协议一般采用TCP/IP协议。本文采用流行的SOCKET套接字编程,传输层协议选择UDP(用户数据报协议),通过VisualC++编写用户层程序。
WinSock提供了对UDP的支持,通过UDP协议可以向指定IP地址的透明网关发送CAN协议数据,同时也可以通过它接收CAN协议数据。发送和接收方处于相同的地位没有主次之分。利用CAsyncSocket类操纵无连接的数据发送较简单。首先生成一个本地套接口(需要指明SOCK_DGRAM标记);然后利用intCAsyncSocket??SendTo?constvoid?lpBuf?intnBufLen?UINTnHostPort?LPCTSTRlpszHostAddress=NULL?intnFlags=0?发送数据,intCAsyncSocket??ReceiveFrom?void?lpBuf?intnBufLen?CString&rSocketAddress?UINT&rSocketPort?intnFlags=0?接收数据。利用UDP协议可以使管理主机和SX52网关实现双向的数据通信。同时,这种传输方式也易于使数据SX52网关透明化。
本文介绍了一种低成本、高可靠性、快捷的CAN总线与以太网互连方案。该互连方案保证管理监控层与生产测控层之间的连接,方便了上下层信息交流,满足工厂、变电站等工业场合的应用要求。
CAN总线与以太网互连系统设计
摘要:介绍了一种基于单片机SX52的CAN与以太网互连方案,阐述了以太网和CAN总线网络协议转换的软硬件设计,实现了以太网与现有CAN总线网的直接连接。保证管理监控层(以太网)与生产测控层(CAN总线网)之间的连接,使得上下层数据能方便地通信。关键词:现场总线 CAN总线 以太网
在大型企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC机,而下层车间现场则采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡或并行打印口的EPP接口卡实现。这种连接方式成本高,开发周期长。针对这种情况,笔者设计一种单独的CAN以太网网关互连系统,成功地实现以太网与现有CAN总线网的.直接数据互联。
1 系统结构
系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关、以太网信息管理终端(如监控平台和网络数据库等),如图1所示。
CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层需通过数据网关。嵌入式透明SX52网关就是为此而设计的。
透明式网关在以太网应用层构建和解析完整的CAN协议数据包。CAN协议数据包作为TCP/IP网络应用层的数据进行传输,它对通信数据的具体实际意义不做任何解释。透明式网关由通信处理器、CAN总线控制器和以太网控制器三部分组成。其中SX52单片机为核心处理器,它实现了CAN控制网络与以太网之间的协议转换。以太网信息管理层的控制指令发送到嵌入式透明SX52网关,将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明SX52网关,再通过网关协议转换程序将CAN协议数据封装成TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。
以太网信息管理终端是一个根据用户的具体要求而设计的用户层应用软件。它可以是一个WIN32监控程序或网络数据库(记录CAN节点设备数据)软件等;甚至可能是CAN节点设备的服务器软件,为设备提供较复杂的数据处理工作。
[1] [2] [3] [4]
★ 汽车维修技术总结
★ 汽车维修技术论文
★ 技术与人文