EDN首页   博客首页

最新日志

发表于:2008-9-7 9:31:06
标签:CAN  电路  

2

转一张CAN系统电路图

网上无意中看到的一张图,不错,转来,先感谢作者!

点击看大图

系统分类: 通信网络   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(512)
发表于:2008-9-7 9:19:16
标签:Keil  礦ision3  

1

Keil的标题“礦ision3" 的改变

Keil的标题“礦ision3"

MDK 的标题显示成 “礦ision3",前面的这个不是u而是一个希腊字母“缪”,在中文显示中出现问题,半个汉字.

可以使用如下方法取消.

一: 光标问题
Keil uv3 中会出现光标定位不准的问题,对程序员来说是个很大的困扰
修改方法:打开Keil文件夹下的Tool.ini文件做如下修改
NAME="User", "w"
EMAIL="a"
ANSI=1 <--在这个地方添加这条语句
BOOK0="UV3\RELEASE_NOTES.HTM" ("uVision Release Notes",GEN)

二:在中文操作系统上keil的IDE界面标题栏和about对话框上的uVision会显示成“礦ision”,看起来很不舒服,用下面的方法就可以和“礦ision”说拜拜了!

1 用ultraedit打开uv3目录下的uv3.exe文件
2 在edit->replace中的find what栏中输入“B5 56 69 73 69 6F 6E”,这是“礦ision”的ascii码串
3 在edit->replace中的replace with栏中输入“75 56 69 73 69 6F 6E”,这是“uVision”的ascii码串
4 点replace all
5 保存推出,再打开uv3.exe看看吧

三:汉字问题
输入的汉字也总觉得看着不爽,查看后发现是设置问题,如下改变后,即美观:
Edit->Configuration->Color&Fonts->8051:Editor Asm Files(汇编语言编辑器,相应的选择其他项便可设置其他)-Text->点击font后的按钮,选择中文字体 (如仿宋)->ok,问题解决 .

系统分类: 软件开发   |    用户分类: 无分类    |    来源: 转贴

评论(0) | 阅读(229)
发表于:2008-8-29 19:08:41
标签:MSP430  CAN-BUS  

1

基于MSP430系列单片机的CAN总线接口转换卡设计

摘要:IT公司的MSP430系列单片机是一种超低功耗的混合信号控制器,具有丰富的片内外设,有极其广阔的应用范围。介绍基于MSP430系列单片机的RS232/RS485 CAN总线通信转换接口的设计与实现,重点讨论其硬件配置和软件功能,给出电气原理和软件流程。
关键词:MSP430;CAN总线;接口;转换卡;设计

1 引言
   
控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求。鉴于其极高的可靠性、独特的设计、高速率和传输距离较长等,特别适合于工业现场监控设备的互连。

2 系统简介
    CAN总线采用总线式网络拓扑结构,如图l所示。采用CAN总线特有的多主传送方式,各个分机根据需要有数据时才主动发送,无需主机不停的轮询,从而节省网络上的数据流量,提高传输效率。

    现有的监控设备大多采用的是RS一232或RS一485串行通信,为在此基础上组建CAN通信网络,笔者设计了一款便携式CAN总线接口转换卡,该转换卡可采用锂电池作为供电电源,功耗低、体积小、重量轻,可满足便携式需要。

3 系统硬件结构设计
   
德州仪器公司的MSP430系列单片机是一种超低功耗微控制器,电压范围为1.8V~3.6V。该处理器通过16位RISC系统、16位CPU、集成寄存器和常量发生器来获得最大代码效率。MSP430系列超低功耗微控制器是应用于工业控制、数字化电机控制、手持式仪表等设备中的理想微控制器。本设计选用MSP430F449型单片机,它具有丰富的片上模块:最多8路12位A/D转换器、48个I/O端口、2个UART看门狗、2个内置16位定时器、可在线仿真的Flash内存、7路PWM输出、LCD驱动等。

    便携式CAN总线接口转换卡的电气结构原理框图如图2所示,它由电源模块、CAN通信接口电路、串口电平转换电路、缓存和LCD模块组成。

3.1 CAN通信接口电路
   
系统硬件以Philips公司的SJA1000型CAN总线控制器为核心,它是一款独立的CAN总线控制器,主要用于工业环境中。它也是Philips半导体PCA82C200型CAN控制器(Basic CAN)的替代产品,经过简单总线连接的SJA1000可完成CAN总线的物理层和数据链路层的所有功能。SJA1000由CAN核心模块、发送缓冲区、接口FIFO、验收滤波器和接口管理逻辑组成。CAN核心模块主要负责CAN信息帧的收发和CAN协议的实现,接口管理逻辑负责SJA1000与主控制器的接口。在进行数据传输时,主控制器把标识符和数据送入发送缓冲区后请求发送,从而启动CAN核心模块读取发送缓存区中的数据,再按CAN协议封装成完整的CAN信息帧,通过收发器发往总线,发送缓存区的容量为13字节。验收滤波器单元对接收到的信息进行处理后送到接收FIFO中,接收FIFO为64字节。PCA82C250型CAN总线收发器是CAN控制器与物理总线之间的接口,它提供了CAN控制器向总线的差动发送、接收能力。该收发器依靠引脚8(RS)的不同连接可以选择3种不同的工作方式:高速、斜率控制和待机方式。通过RS引脚对地连接的电阻器可对总线进行斜率控制,斜率正比于引脚RS上的电流输出。对于传输速率要求较高的应用场合,通常将引脚8直接接地以选择高速方式。在此方式下,发送器输出晶体管简单地以尽可能快的速度启闭,不采取任何措施限制上升和下降斜率,因此必须采用屏蔽电缆以避免射频干扰。CAN控制器的发送和接收端口分别通过1个光电隔离电路与PCA82C250连接,有效地抑制了总线引入的干
扰。

3.2 串口电平转换模块
   
在本设计中,MSP430F449只用1个USART接口,而CAN转换卡集成了RS232、RS485 2个通信模块,设计中通过DIP开关选择接口类型。RS232和RS485串口电平转换模块分别选用Maxim公司的MAX3221和MAX3485。

3.3 电源模块
   
整个系统除由锂电池供电外,还可以用小型变压器等外部电源供电,以满足不同场合的需求。选用TPS7333作为MSP430F449的稳压电源输出3.3V的系统供电电压。为保证数据正常传输,电源电路中还配有bq24012型电池充电管理电路,以便在电池电量较低、可能会影响正常数据传输时及时报警,提醒更换电池或充电。

3.4 缓存和LCD模块
   
为了节省PC的工作时间,设计时用TMS44400型动态存储器扩展动态存储区间,传输数据时首先读取报头信息以决定是实时传输还是缓存操作。MSP430F449带有液晶驱动模块,设计中选用东显公司的EDS805型液晶显示模块,用它实时显示系统的状态特性、数据的传输速度、剩余时间等,它还可以进行电源欠压报警。

4 软件设计
    MSP430的内核结构采用具有高透明格式的精简指令(RSIC)设计。CAN信息的接收和发送一样,是由CAN控制器自动完成的,程序只需从相应的缓存器中读取相应的数据,再进行相应的处理即可。在此系统中,单片机完成初始化任务后进入低功耗睡眠状态,任一中断均可将其唤醒,转而执行相应的中断服务子程序。系统的2个中断源分别为PC串口发送和下位机CAN信息接收,这样做的好处是尽可能地避免由于数据超限而引起的数据重发。图3示出系统CAN初始化流程,图4示出发送中断服务程序流程。由于篇幅关系,本文略去接收中断服务程序流程,其流程大致与发送流程相反。

5 结束语
   
本文介绍了CAN总线通信接口转换卡的软硬件设计,期望给研究CAN总线应用的设计人员提供一些借鉴和帮助。所介绍的CAN总线通信接口转换卡的结构简单且抗干扰能力强,非常适用于构成中小型分布式测控网络。随着支持CAN协议的器件不断增多,CAN器件的价格会进一步降低,在自动化领域中的应用也会越来越广泛。

系统分类: 通信网络   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(236)
发表于:2008-8-29 18:56:26
标签:汽车  can总线  

2

汽车为什么选择了CAN总线技术?

围绕“汽车为什么选择了CAN总线技术?汽车CAN总线技术到底是怎么一回事?采用汽车CAN总线技术有哪些优点?汽车总线的发展趋势”等问题作了一个浅短的介绍:

1. 汽车为什么选择了CAN总线技术?

现在总线技术有很多种。从成本上讲,RS-232/485的成本都比CAN低;速度上讲,工业以太网等也都不错。为什么唯独CAN在汽车电子中得到亲睐?

从成本上来说,CAN比UART、RS-232/485高,但比以太网低;从实时性来说:CAN的实时性比UART和以太网高,为了保证安全,车用通信协议都是按周期性主动发送,不论是CAN还是LIN,对实时性要求高的消息其发送周期都小于10ms(每辆车都有好几条这样的消息),发动机、ABS和变速器都有几条这样的消息;从可靠性来说,CAN有一系列事故安全措施,这是UART和以太网都不具备的,多点冗余也是UART(点对点传输)和工业以太网(数据传输距离短)难于实现的,所以CAN出现后,由于价格的原因,最初应用得最多的地方并不是汽车,而是对成本不敏感的工业控制和医疗设备,如:工业上的DEVICENET、SDS、CANOPEN,医疗上MRI等。至于工业以太网的产生,其背景与个人PC的普及是分不开的,现在工业控制中的PCBASED就是一个例子,但汽车控制是不能用一台PC的,要达到汽车控制的要求,成本上也不容许。而LIN的传输过程只有20Kbps,显然不能作为独立的汽车总线控制要求,一般它只配合CAN在汽车上做辅助之用。

