浆液型电磁流量计的探讨 八
3. 2 软件实现
软件设计采用模块化设计方案,将完成特定功能或类似功能的子程序组合成功能模块,主要功能模块有: 初始化模块、驱动模块、数据处理模块、通讯模块、人机接口模块、看门狗模块等,由主程序统一调用和协调各模块正常有序工作。
初始化模块负责系统内F2812、过程参数变量及各外设初始工作状态的初始化。系统将软件程序下载至内部Flash 中,并在系统初始化时将调用频繁的子程序从Flash 中拷贝到内部RAM 中运行以提高程序执行效率。外设初始化主要包括系统中各模块的工作状态的初始化,如采集模块ADC 的同步启动、偏置调整的初始输出及驱动、通讯的初始化等。
驱动模块主要为励磁控制,由F2812 结合时序逻辑电路实现。单频励磁时,励磁控制仅由GP Timer4 控制;双频励磁时,励磁控制由定时器GP Timer3 和GP Timer4控制。系统初始化后,插入相应定时器启动程序即可进行励磁控制,而无需CPU 干预。
数据处理模块主要包括数据采集、流量计算和偏置调整三个子模块。数据采集通过捕获中断( CAP1) 通知CPU 读取数据,由GPIOA8 /9 模拟SPI 功能来同步读取传感器信号和励磁电流的转换结果。偏置调整则通过设置上下门限,当信号最大幅值超过上门限或其最小幅值低于下门限时,则计算偏置调整量并由SPI 控制偏置调整电路DAC 输出将其基准拉回至0。流量计算则采用通讯模块采用SCI 接收中断方式监听上位机控制指令,在与上位机数据交互中采用FIFO 模块进行数据信息批量处理,并根据上位机指令动态调整FIFO 级数以提高系统自身通讯效率。SCI 通讯波特率由上位机设定,系统中F2812 采用自动侦测的方式设置波特率。
人机接口模块用于液晶刷新、显示切换及参数修改等; 看门狗模块为防止系统“死机”,系统启用F2812 内部自带的看门狗模块。
电磁流量计