首先是接收板的输入端,采用一个16pin的fpc座子将接收板和发射板连接到一起,并使用一颗245芯片来增强信号驱动能力,其中AOMP_OUT是接收板处理后传递给发射板的模拟信号:
一个接收板上有64颗灯,每8颗灯为一组,下面是一组灯(1~8颗)的原理图,他们和一个采样电阻串联在一起(接收灯的负极接到5V电源)。当有红外发射管的灯发射的红外光照射到接收管上时,接收管会产生一个光电流,这个5.1kΩ的采样电阻会将光电流转化为电压。比如光电流为100uA,那么接收到的电压就是0.5V。
然后这S1X1~S1X8连接到8选1模拟开关SGM48751的X0~X7通道,单片机通过控制ABC来控制输出端和X0~X7通道中的某一个通道连接。
下图是模拟开关SGM48751的真值表,下表的意思是当使能端为高电平时,模拟开关X0~7都不和输出X连接到一起。当使能端为低电平,CBA控制端信号为000时,X0连接到X,输出端X的电压等于输入端X0的电压。CBA控制端信号为001时候,X1连接到X,输出端X的电压等于输入端X1的电压。以此类推,这样就可以让S1_OUT输出这一组灯的某一颗灯的信号了。
以此类推其他7组接收灯+7个模拟开关。然后再将这8组控制接受信号的模拟开关的输出X,接到另一颗模拟开关的输入端,然后再将这个U9模拟开关的输出X接到运算放大器,便可以实现64颗接收灯信号的选择了。例如下图:
比如我要选择第一组灯的第一颗灯,那就让ACTRL_A,ACTRL_B,ACTRL_C都等于0,这样就选择了第一组接收灯,然后再让SCTRL_A,SCTRL_B,SCTRL_C都等于0,那么就选择了这一组灯的第一颗灯,这样最终U9输出的信号就是第一颗灯输出采集到的光信号。
然后是这个64颗灯的选择输出端A_OUT接到了运放的输入端,第一级和第二级均为同相放大11倍,总放大倍数为121倍,其中C10和C15为隔直电容(接收灯接收的信号为脉冲电压信号),隔直电容可以隔离前级带来的一些额外的失调偏置电压。
然后这个运算放大器的最终输出端接到了一个二选一的模拟开关U11上,这个模拟开关使用一个D触发器去控制,D触发器电路如下:
其中D触发器的1Q接到下一块接收板的触发器,用于接收板的级联。即MCU可以通过D触发器选择第X块接收板,然后再用模拟开关选择第X组灯中的第X颗灯。可以将这个D触发器理解为一个移位寄存器,篇幅原因不过多赘述D触发器原理。下图为接收板输出信号: