基于STM32 的信号采集卡设计
2022-09-28刘万兵刘海军董佳壮
刘万兵,刘海军,曹 勇,卢 超,董佳壮
(1.河南安彩高科股份有限公司,河南安阳 455000;2.安阳工学院,河南安阳 455000)
近几年,经济快速发展,技术也更新迭代[1-2],我国作为电力消费第一大国,一直在不断提高对电力行业的投入,各行各业对于电力的需求也在大幅地增加[3]。随之而来的是对于电力系统的管理问题,整个电力系统环节众多[4-5],而电力参数是最能够体现电力系统运行状况的指标。由于电力系统的重要性[6],从系统的实时性、精确性及可靠性方面对电力参数采集的性能都提出了很高的要求[7-8]。
随着电力系统的不断发展与完善,电力参数的采集也需要进行相应的升级迭代,需要与最新的信号采集技术相结合[9-10]。在对电力参数采集时,需要保证电力系统的稳定运行,能够自动从电力系统中获取电力参数[11-12],并将其实时显示出来,使其与相关设备运行维护部门配合,最终实现对电力系统的智能控制,同时由于电力设备具有一定的危险性,对设备操作的安全性也有一定的要求[13]。
在实际的生产生活过程中,交流电的应用最广泛,因此交流电参数的采集意义重大[14]。该设计以此为出发点,为了使系统能够满足采集数据时的性能要求,选用了处理性能强大且功能稳定可靠的STM32 单片机作为核心控制器,通过对电压互感器和电流互感器的选型,设计了检测电路、显示电路,并在实现的过程中,加入了过电流保护部分,利用STM32 自身的A/D 转换功能,对信号检测模块所采集到的信息进行模数转换,传输至显示模块将电力参数实时显示出来,辅以继电器作为设备的保护装置,进而实现了数据的采集。
1 系统总体方案设计
1.1 系统组成
系统的设计思路是通过各硬件电路之间协调来实现,在硬件组成方面,系统主要分为单片机最小系统电路、电压电流采集电路、继电器控制保护电路、电力参数显示模块电路、指示灯电路、主电路保护电路等。在功能方面,系统主要分为电压电流采集模块、单片机内部模数转换模块、单片机核心控制器模块、参数显示模块。系统框图如图1 所示。
图1 系统框图
1.2 单片机核心模块设计
为了满足设计所达到的性能,系统选择ST 公司的STM32F103C8T6 单片机作为核心模块的控制器,选用该单片机不仅仅考虑了设计的成本以及功耗,同时由于该单片机在功能方面的优越性,不仅满足了系统的设计要求,还能够提供额外的扩展功能,使系统具备了可升级换代的特性。
1.3 检测模块设计
在设计检测模块中加入了互感器,将高压交流电信号转换成较小的交流信号。STM32 单片机虽然具有模数转换功能[15],但是只能完成对直流信号的模数转换,无法对交流信号进行模数转换,所以在得到较小的交流信号之后,还要对其进行整流滤波处理,之后再将信号传输至单片机,以此来完成工作。故该设计选用TV1005-1M 电压互感器和TA1005-1M 电流互感器作为检测源头,将系统的交流电压和电流信号采集过来,再由整流电路进行整流之后,传输到STM32 的模数输入端口进行模数转换,具体采集和整流电路如图2 所示。
图2 检测模块原理图
1.4 显示模块设计
检测模块采集完电力参数,由单片机对所采集到的信号进行换算得出实际值。为了能够将系统采集到的电压、电流、功率及用电量等电力参数实时直观地呈现出来,该模块选用LCD1602显示器作为设计的显示端,进行数据的显示。
1.5 模数转换模块设计
该模块所选的主控芯片STM32F103ZET6本身自带3 个12 位的模数转换器,并且每个转换器包含有21 个外部通道[16],在数据采集和处理方面能够满足《GB/T19862-2016 电能质量监测设备通用要求》的需求。故设计时不再外设A/D 转换电路,选用STM32自身A/D 功能,实现采集信号的模数转换功能。考虑到在对信号进行采样时,可以选用循环扫描的方式对ADC 的输入进行采样,在每个采样周期内,均需要从转换器的不同通道逐个采样。同时还要保证电压和电流信号在同一相位被采集时保持同步。因此在进行通道分配时,把电压信号连接到ADC1 的通道CH0上,将电流采集信号连接到ADC1通道CHl上,这样就能够确保在某一项电压采样结束后立即对该相电流采样,从而保证产生的相位误差足够小,并忽略不计。
1.6 保护电路设计
电源保护电路主要是为了保护STM32 供电端,设定的保护值是1 A,即当系统电源出现短路,电流值达到1 A 时,MT9700 截止输出,使输出电压为零,从而有效地防止系统短路对后续设备造成冲击。另外,还设计了主电路检测保护电路部分,主要用来检测主电路的电流是否超出设定值,如果主电路电流正常,系统正常工作,否则,经过该检测保护电路,将非正常量传输到CPU,由CPU 发出声光报警信号,以提示工作人员[17]。主电路保护电路具体接线原理如图3 所示。
图3 主电路保护电路
1.7 通信电路设计
本设计采用的是串行通信来实现数据采集硬件和向显示电路传输数据。STM32 将检测电路得到的电压、电流信号处理后,一方面可以直接发送给显示电路进行显示,另一方面可以通过串行通信的方式传给相应的上位机系统,以实现实时监测、显示和存储电网用户的电压、电流情况。STM32 自身含有串口接口,均衡考虑PGIO 口的使用情况,该模块采用STM32 自身串口作为串口通信,并选定PC10 和PC11作为串口通信的端口。
2 系统软件设计
系统的软件程序设计主要包括主程序设计、模数转换程序设计、中断程序设计以及显示程序设计四部分。
2.1 主程序设计
主程序运行流程图如图4 所示。系统运行的大致流程:接入5 V 电源,对系统进行上电,单片机完成对系统时钟、I/O 口、定时器及串口的初始化工作,随后信号采集模块开始进行电力参数信号的采集工作,并将采集到的数据传输至模数转换模块,单片机核心控制器将计算出的电力参数信号实时传输至显示器模块,同时系统检测电流值是否大于5 A,一旦超过系统允许的最大电流值,继电器断开,并切断电路,系统停止工作。
图4 系统主程序运行流程图
2.2 模数转换程序设计
模数转换程序流程图如图5 所示。设备上电后,STM32 开始对模数转换模块初始化,对端口进行使能处理,设置模数转换工作方式,校准结束之后,开始对采集到的信号进行模数转换处理,转换完成后,程序结束。
图5 模数转换程序流程图
2.3 中断保护程序设计
中断保护程序流程图如图6 所示。设备在接入交流电后,检测模块进入工作状态,开始实时采集电压值,接入负载之后,开始实时采集电流值,当检测模块检测到电流值大于5 A 时,中断保护程序启动,继电器断开并切断电路,信号指示灯熄灭,检测模块停止工作,程序结束。
图6 中断保护程序流程图
2.4 显示程序设计
显示器的显示内容包括系统实时采集到的电压值、电流值、功率值以及用电量。显示程序流程图如图7 所示。显示器模块运行时,为保证文本的正常显示,应首先对显示器进行初始化设置,显示器显示实时电力参数信号,程序结束。
图7 显示程序流程图
3 系统调试结果
在完成系统各项功能的调试工作之后,开始对实物进行上电测试,最终实现以下功能:当系统接入5 V 直流电源,并完成上电工作,STM32 核心板指示灯亮起,检测模块电源指示灯亮起,显示器屏幕点亮,并且所有显示参数皆为0;随后接入220 V 交流电,此时系统开始信号采集工作,显示器实时显示当前实际电压值,当系统接入负载后显示器开始显示当前电流值、功率值以及负载所消耗的用电量;若系统检测到电流值大于5 A 时,继电器自动断开,并切断电路,同时继电器信号指示灯灭,检测模块随即停止工作;若检测电流小于5 A,则系统可以一直正常工作,可以通过手动方式切断电源,使系统停止工作。系统正常运行情况如图8 所示。
图8 系统正常运行情况图
4 结论
该文从信号采集卡当前的实际发展情况出发,设计出一种基于STM32 的信号采集卡。通过对电压互感器和电流互感器的选型以及整流电路的设计,系统实现了对于交流电信号的采集,最终完成了对电力参数中电压、电流、功率、用电量等信号的采集。信号采集卡在接入交流电之后,可以实现将检测并计算出的电压、电流、功率及用电量通过显示模块实时显示出来,最后经实验验证了设计方案的可行性。由于所选用的单片机性能强大,使其可靠性得到保障的同时具有易操作性、可扩展性等优点。