当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]智能化多路串行数据采集/传输模块的设计

引言

随着电子技术的不断发展,目前对各种物理量的检测和控制都可得以实现。微机检测控制系统不仅运用到航天航空、机器人技术、纺织机械、食品加工等工业过程控制,而且已经成为日常各种家用电器当中的主要组成部分。其中,A/D(模拟数字转换)设备起着十分重要的作用。这样,一个系统中就会需要更多的A/D设备。一般是用扩展一块或多块A/D采集卡的方法去实现。当模拟量较少或是温度、压力等缓变信号场合,采用总线型A/D卡并不是最合适、最经济的方案。这里介绍一种以AT89C2051单片机为核心,采用TLC2543L12位串行A/D转换器构成的采样模块,该模块的采样数据由单片机串口经电平转换后送到上位机(PC机)的串口COM1或COM2,形成一种串行数据采集串行数据传输的方式。

主要元件功能介绍

AT89C2051单片机

AT89C2051是ATMEL公司推出的一种性能价格比极高的8位单片机,其指令系统与MCS-51系列完全兼容。引脚排列如图1所示。

TLC2543L串行A/D转换器

TLC2543L采用SPI串行接口总线,SPI串行接口总线由Motorola公司提出,它是一种三线同步接口,分别为同步信号、输入信号和输出信号。另外芯片还有一根片选线,单片机通过片选线选通TLC2543L。其中,CLK为同步时钟脉冲,CS为片选线,DIN为单片机的数据输出和TLC2543L的数据输入线,DOUT为单片机的数据输入线和TLC2543L的数据输出线。图2为TLC2543L时序图。TLC2543L是全双工的,即数据的发送和接收可同时进行。如果只是对TLC2543L写数据,单片机可以丢弃同时读入的数据;反之,如果只读数据,可以在命令字节后,写入任意数据。数据传送以字节为单位,并采用高位在前的格式。

模块采用TI公司的TLC2543L12位串行A/D转换器,使用开关电容逐次逼近法完成A/D转换过程。串行输入结构,能够大大节省51系列单片机I/O资源,且价格适中。其特点有:

(1)11个模拟输入通道;

(2)转换时间10s;

(3)12位分辨率A/D转换器;

(4)3路内置自测试方式;

(5)采样率为66kbps;

(6)线性误差+1LSB(max)

(7)有转换结束(EOC)输出;

(8)具有单、双极性输出;

(9)可编程的MSB或LSB前导;

(10)可编程的输出数据长度。TLC2543L的引脚排列如图3所示。图3中AIN0~AIN10为模拟输入端;为片选端;DIN为串行数据输入端;DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。

电平转换器MAX232C

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

硬件设计

硬件电路如图5所示。

单片机AT89C2051是整个系统的核心,TLC2543L对输入的模拟信号进行采集,转换结果由单片机通过P3.5(9脚)接收,AD芯片的通道选择和方式数据通过P3.4(8脚)输入到其内部的一个8位地址和控制寄存器,单片机采集的数据通过串口(3、2脚)经MAX232C转换成RS232电平向上位机传输。

单片机软件设计

单片机程序主要包括串行数据采集/传输模块的系统信息、通道数、采集周期和通讯协议定义,以及数据采集和传输的标准子程序。

TLC2543L的通道选择和方式数据为8位,其功能为:D7、D6、D5和D4用来选择要求转换的通道,D7D6D5D4=0000时选择0通道,D7D6D5D4=0001时选择1通道,依次类推;D3和D2用来选择输出数据长度,本程序选择输出数据长度为12位,即D3D2=00或D3D2=10;D1,D0选择输入数据的导前位,D1D0=00选择高位导前。

TLC2543L在每次I/O周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/O周期中被串行移出。第一次读数由于内部调整,读取的转换结果可能不准确,应丢弃。

数据采集程序如下:

sbitDATAIN=P1^1;

sbitCLOCK=P1^0;

sbitDATAOUT=P1^2;

sbitCS=P1^3;

bitdatain_a_bit0()

{bitm=0;

DATAOUT=1;

m=DATAOUT;

DATAIN=0;

Nop();

CLOCK=1;

Nop();

CLOCK=0;

Return(m);

}

bitdatain_a_bit1()

{bitm=0;

DATAOUT=1;

m=DATAOUT;

DATAIN=1;

Nop();

CLOCK=1;

Nop();

CLOCK=0;

Return(m);

}

单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出,程序如下:

unsignedintTlc2543L(unsignedcharch)

{unsignedchari,chch=0;

unsignedintxdataxxx=0;

unsignedintxdatay=0;

CS=0;

Chch=ch<<4;

Y=chch;

Y<<=8;

I=0;

While(I<12)

{if((y&0x8000)==0)

{if(datain_a_bit0()==0)xxx&=0xfffe;

elsexxx|=0x0001;

if(I!=11)xxx<<=1;

}

else

{if(datain_a_bit1()==0)xxx&=0xfffe;

elsexxx|=0x0001;

if(I!=11)xxx<<=1;

}

y<<=1;

I+=1;

}

CS=1;

Return(xxx);

}

串行数据传输模块包括串行口初始化子程序和数据传输子程序,各子程序分别如下。其中数据传输采用查询方式,也可以方便地改为中断方式。[!--empirenews.page--]

Voidrs232init()

{TMOD=0x20;

TH1=0xfd;

TR1=1;

SCON=0x50;

}

voidreceandtran()

{unsignedcharda;

while(!RI)

RI=0;

Da=SBUF;

SBUF==da;

While(!TI);

TI=0;

}

上位机接收数据所用C语言程序包括初始化子程序和接收子程序。各子程序分别如下:

voidcominit(void)

{

outportb(0x3fb,0x80);

outportb(0x3f8,0x18);/与单片机波特率一致为9600bps*/

outportb(0x3f9,0x00);

outportb(0x3fb,0x03);/8位数据位,1位停止位,无奇偶校验*/

outportb(0x3fc,0x03);/*Modem控制寄存器设置,使DTR和RTS输出有效*/

outportb(0x3f9,0x00);/*设置中断允许寄存器,禁止一切中断*/

}

voiddata_rece(void)/*查询方式接收数据子程序*/

{

while(!kbhit())

{

while(!(inportb(0x3fd)&0x01));/*若接收寄存器为空,则等待*/

printf("%x",inportb(0x3f8));/*读取结果并显示*/

}

getch();

}

智能化串行采集/传输模块在PCR仪中的应用

在PCR仪的电路设计中,因需要检测的信号很多,包括热盖的温度检测,散热器的温度检测,腔体内部的温度检测,气流的温度检测,光信号的检测等等,为了简化电路,节约成本,减小体积,在选择A/D转换电路时选用了SPI总线的TLC2543,该芯片有多达11路的模拟信号输入端,完全满足PCR仪电路设计的需要,一个芯片既能完成检测多个信号的功能,又能节约单片机的资源,图6是其硬件原理图。

结论

本文所述的智能化串行数据模块,可直接用于任何微机控制和检测系统中以取代原来的模数转换设计。经过实践检验,该模块功耗低、采样精度高、可靠性好、接口简便,有很高的实用价值。该智能模块的软件和硬件成功应用于生命科学仪器“热循环仪”的设计和实践中,使用方便,简单可行,节约成本,能够满足大多数数据采样的应用场合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2024年5月13日 /美通社/ -- 5月11日,软通动力在鲲鹏昇腾开发者大会2024期间举办"软硬全栈,加速智能化赋能"分论坛。业界专家学者和优秀企业代表齐聚一堂,共同交流分享鲲鹏昇腾生态的创...

关键字: 智能化 全栈 PEN 计算机

此次合作将加速用于室内导航、追踪和远端设备控制的 UWB 设备的最新 FiRa® 2.0 安全测距测试的实施和验证。

关键字: 数据采集 室内导航 UWB 设备

深圳2024年4月17日 /美通社/ -- 今日,华为举办全球分析师大会,在"加速迈向网络智能化"主题论坛中,华为数据通信产品线副总裁赵志鹏发表了主题演讲,阐述了华为全面引入AI技术,从组件级、任务级...

关键字: NET 华为 智能化 网络

专注智能制造领域,为市场提供定制化智能设备解决方案 立足本土,服务全球,助力客户及行业智能化转型升级 上海2024年4月16日 /美通社/ -- 当前,制造业正加速向数字化、智能化发展,市场对先进智能制造...

关键字: 智能装备 智能制造 智能化 数字化

华润啤酒(控股)有限公司(简称“华润啤酒”)于香港联合交易所有限公司上市(股份代号:00291),为恒生指数成份股之一,专注于生产、销售及分销酒类产品。2023年,华润啤酒设立华润雪花与华润酒业两大事业部,分别负责啤酒及...

关键字: 自动化 智能化 机器人

随着信息技术的飞速发展,云计算作为一种新兴的计算模式,正在逐步改变着传统的数据处理和应用方式。云计算通过整合大量分布式计算资源,为用户提供高效、灵活、安全的数据存储和计算服务。在当前数字化、网络化、智能化的时代背景下,云...

关键字: 云计算 数据处理 智能化

在现代电子设备中,开关电源已成为不可或缺的一部分。无论是我们的手机、电脑,还是家中的电冰箱、洗衣机,甚至是工厂中的大型机械设备,背后都有开关电源默默地为它们提供稳定、高效的电能。那么,开关电源到底是干什么用的呢?本文将详...

关键字: 电子设备 开关电源 智能化

随着信息技术的飞速发展和广泛应用,物联网作为连接物理世界与数字世界的桥梁,正逐渐成为推动工业领域创新发展的重要力量。工业物联网(IIoT)作为物联网在工业领域的应用,通过实现设备、系统和服务的互联互通,为工业生产带来前所...

关键字: 物联网 工业领域 智能化

随着工业技术的不断发展,工业自动化已成为现代工业生产中的重要组成部分。工业自动化系统通过集成各种先进的技术和设备,实现了生产过程的自动化、智能化和高效化。本文将深入探讨工业自动化系统的结构,以便读者更好地了解其构成和工作...

关键字: 工业自动化 传感器 智能化

随着工业自动化技术的不断发展,工业自动化控制系统在工业生产中发挥着越来越重要的作用。工业自动化控制系统通过自动化技术实现生产过程的智能化、高效化和精细化,提高了生产效率、降低了生产成本、提升了产品质量。本文将详细探讨工业...

关键字: 工业自动化 控制系统 智能化
关闭
关闭