其次总线是一个系统,总线上的速度仅仅是系统中的一个因素,ElexRay虽然只有20MBPS但它在一个16BIT的MCU上都能跑起来,100MHZ以太网虽快,但一个32BIT的MCU很难达到20MBPS.况且还要涉及到系统的安全性,类似冗余,BUS安全等。所以综合考虑,汽车选择了CAN总线技术。

2. 汽车CAN总线技术到底是怎么一回事?

Can-Bus总线技术是“控制器局域网总线技术(Controller Area Network-BUS)”的简称,它具有极强的抗干扰和纠错能力,最早被用于飞机、坦克等武器电子系统的通讯联络上。

通过遍布车身的传感器,汽车的各种行驶数据会被发送到“总线”上,这些数据不会指定唯一的接收者,凡是需要这些数据的接收端都可以从“总线”上读取需要的信息。Can总线的传输数据非常快,可以达到每秒传输32bytes有效数据,这样可以有效保证数据的实效性和准确性。传统的轿车在机舱和车身内需要埋设大量线束以传递传感器采集的信号,而Can-Bus总线技术的应用可以大量减少车体内线束的数量,线束的减少则降低了故障发生的可能性。

Can-Bus技术在汽车的应用,可以减少了汽车车体内线束和控制器的接口数量,避免了过多线束存在的互相干涉、磨损等隐患,降低了汽车电气系统的故障发生率。各种传感器的信息可以实现共享。另外,在Can-Bus技术的帮助下,汽车的防盗性、安全性都得到了较大幅度提升。例如:在启动车辆时,确认钥匙合法性的信息会通过Can-Bus总线进行传递,其校验的信息比以往的防盗系统更为丰富。车钥匙、发动机控制器和防盗控制器互相存储对方信息,校验码中还掺杂了随即码,从而大幅提高防盗能力。校验信息通过Can-Bus传递大幅提高了信息传递的可靠性,使防盗系统的工作稳定可靠。就目前而言,Can-Bus总线技术一般使用在科技含量较高的中、高档轿车上。

3. 采用汽车CAN总线技术有哪些优点?

现代汽车中所使用的电子控制系统和通讯系统越来越多,如发动机电控系统、 自动变速器控制系统、防抱死制动系统(ABS)、自动巡航系统(ACC)和车载多媒体系统等;这些系统之间、系统和汽车的显示仪表之间、系统和汽车故障诊断系统之间均需要进行数据交换,如此巨大的数据交换量,如仍然采用传统数据交换的方法,即用导线进行点对点的连接的传输方式将是难以想象的,据粗略估计,如采用普通线索,一个中级轿车就需要线索插头300个左右,插针总数将达到2000个左右,线索总长超过1. 6Km,不但装配复杂而且故障率会很高。因此,用串行数据传输系统取而代之就成为必然的选择。

数据在串联总线上可以一个接一个的传送,所有参加CAN总线的分系统都可以通过其控制单元上的CAN总线接口进行数据的发送和接收,CAN总线是一个多路传输系统,当某一单元出现故障时不会影响其他单元的工作,CAN总线对不同数据的传输速率不一样,对发动机电控系统和ABS等实时控制用数据实施高速传输,对车身调节系统(如空调)的数据实施低速传输,其他如多媒体系统和诊断系统则为中速传输,速率在两者之间,这样的区分提高了总线的传输效率。

数据总线如何能实现多路传输的呢?原来数据总线有三部分组成:1)数据传输线,2)地址传输线,3)发送单元和接收单元之间的传送控制线。数据按CPU的指令以一定的模式传输到指定的地址,而传输模式则由软件控制的。这样,汽车总线与计算机中的“BUS”就很类似了,不难理解。

4. 汽车CAN总线的发展趋势

传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺点。为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。于是,传统CAN与时间触发机制相结合产生了TTCAN(Time-Triggered     CAN)。

TTCAN总线和传统CAN总线系统的区别是:总线上不同的信息定义了不同的时间槽(Timer Slot)。在同一时间槽内,总线上只能有一条信息传输,这样避免了总线仲裁,也保证了信息的实时性。TTCAN系统需要全局时间同步,但采用传统CAN控制器很难实现TTCAN,因此新推出的CAN控制器如Microchip的MCP2515就增加了与TTCAN相关的硬件资源,它们在软件配合下就能实现TTCAN。

系统分类: 汽车电子   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(419)
发表于:2008-8-29 18:54:33
标签:CAN  隔离  

1

关于CAN总线的隔离

   在实际的应用中,肯定是要对整个电路进行适当的隔离,所谓的隔离就是指让电路中的一些模块之间不互相干扰,因为对于数字电路而言,电平的高速转换会带来很多噪声,并且地线网络也会引入噪声,所以我们都要进行隔离。

    一般来说,一个隔离系统必须从3个方面来进行隔离

      1. 电源隔离     2. 地网络隔离    3 信号线隔离

    我们给大家提供的can总线板子为了节约成本和PCB面积的限制,没有加入隔离,但是从让大家学习can总线的角度来说,是完全够用的。大家在实际使用中,强烈建议加入隔离,这样,稳定性和可靠性都会加大。以下是我从网上搜到的一个原理图,大家可以对比一下和我们板子的异同,看看隔离如何加入。隔离用的是高速光耦6N137,它的datasheet在下面,大家可以下载看:

 

     点击看大图

系统分类: 通信网络   |    用户分类:    |    来源: 原创

评论(0) | 阅读(294)
发表于:2008-8-29 18:53:20
标签:无标签

0

基于DS80C410内嵌CAN总线食堂售饭系统的设计

关键词:ds80c410  can总线  食堂售饭系统  窗口机  
摘  要:介绍了一种基于DS80C410内嵌CAN总线网络的食堂售饭系统的设计,包括系统的网络结构和硬件设计。重点介绍了系统中窗口机的硬件、软件设计,并详细描述了DS80C410内嵌CAN模块的初始化过程和报文收发过程。

1.引言

    CAN总线(Controller Area Network Bus)是一种有效支持分布式控制的串行通信网络。它比一般的通信总线具有更高的可靠性、实时性和灵活性。CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而且不分主从,通信方式灵活,无需站地址等节点信息。CAN总线现已广泛应用于工业现场控制、小区安防、环境监控等众多领域中。
2.系统结构

    实时通信的食堂售饭系统的通信特点非常适合于采用CAN总线。它的短帧结构非常适合系统对抗干扰能力和实时通信能力要求较高,单次通信量很小的场合;灵活的组网特点完全可以解决大型食堂售饭系统中多个食堂和营业网点较分散的问题。

    基于CAN总线的食堂售饭系统网络结构如图1所示。采用总线型接法,主要包含三层:服务器、中继器和终端。其中服务器包括工作服务器和备用服务器,这两个服务器在营业时同时工作,互为备用,保证系统的稳定可靠。中继器可以延伸通信距离,增加终端数目,变换通信速率,并能起到滤波和隔离作用。终端主要是销售用的窗口机,还包括挂失机、解挂机、发卡/充值机等。 

食堂售饭系统网络结构图

图1 食堂售饭系统网络结构图

窗口机硬件结构框图

图2 窗口机硬件结构框图

3.窗口机硬件设计

    窗口机是直接与售饭人员和用户打交道的主要前台设备。图2为窗口机的硬件结构框图。采用Dallas内嵌CAN控制器的高速网络微控制器 DS80C410作为窗口机的微处理器,负责整个窗口机和键盘的监控。MMM为非接触式IC(Mifare)卡读/写器模块。该模块在微处理器的控制下,可完成对卡片的非接触式读/写等操作。窗口机的通信任务是DS80C410内嵌的CAN控制器在CPU控制下完成的,CAN控制器通过CAN总线收发器PCA82C250接收总线上的数据,供CPU读取,也可以将CPU送来的数据发送到CAN总线上。内嵌CAN控制器通过DS80C410芯片上的P5.1(C0RX-CAN接收)和P5.0(C0TX-CAN发送)脚分别与收发器的RXD(接收数据输出)和TXD(发送数据输入)脚相连。窗口机硬件还包括一个4×4键盘(10个数字键、6个功能键)、前后各10位数码显示(显示内容完全相同)、32KB的EEPROM(用来存储消费记录)、看门狗等部分电路。

4.窗口机软件设计

4.1主程序设计

    窗口机具有连网和脱网两种运行方式。窗口机的默认工作方式分为连网运行,只有在出现网络故障或其他原因无法连网运行时,才通过开关设定为脱网运行。图3为窗口机运行的主程序流程图。窗口机初始化后,先进行键盘处理,LED显示处理,并判断是否回收消费记录。然后查询是否读到卡,读到卡后,调用相应连网或脱网子程序,进行营业操作。 

窗口机主程序流程图

图3 窗口机主程序流程图

    4.1.1 CAN的初始化

    窗口机的初始化,包括对CAN模块的初始化。当系统硬件复位后,首先屏蔽CAN中断,然后将位于DS80C410的SFR(特殊功能寄存器)中的 C0C(CAN控制寄存器)中的CRST(复位) 位清0,即清除了CAN控制器的复位状态,同时 SWINT(软件初始化) 位要置 1,即禁止CAN 的总线活动,这样才允许程序对 CAN 模块中的控制寄存器和扩展帧的屏蔽寄存器(C0EGM0~C0EGM3)进行写操作,并设置通信波特率、窗口机ID、窗口机号、CAN状态、CAN口使能、CAN定时等参数, 初始化CAN模块。最后恢复CAN中断。初始化结束后,要清 SWINT位,恢复 CAN 总线的活动。

