
在过程数据传输过程中,时间是关键。为此,CANopen网络中使用了PDO协议,这是一种未经证实的CAN报文,无需额外的协议开销。在传输方式方面,PDO通信可以适应各应用程序。系统开发人员可以为发射和接收方配置不同的传输方式,以优化CANopen设置的行为。
CANopen基于ISO 11898-1 标准的数据链路层规范。CAN在微控制器上虽能用廉价的“片上”方式实施,但其最大总线带宽局限在1Mb/s,相当于约500 kb/s的网速;或8个字节的有效载荷传输需约120位时间。当总线全负载网速为1Mb/s时,人们能按每8字节的数据域传输约8000报文。系统不能总以100%的总线负载进行总线驱动,否则当通信受到外部干扰影响时,就会有参与者掉线,这类情况是人们不希望发生。平均总线负载接近50%时较合适。其他总线系统虽比CAN速度快,但传输速度并不能说明系统的通过量。
视应用情况而定,定期的由本地计时器触发的传输有许多数据是多余的。按CAN惯用方式,当以事件驱动传输时可以避免冗余的产生。但数据的冗余传输并不可取,因为随着传输速度不断提高,受干扰程度也在大幅增加。虽然在技术层面上传输可控制到一定程度,但为此所需的电气和机电解决方案费用不菲。任何数据传输或多或少都会有所欠缺或是接收到的数据出现错误。如果刚好又是那些人们本不需要的冗余数据,这就更令人烦恼。
智能数据传输
因此,普遍适用的情况是:数据传输率越小,干扰带来的麻烦就越少。人们可以尝试放弃通过在附加的通信功能中提高传输率,采用能把必要总线带宽降至最低限度的智能数据传输。CANopen可提供若干途径。除了通过过程数据压缩编码,并将其巧妙编入PDO映射外,系统开发人员主要可通过选择优化传输方式来降低PDO负载。
源自SPS编程而为大家所熟知的定期数据传输也应用于某些总线系统和工业解决方案,它所要求的高传输速度带有上文所提到的不足之处。微控制器的速度必须快到来得及储存接收到的数据,为此要有快速存储模块,而发射方产生数据的速度也要足够快才行。纯粹的事件驱动传输通常更具优势。
事件和计时器触发的PDO
CAN应用中优先采取的传输方式是事件触发式报文发射。一个日期的改变即可导出触发事件,也就是说,PDO中任何一个传感器值所产生的变化都会启动相应的PDO传输。事件可以是PDO特定计时器周期性的计时到期。在PDO通信参数的分指数5中确定了事件计时器的周期。这个值通常由SDO限定。
事件和计时器的联合触发也是可行的。在这种情况下,最晚在事件计时器到期后便会产生PDO传输。如果计时器到期前PDO中传输的某个数据有所变化,PDO会被尽快发送出去。在PDO组态参数分指数4中设置了禁止时间。为发射PDO(图)而设定的时间窗口在相应的组态中避免了情况迥异的各类总线负载。当然,其前提是本地时间计时器要及时地与之同步。譬如在CANopen中就有时间报文,以小到毫秒的精确度向所有参与者分布全球时间。系统设计的首要任务之一就是总线负载的均匀分配,这样才能把最大总线负载和由此而来的最高传输速度尽可能地保持在低状态。为此,CANopen有相应的PDO同步传输。
评论
加载更多