查看: 8611|回复: 9

[其他] 飞思卡尔LIN总线问题。

[复制链接]

该用户从未签到

5

主题

16

帖子

0

新手上路

Rank: 1

积分
35
最后登录
1970-1-1
发表于 2012-3-13 21:39:05 | 显示全部楼层 |阅读模式
最近做LIN总线思考到一个问题。
LIN总线是基于USART来的,帧格式都是一样的。所以我完全可以直接用串口去按照LIN协议的格式来操作。但是实际中遇到一个问题,LIN总线在主机任务中,一开始要求要有至少13个位时基的0和至少1个位时基的1,作为同步间隔场。这13个位时基的0怎么做到呢?我们都知道,串口的协议规定1帧数据是由1个起始位(0)+8个数据位+1个停止位(1)。这就意味着每一帧中至少会有1个1存在,那我怎么去做到这个13个连续位时基的0呢?
到这里我想到,能不能直接操作IO口加延时来做这个13个连续位时基的0,但实际中,我发现,一旦串口被初始化后,就不能直接对串口使用的IO进行操作了。
这个问题怎么办?请教!
我知道答案 目前已有9人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    373
    最后登录
    2023-8-16
    发表于 2012-3-14 15:43:29 | 显示全部楼层

    RE:飞思卡尔LIN总线问题。

    这个确实不好做。是否可以考虑一下用偶效验,数据位综合处理。或者先用IO口,然后再初始化串口。在时序上确实不太好实现,建议你参考LIN例程对串口的使用。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    16

    帖子

    0

    新手上路

    Rank: 1

    积分
    35
    最后登录
    1970-1-1
     楼主| 发表于 2012-3-14 16:24:30 | 显示全部楼层

    回复:飞思卡尔LIN总线问题。

    管理员,我想你应该不止一次看见我发有关LIN总线疑问的帖子了。你可以发现,我之前问的都是怎么使用LIN那个API,但我看了N久,根本不懂那个API是怎么用的?我之前还在飞思卡尔网站下了LIN的库函数包,完全不可理解,要使用一个LIN,还TM要首先写两个配置文件一个LPF格式的一个NPF格式,啥玩意嘛!
    迫于无奈,我抛开了API函数,自己用串口模拟LIN,于是出现了上面的疑问。说白了,你那个LIN2.0的例程,我看不懂!怎么办?有更入门一点的LIN例程嘛?
    还有先用IO口在初始化串口的问题。LIN的那个同步间隔场是在主机任务里的。我想整个LIN通信,主机任务不会就只执行一次吧?那每次执行主机任务都关串口,然后再初始化?不太现实吧?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    57
    最后登录
    2021-3-1
    发表于 2012-9-19 16:49:52 | 显示全部楼层

    RE:飞思卡尔LIN总线问题。

    如果是freescale芯片,在增强型的串口寄存器里面,有一个停止位,置位后应该会自动发出13个以上的0;一般的单片机好像是通过改变波特率实现的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
    发表于 2012-9-19 19:52:29 | 显示全部楼层

    RE:飞思卡尔LIN总线问题。

    楼上正解,管理员要多学习了哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    12
    最后登录
    1970-1-1
    发表于 2012-9-20 08:04:09 | 显示全部楼层

    回复:飞思卡尔LIN总线问题。

    回复第 4 楼 于2012-09-19 16:49:52发表:
    如果是freescale芯片,在增强型的串口寄存器里面,有一个停止位,置位后应该会自动发出13个以上的0;一般的单片机好像是通过改变波特率实现的
     
     
    呵呵,是滴,正好后面我也要用LIN,我也是这样做的哦,建议LZ把UART相关寄存器好好看一下,思考思考
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    13
    最后登录
    1970-1-1
    发表于 2013-11-15 22:17:14 | 显示全部楼层

    回复:飞思卡尔LIN总线问题。

    回复第 4 楼 于2012-09-19 16:49:52发表:
    如果是freescale芯片,在增强型的串口寄存器里面,有一个停止位,置位后应该会自动发出13个以上的0;一般的单片机好像是通过改变波特率实现的
     
     

    我想问一下,怎样改变波特率实现13个低电平产生的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    15

    帖子

    0

    注册会员

    Rank: 2

    积分
    53
    最后登录
    2022-6-23
    发表于 2016-11-4 13:50:58 | 显示全部楼层
    pang123hui-3264 发表于 2012-9-20 08:04
    回复第 4 楼 于2012-09-19 16:49:52发表:
    如果是freescale芯片,在增强型的串口寄存器里面,有一个停止位, ...

    这个LIN是如何实现的呀?有没有范例程序,学习一下?Y360Q@qq.com
    谢谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-16 10:29
  • 签到天数: 41 天

    [LV.5]常住居民I

    3

    主题

    216

    帖子

    0

    高级会员

    Rank: 4

    积分
    539
    最后登录
    2017-10-11
    发表于 2016-11-4 20:04:55 | 显示全部楼层
    进来学习一下!原来还有这个功能!
    开开好心情!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    2021-1-13
    发表于 2021-1-12 17:31:14 | 显示全部楼层
    楼主的LIN通讯实现了吗?可否给把代码贴出来大家学习一下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 08:42 , Processed in 0.144117 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表