收藏 分享(赏)

远程数据采集系统设计.doc

上传人:dzzj200808 文档编号:2770073 上传时间:2018-09-27 格式:DOC 页数:39 大小:2.14MB
下载 相关 举报
远程数据采集系统设计.doc_第1页
第1页 / 共39页
远程数据采集系统设计.doc_第2页
第2页 / 共39页
远程数据采集系统设计.doc_第3页
第3页 / 共39页
远程数据采集系统设计.doc_第4页
第4页 / 共39页
远程数据采集系统设计.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、中国矿业大学徐海学院专业技能考核培训设计报告姓 名: 学 号: 专 业: 电子科学与技术 设计题目: 远程数据采集系统设计 专 题: 基于 CPLD/FPGA 的电压数据采集 指导教师: 设计地点: 时 间: 20130506 2013 年 5 月CPLD 课程设计任务书专业年级 学号学生姓名 任 务 下 达 日 期 : 2013 年 5 月 6 日设计日期: 2013 年 5 月 6 日 至 2013 年 5 月 20 日设计题目:基于 PC、MCU 和 CPLD/FPGA 的远程数据采集系统设计设计专题题目: 基于 CPLD/FPGA 的电压数据采集设计主要内容和要求: 利用上位计算机、单

2、片机、可编程逻辑器件和 ADC 器件构成一个远程数据采集系统,系统具备远程/就地两种控制模式,具有 8 通道循环采集和指定通道采集两种数据采集方式。具体要求如下:1.CPLD/FPGA 硬件电路和 AHDL 控制软件设计电路具备控制 ADC0809 的采集功能,具备 6 位数码管动态扫描功能,具备 8 位按键输入功能,具备和单片机信号交换功能。2.单片机硬件电路和监控软件设计电路具备和 CPLD/FPGA 交换信息,以及和上位机算计进行 RS232 的通讯功能,能将上位机发出的控制指令下达到 CPLD/FPGA 中,并将采集的数据传送到上位计算机中。3.单片机程序要求用 C51 编制。上位机算

3、计软件设计利用 VB 或 VC 程序编制上位计算机控制程序,实现远程数据采集功能并实时显示采集的数据和通道号。指导教师签字:摘 要随着科学技术的迅猛发展,新技术革命将把人类由工业化社会推进到信息化社会为主要内容的数据采集测试技术,已形成了一门专门的技术科学。数据采集系统是计算机、智能仪器与外界物理世界联系的桥梁,是获取信息的重要途径。数据采集技术是信息科学的重要分支,它不仅应用在智能仪器中,而且在现代工业生产、国防军事及科学研究等方面都得到了广泛应用,无论是过程控制、状态检测,还是故障诊断、质量检测,都离不开数据采集系统。 本文介绍一种基于 EP1K30TC144-3 的 CPLD/FPGA

4、和 89S52 单片机的一种电压测量电路,基本内容包括单片机最小系统、AD 转换电路、键盘和LED 显示电路,以及设计系统涉及的其他电路。系统硬件电路由标准电路和自制电路两部分组成。标准电路包括单片机最小系统、6 个 LED 数码管电路和键盘电路以及 CPLD/FPGA 系统,这部分电路已制成电路板,自制电路自行设计焊接,包含标准电路不具备的其他电路。系统软件根据设计任务自行设计独立编制并进行调试,最终实现利用上位机远程控制系统进行数据采集功能并实时显示采集的数据和通道号。关键词:89S52 单片机、EP1K30TC144-3 芯片、CPLD/FPGA、上位机、电压采集、AD 转换电路目 录1

5、 绪论 .11.1 课程简介 .11.1.1 课程设计的性质、目的和任务 11.2 系统设计思路 .11.3 方案论证及比较 .21.3.1 单片机控制方案的选用 21.3.2 FPGA 控制方案的选用 21.4 系统设计原理框图 32 硬件电路设计 .42.1 单片机电路 .42.1.1 单片机电路板 42.1.2 单片机最小系统 52.1.3 显示译码电路 .52.2 A/D 转换 .72.2.1 ADC0809 内部结构 72.2.2 ADC0809 转换原理 82.2.3 AD 转换电路 .92.2.4 电路设计 92.3 硬件设计流程 102.3.1 硬件设计流程图 .102.3.2

6、 CPLD 系统流程框图 112.3.3 详细管脚说明 .113 软件设计 .133.1 设计任务 133.1.1 基本任务 .133.1.2 扩展任务 .133.2 程序设计 .133.2.1 软件设计流程 .133.2.2 单片机设计流图 .143.2.3 BCD 码转换电路与显示电路设计程序: .143.2.4 八位二进制乘法器 173.2.5 用上位机和拨码开关控制 8 路通道选择: .183.2.6 单片机与 PC 机通讯程序 .194 系统调试 .214.1 硬件部分 214.2 软件部分 215 总结 .23参考文献: .24附录二 ADC0809 与单片机连接图 26附录三 元

7、器件清单 .27附录四 程序代码 .28徐海学院 2010 级单片机系统设计报告 第 1 页1 绪论1.1 课程简介1.1.1 课程设计的性质、目的和任务单片机系统设计是在学习单片机原理及应用 、 CPLD等相关理论课程之后,所设置的重要的综合性实践教学环节。此次技能考核的目的是通过课题的设计、安装和调试,使我们全面了解掌握电子技术应用设计的基本技能,巩固已学的理论知识并综合应用,进行电子系统的设计,从而培养工程实践能力、创新能力,培养严肃认真的工作作风和科学态度,具备简单科技论文、技术综述报告的写作能力等。通过查阅资料、选定方案、设计电路、安装调试、写技术报告等过程,得到一次科学研究工作的启

8、蒙训练,也为以后利用单片机开发电子产品奠定坚实的基础。在对远程数据采集装置进行设计时,其设计分为硬件设计与软件设计两部分,具体的设计流程如图:比较所选方案 设计计算 元器件选择 硬件制作编制流程系统调试图 1-1 设计流程图1.2 系统设计思路本次实验要求设计基于单片机的电压数据采集装置,课程设计分设计、制作和调试三个部分。设计选题以单片机、AD0809 为核心,基本内容应包括单片机最小系统、CPLD 系统、键盘(拨码开关)和 LED 显示电路,以及设计系统涉及的其他电路。系统硬件电路由单片机系统和 CPLD 系统两部分组成。其中单片机系统徐海学院 2010 级单片机系统设计报告 第 2 页包

9、括单片机最小系统、8 个 LED 数码管电路和键盘电路,可根据设计需要进行配置选用。CPLD 系统则需自行设计焊接,包含 EP1K30TC144 芯片。设计中采用了模数转换器,利用 ADC0809 型 8 位 MOS 型 A/D 转换器,可实现 8 路模拟信号的分时采集,片内有 8 路模拟选通开关,以及相应的通道地址锁存用译码电路,实现模拟信号到数字信号的转换。显示部分利用 LED 数码管显示模块,来显示采集到的电压分量。1.3 方案论证及比较1.3.1 单片机控制方案的选用方案一:采用 8031 为核心,由于其内部没有存储器,所以利用 2764扩展 8KB 的外部存储器,用 8031 的两组

10、 I/O 接口。方案二:采用 AT89C52 作为核心,对 AD 转换的数据进行采集并显示。其内置的 8KB 字节点擦除可编程 EEPROM 片内程序存储器和 256 字节 RAM,无需外部扩展。所以选用方案二,采用 AT89C52 作为核心,其片内程序存储器空间足够满足本系统程序存储器的需要,可以省去对片外 EPROM 程序存储器和地址锁存器,使电路结构简捷。1.3.2 FPGA 控制方案的选用方案一:采用 EP1K30TC144-3 为核心,具备 6 位数码管动态扫描功能和8 位按键输入功能,以及与单片机进行信号交换等功能。方案二:采用 EP1K30TC144-3 为核心,同样具备 6 位

