1. SoAd模块的核心作用与设计背景
在车载以太网通信中,SoAd(Socket Adaptor)模块是AUTOSAR架构中的关键桥梁。它的核心作用是解决静态配置的AUTOSAR通信模型与动态TCP/IP协议栈之间的兼容性问题。传统AUTOSAR通信(如CAN总线)依赖预先编译时确定的静态路由表,而以太网通信需要动态的Socket连接管理(包括IP地址、端口和协议类型的实时分配)。SoAd通过抽象Socket连接,将上层应用发出的PDU(Protocol Data Unit)映射到对应的Socket操作(如绑定、连接、发送和接收),从而实现对TCP、UDP等协议的透明支持。
在实际项目中,SoAd的配置通常通过AUTOSAR工具链(如Vector DaVinci)完成。开发者需要定义Socket连接参数(本地/远程IP、端口号、协议类型),并将这些参数与PDU路由关联。例如,当某个ECU需要发送诊断报文(DoIP)或服务发现报文(SOME/IP)时,SoAd会自动选择正确的Socket连接并处理底层通信细节。这种设计使得应用层开发者无需直接操作Socket API,只需关注业务逻辑和PDU内容。
2. Socket连接的生命周期管理
2.1 Socket的打开与初始化
Socket连接的打开分为自动和手动两种模式,由配置参数SoAdSocketAutomaticSoConSetup控制。在自动模式下,SoAd模块在上电初始化阶段会自动调用SoAd_SoCon_OpenSocketTCP()或SoAd_SoCon_OpenSocketUDP()函数,根据配置创建Socket并绑定到本地地址。手动模式则需要上层模块(如SD模块或DoIP模块)显式调用SoAd_OpenSoCon()来触发打开操作。
对于TCP连接,打开过程包含三个关键步骤:
- 作为客户端时:调用
TcpIp_TcpConnect()发起连接请求,成功后TCP/IP栈通过回调函数SoAd_Tc


2265

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



