本发明是一种利用mcu实现对多路数据进行采集、操控、传输的系统。此发明属于电子信息科学技术领域。
背景技术:
随着信息时代的到来,现代社会的各个领域都离不开数据的采集、操控和传输。传统的数据采集系统或是只对单种信号采集,或是只对一路信号采集,而传统的数据操控系统的工作方式也同采集系统大同小异,多是针对某种特定的信号进行单一的操作。而且两个部分多数是分开的,没有形成一个完整的系统,其局限性不言而喻。在复杂的数据操作过程中,这样的数据操作系统显然已经无法满足要求,其数据的实时性、有效性、可靠性也无法得到保障。
本发明主要解决的问题有两个,第一个是指结构上将传统的数据采集系统和数据操控系统结合在一起,从而降低电路的复杂性,第二个是指在技术上实现对多路不同信号的采集、传输和操控。本系统在克服传统系统的局限性的同时,还大大简化了整个系统的构成,具有一定的实用意义。
技术实现要素:
本发明在电子技术基础上形成了数据采集、传输、操控一体的架构,能够对多路不同信号实现同时采集,并根据采集的信号通过串口控制数据的发送实现对多种外围电路的控制,从而形成一个完整的数据输入-输出系统。其具体的实施方案如下:一种基于mcu的数据采集、操控、传输系统包括数据的采集单元、数据的处理单元、串口通信单元、数据的操控单元。
所述数据的采集单元用于对八路模拟量、两路脉冲量、两路开关量进行采集,并送至mcu做进一步处理,最后经串口送出数据。
所述数据的处理单元用于对采集来的数据和发送的控制数据进行分析处理,并通过设计好的相关算法将采集好的数据通过串口显示在pc机上,并且将控制数据实践在操控单元上。
所述串口通信单元用于实现pc机和mcu之间数据的传输。
所述数据的操控单元用于控制外接在mcu上的继电器模块、led模块、mcu的pwm模块,控制方式是由串口发送的九位hex数据决定的。
作为一种设计方案,所述数据的采集单元主要包括mcu八位ad引脚(p1.0~p1.7)、外部中断引脚p3.2和p3.3、i/o引脚p2.6和p2.7、牛角座、运算放大器(tl084n)、若干类型电阻、稳压管、电位器(baoshi3296)。外接模拟量信号从牛角座引入,经由运算放大器、电阻、稳压管、电位器组成的两级放大电路实现放大,两级放大电路分别为反相放大器和差分放大器,放大倍数约为260倍,最后从p1.0~p1.7进入mcu。
作为一种设计方案,所述数据的处理单元包括mcu模块、uln2803。mcu模块包括单片机(stc12c5616ad)、由33.1776m晶振和22pf电容组成的时钟电路、复位电路和电源显示电路。uln2803分别连接单片机i/o口和pwm、继电器的接入端,从而实现将较低的逻辑电平转换为pwm和继电器的驱动电平。
作为一种设计方案,所述串口的通信单元包括mcu的p3.0(rxd串口接受引脚)、p3.1(txd串口发送引脚)、pc机的usb串口。二者之间的互联是指通过rxd接收来自usb串口的数据来对mcu进行操作,txd发送数据到usb串口从而显示在pc端的串口助手上。二者之间的转换电平的操作有max232n来执行。
作为一种设计方案,所述数据的操控单元包括四路继电器(omron2038yh)和mcu的四路pwm输出、两路i/o口输出(led显示高低电平)。所述的四路继电器输出单元是指继电器子程序对控制数据的第三、四、五位进行响应,从而控制四路继电器的开合时间和持续时间;所述四路pwm输出部分是指pwm相关子程序对控制数据的第六位进行响应,从而实现不同占空比的pwm波形;所述两路i/o输出单元是指两个led灯子程序对控制数据的第七、八位进行响应,从而实现不同的亮灭情况。控制数据是指在串口上发送的一帧九位hex数据。
采用上述设计方案后,本发明的有益效果是:
本发明可以实现对多路不同信号的同时采集并通过串口显示在pc端的串口助手上,其显示效果直观明了。而且可以通过串口控制数据的人为操控实现对多路多种外接电路和自身pwm的控制,具有很强的实用意义。而且本发明的数据采集单元、操控单元、传输单元集成在一起,整个系统的布局大小约为100*80(mm),极大地简化了整体结构,便于成批生产。
附图说明
图1是本发明提供的一种基于mcu的数据采集、操控、传输系统的结构示意图;
图2是模拟量的放大电路图;
图3是单片机最小系统结构图;
图4是led显示和高低电平输入模块结构图;
图5a是一路模拟量输入的串口显示图;
图5b是一路脉冲量输入的串口显示图;
图6是max232电平转换芯片内部串行口部分原理图;
图7是uln2803驱动模块结构图;
图8是继电器输出模块结构图;
图9a是5%占空比pwm波形图;
图9b是25%占空比pwm波形图;
图9c是50%占空比pwm波形图;
图9d是75%占空比pwm波形图;
图9e是95%占空比pwm波形图;
图10是一种基于mcu的数据采集、操控、传输系统的程序框图;
具体实施方式
以下内容将结合附图和一些实例来对发明内容进行进一步解释说明,但这些实例和附图的用途和目的仅用来例举本发明,并非对本发明的实际保护范围构成任何形式的任何限定,更非将本发明的保护范围局限于此。
如图一所示,一种基于mcu的数据采集、操控、传输系统包括数据的采集单元、数据的处理单元、串口通信单元、数据的操控单元。
所述数据的采集单元用于对八路模拟量、两路脉冲量、两路开关量进行采集,模拟量的采样频率为10~100ms、脉冲量的计数周期和开关量的采集周期均为1s,采集后的数据送至mcu做进一步处理,最后经串口送出数据。
所述数据的处理单元用于对采集来的数据和发送的控制数据进行分析处理,并通过设计好的相关算法将采集好的数据通过串口显示在pc机上,并且将控制数据实践在操控单元上。
所述串口通信单元用于实现pc机和mcu之间数据的传输。
所述数据的操控单元用于控制外接在mcu上的继电器模块、led模块、mcu的pwm模块,控制方式是由串口发送的九位hex数据决定的。
图2是模拟量放大电路。由于采集到的模拟信号量是0~20mv区间的,不便于显示和精确,所以本发明加入了放大电路用于放大模拟量。放大电路是由两级放大电路组成,第一级放大电路为反向放大器,第二级放大电路为差分放大器。当模拟量从ad口接入放大电路后,用户可以通过调节电位器来调节放大倍数,根据本发明的基本要求,放大倍数通常为260倍。
图3是单片机最小系统结构图。由图可知,整个发明的各项功能都以本系统作为核心进行操作,当模拟量从adc0~adc7进入mcu后,mcu通过对数据的分析和计算,将要显示的串口数据通过txd发送到串口显示。而脉冲量则是通过8、9脚的外部中断口引入,由于外部中断的计数响应为低电平或下降沿,所以根据本发明的要求,信号发生器的信源需要为方波,且频率约为50~70hz,幅度为5v以下。由此得到的计数量也通过txd发送到串口显示。
图4是led显示和高低电平输入模块结构图。由图可知,此模块不仅可以通过用户在key1、key2端设置的高低电平来控制灯的亮灭,还可以通过操控双列直插式按键来手动输入开关量到mcu中。这个模块很适合对输入量的采集和对输出量的操控,具有很强实用意义。
图5a和图5b是输入量的串口显示图。由图可知,显示的内容是以字符串的形式表示,依次为八路模拟量的数值(单位为v)、两路脉冲量的计数值、两路开关量的高低情况。其中开关量的高低情况也可以通过led灯的亮灭情况来观察。模拟量的值可以精确到小数点后三位,脉冲量的计数值可计到上千,高低情况分为high、low。而且串口接受数据时间周期为5s,所以显示的数据会根据周期进行刷新。由于有限的信源设备,本发明人针对每种输入量各测试了一路,显示结果分别如图5a(一路模拟量输入)和图5b(一路脉冲量输入),而开关量由于不需要外接信号源,所以可以与以上任意一种输入量共同显示在串口上。
图6是max232电平转换芯片内部串行口部分原理图。由于计算机与mcu的工作电平不同,所以本发明人使用max232n作为二者之间的桥梁进行电平转换,从而实现二者之间的互联。
当二者之间实现互联后,用户不仅可以接收输入量进行串口显示,还可以通过串口发送控制数据来控制外接电路和自身mcu的模块。控制过程如下:打开串口后,用户可以手动在发送区以字符形式逐个发送九位hex数据,这帧九位hex数据也就是控制数据。
第一和第二位为帧头校验位,其作用为验证此帧数据是否为有效数据,根据本发明人的人为设定,前两位须为aa、55。
当验证为有效数据后,第三、四、五位为继电器开合时间位,根据继电器子程序的设定,开合时间=第三位*100+第四位*10+第五位*1,而继电器的持续时间可由人为程序设定,本发明人将持续时间设为1min。
第六位为pwm占空比设置位,由pwm子程序的设定,占空比由程序中的设定值计满到0xff的个数与0xff的比值来决定。当第六位为1、2、3、4、5时,pwm波根据子程序的设置分别对应占空比分别为5%、25%、50%、75%、95%。
第七和第八位为i/o设置位,用户可以通过设置00、01、10、11来分别控制两路i/o输出,led可以显示电平高低,00代表两个灯灭、01代表绿灯亮,黄灯灭、10代表黄灯亮,绿灯灭、11代表两个灯都亮。
第九位为帧末校验位,其值为3~8位的数值之和,当此位满足条件后,就代表这帧数据完成,数据的操控单元便开始工作。
图7是uln2803驱动模块结构图。uln2803驱动模块用于将mcu发出的低逻辑电平转换为继电器和pwm模块工作时的电压和电流,起到对二者的驱动作用。具体连接方式如图,1~8脚对应连接单片机对于继电器和pwm模块的控制引脚,9脚接地,10脚接vcc,11~14脚接pwm0~pwm3输出,15~18脚接继电器1~继电器4.
图8是继电器输出模块结构图。由图可知,四路继电器的1脚共阳,10脚对应接到uln2803的15~18脚,3、4脚分别接nout和pout。由于继电器工作期间并无实际效果图,只有继电器工作时类似蜂鸣的声音,所以并无附图展示,但开合时间与持续时间均满足控制数据的设定。
图9a~图9e是pwm不同占空比波形示意图。由图可知,pwm的周期在1khz左右,输出的波形依次为5%、25%、50%、75%、90%的pwm波,满足控制数据的设定。
图10是一种基于mcu的数据采集、操控、传输系统的程序框图。由图可知,整个程序框图是由两部分组成,第一部分是采集输入量并经过串口显示,第二部分是根据控制数据的设定来实现对操控单元的控制。
第一部分的主要作用是对输入量进行采集,其主要思路是指在系统初始化后,由timer0routine()函数以ms为单位来计算系统时间。随着计数值的不断增加,当计数值达到60ms时,mcu开始对八路模拟量进行采样并保持;当计数值达到1000ms时,两路外部中断开始对脉冲量进行采样并计数,同时i/o口开始对开关量进行采样并保持;当计数值达到5000ms时,串口对采集来的输入量按照字符串的形式进行显示;当计数值达到60000ms时,即继电器持续时间结束,时钟周期结束并开始重新计算系统时间。
第二部分的主要作用是对输出量进行控制,其主要思路是指系统初始化后,由uart1routine()函数接收串口技术的变量并判断控制数据是否有效,如果有效,则根据控制数据的设定分别执行相应的继电器子程序、pwm子程序、i/o子程序,如果无效,则将计数值清空。
经过实验测试后,此程序基本满足本发明的所有要求。
以上就是本发明对具体实施方式的详尽介绍。
应当理解,这些实例的用途仅用于说明本发明而非意欲限制本发明的保护范围。此外,也应理解,在阅读了本发明对技术内容之后,本领域技术人员可以对本发明做各种改动或变型,所有的这些等价形式同样落于本申请所附权利要求书所限定的保护范围之内。