Questions tagged «can»

CAN代表控制器局域网,是汽车应用中经常使用的总线。它是两线差分协议,工作在10 kbit / sec至1 Mbit / sec的波特率上。

5
支持CAN的微控制器是否足以驱动CAN总线?
如今,微控制器内置了许多CAN模块。的PIC18F2480是这样一个例子。该微控制器(具有内置CAN)能够自行驱动CAN总线,还是需要外部CAN收发器/控制器? 我相信CAN既具有软件层又具有硬件层,从外观上看,这些支持CAN的微控制器似乎只是软件,但它并未声明它可以或不能按原样驱动CAN总线。 我希望通过CAN总线连接六个以上的微控制器,并且想知道我是否需要一个跨所有微控制器的收发器,或者从软件和硬件的角度来看内置的东西是否可以处理通信。 假设我将拥有必要的端接电阻器和其他小型分立元件(电容,电阻器等)
45 can 


3
连接双绞线屏蔽的正确位置
我有两个通过包含5个子电缆的电缆连接的PCB: 通过定制同轴电缆(类似于笔记本电脑电源上的电缆)提供6v电源。 通过100ohm阻抗屏蔽双绞线获得2个100mbps LVDS。 通过相同的120ohm双绞线电缆传输2x 1mbps CAN。 每条LVDS电缆的RX端都用100欧姆电阻端接。他们有带排扰线的铝箔屏幕。 每条CAN电缆的两端都用120欧姆电阻器端接。他们有带排扰线的铝箔屏幕。 隔离的24v电源被输送到左侧的板上,然后将其降低到6v(非隔离)。这两块板都有用于本地电子设备的自己的3.3v DCDC稳压器(非隔离)。 我的问题: 屏蔽应在哪端连接?我假设LVDS屏蔽层应在源端连接,如图所示。 由于CAN总线是源的两端应二者的CAN屏蔽的端部被连接到GND? 补充:两块PCB都装在塑料盒中,没有接地。

6
串行协议定界/同步技术
由于异步串行通信甚至在当今的电子设备中也很普遍,我相信我们许多人会不时遇到这样的问题。考虑与串行线(RS-232或类似产品)连接并且需要连续交换信息的电子设备D和计算机。即每个发送一个命令帧,并每个发送一个状态报告/遥测帧答复(报告可以作为对请求的响应发送,也可以独立发送-在这里并不重要)。通信帧可以包含任何任意二进制数据。假设通信帧是固定长度的分组。PCPCX msDY ms 问题: 由于协议是连续的,因此接收方可能会失去同步,或者只是在进行中的发送帧中间“加入”,因此它只是不知道帧起始位置(SOF)在哪里。根据数据相对于SOF的位置,数据具有不同的含义,接收到的数据可能会永久损坏。 所需的解决方案 可靠的定界/同步方案可在恢复时间短的情况下检测SOF(即重新同步所需的时间不超过1帧)。 我了解(并使用了一些)的现有技术: 1)标头/校验和 -SOF作为预定义的字节值。帧末的校验和。 优点:简单。 缺点:不可靠。恢复时间未知。 2)字节填充: 优点:可靠,快速恢复,可与任何硬件一起使用 缺点:不适用于固定大小的基于帧的通信 3)第9位标记 -在每个字节之前附加一个位,而SOF标记为1和数据字节标记为0: 优点:可靠,快速恢复 缺点:需要硬件支持。大多数PC硬件和软件未直接支持。 4)第8位标记 -上面的一种模拟,同时使用第8位而不是第9位,每个数据字仅保留7位。 优点:可靠,快速的恢复,可与任何硬件一起使用。 缺点:需要从/到常规8位表示到/从7位表示的编码/解码方案。有点浪费。 5)基于超时 -假定SOF为某个已定义的空闲时间之后的第一个字节。 优点:无数据开销,简单。 缺点:不太可靠。在较差的计时系统(如Windows PC)上无法很好地工作。潜在的吞吐量开销。 问题: 还有哪些其他可能的技术/解决方案可以解决该问题?您能否指出上面列出的缺点,可以轻松解决这些缺点,从而消除它们?您(或您将)如何设计系统协议?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

3
125 kbit / s的最大CAN总线帧(消息)速率是多少?
我的CAN总线以125 kbit / s的速度运行,并且仅使用扩展帧格式。我想知道我可以发送的CAN帧的最大速率是多少。假设数据长度始终为八个字节。 根据此Wikipedia页面,每个帧的最大帧长度为(1+11+1+1+18+1+2+4+64+15+1+1+1+7) = 128位: 考虑到最少三位帧间间隔,125 kbit / s以下的最大包速率应为: 125000 / ( 128 + 3) = 954每秒帧数。 但是在我的测试中,我无法做到那么高。我可以达到的最大帧速率(使用所有八个字节的数据)约为每秒850帧。 这是什么问题-我的计算或测试方法?

3
CAN总线许可
在寻找多个微控制器之间长距离通讯的可能解决方案时,我发现了CAN总线。但是,它说,任何实施CAN协议都需要支付许可费。 我的计划是为每个节点使用微控制器,CAN控制器(MCP2515)和CAN收发器(MCP2561)在网络上进行通信。 我是否需要支付CAN许可费,还是已经由CAN控制器和收发器的制造商支付了? 提前致谢
14 can  legal  licensing 

3
在CAN总线上传输具有相同ID的不同消息
CAN仲裁是使用ID完成的,总线上的任何节点都可以使用任何ID进行传输(理想情况下不应该,但讨厌的节点可以)。 如果连接在同一CAN总线上的两个不同节点传输具有相同ID但具有不同数据字节的消息怎么办? 我的想法:它将在公共汽车上产生垃圾。谁拥有那些占主导地位的比特,谁就会被传输。
12 can 

3
MCP2551是UART到CAN的转换器吗?
我想使用我的计算机制作250 kbit / s的CAN总线嗅探器。经过研究,我发现MCP2551是一种用于CAN物理层的电压电平调节器。请记住,我想知道此设置是否可以工作。我只想记录交换的消息以进行自动测试,而不是进行交流: PC <-> USB-UART(也许是CP2102,因为我已经有一个)<-> MCP2551 <-> CAN总线 如果不是,什么样的信号必须输入MCP2551才能使我成为总线的一部分?
12 usb  microchip  can 

4
在软件中实现CAN协议层
背景 我正在开发一个项目,该项目将需要以下微控制器规格: 8个12位10kHz ADC 1kB的RAM 48-QFN或更小尺寸 20kbps菊花链式抗噪和纠错通信协议 信号处理要求相当低,并且大多数可以导出到系统中的主处理器。前三个规格易于满足,并且批量购买不到2美元。但是,通信将在非常嘈杂的环境中进行,因此像LIN和I2C这样的易受噪声影响的网络就不存在了。反对LIN的另一个论点是,我想将整个器件以5V或3.3V运行,而LIN收发器需要12V,因此每块传感器板需要额外的稳压器或导线。我最初选择CAN来完成此任务。但是,CAN控制器会增加可观的成本,我很好奇这是否可以通过软件完成。 CAN物理层 CAN规范定义了OSI网络参考模型的数据链路和物理层。存在许多廉价的8引脚IC,例如NXP TJA1040 / 50,Maxim MAX3058 / 59,Microchip MCP2551和TI SN65HVD1050,以实现物理层。如果不是不可能的话,使用D / A转换器或运算放大器来实现物理层将很困难,因此这些IC的成本仅为1美元左右。 CAN数据链路/协议层 对于数据链路层,一些微控制器将CAN协议模块添加到基本UART,I2C和SPI通信层上。但是,它们比基本芯片贵得多。 CAN协议模块成本调查 为了证实这一说法,以下是一些流行的微型和微型CAN版本: ATmega16-ATMEGA16M1(with CAN):$ 3.87,ATMEGA168A(no CAN):$ 3.23 dsPIC-DSPIC33FJ64MC802(带CAN):$ 6.14,DSPIC33FJ64GP202(无CAN):$ 5.48 PIC18-PIC18F2480(具有CAN):$ 6.80,PIC18F24J10(无CAN):$ 2.10 Cortex-M3-STM32F103C4T6A(含CAN):6.50美元,STM32F100C4T6B(无CAN):2.73美元 公平地讲,我只比较了具有相同内存大小的微控制器,但是,许多非CAN版本都可以使用较小的内存来实现。外部CAN控制器(如Microchip MCP2515)几乎为2美元,因此,如果您愿意的话,将CAN集成到微控制器中显然更具成本效益。 有趣的是,ATmega部分是Digikey库存中最便宜的配备CAN的部分。 CAN协议层的功能 dsPIC单片机中的CAN模块具有以下功能: CAN总线模块由协议引擎和消息缓冲/控制组成。CAN协议引擎处理所有用于在CAN总线上接收和传输消息的功能。通过首先加载适当的数据寄存器来发送消息。可以通过读取相应的寄存器来检查状态和错误。检查在CAN总线上检测到的任何消息是否有错误,然后与过滤器进行匹配,以查看是否应接收该消息并将其存储在接收寄存器之一中。 这在软件中似乎相当可行。 问题 是否可以使用软件协议层仅通过廉价的配备UART的微控制器和CAN收发器来实现CAN规范?如果是这样,是否存在任何开源实现? 或者,可以将收发器与UART一起使用以实现自定义协议吗?我可以使用单主机拓扑;我了解,很难在自定义协议中进行仲裁。

