历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2018年02月12日 | 基于CAN总线的嵌入式控制器串行通讯的应用

2018-02-12 来源:eefocus

    1  引言

    CAN 是国际上应用很广泛的一种现场总线,MCS96 系列单片机是目前在工业界推广应用较广泛的嵌入式控制器,其87C196CA 单片机内核本身带有CAN 控制器,支持标准和扩展的信息帧,即遵循CAN2.0A 和CAN2.0B 协议。由此而构成的CAN 总线支持分布式控制和实时控制,其串行通信方式灵活可靠,传输距离较远。由于CAN 总线具有通信速率高、工作可靠性高、现场抗干扰能力强、网络连接方便和性能价格比高等优点,在汽车发动机控制部件、汽车抗滑系统、工业自动化、机床、电梯控制等领域得到了较为广泛的应用。

 

    2  硬件构成

    2. 1  CAN 总线连接

    基于CAN 总线的两个87C196 单片机网络联接时,分别将单片机的CAN接收、发送两根线通过PCA82C250 CAN总线收发器联接到CAN总线上,构成多微控制器CAN总线连接。通信介质可以是双绞线、同轴电缆或光纤,其总线连接如图1 所示。

35.jpg?imageView2/2/w/550
      图1  CAN 总线连接

    该网络最高通信速率为1Mbit/s ,当传输速率为5Kbit/s时,最大通信距离可达10Km。在其CAN 总线上可挂接多达110 个网络节点,而网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息。其数据传输和接收可以是点对点、一点对多点或全局广播等方式进行。

    2. 2  87C196CA 单片机

    87C196CA 是集成CAN2.0B总线控制器的高性能16 位微处理器,特别适用于现场实时事件控制和分布式控制。片内的CAN 控制器与Intel 82527独立CAN 控制器在软件上是兼容的,每个CAN 控制器的输入、输出引脚由二根双绞线联接到CAN总线上。CAN 控制器由一个输入引脚(RXCAN) 、一个输出引脚( TXCAN) 、控制和状态寄存器,错误探测和管理逻辑组成。图2 为CAN 控制器方框图。36.jpg?imageView2/2/w/550

              图2  CAN 控制器方框图

    2. 3  CAN 总线收发器

    PCA82C250是CAN协议控制器和物理传输线路之间的接口,是影响网络性能的关键因素。它对总线提供差动发送能力,并对CAN控制器提供差动接收能力,其最高传输速率可达1Mbit/s。其主要特点是芯片内部具有限流电路,可以防止输出级对电源、地或负载短路;由于采用差动接收发方式,因此有较强的抗电磁干扰能力;具有低电流节电待机工作模式;该CAN总线收发器至少可以连接110个节点。利用PCA82C250还可以方便地在CAN控制器与驱动器之间建立光电隔离,以实现总线上各节点间的电气隔离。

 

    3  通讯软件

    对于通过CAN 总线连接的单片机之间的通讯软件编程需要定义一系列的控制字,并在两个单片机上进行配置。即首先进行上电初始化,定义CAN控制寄存器,定义位定时寄存器选择CAN 的通讯速率,定义信息体屏蔽寄存器选择接收对象。其次对信息体进行初始化,分别定义两个信息体工作模式、发送字节数、选择CAN2.0A 或CAN2.0B 方式。其程序代码:

    / *CAN 控制器初始化*/

    can_cON = 0x41 ; / *CAN 控制器CCE 位置1 ,

    则可以定义CAN 定器* /

    can_ btime0 = 0x41 ; /* 定义CAN 定时器为

    250 Kb/ s * /

    can_btime1 = 0x67 ;

    can_con = 01 ; /  *允许对CAN 控制器进行软

    件初始化* /

    can_sgmsk = 0x0 ; / * 定义标准CAN 通讯格

    式的屏蔽控制字,所有位都不滤纸*/

    can_msg1con0 = 0x55 ; / * 信息体1 控制器0

    初始化* /

    can_msg1con1 = 0x55 ; / * 信息体1 控制器1

    初始化* /

    can_msg1cfg = 0x88 ; / *定义信息体1 为发

    送,发送8 字节,标准CAN 格式* /

    can_msg1id = 0xc8c8c8c8 ; / * 信息体1 标识

    寄存器初始化标识符为c8c8c8c8 ;

    can_ msg1con0 = ox95 ; / * 信息体1 控制器

    0MSGVAL 位置1 ,标明信息体1 有效* /

    can_msg2con0 = 0x55 ; / * 信息体2 控制器0

    初始化* /

    can_msg2con1 = 0x55 ; / *信息体2 控制器1

    初始化* /

    can_msg2cfg = 0x80 ; /  *定义信息体2 为接

    收,接收8 字节,标准CAN 格式* /

    can_msg2id = 0xc8c8c8c8 ; /  *信息体2 标识

    寄存器初始化标识符为c8c8c8c8  */

    can_ msg2con0 = ox95 ; / * 信息体2 控制器

    0MSGVAL 位置1 ,标明信息体2 有效 */

    can_con = 0x02 ; / * CAN 控制器软件初始化

    完成*/

    /  *发送8 字节数据: * /

    CAN_msg1con1 = 0x5a ; / * CPUUPD 置1 ,使

    软件刷新数据,NEWDA T 置1 使信息置1 使信息

    体有效* /

    can_msg1data0 = 0x00 ; / * 给信息体1 第1 个

 

    数据赋值* /

    can_msg1data1 = 0x11 ; / * 给信息体1 第2 个

    数据赋值3*/

    can_msg1data2 = 0x22 ; / * 给信息体1 第3 个

    数据赋值 */

    can_msg1data3 = ox33 ; / * 给信息体1 第4 个

    数据赋值* /

    can_msg1data4 = 0x44 ; / * 给信息体1 第5 个

    数据赋值* /

    can_msg1data5 = 0x55 ; / * 给信息体1 第6 个

    数据赋值* /

    can_msg1data6 = 0x66 ; / * 给信息体1 第7 个

    数据赋值*/

    can_msg1data7 = ox77 ; /  *给信息体1 第8 个

    数据赋值*/

    / *接收8 字节数据: */

    can_msg2cfg = 0x80 ;

    can_msg2id = oxc8c8c8c8 ;

    can_msg2con1 = 0x55 ;

    can_msg2con0 = 0x99 ;

    4  结束语

    基于CAN 总线的16 位87C196CA 单片机串行通讯,由于运用CAN 总线技术,使电路设计简化、紧凑、极大地提高了系统的可靠性、实时性,系统抗干扰性能强,成本较低,性能安装比高、安装维护简洁方便,更适于车辆控制、工厂自动化控制、电梯控制、医疗设备等,具有非常广阔的应用前景。