4.2子程序设计

    4.2.1工作流程

    在连网情况下,当窗口机通过MMM获取卡号后,将卡号发送给服务器,服务器收到卡号后,在数据库中查找对应卡号的用户余额并将其返回给窗口机。窗口机显示接收到的用户余额,当一次营业操作完成以后,窗口机将用户总消费额发送给服务器,服务器接收到消费额后进行相应数据库记录的更新,并将已接收消费额的确认帧(ACK)返回给窗口机。如果窗口机将读到的卡号(SNR)发送给服务器的过程中帧丢失,即窗口机没有收到服务器的余额帧,这时窗口机等待一个重发时间,仍未收到服务器的余额帧后,将重发先前的卡号。最多重发3次,当重发3次仍无法收到服务器的回应帧后,显示相应的提示信息。如果在结帐以后,窗口机发给服务器的用户消费额帧丢失,即服务器没有收到消费额帧,无法进行相应记录的更新,同样采取上述方法重发用户消费额。图4为连网子程序流程图。 

基于DS80C410内嵌CAN总线食堂售饭系统的设计

图4 连网子程序流程图

    脱网情况下,窗口机采用的是记帐的办法,将脱网状态下用户的卡号和消费记录全部存储在窗口机的EEPROM中,等系统恢复连网运行以后,服务器从各窗口机中回收存储的数据,进行服务器数据库的更新。由于脱网情况下窗口机不能和服务器进行实时通信,所以程序较简单,就不再给出流程图了。 

基于DS80C410内嵌CAN总线食堂售饭系统的设计

图5 发送子程序

基于DS80C410内嵌CAN总线食堂售饭系统的设计

图6接收子程序

    4.2.2 帧的发送和接收

    DS80C410中CAN模块提供了15个报文中心,作为发送或接收数据的存储器。帧的发送和接收通过这15个报文中心实现,也可以选择一个或若干个报文中心发送或接收帧。这15个报文中心发送或接收数据的优先级顺序是以报文中心的逆序排列的。报文中心1-14可设置为接收或发送数据,报文中心15只能接收数据。报文中心的控制寄存器(C0M1C~C0M15C)位于SFR中。每个报文中心有一个格式寄存器(C0MyF)、4个仲裁寄存器和8个字节(C0MyD0~C0MyD7)的数据区域。仲裁寄存器的值可以在初始化中设置,也可以在发送程序中设置,而且它的值可随着数据的接收而自动更改。另外,报文中心15的C015M0~C015M3寄存器,还可以执行附加的滤波。

    当网络中某一窗口机处于发送状态时,首先对使用的报文中心初始化,把要发送的报文装入报文中心,报文中心仲裁寄存器的值作为帧的标识符发送出去。图5为使用报文中心1发送数据的程序流程图,其中MSRDY(报文中心就绪),DTUP(数据更新),MTRQ(CPU发送请求)等位是报文中心1的控制寄存器C0M1C的位。

    当窗口机处于接收状态时,CAN控制器将根据屏蔽寄存器和接收报文中心的仲裁寄存器的值对接收帧的ID标识符进行判断,确定报文中心是否接收,只有当接收帧的标识符与仲裁寄存器的值相等的时候,帧才被接收;另外,CAN模块还有媒体屏蔽寄存器和媒体仲裁寄存器,可对接收的数据帧的第0和1两个字节进行额外的校验。图6是使用报文中心2接收数据的程序流程图。其中 MSRDY,DTUP,MTRQ等位是报文中心 2的控制寄存器 C0M2C的位。

5.结束语

    DS80C410是带有以太网和CAN的网络微控制器。包括一个10/100以太网MAC,三个全双工硬件串行口,8个双向8位端口,一个可选的CAN2.0B控制器,1-Wire?主机和64个I/O引脚及用于存储用户应用和网络堆栈的64K字节内部SRAM。内嵌CAN模块支持标准(11位)和扩展(29位)标识符和通用掩模,媒体字节过滤, DeviceNet?,SDS和高层CAN协议,自动波特率模式和SIESTA低功耗模式。基于DS80C410内嵌CAN总线的食堂售饭系统,不仅有良好的稳定性、安全性和可靠性,而且实时响应能力强,网络维护方便,用户界面友好、软件使用、升级和移植方便,成本低廉。

    本文创新点:DS80C410集成度较高,16MB连续存储空间,能够同时完成对窗口和键盘的监控。高达75MHz的系统时钟频率,使单周期指令仅54ns。内嵌CAN模块,使窗口机硬件结构更为简单,节省硬件资源。CAN模块的15个报文中心,使通信效率增强。对CAN模块操作与对单片机扩展外部程序/数据存贮器的操作是相同的,软件实现不复杂。

参考文献:

