一种便携式汽油标号检测仪的设计
过恒定电流对电容C进行交替充放电的张弛振荡器,同时产生三角波和方波。充放电电流由流入引脚IIN的电流来控制,由施加在引脚FADJ和引脚DADJ的电压来调节。
输出波形的占空比可以通过对引脚DADJ施加电压来控制。在正常情况下,VDADJ=0V,占空比为50%。VDADJ从+2.3V变到-2.3V时,占空比从
15%变为85%,大概每伏特变化15%。当VDADJ超过±2.3V时,将使频率漂移,并引起不稳定。调节引脚DADJ上的电压可以减少正弦波的失真。未调整时(VDADJ=0V)的占空比为50%±2%,若对VDADJ加一个小的调整电压(不大于100mV),则可以使波形准确对称,并使失真减到最小。
MAX038的输出频率由输入IIN引脚的电流、COSC引脚电容和FADJ引脚上的电压决定。当VFADJ=0V时,输出频率F0=IIIN/C,则周期T0=C/IIIN。其中,IIIN为输入IIN引脚的电流(2μA~750μA),C为COSC所接的电容(10pF~200pF)。当10μA≤IIIN≤400μA时,MAX038达到最佳工作性能。所以,当需要固定频率时,取IIIN为100μA。电容必须用短引线,尽量减小分布电容的影响。在COSC引脚及其引线周围用一个接地平面来减小其它杂散信号的耦合。
由于MAX038产生的是高频信号,很难直接进行计数和相应的计算,所以必须对MAX038的输出信号进行分频。在这里,选用了两片73HC393进行分频,从而得到便于处理的方波信号。
具体电路如图2所示。
1.3软件设计
普通的单片机软件都是采用一种前后台的编程方式,后台采用死循环轮询的方式,前台处于等待中断的状态,一旦中断发生就会打断后台的轮询。这种方式将各种情况的处理混杂在一起,使得软件的复杂度大大增加,编写和维护都很困难,而且任何一个部分出了问题,整个系统就会处于死机状态。为此选择在RTOS(RealTimeOperationSystem)基础上构建系统的软件。RTOS的特点就是多任务,可以许多个任务同时存在,根据一定的调度规则,进行任务切换。多任务使得CPU的利用率达到了最大,并且使软件最大程度地模块化,便于编写。
系统软件可分为两大模块:CPU模块和LCD模块。
CPU模块包含以下任务:
(1)CAN管理任务,负责CPU和LCD板的通信,可以发送/接收一个Modbus的数据包。
(2)232管理任务,负责CPU和上位机的通信,可以发送/接收一个Modbus的数据包。
(3)CAN中断任务,负责发送或接收一个CAN帧。
(4)232中断任务,负责发送或接收一个232帧。
(5)Modbus任务,可以执行以下操作。
①接收一个232/CAN的数据包。
②发送一个232/CAN的响应数据包,等待232/CAN的发送状态返回信息。
③分析接收到的232/CAN数据包中的内容,对实时数据库和历史数据库进行读写操作,或者搜索操作。
(6)I/O时钟任务,定时执行以下操作(两次刷新间隔500ms):
①读取外界模拟量,并写到实时数据库。
《一种便携式汽油标号检测仪的设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/172531.html
输出波形的占空比可以通过对引脚DADJ施加电压来控制。在正常情况下,VDADJ=0V,占空比为50%。VDADJ从+2.3V变到-2.3V时,占空比从
15%变为85%,大概每伏特变化15%。当VDADJ超过±2.3V时,将使频率漂移,并引起不稳定。调节引脚DADJ上的电压可以减少正弦波的失真。未调整时(VDADJ=0V)的占空比为50%±2%,若对VDADJ加一个小的调整电压(不大于100mV),则可以使波形准确对称,并使失真减到最小。
MAX038的输出频率由输入IIN引脚的电流、COSC引脚电容和FADJ引脚上的电压决定。当VFADJ=0V时,输出频率F0=IIIN/C,则周期T0=C/IIIN。其中,IIIN为输入IIN引脚的电流(2μA~750μA),C为COSC所接的电容(10pF~200pF)。当10μA≤IIIN≤400μA时,MAX038达到最佳工作性能。所以,当需要固定频率时,取IIIN为100μA。电容必须用短引线,尽量减小分布电容的影响。在COSC引脚及其引线周围用一个接地平面来减小其它杂散信号的耦合。
由于MAX038产生的是高频信号,很难直接进行计数和相应的计算,所以必须对MAX038的输出信号进行分频。在这里,选用了两片73HC393进行分频,从而得到便于处理的方波信号。
具体电路如图2所示。
1.3软件设计
普通的单片机软件都是采用一种前后台的编程方式,后台采用死循环轮询的方式,前台处于等待中断的状态,一旦中断发生就会打断后台的轮询。这种方式将各种情况的处理混杂在一起,使得软件的复杂度大大增加,编写和维护都很困难,而且任何一个部分出了问题,整个系统就会处于死机状态。为此选择在RTOS(RealTimeOperationSystem)基础上构建系统的软件。RTOS的特点就是多任务,可以许多个任务同时存在,根据一定的调度规则,进行任务切换。多任务使得CPU的利用率达到了最大,并且使软件最大程度地模块化,便于编写。
系统软件可分为两大模块:CPU模块和LCD模块。
CPU模块包含以下任务:
(1)CAN管理任务,负责CPU和LCD板的通信,可以发送/接收一个Modbus的数据包。
(2)232管理任务,负责CPU和上位机的通信,可以发送/接收一个Modbus的数据包。
(3)CAN中断任务,负责发送或接收一个CAN帧。
(4)232中断任务,负责发送或接收一个232帧。
(5)Modbus任务,可以执行以下操作。
①接收一个232/CAN的数据包。
②发送一个232/CAN的响应数据包,等待232/CAN的发送状态返回信息。
③分析接收到的232/CAN数据包中的内容,对实时数据库和历史数据库进行读写操作,或者搜索操作。
(6)I/O时钟任务,定时执行以下操作(两次刷新间隔500ms):
①读取外界模拟量,并写到实时数据库。
《一种便携式汽油标号检测仪的设计(第2页)》