汽车上的LIN通讯(一)

汽车上的LIN通讯(概述)

1、什么是LIN?
LIN(Local Interconnect Network)是面向汽车低端分布式应用的低成本、低速率(20kbps)、串行通信总线。
@由汽车行业开发,用作经济高效的子总线系统
@属于CAN的下层网络
@属于SAE规范的汽车A类网络
@是对CAN总线的补充,适用于对总线性能要求不高的车身系统
例如:车门、车窗、灯光等智能传感器、执行器的连接和控制
@LIN实现了一种具有成本效益的智能传感器和执行器的通讯方式

2、LIN的目标
@为现有的汽车网络CAN提供辅助功能
@在不需要CAN总线的带宽和多功能的场合使用,降低成本
@将开关、执行元件和传感器从子总线连接到主总线(CAN)

3、LIN 总线应用广泛的原因
@目前,高/低速CAN和J1850总线已经成为标准的车用网络总线,这些总线速度极高,具有高抗电磁干扰性和高传输可靠性等优越的性能,但价格也较高
@大量的车身和安全性能方面的应用对车用网络总线的性能要求并不太高,只需要一种性价比
更高的标准车用网络总线,而LIN总线正好可以满足这一需求。因此,目前LIN总线技术正被
越来越广泛的应用到车身电子中。

4、 LIN 起源和发展
@LIN联盟成立于1999年,并发布了LIN1.0版本
最初联盟成员有:奥迪、宝马、克莱斯勒、摩托罗拉、博世、大众、沃尔沃等
@2000年,LIN联盟再次发布了1.1版本
@2001年,第一辆采用LIN1.1版本的量产汽车面世
@2003年,LIN2.0版本出现
@2006年,LIN2.1版本面世并沿用至今

5、LIN 的市场
@LIN总线产品已经成为汽车总线的第二大市场
@第一大市场是CAN总线,其在2006年已经达到顶峰

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值