1. 单片机怎么采集温度输入信号
问题有点笼统,要看用什么样的温度传感器和什么样的单片机,数字温度传感器按传感器提供的接口连接。模拟温度传感器需要通过模拟接口连接,如果你的单片机自带AD,而且满足精度要求,则可以用单片机自带的AD采集,如果单片机不带AD,则需要扩一个AD,通过AD采集温度。
2. 如何用单片机做多路数据采集系统
1、从你的方案大致可以看出,现场是有源检测仪表类,50M的引线阻抗太大,建议你采用4-20mA的标准III型仪表输出信号。
2、数据采大敬帆集频率多高?单片机一般最高工作频率大致为12M(别拿高等级的单片机来说,那成本太高了),还有A/滚雹D芯片工作时间通常也达到几十微秒级,所以对于高频采集通道,单片机方案不太合适。
3、采集的数据是否要保存?单片机可访问稿槐的RAM容量很有限,很难保存大量的采集数据。
如果是高频采集通道或需要保存大量的采集数据,工控PC机+高速采集卡是一个比较好的解决方案。
3. 单片机如何实现多路模拟量的数据采集、显示
普通单片机实现多路模拟量的数据采集、显示需要:
外部连接一个多通道输入的ADC芯片,单片机按照一定的周期驱动模拟开关切换到不同的模拟通道,设计模数转换控制器的控制程序,可以进行定时模拟信号采集和显示。
(3)单片机做信息采集扩展阅读:
单片机基本结构及作用:
1、运算器
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
运算器有两个功能:
执行各种算术运算。
执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
2、控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:
从内存中取出一条指令,并指出下一条指令在内存中的位置。
对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。
3、主要寄存器
累加器A
累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。
数据寄存器DR
数据寄存器通过数据总线向存储器和输入散竖/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送槐或往存储器中存储的一个数据字节等等。
指令寄存器IR和指令译码器ID
指令包括操作码和操作数。
指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。
当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。
程序计数器PC
PC用于确定下一条指令铅掘伍的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。
地址寄存器AR
地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。
显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。
4. 需要用51单片机做一个数据采集系统,但是要求采样频率达到至少每秒2000次以上,请问51单片机可以做到么
肯定要速度快的单片机,比如带ADC的STC12单片机,用定时器设置好每秒中断2000次,每次启动ADC转换一次,这样就得到数据了。
当然要存储2000个数据还是问题,如果是8bit的结果,那需要2000字节,12bit结果要4000字节。所以要求单片机本身有很大的RAM或者要扩展RAM才行。但STC12内部才1024字节的RAM,肯定不够用,所以这时要用STC90C58AD了,4096字节的RAM。
如果用C8051F单片机,那更简单。比如C8051F的ADC0是100ksps,就是说连续转换时每秒能采样100000个数据,转换2000个是小菜一碟,只要设置好定时器以0.5毫秒触发一次ADC转换,再设置好ADC中断,这样1秒采集2000个数据没问题。
5. 单片机中 ADC 是如何进行采集的
摘 要:本文设计并实现了基于2.4GHz ISM频段射频收发芯片nRF2401的计算机短距离无线数据采集系统。该系统采用PC作为系统控制中心,以C8051F021单片机为核心构成数据采集传送的前端,并且采用nRF2401芯片进行数据无线发射与接收。
关键词:ISM频段; 射频; C8051F021单片机; nRF2401
引言
针对某医疗装置中的人体生理信号采集和传输问题,本文设计了计算机近距离无线数据采集系统。采用Nodic公司的nRF2401作为无线收发核心器件。系统由一台PC、无线数据接收模块和无线数据采集发射模块组成。无线数据发射模块以C8051F021单片机为处理核心,采用单片机内部的12位ADC对现场的模拟信号进行采集和发送;无线数据接收模块以C8051F021单片机作为处理核心,接收与发射模块由nRF2401无线收发芯片完成,采用MAX5591实现12位D/A转换,采用 RS-485总线与PC进行通信,它负责现场数据的接收和初步处理,并转发给PC以供显示和监控,同时将数字量转换为模拟量,供示波器显示;PC有良好的人机界面,利用NI的虚拟示波器显示远端现场采集的数据,并可以向现场的采集模块发送控制命令,同时可以实现保存采集数据、打印、回放历史数据等功能。
系统分析及设计
计算机短距离无线数据采集系统组成如图1所示。
图 1 系统组成框图
系统分析及硬件设计
由于现场要采集的数据为医学人体实验数据,幅值大约在-1.0V~+1.0V之间,频率为300Hz,要求测量误差低于10mV,C8051F021自带的12位ADC在精度上可以满足要求;但是单片机中的ADC要求输入为正电压,同时考虑到转换精度要求,故需要对信号进行转换,将原信号转换为幅值在0~3V、频率300Hz左右的信号。可以利用MAX4194组成信号转换电路,将模拟信号的零参考电平抬升到1.0V。这样,原先-1.0V~0V之间的电压信号转换为0~1.0V之间的电压,而原先0V~1.0V之间的电压转换为1.0V~2.0V之间的电压。这样就完成了原始信号的转换,适应了单片机的输入要求。单片机A/D转换参考电压选择外部3.3V,由MAX6013提供。
考虑到无线数据的发送与接收特点,故选用Nordic 公司的nRF2401芯片。nRF2401是单片射频收发芯片,工作于2.4GHz~2.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片功耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA。其独有的DuoCeiver技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401使用跳频技术,在2400MHz~2527MHz之间设立了128个频道(每个频道带宽1MHz),频道间的切换时间小于200ms。此外,nRF2401内置CRC编解码模块,可以在不增加编程难度的条件下减小误码率。
无线数据接收后,要进行D/A转换,供示波器观看;考虑到数据的采集精度要求,故采用了 MAX5591作为转换器件,一方面可以方便地与C8051F021单片机SPI接口连接,另一方面,它是12位DAC,与采集端的ADC匹配,可减小转换误差。
无线数据接收到终端后,要求能直观地观看,并且可以对现场的数据采集次数、采集启停时间进行控制,故需要将数据传到PC,进行显示;同时,通过人机界面,对现场进行远程控制。PC采用VC++编写程序,利用NI 的虚拟示波器和其它控件实现友好的人机界面,数据显示、存储和打印功能。
系统中的主要软件模块
系统软件主要由上位机软件和下位机软件组成。
上位机软件主要实现与单片机通信、波形显示、数据存储、数据回放、打印等功能。下位机的主要功能有:系统初始化、数据采集(A/D转换)、无线数据发射、无线数据接收、数据D/A转换、与PC串口通信等。下面重点介绍下位机的无线发射与接收部分软件。
无线数据收发主要通过对nRF2401进行操作实现,包括器件配置、发送数据、接收数据等。nRF2401的工作模式通过引脚PWR_UP、CE和CS选择。在RX/TX模式下,有两种工作方式:ShockBurs和Direct Mode。本系统选用了ShockBurst模式,这种模式下需要配置的内容有:接收数据长度、接收通道地址、CRC校验、工作方式、发送频率、传送速率、接收与发送等。需要15字节的配置内容,下面给出了16进制的配置内容:0x80,0x80,0x00,0xcc,0xcc,0xcc,
0x00,0xcd,0xcd,0xcd,0xcd,0x83,0x4f,
0x05。
难点分析及解决方法
nRF2401半双工通信方式与C8051全双工通信接口的转换
在数据的采集端,单片机与射频模块是双向通信,可以直接采用单片机自带的SPI 接口与射频模块单向通信,包括配置射频模块的工作方式、接收通道地址、接收数据长度、接收频率、发送功率等参数和要发送的采集数据;当单片机要读取远端发送的控制命令时,要将SPI模式关闭,同时将MOSI、DR1端口定义为输入方式,然后将射频模块接收的控制命令读到单片机内部,并根据控制命令进行相应的操作,如采集通道选择、采集次数设定、开始采集、停止采集、发送数据等。
表1 实验数据表
在接收端,单片机和射频模块之间也是双向通信,单片机首先关闭SPI 模式,将MISO定义为输入模式,通过模拟的SPI 操作,对射频模块进行配置;当有控制命令要发送时,仍将MISO端口定义为输出模式,将射频模块配置为发送模式,将控制命令发送到数据采集终端;当要接收采集终端传来的数据时,首先将射频模块配置为接收模式,然后打开SPI 功能,利用单片机的SPI接口,将数据读到单片机内部。
这样,就完成了射频模块的半双工通信接口与单片机全双工通信接口的转换。
单片机与MAX5591之间的
SPI接口通信
C8051单片机的SPI 操作时序不能满足MAX5591的时序要求。要使单片机和MAX5591之间进行数据传输,必须根据MAX5591的时序要求将单片机的SPI时序进行转换。
实验结果及分析总结
实验结果
现场模拟电压信号通过12位ADC转换为数字量,通过无线方式传送到远端监控室,一方面通过DAC转换为模拟量,供示波器观看;另一方面,通过RS-232传送到PC进行显示、存储和打印。表1是实验数据。
分析总结
从试验数据可以看到,系统实现了现场模拟电压信号的采集、无线传输以及模拟信号还原,误差不大于0.2%,满足了设计要求。同时系统还存在着不足之处:在数据量加大,传输速率为1MHz时,偶尔会出现数据丢失现象;当被测信号频率大于500Hz的时候,信号复现时会出现波形失真。
系统实现了远端现场采集8路人体生理信号,无线传送到监控中心并复现现场信号的功能。实验证明,系统在250Kbps速率下无线传输距离可达50米,采集信号误差低于0.5% 。数据传输中采用了16位CRC校验,降低了误码率。该系统已经在某医疗器械上得到应用。经改造,系统可以采集现场的数字量和一些开关量,实现设备状态监测和开关量控制等。
结语
本文采用软件切换的方式实现了半双工器件与全双工器件的通讯转换,采用软件模拟SPI操作,解决了多SPI器件之间的通信协议匹配问题。■
参考文献:
1 沈阳新华龙电子有限公司,C8051F020/1/2/3 混合信号ISP FLASH 微控制器,2005
2 赵念强,鲍可进,申屠浩.基于SoC单片机8051F的码头供给监控系统 北京:微计算机信息, 2005年第3期第70页
6. 单片机如何进行数据采集
对于液压设备中的8个待测参数选用相应的传感器来来检测,试验时选取应变式传感器作为测试现场的工具。这些选用的检测元件输出都是标准的4-20mA微弱的电流信号,电流信号又经过由LM324组成的放大转换电路转换成0-5V的电压信号输入到C8051F020的模拟输入端,如图2所示,经内部集成的A/D转换器转换成相应的数字量。C8051F020将8路采样值作为液压设备现场的状况存入相应的内存单元。
3.2 LCD显示
为了使数据采集系统小巧美观,同时又获得较高的性价比,选用德彼克公司生产的DMF-50174蓝屏液晶显示器,该显示器是320×240点阵式液晶,图形和文本都可以显示。显示驱动控制芯片采用EPSON 公司的一种高性能LCD 控制器SED1335。硬件电路采用间接接法,如图3所示。用单片机的P5.0~P5.7口作为SED1335的DB0~DB7数据总线的输入通道。P4.5作为SED1335的片选信号, 配合地址信号A0实现SED1335 通过数据总线接收来自单片机的指令和数据。当A 0= 0, P4.6(WR)=0,P4.7(RD)= 1时, 实现指令的写入和从SED1335 中读取数据。当A 0= 1, P4.6(WR)= 0, P4.7(RD)=1时, 则是显示数据的写入,该功能通过软件实现。
3.3 数据通讯
单片机C8051F020的TX0、RX0及P0.2通过MAX485与上位机相连,进行串行通信,如图3所示。P0.2控制MAX485的状态或发送,用软件控制。RX0为单片机的串行输入端,接收上位机通过MAX485向单片机发送的数据。TX0为单片机的串行输出端,通过MAX485发送给上位机。
4 系统软件设计
4.1 软件设计总体上由两部分组成:一部分为单片机C8051F020
主程序设计,一部分为LCD液晶显示程序设计。由于用C语言编程可以降低程序的复杂度,提高程序的可读性和可修改性,所以本软件采用C51进行编程,keil μVision2编译器进行编译。
7. 单片机如何实现多路模拟量的数据采集、显示
普通单片机实现多路模拟量的数据采集、显示需要:
外部连接一个多通道输入的ADC芯片,单片机按照一定的周期驱动模拟开关切换到不同的模拟通道,设计模数转换控制器的控制程序,可以进行定团戚时模拟信号采集和显示。
(7)单片机做信息采集扩展阅读:
单片机基本结构及作用:
1、运算器
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
运算器有两个功能:
执行各种算术运算。
执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
2、控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:
从内存中取出一条指令,并指出下一条指令在内存中的位置。
对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线键或仿DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。
3、主要寄存器
累加器A
累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。
数据寄存器DR
数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
指令寄存器IR和指令译码器ID
指令包括操作码和操作数。
指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。
当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。
程序计数器PC
PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。
地址寄存器AR
地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。
显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时稿纤,也需要用到地址寄存器和数据寄存器。