一种基于CAN总线的DSP程序加载技术

| 收藏本文 下载本文 作者:赵小旋

以下是小编收集整理的一种基于CAN总线的DSP程序加载技术(共含8篇),仅供参考,欢迎大家阅读。同时,但愿您也能像本文投稿人“赵小旋”一样,积极向本站投稿分享好文章。

一种基于CAN总线的DSP程序加载技术

篇1:一种基于CAN总线的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并行口的读写操作主要由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芯片的系统的程序加载,并方便地对它们进行调试,使这些系统能根据不同的需要执行不同的程序,取得了很好的效果。目前上海引进的磁悬浮列车也采用了此项在线调试技术。

篇2:一种基于CAN总线的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]

篇3:完整Android CAN总线程序开发

最近在研究一块TI公司的TMDEVM-AM3358开发板,这是一款硬件资源相当丰富并且性能非常好的工业评估板,我重点需要用到板上的网卡、串口以及CAN总线,众所周知,在android这样一款风靡全球的移动端操作系统内部,对于网卡的支持已经伴随这一系统本身的发展而相当完善。然而,串口线已经逐步淡出我们的视野,但是由于简单易用,在很多时刻依然派得上用场。其中最少见的应该就是CAN总线了,所以在调试CAN模块之中遇到了很多的问题。遗憾的是,似乎就连谷歌上也很难找到关于AM335x系列的ARM开发板CAN开发的介绍,这里就将我这段时间以来在CAN上所做的工作和遇到的问题总结一下。方便有需要的人少走弯路。

关于CAN的介绍,官方给出了一份文档,点击下载。经过了好几遍的通读之后,对他的基本步骤及意图有了一些了解,但是有一点让我感到疑惑——所有的步骤都是在PC上完成的,但是最后的使用是在ARM上,我并没有看到哪一步对ARM板进行了操作,那么最后如何实现呢?要了解这个问题,首先简单看看文档的操作步骤。

首先我们需要将ARM板上的CAN模块启动,调节SW8,将profile设置为1。SW8在显示屏接线的下方,如下图所示:

ARM开发板运行linux系统并且不修改canutil工具源码

如果你的ARM是运行的linux系统,那么恭喜你,TI的linux源码中已经集成了CANUTIL工具,可以直接使用。但是默认CAN驱动好像是未打开的,例如:在ARM终端

root@am335x-evm:~# canconfig can0 bitrate 50000 Cannot find device can0 failed to set bitrate of can0 to 50000

提示找不到can0设备,说明内核中未加入CAN驱动,那么我们需要配置驱动,方法如下:

在内核根目录输入

gedit Makefile

找到如下片段:

export KBUILD_BUILDHOST :=(SUBARCH)ARCH?=(SUBARCH)

CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:”%”=%)

修改为:

export KBUILD_BUILDHOST := $(SUBARCH)

ARCH ?= arm

CROSS_COMPILE ?= arm-eabi-

此步骤目的是使当前内核编译模式为ARM平台。

接下来输入:

make menuconfig

按照图示步骤依次选择:

1. [*] Networking support —>

2. <*> CAN bus subsystem support —>

3. CAN Device Drivers —>

4. <*> Bosch D_CAN devices —>

注意把这里的D_CAN打上星号。

5. Generic Platform. Bus based D_CAN driver

同样将这一项打上星号。

好了,驱动配置完毕,下面执行Make指令,随后将生成好的内核镜像制作到SD卡中,重新启动开发板,那么CAN0设备就可以使用了。

可以尝试通过以下指令进行配置和收发:

1. 配置can0波特率为50000 ,开启三采样模式vcD4NCjxwcmUgY2xhc3M9”brush:java;“>canconfig can0 bitrate 50000 ctrlmode triple-sampling on打开can0设备

canconfig can0 start

发送数据

cansend can0 -i 0x10 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88

接收数据

candump can0

ARM开发板运行android系统或者要重新编译canutil工具

如果你是用的android或者你想对CAN工具进行修改重新编译,那么还需要继续下面的步骤。

首先同样需要在内核中配置CAN驱动,并将Profile Selection设置成1,方法同上。

然后下载源码,官方说明中是需要下载三种源码(点击可下载):

- iproute2

- libsocket

- canutil

但是这里我只需要用到最后一个canutil即可,

下载完成之后,首先配置环境变量,如下:

export GNUEABI=arm-arago-linux-gnueabiexport CC=$GNUEABI-gccexport LD=$GNUEABI-ldexport NM=$GNUEABI-nmexport AR=$GNUEABI-arexport RANLIB=$GNUEABI-ranlibexport CXX=$GNUEABI-c++export PREFIX=$FILESYS_PATH/usrexport CROSS_COMPILE_PREFIX=$PREFIXexport PATH=$TOOL_CHAIN_PATH/bin:$PATHexport LIBSOCKETCAN_INSTALL_DIR=$LIBSOCKETCAN_PATH/installexport PKG_CONFIG_PATH=$LIBSOCKETCAN_PATH/configexport LD_LIBRARY_PATH=${LIBDIR}:${LD_LIBRARY_PATH}export LD_RAN_PATH=${LIBDIR}:${LD_RAN_PATH}export LDFLAGS=-Wl,--rpath -Wl,$LIBSOCKETCAN_INSTALL_DIR/libexport INCLUDES=-I$LIBSOCKETCAN_INSTALL_DIR/include

其中PREFIX 是目标目录,可以自行设置。

然后进入canutils-4.0.6文件夹,输入以下指令:

./configure --host=arm-arago-linux --prefix=$PREFIX --enable-debug

之后会根据目标平台生成相应的Makefile。接着依次执行:

make

make install

完毕之后,会在PREFIX/usr/bin下找到如下四个文件:

cansend , candump , cansequence , canecho

PREFIX/usr/sbin下找到如下一个文件:

canconfig

将这几个文件复制到android系统的/system/bin目录下(需要root权限)。这样我们就可以执行这5个命令了。

但这时候如果直接执行,可能会出现如下错误:

root@android:/ # cansend/system/bin/sh: cansend: No such file or directory

这说明cansend这个应用程序是动态编译的,本地缺少需要的库文件。可以在PC上通过命令readelf查看需要的库文件。

root@MC:~/android/can/usr/bin# readelf -l cansendElf file type is EXEC (Executable file)Entry point 0x8679There are 8 program headers, starting at offset 52Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align EXIDX 0x001074 0x00009074 0x00009074 0x00008 0x00008 R 0x4 PHDR 0x000034 0x00008034 0x00008034 0x00100 0x00100 R E 0x4 INTERP 0x000134 0x00008134 0x00008134 0x00019 0x00019 R 0x1[Requesting program interpreter: /lib/ld-linux-armhf.so.3] LOAD 0x000000 0x00008000 0x00008000 0x01080 0x01080 R E 0x8000 LOAD 0x001080 0x00011080 0x00011080 0x00158 0x00170 RW 0x8000 DYNAMIC 0x00108c 0x0001108c 0x0001108c 0x000e8 0x000e8 RW 0x4 NOTE 0x000150 0x00008150 0x00008150 0x00044 0x00044 R 0x4 GNU_STACK0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4

看到最中间显示的一句话:

[Requesting program interpreter: /lib/ld-linux-armhf.so.3]

这里需要ld-linux-armhf.so.3库文件才能使用cansend命令。这里也是android和linux在文件系统上的一个差异,android系统无法直接运行由交叉编译器动态编译出来的应用程序。这里可以参考我的另一篇博客——

Android系统如何运行动态编译的程序 。将ARM-linux系统中的库文件复制到android系统的/lib目录下即可。

这时候,我们可以利用canconfig来配置can设备,也可以通过cansend、cansequence来发送数据,通过candump来接收数据,具体指令集可以参考官方文档。

以上就是这段时间以来对AM335x开发板can模块的调试过程,还是花了不少功夫的,主要原因是资料太少,除了文档就没有找到关于这套开发板的android CAN的介绍。如果大家还有什么问题,可以留言,大家一起探讨。

篇4:CAN总线控制器与DSP的接口

摘要:讨论了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操作(等待周期时序从略)。

篇5:CAN总线控制器与DSP的接口

从以上分析可分看到,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/WALEWERD100X10011100000000010011001010

3.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

篇6:汽车CAN总线与电线束技术

汽车CAN总线与电线束技术

1 汽车CAN总线 20世纪90年代以来,汽车上由电子控制单元指挥的部件数量越来越多,例如电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电控门窗装置、主动悬架等等.

作 者:肖艳 Xiao Yan  作者单位: 刊 名:城市公共交通 英文刊名:URBAN PUBLIC TRANSPORT 年,卷(期): ”“(2) 分类号: 关键词: 

篇7:一种基于CAN总线的温度控制系统设计论文

一种基于CAN总线的温度控制系统设计论文

摘要:

根据温度控制系统的需要,本文设计了一种基于CAN总线的温度控制系统,该系统观测节点采用80C552单片机作为主控制器,控制并处理采集到的温度数据,并通过CAN控制器SJA1000将数据送至上位机。该系统结构简单、可靠性高,便于扩展及维护。

关键词:CAN总线80C552SJA1000温度控制系统

温度是工业对象中主要的被控参数之一,随着微机和电子技术的飞速发展,微机测控技术在温度测量与控制中广泛使用,该控制简单方便,测量精度高,测量范围广。

由于CAN总线广泛应用于从高速网络到低成本的多线路网络,实现控制系统中的各检测和执行机构之间的数据通信。所以本文设计了一种基于CAN总线的温度测量和控制装置,能够对加热炉中的温度进行测量,并根据温度设定值给出的调节量,驱动控制电路,对炉温进行控制。

1、系统总体结构。

基于CAN总线的温度控制系统总体结构如图1所示。在该系统中,被控对象是加热炉,被控参数是加热炉内的炉温,该系统主要由上位机和各个CAN总线智能测控节点组成,上位机主要采用传统的PC机,并通过CAN总线智能适配卡PCCAN与分布在CAN总线上的各个智能测控节点进行通信,并接受下位机采集的数据,下位机主要是采集各个测控节点观测加热炉内的温度参数。

2、CAN总线智能测控节点硬件结构。

下位机的CAN总线智能观测节点在系统中主要作用是对现场温度数据进行采集和控制以及与CAN总线进行通信。

下位机CAN智能观测节点采用Philips公司生产的80C51系列单片机80C552作为主控制器,该控制器以80C51为内核,指令系统与MCS―51系列单片机完全兼容。使用80C552控制器进行设计,可以简化硬件装置,从而使系统的稳定性和可靠性显着提高。通信接口部分采用Philips公司生产的CAN通信控制器SJA1000和CAN总线驱动器PCA82C250,实现与CAN总线的数据通信。

3、CAN通信接口硬件电路设计。

CAN总线控制器SJA1000由微控制器80C552通过P0口的8位地址数据复用总线和读写控制信号进行控制。SJA1000的中断请求信号INT接80C552的外部中断输入INT0,CAN总线控制器可以通过中断方式与微控制器进行数据传输。

SJA1000的片选信号CS由微控制器80C552的P2。1提供,在访问SJA1000时,只要P2。1引脚输出低电平即可。SJA1000的Tx0和Rx0与82C250的TxD和RxD相连,82C250的'CANH和CANL引脚各自提供一个5Ω电阻与CAN总线相连,起限流电阻作用,保护82C250免受过流冲击。另外两根CAN总线输入端和地之间分别接一个防雷二极管,CAN总线两端接有120Ω电阻,起匹配总线阻抗,提高数据通信的抗干扰性和可靠性。

4、系统软件设计。

系统软件设计包括智能测控节点软件设计和测控节点与上位机通信设计两部分。

(1)智能测控节点的软件设计。

测控节点软件设计包括三大部分:80C552单片机与CAN总线初始化、温度数据采集与处理及数据的发送与接收。设计中采用模块化设计思路。

80C552单片机初始化包括I/O口初始化、A/D转换初始化和为传感器接口分配合适的存储单元,SJA1000初始化包括主要是设置CAN的通信参数:波特率、发送通道、接收通道、标识符码等信息。

初始化结束之后,80C552单片机开始启动数据采集通道,调用A/D转换子程序及数据采集与处理子程序,数据经过处理后单片机将数据送至数据存储区,同时送往LCD进行显示,当单片机接收到上位机要求发送数据请求时,启动发送子程序,将数据传送至上位机。

(2)上位机与智能测控节点的通信设计。

上位机与80C552单片机之间的通信设计主要有:通信协议的设定、SJA1000初始化及报文的发送与接收,SJA1000初始化已经在80C552单片机初始化阶段完成,根据所设计的温度控制系统需要,报文格式采用标准帧格式。

发送子程序过程如下:发送子程序将数据存储区待发送的数据取出,加上标识符等信息,组成信息帧,待发送缓冲区数据清空后,将信息帧发送至SJA1000的发送缓冲区。在接收到上位机发送的控制命令后,启动发送子程序,将信息数据发送出去。

相反,接收过程如下:信息从CAN总线送至SJA1000的接收缓冲区,接收程序从接收缓冲区读取信息,并将其存入数据缓冲区,接收方式采用中断接收。

5、结语。

本文主要介绍了一种基于CAN总线的温度控制系统,重点介绍了系统总体设计方案及CAN总线通信系统,采集的温度数据通过CAN总线传送至上位机,方便后期的数据分析,上位机通过软件查询方式,可以实现CAN总线接口的即插即用,使多个温度测控节点构成一个完整的控制系统,降低了成本,同时方便于后期性能的扩展和系统维护。

参考文献:

[1] 江志红。51单片机技术与应用系统开发案例精选[M]。北京:清华大学出版社,:355―378。

[2] 邬宽明。CAN总线原理和应用系统设计。北京:北京航空航天大学出版社,.20―34。

[3] 叶小岭,杨大红,周金兰。基于CAN总线的自动气象观测系统设计[J]。自动化与仪表,2009,24(9):19―21,49。

篇8:基于CAN总线和虚拟仪器技术的汽车CAN节点测试仪设计

基于CAN总线和虚拟仪器技术的汽车CAN节点测试仪设计

引言 Controller Area Network(控制器局域网,缩写为CAN),是为解决汽车电子控制单元间的信息通信而由德国Bosch公司提出的一种总线标准,以其卓越的性能、极高的'可靠性和低廉的价格,现在已经在汽车领域获得广泛应用.

作 者:侯冬冬 于良杰 马建辉  作者单位:山东省科学院自动化研究所 刊 名:世界电子元器件 英文刊名:GLOBAL ELECTRONICS CHINA 年,卷(期):2008 ”"(4) 分类号: 关键词: 

汽车CAN总线与电线束技术

自启动程序的加载方式

一种基于组态技术实现的通用自动测试系统

一种基于配电网的跨变压器台区电力通信技术

一种基于CAN总线的DSP程序加载技术(精选8篇)

欢迎下载DOC格式的一种基于CAN总线的DSP程序加载技术,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式

相关文章

热门推荐

HOT

猜你喜欢

NEW
点击下载本文文档