计算机网络面试问题-2

第二章 物理层

2.1 通信基础

1. 电路、报文、分组交换的区别?

电路报文分组
原理源结点和目的结点之间建立一条专用的通路用于传送数据以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式基于报文交换,将报文划分为更小的数据单位:报文分组(包)
优点数据直接传送,时延小较为充分地利用线路容量;实现不同链路之间不同数据率的转换;实现格式转换;实现差错控制缓冲易于管理;包的平均时延更小;更易于标准化;更适合应用
缺点线路利用率低、不能充分利用线路容量、不便进行差错控制增加资源开销;增加缓冲时延;需要额外的机制来保证多个报文的顺序不乱序;缓冲区难以管理(因为报文大小不确定)存在传输时延;附加信息开销大

在这里插入图片描述

*2.数据报与虚电路的异同?

二者是分组交换的两种方式,都由网络层提供
在这里插入图片描述
在这里插入图片描述

3. 时分复用的原理?

所谓时分多路复用,就是利用多路信号(数字信号)在信道上占有不同的时间间隔来进行通信。在信号传输时,也是多信号同时在传输介质传输的。它适用于时间离散信号的传输。

### STM32实现差速转向PID控制算法 #### 关于STM32控制器及其应用 STM32是一款广泛应用于嵌入式系统的微控制器,其强大的性能使其成为机器人控制系统中的理想选择。通过集成霍尔编码器增量式PID控制方法,可以有效实现机器人的速度调节与稳定运行[^2]。 对于差速转向的PID控制,核心在于计算左右轮的速度差异,并将其转化为PWM信号来调整电机转速。以下是具体实现思路: 1. **获取左右轮速度数据** 使用霍尔传感器采集左右轮的实际转速信息,并转换为线速度 $v_l$ $v_r$。这些数据可以通过定时器中断配合编码器脉冲计数获得。 2. **计算目标速度误差** 基于阿克曼转向模型或其他运动学方程,设定期望的目标速度 $v_{l\_target}$ $v_{r\_target}$。实际速度与目标速度之间的偏差作为输入传递给PID控制器[^3]。 3. **设计PID控制器** PID控制器的核心公式如下所示: \[ u(t) = K_p e(t) + K_i \int_0^t e(\tau)d\tau + K_d \frac{de(t)}{dt} \] 其中,$u(t)$ 是输出控制量(即PWM占空比),$e(t)$ 表示当前时刻的速度误差,而 $K_p$, $K_i$, $K_d$ 则分别为比例、积分微分系数。 4. **生成PWM波形** 将经过PID运算得到的结果映射到合适的PWM范围,用于驱动直流电机或步进电机。这一步通常借助TIM外设完成硬件级PWM输出配置[^1]。 下面给出一段简化版的C语言代码示例,展示如何基于HAL实现上述逻辑: ```c #include "stm32f1xx_hal.h" // 定义全局变量 float kp = 1.2, ki = 0.05, kd = 0.8; // 调整参数至最佳值 float error_prev = 0; float integral = 0; void PID_Controller(float target_speed, float actual_speed, TIM_HandleTypeDef *htim){ static uint16_t pwm_output; // 计算误差项 float error = target_speed - actual_speed; integral += error; float derivative = error - error_prev; // 更新前一次误差记录 error_prev = error; // 执行PID计算 float output = kp*error + ki*integral + kd*derivative; // 映射到PWM区间 [0, 100%] if(output > 100) output = 100; if(output < 0) output = 0; pwm_output = (uint16_t)(output / 100.0 * htim->Init.Prescaler); __HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_1, pwm_output); // 设置比较寄存器更新PWM周期 } // 主函数部分省略... ``` 此代码片段展示了基本框架,需进一步完善初始化过程及外部设备连接细节才能正常工作。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值