11、数码管动态扫描功能和 8 位按键输入功能,以及与单片机进行信号交换等功能。且管脚数目较少,适合本次设计使用。所以选用方案二,采用 EP1K30TC144-3 为核心,其功能已经满足设计需要,且应用简单,管脚分配方便,使电路结构简洁。徐海学院 2010 级单片机系统设计报告 第 3 页1.4 系统设计原理框图图 1-2 系统设计原理框图徐海学院 2010 级单片机系统设计报告 第 4 页2 硬件电路设计系统硬件电路由单片机系统和 CPLD 系统两部分组成。其中单片机系统包括单片机最小系统、8 个 LED 数码管电路和键盘电路,可根据设计需要进行配置选用。CPLD 系统则需自行设计焊接,包含 EP

12、1K30TC144 芯片。2.1 单片机电路2.1.1 单片机电路板单片机电路板电路框图如图 2;图 2-1 电路框图徐海学院 2010 级单片机系统设计报告 第 5 页2.1.2 单片机最小系统图 2-2 单片机最小系统图该原理图包含单片机以及外部连接译码,锁存电路端口,其中的ALE,REST 为高电平时用来启动 ADC0809.P0、P2 口控制数码输出显示, P3口的 P3.3、P3.4、P3.5 控制按键,P1.1P1.3 控制通道选择。晶振采用 12MHZ,该频率有利于提高串口的通信可靠性,同时又保证单片机有较高的运行速度。2.1.3 显示译码电路LED 显示电路可提供 8 位 LE

13、D 显示;可显示 P1(P3)口状态;也可显示输入按键状态。徐海学院 2010 级单片机系统设计报告 第 6 页图 2-3 LED 显示电路显示电路采用 6 位共阳极 LED 动态扫描显示,CD4511 输出所需字形,74LS138 选择字位。在动态方式中,逐个地循环地点亮各位显示器。图 2-4 数码管显示电路显示译码电路部分由 P0 口或 P2 口输出显示。显示译码器采用 CD4511 芯片:输入:BCD 输出:七段码 74LS138 芯片是用来控制显示时候的字位的,由于单片机的管脚是有限的通过使用 138 芯片可以避免少使用些单片机的管脚,当输入 001 时,译码可得 10111111:输

14、入:07 输出:低电平 徐海学院 2010 级单片机系统设计报告 第 7 页2.2 A/D 转换2.2.1 ADC0809 内部结构ADC0809 由 8 路模拟开关、地址锁存与译码器、比较器、256 电阻阶梯、树状开关、逐次逼近式寄存器 SAR、控制电路和三态输出锁存器等组成。图 2-5 ADC0809 结构图徐海学院 2010 级单片机系统设计报告 第 8 页2.2.2 ADC0809 转换原理图 2-6 ADC0809 转换工作时序工作原理: 当单片机端的 P3.3 接低电平时,可以使两个非门打开(1)当模拟量送至某一输入通道后,CPU 将标识该通道编码的三位地址信号经数据线或地址线输入

15、到 ADDC、ADDB、ADDA 引脚上。 (2)地址锁存允许 ALE 锁存地址信号,启动命令 START 启动 A/D 转换。(3)转换开始,EOC 变低电平,转换结束,EOC 变为高电平。EOC 可作为中断请求信号。 (4)转换结束后,可通过执行 IN 指令,设法在输出允许 OE 脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到 DB,一次 A/D 转换便完成。徐海学院 2010 级单片机系统设计报告 第 9 页2.2.3 AD 转换电路 图 2-7 AD 转换电路原理图2.2.4 电路设计硬件资源分配数码管显示电路:用 P2 口:bcd 码输出P2.3P2.0;字位选择 cba=P2

16、.6P2.4 ;小数点 P2.7键盘电路: P3 口低四位1 号按键 P3.0-模式切换2 号按键 P3.1-通道、报警限加3 号按键 P3.2-通道、报警限减4 号按键 P3.3-查询法,接收 ad 转换状态(不作为按键使用) 中断法,收 ad 结束中断信号ADC0809 电压转换电路控制信号:/wr=p3.6 /rd=p3.7 eoc= p3.3 Cs= p3.5 转换通道选择地址线:CBA =P1(6-4)转换结束:EOC1徐海学院 2010 级单片机系统设计报告 第 10页2.3 硬件设计流程2.3.1 硬件设计流程图图 2-8 硬件设计框图徐海学院 2010 级单片机系统设计报告 第

17、 11页2.3.2 CPLD 系统流程框图图 2-9 CPLD 系统功能模块框图2.3.3 详细管脚说明(1)时钟源图 2-10 时钟源与 CPLD 对应管脚连接图(2)输入开关徐海学院 2010 级单片机系统设计报告 第 12页图 2-11 16 个数据开关与 CPLD 对应管脚连接图(3)数码管显示实验箱有0 个数码管(SEG1SEG10) ,采用共阴极段 LED 显示。其中 SEG1SEG2 采用静态显示方式,SEG3SEG10 采用动态扫描显示方式。且 SEG1、SEG2 的段 LED 显示输入端分别与个 LED 管相连同时显示。图 2-12 数码管管脚分配图徐海学院 2010 级单片

18、机系统设计报告 第 13页3 软件设计3.1 设计任务3.1.1 基本任务 (1)、进行电压采集并显示 3.1.2 扩展任务 (1)、指定通道采集 (2)、循环采集显示 ,默认每通道显示 1 秒钟。3.2 程序 设计3.2.1 软件设计流程图 3-1 软件设计流程框图徐海学院 2010 级单片机系统设计报告 第 14页3.2.2 单片机设计流图图 3-2 单片机设计与 AD0809 设计流程图3.2.3 BCD 码转换电路与显示电路设计程序:Subdesign dcbzhhh -定义输入输出管脚( ibd150,inclk :input; odd60, p,bitout40 :output;)

19、Variable -定义触发器mh30,mm30,mw30, mr30,ml30 :dff;mrd150,sta10,stb20,mseg30, bitout40,fpq150,fp :dff;mhr30,mmr30,mwr30,mrr30, mlr30 :dff;Beginp=vcc; -点亮小数点(fpq,fp).clk=inclk; -分频If fpq=19999 thenfp=!fp;fpq=0;Else 徐海学院 2010 级单片机系统设计报告 第 15页fp=fp;fpq=fpq+1;End if;sta.clk=fp;stb.clk=fp;bitout.clk=fp;mseg.c

20、lk=fp;-给触发器输入时钟(mh,mm,mw,mr,ml,mrd).clk=inclk;(mhr,mmr,mwr,mrr,mlr).clk=inclk;Case sta is -BCD 码转换When 0 =mrd=ibd;sta=1;mhr=mhr;mmr=mmr;mwr=mwr;mrr=mrr;mlr=mlr;When 1 = If mrd=0 thenmhr=mh;mmr=mm;mwr=mw;mrr=mr;mlr=ml;mh=mh;mm=mm;mw=mw;mr=mr; ml=ml; sta=0;Elsemhr=mh;mmr=mm;mwr=mw;mrr=mr;mlr=ml;mrd=mr

21、d-1;sta=1;If ml=9 thenml=0;If mr=9 thenmr=0;If mw=9 thenmw=0;If mm=9 thenmm=0;If mh=9 thenmh=0;Else mh=mh+1;End if;Else mm=mm+1;mh=mh;End if;Elsemw=mw+1;mm=mm;mh=mh;徐海学院 2010 级单片机系统设计报告 第 16页End if;Elsemr=mr+1;mw=mw;mm=mm;mh=mh;End if;Elseml=ml+1;mr=mr;mw=mw;mm=mm;mh=mh;End if;End if;End case;case s

22、tb is -隐含状态机的使用when 0= -动态扫描显示电路mseg=mlr;bitout=1;stb=1;when 1=mseg=mrr;bitout=2;stb=2;when 2=mseg=mwr;bitout=4;stb=3;when 3=mseg=mmr;bitout=8;stb=4;when 4=mseg=mhr;bitout=16;stb=0;end case;Tablemseg30=odd60;h“0“ =h“3f“; - “0111111”h“1“ =h“06“;h“2“ =h“5b“; h“3“ =h“4f“; 徐海学院 2010 级单片机系统设计报告 第 17页h“4“

23、 =h“66“; h“5“ =h“6d“; h“6“ =h“7d“; h“7“ =h“07“; h“8“ =h“7f“; h“9“ =h“6f“; end table;End; 3.2.4 八位二进制乘法器FUNCTION lpm_mult (dataa70, datab70,sum70) -设置乘法器参数WITH (LPM_WIDTHA=8, LPM_WIDTHB=8,LPM_WIDTHP=16,LPM_WIDTHS=16,INPUT_A_IS_CONSTANT=“no“,INPUT_B_IS_CONSTANT=“no“,USE_EAB=“off“,LPM_REPRESENTATION=“u

24、nsigned“ )RETURNS (result150);Subdesign multt -定义输入输出管脚(daa70,dab70:input; res150 :output;)Variable -实现乘法器功能multa :lpm_mult;Beginmulta.sum=gnd;multa.dataa=daa;multa.datab=dab;res=multa.result;End;3.2.5 用上位机和拨码开关控制 8 路通道选择:Include “dcbzhhh.inc”; -调用 BCD 转换和显示模块Include “multt.inc”; -调用乘法器模块Subdesign s

25、jcjjj -定义输入输出管脚(inclk,eoc,ds70,tdxuanze20,fsxuanze,bomakg20:input;徐海学院 2010 级单片机系统设计报告 第 18页add20,otclk,out60,st,oe,led70,p,wx40:output;)Variablezhq:dcbzhhh;cfq:multt;fpq40,fp,outd :dff; -定义 D 触发器sm10,dp70,st,outdd200:dff; Beginoe=vcc;(fpq,fp,outdd,outd).clk=inclk;zhq.inclk=inclk;If fpq=19 then -分频f

26、pq=0;fp=!fp;Elsefpq=fpq+1;fp=fp;End if;if outdd=999999 thenoutdd=0;outd=!outd;elseoutdd=outdd+1;outd=outd;end if;(sm,st,dp).clk=fp;otclk=fp;if fsxuanze=0 then -选择通道方式add=tdxuanze;elseadd=bomakg;end if;Case sm is -实现 ADC 转换功能When 0 =st=gnd;dp=ds;sm=1;When 1 =st=gnd; dp=dp;if eoc thensm=2;elsesm=1;end

27、 if;When 2=徐海学院 2010 级单片机系统设计报告 第 19页st=vcc; sm=0; dp=ds; End case;cfq.daa=196; -将采集的二进制数据转化为十进制数据cfq.dab=dp;zhq.ibd=cfq.res;wx=zhq.bitout;p=zhq.p;out60=zhq.odd;led=dp;End;3.2.6 单片机与 PC 机通讯程序#include #define uchar unsigned char #define uint unsigned int uchar r; void init(); void main() /主程序 init();

28、 while(1) /while()死循环 /* 串口中断服务程序 */ void ser() interrupt 4 RI = 0; /清除串行接收中断申请位r = SBUF; /接收上位机数据P2 = r ; /将数据送给 P2 口r = P0;SBUF=r; /发送 P0 数据给上位机while(TI=0); /当 TI=1 时,完成发送,向 CPU 申请中断TI = 0; /关闭串口中断徐海学院 2010 级单片机系统设计报告 第 20页 /* 串口初始化*/void init() r = 0xff; /将 P0 口置高电平TMOD= 0x20; /写控制字 20HTH1 = 0x98

29、; /T1 高 4 位赋初值 98HTL1 = 0x98; /T1 低 4 位赋初值 98HTR1 = 1; /启动定时器 T1,从而设定串口通信的波特率 SM0 = 0; SM1 = 1; /设定串口通信方式为十位异步收发器 (方式 1)REN = 1; /打开串口通讯,允许接收 ES = 1; /开放串口中断EA = 1; /开放 CPU 中断徐海学院 2010 级单片机系统设计报告 第 21页4 系统调试系统调试包括硬件调试和软件调试两部分,介绍一下我在这两方面遇到一些问题,以及如何解决的。4.1 硬件部分硬件焊接分为 EP1K30TC144 贴片式芯片小板的焊接和 CPLD 开发板及C

