写在前面:
入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!!
目录
1.Autosar ETH通讯软件架构

软件分层:
1.Ethernet Driver
2.Ethernet Interface(EthIf)
3.TCP/IP协议栈
4.Socket Adaptor(SOAD)
5.PDU Router(PDUR)
6.应⽤层。
2.Ethernet MCAL配置
以PHY芯⽚为RTL9000为例,控制器⽀持单个PHY与MAC通讯,以太⽹通讯参数为100Mbps,RMII 接⼝。RTL9000⽀持硬件配置,包括Master/Slave Mode配置,MII Mode配置,PHY Address配置, Operating Mode配置,详细的配置⽅法请参考RTL9000 DS⼿册。

以太⽹模块各信号对应硬件原理图的Pin脚:

2.1配置对应Pin属性
配置输出引脚属性,需要确认输出复选功能,输出初始电平,输出强度,⼀般由Thosslist提供。 例如MDC引脚,在DS⽂档中查找P12.0对应的输出属性为O6.

EB中MDC引脚的配置如下:

主要设置上图框出来的⼏个配置,PortPinDirection->Port⽅向,PortPinInitalMode->初始状态下的 模式,PortPinLevelValue->端⼝的初始电平和 PortPinOutpytPadDriverStrength,PortPinOutputPinDriverMode端⼝的驱动能⼒和驱动模式。
2.2配置TXD引脚
对于TXEN/TXD0/TXD1引脚,除了配置上图标记的部分,还需要是能PortPinControllerSelect功 能,还不使能则以太⽹发送功能⽆法正常⼯作。

2.3配置RXD引脚
配置输⼊引脚属性,需要确认输⼊引脚的PullResistor属性,PadLevel属性,⼀般由Thosslist提 供。MDIO引脚虽然是⽅向可变的,但在EB中按照输⼊引脚配置即可。

3.Eth/Eth Trcv配置
DaVinci配置开发包含两部分:驱动包添加相关模块配置。SIP包不包含RTL9010驱动包,所以在 进⾏DaVinci配置之前,需要将驱动包加⼊项⽬SIP中。
3.1驱动包添加
本地SIP包路径下添加RTL9010驱动包

3.2Eth/EthTrcv模块配置

- PHY Management Interface:配置为ETH_RMII_MODE;
- Physical Address:MAC地址按照项⽬要求配置,配置为源MAC地址
- Port Speed Selection:配置为PS_100_MBITES
- CSR Clock Range:根据RMII时钟选择CLK_35_60_MHZ,由于MCU MII通讯为PHY提供的时钟,所以这 ⾥的配置并⾮必选CLK_35_60_MHZ,若是MAC输出的时钟,则需要与其频率保持⼀致。

- EthCtrlPinRouting配置与Eth MII的输⼊引脚选择有关,在EB配置中,仅配置了MII输⼊引脚的 PullResistor和PadLevel属性,并未关联Eth Drive功能,这⾥根据GPCTL寄存器功能进⾏配置

- GPCTL ALT配置参数可选择ETH_ALT_0/ETH_ALT_1/ETH_ALT_2/ETH_ALT_3,根据MII信号对应的PIN 脚,在DS⼿册中找到对应功能描述,例如MDIO引脚对应的P12.1功能如下图,其对应GETH_MDIOC, 则在Davinci配置中GCPTL ATL0处应选ETH_ALT_2。

配置Tx/Rx Buffer

配置Rx和Tx中断

Eth General配置

Eth Trcv模块配置

添加头文件

EthTrcvConfig配置

EthTrcvMgmtInterface配置选择新增EthTrcvMiiInterface,需要配置如下

- Mii Selection:若不是RGMII,选择ETHTRCV_STRAPPING_CONFIG_ONLY,若为RGMII,选择 ETHTRCV_RGMII_MODE,并配置RGMII对应的Delay Time参数,MCU选择RMII模式,配置为 ETHTRCV_STRAPPING_CONFIG_ONLY即可。
- Transceiver MII Index:根据HardwareConfiguration配置