1
CAN总线信号完整性
通道为CAN_H(红色),CAN_L(蓝色)和CAN_H-CAN_L(棕色)。 在下图中可以看出,CAN_H-CAN_L具有可接受的信号形状。但是,CAN_H和CAN_L在我看来都不好。实际上,该设备未在嘈杂的环境中运行。我有两个问题: 您是否认为信号完整性是一个问题? CAN_H-CAN_L有时具有1.65 V(左侧部分)的高电平,而有时则具有2.06 V(右侧部分)的高电平。你觉得这有问题吗?

5
CAN总线的颜色代码是什么?
我想知道是否为CAN总线通信线路指定了任何颜色代码,也许在ISO-11898-1中?(我没有免费访问该文件的权限) 我没有任何运气就寻找任何正式文件。 当我问我的同事时,他们都同意颜色(黄色和绿色),但是他们不同意是否是: 黄色,用于CAN-H 绿色代表CAN-L 或者改为: CAN-H的绿色 黄色代表CAN-L

2
启用中断但没有ISR
我想知道如果启用了中断会发生什么情况(例如:恩智浦LPC1778的CAN模块中的仲裁丢失中断),但是没有为该中断定义ISR。 当发生这样的中断时,我知道相应的中断标志将被置位,但是由于我尚未定义任何ISR,因此不会为该中断的控制传递存储任何中断向量偏移地址,因此控制将回传到主例程,我可以通过在主例程中轮询中断标志来重置中断标志(这是我的想法)。当CPU确定没有ISR跳到该中断标志时,会有任何延迟吗? 任何可能发生的解决方案都可以真正帮助我。 谢谢。 更新: 我在uC上启用了CAN中断,但是没有定义ISR。当我执行内部回送测试时,代码进入了无限循环。这是在LPC1778上执行的无限循环的反汇编代码: B . ENDP 所以,如果您正在使用中断,请使用ISR。

3
通过CAN总线选择网络层
我打算在工业自动化应用中使用CAN总线,但是我很难决定如何实现网络层。这里是否有人对在CAN上使用更高层协议有任何建议,该协议为如何分配消息ID和如何格式化数据包提供了指南?我应该开发自己的专有网络层还是实施CANopen等现有标准?

4
正确的CAN总线通讯是否需要接地?
由于CAN总线是差分信号系统,因此GND / COM信号的意义是什么?没有它我能过吗? 我有一个非常简单的2节点系统,其中发生了一些奇怪的事情。(如果您有兴趣,请参见此处,了解有关问题)这两个节点是我的设备和一个USB-CAN监视器;两者均具有120ohm端接电阻,并且它们之间的连线小于1m。 我只是记得在以前的测试中,我仅在节点之间连接了CAN_H和CAN_L信号。我没有将设备的CAN_COM连接到USB-CAN监视器的接地引脚的任何东西。 差分信令的一个(点)受共模噪声的影响要小得多(不是)。因此,如果没有接地,我想我们会失去CAN_H和CAN_L的绝对参考...但这有什么区别吗?
9 grounding  can 

2
“显性”和“隐性”到底是什么?
我正在读取LIN总线上的数据表,但显然,CAN使用相同的术语。 “隐性”和“显性”代表什么,例如http://hw-server.com/products/rs_optika/prevodniky_optika.html? 这些术语与“低”和“高”或0和1有何关系?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.