一个单片机串行数据采集/传输模块的设计

发布者:岭南布衣最新更新时间:2014-09-05 来源: 21ic关键字:串行  数据采集  传输模块 手机看文章 扫描二维码
随时随地手机看文章

在微机测控系统中,经常要用到A/D转换。常用的方法是扩展一块或多块A/D采集卡。当模拟量较少或是温度、压力等缓变信号场合,采用总线型A/D卡并不是最合适、最经济的方案。这里介绍一种以GNS97C2051单片机为核心,采用TLC2543 12位串行A/D转换器构成的采样模块,该模块的采样数据由单片机串口经电平转换后送到上位机(IBM PC兼容机)的串口COM1或COM2,形成一种串行数据采集串行数据传输的方式。经实践调试证实:该模块功耗低、采样精度高、可靠性好、接口简便,有一定实用价值。

1 主要器件介绍

1.1 TLC2543串行A/D转换器

模块采用TI公司的TLC2543 12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源,且价格适中。其特点有: (1)12位分辨率A/D转换器;(2)在工作温度范围内10μs转换时间;(3)11个模拟输入通道;(4)3路内置自测试方式;(5)采样率为66kbps;(6)线性误差+1LSB(max)(7)有转换结束(EOC)输出;(8)具有单、双极性输出;(9)可编程的MSB或LSB前导;(10)可编程的输出数据长度。

1.gif

TLC2543的引脚排列如图1所示。图1中AIN0~AIN10为模拟输入端;

为片选端;DIN 为串行数据输入端;DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。

1.2 GMS97C2051单片机

GMS97C2051是武汉力源公司和韩国LG公司联合推出的一种性能价格比极高的 8位单片机,其指令系统与MCS-51系列完全兼容。GMS97C2051与AT89C2051兼容(可直接替换),但其性能价格比优于 AT89C2051。引脚排列如图2所示。

1.3 电平转换器

MAX3232 MAX3232为RS-232收发器,简单易用,单+5V电源供电,仅需外接几个电容即可完成从TTL电平到RS-232电平的转换,引脚排列如图3所示。 2 硬件设计 硬件电路如图4所示。

2.gif
3.gif

单片机GMS97C2051是整个系统的核心,TLC2543对输入的模拟信号进行采集,转换结果由单片机通过P3.5(9脚)接收,AD芯片的通道选择和方式数据通过P3.4(8脚)输入到其内部的一个8位地址和控制寄存器,单片机采集的数据通过串口(3、2脚)经MAX3232转换成RS232电平向上位机传输。图中串行LCD显示电路仅用于调试,对采集/传输的数据进行监测。

3 单片机软件设计

单片机程序主要包括串行数据采集模块“DATA_SAM”和串行数据传输模块“RS232”,调试所用到的显示子程序在此略去。 TLC2543的通道选择和方式数据为8位,其功能为:D7、D6、D5和D4用来选择要求转换的通道,D7D6D5D4=0000时选择0通道,D7D6D5D4=0001时选择1通道,依次类推;D3和D2用来选择输出数据长度,本程序选择输出数据长度为12位,即D3D2=00或 D3D2=10;D1,D0选择输入数据的导前位,D1D0=00选择高位导前。

TLC2543在每次I/O周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/O周期中被串行移出。第一次读数由于内部调整,读取的转换结果可能不准确,应丢弃。 数据采集程序如下: DATA_SAM: MOV R0,#30H ;数据缓冲区首地址30H→R0 MOV R1,#00000000B ;0通道方式/通道数据 ACALL RD_AD ;第一次读取的转换结果可能不准确,丢弃。 MOV R1,#00010000B ;1通道方式/通道数据 ACALL RD_AD ;送1通道方式/通道数据并读第0通道转换结果 MOV @R0,R2 ;转换结果存放到数据缓冲区,下同 INC R0 MOV @R0,R3 INC R0 MOV R1,#00100000B ;2通道方式/通道数据 ACALL RD_AD ;送2通道方式/通道数据并读第1通道转换结果 MOV @R0,R2 INC R0 MOV @RO,R3 INC R0 ………… ;其它通道操作方式类推 RET 单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出,程序如下,供数据采集模块“DATA_SAM” 调用。

CLK EQU P3.3 DIN EQU P3.4 DOUT EQU P3.5 CS EQU P3.7 RD_AD: CLR CLK ;清I/O时钟 SETB CS ;设置片选为高 CLR CS ;设置片选为低 MOV R4,#08 ;先读高8位 MOV A, R1 ;把方式/通道控制字放到A LOP1: MOV C,DOUT ;读转换结果 RLC A ;A寄存器左移,移入结果数据位,移出方式/通道控制位 MOV DIN,C ;输出方式/通道位 SETB CLK ;设置I/O时钟为高 CLR CLK ;清I/O时钟 DJNZ R4,LOP1 ;R4不为0,则返回LOP1 MOV R2,A ;转换结果的高8位放到R2中 MOV A,#00H ;复位A寄存器 MOV R4,#04 ;再读低4位 LOP2: MOV C,DOUT ;读转换结果 RLC A ;A寄存器左移,移入结果数据位 SETB CLK ;设置I/O时钟为高 CLR CLK ;清I/O时钟 DJNZ R4,LOP2 ;R4不为0,则返回LOP2 MOV R3,A ;转换结果的低4位放到R3中 SETB CS ;设置片选为高 RET 串行数据传输模块包括串行口初始化子程序和数据传输子程序,各子程序分别如下。

其中数据传输采用查询方式,也可以方便地改为中断方式。 INIT_COM: MOV SCON,#50H ;串口方式1工作,8位数据位,1位停止位,无奇偶校验 MOV PCON,#80H ;SMOD=1,波特率增倍 MOV TMOD,#20H ;波特率设置,[i]f[/i]OSC=12MHz,波特率=2* 2400,N=0F3H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 ;启动定时器T1 RET RS232: MOV R0,#30H ;缓冲区首地址30H→R0 MOV R5,#22 ;发送数据长度→R5,11* 2=22 LOOP: MOV A,@R0 ;取数据→A MOV SBUF,A ;数据→SBUF WAIT: JBC TI,CONT ;判断发送中断标志,是1则转到CONT,并清TI SJMP WAIT CONT: INC R0 DJNZ R5,LOOP RET 4 上位机串口接收程序设计 上位机接收数据所用C语言程序包括初始化子程序和接收子程序。各子程序分别如下: void init_com1(void) /*初始化子程序*/ { outportb(0x3fb,0x80); /*线控制寄存器高位置1,使波特率设置有效*/ outportb(0x3f8,0x18); /*波特率设置,与单片机波特率一致为4800bps*/ outportb(0x3f9,0x00); outportb(0x3fb,0x03); /*线控制寄存器设置,8位数据位,1位停止位,无奇偶校验*/ outportb(0x3fc,0x03); /*Modem控制寄存器设置,使DTR和RTS输出有效*/ outportb(0x3f9,0x00); /*设置中断允许寄存器,禁止一切中断*/ } void receive_data(void) /*查询方式接收数据子程序*/ { while(!kbhit()) { while(!(inportb(0x3fd)%26;amp;0x01));/*若接收寄存器为空,则等待*/ printf("%x ",inportb(0x3f8)); /*读取结果并显示*/ } getch(); } 5 结论 本文给出的硬件和软件均经过实践检验,并且已经按照PC/104总线制作成数据采集卡,使用很方便,能够满足对数据采样频率要求不是特别高的应用场合。

关键字:串行  数据采集  传输模块 引用地址:一个单片机串行数据采集/传输模块的设计

上一篇:三轴磁阻电子罗盘的设计和误差补偿
下一篇:基于MSP430FW427的无磁水表设计方案精编

推荐阅读最新更新时间:2024-03-16 13:41

远程多通道温度高精度数据采集系统设计
摘要:根据远程网络应用环境下的温度测量需求,设计出一种基于以太网的远程多通道高精度温度数据采集系统。系统由下位机和远程主机构成,下位机硬件主要由温度传感器PT1000、仪用放大器INA128构成的调理电路、A/D转换器MaX1300、32位微控器PIC32MX795以及物理网卡芯片构成,上位机为远程PC机。在恒流源的激励下,PT100电压的变化依赖温度的变化,经信号调理、16bitA/D转换后由PIC32MX795求解出高次方程的数值根即温度值,然后通过以太网发送给远程主机进行处理。系统充分利用PIC32MX795的计算性能,利用牛顿法直接寻找高次方程的数值根即为温度值,其测量精度优于0.1℃。系统长期工作稳定。 0 引言 一
[测试测量]
远程多通道温度高精度<font color='red'>数据采集</font>系统设计
智能电力负荷控制与监测系统设计
   0 引言   通过智能电力负荷控制与监测系统可对智能配电设备的数字化信息进行采集和处理,实现配电站少人或无人值守,为制定电力系统规划设计和电力生产计划提供决策依据。本文着重给出了一种新型的电力负荷控制与监测系统的设计方法。该方法在性能可靠、高精度、低功耗、小体积的基础上,更能适应负荷管理、电能分析、电量集抄、多种控制方式、优化用电分析等功能需要,可满足电力负荷侧管理的各种应用需求。    l 系统工作原理   图1所示是本系统的工作原理框图。本系统采用适合于嵌入式系统设计的LPC2132FBD64作为主处理器;接口电路主要完成对脉冲量、开关量及模拟量的采集,主处理电路负责对其进行运算,以形成各种功率,电量,电表读数、需
