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

一个单片机串行数据采集/传输模块的设计
摘 要:以gms97c2051单片机为核心,采用tlc2543 12位串行a/d转换器,设计了一个串行数据采集/传输模块,给出了硬件原理图和主要源程序。
关键词:串行a/d转换器;串行数据传输;gms97c2051单片机
在微机测控系统中,经常要用到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)可编程的输出数据长度。
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所示。
单片机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;波特率设置,fosc=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)&0x01));/*若接收寄存器为空,则等待*/
printf(%x ,inportb(0x3f8)); /*读取结果并显示*/
}
getch();
}
5 结论
本文给出的硬件和软件均经过实践检验,并且已经按照pc/104总线制作成数据采集卡,使用很方便,能够满足对数据采样频率要求不是特别高的应用场合。
参 考 文 献
1 tlc2543模数转换器数据手册及应用笔记. 武汉力源电子股份有限公司,1999
2 一九九九年产品目录(第一期). 武汉力源电子股份有限公司, 1999
3 何立民. ms-51系列单片机应用系统设计. 北京:北京航空航天大学出版社, 1999
4 new releases data book(volume v). maxim,1996: 2-61~2-72

荣耀V40将搭载国产高刷柔性超清屏幕
上海瀚示智能播种车在医药行业中的解决方案 —— 降低人工拣货出错率
NI发布LabVIEW NXG新特性和功能
边缘计算将是网络安全发展的新方向
英飞凌助力来自科研和工业界的12个合作伙伴启动可信赖电子产品联合研究项目
一个单片机串行数据采集/传输模块的设计
荣耀9怎么样?荣耀9评测:华为荣耀9外观、性能、音效、拍照告诉你值不值得买
三星S8、iphone7plus、小米6评测:实际测试哪家续航强?
移远通信联合深圳宏电,推动5G LAN等新技术赋能智慧矿山无人驾驶
esp8266 at指令集详解
PCB抄板的一些方法
物联网给现代农业带来了前所未有的机遇和发展
极客时间容器IT技术培训课程成为爆款,让知识与时俱进
高功率因数、高效率电子镇流器控制器ML4831
兆易创新收购思立微经证监会审核再次获得了有条件通过的结果
智能手环或手表常用的睡眠监测原理
IBM分享混合键合新技术
打造企业AI核心系统,第四范式先知3.0亮相乌镇
PCB设计走线布线对信号完整性有何影响?
Netricity PLC草案出炉 智能电网应用扩大