推荐阅读

史海拾趣

Hasco Relays and Electronics International Corp公司的发展小趣事

除了国防和航空领域外,L3Harris还积极投身于国土安全和公共安全领域。公司为这些领域提供了多种先进的技术和解决方案,包括监视系统、情报分析工具和边境安全技术等。这些技术和解决方案在维护国家安全和应对紧急情况方面发挥了重要作用。L3Harris在国土安全和公共安全领域的贡献不仅体现了其社会责任感,也进一步拓展了其在电子行业中的业务范围和市场影响力。

请注意,上述故事是基于可获取的信息和事实进行归纳和构想的,可能无法完全涵盖Harris公司(现为L3Harris Technologies)发展历程中的所有细节和事件。

D+H Mechatronic AG公司的发展小趣事

在全球环保意识日益增强的背景下,D+H Mechatronic AG积极响应绿色制造的号召。公司投入大量资金和资源研发出了一系列节能环保的机械设备,这些设备在生产过程中能够显著降低能耗和排放。同时,公司还积极参与各种环保活动,倡导绿色生产理念。这些举措不仅使公司赢得了客户的信赖和支持,也为其在行业内树立了良好的环保形象。

DB Unlimited公司的发展小趣事

在音频市场日益竞争激烈的环境下,DB Unlimited意识到定制化服务的重要性。因此,公司开始提供定制设计服务,以满足客户对特定音频需求的个性化要求。通过与客户的紧密合作和深入沟通,DB Unlimited成功为客户解决了许多复杂的声学设计问题,赢得了客户的信任和赞誉。

Force Technologies Ltd公司的发展小趣事

背景:在电子行业竞争日益激烈的背景下,Force Technologies Ltd意识到通过并购整合可以迅速扩大规模、提升竞争力。

发展:公司精心挑选了几家在特定领域具有优势的企业作为并购目标,并成功完成了多起并购案。这些并购不仅为公司带来了先进的技术和人才资源,还极大地丰富了产品线和市场布局。通过并购整合,Force Technologies Ltd在多个细分领域均占据了领先地位。

