无需模数转换器的单片机信号采样装置及其采样方法
技术领域
本发明属于信号采样领域,具体地说是一种无需模数转换器的单片机信号采样装置及其采样方法。
背景技术
目前凡是用单片机采集模拟信号时,必须在模拟信号和单片机之间加上一个模数转换器,将模拟信号转换成数字信号。因为单片机只能对数字信号进行处理。虽然有些单片机把模数转换器集成到芯片一起,但是事实上还是没有免去模数转换器。模数转换器价格比较昂贵,尤其是对于精度比较高的模拟数字转换器来说尤其明显,有时甚至大于单片机本身的价格。
发明内容
本发明是为了克服目前的单片机信号采样时存在的上述缺点而提供的一种无需模数转换器的单片机信号采样装置及其采样方法。采用该方法及装置不需要模数转换器,就能够用单片机的输入脚直接采样模拟信号而进行处理,这样使产品成本降低,而精度却可以做得很高。
本发明采取的技术方案是:无需模数转换器的单片机信号采样装置,包括单片机,其特征在于,还包括一比较器、一开关电路以及一RC充放电路;所述的开关电路的输出端分别与RC充放电路和单片机的输入端连接;所述的比较器的一输入端与待测电压连接,该比较器的另一输入端与RC充放电路的输出端连接,该比较器的输出端与单片机的另一输入端连接。
上述无需模数转换器的单片机信号采样装置,其中,所述的单片机为带有捕捉单元的单片机,其包括计数器、捕捉单元、计算单元、RC指数表和储存单元;所述的计数器、捕捉单元、计算单元、RC指数表和储存单元顺序连接;所述的比较器的输出端与单片机中捕捉单元连接。
上述无需模数转换器的单片机信号采样装置,其中,所述的开关电路由一开关管构成,该开关管的集电极与比较器的负输入端连接,该开关管的发射极与RC充放电路的接地端连接,该开关管的基极与单片机的输出端连接。
上述无需模数转换器的单片机信号采样装置,其中,所述的比较器由一运算放大器构成;该运算放大器的正输入端与待测电压连接,该比较器的负输入端与RC充放电路的输出端连接,该比较器的输出端与单片机捕捉单元连接。
一种无需模数转换器的单片机信号采样方法,其特点是,包括以下步骤:
a、建立一个RC指数表,表中预先存放着每个时间对应的电压值;
b、进行采样时,打开电源开关,RC充电电路开始充电,电压逐渐升高,同时计数器从零开始计数;
c、当RC充电电路充电电压超过待测电压时,比较器的输出发生跳变;
d、捕捉单元将这个时刻的计数器值捕捉下来,并送到计算单元;
e、计算单元根据计数频率和捕捉下来的计数值可以计算出计数时间;
f、根据计算单元计算出来的时间,与RC指数表中存放着每个时间对应的电压值进行对照,得到待测电压的电压值;
g、将步骤f得到的采样电压的电压值送到存储单元存放起来;一次采样结束。
上述一种无需模数转换器的单片机信号采样方法,其中,步骤e所述的计数时间是置指RC充电电路从零开始充电一直充到与待测电压相等时所需要的时间。
上述一种无需模数转换器的单片机信号采样方法,其中,一次采样结束后关闭电源开关,RC充电电路电压归零,重新计数。
由于本发明采用了以上的技术方案,采用一个比较器,再加上大多数单片机都拥有的中断捕捉功能就可以完成对模拟信号进行采样。比较器的价格远远低于一个模数转换器,因此本方法的成本低于传统的方法,但采样精度普通的模数转换器的精度还高。
附图说明
本发明的具体特征性能由以下的实施例及其附图进一步描述。
图1是本发明无需模数转换器的单片机信号采样装置的电方框图。
图2是本发明无需模数转换器的单片机信号采样装置中单片机的电路方框图。
图3是本发明无需模数转换器的单片机信号采样装置的电路原理图。
图4是本发明无需模数转换器的单片机信号采样方法的流程图。
具体实施方式
请参阅图1。本发明无需模数转换器的单片机信号采样装置,包括单片机1,还包括一比较器2、一开关电路3以及一RC充放电路4。开关电路的输出端分别与RC充放电路和单片机的输入端连接;比较器的一输入端与待测电压100连接,该比较器的另一输入端与RC充放电路的输出端连接,该比较器的输出端与单片机的另一输入端连接。
请参阅图2,这是本发明无需模数转换器的单片机信号采样装置单片机的电路方框图。所述的单片机1为带有寄存器的单片机,其包括捕捉单元12、计算单元13、RC指数表14和储存单元15以及计数器16。计数器、捕捉单元、计算单元、RC指数表和储存单元顺序连接;比较器的输出端与单片机中捕捉单元连接。
请参阅图3,这是本发明无需模数转换器的单片机信号采样装置的电路原理图。本发明无需模数转换器的单片机信号采样装置,包括单片机1,还包括一比较器2和一开关电路3以及一RC充放电路4。其中:
比较器由一运算放大器K构成;该运算放大器的正输入端与待测电压100(被采样的模拟信号)连接,该运算放大器的负输入端与RC充放电路的输出端连接,该运算放大器的输出端与单片机断捕捉功能端口连接。
开关电路由一开关管Q构成。该开关管的集电极与比较器的负输入端连接,该开关管的发射极与RC充放电路的接地端连接,该开关管的基极与单片机的输出端连接。RC充放电路的电阻R的一端接电源VCC,另一端连接电容C的一端。
平时单片机让开关管Q导通,电容C被短路,运算放大器K的输出总是为高。当需要采样时,截止开关管Q,同时计数器开始计数,RC充放电路开始充电。当电容C上电压充到与被测电压相等时,运算放大器K的输出翻转。此时单片机将计数器的数据捕捉下来。通过计算单元的数据处理就可以计算出被测电压的值,而且已经是数字信号了。
本发明采用的单片机如果是8位捕捉,那么就可以得到一个相当于8位模数转换器的精度。如果单片机有两个8位捕捉或者一个16位捕捉,那么就可以得到一个相当于16位模数转换器的精度。
本发明无需模数转换器的单片机信号采样方法的方法是:
平时开关关闭,电路不工作。需要进行采样时,打开开关,RC充电电路开始充电,电压逐渐升高,同时计数器从零开始计数。当RC充电电路充电电压超过待测电压时,比较器的输出发生跳变。捕捉单元将这个时刻的计数器值捕捉下来。计算单元根据计数频率和捕捉下来的计数值可以计算出计数时间,也就是RC充电电路从零开始充电一直充到与待测电压相等时所需要的时间。RC指数表中存放着每个时间对应的电压值,根据计算单元计算出来的时间,就可以得到待测电压的电压值。将这个电压值送到储存单元存放起来。
这样一次采样就结束了。结束的时候把开关关闭。RC充电电路电压归零,计数器停止计数并数据清零。
请参阅图3,这是本发明无需模数转换器的单片机信号采样方法的流程图:
步骤1:截止开关管Q,打开计数器。RC充电电路开始充电,同时计数器开始计时。
步骤2:是否发生捕捉?如果没有,则重复执行步骤2。如果发生了捕捉,那么向下执行步骤3。
步骤3:关闭计数器并清零。
步骤4:读出捕捉值,把捕捉到的数值取出来。
步骤5:计算RC充电电路的充电时间。根据单片机计数器的计数频率和步骤4中读出的数值。可以计算出RC充电电路从开始充电到使得比较器输出翻转的时间。
步骤6:查对数表得到被测电压。根据步骤5得到的时间,到已经建立的对数表中查找出对应的被测电压值。
步骤7:储存。将步骤6中查得得电压值储存到相应的储存器中。
步骤8:导通开关管Q,对电容C进行放电,电路复位。
步骤9:等待下一次采样。