软考真题
第101题
在服务型智能扫地机器人的系统设计中,李工设计的扫地机器人硬件系统接口如图2-1所示,其中STM32单片机负责进行各个传感器的数据釆集,包括利用GPIO进行各种传感器数据的获取、利用ADC进行红外测距仪数据的获取、利用IIC进行陀螺仪(角度)传感器数据的获取,通过串口将数据发送给主处理器S5PV210,并利用脉冲计数进行扫地机器人运动速度、距离等信息的获取。主处理器S5PV210通过USB接口采集实时视频,利用PWM进行云台控制,同时利用USB接口通过WIFI和后台主机实现信息交互。

STM32单片机有BOOT1和BOOTO两个启动方式选择管脚,包括三种不同的启动方式,如表2-1所示。

李工在STM32单片机的启动电路设计时,釆用跳线帽形式进行启动方式选择,对应电路如图2-2所示。

李工在利用ADC进行红外测距仪数据的釆集设计中,采用STM32内置的12bit逐次比较型ADC,参考电压Ref为3.3V,ADC的釆集数字输出为:

为获取扫地机器人在移动过程中的距离、速度等信息,李工将霍尔传感器模块分别安装在左右车轮驱动电机的轴上,通过两个计数器采集左右驱动电机轴上的霍尔传感器脉冲数,以此来计算获取扫地机器人的移动距离、旋转角度等信息。图2-3为扫地机器人的圆形机身和左右两轮的示意图。

已知左右车轮转动一圈时,霍尔传感器输出564个脉冲(表示为n0),那么计数器采集到的脉冲数和左右轮的移动距离关系可以表示为(R为车轮距中心半径,r为左右轮的半径,nx为当前计数器从开始到现在采集到的脉冲数):



如果STM32的选择从主Flash启动,那么图2-2中的跳线帽应该连接管脚1和管脚2还是管脚2和管脚3?
当红外测距仪数据模拟电压Vin为2.4V时,ADC的输出值是多少?(用十进制数表示)
假设扫地机器人的车轮距中心半径R=30cm,左右轮的半径r=5cm。当左轮PWM脉冲计数数目为2256时,左轮从脉冲计数开始到现在,移动的距离是多少厘米? (π取 3.14)
李工在扫地机器人设计中加入了陀螺仪模块,通过陀螺仪可以获取不同时刻之间的偏转角,进而与霍尔传感器相融合,使得运动控制器能够直接快速得到系统当前的偏转角。陀螺仪和STM32之间通过IIC接口进行数据通信,陀螺仪和STM32之间还有一个信号线(STM32的GPI09)和陀螺仪芯片复位线(STM32的GPI08,低电平为复位, 高电平为非复位)。
在STM32通过IIC接口获取陀螺仪数据前,需要先对陀螺仪复位并查询信号线的有效性(GPI09高为有效,低为无效),有效时再通过IIC接口读取陀螺仪的数据。李工设计了通过IIC接口获取陀螺仪数据的流程图(图2-4),请选择合适的项进行补全。
图2-4 中( )-( )备选答案:
A.GPI09和GPI08都设置为输入
B.GPI09和GPI08都设置为输出
C.GPI09设置为输入,GPI08设置为输出
D.GPI09设置为输出,GPI08设置为输入
E.GPI09设置为高,持续一段时间,
G.PI09设置为低
F.GPI09设置为低,持续一段时间, GPI09设置为高
G.GPI08设置为低,持续一段时间, GPI08设置为高
H.GPI08设置为高,持续一段时间, GPI08设置为低
I.GPI09为高电平?
J.GPI09为低电平?
K.GPI08为高电平?
L.GPI08为低电平?
M.通过IIC读取数据
N.通过IIC写入数据