[1] Dallas/Maxim semiconductor. DS80C410/DS80C411 Network Microcontrollers with Ethernet and CAN, 2005.
[2] Dallas/Maxim semiconductor. High-Speed Microcontroller User’s Guide, 2004.
[3] Dallas/Maxim semiconductor. High-Speed Microcontroller User’s Guide: Network Microcon- troller Supplement, 2005.
[4] 饶运涛, 邹继军, 郑勇芸. 现场总线CAN原理与应用技术 [M]. 北京: 北京航空航天大学出版社, 2003.
[5] 任敏 赵跃华. 内嵌CAN总线在智能继路器中的应用 [J]. 电力自动化设备,2003, (11) :0060-03,P60~62.
[6] Dallas\Maxim集成产品公司. CAN总线及其集成解决方案 [J]. 今日电子,2003(5),P29~31.
[7] 邹继军,饶运涛,郑勇芸,冯林. CAN总线在食堂售饭系统中的应用[J]. 厦门大学学报(自然科学版),2001(8), 增刊1, 第40卷, P252~254.
[8] 邹继军,饶运涛. 食堂售饭系统窗口机设计[J]. 东华理工学院学报,2004(3),第27卷, P293~297.
[9] 田希晖,张玘,张连超,罗诗途.CAN总线及其应用技术[J].微计算机信息(测控自动化)2004,(10).

系统分类: 汽车电子   |    用户分类:    |    来源: 整理

评论(0) | 阅读(91)
发表于:2008-8-29 18:52:20
标签:CAN-BUS  

1

宝莱汽车CAN总线全剖析

宝莱车采用两条CAN总线,即驱动系统CAN总线和车身系统CAN总线,这两总线完全能够满足ISO的定义。驱动系统CAN总线,其通信速率为500kbps,被称为高速CAN,其连接对象为汽车动力和传动机构控制单元等。汽车发动机控制单元、自动变速器控制单元、ABS控制单元、安全气囊控制单元等。车身系统CAN总线,其通信速率为100kbps,被称为低速CAN或舒适系统CAN,其连接对象为中央控制器,4个门控制器等。此外宝莱车还有一个重要特征,便是在车身系统的CAN中引入了网络管理的概念。这对于事件触发性质的数据通信来说是非常合适的。

用于驱动系统的高速CAN和用于车身系统的低速CAN是两个相互独立的总线,但从资源共享的角度来看,它们之间最好有座连接桥梁,以使车身系统也能获得驱动系统的信息。当然,从传统思路来考虑,只要增加几根导线似乎就能解决问题。但从实际开发时,即在现有的控制器硬件上,要增加哪怕一个信号引出脚都将导致硬件的重新设计,往往成本和进度都不允许这么做。为了获得对方系统的信息,而又不涉及到硬件上的任何改动,宝莱车使用了网关?J533完成了此任务,宝莱车的网关是“寄生”在组合仪表内的。

宝莱汽车上典型的与驱动系统有关的控制单元有电控燃油喷射系统、自动变速器系统、防抱死制动系统(ABS)、安全气囊系统等。

由于每个控制单元对实时性的要求是因数据的更新速率和控制周期不同而不同的,为了满足各子系统的实时性要求,与对公共数据实行共享,如发动机转速、车轮转速、油门踏板位置等,如宝莱车的4缸汽油机运行在4000r/min,则电控单元控制两次喷射的时间间隔为6ms,其中喷射持续时间为30度的曲轴转角(1ms),在剩余的5ms内须完成转速测量、油量测量、A/D转换、工况计算、执行器的控制等一系列过程。这就意味着数据发送与接收必须在1ms内完成,才能达到汽油机电控的实时性要求。这就要求其数据交换网是基于优先权竞争的模式,且本身具有极高的通信速率,宝莱车采用了CAN总线正是为满足这些要求而设计的。

除驱动系统外,车身系统CAN也是一条主要的控制器局域网络。它的主要连接对象为:中央控制器,4个门控制器,还包括记忆模块和其他组件。车身系统的控制对象主要是4个门上的集控锁、车窗、行李箱锁、后视镜及车内顶灯。在具备遥控功能的情况下,还包括对遥控信号的接收处理和其他防盗系统的控制。

系统分类: 汽车电子   |    用户分类:    |    来源: 整理

评论(0) | 阅读(215)
发表于:2008-8-29 18:51:38
标签:CAN  TCP/IP  

1

TCP/IP总线与CAN总线优缺点对比

工业以太网和CAN现场总线比较