德旭电子(DEXU)公司的发展小趣事

随着公司规模的不断扩大和业务范围的不断拓展,德旭电子开始注重履行社会责任和推动可持续发展。公司积极参与公益事业和社会活动回馈社会。

在环保方面德旭电子坚持绿色生产和低碳发展理念积极推广环保技术和设备降低生产过程中的能耗和排放。同时公司还注重产品的环保性能研发和生产符合环保标准的产品满足客户的环保需求。

在社会责任方面德旭电子关注员工福利和职业发展为员工提供良好的工作环境和培训机会促进员工的成长和发展。此外公司还积极参与社会公益事业和慈善活动为社会做出积极贡献。

通过这些举措德旭电子在履行社会责任和推动可持续发展方面取得了显著成效赢得了社会的广泛认可和赞誉。

DUCATI公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,德旭电子深知只有不断创新才能在竞争中立于不败之地。因此,公司始终坚持技术创新和产业升级的战略方向。

德旭电子在产品研发方面不断投入大量人力物力,积极引进国内外先进技术和管理经验。同时,公司还加强与高校、科研机构的合作与交流,共同开展技术研发和人才培养工作。这些举措使得德旭电子在技术创新方面取得了显著成果,不断推出具有市场竞争力的新产品和新技术。

问答坊 | AI 解惑

很想知道学会了单片机研发,工资一般能拿多少啊?能达到6000吗?

很想知道学会了单片机研发,工资一般能拿多少啊?能达到6000吗?…

查看全部问答>

中移动Ophone手机主界面曝光 5月底正式发布

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 5月11日消息,据中国移动相关人士透露,5月中下旬中移动将正式公开发布采用OMS手机操作系统(Open mobile system)的Ophone手机。这将意味着中国自主研发的OMS手机操作系统将正式走上前台,向 ...…

查看全部问答>

【FPGA 代码】

持续赋值方式定义的2 选1 多路选择器module MUX21_1(out,a,b,sel);input a,b,sel;output out;assign out=(sel==0)?a:b;//持续赋值,如果sel 为0,则out=a ;否则out=bendmodule阻塞赋值方式定义的2 选1 多路选择器module MUX21_2(out,a,b,sel);inpu ...…

查看全部问答>

问一个笨笨的问题

请问如何在EVC build后执行某个PC上的EXE文件. 比如,我要在build aa.exe后自动调用bb.exe. 我在post-build里设置,总是不成功.…

查看全部问答>

硬件仿真

想问一下支持硬件仿真的单片机芯片都有哪些  谢谢…

查看全部问答>

WINCE6.0操作系统在三星6410开发板上完美展现!--基于立宇泰ARMSYS6410开发板

精彩测评实例图片说明:1,WINCE6.0系统启动画面(进度条动态显示内核加载进程,LOGO图片可以根据客户需要免费更换);2,WINCE6.0桌面效果;3,800x480液晶屏全屏播放H.264视频流文件(采用硬件解码)4,800x480液晶屏全屏播放MPEG4(avi后缀)音视 ...…

查看全部问答>

我UCOS项目任务优先级划分问题

我在做同步相量测量(PMU) 就是把AD采集的三项交流电压和电流值打上时标然后上传,在接收PC发送的控制命令,如控制继电器开关的命令。由于要对数据打时标(时间戳),底层的PMU采集装置散布在不同的点,每一个点(PMU)安装一个GPS 不现实 ...…

查看全部问答>

Ecan通信的中断问题

       本人在一个项目中运用Ecan进行通信,在通信过程中会碰到中断故障(具体原因说不上来)。我是将Ecan设置成中断接收的(邮箱0-15设置成接收邮箱,16邮箱设置成发送邮箱),若接收到一个合理的读写命令,则返回 ...…

查看全部问答>

g2553定时器的使用问题

#include \"msp430g2553.h\" int main( void ) {   // Stop watchdog timer to prevent time out reset     WDTCTL = WDTPW + WDTHOLD;         P1DIR |= BIT0;     P1OUT &= ~BIT0; & ...…

查看全部问答>

AVR编程软件

我的电脑是64位机,系统是win7的家庭普通版,买电脑觉得送了个win7的正版系统,就没在升旗舰了。 现在在学AVR单片机,老师需要我给编一些程序,但是下了很多相关编程软件,就是用不了(比如CVAVR,ICCAVR). 很困惑,求大神指点!!! 谢谢…

查看全部问答>