您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

基于ARM控制器LPC2294的CAN/PCI智能通讯卡计划

发布日期:2011-05-23

  LPC2294是PHILIPS公司推出的一款成果强大、超低功耗且具有ARM7TDMI内核的32位微控制器。它具有丰富的片上资源,完全可以餍足一样平常的产业控制必要,同时还可以淘汰体系硬件计划的巨大度,进步体系的稳固性。

  CAN(“Controller Area Network”)总线控制器局域网是一种能有效支持散布式控制或及时控制的串行通讯网络。CAN总线以其高性能、高可靠性、便宜等特性,越来越受到人们的器重和青睐。为了有效的办理产业现场的CAN节点,充分发挥CAN总线的性能,通讯卡的计划与研究非常须要。但如今市场上雷同产品存在着两点不敷。

  起首是一样平常产业现场中大概拥有不止1条CAN总线,而如今计划的通讯卡上的CAN的接口太少,因而会给配置的会合办理带来困难。

  二是如今两条CAN网段问的通讯重要通过一对一CAN总线网桥来实现,但这种方法办理不了产业现场中同时在几条CAN网段问传输数据的需求,也容易导致组网紊乱。

  为此,本计划选用的ARM控制器LPC2294内部集成有四路CAN控制器,完全切合CAN范例CAN2.0B标准和ISO11989-1标准。全局验收过滤器可辨认险些全部总线的11位和29位Rx标识符。作为本计划的内核部件,LPC2294的利用可以或许很好地办理上述2个题目,它不但能担起主控制器的事变,同时还可作为CAN网络的数据传输控制器,来与网络中的节点实现数据互换。

  1 硬件计划方案

  如今谋略机的生长,除了少数专门的工控机还在利用ISA总线以外,PC机上利用最为广泛的便是PCI总线了。PCI总线是Intel公司推出的一种高性能32/64位PC机局部总线,大概同时支持多组外围没备而不受制于处理惩罚器,其数据吞吐量很大(33 MHz总线频率、32位传输时,其峰值可高达132 MB/s),PCI总线寄托其良好的性能必将代替ISA总线。因此,本文基于PCI总线来计划一个带有4个CAN总线网段的智能通讯卡。图1是该通讯卡的团体硬件布局图。

  1.1 PCI总线接口的实现

  PCI总线具有非常严格的范例,也具有精良的兼容性。但是PCI总线协议也比较巨大。本计划选用专用的PCI总线接口芯片PCI9030来实现网关的PCI总线接口。PCI9030是PLX公司开辟的低代价PCI总线从模式接口芯片。该芯片功耗低,切合PCI2.2范例,用户计划时只需思量局部总线一侧的逻辑控制电路和用于配置的外部EEP-ROM,而不必思量PCI协议的详细实现要领,如许就大大简化了计划难度,收缩了开辟周期。

  PCI9030请求有一块EEPROM作为初始化存储器。在体系加载时,PCI9030先从该EEPROM中加载初始数据,举行初始设置,因此,EEP-ROM中的信息是否精确决定了PCI卡的加载和运行是否正常。本计划选用ST93CS56作为PCI9030的初始化存储器,其布局方案如图2所示。

  1.2 CAN总线接口的实现

  该通讯卡中CAN总线接口部分实现有以下两种常用的要领:

  (1) 独立CAN总线控制芯片实现

  即采取飞利浦公司的SJA1000独立CAN控制器来实现CAN协议。这种要领的好处是能实现较巨大的成果,机动性也不错,但由于它是独立的控制器,计划通讯卡拥有4个CAN网段就必要4片SJA1000,如许会导致资源冗余,体系会比较巨大,并且稳固性也会受影响,计划难度也较大。

  (2) 带CAN接口的微控制器实现

  该要领具有代表性的有飞利浦公司的ARM芯片LPC2294,它集成有4路片上CAN总线控制器,能很方便地实现多路CAN总线接口,减小体系范围,进步体系稳固性。

  比较上述两种要领,在传统的SJA1000中,吸取过滤只能餍足一些规律性较高的ID筛选过滤,或对个数较少的ID (一样平常小于10~15个)举行恣意筛选过滤,而难以实现更巨大的恣意ID举行筛选过滤,这无疑增长了体系软件计划及运行包袱。

  而第二种计划要领相对较为简便。由于LPC2294微控制器中为全部CAN控制器提供了全局的吸取标识符查问成果,因而能容易地设谋略巨大的ID吸取过滤,其事变的重点重要在ARM芯片的软件计划上。本文采取第二种要领来实现CAN总线接口,并采取PCA82C250作为CAN总线驱动器,同时将6N137连入CAN控制器和CAN驱动器之间以低落CAN总线对网关卡的电磁滋扰。图3所示是LPC2294中一个CAN接口的连接图,别的接口与之雷同。

  1.3 微控制器与PCI9030之间的硬件接口计划

  微控制器与PCI9030之间的硬件计划是该通讯卡的内核控制部分。本计划采取ALTERA公司的FPGA EPlC6来实现微控制器与PCI9030之间的接口。EPlC6是ALTERA公司的一款FPGA芯片,它内部集成了20块128×36 bits的RAM模块,可以方便地将它编程为所必要的“双口RAM”,然后将上行数据(CAN节点发往PC机的数据)和下行数据(PC机发往CAN节点的数据)通过该“双口RAM”缓存转发。由于EPlC6拥有丰富的I/O口,故可机动选择数据格局(32位/16位/8位)以及传输要领,本文采取16位复用传输模式。

  EPlC6还要编程实现PCI9030与ARM之间的逻辑控制时序转换。由于PCI9030与ARM的控制信号不完全同等,以是必要举行逻辑控制时序转换。同时,本文PCI9030的局部总线一侧采取的是地点/数据复用模式,而ARM控制器采取的黑白复用模式,因此也必要EPlC6举行模式转换:在PCI9030的地点周期内可利用LALE将16位地点锁存到EPlC6内部寄存器,比及PCI9030的数据周期到临时,再与数据一起送到ARM的地点口与数据口上,以方便ARM取用。

  2 软件计划

  2.1 通讯卡软件计划

  通讯卡上的软件重要指的是ARM控制器上的软件步伐。本文选用ARM控制器LPC2294来实现智能数据传输路径选择。LPC2294是通讯卡的控制内核。它集成有4路CAN控制器,每个CAN控制器都与独立CAN控制器SJA1000有着相似的寄存器布局,它只是对器件寄存器访问由原来的8bit字节访问变化为了32 bit的双字访问。LPC2294可实现CAN网段与上位机之间的数据传输控制(包括上行数据传输和下行数据传输)以及差别CAN网段间的数据传输控制(平行数据传输)。

  LPC2294为全部CAN控制器提供了全局吸取标识符查问成果。它包括一个512×32 (2 k字节)的RAM,可通过软件处理惩罚在RAM中存放1~5个标识符表格。整个吸取滤波RAM可容纳1024个标准标识符或512个扩展标识符,或两种范例的殽杂标识符。由于容许的表格范畴有2 k字节,故能容易地餍足巨大的ID吸取过滤请求。LPC2294在FullCAN模式下能主动吸取并选定网段的标准帧,但本文不采取FullCAN模式。

  若在EPlC6的“双口RAM”中设置一个状态与控制寄存器组(SOR),那么,上位机便可通过访问该寄存器组查问通讯卡的运行状态。为了有效办理数据传输,防备传输进程中的数据丢失,本计划在ARM内部的静态RAM区开辟了一个全局数据收发缓存区(GRTB),其表示图如图4所示。

  图4中,对付标准帧来说,它只有11位标识符,因此,图中的标识符字节3和4保存不消。而帧格局用来区别此帧是标准帧(0)还是扩展帧(1)。当RTR为1时,表现此帧是长途帧。图中的源段号和目标段号用于表明此帧来自哪个网段以及将要送往哪个网段(此处将上位机也作为此中一段来处理惩罚)。DLC表明传输的数据字节数量。

  2.2 通讯卡的运行流程

  体系上电复位后,体系将起首运行初始化步伐。LPC2294的初始化重要是初始化全局吸取和发送缓冲区以及打扫状态寄存器中的值等;PCI9030的初始化重要是从EEPROM中加载初始数据以举行初始设置,CAN初始化包括设置模式、总线时序、停止使能、标识符表格,这些设置均可通过给CAN芯片的内部寄存器赋值来实现。初始化告成之后,通讯卡将举行自检,并在确定启动正常之掉队入事景况态。这一部分的步伐流程图如图5的A部分所示。

  体系进入事景况态后(图5中的B部分)将等待停止孕育产生,如有,则进人相应的停止办事步伐。要是是数据传输,则转入数据传输子步伐,数据传输子步伐重要包括3个部分:

  (1) 下行数据传输

  下行数据传输指的是上位机向CAN网段发送数据。即上位机把数据写入到“双口RAM”中以等待LPC2294将数据取走。LPC2294将上位机发来的数据临时存放在全局数据收发缓存区(GRTB)中,然后查抄立室的目标段是否有空闲的发送区(CANSR中的TBS位为1),如有则将数据分别写入每个网段的发送区并发送。要是立室网段的3个发送缓冲器全为忙,则循环等待,直到有一个以上的发送缓冲器为空再举行发送。

  (2) 上行数据传输

  上行数据传输指的是CAN网段向上位机发送数据。当步伐检测到某个网段X的CAN停止/捕获寄存器(CANICR)中的吸取停止位(RI)置位后,它将进入吸取停止办事步伐。此时步伐将到标识符表格中查找立室的标识符,CAN控制器会在吸取时主动搜刮吸取滤波器的RAM中的表格并举行立室,只要找到立室值则孕育产生吸取停止并关照用户保存信息,不然主动放弃这一帧信息而不孕育产生吸取停止,要是它只找到一个立室值(源网段中),则阐明此数据是只传输给上位机的,此时步伐会将吸取到的数据信息按上面先容的格局生存到全局数据收发缓冲区(GRTB),以等待LPC2294将其发送给EPlC6的“双口RAM”,以便上位机读取。

  (3) 平行数据传输

  当出现吸取停止时,步伐也会到标识符表格中查找立室的标识符,要是找到一个以上的立室值,则阐明另有其他网段必要这些数据。此时步伐会将吸取到的数据信息读入到全局数据收发缓冲区(GRTB)中去,然后把数据发往立室网段。

  在调用相应的数据传输子步伐后,步伐将置标记位并返回。要是是别的一些停止,则转入相应的停止办事步伐。若没有停止孕育产生,则查抄PC机是否有参数配置必要,最掉队行体系自检。本体系会在体系空隙时举行自检并上传状态报表,如许可以利用户随时相识通讯卡的事变环境,对付进步体系的事变可靠性以及出现妨碍时的查错服从具有紧张的意义。

  2.3 上位机步伐计划

  本计划中,上位机软件计划步伐重要包括通讯卡底层驱动步伐和用户办事步伐。其计划框图图6所示。

  通讯卡底层驱动步伐的成果重要是配置CAN总线接口、收发CAN总线上的数据、对CAN总线举行及时监测、实行用户步伐的收发下令等。CAN总线和PCI总线错误均采取停止处理惩罚,并通过变乱(Event)内核东西直接关照给用户步伐。

  PCI的用户办事步伐则通过PCI通讯步伐与体系PCIDI (PCI device interface)举行通讯,并由体系完成PCI协议的处理惩罚与数据传输。用户可以在计划好的上位机界面上方便的设置节点参数,查问节点状态信息。

  3 结束语

  本文计划的CAN/PCI智能通讯卡采取成果强大的ARM芯片LPC2294作为内核控制芯片,因此,该通讯卡可以或许同时处理惩罚4路CAN总线向上位机的数据传输。对付CAN网段之间的通讯需求,本通讯卡也可以或许很好地餍足,并可使产业现场的CAN网络组网更为大略。