相信有用过开发板的网友都会听过CAN连接端口,但是又不知道是什么来,又或者好像我一样跟本从来未用过,身边又没有同学知道CAN是什么东西,就像迷一样的CAN连接端口,所以我在网上找了些资料,跟大家解开这个迷!
控制器区域网路(Controller Area Network, 简称CAN 或CANbus)是一种通讯协定,其特点是允许网路上的设备直接互相通讯,网路上不需要主机(Host)控制通讯。 CAN是建基于广播传输机制,CAN会利用讯息中的一小部份来识别和定义内容和资讯的优先顺位,以进行资讯的传递,并非使用指派特定站台位址(station address)的方式。
由Bosch 公司于1895 年所开发的Controller Area Network (CAN),本是要用于车内网路(In-vehicle network)。在此之前,汽车制造商均是透过点对点接线系统,以连接车内的电子装置。而由于车辆使用越来越多的电子装置,因此大量的传统接线除了将占据许多空间之外,亦将提高成本。有鉴于此,制造商开始以车内网路取代实体接线,借以降低接线成本、复杂度,与重量。 CAN 即为高密度的序列汇流排系统,可建构智慧型装置的网路功能,亦成为车内网路的标准。 CAN 因而迅速普及于汽车工业,而接着在1993 年成为ISO 11898 的国际标准。在1994 年已发展出多项以CAN 为标准的进阶协定,如CANopen 与DeviceNet。其他市场也已广泛采用这些衍生协定,并成为目前工业级通讯作业的标准。
CAN 可提供低价位且耐用的网路,以沟通多组CAN 装置。举例来说,控制器仅需单一的CAN 介面,即可取代系统中所有装置的类比与数位输入,因此就可降低整体成本。网路中的各组装置均具备了CAN 控制器晶片,每个均可接收相关讯息,各组装置自行辨识该笔讯息是否相关并予以筛选。此外,各笔讯息均具有其优先性。若有2 个节点同时尝试传送讯息,则具有较高优先性的讯息将先行发出,低优先性的讯号将延后传送。
一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。 CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。
CAN 属于点对点网路。意即当独立节点要读写CAN 汇流排上的资料时,并不需要透过主机控制器。而当CAN 节点准备传送资料时,将先检查汇流排是否处于繁忙状态,接着将CAN 框架写入至网路中。而传输完毕的CAN 框架,将不包含传输节点与任何预设接收节点的位置。反之,是由整组网路的专属仲裁ID 标记该框架。CAN 网路上的所有节点均将接收CAN 框架,而根据该完成传送框架的仲裁ID,网路上的各个CAN 节点均可决定是否要接收该框架。 若有多个节点于同时尝试将讯息传送至CAN 汇流排,则最高优先度的节点(即为最低的仲裁ID) 将自动先进入汇流排。较低优先度的节点必须等到汇流排完成作业,才会再次尝试进行传输。依此方式,即可确保CAN 网路中的CAN 节点,将进行精确的通讯作业。
由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。CAN 原来是要用于汽车产业,因此最常见的应用即为车内电子网路。然而,由于最近15 年来,已有越来越多的产业了解到CAN 的优点,因此CAN 更已普遍进入多项应用之中。如有轨电车、地下化捷运、轻轨铁路,与长距离火车的轨道应用,均已采用了CAN。在这些车辆之中,均可发现多种CAN 所建构的网路,如车门系统、煞车控制器、乘客计算系统,还有更多。 CAN 亦可用于飞行器的应用,如飞行状态感测器、导航系统,与座舱之中的搜寻电脑。多种航太应用亦可发现CAN 汇流排的踪迹,从飞行资料分析到飞行器引擎控制系统,如燃料系统、帮浦,与线性致动器。所以各位网友没有用过CAN是一件很正常的事,通常工业方面的工程师才会用到开发板上CAN的功能。
除了部份開發板可以經CAN连接端口溝通之外,亦有些專為CAN通訊而開發的產品。
MCP2515的CAN总线监控器演示板套件包含两个相同的板,它们可以连接在一起,创建一个简单的两个节点控制器区域网络(CAN)总线,它可以通过PC接口进行控制和监视。该板也可以被连接到一个现有的CAN总线。使用PC接口,用户可以配置MCP2515寄存器,发送并接收CAN讯息。
文章评论(0条评论)
登录后参与讨论