1. 工业以太网的优势及存在问题
(1)优势
基于TCP / IP的以太网是一种标准开放式的网络,由其组成的系统兼容性和互操作性好,资源共享能力强,可以很容易的实现将控制现场的数据与信息系统上的资源共享;数据的传输距离长、传输速率高;易与Internet连接,低成本、易组网,与计算机、服务器的接口十分方便,受到了广泛的技术支持。
(2)存在问题
以太网采用的是带有冲突检测的载波侦听多路访问协议(CSMA /CD) ,无法保证数据传输的实时性要求,是一种非确定性的网络系统; 安全可靠性问题,以太网采用超时重发机制,单点的故障容易扩散,造成整个网络系统的瘫痪;对工业环境的适应能力问题,目前工业以太网的鲁棒性和抗干扰能力等都是值得关注的问题,很难适应环境恶劣的工业现场;本质安全问题,在存在易燃、易爆、有毒等环境的工业现场必须要采用安全防爆技术;总线供电问题。在环境恶劣危险场合,总线供电具有十分重要的意义。
2. CAN现场总线的特点及局限性
(1)特点
CAN现场总线的数据通信具有突出的可靠性、实时性和灵活性。主要表现在CAN为多主方式工作; CAN总线的节点分成不同的优先级;采用非破坏仲裁技术;报文采用短帧结构,数据出错率极低;节点在错误严重的情况下可自动关闭输出。
(2)局限性
CAN现场总线作为一种面向工业底层控制的通信网络,其局限性也是显而易见的。首先,它不能与Internet互连,不能实现远程信息共享。其次,它不易与上位控制机直接接口,现有的CAN接口卡与以太网网卡相比大都价格昂贵。还有, CAN现场总线无论是其通信距离还是通信速率都无法和以太网相比。
3. 工业以太网和CAN现场总线的网络协议规范比较
工业以太网和CAN现场总线的网络协议规范都遵循ISO /OSI参考模型的基本层次结构。工业以太网采用IEEE802参考模型,相当于OSI模型的最低两层,即物理层和数据链路层,其中数据链路层包含介质访问控制子层(MAC)和逻辑链路控制子层(LLC) 。CAN现场总线的ISO /OSI参考模型也是分为两层,并与工业以太网的分层结构完全相同,但是二者在各层的物理实现及通信机理上却有很大的差别。工业以太网和CAN现场总线的各层在具体网络协议实现上的分析比较如下表所示。

表  工业以太网和 CAN现场总线的网络协议分析比较

   

工业以太网

CAN现场总线



传输介质 TP5类线、屏蔽双绞线、同轴电缆、光纤、无线传输等 屏蔽双绞线、同轴电缆、光纤、无线传输等
编码 同步 NRZ、曼彻斯特编码 异步 NRZ
插件 RJ45、AUI、BNC 各种防护等级的工业级插件
总线供电和本质安全
传输速率 10M、100M等 5 kbps~1Mbps




介质访问控制子层 介质访问方式采用 CSMA/CD (载波监听多路访问/冲突检测),工业以太网很难满足工业网络通信的实时性和确定性的要求,在网络负载很重的情况下可能出现网络瘫痪的情况。 负责报文分帧、仲裁、应答、错误检测和标定。采用非破坏总线仲裁技术及短帧传送数据,能够满足工业控制的实时性和确定性的要求,而且在网络负载很重的情况下也不会出现网络瘫痪的情况。
逻辑链路控制子层 组帧、处理传输差错、调整帧流速。 报文滤波、过载通知及恢复管理。

系统分类: 通信网络   |    用户分类:    |    来源: 整理

评论(1) | 阅读(197)
发表于:2008-8-29 18:36:59
标签:can-bus  

1

CAN总线与RS-485总线的通信接口设计

