STM8 LIN主模式

2020-06-30来源: eefocus关键字:STM8  LIN  主模式

STM8 LIN模式功能描述

在LIN模式下,LIN标准要求的数据格式是8位数据位加1位停止位。
完成这样的设置需要将UART_CR1的M位清0,同时把UART_CR3的STOP[1:0]位也清0。

主模式


UART初始化
步骤:
1.设置UART_BRR2和UART_BRR1来选择期望的波特率。
2.将UART_CR3的LINEN位置1来使能LIN模式。
3.将UART_CR2的TEN位和REN位置1来使能发送器和接收器。


LIN报文头(header)的发送
按照LIN协议,所有在LIN总线上的通讯都由主设备通过发送报文头(header)发起,报文头之后是响应。报文头由主任务(主节点)发送,而数据由节点(主节点或者从节点)的从任务发送。


不带错误侦测的步骤:
1.将UART_CR2的SBK位置1来请求发送断开符+分界符。
2.对UART_DR写入0x55来请求发送同步域。
3.等待UART_SR的标志位TC为1。
4.对UART_DR写入被保护识别符值来请求发送识别符域。
5.等待UART_SR的标志位TC为1。


带错误侦测的步骤:
1.将UART_CR2的SBK位置1来请求发送断开符+分界符。
2.等待UART_CR4的标志位LBDF为1。
3.对UART_DR写入0x55来请求发送同步域。
4.等待UART_SR的标志位RXNE为1,并读回UART_DR。
5.对UART_DR写入被保护识别符值来请求发送识别符域。
6.等待UART_SR的标志位RXNE为1,并读回UART_DR。
只有在UART_RX管脚上接收回有效的断开符和分界符以后,标志位LBDF才会置1。


LIN断开符和分界符侦测
当STM8的LIN模式被使能时,断开符号检测电路被激活。该检测完全独立于USART接收器。断开符只要一出现就能检测到,不管是在总线空闲时还是在发送某数据帧期间。

当接收器被激活时(USART_CR1的REN=1),电路监测RX上的起始信号。监测起始位的方法同检测断开符号或数据是一样的。当起始位被检测到后,电路对每个接下来位的第8,9,10个过采样时钟点上进行采样。如果10个(当USART_CR4的LBDL=0)或11个(当USART_CR4的LBDL=1)连续位都是'0',并且又跟着一个分界符,USART_SR的LBD标志被置1。如果LBDIEN位=1,会有中断产生。


如果在第10或11个采样点之前采样到了'1',检测电路取消当前检测并重新寻找起始位。如果LIN模式被禁止(LINEN=0),接收器继续如正常USART那样工作,不需要考虑检测断开符。

如果LIN模式被激活(LINEN=1),只要一发生帧错误(例如在发送断开帧时,停止位检测到'0'),接收器就停止,直到断开符号检测电路接收到一个'1'(这种情况发生于断开符没有完整的发出来),或一个定界符(这种情况发生于已经检测到一个完整的断开符号)。
图116说明了断开符检测器状态机的行为和断开符号标志的关系。


LBDF标志用于主模式,LHDF标志用于从模式。
图117给了一个断开帧的例子。

STM8_LIN模式下的断开符检测
(图116:STM8_LIN模式下的断开符检测(11位断开长度–设置了LBDL位))

 

STM8_LIN模式下的断开符检测与帧错误的检测
(图117:STM8_LIN模式下的断开符检测与帧错误的检测)

响应发送(主设备是响应的发布方)
响应由符合UART规范的字节组成:8位数据位,1位停止位,无校验位。
要发送n字节的数据,应当按顺序重复n次以下步骤:

  • 对UART_DR寄存器写入数据

  • 等待UART_SR寄存器的标志位RXNE为1

  • 读UART_DR寄存器,检查读回值

响应接收(主设备是响应的签署方)
要接收n字节的数据,应当按顺序重复n次以下步骤:

  • 等待UART_SR寄存器的标志位RXNE为1

  • 读UART_DR寄存器

(响应忽略从设备对从设备通讯)
STM8在从设备与从设备的通讯,并且主设备不需要检查响应中错误的情况下,应用程序可以直到下一帧传输前都不必检查标志位RXNE。在下一次断开符发送之前,应当清除标志位RXNE和OR。


