基于C8051F040的CAN总线技术的多节点通信网络设计

发布者:reaper2009最新更新时间:2015-01-19 来源: e-works关键字:C8051F040  TJA1040  CAN控制器  USB-CAN 手机看文章 扫描二维码
随时随地手机看文章

引言

    CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。传统的CAN总线实现方式是将单片机与总线控制器和总线收发器连接后接入总线作为一个节点,这种方式外部电路要求较多,器件之间会造成不必要的干扰,因此提出一种方法利用内部集成CAN控制器的C8051F040单片机作为CAN节点的处理器。利用这个节点控制器控制其他节点上的传感器,同时为了方便利用Pc机实时监测总线数据,设计了USB-CAN转换模块,利用上位机软件使PC机与总线能进行实时通信。

1 多点通信网络的总体设计

    CAN总线总体结构图如图1所示,由Pc机、USB—CAN转换模块、多个节点和CAN总线介质组成,节点中包含传感器、C805l F040、光耦隔离部分和CAN驱动器。

    现场仪表中的传感器采集到现场设备的工作状态,通过C8051F040进行A/D转化为数字量,然后将这些数据通过单片机内部的CAN控制器和外部的TJA1040总线收发器接入CAN总线,在总线上的一个节点上安装有USB.CAN转换模块,通过USB-CAN模块实现CAN与Pc机的通信,通过编写上位机控制软件来在Pc机E实时显示各CAN节点的数据且能通过上位机软件向各CAN节点发送和接收数据。

