立即注册 找回密码

微雪课堂

搜索
微雪课堂 STM8 STM8单片机内核剖析 查看内容

STM8 LIN主模式

2015-7-13 11:38| 发布者: kaloha| 查看: 9405| 评论: 1

摘要: STM8 LIN模式功能描述在LIN模式下,LIN标准要求的数据格式是8位数据位加1位停止位。完成这样的设置需要将UART_CR1的M位清0,同时把UART_CR3的STOP位也清0。主模式UART初始化步骤:1.设置UART_BRR2和UART_BRR1来选择 ...

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。

以上资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!


454

顶一下

刚表态过的朋友 (454 人)

发表评论

最新评论

引用 1021256354 2019-10-22 13:26
完整的LIN一帧包括哪些数据域??

查看全部评论(1)

所有教程
    01STM8 CPU
    简介STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可
    02STM8 CPU寄存器映射
    CPU寄存器在STM8的地址空间映射如表2所示。只有CPU的调试模块才可以使用这些寄存器的
    03STM8 全局配置寄存器(CFG_GCR)
    激活级别用户可通过对CFG_GCR寄存器中的AL位编程来配置MCU的激活级别。如何使用该位请
    04STM8 用于系统启动的只读存储器
    在某些STM8型号中有2K字节的内部BOOT ROM,其中包含有用于启动的代码。这段代码的主
    05STM8 存储器和寄存器映射
    要了解关于STM8存储器映射、I/O端口硬件寄存器映射以及CPU/SWIM/调试模块/中断控制寄
    06STM8 FLASH主要特性
    STM8内部的FLASH程序存储器和数据EEPROM由一组通用寄存器来控制。用户可以使用这些寄
    07STM8 存储器组织结构
    STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机
    08STM8 用户启动区域(UBC)
    用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序。UBC有一个两
    09STM8 存储器保护
    读保护当选项字节中的ROP字节被编程为'0xAA'时,读保护就生效了。这种情况下,无论写
    010STM8 读同时写(RWW)
    RWW特性允许用户在执行程序和读程序存储器时对DATA EEPROM区域进行写操作,因此执行的
    011STM8 ICP和IAP
    在线编程(ICP)用于更新STM8整个存储器的内容。ICP使用SWIM接口把用户的程序装载到微控
    012STM8 FLASH寄存器
    FLASH控制寄存器1(FLASH_CR1)地址偏移值:0x00复位值:0x00位7:4保留位,必须保持为0
    013STM8 单线接口模块(SWIM)和调试模块(DM)
    介绍STM8在线调试模式或在应用编程模式由一个单线硬件接口来管理,该接口拥有对存储器
    014STM8 供电电源
    STM8 MCU有四种相对独立的供电电源:VDD/VSS:主电源(3V到5.5V)VDDIO/VSSIO:I/O口供
    015STM8 复位
    STM8S共有9个复位源:NRST引脚产生的外部复位上电复位(POR)掉电复位(BOR)独立看门狗复
    016STM8 复位(RST)寄存器
    复位状态寄存器(RST_SR)地址偏移值:0x00复位值:未定义位7:5保留位,必须保持为0位4E
    017STM8 复位寄存器地址映射
    复位状态寄存器(RST_SR)请参考对应的数据手册了解基地址信息。(表7:STM8复位寄存器地
    018STM8 时钟控制
    时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消
    019STM8 主时钟源
    下面4种时钟源可用做主时钟:1-24MHz高速外部晶体振荡器(HSE)最大24MHz高速外部时钟信
    020STM8 主时钟切换
    时钟切换功能为STM8用户提供了一种易用、快速、安全的从一个时钟源切换到另一个时钟源
    021STM8 外设时钟门控
    关闭未使用外设的时钟可使STM8降低功耗。外设的时钟门控(PCG)模式使用户可在运行模式
    022STM8 时钟安全系统(CSS)
    时钟安全系统用于监控HSE时钟源是否失效。当fMASTER使用HSE做为时钟源时,如果HSE时钟
    023STM8 时钟输出功能(CCO)
    可配置的时钟输出功能使STM8用户可在外部管脚CCO上输出指定的时钟。STM8S的用户可选择
    024STM8 时钟中断
    当下列事件发生时,时钟控制器可产生中断:主时钟源切换事件CSS事件这两个中断均可被
    025STM8 内/外部时钟寄存器
    STM8内部时钟寄存器(CLK_ICKR)地址偏移值:0x00复位值:0x01位7:6保留位,始终为0位5R
    026STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)地址偏移值:0x03复位值:0xE1位7:0CKM:主时钟状态位
    027STM8 时钟分频寄存器
    STM8时钟分频寄存器(CLK_CKDIVR)地址偏移值:0x06复位值:0x18位7:5保留。始终为0。位
    028STM8 外设时钟门控寄存器
    STM8外设时钟门控寄存器(CLK_PCKENR1)地址偏移值:0x07复位值:0xFF位7:0PCKEN1:外设
    029STM8 时钟安全系统寄存器
    STM8时钟安全系统寄存器(CLK_CSSR)地址偏移值:0x08复位值:0x00位7:4保留。始终为0。
    030STM8 可配置时钟输出寄存器
    STM8可配置时钟输出寄存器地址偏移值:0x09复位值:0x00位7保留。始终为0。位6CCOBSY
    031STM8 CAN外部时钟控制寄存器
    STM8 CAN外部时钟控制寄存器(CLK_CANCCR)地址偏移值:0x0B复位值:0x00位7:3保留。始
    032STM8 HSI时钟修正寄存器
    STM8 HSI时钟修正寄存器(CLK_HSITRIMR)地址偏移值:0x0C复位值:未定义位7:4保留。始
    033STM8 SWIM时钟控制寄存器
    STM8 SWIM时钟控制寄存器(CLK_SWIMCCR)地址偏移值:0x0D复位值:未定义位7:1保留。始
    034STM8 电源管理
    STM8电源管理默认情况下在系统或电源复位后,MCU处于运行模式。在这种模式下,CPU由fC
    035STM8 低功耗的时钟管理
    STM8降低系统时钟在运行模式,为了即能满足系统性能又能降低功耗,选择合适的系统时钟
    036STM8 低功耗模式
    四种STM8低功耗模式的主要特性如表12。(表12:STM8S低功耗模式管理)1.如果外设时钟未
    037STM8 模拟功耗控制
    STM8停机模式下的快速内存唤醒默认情况下,微控制器进入停机模式后FLASH是处于掉电状
    038STM8 中断控制器(ITC)
    STM8中断控制器简介中断控制器提供如下功能:硬件中断的管理所有I/O引脚都具有外部中
    039STM8 中断屏蔽和处理流程
    STM8 中断屏蔽和处理流程中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表
    040STM8 中断源
    STM8 中断源STM8中断控制器处理2种类型的中断源:不可屏蔽的中断:RESET,TLI和TRAP可
    041STM8 中断和低功耗模式
    STM8 中断和低功耗模式所有的中断都可以使处理器从待机模式(Wait)退出。仅有外部中断
    042STM8 同时的和嵌套的中断管理
    STM8S提供2种中断管理模式:同时发生模式嵌套模式STM8同时发生中断管理模式在该模式下
    043STM8 中断指令
    STM8 中断指令表15列出了中断指令:(表15:STM8中断指令)
    044STM8 中断映射
    STM8中断映射下面表格列出了中断映射:(表16:STM8中断映射)
    045STM8 自动唤醒(AWU)
    简介AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间
    046STM8 AWU寄存器
    控制/状态寄存器(AWU_CSR)地址偏移值:0x00复位值:0x00位7:6保留位,必须保持为0位5W
    047STM8 蜂鸣器
    简介当LS时钟工作在128kHz时可产生频率为1kHz,2 kHz或者是4 kHz的蜂鸣信号。(图23:ST
    048STM8 独立看门狗(IWDG)
    STM8独立看门狗介绍独立看门狗模块可以用于解决处理器因为硬件或软件的故障所发生的错
    049STM8 通用输入输出口(GPIO)
    简介STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引
    050STM8 窗口看门狗(WWDG)
    STM8窗口看门狗介绍窗口看门狗用于监测由于外部干扰或不可预知的逻辑条件所产生的软件
    051STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)STM8S提供三种类型的TIM定时器:高级控制型(TIM1)、通
    052STM8 16位高级控制定时器(TIM1)
    16位高级控制定时器(TIM1)简介STM8S的TIM1由一个16位的自动装载计数器组成,它由一个
    053STM8 时基单元
    STM8时基单元时基单元包含:16位向上/向下计数器16位自动重载寄存器重复计数器预分频
    054STM8 时钟/触发控制器
    STM8时钟/触发控制器时钟/触发控制器允许用户选择计数器的时钟源,输入触发信号和输出
    055STM8 触发同步
    STM8触发同步计数器允许四种触发输入ETRTI1TI2来自TIM5/TIM6的TRGOTIM1的计数器使用三
    056STM8 PWM模式
    STM8 PWM模式STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由T
    057STM8 针对马达控制的六步PWM输出
    STM8针对马达控制的六步PWM输出当在一个通道上需要互补输出时,预装载位有OCiM、CCiE
    058STM8 刹车功能 马达控制
    STM8 刹车功能STM8刹车功能常用于马达控制中。当使用刹车功能时,依据相应的控制位(TI
    059STM8 中断
    STM8 TIM1中断TIM1有8个中断请求源,分别映射到2个中断矢量上:刹车中断触发中断COM事
    060STM8 16位通用定时器(TIM2,TIM3,TIM5)
    介绍本章介绍了STM8通用定时器TIM2,TIM3和TIM5,其中TIM2有3个通道,TIM3有2个通道,
    061STM8 8位基本定时器(TIM4,TIM6)
    介绍该定时器由的8可位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有
    062STM8 SPI简介 主要特征
    SPI简介串行外设接口(SPI)允许芯片与其他设备以半/全双工、同步、串行方式通信。此接
    063STM8 SPI从模式
    STM8 SPI从模式在从配置里,SCK引脚用于接收到从主设备来的串行时钟。SPI_CR1寄存器中
    064STM8 SPI主模式
    STM8 SPI主模式在主配置时,串行时钟在SCK脚产生。置配步骤1.通过SPI_CR1寄存器的BR位
    065STM8 单工通信
    STM8 单工通信SPI能够以两种配置工作于单工方式:1条时钟线和1条双向数据线1条时钟线
    066STM8 SPI状态标志
    STM8 SPI状态标志应用程序通过3个状态标志可以完全监控SPI总线的状态。总线忙(Busy)标
    067STM8 CRC计算
    STM8 CRC计算CRC校验仅用于保证通信的可靠性。数据发送和数据接收分别使用单独的CRC计
    068STM8 I2C接口主要特点
    STM8 I2C接口I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主功能,控制所
    069STM8 I2C从模式
    STM8 I2C从模式为了产生正确的时序,必须在I2C_FREQR寄存器中设定该模块的输入时钟。
    070STM8 I2C主模式
    STM8 I2C主模式在主模式时,I C接口启动数据传输并产生时钟信号。串行数据传输总是以
    071STM8 通用异步收发器(UART)
    STM8 UART介绍STM8S微控制器家族的通用同步异步收发器(UART1,UART2或UART3)提供了一
    072STM8 UART 发送器
    STM8 UART 发送器发送器根据M位的状态发送8位或9位的数据字。当M位置1,字长为9位,并
    073STM8 UART 接收器
    STM8 UART 接受器UART可以接收8位或9位的数据字。如果M位置1,字长为9位,其中MSB存放
    074STM8 多处理器通信
    STM8 多处理器通信通过UART可以实现多处理器通信(将几个UART连在一个网络里)。例如某
    075STM8 单线半双工通信
    STM8 单线半双工通信UART可以配置成遵循单线半双工协议。单线半双工模式通过设置UART_
    076STM8 智能卡
    STM8智能卡设置UART_CR5寄存器的SCEN位选择智能卡模式。在智能卡模式下,下列位必须保
    077STM8 IrDA红外功能
    STM8 IrDA红外功能通过设置UART_CR5寄存器的IREN位选择IrDA模式。UART_CR3寄存器的STO
    078STM8 LIN主模式
    STM8 LIN模式功能描述在LIN模式下,LIN标准要求的数据格式是8位数据位加1位停止位。完
    079STM8 控制器局域网(beCAN)
    STM8控制器局域网(beCAN)简介beCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持C
    080STM8 beCAN工作模式
    STM8 beCAN工作模式beCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在
    081STM8 模拟/数字转换器(ADC)
    STM8模拟/数字转换器(ADC)简介ADC1和ADC2是10位的逐次比较型模拟数字转换器。提供多达
    082STM8 模拟/数字转换器(ADC) 转换模式
    STM8模拟/数字转换器(ADC)转换模式ADC支持5种转换模式:单次模式,连续模式,带缓存的
    083STM8 模拟看门狗
    STM8模拟看门狗在单次转换模式和不带缓存的连续模式中模拟看门狗可以通过置位ADC_CSR
    084STM8 ADC时序图
    STM8 ADC时序图如图149所示,在ADC上电后,在开始精确转换之前ADC需要一个稳定时间tST
STM8

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-10-6 19:00 , Processed in 0.026416 second(s), 28 queries .

返回顶部