快捷搜索:

采用LPC2294四路CAN控制器实现智能通信卡系统的设

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收集组网更为简单。

责任编辑:gt

您可能还会对下面的文章感兴趣: