基于低成本MCU的电流环路校准器的设计与实现
我们还使用模拟/数字转换器测量电流。PIC16F877内部的模拟/数字转换器具有10位分辨率,可以测量0至5V的电压值。电流流经0.47Ω电阻,并利用同相放大器放大到0~5V电平。另外,我们还使用了4x3的数字键盘和16x2大小而且带HD44780接口的GDM1602B指示器。
本次设计的设备有两种模式:第一种模式产生大小由用户输入的电流,第二种模式读取从外部电流环路检测到的电流。在电流源模式,从键盘输入的电流信息被送往微控制器并通过解码器分析。由微控制器决定了的电流信息再通过SPI协议发送到DAC,然后产生4-20mA范围内的目标电流值。在测量模式,连接输入端的外部电流环值将显示在LCD指示器上。
嵌入式软件设计
我们在Code Composer Studio(CCS)环境中用PIC C语言开发微控制器上运行的嵌入式软件。在微控制器上运行的软件接收校准器是否在用户选择的电流源或电流测量模式下工作的信息。图5显示了我们开发的主程序流程图。
图5:主程序流程图
电流源模式
在电流源模式,嵌入式程序根据图6所示的流程图运行。从这个流程图可以看出,首先,用户要输入一个电流值,其中小数点左边两位,小数点右边三位(精度为0.1%)。如果在输入阶段输入了错误的值,用户可以按#键取消这个值。如果想要一步步地处理,那么整个过程可以用5个值完成:4mA、8mA、12mA、16mA和20mA。
图6:电流源程序的流程图
不管何时只要按下*键,系统就会返回到模式选择菜单(主菜单)
不管何时只要按下#键,都会进行清屏,然后提供电流值输入界面
一旦电流值的小数点右边三位输入完后,电流就会自动产生,等整个过程成功完成后,还会在LCD上的电流值旁边显示“OK”标记。如果用户输入的电流值超出范围,即小于4mA或大于20mA,LCD上将显示“超出输出范围”的警告消息。
电流测量模式
在电流测量模式时,由电压放大层产生的电平被模拟/数字转换器读取,然后在屏幕上显示测量出的电流值,见图7所示的流程图。
图7:电流测量模式下的程序流程图
在键盘接口中,我们使用了PIC16F877的“根据状态改变(change on-state)”中断源来检测是否有键按下。利用这个中断源,当微控制器的B输入端口的状态发生改变时,中断将自动启动。这样,当设备不在使用时,微控制器将进入睡眠模式以节省功耗。
电流源与测量
如图8所示,微控制器的数字输出通过SPI协议接口连接到带16位CMOS电流输出的数字/模拟转换器电路(AD420)。
评论