当前位置:首页 > 通信技术 > 通信技术
[导读]1 前言 控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是

1 前言
控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。CAN的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。CAN具有如一下优点:
1)使用简单方便。许多CAN控制器实现了CAN物理层及数据链路层的大部分功能,用户只须对CAN控制器进行初始化和对CAN总线上的数据进行收发操作即可实现通信;
2)高可靠性。CAN上的最大通信速率可达1Mbps,CAN总线是多主节点,各节点通过总线仲裁获得总线控制权。完善的错误处理机制保证了高噪声干扰环境下数据传送的安全可靠;
3)系统可扩展性能好。CAN总线是基于发送报文的编码,而不是对CAN控制节点进行编码,故增添或删除CAN节点不会对系统造成太大的影响。
CAN总线以报文为单位进行信息传送,它支持4种不同类型的报文帧:数据帧、远程帧、超载帧和错误帧。报文中包含信息标识符ID,它标志了报文的优先权。CAN总线上各个节点都可主动发送,总线上的报文采用标识符ID进行仲裁,ID值越小,优先级越高。具有最高优先权报文的节点赢得总线使用权,而其它节点自动停比发送。在总线再次空闲后,这些节点将自动重发原报文。网络中的所有节点都可由ID来自动决定是否接收该报文。每个节点都有ID寄存器和屏蔽寄存器接收到的报文只有与该屏蔽的功能相同时,该节点才开始正式接收报文,否则它将不理睬ID后面的报文。这使CAN系统非常灵活,可任意扩展或改变网络组成。
C8051F系列单片机是集成的混合信号片上系统SOC(System on chip),具有与MCS-51内核及指令集完全兼容的微控制器,除具有标准8051的数字外设部件之外,片内还集成数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。正是由于其体积小、集成度高、功能多、配置容易、使用方便等特点,已被广泛应用于智能仪表、数据采集、自动化控制等领域。因此本文采用C8051F120设计与实现CAN总线通信协议,充分发挥其体积小、可靠性高的特点。C8051F120是完全集成的混合信号片上系统MCU芯片,具有64个数字I/O引脚(100脚TQFP封装)。
2 数据传输格式的制定
在CAN2.0规范中规定,每次收发最多只能传送8字节.这可以满足大多数工业领域中控制命令、工控状态和测试数据的一般要求;但实际应用中,往往出现传送多于8字节的要求,此时应通过报文的拆卸和拼接技术予以实现。本文在CAN2.0A的基础上,定义了简单的传输格式,完成了单帧数据和多帧数据准确快捷的传输。
信息传递格式如表一所示:
500)this.style.width=500;" border="0" />

其中,各位的含义如下:
FF:0表示为标准格式,1表示为扩展格式;
RTR:0表示为数据帧,1表示为远程帧;
DLC.X:数据长度代码位(0~8);
ID.X:信息标识符位:
ID.28~ID.26为信息功能标识
    ID.25~ID.21为接收任务标识
    ID.20~ID.18为接收节点地址标识
X :保留位,默认为0,不能对保留位进行写操作;
DATAO:数据场的第一个字节,本协议中用来表明数据的属性;
DATA0.7~DATAO.5为发送节点地址标识;
DATA0.4~DATAO.1为数据功能标识
    DATA0.0 0为扩展位,‘0’ 表明数据长度小于8不用扩展,‘1’ 表示数据长度大于8需要扩展DATA1作传递次数索引。
 DATA1: DATAO.0为0时,传递数据;DATAO.0为1时,为数据传递次数的索引。