[电源管理]
选择串行总线
微控制器(µC)是当今各种先进电子产品的核心,它需要与一个或多个外设器件通信。以前,µC的外设是以存储器映射方式与数据和地址总线连接的。对地址线译码以获得片选信号,从而在有限的地址范围内为每个外设分配唯一的地址。这种接口类型所需的最少引脚数(除电源和地之外)为:8 (数据) + 1 (R//W) + 1 (/CS) + n条地址线 。例如,与一个16字节外设通信时,需要的引脚数为:8 +1 + 1 + 4 = 14。这种接口的访问速度快,但较多的引脚数也同时带来了封装尺寸增大和总成本提高的问题。要降低成本和缩小封装尺寸,串行接口显然是理想的替代方案。 选择串行总线并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)
[嵌入式]
串行AD与FPGA在微型数据记录仪中的应用
0 引言 在现代电子技术应用领域,A/D转换器是模拟信号转换数字信号的中介,数据采集系统中,一般由单片机或其他微控制器对高精度A/D转换器进行控制,通常采用软件模拟A/D转换器时序的方法,增加了CPU的负担,降低了CPU的工作效率,现场可编程门阵列FPGA(Field Programmable GateArray)的高集成度和高速特性,使之相对于单片机和微控制器更适合用于高速A/D器件的采样控制。另外,在电磁干扰较大的环境中,单片机会出现程序跑飞的问题,在利用看门狗复位的过程中,对采集的数据流而言,会存在数据的丢失问题。相对的,触发沿或电平控制的FPGA,通过设计可靠的驱动,系统采集数据更为可靠。 本文是以一个3通道
[嵌入式]
<font color='red'>串行</font>AD与FPGA在微型数据记录仪中的应用
基于TLl6C550C的DSP异步串行通信的实现
      摘要:由于TMS320C6416不带异步串行收发接口(UART),无法实现DSP系统常用的通串行通信。为此,本文基于TL16C550C设计了一种通过TMS32C6416实现UART数据通信的方法,同时给出了其硬件设计框图以及通过TMS320C6416初始化TLl6C550C的软件编程方式。       0 引言       高速数字信号处理器(DSP)在图像处理中,特别是视频处理中的应用非常广泛。通常DSP都具有很强的运算能力,但是其外设的接口相对有限。在应用系统中,往往需要DSP与下位机通信或者接受上位机的控制信号时,一般都是采用异步串行通信协议,如RS232或RS422来实现。由于TMS320C6416器件
[网络通信]
51单片机串行口的工作方式解析
方式0是外接串行移位寄存器方式。工作时,数据从RXD串行地输入/输出,TXD输出移位脉冲,使外部的移位寄存器移位。波特率固定为fosc/12(即,TXD每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。每当发送或接收完一个字节,硬件置TI=1或RI=1,申请中断,但必须用软件清除中断标志。 实际应用在串行I/O口与并行I/O口之间的转换。 2)方式1 方式1是点对点的通信方式。8位异步串行通信口,TXD为发送端,RXD为接收端。一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。波特率由T1或T2的溢出率确定。 在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断
[单片机]
51单片机<font color='red'>串行</font>口的工作方式解析
利用ColdFire uClinux实现数据采集传输
摘要:介绍了利用ColdFire uClinux实现数据采集和传输。这项技术被用在大型集装箱检测系统中,取得了很好的效果。 关键词:ColdFire uClinux 数据采集 在ColdFire上嵌入uClinux操作系统是一项比较成熟的技术,般应用在手持设备、家庭网关、工业控制中。但在数据采集应用中使用这项技术却不是很常见,原因是uClinux不是实时操作系统,而数据采集应用对数据采集的实时性要求很高。本文介绍如何利用在ColdFire上嵌入uClinux操作系统的方法来实现数据的采集和传输。 1 硬件平台 任何嵌入式应用系统都离不开具体的硬件平台,这里先介绍一下系统采用的硬件平台。图1所示即为硬件结构的示意图。其中,S
[应用]
介绍嵌入式应用中存储器类型的选择技巧
存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。 无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。 图1列出了在嵌入式应用系统中最常用的存储器类型。下面讨论在选择存储器时应遵循的基本原则。 选择
[缓冲存储]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved