主题中讨论的其他器件:CC2340R5
工具与软件:
您好、TI
目前正在调试连接监控器。
我发现使用串行端口监控连接很简单、但使用 LIN 很难做到。
串行端口的波特率为460800、LIN 的波特率为19200。我们计算出 LIN 传输连接参数大约需要40ms。
这对连接监视器有何影响? 如何让 LIN 成功监控连接?
此致
普雷斯顿
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好、TI
目前正在调试连接监控器。
我发现使用串行端口监控连接很简单、但使用 LIN 很难做到。
串行端口的波特率为460800、LIN 的波特率为19200。我们计算出 LIN 传输连接参数大约需要40ms。
这对连接监视器有何影响? 如何让 LIN 成功监控连接?
此致
普雷斯顿
您好、TI
我在连接监视器项目中看到了这段代码:(__LW_AT__sdk:simplelink_lowpower_f3_sdk_7_40_00_64:project、connection_monitor_LP_EM_CC2340R5_freertos_ticlang)
// With a 100ms connection interval we will skip 3 channels into the future (in each connection event we can monitor 1 channel)
// This is mainly done to ensure that even a very slow bus is able to send the connection information in time
// In time: before the Central/Peripheral already go past the channel that we chose to listen on
// If Central/Peripheral are already past this point, we will have to wait numChannels*connInterval until we catch the
// connection once again
chanSkip = (uint16_t)((BUS_LATENCY_IN_MS/connInterval) + 1);
// Catch anchor point n+2 connection intervals in the future
ubCMConnInfo.ArrayOfConnInfo[i].scanDuration = (uint16_t)(connInterval*(chanSkip + 1));
// DeltaTime is the distance between the current time and time we received the data for the new connection.
deltaTime = uble_timeDelta(currTime, reqTime);
// Figure out how many connection events have passed since the last anchor point
if (deltaTime > connInterval * BLE_TO_RAT)
{
chanSkip += (uint16_t) (deltaTime / (connInterval * BLE_TO_RAT) + 1);
}
ubCMConnInfo.ArrayOfConnInfo[i].currentChan = setNextDataChan(sessionId, chanSkip); //jump some [ms] channels into the future
此处说明了两点。
1.这主要是为了确保即使是非常慢的总线也能够及时发送连接信息。
2.如果中心/外围设备已经超过此点、我们将必须等待 numChannels*connInterval、直到我们再次接通连接。
我想、如果我通过 LIN 传输连接参数(至少40ms、拆分成多个数据包以10ms 的传输间隔)、很可能我已经错过了目标通道。 但等待时间超过 numChannels*connInterval 之后、我仍然没有 RSSI 事件。 我需要调整哪些参数?
此致
普雷斯顿
Preston、
在这种情况下需要考虑的关键点是连接间隔。 如果您的连接间隔非常快、但总线延迟较慢(例如 LIN)、这可能会给系统带来更大的压力。 例如、对于 Android 设备、在连接开始时通常使用7.5ms 的连接间隔、以实现 GATT 发现等 在此期间、手机还会更新通道地图、以此类推、因此设备需要对此做出快速反应。 也就是说、我们还有其他情况、利用 LIN 的连接监测器生产了类似的器件。 如果您将其设置为期望更大的总线延迟、那么系统是否运行良好? 您设置的大小如何?
您好、Evan
我找到了总线延迟的相关参数。 但是、您如何确定将此参数更改为多少? 我提高了它或者它不起作用。
我现在的做法是,我第一次收到 LIN 数据包,我读取 reqTime ( ubCM_startNewSession (中的 reqTime )。 我们将 LIN 配置为一次仅发送8个字节的数据、但连接参数约为30个字节、需要将其拆分为多次传输。 我已将 LIN 传输时间包含在 ubCM_InitCmSession ()的 deltaTime 中 ,这使得目标易于监控。
但是、我针对 simplelink_lowpower_f3_sdk_7_40_00_64执行该操作的方法是、将更新为 simplelink_lowpower_f3_sdk_8_10_00_55的方法再次不起作用。
此致
普雷斯顿