4.RTE/EcuM/BSWM配置
4.1RTE配置Task

4.2EcuM模块配置

4.3BswM模块配置

5.EttIf模块配置
5.1EthIf General
主要使能接收和发送中断,MainFunction的task周期,超时时间参数的配置

5.2EthIfController配置
会关联EthCtrl和EthTrcv,设置MTU以及VlanId,如果SOMEIP通讯的IP地址和普通以太⽹通讯IP地址不⼀ 样或者VlanId需求不⼀样,则需要为SOMEIP通道新建EthIfController

5.3关联上层协议ARP/IPV4/IPV6


5.4Rx报文回调


5.5配置下层状态切换以及发送确认回调函数

6.EthSM配置
EthSM General配置主要配置Mainfunction的周期

EthSMNetwork关联ComM和EthIf,设置协议栈类型

7.TCP/IP配置
TCP/IP主要配置传输层以及网络层相关参数
7.1TcpIp General

- Buffer Memory为TCP/IP缓冲区保留的内存⼤⼩,以字节为单位。 •
- Lower Layer Name为TCP/IP协议栈下层的模块 •
- MainFunction Spilting Enabled:该参数指定TcpIp_MainFunction是否被分割成三个功能,这样可 以为特定的使⽤情况优化上层数据的接收和传输路径。
TcpIp_MainFunctionRx 处理数据的接收并转发到上层
TcpIp_MainFunctionState 处理数据的状态变化和传输内部协议的数据
TcpIp_MainFunctionTx 处理上层的传输请求并传输数据 • - Random Function Include file和Random Number Function两个参数是指定⽣成随机数⽤到的函 数和包含的头⽂件。
- Scalability Class 为了根据⽤⼾的具体需要定制TcpIp堆栈,它可以根据可扩展性等级进⾏扩展。
- TCP/UDP Enabled使能TCP和UDP的使能位。
- TCP/UDP Socket Max指定TCP/UDP最⼤套接字数量,需要注意的是每当增加通道或者报文时,需要对应增大该数值,在工具中不会报错,只会报警告。

Bool Data In Array of Struct Strategy:该参数⽤于调整所有CONFIG-CLASSES ROM数据结构中布尔数 据的使⽤,BITFIELD和BITMASKING之间的区别取决于本地编译器选项和内存映射。
- BOOLEAN:布尔类型的数据类型本地是布尔值。
- BITFIELD:使⽤位域类型,编译器从结构中提取布尔数据。
- BITMASKING:使⽤⽣成的掩码来从结构中提取布尔类型。
Data Dedupliation Strategy:⽤来确认重复数据的使⽤策略。
- NONE:⽣成的数据不被重复使⽤ •
- deduplicate_const_data_without_cast:数据被重复利⽤⽽不使⽤cast
- deduplicate_const_data_with_cast:该数据使⽤CAST进⾏重复数据删除。
Deduplicate Indirected Data:重复数据利⽤⽅式,勾选的话间接使⽤重复数据,⽽且不增加运⾏时间。
Out Of Bounds Write Protection Strategy:该参数据起我界保护策略
- NONE:在数据访问中不产⽣保护策略。
- INDEX_SATURATION:其优点是数据访问速度快,但同⼀变量的其他索引上的⾃有数据元素可以被覆盖。
- INDEX_CHECKING:数据访问索引通过运⾏时检查进⾏验证。其优点是数值不会被写⼊不正确的数据访问索引中。

TcpIpV4 General配置

- ARPEnable:是否使能地址解析协议。
- ICMP Enable:是否使能ICMP协议。
- IPv4Enable:是否使能IPV4协议。
- IPv4 Ethlf Update Phys Addr Filter Api Enable:这个参数定义了IPv4是是否会调⽤ Ethlf_SetPhysAddrFilter(),以配置以太⽹组地址Rx过滤器。如果控制器处于混杂模式或被静态配置为 接受所有必要的约且播,这个参数可以被禁⽤,以避免对EthlfAPI的多余调⽤。
- Local Addr IPv4 Entries Max:IPv4的LocalAddr表项的最⼤数量。
TcpIpV6 General配置

7.2TcpIpCtrl关联EthIf

- Ethlf Ctrl Ref:进⾏Ethlf Controller关联,便于分配IP地址。
- IPFrame Prio Default:指定所使⽤的帧优先级的默认值。
注意:这个值可以通过Tcplp_ChangeParameter()服务为每个套接字单独改变。如果这个可选参数不可 ⽤,则使⽤0作为默认优先级。
7.3TcpIpCtrl关联ARP

- ARP Config Ref:关联Arp,注意:多个IPv4实例可以使⽤相同的配置容器,但会独⽴运⾏。
- Default Time To Live:⽤于指定该IP控制器上发出去的数据包中IPV4头的"⽣存时间"字段的默认值。
- IPTypeOf Service Default:⽤于指定该IP控制器上出站数据包中IP14头的"服务类型"字段的默认值。
- Static ARP Table Ref:⽤于关联控制器使⽤的静态ARP表。
7.4单播地址配置

Address Type:地址类型,有以下三种类型。
TCPIP_UNICAST:单播地址
TCPIP_MULTICAST:多播地址
TCPIP_IPV4_BROADCAST:⼴播地址
Ctrl Ref:关联对应的分配IP地址的Ethlf控制器
Domain Type:选择IP地址簇,这⾥选IPV4;TCPIP_AF_NET是IPV4地:址簇,TCPIP_AF_NET6是IPV6地址簇

- Assignment Method:选择地址分配⽅式,TCPIP_STATIC静态分配,TCPIP_DHCP动态获 取,TCPIP_IPV6_ROUTER以IPV76的⽅式路由
- Assignment Priority:分配的优先级(1为最⾼)。如果⼀个具有更⾼优先级的分配⽅法的新地址可⽤,它 将覆盖先前由具有较低优先级的分配⽅法分配的IP地址。
- Assignment Trigger:地址分配的触发⽅式。
- AUTOMATIC:地址分配⽅法是在建⽴物理连接后⾃动触发 的。⼀个静态配置的IP地址(⻅TcplpStaticlpAddressConfig)将被⽴即分配,但在运⾏时可以通过调⽤ Tcplp_RequestlpAddrAssignment()来改变。
- MANUAL:地址分配⽅法是由⽤⼾通过调⽤Tcplp RequestlpAddrAssignment()⼿动触发的。

- Netmask:IPv4地址的⽹络掩码或CIDR符号中|Pv6地址的地址前缀,即0⾄32(IPv4)或0⾄128(IPv6)之间 的⼗进制值,描述了定义⽹络号码或IP地址前缀的有效位数量。
- Static Ip Address:设置单播的IP地址为172.16.2.63,这个需要根据需求来配置。这个是目标IP地址
7.5多播地址配置


7.6广播地址配置

7.7ARP配置

- Arp Request Timeout:ARP请求有效性的超时,单位为秒。在传输ARP请求后,Tcplp应在 TcplpArpRequestTimeout秒的时间内跳过对同⼀⽬的地的任何进⼀步ARP请求的传输。(IETFRFC 1122,section22.3.2.1)这个参数的值应该是TcplpMainFunctionPeriod的整数倍或0。如果这个参数设 置为0,这个功能就被禁⽤,ARP请求之间没有延迟。ARP请求的超时,由上层触发。在 ArpRequestTimeout期间,Tcplp将只发送⼀个ARP请求,即使上层触发了多个ARP请求的Tx。 ⽐如,在⼀个ArpRequestTimeout期间,只有⼀个ARP请求传输(⽩上层触发)。
- Num Gratuitous ARP On Startup:配置分配⼀个新的IP地址时应发送的⽆偿ARP回复的数量。
- Packet Queue Enable:是否启⽤数据包队列。
- Retry Interval:重试的时间间隔。
- Retry Timout:重试的超时时间设置。
- Table Entry Timeout:设置超时,超时后未使⽤的ARP条⽬将被删除。值为0意味着ARP条⽬将永远不会 因为超时⽽从ARP表中删除。如果ARP缓存中的条⽬被使⽤并且在指定的时间内没有被更新,ARP将通 过为相应的IP地址发送⼀个或多个ARP请求来重新验证该ARP条⽬。如果远程主机在 TcplpArpRetryTime指定的时间内没有发送ARP回复,该条⽬将被从ARP表中删除。如果ARP缓存已满, 并且TcplpArpDiscardedEntryHandling被设置为FALSE,那么在超时之前,⼀个条⽬可能被基于最近使 ⽤的ARP条⽬取代。
- Table Size Max:ARP表中的最⼤条⽬数。


- Echo Reply Max Buffer Len:这个值规定了Echo Reply的最⼤有效载荷⻓度。如果⼀个Echo请求包含 更多的数据,响应的有效载荷将被截断。
- Icmp Destination Unreachable Enable:此参数定义了ICMPV4是否应根据IETFRFC792发送ICMP目标不可达消息。
如果启⽤,如果收到具有下列属性之⼀的单播数据包,ICMPV4会⽤⽬的地不可达消息进行响应。
-上层协议是未知的。
-UDP⽬的端⼝没有打开。 - Time-To-Live(TTL):发出ICMP数据包的默认⽣存时间值。
7.8关联上层SoAd模块

7.9TcpIpConfig配置

- Average Tx Retry Queue Size:该值规定了分配给⼀个TCP套接字的Tx RetryQueue的平均条⽬量。注 意。重试队列被分组在所有TCP套接字共享的池中。因此,⼀个套接字的可⽤条⽬可能⽐指定的少。
- Avg Num Out Of Order Segments per Socket:这个值指定了每个TCP套接字的失序控制元素的数量。 这些元素被分组到⼀个由所有TCP套接字共享的池中。⼀个TCP套接字允许分配的元素数 与'TcplpTcpMaxNumOooSegsPerSocket指定的⼀样多。注意:'TcpAvgNumOooSegsPerSocket'只有 在'TcpOutOfOrderRxxSupport'被设置为'true'时才可⽤。
- Congestion Avoidance Enabled:是否启动TCP堵塞算法。
- Enable Diag Read Ack Seq Num:启⽤对指定套接字的当前TCP序列号号和确认号的读取
- FIN Wait2Timeout:从远程节点接收FIN的超时(在该节点启动连接终⽌后),即在FINWAIT-2中等待远程 TCP的连接终⽌请求的最⻓时间。Timeout的值必须⾄少是1MSL。默认值为120。
- Fast Recovery Enable:配置是否启⽤TCP快速恢复。
- Fast Retransimit Enable:配置是否启⽤TCP快速重传。
- Keep Alive Enable:是否启⽤TCP保持Alive。注意:该参数仅启⽤对KKeepAlive机制的⼀般⽀持。必须 在运⾏时为每个套接字明确启⽤KeepAlive。(⻅SOAdSocketTcpKeepAlive*参数)
- Keep Alive Interval:指定后续Keep Alive Probes之间的默认间隔。如果 TcplpTcpKeepAliveProbesMax被设置为0,这个参数默认没有影响,但是如果在运⾏期间改变KeepAlive Probes的数量,可能会有影响。
- Keep Alive Probes Max:在连接关闭之前,TCP Keep Alive Probes被重传的默认次数
- KeepAlive Time:指定发送最后⼀个数据包(简单的ACK不被视为数据)和第⼀个KeepAlive Probe之间的 时间。注意:将此配置参数设置为⼩于或等于TcplpMainFunctionPeriod的值,会导致在每个 MainFFunction周期内传输Keep Alive Probe。
- Max Num Out Of Order Segments per Socket:这个值指定了在运⾏期明间可以为⼀个TCP套接字分配 的最⼤失序控制元素的数量。注意:"TcpAvgNumOooSegsPerSocket"只有 在"TcpOutOfOrderRxSupport"被设置为"true"时才可⽤。
- Maximum Segment Lifetime:最⼤的分段寿命。(注:TIME-WAIT=2xTcplpTcpMsl-确保远程节点收到其 连接终⽌请求的确认。)
- Nagle Enabled:是否启⽤Nagle算法。如果启⽤,所有TCP套接字的Nlagle算法默认被激活,但可以通过 Tcplp_ChangeParameter()API停⽤
- Nagle Timeout:该值指定了Nagle算法的超时,超时定义了即使前⼀个⽹段还没有被acked,也要发送⼀ ⼀个⼩的TCP⽹段的时间。将超时值设置为"0"可以关闭超时功能,如果先前发送的数据仍未被对等体选 中,TCP将永远等待发送⼀个⼩段。如果对⽅使⽤"延迟确认",这种设置可能会导致巨⼤的延迟。注意,值 必须是主功能周期的倍数。
- OutofOrderRxSupport:是否⽀持接收失序的TCP段。
- Receive Window Max:最⼤接收窗⼝的值。
- Retransmission Timeout:在重传未被认可的TCP段之前的超时时间。
- Retransimission Timeout Max:在重传未确认的TCP段之前的最⼤超时时间。
- SYN Max Rtx:TCPSYN被重传的最⼤次数。注意:在TcplpTcpRetransmissionTimeout之后,SYN将被重 试。如果在最后⼀次发送TCPSYN后没有收到匹配的连接请求,并且TcplpTcpRetransmissionTimedut 已经过期,连接将被放弃。
- SYN Received Timeout完成远程发起的TCP连接建⽴的超时,即在收到和发出连接请求后,在SYNRECEIVED中等待确认连接请求确认的最⻓时间。
- Slow StartEnabled:是否启⽤慢启动算法的⽀持。
- Time Stamp Option:是否后⽤TCP时间戳选项。
- Time-To-Live(TTL):发送阶段TCP数据包的默认时间-⽣存值。
- Tx Reset Queue Size:该值指定了为Tx复位队列保留的条⽬数量。注意意:重置队列是由所有TCP套接字 共享的。
- UserTimeout Def:该值指定了⽤⼾超时的默认值。默认值:20s。注意意:'TcpUserTimeoutDef的值必须 在'TcpUserTimeoutMin'和'TcpUserTimeoutMax'定义的范围内。

7.10UDP相关配置

- TTL:设置UDP发出报⽂的⽣存时间
- Tx Retry Queue Size:UDP Tx Retry Queue元素的总数,这个数字必须⼩于或等于EthTxBufTotal的数 量。这个值指定了在没有有效解决远程物理地址的情况下可以存储的UDP传输信息的数量。配置的值 要⼀个启⽤的ARP/NDP包队。
8.SoAd模块配置
SoAd层⽀持通过TCP/IP⽹络进⾏基于PDU的通信。AutoSar I-PDU映射到由SoAd配置和维护的套接字 连接。要为多个I-PDU使⽤套接字连接,可以在每个I-PDU前⾯添加SoAd PDU标头。
- SOAD层通过TCP/IP⽹络实现基于PDU的通信
- AUTOSAR I-PDU映射到SoAD配置和维护的Socket连接。
- 要对多个I-PDU使⽤Socket连接,可在每个I-PDU前⾯添加⼀个SOAD PDU头
- PDU路由组管理-启⽤/禁⽤从/到Socket的PDU路由

8.1SoAd General配置

- Main Function Spilt Enabled:这个参数指定SoAd是否应将弃SoAd_MainFunction拆分成三个函数。
SoAd_MainFunctionRx
SoAd_MainFunction State
SoAd_MainFunction Tx
这样可以优化特定⽤例的数据接收和数据传输路径。
注意:所有三个主函数必须从同⼀个任务中调⽤,或者⾄少从不互相⼲扰的任务中调⽤。 - RoutingGroup Count:指定SoAd路由组的最⼤数量。此外,它定义了⽤于RoutingGroupldType的平台 类型。如果 SoAdRoutingGroupMax不⼤于256,则使⽤⼀个uint8,否则就使⽤uint16
- Shutdown Finished Wait Time:这个参数定义了关机机制的超时⽇时间,它是由调⽤SoAd Shutdown() 启动的。如果这个超时,SoAd将切换到关闭状态,即使套接字还没有完全关闭。
- Socket Connection Count:配置的SoAd套接字连接数。此外,它定义了⽤于SOAd_SoConldType的平 台类型。如果SoAdSoConMax不⼤于256,则使⽤uint8,否则为uint16。
8.2SoAdBswModules配置

DoIp

- Bsw Module Ref:关联的上层的BSW模块
- lf:指定BSW模块是否⽀持通信接⼝的API。值为true意味着⽀持这些API。⼀个模块可以同时拥有通信接⼝API和传输协议API(例如PduR模块)。
- If Trigger Transmit:指定BSW模块是否⽀持TriggerTransmit API。值为true表⽰⽀持该API。
- IfTxComfirmation:指定BSW模块是否⽀持TxConfirmationAPI。值为true表⽰⽀持该API。
- Local Ip addr Assignment Chg:指定BSW模块是否⽀持LocallpAddrAssigmentChgAPI。值为true表 ⽰⽀持该API。
- Shutdown Finished Cbk:这个参数启⽤⼀个回调,如果SoAd在成功调⽤SoAd_Shutdown()后处于关闭 状态,这个回调将被调⽤。
- So Con Mode Chg:每个容器都描述了⼀个特定的BSW模块。
- Tp:指定BSW模块是否⽀持TransportProtocol APIs。值为true意味着⾔⽀持这些API。⼀个模块可以同 时拥有通信接⼝API和传输协议API(例如,PduR模块)。
- Tp Copy Rx Data With Const Pointer:这个参数指定上层UI_[SoAd][[Tp]CopyRxData()函数是否⽤常 数指针来实现参数"info"。
- Tp Copy Tx Data With Const Pointer:这个参数指定上层UI_[SoAd][Tp]CopyTxData()函数是否⽤常数 指针来实现参数"info"。
- Tp Start Of Reception Witn Const Pointer:这个参数指定上层UI [ScoAd][Tp]StartOfReception()函数 是否⽤常数"info"。
- Use Caller Infix:指定SoAd在调⽤上层模块函数时是否使⽤(TRUE) infix "SoAd"(FALSE)。例如:如果 SoAdUseCallerlnfix对上层"ABC"是TRUE,那么SoAd将调⽤ABC_SoAdlfRxIndication(),否则SSoAd将 调⽤ABC_lfRxIndication() Use Tupe Infix:指定SoAd在调⽤上层模块函数时是否应使⽤(TRUE)API类型的infix"Tp"或"If" (FALSE)。例如:如果
- SoAdUseTypelnfix对上层"ABC"是TRUE,那么SoAd将调⽤ABClfRxIndication(),否则SoAd将调⽤ ABC_RxIndication()。
PDUR配置

SD配置

8.3套接字绑定元素
SD单播绑定IP地址和端⼝

- Enable IP Address Assignment Change Notification:如果此套接字连接使⽤的本地IP地址分配发⽣变 化,是否应调⽤上层的本地IP地址分 配变化通知回调函数。
- Enable PDUHeader:启⽤此套接上的PDU头(ID,⻓度)的传输。
TRUE:在PDU数据之前添加SoAd PDU头
FALSE:不使⽤SoAd PDU头 Local Address
Reference:关联引⽤该连接的本地IP地址和接⼝。 - Local Port:⽤于此连接的本地UDP或TCP端⼝。如果此参数设置为0,SoAd请求Tcplp选择⼀个短暂的端⼝。
SD多播绑定IP地址和端口

配置IP地址路由

- Remote IP Address:这个参数定义了远程节点的IP地址。要接受任何远程IP地址,请将此参数留空。 如果该参数为空(通配符),则⽆法打开套接字连接 (设置为在线)。远程地址必须在运⾏时通过API调⽤、 UDP帧接收或TCP连接建⽴时被覆盖。
- Remote IP Address not set:该参数定义了远程IP地址是否被设置(有效或通配符)或未设置。True:未设置IP地址。False:IP地址已设置(有效/通配符)。
- Remote Port:这个参数定义了远程节点的UDP或TCP端⼝。要接受任何远程端⼝,请将 SoAdSocketRemotePort设置为0。 如果这个参数被设置为0,套接字连接就不能被打开(设置为在线)。远程地址必须在运⾏时通过API调⽤, 在UDP帧接收或通过TCP连接建⽴时被覆盖。
- Remote Port not set:该参数定义了远程端⼝是否被设置(有效或⼽通配符)或未设置。True:未设置端 ⼝。False:端⼝已设置(有效/通配符)。
选择传输层协议
传输层协议UDP

- Enable Address Resolution Retry:指定是否应在Tcplp模块中存储传输请求,以便在地址解析丢失时重 试传输(ARP/NDP)。True:启⽤重试;False:禁⽤重试。
- Socket Udp Address Resolution Retry Queue Limit:该参数为该套接字设置最⼤使⽤UDP传输重试队 列元素的限制。该值在套接字创建时被转发给Tcplp模块。
⽐如,由于地址解析(ARP)尚未完成,通过UDP套接字的传输在Tcplp模块中失败。这个传输被保存在重试 队列中,传输请求被认为是成功的。如果限制被设置为1,Tcplp将拒绝进⼀步的传输请求,直到重重试队列 元素被释放。
8.4TCP配置




- DisableTCP Congestion Control:指定不对该连接使使⽤拥堵控制机制。对于UDP套接字,它将不被定 义。TRUE:该TCP连接将不使⽤拥塞控制。FALSE:此TCP连接将使⽤拥塞控制。如果没有启⽤这个可选 参数,将应⽤通过参数TcplpTcpNagleEnaabled为Tcplp配置的默认⾏为。
注意:如果TcplpTcpNagleEnabled被设置为FALSE,则该参数不能被设置为FALSE。 - Enable ImmediateTxConfirmation:如果设置为FALSE,SoAd在收到TcpAck后通过发送确认通知TP上 层。如果设置为"true",SoAd会在Tcplp接受传输后⽴即通过传输确认来通知TP上层。
- Enable Keep Alive:指定对该连接使⽤保持⽣存的机制。它将不会被UDP套接字的定义。
TRUE:这个TCP连接将使⽤保持通话机制。
FALSE:这个TCP连接将不使⽤保持通话机制。
注意:如果TcplpTcpKeepAliveEnabled被设置为FALSE,则此参数不能被设置为TRUE。 - Minimum TxBuffer:该参数定义了Tcplp必须能够在该组的每个套接字连接上提供的最⼩传输缓冲区⼤ ⼩。这个值会在运⾏时创建套接字时转发给Tcplp。如果没有配置这个可选参数,Tcplp将使⽤⼀个默认值。
8.5UDP配置




8.6创建SoAd路由的Group



8.7关联Socket与接受PDUs
(1)确定PDU Header ID

SD服务发现的Service ID是FFFF,Method/Event ID是8100,所以SD Header ID是0xFFFF8100

(2)关联PDU并绑定Group,同⼀个Server提供的Method需要绑定到同⼀个Routing Group
SD服务发现多播

SD服务发现单播

- Upper Layer Type:IF层,TP层根据报⽂类型进⾏选择,⼀般只有DoIp选择TP层
DoIp

Eth Udp网络管理报文

应用报文

9.LdCom配置
LdCom和Com本质是⼀样的,区别在于如果涉及到⼤数据的传输会⽤到LdCom模块。⽤LdCom替换 COM,删除⽣成的COM模块相关配置

9.1Method相关信号接收配置

- ApiType:表⽰l-PDU所需的API类型。
LDCOM_IF:表⽰l-PDU是通过通信接⼝API发送/接收的。
LDCOM_TP:表⽰l-PDU是通过传输协议API发送/接收的。 - Handle Id:⽤作该l-PDU的数值。这个ID被Rte⽤来调⽤LdCom。创建⼀个相应的shortName,⽤于Rte 的调⽤。相同的ID⽤于PduR的调⽤。
- IPduDirection:定义IPdu信号的⽅向。
LDCOM_RECEIVE:表⽰l-PDU是接收信号
LDCOM_SEND:表⽰l-PDU是发送信号 - Pdu Ref:关联EcuC中的Pdu Rx Indication:仅⽤于接收⽅:要调⽤的Rte_LdComCbkRxIndication回调函数的名称。
- System Template Signal Ref:关联DBC中对应的信号根据项⽬需求配置好所有接收Pdu。

9.2Method相关信号发送配置

9.3Event发送信号配置

10.PduR配置
10.1Method接收

这⼀步主要是关联上层LdCom模块。
- Dest Pdu Data Processing:这个选项决定了在哪种⽅式执⾏对⽬标模块的路由。
IMMEDIATE:路由是在transmit或indication函数中执⾏的。
DEFERRED(延迟):路由是在主函数的背景下进⾏的。 - Dest Pdu Data Provision:指定如何提供数据:直接(作为传输调⽤的⼀部分)或通过传输请求后的 TriggerTransmit回调函数。只对通信接⼝Tx DestPdus有要求。
- Dest Pdu Direction:这个参数决不能⼿动改变。它是由PduR验证⾃动计算的。PduR路由路径⽬标Pdu 通信⽅向。
RECEIVE:路由路径⽬标是⼀个接收Pdu。
TRANSMIT:路由路径⽬标是⼀个发送Pdu。
UNDEFINED:⽆法确定通信⽅向。 - DestPdu Handle ld:这个参数决不能⼿动改变。它是由PduR验证⾃动⼒计算的。由PDU路由器分配的 PDU标识符。由通信接⼝和传输协议模块使⽤,⽤于确认和触发传输API调⽤
- Dest PduRBswModules Ref:这个参数决不能⼿动改变。它是由PPduR验证⾃动计算的。关联 PduRBswModules LdCom(UpperLayer)的PduR路由路径⽬的地Pdu。
- Dest Pdu Ref:关联信号对应的Pdu
- Dest Pdu Routing Type:这个参数决不能⼿动改变。它是由PduR验证⾃动计算的。PduR的路由路径⽬ 的地Pdu的路由类型。
路由类型决定了路由路径的路由操作模式:
API_FORWARDING:在下层和上层模块之间进⾏路由。
GATEWAY_ROUTING:下层模块之间的路由。
UNDEFINED:路由类型⽆法确定。 - Pdu Length Handling Strategy:这个参数只⽤于通信接⼝路由。对于专输协议路由,它被忽略。
UNUSED:对Tp路由路径或未排队的If路由路径使⽤此值
SHORTEN:如果在源端收到较⼤的Pdu,Pdu会缩短到配置的全局Pdu⻓度(以前PduR版本的默认 值)。
DISCARD:如果在源端收到⼀个⽐配置的⼤的Pdu,Pdu将被丢弃
IGNORE:如果Pdu的⻓度被忽略,并移交给⽬标模块。(只记适⽤于未排队的IF路由路径)

- Source Pdu Handle ld:这个参数决不能⼿动改变。它是由PduR验证⾃动计算的。由PDU路由器分配的 PDU⾃动计算。
- Src Pdu Direction:这个参数决不能⼿动改变。它是由PduR验证⾃动计算的。PduR路由路径源端Pdu 通信⽅向。
RECEIVE:路由路径源端是⼀个接收Pdu。
TRANSMIT:路由路径源端是⼀个发送Pdu。
UNDEFINED:⽆法确定通信⽅向。 - Src Pdu PduRBswModules Ref:这个参数决不能⼿动改变。它是由PduR验证⾃动计算的。 关联PduRBswModules SoAd (Low Layer)的PduR路由路径源Pdu.
- Src Pdu Ref:关联信号的Pdu
10.2Method发送

10.3Event发送

注意:⼀旦以上配置中Transmission Confirmation使能,则需要使能响应的PduR和SoAd中的属性, 否则编译通过,但测试过程中会响应报⽂是会Trap.

5123

被折叠的 条评论
为什么被折叠?