30、PLD 扩展板的焊接,在焊接 EP1K30TC144 时,由于拖锡技术应用的不是很娴熟,所以导致芯片的焊接出现管脚短路的情况。其次就是焊接 CPLD 扩展板时,由于 AD0809 芯片与电位器是管脚连接出错,即开始时电位器的管脚定义出错,导致调节电位器旋钮时数码管显示的数值不发生变化,经万用表检测,发现焊接问题之后及时纠正便实现了功能。4.2 软件部分(1)CPLD(AD、乘法器)模块程序:将 AD 转换的输出结果转换为电压值,即乘以 196 得到的数据,此时要扩展输入输出端口的长度。255*196=49980 需要 5 个数码管,其中 4 个只需要 7 段,最高一个数码管需要 8 段,多添加

31、了一个小数点,只需要在输出端定义一个变量,然后在管脚分配时分给小数点即可(取名为 dcbzhh) 。但由于实验程序名为 dcbzhh(输入管脚 p 表示小数点,fpq 和 fp 都表示分频)的程序中引用数码管是调用了五个,其中有两个是静态扫描,另三个是动态扫描。而使用静态扫描下载程序时在 CPLD 板上会出现错误。所以设计时全部用动态扫描数码管,并设置一个公共端!而动态扫描时 seg1seg6 共用七段数码管,所以定义输出 odd 时只需要定义为 odd60 (取名为dcbzhhh) 。(2)单片机与 CPLD 实现通信的程序:输出定义为 out60即一组 5 个动态显示数码管。修改时在 dc

32、bzhhh里面将小数点定义在 case 语句的字位码描述语句中,即在最高位后面添加一句 p=vcc,而不用在 begin 语句里面定义 p=vcc.同时,在 sjcjjj 模块里面调用 dcbzhhh 模块时,将输出定义为 out60 ,同时将 AD 转换的输出dp连接到 AD 转换的 8 通道输出,同时连接到单片机的 P0 口,而单片机则通过 P2 口低 3 位连接到 CPLD 通道选择端。最后将 dcbzhhh 模块的输出接到 out60的输出即可完成 CPLD 与单片机的通信,但是要注意重新对徐海学院 2010 级单片机系统设计报告 第 22页管脚进行分配。(3)软件特色:在最终的 CP

33、LD 模块中调用了八位二进制乘法器模块程序,以及 16 位BCD 转换模块和动态扫描显示模块。即将乘法器模块、BCD 转换模块、动态扫描显示模块的文本编辑程序最终融入整合在 CPLD 模块程序中,而没有采用直接调用乘法器图形文件的方法。虽然这样为程序调试带来了很多麻烦,使整体的程序设计显得比较繁琐,但是在我们小组成员的共同努力商讨以及老师的悉心指导下,最终我们程序调试成功,实现了相应的功能!徐海学院 2010 级单片机系统设计报告 第 23页5 总结这次单片机课程设计过后,让我对单片机和 CPLD 这两门课程有了更进一步的理解和感悟。经过这次课程设计,自己收获很多,明白了团队合作的重要性,更加

34、深了自己对 AD 转换以及单片机和 PC 机实现通讯的原理。更熟练掌握了 CPLD 语言的编写和使用 Keil 软件编写单片机程序实现相应电路功能的技术与本领。其次,在硬件焊接时,还需更加细心,防止虚焊、漏焊现象的发生,并熟练学习应用拖锡技术实现贴片式芯片的焊接。最后,衷心感谢在本次单片机技能考核设计中曾经悉心帮助指导我们的两位老师以及热心讨论制作思想的同学,最终在大家的共同努力下,本着团队合作的精神,我们成功完成并实现了本次技能考核设计。徐海学院 2010 级单片机系统设计报告 第 24页参考文献:1胡汉才, 单片机原理及其接口技术 (2 版) ,清华大学出版社 2孙育才, MCS-51 系列单片微型计算机及其应用 ,东南大学出版社3曹巧媛, 单片机原理及应用教学、实践、设计指导 ,电子工业出版社4数字系统设计实验指导书徐海学院 2010 级单片机系统设计报告 第 25页附录一 单片机板电路原理图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报