本文设计的信息优先级从高到低依次为:信息功能标识、任务功能标识和目标节点地址标识。信息功能标识设在ID的最高几位,通过3位的功能代码可以区分某些情况的8种基本功能:这些功能可以为节点状态控制、节点保护、紧急情况通报以及有时间标记的信息等;接收任务标识表明本帧数据的任务属性,容量为32;目标节点地址指示本次数据的目的地址,容量为8。
DATA0.0在本协议中作为标志位,用来区别单帧传输和多帧传输,解决了大于8字节的字符串的传输问题。当标志位为1时,表示传送的是多帧数据;为0时表明是单帧数据。这样克服了CAN 只能传输小于等于8字节数据的缺点,实现了大于8字节的数据的传输。
为了识别多帧传输中可能会出现的重帧和丢帧现象,本协议规定数据场第一字节作为多帧数据传输次序的索引。按照本协议制定的格式传输数据时,单帧最多传输7字节的实际数据:当数据流长度大于7字节时,就要分成多帧传送。
3 应用层协议设计
在CANV2.0规范标准中,只规定了ISO参考模型的物理层和数据链路层,没有规定媒体的连接单元以及驻留媒体,也没有规定应用层。物理层负责譬如物理信号传输、译码、位时序和位同步等功能,而数据链路层负责总线仲裁、信息分段以及数据安全、数据确认、错误检测、信号传输和错误控制的功能。实际上,即使在执行一些非常简单的基于CAN的分布式系统时。除了基本的两层服务之外,还要求或希望有更多功能,如发送长于8字节的字符串、响应或确定数据传送、标识符分配、网络启动或监控节点。
由于这些附加的功能直接支持应用过程,所以它可以被认作“应用层”。如果正确执行,则应用层以及相应的应用层接口(子协议)为通讯和应用过程提供了一个清晰定义的分界以便把它们区分开来。在一些利用简单的通信协议就可以满足要求的情况下,采用复杂的协议会造成资源的浪费,而且,使用起来也很不方便,反而限制了CAN的灵活性。所以在一些情况下制定适合要求的通信协议,对CAN的开发和使用至关重要。本文根据实际系统设计的需要,在2.0A技术规范的基础上制定了CAN应用层通信协议
CAN应用层协议主要负责建立CPU与底层之间的桥梁,它主要由四部分组成:节点的开关机制、数据的收发机制、错误处理机制和中断管理机制五部分组成。四种机制互相联系、互相制约,共同维护系统的运转。限于篇幅本文主要介绍关键的数据收发机制。
3.1 数据发送机制
发送机制主要实现将CPU要发送的数据接过来,并整理为符合应用层协议规定的帧格式,将拆卸好的小包(数据帧)顺序放入循环队列中等待发送,并负责管理和维护发送循环队列的止常运转。在定时器定时中断中定期对循环队列进行扫描,如果发现队列中有数据等待发送,则调用发送函数将数据发送到CAN总线。
在底层开辟了一个临时缓冲区用于暂时存放等待发送的小包,临时缓冲区采用循环队列的存储结构,对数据实行先入先出的管理模式。循环队列是一个42*11的二维数组,用来暂时安置CPU即将发送的数据,数据被顺序安排在循环队列中等待发送。每增加一帧数据,循环队列的尾指针加1;每成功发送完一帧数据,循环队列的头指针减1。当循环队列中没有数据时,队列的状态为空,否则指示为不空;若循环队列的头指针和尾指针重合而队列又处于不空的状态,此时队列为满的状态。当队列处于满的状态时,禁止向队列再写入数据,否则容易导致数据的覆盖或丢失。队列中数据遵循先入先出的原则,CPU将数据从队列尾部装入,向CAN总线发送数据时则从队列头部将数据读走。发送循环队列的曾理单位为帧,每次操作都是11个字节为单位。在发送机制运转前,首先对发送循环队列初始化,将循环队列的头指针、尾指针赋值为零,将已占用的空间也赋值为零。
CAN发送机制主要由两大模块组成:打小包模块和帧发送模块。当CPU有数据需要发送时,调用打小包函数,要求给出待发送数据的存放地址。打小包函数将会按照本协议规定的格式将发送节点地址、接收节点地址、信息类型、任务标识、数据标识等参数整理为CAN数据链路层ID的格式,将数据组装成符合应用层协议所规定的数据帧(小包),实现对长度大于7字节的数据的打小包处理,按照所填加索引号的顺序放到发送循环队列中等待发送。打小包函数的流程图如图1所示:
500)this.style.width=500;" border="0" />

3.2 数据接收机制
CAN接收机制负责将数据从CAN总线上接收下来,按照数据源节点的地址将其还原为发送前的格式,准确无误的传递给上层,并负责为上层提供接口函数。在CPU将数据取走以后,清空相应的数组。
在底层开辟了一个临时缓冲区用于暂时存放从CAN总线上接收下的数据,临时缓冲区采用二维数组的格式,容量为4*3*64。第一维的容量为4,分别指示发送节点的地址;第二维容量为3,作为数据的扩展缓存,指示可连续存放来自于同一节点的包的数目;第三维的容量为64,用来存放经过整理以后的数据。一般来说,开辟一个二维的空间就可以使协议周转,但是,在实际系统中可能会出现CPU还未能将整理完毕的数据取走此时又接到来自于同一节点的新的数据,这样就可能导致新的数据覆盖掉原来的数据,造成数据的丢失。为避免这种潜在地危险,因此开辟了三维空间,在最坏的情况下,每个节点都可同时容纳来自于同一节点连续发送的3包数据,大大降低了数据丢失的可能性。接收数据流程如图二所示。
500)this.style.width=500;" border="0" />

图 二: 数据发送流程
5  总结
本文创新点:CAN总线以其卓越的特性、极高的可靠性和独特的设计,在工业过程监控设备的互联方面得到广泛的应用,受到工业界的广泛重视,并被公认为是最有前途的现场总线之一。作为通用、有效、可靠及经济的平台,CA N协议也已经广泛地受到了欢迎。由于CAN2.0规范固有的局限性,客观上要求用户建立高层协议对CAN进行完善。本文所设计的CAN总线应用层协议已经投入使用,具有简单、灵活、移植方便等特点。

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

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度

2023/24 财年收入降至 15.50 亿欧元(上一年同期:17.91 亿欧元) 调整后息税折旧摊销前利润率为 24.8% 居林和莱奥本的半导体封装载板生产将于 2024/25 财年末开始 2024/...

关键字: BSP 半导体封装 印制电路板 汽车

上海2024年5月14日 /美通社/ -- 固特异 SightLine 智能轮胎技术解决方案荣获中国电子行业主流媒体《中国电子报》颁发的 2024 汽车芯片优秀产品奖。本次获奖是对固特异研发成果的高度认可。固特异致力于引...

关键字: 汽车芯片 轮胎 BSP SI

慕尼黑2024年5月9日 /美通社/ -- TÜV南德意志集团(以下简称"TÜV南德")持续保障安全、可靠及可持续发展。作为全球化的服务提供商,TÜV南德2023年全年营收达约31亿欧元,首次突破30亿欧元大关,同比增长...

关键字: BSP 可持续发展 数字化 人工智能

凭借深度学习技术和SmartBid产品,百度国际MediaGo获得美国商业奖认可 旧金山2024年5月6日 /美通社/ -- 第22届美国商业奖(American Business Award®)近日发布获奖名...

关键字: MEDIA GO SMART BSP

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE
关闭
关闭