寫在前面:
入行一段時間了,基于個人理解整理一些東西,如有錯誤,歡迎各位大佬評論區指正!!!
目錄
1.Autosar ETH通訊軟件架構
2.Ethernet MCAL配置
2.1配置對應Pin屬性
2.2配置TXD引腳
2.3配置RXD引腳
3.Eth/Eth Trcv配置
3.1驅動包添加
3.2Eth/EthTrcv模塊配置
4.RTE/EcuM/BSWM配置
4.1RTE配置Task
4.2EcuM模塊配置
4.3BswM模塊配置
5.EttIf模塊配置
5.1EthIf General
5.2EthIfController配置
5.3關聯上層協議ARP/IPV4/IPV6
5.4Rx報文回調
5.5配置下層狀態切換以及發送確認回調函數
6.EthSM配置
7.TCP/IP配置
7.1TcpIp General
7.2TcpIpCtrl關聯EthIf
7.3TcpIpCtrl關聯ARP
7.4單播地址配置
7.5多播地址配置
7.6廣播地址配置
7.7ARP配置
7.8關聯上層SoAd模塊
7.9TcpIpConfig配置
7.10UDP相關配置
8.SoAd模塊配置
8.1SoAd General配置
8.2SoAdBswModules配置
8.3套接字綁定元素
8.4TCP配置
8.5UDP配置
8.6創建SoAd路由的Group
8.7關聯Socket與接受PDUs
9.LdCom配置
9.1Method相關信號接收配置
9.2Method相關信號發送配置
9.3Event發送信號配置
10.PduR配置
10.1Method接收
10.2Method發送
10.3Event發送
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.