一、选用的控制系统简介
选用的系统案例为电脑鼠。电脑鼠是一微型自动走迷宫机器人,凭借自身的传感器来实时全自动寻迹行走。
由于传感器、电机种类等并不固定,在此案例中采用的基本硬件如下:
- 测距:红外传感器,有0度、45度、90度等方向。
- 轮子转速测量:与电机配合的光电编码器。
- 电池电压测量:数字电流传感器。用于补偿。
- 电机:直流电机。
- 加速度计。
- 无线传输。
二、该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。
2.1 电机控制电压插补
由于电磁惯性的存在,为了保证控制精度,控制电机的电压不应瞬间上升,应由软件插补后再按固定的时间间隔输入到电机电路中。这一任务的优先级应较高,时间延迟要求较高,估计在5ms以内。
2.2 碰撞检测
一般的加速度计都会有碰撞中断,一旦超过设定的加速度阈值,会产生中断,系统接收到信号后应马上响应并进入保护状态。时间延迟要求应该较低,估计在50ms以内。
三、如果你是软件设计者,要实现这些实时功能,要设计几个实时任务?
3.1 电机控制
这里需要一个较高的优先级,结合电池电压的补偿,保证电机插补不出错,以保证控制精度。
3.2 保护
这里需要确保在发生意外时能够及时进入保护状态。
3.3 轨迹插补
给定轨迹要求,计算并确定电机的控制序列。
3.4 位置判断
根据传感器的信号,计算并确定电脑鼠的当前位置。
3.5 路线规划
根据位置信息来确定所在的位置,并且规划出下一步的位置。
3.6 调试信息输出
通过某些通道输出调试信息。
四、这几个实时任务是时间触发的还是事件触发的,如果是时间触发的,周期大约是多少?
电机控制是属于时间触发,周期大约为1ms。
其它任务属于事件触发,可以在有要求时触发动作。
五、这几个实时任务之间是相互独立还是存在着一定的依赖关系?分析这种依赖关系。
存在一定的依赖关系。
最高层的属于路线规划任务,而这个任务需要借助位置判断的信息,然后可以给出轨迹要求,由轨迹插补任务来计算电机控制序列。最后由电机控制任务逐步输出控制序列。
其它的任务的触发顺序不固定。
六、这几个实时任务之间是否都需要使用一些共享的硬件资源?列出这种依赖性。
-
电机控制任务和保护任务均需要获取电池电压信息,均需要控制电机的输入电压,其中保护任务的控制优先级更高。
-
所有任务均在一个控制芯片上运行。