1  CAN总线及RS-485总线简介

  CAN总线(Controller Area Network)是由德国Bosch公司于20世纪80年代专门为汽车电子控制系统开发的一种串行数据通信协议,特别适合应用于分布式控制或实时控制领域。它的应用范围遍及高速网络和低成本的分布式控制系统。CAN具有以下特点:

  (1) 无破坏的依据优先权的仲裁;

  (2) 多主站点依据优先级进行总线访问;

  (3) 严格的错误检测和界定;

  (4) 支持远程数据请求;

  (5) 借助接收滤波的多地址帧传送;

  (6) 通信介质多样,组合方式灵活;

  (7) 全系统数据兼容,系统灵活;

  (8) 最远传输距离为10Km(总线传输速率为5kbps), 最大传输速率为1Mbps(总线传输距离为40m)。

  RS-485标准是美国EIA(电子工业联合会)公布的串行通信协议。它比RS-232C标准信号传输距离长、速度快、抗干扰性能好,广泛应用于各种工业、楼宇、能源等领域。在实际应用中,许多工业控制设备(如PLC)都带有RS-485接口。因此,有必要设计CAN总线与RS-485总线的通信接口电路。

  2  硬件设计

  整个通信接口电路由单片机AT89C52、CAN控制器SJA1000、CAN收发器82C250、高速光电耦合器6N137和RS-485收发器MAX485组成。如图1所示。单片机AT89C52主要完成SJA1000的初始化,及CAN总线 和RS-485总线之间的数据通信任务。SJA1000是CAN控制器82C200的替代产品。它主要由下列功能模块构成:接口管理逻辑、发送缓冲器、接收缓冲器、接收过滤器、位流处理器、位时序逻辑和错误管理逻辑。除了与82C200兼容之外,它增加了许多新功能:PeliCAN工作模式、读/写访问的错误计数器、标准和扩展结构信息的接收和发送、可编程的错误限制报警、只听模式和仲裁丢失中断。单片机对SJA1000内部寄存器的控制是以访问外部寄存器的方式进行的。CAN收发器82C250是CAN总线控制器和物理总线之间的接口,主要负责提供对总线的差分发送能力和对CAN控制器的差分接收能力。它的引脚8(RS)控制3种不同的工作方式的选择:待机、斜率控制和高速。

  (1) 给RS接上高电平,则82C250以低电流待机方式工作;

  (2) 若RS通过连接电阻接地,则进入斜率控制方式,该方式可以通过改变电阻的阻值来调节斜率,适用于低速和较短的总线长度的应用场合;

  (3) 如果RS接地,就选择了高速工作方式。高速光电耦合器6N137实现了CAN控制器和收发器之间的电气隔离,增强了系统的稳定性和抗干扰能力。RS-485收发器MAX485是一种差分平衡型的小功率收发器,包含一个驱动器和一个接收器,使用单+5V电源供电,专门用于TTL协议(即通用于各型CPU的通信协议)和485标准之间的相互转换,使微控制器可以利用RS-485串行通信协议直接进行串行通信。

  整个转换过程可分为:CAN总线转换到RS-485总线和RS-485总线转换到CAN总线。CAN总线转换到RS-485总线的流程如下:微控制器接收到CAN总线节点发送的报文,根据CAN总线规定的数据格式取出报文的有用信息,然后由微控制器通过MAX485将信息发送到RS-485总线。而RS-485总线转换到CAN总线则是上述流程的逆过程。

  3  软件设计

  软件设计的主要任务是实现数据和控制命令在CAN总线网络和RS-485总线之间的传输。它主要包括RS-485和CAN接口的初始化程序、报文发送和接收程序、中断服务程序和错误处理程序等。其中,SJA1000的初始化程序是软件设计中的难点,需要完成各种工作参数的设置。其中,控制寄存器用来改变CAN控制器的行为,包括进入复位状态,激活不同类型的中断源,如接收中断、发送中断和数据溢出中断等。验收代码寄存器和验收屏蔽寄存器共同作用定义了能被节点所接收报文的条件:所收信息的标识符的相应位与验收代码寄存器验收码的相应位相等。 验收屏蔽寄存器的作用是确定验收码的哪些位对于验收滤波是相关的或不相关的。总线时序寄存器0定义了波特率的预设值及同步跳转宽度;总线时序寄存器1则定义了位周期的长度、采样点的位置和采样数目。输出控制寄存器可以设置不同的输出模式(如正常输出模式、双相输出模式和时钟输出模式等)。时钟分频寄存器不仅可以控制SJA1000的输出频率及屏蔽CLKOUT引脚,而且还能够对Basic CAN和Peli CAN模式进行选择。具体的SJA1000初始化程序流程如图2所示。

  CAN总线转换到RS-485总线的程序如下:

  CAN-RS485_TRANSITION:

  MOV DPTR, #SR; 状态寄存器

  MOVX A, @DPTR;

  JNB ACC.0, CAN_QUIT;

  是否接收到信息,无数据则退出转换程序

CAN-RS485_HANDLE:

  MOV DPTR, #CANR ;接收缓冲区首地址

  MOVX A , @DPTR   ;接收帧的格式

  JNB ACC.6 , RECEIVE _ FRAME

  ;RTR=1则报文是远程请求帧

  LCALL TRANSMIT_ DATA 

  ;发送对方请求的数据

  LJMP  CAN_QUIT  ;退出转换程序

  RECEIVE_ FRAME: MOVX A, @DPTR;

  ANL A, #0FH;

  ADD A, #05H

  ;获得接收数据的长度

  MOV R7, A

  MOV R0,#43H

  ;设定MCU接收数据缓冲区

  DATAFRAME:  MOVX A, @DPTR

  ;接收数据

  MOV @R0, A  

  LCALL  RS485_SEND ;将有效信息通过MAX485转发到RS-485总线    

  INC DPTR

  INC R0

  DJNZ R7, DATAFRAME ;判断接收是否结束

  RECOUT:      MOV DPTR, #CMR

  MOV A, #04H

  ;释放接收缓冲区

  MOVX @DPTR, A

  CAN_QUIT:  RET ;退出转换程序

  4  结束语

  CAN总线是当前应用最为广泛的现场总线之一,而RS-485总线则是常用的串行总线,两者之间的相互转换具有很高的实用价值。本文设计的CAN-RS485通信接口电路能够很好地解决这两种串行数据总线之间的相互转换问题,并已成功应用于某地区的智能交通控制系统。

系统分类: 接口电路   |    用户分类:    |    来源: 整理

评论(3) | 阅读(243)
2345678910下一页总共 , 当前 /