基于Linux的CAN总线扩展系统及方法

文档序号:9786763阅读:777来源:国知局
基于Linux的CAN总线扩展系统及方法
【技术领域】
[0001] 本发明涉及电子技术领域,特别涉及一种基于Linux的CAN总线扩展系统及方法。
【背景技术】
[0002] CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由研发和生产 电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用 最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入 式工业控制局域网的标准总线。CAN的高性能和可靠性已被认同,并被广泛地应用于工业自 动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一, 被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可 靠的数据通信提供了强有力的技术支持。
[0003] -个可用的CAN网络节点包括CAN控制器与CAN收发器,CAN收发器用于物理层信号 的接受、发送,将单端信号与CAN总线上的差分信号互相转换,现有产品如MCP2551、 TJA1050、TJA1040等;CAN控制器用于CAN网络的波特率设置、报文滤波设置、报文接受与发 送、传输错误等的控制。现有的大部分32位的ARM微处理器Μ⑶内部集成了 CAN控制器,例如 STM32系列、LM3S系列、LPC系列单片机,还有外置的如MCP2515、SJA1000等。
[0004] 现有技术方案一:如图1所示,采用单个ARM处理器,内部集成CAN控制器、USB接口, 一端通过CAN收发器与CAN总线相连,另一端通过USB虚拟串口(VCP)与上位机USB接口相连, 只需要将虚拟串口数据或指令通过ARM处理器转换成CAN控制器的配置与报文的收发处理。
[0005] 现有技术方案二:如图2所示,采用单个ARM、MSP430或者8051处理器,内部集成SPI 控制器、USB接口,一端通过SPI接口与外置的CAN控制器相连,CAN控制器通过收发器与CAN 总线相连,另一端通过USB虚拟串口( VCP)与上位机USB接口相连。
[0006] 现有技术方案三:如图3所示,采用单个MSP430或者8051处理器,具有带ALE (Address Latch Enable)地址锁存的外部扩展总线、USB接口,一端通过外部总线接口与外 置并行CAN控制器相连,CAN控制器通过收发器与CAN总线相连,另一端通过USB虚拟串口 (VCP)与上位机USB接口相连。
[0007] 传统的个人计算机(PC)实现对CAN总线分析与调试,一般通过以下三种技术手段: 一、使用PCI -Expre s s (PC I-E)接口的CAN总线协议采集卡;二、采用USB转CAN调试器,三、CAN 总线分析仪,例如致远电子的CANS c op e总线协议分析仪。
[0008] 无论采用PCI-E的CAN总线采集卡、USB转CAN或者CAN分析仪,设备或者装置均无法 脱离计算机、笔记本单独使用,这在很多工业现场应用环境下,不具备这样的体积空间与电 源要求;采用现有的技术,均是有所取舍,或者造价昂贵、功能复杂,或者价格低廉性能降 低,效率低下,出错概率高;采用现有的技术方案,CAN总线的扩展性能均比较差,只能同时 调试单个/两个CAN网络。

【发明内容】