2 多点通信网络的硬件设计

    C8051F040系列器件是完全集成的混合信号片上系统型MCU,其内部具有64个数字VO引脚,具有与8051兼容的高速CIP一51内核,与MCS一51指令集完全兼容,片内集成了数据采集和控制系统中常用的模拟、数字外设及其他功能部件。具有片内VDD监视器、看门狗定时器和时钟振荡器的这一系列器件,是真正能独立工作的片上系统。所有模拟和数字外设均可由用户固件使彩禁止和配置。内置FLASH程序存储器、内部RAM,大部分器件内部还有位于外部数据存储器空间的RAM,即XRAM。FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。

   点击放大图片

    图1 CAN总线总体结构图

    C8051F040单片机的CAN控制器由CAN内核、消息RAM、消息处理单元和控制寄存器组成。CAN内核提供移位输出和输入(CAMⅨ和CANRX)、消息的串并转换及其他与协议相关的任务(如数据发送和接收过滤)。消息RAM可以储存32个可在CAN网络上接收和发送的消息对象。CAN寄存器和消息处理器为CAN控制器和CIP一51之间的数据传送和状态通知提供接口。CIP一51通过特殊功能寄存器之间或间接地访问CAN控制器中的CAN控制寄存器、CAN测试寄存器和CAN状态寄存器。

    由于C8051F040内部的CAN控制器只是个协议控制器,不能提供物理层驱动,要使CAN总线得以运行,还需在单片机上接CAN收发器,进行电气转换,同时为了抗干扰需要在C8051F040单片机和TJAI(MO总线收发器之间使用2个高速光电隔离器件TLP113实现总线和控制器的隔离,以避免干扰,提高工作可靠性。这里采用TJA1040作为物理层驱动器,TJA1040可以为总线提供差动发送性能,为CAN控制器提供差动接收性能,当TJA1040断电时,总线反向电流为零,这样,没有接通电源的节点不会对网络其他部分造成影响,还具有极低功耗的待机模式,以及通过总线唤醒能力,这些特性都使它非常适用于多点通信网络。

    通过TJA1040引脚可选择2种工作模式:高速模式或静音模式。高速模式就是普通的工作模式,将引脚s接地可以进入这种模式。如果引脚S没有连接,高速模式就是默认的的工作模式。点击放大图片   

    图2 CAN驱动器电路
 

    CAN的最高速率可以达到1 Mbps,采用USB接El能达到与上位机以较高的速率通信,这就需要设计一个USB—CAN转换模块。此处采用USB接口芯片CH375,CH375是一个USB总线的通用接口芯片,支持USB—HOST主机方式和USB—DE—VICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。CH375可以工作在并口方式和串口方式,文中采用并口方式。图3是USB—CAN转换模块电路原理图。CH375的TXD引脚通过1 kn左右的下拉电阻接地或者直接接地,从而使CH375工作于并口方式。[page]

   点击放大图片

    图3 USB—CAN转换模块电路原理图

    USB总线包括一对5 V电源线和一对数据信号线。USB插座P1可以直接连接USB设备,必要时可以在提供给USB设备的5 V电源线上串接具有限流作用的快速电子开关,USB电源电压必须是5 V.电容c3用于CH375内部电源节点退耦,c3是容量为4 700 pF一0.02μF的独石或高频瓷片电容。电容c4和c5用于外部电源退耦,c4是容量为0.1μF的独石或者高频瓷片电容。晶体x1、电容C1和c2用于CH375的时钟振荡电路。USB—HOST主机方式要求时钟频率比较准确,晶体x1的频率是(12 +-0.4‰)MHz,C1和c2是容量为15—30 pF的独石或高频瓷片电容。为使CH375可靠复位,电源电压从0 V上升到5 V的上升时间应少于100 ms.如果电源上电过程较慢并且电源断电后不能及时放电,那么CH375将不能可靠复位。可在RSTI引脚与VCC之间跨接一个容量为0.1μF或0.47μF的电容C11延长复位时间。

    如果CH375的电源电压为3.3 V,那么应该将V3引脚与VCC引脚短接,共同输入3.3 V电压,并且电容c3可以省掉。在设计印刷线路板PCB时,需要注意:退耦电容c3和c4尽量靠近CH375的相连引脚;使D+和D一信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;缩短xI和XO引脚相关信号线的长度,为了减少高频时钟对外界的干扰,可以在相关元器件周边环绕地线或者覆铜。

    在单片机端CH375芯片由于工作在并口方式。实际是通过单片机I0口模拟其工作时序。当AO引脚为高电平时,系统进择命令端口,此时可以写入命令;当AO引脚为低电平时,选择数据端口,此时可以读写数据。

3 多点通信网络的软件设计

    3.1单片机程序设计

    单片机程序设计主要包括CAN通信程序和CAN—USB转换程序设计。CAN通信程序主要完成各节点的CAN数据传输,CAN—USB转换程序主要完成数据的中转,既能接收上位机发来的数据并打包成CAN协议相应的数据又能将CAN协议数据发到上位机,此处采用了C8051F040单片机内部的温度传感器作为节点传感器,通过单片机内部12位ADCO对内部热敏电阻的电压进行AD转换,得到实时温度的数字量,然后上位机从总线中获取信息,为了验证CAN总线的实时性和可靠性,在上位机软件中没计了温度曲线显示窗口,能够对温度进行实时监控。

    3.1.1 CAN通信程序设计

    主要程序包括10配置、晶振初始化、清除消息RAM、发送接收函数初始化和CAN初始化。其中10配置主要是配置CAN的TX引脚作为输出,晶振初始化主要是切换到外部晶振,由于内部晶振误差较大,有l%的误差,而外部晶振误差小,用精度高的外部品振可以产生较准确的CAN通信速率。清除消息RAM程序是对32个消息对象进行清除。发送、接收函数初始化主要设置命令掩码寄存器、仲裁寄存器和消息控制寄存器,如图4所示。

   点击放大图片

    图4 CAN通信程序流程图

    3.1.2温度传感器数据采集程序设计

    C8051F040单片机内部有一温度传感器,温度传感器数据采集时用内部12位ADCO对内部热敏电阻的电压进行AD转换。然后再对转化成的数字量进行换算,从而得到实际的温度值。

    温度采集程序开始后先初始化,使能ADCO并设置启动方式,然后使能温度传感器和内部基准,选择温度传感器作为输入设置转换时钟周期,初始化后向ADOBUSY写1,判断ADOINT是否为0,如果为0读取温度数据。[page]

    3.1.3 USB—CAN转换程序设计

    所有的通汛都由计算机应用层发起,然后以接收到单片机的应答结束,主要程序包括10配置、CH375初始化、分析数据包类型和向CAN节点发送数据。具体流程如图5所示,其完整的过程包括如下步骤:

    (1)计算机应用层按事先约定的格式将数据请求发送给CH375芯片;

    (2)单片机查询INT引脚的变化,当变低时进入数据处理程序;

    (3)单片机进人数据处理程序,以获取CH375的状态并分析;

    (4)如果是发送成功,则释放当前USB缓冲区,然后退出数据处理程序继续查询;

    (5)如果是接收成功,则从数据下传缓冲区中读取数据块;

    (6)分析接收到的数据块;

    (7)如果接收到的是数据收集命令包,则向各CAN节点发送请求数据传输命令;

    (8)如果接收到的是数据发送命令包,则向相应的CAN节点发送数据并释放缓冲区;

    (9)如果接收到的是数据发送命令包,则向相应的CAN节点发送数据并释放缓冲区;

    (10)如果接收到的是测试命令包,则将收到的数据按位取反后发回上位机;

    (11)如果接收到的是数据发送命令包,则向相应的CAN节点发送数据。

   点击放大图片

    图5 USB—CAN转换流程图

    3.2上位机软件设计

    USB接口芯片工作于设备方式,处于被动状态,与上位机相连时,上位机是主机。因此让主机间隔一定时间通过USB接口向下位机发送不同的命令字来获取各CAN节点数据和向各节点发送数据以控制各节点的LED。自定义数据包来区分上位机向下位机发送的是何种数据。

    在该系统中上位机和下位机数据交换的数据主要涉及:测试命令包、数据收集命令包、数据发送命令包、接收数据命令包。要让计算机相隔一定时间向下位机下传数据包,VisualBasic给提供了良好的解决方案,Visual Basic中的timer控件让该地简单化。只需设置定时器每隔一定时间发送数据。采集CAN点的的程序流程是,定时器间隔一定时间发送数据收集命令包至下位机收集各节点数据,然后进行处理后显示。上位机发送数据至CAN节点时的程序流程为,当发送数据时关闭定时器,延时等待把数据传输完成后再发送数据收集命令包,以邀免与发送数据收集命令包冲突,然后冉打开定时器,完成节点接收数据。

   点击放大图片

    图6上位机软件运行围

4 调试结果

    将电路连到电脑USB接口上,上位机会测试与下位机通信是否正常,此时测试时上位机会向下位机发送一些数据。若下位机运行正常会将数据取反后向上位机发送,上位机收到后与原来发送的数据相比较,若正常则进入正常工作的界面。图6是正在采集中的上位机软件运行情况。图中右侧是采集到的温度曲线,证明设计的电路可以实现信号的实时传输。

5 结束语

    提出一种方法利用C8051F040单片机作为CAN节点的处理器.绝成实时多点通信CAN5总线网绍利用CAN总线的可靠性实时性等优点。实现对现代工业中的共有综合功能的智能仪表的实时操作和控制,用新一代的现场总线控制系统代替传统的集散控制系统,实现现场通信网络与控制系统的集成,同时USB-CAN转换模块和上位机软件的加入使操作人员可以在PC机上实现更加直观的操作。该网络可以应用于过程自动化和制造自动化般底层的现场设备或现场仪表互连的通信网络,简化了这些网络操作的复杂性。
 

关键字:C8051F040  TJA1040  CAN控制器  USB-CAN 引用地址:基于C8051F040的CAN总线技术的多节点通信网络设计

上一篇:针对CAN总线传输距离问题的两种解决方案
下一篇:51单片机的中断体系结构

推荐阅读最新更新时间:2024-03-16 13:51

采用MCU、CAN控制器和收发器实现燃料电池汽车空调智能节点
在能源日趋紧张、空气污染日益严重的今天,开发具有自主知识产权的新型燃料电池汽车是我国汽车产业的一个重要飞跃和里程碑,也是国家重点扶持的主要领域之一。燃料电池汽车与传统燃油汽车相比具有环保、节能(氢气为燃料)、运行平稳无噪声等特点。燃料电池汽车系统的核心是它的动力系统,即燃料电池发动机,同时配备高功率锂离子电池,能够回收下坡和制动能量。整个汽车系统由若干控制单元组成,各单元通过汽车总线彼此相连,其中空调控制系统是这种新型能源汽车的一个辅助控制单元,但它也是汽车系统的一个重要组成部分。本文将给出一种采用通用微控制器(MCU)和独立CAN控制器和收发器为核心的智能节点,完成与汽车系统之间的通信和控制由数字信号处理器DSP2407为控制芯
[嵌入式]
采用MCU、<font color='red'>CAN</font><font color='red'>控制器</font>和收发器实现燃料电池汽车空调智能节点
基于C8051F040CAN总线智能节点设计
引言 “X型火控系统”根据实际需要采用了CAN总线方式来实现其内部单体间的通信。CAN总线是一种用于各种设备检测及控制的现场总线,它是一种多主总线,在高速网络和低成本的节点系统中应用都很广泛。CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下: *可以多主方式工作。 *CAN节点只需对报文的标识符滤波即可实现点对点、一点对多点及全局广播方式发送和接收数据。 *CAN总线通信格式采用短帧格式。 *采用非破坏性总线仲裁技术。 *直接通信距离最大可达10km (速率5kb/s以下),最高通信速率可达1Mb/s (此时距离最长为40m),节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。
[应用]
基于CAN总线的四路舵机控制器的研究
舵机是导弹飞控组织的重要部分。随着高性能稀土电机技术和高能电池的发展,精确制导武器上高性能舵机系统的研究被重视,各利新型的电机伺服系统的控制技术不断出现,提高舵机伺服系统的性能成为当前的迫切需要。为此,设计者在考虑了谐波传动的随速度波动和低阻尼特点,以提高舵机系统控制品质为目标,提出了一种新型舵机控制系统。该硬件系统以主控芯片DSP TMS320F2812 为核心,结合82C250(CAN总线收发器)和射极跟随器(以INA114为核心),并通过CAN2.0A总线接口实现了PC机与DSPTMS320F2812之间的参数传送。 由于舵机系统对定位精度、频率响应特性、阶跃响应特性和震荡次数等因素有着非常高的要求,因此其测试数据、分析曲线
[工业控制]
基于<font color='red'>CAN</font>总线的四路舵机<font color='red'>控制器</font>的研究
C8051F040CAN控制器的应用
摘要:介绍C8051F040单片机内部CAN控制器的应用。详细叙述此控制器的构成及其访问方式,指出在使用时是如何配置控制器的相关控制寄存器,并且给出CAN控制器在应用中的物理层硬件电路和应用层软件设计。 关键词:CAN控制器 寄存器 报文对象 C8051F040 单片机与CAN总线连接的传统方式是将CPU与总线控制器和总线收发器相连后再接入总线网络,这样使CPU外围电路复杂化,整个系统受外部影响较大。为了解决这一问题,很多单片机厂商纷纷将CAN控制器集成在单片机芯片上。目前,单片机内部集成的CAN控制器有Motorola公司的MC68HC912DG128A、Philips公司的P87C591、Atmel公司的AT89C51C
[单片机]
基于dsPIC30F6014数字信号控制器CAN节点设计
引言 CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus已被广泛应用到各个自动化控制系统中,具有不可比拟的优越性。 新型16位dsPIC30F6014数字信号控制器结合单片机的控制优点及数字信号处理器(DSP)的高速运算特性,为嵌入式系统提供了单一芯片解决方案。 本篇论文以CAN协议为基础,结合dsPIC30F6014的突出性能,在设计通讯接口过程中,提出了基于dsPIC30F6014数字信号控制器的CAN节点设计方法。 1 dsPIC30F6014数字信号控制器与CAN总
[工业控制]
基于dsPIC30F6014数字信号<font color='red'>控制器</font>的<font color='red'>CAN</font>节点设计
基于STM32和FPGA的CAN总线运动控制器的设计
如今,运动控制正朝着高速度、高精度、开放式的方向发展,从而对执行部件提出了更高的要求。过去的运动控制器主要是基于单片机或者PLC加上分立数字电路设计,受制于器件本身的性能,导致电路执行速度慢、体积庞大、集成程度低,升级难度大。而采用微处理器、DSP、FPGA等现代手段构成的只能控制系统是新一代运动控制发展的方向。本文对基于FPGA的嵌入式运动控制器进行了研究,并应用了CAN总线,使硬件接口简单、实时性强、灵活度高,有很强的实用价值。 1 总体方案设计策略 本系统以意法半导体体公司生产的基于Cortex—M3处理器STM32F103VBT6芯片核心进行通信、数据的存储以及键盘扫描和LCD显示,它集成了CAN、SPI、USB、
[单片机]
基于STM32和FPGA的<font color='red'>CAN</font>总线运动<font color='red'>控制器</font>的设计
CAST和Fraunhofer IPMS提供CAN-XL控制器IP核
IP提供商CAST和Fraunhofer IPMS日前宣布,为他们流行的CAN 2.0和CAN FD控制器IP核增加了CAN XL标准的支持。 CAN XL是一种新的数据通信协议,自2018年起由CAN-XL特别兴趣小组(CiA)组织,汽车和半导体代表(包括Fraunhofer IPMS)参与开发。目标是通过将CAN协议的数据有效载荷大小增加到2048字节,将其传输比特率提高到10Mbit/s,同时保持与CAN 2.0和CAN FD的互操作性,从而赋予CAN协议更强的能力。因此,CAN-XL将CAN协议的优点扩展到要求更高的应用,在面向信号的CAN-FD和面向服务的高速以太网之间提供了一个中间选择。 针对早期采用者,CAS
[汽车电子]
C8051F040在基于CAN总线的分布式测控系统中的应用
摘要:CYGNAL生产的单片机C8051F040是代表8位单片机发展方向的高速(25M)混合信号系统级芯片(SOC)它不仅集成了一般测控系统需要的外设,而且集成了很有发展前景的现场总线—CAN总线控制器,文中对该芯片中的CAN控制器结构作了分析,并给出了在分布式测控系统中使用该芯片的智能节点的硬件、软件设计方案。 关键词:C8051F040;CAN总线;分布式;测控节点 1 概述 分布式在线测控系统是由多个面向设备的、以MCU为核心的智能处理单元和多个并行运行且具有不同监测和故障诊断功能的微机构成的。该系统采取“分治”的设计思想它将数据采集以及部分数据处理任务交给设备层的智能处理单元去完成而监测诊断层主要负责监视和故障
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved