3.电路与程序设计
3.1前级处理电路设计
3.1.1电阻测量电路
由前面的理论分析可知,需要设计一个三级的恒流源。如图2所示,A点和B点电压在B点接负载的情况下恒等于C点电压2.5V,否则输出为电源电压。因此在A点和B点间接不同的电阻可得到不同的电流源,在接负载时,B点电压由负载和恒流源共决定。R14、R15、R16分别决定20.8uA、208uA、2.08mA的电流源,由两个单刀双掷继电器进行选择,OP07提供缓冲。TL431给一个稳定的参考电压。
图2.电阻测量电路
3.1.2电流测量电路
由一个继电器控制1~10mA和10~100mA量程的选择,然后把获得的微弱电压信号放大10倍。具体电路图请参阅附录一总原理图。
3.1.3电压测量电路
把10mV~5V的电压变换到100mV~2.5V之间,理论上已进行计算,两档增益就可以满足要求。由于STM32F103ZE内置A/D有8通道,这里两档用A/D的两通道选择采样,免去硬件电路选择的麻烦。对于大信号做好保护电路就可,这里使用4148接到3.3V进行保护。具体电路图请参阅附录一总原理图。
3.1.4交流信号前期处理电路
输入交流信号的频率范围为10Hz~100kHz,为使耦合电路对信号没有衰减,都使用直流耦合(比较器例外),用一个继电器控制1和1/2的两档增益。输入前级加一个缓冲电路,用于满足题目输入阻抗大于1MΩ的要求,缓冲芯片选用输入阻抗为1012Ω的双运放LF353,其增益带宽积为4MHz,满足100KHz的要求。基于NE5532的比较电路用于信号采样的触发和频率的测量。详细电路如图3所示。
图3.交流信号前期处理电路
3.1.5 32位MCU(STM32系统开发板)主控电路(略)
3.2程序设计
在电路基本参数测试的程序设计中,主要是协调控制,该部分的程序设计要注意硬件电路的反应时间。对于波形显示方面,关键是扫描速度和垂直灵敏度的设计及在保证精度的条件下尽可能指高采样速率。扫描速度有200ms/div、20ms/div、2ms/div、200us/div、40us/div、2us/div;垂直灵敏度设有0.1V/div、0.5V/div、1V/div。在采样方面,使用了STM32F103ZE的DMA控制器,提高了采样速率的极限。具体系统程序设计流程图如图4。
图4.系统程序设计流程
程序:
int main(void)
{
/* 初始化系统 */
STM32_SystemInit();
lcd_init(); //初始化12864
lcd_CN("数字示波表",0,0);
lcd_CN("1:电阻 2:电压",0,1);
lcd_CN("3:电流 4:正弦波",0,2);
Init_measure(); //断开所有继电器
while(1)
{
Key_number = 0xff; //清除按键
while(Key_number == 0xff); //等待按键
switch(Key_number) //按键选择菜单
{
case 1 : Measuring_resistor(); break; //测电阻
case 2 : Measuring_voltage(); break; //测电压
case 3 : Measuring_current(); break; //测电流
case 4 : Measuring_sine(); break; //测正弦波
default: Key_number = 0xff;
}
}
}
文章评论(0条评论)
登录后参与讨论