当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]随着现代化工业的不断前进,人们对生产过程的控制提出了更高的要求。智能化、网络化、微型化、分散化代表当代自动化控制技术发展的主流方向,而现场总线技术正是促使自动化

随着现代化工业的不断前进,人们对生产过程的控制提出了更高的要求。智能化、网络化、微型化、分散化代表当代自动化控制技术发展的主流方向,而现场总线技术正是促使自动化系统顺应这一发展要求的先进技术。DeviceNet是基于CAN总线的一种开放式现场总线技术,在世界各大供应商的共同努力下,已经成为普及率比较高的现场总线技术之一,在国内外得到较大范围的推广和应用。

DeviceNet网络允许的波特率共有三种:500K、250K、125K。在设备联入网络之前,需要用户根据当前网络的要求选择一种工作波特率。为了满足设备热插拔的要求,很多接入设备除了提供波特率的人工设置之外,还必须具备波特率自动检测的功能。

1 波特率自动检测的前提条件

根据CAN总线的特点,每一个网络上的节点对接收到的报文都具有自动应答机制,根据接收到的信息正确与否发出应答信息和出错信息。在设备联入CAN网络后,根据网络通信安全的要求,在没有得到波特率的正确设置前,不允许发送任何的信息,也就是说,接入节点必须具有“只听”功能。DeviceNet是基于CAN总线的协议规范,要实现接入设备的波特率自动检测,也必须使通讯接口在波特率没有确认前处于“只听”模式。

很多DeviceNet通讯接口在设计上都是采用CAN协议芯片或者内嵌式的CAN接口,为了实现其“只听”功能,可以在其发送接口与总线驱动芯片之间加上一级或门,如图1所示。82C251是CAN总线驱动芯片,Gate就是“只听”模式的门控信号,Tx是发送引脚,Rx是接收引脚。Gate、Tx以及CAN信号的状态表如表1所示。在上电复位或者进行波特率自动检测前,先将Gate设成1,这样就可以封锁Tx引脚,这样,CAN接口的任何错误帧和应答信息都不会被广播出去。当正确的波特率被选择后,将Gate置0,就可以实现CAN信息的正常发送了。

 


也有一些CAN协议芯片内部具有“只听”功能,例如Philip的CAN控制芯片SJA1000,在其扩展CAN功能中就有对应的模式寄存器,可以在不增加其他外部电路的情况下完成“只听”模式的设置,其模式寄存器的位定义如下所示。

 


可见,只要将ModeControlReg的D1位设成1,就可以实现“只听”模式。

2.波特率检测的时机

波特率的自动检测,是通过对网络信息的侦听来实现的,也就是说,网络上首先要具有正确传输的报文信息,接入设备才有可能识别出网络的波特率信息。

首先,需要保证接入设备在网络上电前已经加入网络。这时,当上电时,根据DeviceNet网络协议,每一个从站节点都会有自检和应答信息,这给自动波特率检测提供了较好的时机。

根据这一结论,还可以假想出波特率自动检测的比较极端的情况,那就是“孤立节点”的情况,网络上只有接入设备本身这一个节点,这时候网络上没有传输信息,也就无法侦听和识别波特率,这种情况下只有等待,直到有另一节点加入或者主站设备主动发送有效信息。

3.总线定时器值的计算与设定

CAN总线是位仲裁机制,对于位定时有着严格的要求,而波特率的设置是通过对总线定时器的设置来实现的。位定时的要求主要体现在对于每一位的位时间的各个组成部分以及采样次数的确定上。位时间的大小跟波特率有关,设位时间为T,波特率为B,则由式(1)确定。

 

每一位时间由固定数目的小时间份额组成,小时间份额的长度值是由芯片的晶振频率和波特率的预分频值决定的。设晶振频率是Fosc, 小时间份额的长度为Ts,预分频值为Brp,则:

Brp=Ts×Fosc -1 (2)

位时间可划分为几个互不重叠的时间段,这些时间段的定义如图2所示。

 


同步段和传播段各为1个时间份额,其余的是相位缓冲段1和相位缓冲段2,而采样点就在这两个缓冲段之间。  DeviceNet是高速CAN网络,采样点的采样次数为1次。根据图2所示,位时间的小时间份额的数目确定了位时间的大小,从而确定了波特率的大小。设小时间份额为Ts,相位缓冲段1的时间份额为N1,相位缓冲段2的时间份额为N2,总的时间份额为N,则可以得出公式(3)。

N=1+1+N1+N2=T/Ts (3)

总线定时参数确定之后,可以根据晶振的误差算出最大允许传播延迟时间:

 

上式(1+N1)表示从同步点到采样点的时间份额数。

N的值在应用中一般设置成晶振频率的整除数,而N1和N2的大小决定了采样点的位置,具有一定的实验数据支持,根据ODVA公布的参数,当采样点位于位时间的80%处时,采样准确性最大。以16M±1%晶振下,波特率为500K,N为16,则:

T=1/500000=2 uS

Ts=T/N=0.125 uS

根据采样点位于80%的分配比例,

N1=16×80%=12 (取整数)

N2=N-2-N1=2

波特率的预分频值根据式(2),有:

Brp=(0.125×16)-1=1

最大允许传播延时

 

根据CAN2.0A规范,这个延迟时间是满足要求的。在对于DeviceNet接口三种不同波特率的设置,只要改变预分频值便可达到目的,其他参数可以参考上面的计算。

4.波特率自动检测的软件实现[!--empirenews.page--]

以SJA1000为例来说明波特率自动检测的软件流程。SJA1000在PeliCAN 模式下才支持“只听”模式,所以,在波特率检测时,应该将SJA1000设置成PeliCAN 模式。

软件检测的思想是根据DeviceNet网络的特点确定的。对于 Devicenet网络,只允许3种波特率:125K, 250K, 500K,采用“穷举法”不会花费太多流程。节点可以预先配置成这三种波特率中的一个,当波特率正确时,就会产生接收中断,那么,预置的波特率就是正确的网络波特率;如果产生总线错误中断,则可以认为,波特率设置错误,更换波特率设置重新侦听。在启动时,先将节点波特率设置成125K模式,同时允许接收和错误中断。如果在CAN总线上产生错误,软件就将波特率设成较高的波特率。为了可靠确认,在连续2条信息的成功地接收后,就认为当前预设波特率是正确的,从而转向正常工作模式。

流程图如下:

 


波特率自动检测是通过对于总线错误或者正确接收的仲裁实现的,在调试过程中,需要开放接收中断和总线错误中断。值得注意的是,在总线预设波特率不对的情况下,总线错误中断相当频繁,如果处理不当,就难于设置正确的波特率。通过调试,得出以下两点体会:

1.切换波特率的依据是总线错误中断,但是一般总线错误中断标志有可能和接收中断一起接收到,这个时候,不能立即切换波特率,而是再观察一帧信息,然后再确定是否找到波特率;如果单纯总线错误,则立即切换波特率。

2.随着波特率的提高,总线错误中断会更加频繁,所以中断的响应要迅速,处理代码要短,不然就会影响其他的程序流程。特别是500K波特率时,自动波特率检测的时序要特别注意,有可能会造成SJA1000复位的情况,这时候有可能损失用于检测波特率的信息。

5.结论

DeviceNet现场总线波特率的自动检测方案可以推广到其他基于CAN总线的网络接入中,只要待接入的网络上具有有效传输的数据报文,另外波特率值在一定的预选值范围内,这个方案都是可行有效的。在实际应用中,该波特率自动检测技术得到较为成功的验证。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

今年是5G元年,全球各个通讯公司都使出来毕生的经历,为了在未来5G市场上抢占一块好的地方,他们之间的竞争也催生了一大批新技术。工信部发放4张5G牌照,标志着中国正式进入

关键字: 5G mimo 总线与接口

在5G通讯领域,目前做的比较好的当属华为,但是其他几家公司也不甘示弱,就在最近,三星电子成功开发支持28GHz频段的“5G综合型基站”(Access Unit),是目前5G商

关键字: 5g通讯 三星 华为 总线与接口

广告商与受众之间必不可少的沟通媒介最核心的恐怕属于数字标牌,它已演变为交互式个性化通讯工具,为用户提供了更直观的的参与感与体验。研华基于云数字标牌解决方案一应俱

关键字: 总线与接口 数字标牌 研华

通常情况下在工业现场经常需要用两个隔离DC-DC搭配单独的信号隔离电路的方法去隔离RS-232与RS-485,但隔离的性能存在差异性,并且占板面积较大。本文将为你介绍一种稳定可靠、应用简便的全隔离解决方案。

关键字: rs-232 rs-485 多协议接口模块 总线与接口

近年来,第五代移动通信系统5G已经成为通信业和学术界探讨的热点。5G的发展主要有两个驱动力。一方面以长期演进技术为代表的第四代移动通信系统4G已全面商用,对下一代技术

关键字: 5G 总线与接口 数据分析

在工业实现当中,需要降低总线接口的宽度,这里专门有一种设备叫工业用串行/解串器(SerDes),它可以降低高带宽数据接口总线宽度。使用一个串行器就可以把数据从一个宽并行数

关键字: serdes 总线与接口 高带宽数据接口总线

在当前虽然在嵌入式系统中有许多连接元件的方法,但最主要的还是以太网、PCI Express和RapidIO这三种高速串行标准。所有这三种标准都使用相似的串行解串器(SerDes)技术,它

关键字: 串行总线 差分走线 总线与接口

对于现在的嵌入式工程师,一般都知道CAN总线广泛应用到汽车中,但是CAN总线不仅运用到汽车上,在船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求

关键字: can总线 总线与接口 接口

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线...

关键字: can 总线与接口 自动化 位流检测

UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。

关键字: CPU uart 总线与接口 rs-232c接口
关闭
关闭