网络管理笔记

个人笔记,如果有理解不对,望大佬斧正

网络管理:
目的:
确保网络通信安全可靠。对网络进行资源,启动,检测,处理,通知节点,同步睡眠等功能。

方法:
对系统的网络进行AUTOSAR标准管理。正常工作状态,正常工作条件,进睡条件,进入睡眠后的任务。唤醒的条件,唤醒需要做的事情。
架构
采用AUTOSAR标准架构。
一,变量
网络管理全局变量
序号 名称 描述
1 CanNm_State Can网络状态9种
2 CanNm_Mode Can网络模式,4种,
3 CanNm_NetworkReqCmd Can请求网络模式命令,4种
4 CanNm_RxIndFlg Can网络接收确认标志
5 CanNm_RptMsgReq Can网络请求消息
6 CanNm_RptMsgReqBit Can网络按bit请求消息
7 CanNm_ComTxEnabled Can网络 通信发送使能
8 CanNm_TxCfmFlg Can 网络发送配置管理
9 CanNm_NetworkState Can网络工作状态
10 CanNm_MsgTxEnabled Can 网络消息发送使能
11 CanNm_RmtSlpInd 远程取消睡眠
12 CanNm_ImmTrans 快速发送
13 CanNm_TxPdu 发送Pdu 结构体
14 CanNm_TxPduBuff 发送数据buf
15 CanNm_MsgTxRptCmd 消息发送状态
16 CanNm_RxPdu 消息接收Pdu
17 CanNm_InitState 网路管理初始化状态

1,3中工作模式:休眠,准备休眠,网络模式。
2,9种工作状态:未初始化状态,总线休眠状态 ,预休眠状态,准备休眠状态,标准工作状态,重复消息状态,同步状态,等待检测状态,等待网络开始状态
未初始化状态,同步状态,等待网络开始不是必须。
3,两种节点管理模式 :释放节点,获取节点
4,4种请求网络命令
5,2种报文方式,快速,正常,快速通常只有几帧

2,模式流程
休眠模式
进入:
在CAN task周期查询,判断到CanNm 初始化是已经完成后,在CanNm_TimerMainFunction定时器接口里面对时间进行检测。CanNmWaitBusSleepTime定时完成之后调用CanNm_BusSlpModeEnter ,在CanNm_BusSlpModeEnter进行模式切换。在预休眠完成之后,CanNmWaitBusSleepTime开启定时器,然后在接口CanNm_TimerCheckFunction 里面定时器判断。在初始化的时候会关闭定时器,在收到其他消息的时候会关闭定时器
退出:
1,通知其他模块2,判断快速发送是由有开启3,设置模式状态机4,调用Nm_BusSleepMode接口5,状态确认CanTxConfirmationFlag6,关闭传输层①设置停止模式,②关闭硬件③开启使能④发送命令6,开打唤醒元KL157,打开幻想元NM

预休眠模式
进入:
在CanNm_TimerMainFunction 里面周期查询定时器状态,直到满足定时器要求->判断网络管理状态,是不是重复报文状态和标准报文状态->判断网络报文状态是不是预秀明状态->设置CanNm_TxPduBuff 里面的CANNM_ACTIVE_WU_MASK :上面满足后才进入CanNm_PreBusSlpModeEnter
退出:
CanNm_PreBusSlpModeEnter后通知准备切换状态->跟新网络状态->跟新网络模式->关闭CanNm_RmtSlpInd->进入Nm_PrepareBusSleepMode -》链路层关闭tx-》确认状态->进入临界区->初始化CAn->推出临界区->开启KL15唤醒->开启网络唤醒->关闭RX->开启定时器SWS_CanNm_00115 进入休眠模式

正常工作模式
进入:
CanNm_NetworkModeEnter在TAsk 查询里面对CanNm_NetworkReqMainFunction网咯工作请求查询->当识别到网络工作请求命令是CANNM_NETWORK_REQUEST_CMD ,->判断当前状态是不是睡眠状态,或者是预休眠状态。->如果满足条件则进入CanNm_NetworkModeEnter
CanNm_RxIndMainFunction 里面判断到CanNm_RxIndFlg 状态等于ON 切模式等于预休眠
则也会进入工作模式

所做事情
设置工作模式为标准工作模式
进入周期报文状态
打开预备休眠定时器
打开rx ,tx online ,打开硬件pin

3,状态迁移图
在这里插入图片描述

1,CanNm_Init
在上电和唤醒种有机会调用此接口。此接口是初始化“网络管理全局变量”表格里面的数据。并且初始化定时器。用以后面定时器正常使用。进入了休眠模式
2,在睡眠模式会执行CanNm_RxIndication 和Nm_NetworkStartIndication ,这个是在睡眠模式下收到了网络报文会跑到这两个接口,而且会设置CanNm_RxIndFlg状态。然后在CanNm_RxIndMainFunction 里面会进入到网络模式。
3,在休眠模式下,被动唤醒是CanNm_PassiveStartup,这个唤醒是在收到了网络报文后,进入的唤醒。进入后会通过设置CanNm_NetworkReqCmd等于CANNM_PASSIVE_STARTUP_CMD后在周期循环里面去进入到网络模式,设置CanNm_State和CanNm_Mode ,并且启动快速或正常发送报文模式,一般快速报文只有几帧。(这里都是网络报文)
4,在休眠模式下,如果是主动唤醒则会使用CanNm_NetworkRequest接口,这个接口是在CanNm_AutosarProcess周期去查询唤醒源,进行唤醒,同样的这个接口里面会调用CanNm_NetWorkREquest接口,还包括设置唤醒源和唤醒ID。后面则开始发送
5,8,进入到重复消息状态,网络工作模式,调用CanNm_NetworkModeEnter 接口会进入到此状态,CanNm_NetworkModeEnter 接口里面会调用Nm_NetworkMode 模式,进入到重复消息状态。并且会开启预休眠定时器和,关闭休眠定时器,Nm_NetworkMode里面会开启链路成的发送和接收,并且接入到网络里面。
9,10,进入到了CanNm_NetworkModeEnter 工作模式后,会使用CanNm_RptMsgStateEnter接口启动进入标准状态定时器,就进入了标准网络状态。接口CanNm_RptMsgStateEnter 还会消息收到确认功能中使用。
11,12 会在标准模式下面启动接收处理定时器,如果超时后还没有接收到信息,
14,15,重复报文模式,快速和正常发送网络报文,用于唤醒其他节点
16,节点释放:判断到没有诊断,网络acc关闭,且总线上面不活跃,则调用接口
CanNm_NetworkRelease,里面会请求命令CANNM_NETWORK_RELEASE_CMD,进入到预休眠CanNm_RdySlpStateEnter
17,收到消息重新进入到标准工作状态
18,在重复报文模式下,如果CanNm_RptMsgTimerExpires定时器超时,则会进入标准工作模式,或者预休眠工作模式,这个根据网络节点是否释放CanNm_NetworkState,如果网络节点释放后,则这个定时器会进入到准备休眠状态
20 ,21 在网络工作模式,会不停的调用定时器,刷新状态。
22,在准备休眠的阶段会启动定时器,定时器超时则会进入到预休眠阶段。
CanNm_PreBusSlpModeEnter进入到预休眠中
23,在预休眠途中,如果收到网络报文。则会重新亲求network,进入到标准状态和网络模式
27,进入到休眠状态

在其他层,是如何进入到网路管理层,其他层的用发,和如何根据网络层处理状态
CanNm_BusSlpModeEnter
睡眠模式
如何打断:收到网络报文后,会打断进入睡眠模式 在can驱动里面对网络报文和普通报文做了区别ID&(~0x7F) = 0x400 意思就是x0400 -0x47f之间的是网络报文

在进入预休眠后就开启了休眠定时器。

关闭预休眠定时器,只有在初始化的时候有,在后面,会一直跟新定时器,保证不会超时,超时则进入预休眠。

附录

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li_凌澜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值