[0009] 本发明所要解决的技术问题是如何提高CAN总线访问效率,减少出错几率。
[0010] 为此目的,本发明提出了一种基于Linux的CAN总线扩展系统,包括:
[0011] MPU微处理器、扩展总线接口 EBI、控制逻辑转换器、总线驱动器、CAN控制器、CAN收 发器;
[0012] 所述MPU微处理器用于访问所述CAN控制器中的寄存器;
[0013] 所述扩展总线接口 EBI用于在访问所述寄存器时产生数据总线信号、地址总线信 号和第一控制逻辑信号;并将所述数据总线信号、地址总线信号和第一控制逻辑信号传输 至所述扩展总线接口的对应输入/输出端口上;
[0014] 所述控制逻辑转换器用于根据所述地址总线信号和第一控制逻辑信号产生访问 所述CAN控制器所需的第二控制逻辑信号;
[0015] 所述总线驱动器用于在所述第一控制逻辑信号的控制下使能与控制所述数据总 线信号的传输方向;
[0016] 所述CAN控制器用于在所述第二控制逻辑信号和所述总线驱动器的驱动下,实现 所述CAN控制器的寄存器访问,在所述MPU微处理器的控制下,实现与所述CAN收发器的接收 与发送。
[0017] 优选地,所述处理器包括高性能外设总线AHB;所述MPU微处理器用于通过所述高 性能外设总线AHB访问所述CAN控制器中的寄存器。
[0018] 优选地,所述扩展总线接口 EBI包括静态存储器控制器SMC和端口复用逻辑;
[0019] 所述静态存储器控制器SMC用于在访问所述寄存器时产生第一数据总线信号、地 址总线信号和第一控制逻辑信号;并根据端口复用逻辑将所述数据总线信号、地址总线信 号和第一控制逻辑信号传输至所述扩展总线接口的对应输入/输出端口上。
[0020] 优选地,所述总线驱动器的一端通过数据总线连接所述扩展总线接口 EBI,另一端 通过地址/数据复用总线连接所述CAN控制器。
[0021 ]优选地,所述总线驱动器的控制时序为:
[0022] M7 : 0] = 5[31 : 24] & MS
[0023] DIR = NRD CSi = NCS
[0024] 其中,AD[7:0]表示地址/数据复用总线的输出信号,D[31:24]表示数据总线的输 入信号,NCS表示第一控制逻辑信号中的片选信号,NRD表示第一控制逻辑信号中的读信号, 示总线驱动器的片选信号,DIR表示总线驱动器的方向信号。
[0025]优选地,所述控制逻辑转换器的控制时序为:
[0030]其中,ALE表示第二控制逻辑信号中的地址锁存允许信号,RD表示第二控制逻辑信 号中的读信号,WR表示第二控制逻辑信号中的写信号,CS表示第二控制逻辑信号中的片选 信号,NCS表示第一控制逻辑信号中的片选信号,NRD表示第一控制逻辑信号中的读信号, ADDO表示地址总线信号中的其中一个地址信号,NWE表示第一控制逻辑信号中的写信号。 [0031]另一方面,采用上述的基于Linux的CAN总线扩展系统,本发明还提供了一种基于 Linux的CAN总线扩展方法,包括:
[0032] 通过MPU微处理器访问CAN控制器中的寄存器;
[0033] 在访问所述寄存器时,通过扩展总线接口 EBI产生数据总线信号、地址总线信号和 第一控制逻辑信号;并将所述数据总线信号、地址总线信号和第一控制逻辑信号传输至所 述扩展总线接口 EBI的对应输入/输出端口上;
[0034] 根据所述地址总线信号和第一控制逻辑信号,通过控制逻辑转换器产生访问所述 CAN控制器所需的第二控制逻辑信号;
[0035] 在所述第一控制逻辑信号的控制下,通过总线驱动器使能与控制所述数据总线信 号的传输方向;
[0036] 在所述第二控制逻辑信号和所述总线驱动器的驱动下,实现所述CAN控制器的寄 存器访问,在所述MPU微处理器的控制下,实现CAN控制器与CAN收发器的接收与发送。
[0037] 优选地,所述通过MPU微处理器访问所述CAN控制器中的寄存器具体包括:
[0038] 通过所述MPU微处理器中的高性能外设总线AHB访问所述CAN控制器中的寄存器。 [0039]优选地,所述在访问所述寄存器时,通过扩展总线接口EBI产生数据总线信号、地 址总线信号和第一控制逻辑信号;并将所述数据总线信号、地址总线信号和第一控制逻辑 信号传输至所述扩展总线接口 EBI的对应输入/输出端口上具体包括:
[0040] 在访问所述寄存器时,通过所述扩展总线接口 EBI的静态存储器控制器SMC产生第 一数据总线信号、地址总线信号和第一控制逻辑信号;并根据端口复用逻辑将所述数据总 线信号、地址总线信号和第一控制逻辑信号传输至所述扩展总线接口的对应输入/输出端 口上。
[0041] 优选地,该方法还包括:所述MPU微处理器通过所述扩展总线接口 EBI挂载4组CAN 控制器和CAN收发器,每组挂载多路CAN控制器和CAN收发器。
[0042]通过采用本发明所提供的基于Linux的CAN总线扩展系统及方法,高性能MPU通过 EBI总线直接扩展CAN总线,高性能MPU的EBI并行总线访问速度快,中间仅需要硬件信号转 换匹配,没有软件协议转换过程,减少了出错几率,提高了 CAN控制器的性能与效率;采用 EBI总线扩展的方式,由于EBI总线本身扩展性非常强,所以采用该种方式可以扩展多路CAN 总线,可以同时驱动多个CAN控制器并行工作。通过基于Linux开源平台实现,平台稳定性 高,既提高了性能,又可以保证技术的稳定、可靠性,同时降低了研发生产成本;本发明完全 可以集成在一台单独的小型便携式、手持式设备上开发与使用,摆脱了计算机体积、电源的 限制,大大提高了现场使用的灵活性。
【附图说明】
[0043]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理 解为对本发明进行任何限制,在附图中:
[0044]图1-3示出了现有技术中对CAN总线的分析与调试的框架结构示意图;
[0045]图4示出了本发明MPU通过EBI总线连接CAN控制器的扩展结构示意图;
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1