注意:接收回一个断开符也会在设置标志位LBDF前设置标志位RXNE和FE。因此,如果使用RX中断,最好在发送断开符之前关闭中断,来避免一次额外的中断。在从设备对从设备通讯的情况下,一旦报文头被发出,就可以清0标志位RIEN

关键字:STM8  LIN  主模式 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501629.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8 控制器局域网(beCAN)
下一篇:STM8 IrDA红外功能

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8学习笔记---普通IO口模拟串口功能
串口在产品应用中很常见,但是单片机的默认带的串口往往比较少,有时候就会出现串口不够用,所以就想着能不能用普通IO口模拟串口来实现串口的功能。要模拟串口首先要清楚串口数据传输过程中的原理。常用的串口格式为 1位起始位,8位数据位,无校验位,1位结束位。起始位为低电平,结束位为高电平。数据0为低电平,数据1为高电平。所以最简单的串口传输一个字节总共有10个电平变化,每个电平的宽度由波特率决定的。具体的串口数据分析,可以参考这篇文章:STM8学习笔记---通过示波器分析串口数据。下面看一个通过波特率如何计算每个位的电平宽度。发送一个字节,以stm8中9600bit/s的波特率计算的过程为例(1秒钟传输9600位)。可以计算出传输1位所需
发表于 2020-06-07
STM8学习笔记---普通IO口模拟串口功能
IAR FOR STM8 同一个工程芯片选择003F3可以编译003K3提示空间不足
同一个工程文件,选择103F3可以编译通过,但是选择103K3便提示空间不足百思不得其解,查阅大量资料无果。最后在IAR工程里面找到了配置文件 打开003f3的配置文件和003K3配置文件进行对比,其余都一样,唯独程序空间003K3是从地址0X9000开始,少了1K,不知道为何要这样设置,明明两个芯片空间大小和结构一模一样。将003K3的配置文件地址改成0x8000开始,重新编译,一切正常。编译通过,程序空间总共占用5419b。问题:这样操作后将程序下载到电路板上不知道会不会出错,有待验证。个人猜测应该没问题,是IAR的错误。
发表于 2020-06-07
IAR FOR STM8 同一个工程芯片选择003F3可以编译003K3提示空间不足
STM8的烧写
最近一次烧写STM8遇到以下问题1.Error : Cannot communicate with the tool.Wrong tool selection or check tool power supply or check that a previous session is closed.Error : < PROGRAM MEMORY programming failed.和stlink的链接出问题,有两种情况:a.仿真器未连接b.驱动没装好2.Error : Cannot communicate with the device !Check the SWIM cable connection and check
发表于 2020-06-07
STM8读取AD值偶尔跳变出错的问题
在调试STM8S103K3T6的AD功能时,发现当温度快速变化时(吹风机模拟),读取到的AD值会偶尔出现跳变,出现的位置相对固定;AD时钟设为2Mhz,每100ms采集一次,单次单路采集,通道无切换,用示波器看供电电压和AD口电压都没有毛刺等跳变,可以排除外部器件的问题;后来查看手册发现问题,DRH/DRL数据的左对齐和右对齐方式,对应不同的读取顺序我使用的右对齐,把程序改成先读DRL,再读DRH,问题解决
发表于 2020-06-06
STM8读取AD值偶尔跳变出错的问题
基于使用STM8单片机I2C方式实现读写操作
STM8硬件I2C知识STM8S的I2C模块不仅可以接收和发送数据,还可以在接收时将数据从串行转换成并行数据,在发送时将数据从并行转换成串行数据。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线。允许连接到标准(最高100kHz)或快速(最高400kHz)的I2C总线。1.I2C的4种模式● 从设备发送模式● 从设备接收模式● 主设备发送模式● 主设备接收模式2.I2C的主要特点● 并行总线/I2C总线协议转换器● 多主机功能:该模块既可做主设备也可做从设备●I2C主设备功能─ 产生起始和停止信号●I2C从设备功能─ 可编程的I2C 地址检测─ 停止位检测● 产生和检测7位/10位地址和广播呼叫
发表于 2020-05-23
基于使用STM8单片机I2C方式实现读写操作
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved