LIN通讯电路设计

LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议。其目标定位于车身网络模块节点间的低端通信,主要用于智能传感器和执行器的串行通信。

一个LIN 网络由一个主节点以及最多16个从节点组成,所有节点都有一个通讯任务。

LIN收发器要支持19.2 kbit/s波特率。
在这里插入图片描述
电路如下:
在这里插入图片描述
详细设计注意点:

1.上拉电阻

上拉电阻参考值如下。

R_Master = 1000Ω ± 1%

R_Slave = 30kΩ ± 1%(收发器内阻)

2.节点电容

参考的各节点LIN线与地的电容值如下。电容值可以通过整个总线系统的电容值而调整。

C_Master = 680pF ± 10%

C_Slave = 220pF ± 10%

3.ESD保护

每个节点LIN线与地之间需要放置一个TVS或者压敏电阻用于增强总线的ESD防护。

4.工作电压

每个节点需要在V_SUP 8~18V范围内正常工作。

5.总线信号

在这里插入图片描述
最大输入显性电压V_in_dom = 0.4 V_SUP.

最小输入隐性电压V_in_rec = 0.6 V_SUP.

最大输出显性电压V_out_dom = 0.2 V_SUP.

最小输出隐性电压V_out_rec = 0.8 V_SUP.


转自-------硬件工程师技术号

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LIN通讯是一种针对汽车电子控制系统的串行通讯协议,其物理层采用单线通讯,数据传输速率为20kbps。在C语言中,可以使用串口通讯库来实现LIN通讯。 以下是一个简单的示例代码,它使用linux系统的串口通讯库来实现LIN通讯: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <termios.h> #define LIN_SPEED B19200 //LIN通讯速率 #define LIN_DEV "/dev/ttyS0" //串口设备文件 int main() { int fd; struct termios options; //打开串口设备 fd = open(LIN_DEV, O_RDWR | O_NOCTTY | O_NDELAY); if (fd < 0) { perror("open"); exit(1); } //配置串口参数 tcgetattr(fd, &options); cfsetispeed(&options, LIN_SPEED); cfsetospeed(&options, LIN_SPEED); options.c_cflag &= ~PARENB; options.c_cflag &= ~CSTOPB; options.c_cflag &= ~CSIZE; options.c_cflag |= CS8; options.c_cflag &= ~CRTSCTS; options.c_cflag |= CREAD | CLOCAL; options.c_iflag &= ~(IXON | IXOFF | IXANY); options.c_iflag &= ~(ICANON | ECHO | ECHOE | ISIG); options.c_oflag &= ~OPOST; options.c_cc[VMIN] = 1; options.c_cc[VTIME] = 0; tcsetattr(fd, TCSANOW, &options); //发送LIN消息 char msg[] = {0x55, 0xAA, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06}; write(fd, msg, sizeof(msg)); //接收LIN消息 char buf[256]; int len = read(fd, buf, sizeof(buf)); if (len > 0) { printf("received %d bytes\n", len); for (int i = 0; i < len; i++) { printf("%02X ", buf[i]); } printf("\n"); } //关闭串口设备 close(fd); return 0; } ``` 在这个示例代码中,首先打开了串口设备文件`/dev/ttyS0`,然后配置了串口参数,包括波特率、数据位、停止位等。接下来,发送了一个长度为8字节的LIN消息,然后读取了从LIN总线上接收到的消息,并将其打印出来。最后,关闭了串口设备文件。 需要注意的是,由于LIN通讯采用单线通讯,因此在发送和接收数据时需要使用同一个串口设备文件。此外,在实际应用中,还需要使用LIN协议规定的帧格式来进行数据的封装和解析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值