毕业设计(论文)-双CPU数据采集系统.doc_第1页
毕业设计(论文)-双CPU数据采集系统.doc_第2页
毕业设计(论文)-双CPU数据采集系统.doc_第3页
毕业设计(论文)-双CPU数据采集系统.doc_第4页
毕业设计(论文)-双CPU数据采集系统.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录第一章 绪言31.1 课题的背景和意义31.2 国内外研究概况和发展趋势41.3 本文的主要研究内容5第二章 双cpu数据采集系统的基本原理62.1 正弦交流信号发生与采样62.1.1 正弦交流信号的产生62.1.2 正弦交流信号采样122.2 数据采集132.2.1 adc0809性能特点132.2.2 adc0809应用电路原理图16第三章 双机通信原理173.1 双机通信基本方法173.1.1 并行通信方式173.1.2 串行通信方式173.2 串行通信接口标准203.2.1 rs-232握手方式213.3 串口通信电路23第四章 人机交互接口244.1 hd7279244.1.1hd7279的主要特性244.1.2 hd7279引脚说明244.1.3 hd7279控制指令254.2 人机接口电路28第五章 系统软件设计295.1 主机程序295.1.1 主机主程序305.1.2 数据处理子程序315.1.3 hd7279显示子程序315.1.4 hd7279显示字型码325.2 从机程序33第六章 系统调试366.1 数据采集模块调试376.2 人机接口模块调试386.3 信号处理模块386.4 峰值保持模块396.5 总体调试39第七章 总结40参考文献41致谢42附录一 源程序43主机程序43从机程序51附录二 电路与原理总图55第一章 绪言1.1 课题的背景和意义 近年来,数据采集及其应用受到了越来越广泛的关注,数据采集系统也有了较快的发展,它可以广泛的应用于各领域。 数据采集是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。 数据采集系统是结合基于计算机(或微处理器)的测量软硬件产品来实现灵活的、用户自定义的测量系统。该数据采集系统是一种基于adc0809模数转换芯片和单片机的设备,可以把adc采集的电压信号转换为数字信号,经过微处理器的简单处理而交予数码管实现电压显示功能,并且通过与pc的连接可以实现计算机更加直观化显示。在计算机广泛应用的今天,数据采集的在多个领域有着十分重要的应用。它是计算机与外部物理世界连接的桥梁。利用串行或红外通信方式,实现对移动数据采集器的应用软件升级,通过制订上位机(pc)与移动数据采集器的通信协议,实现两者之间阻塞式通信交互过程。在工业、工程、生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。例如:在工业生产和科学技术研究的各行业中,常常利用pc或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有a/d卡以及422、485等总线板卡。卫星数据采集系统是利用航天遥测、遥控、遥监等技术,对航天器远地点进行各种监测,并根据需求进行自动采集,经过卫星传输到数据中心处理后,送给用户使用的应用系统。尽管现在已微机为核心的可编程数据采集与处理采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。相比于数据采集板卡的成本和功能的限制,单片机具有多功能、高效率、高性能、低电压、低功耗、低价格等优点。而双单片机具有精度高、转换速度快、能够对多点同时进行采集,因此能够开发出 满足实际应用要求的,电路结构简单的,可靠性高的数据采集系统。这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。54单片机因其集成度高,控制能力强,稳定可靠的特点,在家用电器、工业自动化、智能仪表、航空航天、汽车电子等领域得到了广泛的应用。 常规的单片机应用系统的设计,往往都采用一个cpu,加一系列的周围辅助电路以达到相应的设计目的,这种方法在输入输出接口较多的系统当中,必须进行繁琐的编译码,逻辑变换,使得系统硬件复杂,调试困难。而采用双cpu设计,可以大大减少硬件电路,软件资源分配及设计均相对独立,易于修改程序而适合很多应用系统。1.2 国内外研究概况和发展趋势 数据采集系统是通过采集传感器输出的模拟信号并转换成数字信号进行分析处理、传输、存储和显示。它起始于二十世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了极大的进步,采集数据信息化是目前社会发展的主流方向。各领域都用到了数据采集,在石油勘探、科学实验、地震等数据采集已经得到应用。 随着计算机的软件、硬件技术的发展,在控制系统中大量应用到了计算机新技术,工业自动化将成为一种发展趋势。过去的控制系统,由于受到软硬件的限制,人们首先考虑到的是实现的可行性。当今,硬件方面飞速发展,各种高精密度的温度控制器已经能够满足人们在大多数场合下的控制要求,如何更有效的管理和检测生产现场,如何更有效的利用技术资源、设备资源等成为了用户关注的焦点。 现代世界是一个高速自动化的世界,各种各样的设备已与计算机联机,同时还可以互联机,而最简单的自动化联机方式就是使用串行通信。随着时代的进步,它以稳定性,简单可行和高效率逐渐被广泛应用。 在国内外诸多工业应用中许多极为复杂的控制系统中通常会采用双cpu配置,一个cpu负责数据采集,一个负责控制等工作,使得控制更为精密,系统误差极少。但随着集成电路的发展,cpu处理速度越来越惊人,周边外围电路集成化,使得一个cpu足以负责全部工作,所以在双cpu处理方面研究成果及进展较少。但是在一些有成本限制,但系统复杂的情况下双cpu系统还是有着极为显著地作用。双cpu数据采集系统能够以极低的成本到达极高的性能。1.3 本文的主要研究内容 本文阐述了双机通信的基本原理和高速数据采集的基本实现办法,分析了正弦交流信号产生及采样处理办法。提出了使用双cpu解决单cpu因大量的数据输出和人机对话事件的发生,而直接影响数据采集系统的正常工作,造成部分数据的丢失。采用双cpu数据采集系统不仅实现了所需的高速数据采集而且结构简单成本低等优点。本文的主要研究内容有:(1) 介绍了双cpu数据采集系统基本类型,以及国内外对双cpu数据采集系统的研究现状,分析了高速数 据采集的基本原理。(2) 设计了以icl8083芯片为基础的波形发生电路,以及周边信号处理电路包括数据采集电路,信号处理电路,峰值保持电路。(3) 对双cpu数据采集控制软件的研究和设计。系统原理框图如下: 图1-1 系统框图 第2章 双cpu数据采集系统的基本原理2.1 正弦交流信号发生与采样2.1.1 正弦交流信号的产生(1) rc振荡电路rc振荡是最为常见的正弦波发生电路,由rc选频网络构成的电路,它适用于低频振荡,一般用于产生1hz1mhz的低频信号。而常用lc振荡电路产生的正弦波频率较高,若要产生频率较低的正弦振荡,势必要求振荡回路要有较大的电感和电容,这样不但元件体积大、笨重、安装不便,而且制造困难、成本高。因此,200khz以下的正弦振荡电路,一般采用振荡频率较低的rc振荡电路。本课题要求产生的正弦波频率范围20hz2khz,所以应当采用rc振荡电路。常用的rc振荡电路有相移式和桥式两种。1 rc移相式振荡器,具有电路简单,经济方便等优点,但选频作用较差,振幅不够稳定,频率调节不便,因此一般用于频率固定、稳定性要求不高的场合。其振荡频率是 fo=1/26rc 。2 rc桥式振荡器 将rc串并联选频网络和放大器结合起来即可构成rc振荡电路,放大器件可采用集成运算放大器。 图 2-1 rc振荡电路 如图所示,rc串并联选频网络接在运算放大器的输出端和同相输入端之间,构成正反馈,rf、r接在运算放大器的输出端和反相输入端之间,构成负反馈。正反馈电路和负反馈电路构成一文氏电桥电路,运算放大器的输入端和输出端分别跨接在电桥的对角线上,所以,把这种振荡电路称为rc桥式振荡电路。 振荡信号由同相端输入,故构成同相放大器,输出电压uo与输入电压ui同相,其闭环电压放大倍数等于au=uo/ui=1+(rf/r1)。而rc串并联选频网络在=o=1/rc时,fu=1/3,f=0,所以,只要|au|=1+(rf/r1)3,即rf2r1,振荡电路就能满足自激振荡的振幅和相位起振条件,产生自激振荡,振荡频率fo等于 fo=1/2rc 采用双联可调电位器或双联可调电容器即可方便地调节振荡频率。在常用的rc振荡电路中,一般采用切换高稳定度的电容来进行频段的转换(频率粗调),再采用双联可变电位器进行频率的细调。 rc移相式振荡电路具有结构简单、经济等优点。但是其选频作用较差,频率调节不方便,输出幅度不够稳定,输出波形较差。一般用于振荡频率固定且稳定性要求不高的场合,其频率范围为几赫到几十千赫。所以本课题不采用rc振荡电路作为正弦波信号产生。(2) 单片集成函数信号发生器icl8038 icl8038的波形发生器是一个用最少的外部元件就能生产高精度正弦,方形,三角, 锯齿波和脉冲波形彻底单片集成电路. 频率(或重复频率) 的选定从0.001hz到300khz可以选用电阻器或电容器来调节, 调频及扫描可以由同一个外部电压完成. icl8038精密函数发生器是采用肖特基势垒二极管等先进工艺制成的单片集成电路芯片,输出由温度和电源变化范围广而决定. 这个芯片和锁相回路作用, 具有在发生温度变化时产生低的频率漂移,最大不超过250ppm。1 icl8038的性能特点a. 具有在发生温度变化时产生低的频率漂移,最大不超过50ppm;b. 正弦波输出具有低于1的失真度;c. 三角波输出具有01高线性度;d. 具有0001hz1mhz的频率输出范围;工作变化周期宽;298之间任意可调;高的电平输出范围;e. 从ttl电平至28v;f. 具有正弦波、三角波和方波等多种函数信号输出;图2-2 icl8038实物图g. 易于使用,只需要很少的外部条件。2. icl8038的封装引脚图 图2-2为icl8038实物图。脚1、12 (sine wave adjust):正弦波失真度调节;脚2(sine wave out):正弦波输出;脚3(triangle out):三角波输出;脚4、5(duty cycle frequency):方波的占空比调节、正弦波和三角波的对称调节; 脚6(v):正电源10v18v; 脚7(fmbias):内部频率调节偏置电压输; 脚8(fm sweep):外部扫描频率电压输入; 脚9(squarewaveout):方波输出,为开路结构; 脚10(timingcapacitor):外接振荡电容; 脚11(v orgnd):负电原或地; 脚13、14(nc):空脚。如图2-3所示。 图2-3 icl8038管脚图 3.icl8038的工作原理 icl8038 是单片集成函数信号发生器,其内部框图如图2.1.4所示。它由恒流源i1和 i2、电压比较器a和b、触发器、缓冲期和三角波变正弦波电路等组成。 图2-4 icl8038内部原理图外接电容c由两个恒流源充电和放电,振荡电容c由外部接入,它是由内部两个恒流源来完成充电放电过程。恒流源2的工作状态是由恒流源1对电容器c连续充电,增加电容电压,从而改变比较器的输入电平,比较器的状态改变,带动触发器翻转来连续控制的。当触发器的状态使恒流源2处于关闭状态,电容电压达到比较器1输入电压规定值的23倍时,比较器1状态改变,使触发器工作状态发生翻转,将模拟开关k由b点接到a点。由于恒流源2的工作电流值为2i,是恒流源1的2倍,电容器处于放电状态,在单位时间内电容器端电压将线性下降,当电容电压下降到比较器2的输入电压规定值的13倍时,比较器2状态改变,使触发器又翻转回到原来的状态,这样周期性的循环,完成振荡过程。在以上基本电路中很容易获得4种函数信号,假如电容器在充电过程和在放电过程的时间常数相等,而且在电容器充放电时,电容电压就是三角波函数,三角波信号由此获得。由于触发器的工作状态变化时间也是由电容电压的充放电过程决定的,所以,触发器的状态翻转,就能产生方波函数信号,在芯片内部,这两种函数信号经缓冲器功率放大,并从管脚3和管脚9输出。 适当选择外部的电阻ra和rb和c可以满足方波函数等信号在频率、占空比调节的全部范围。因此,对两个恒流源在i1和i2电流不对称的情况下,可以循环调节,从最小到最大,任意选择调整,所以,只要调节电容器充放电时间不相等,就可获得锯齿波等函数信号。正弦函数信号由三角波函数信号经过非线性变换而获得。利用二极管的非线性特性,可以将三角波信号的上升成下降斜率逐次逼近正弦波的斜率。 4.波形参数计算图 2-5 icl8038典型电路所有信号波形对称都可由外部时间电阻器来调整。最佳的结果通过保持时间电阻器ra和rb的独立 。ra控制三角波,正弦波的上升的部份和矩形波的1 个状态。三角信号波形的大小被设置在1/3 电源电压,因此三角的上升的部份是和三角波和正弦波下降部分和矩形波的状态。 当ra = rb时占空比为50%,如果占空比仅在50%小范围变化,连接所在图2.1左元器件是稍微比较方便的。1k的电位器不能允许占空比达到50%,在所有仪器中,如果占空比达到50%电位器是用4.7k而不是5k。方波占空比80%相位关系波形变化可以通过连接外部定时电阻时间和频率而不依赖于电源电压,尽管所有的电压都不是由内部集成电路调节。这归结于实际电流和门限是直接的,电源电压是线性函数,因而他们的不起作用。为了减小正弦波失真,在管脚11和12之间的82k电阻最好是可变电阻及电位器也可。这种安排使失真少于1%是可以达到的。为了减少得更多, 二台电位器可能按照上图2-5左显示的连接,这种典型构造使得正弦波失真减少近0.5%,正弦波失真达到最低的连接。4. 课题采用电路图 2-6 信号发生模块 在本课题中信号发生模块使用的是icl8038经典电路,可以通过调节r5、r6阻值的大小改变信号频率及其占空比。频率计算方法如图 2-7,在使用的时候我们需要占空比为50%的正弦波信号,所以使ra=rb,则f=0.33/rc. 2.1.2 正弦交流信号采样(1) 峰值保持本课题中采用模数转换芯片是的adc0809,adc0809采样速率较慢且采样范围在05v,所以我们必须对输入正弦交流信号进行峰值保持处理。峰值保持电路的作用是对输入信号峰值的提取,产生输出vo = vpeak,为了实现这样的目标,电路输出值会一直保持,知道一个新的更大的峰值出现或电路复位。正弦交流信号由ui输入,经过二极管对其整流,只剩下正半轴波形。由正半轴信号对电容进行充电,将峰值电压保持在一个较小的波动范围。但由于电容的放电,测到的峰值电压会比实际值低。如图 2-8。 图 2-8 峰值保持电路(2) 信号处理 本课题计算频率方法是由从机单片机对正弦信号计数,由于单片机只能根据波形下跳沿计数,所以采用信号处理模块将输入正弦信号转换成方波,便于单片机计数。我们采用基于lm339制作的电压比较电路,对正弦信号进行处理。 图 2-9 信号处理电路 如图2.9,将正弦信号与零电压进行比较,当电压低于零电平时,lm339将输出高电平;当正弦信号高于零电平时将输出低电平。通过进行电压比较就将单片机不可测量的正弦信号,转换成可以测量的信号。2.2 数据采集2.2.1 adc0809性能特点adc0809是美国国家半导体公司生产的cmos工艺8通道,8位逐次逼近式a/d模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行a/d转换。是目前国内应用最广泛的8位通用a/d芯片。1 adc0809主要特性1) 8路输入通道,8位a/d转换器,即分辨率为8位。2) 具有转换起停控制端。 3) 转换时间为100s(时钟为640khz时),130s(时钟为500khz时)4) 单个+5v电源供电 5) 模拟输入电压范围0+5v,不需零点和满刻度校准。6) 工作温度范围为-40+85摄氏度 7) 低功耗,约15mw。 2. adc0809的内部结构由下图可知,adc0809由一个8路模拟开关、一个地址锁存与译码器、一个a/d转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用a/d转换器进行转换。三态输出锁器用于锁存a/d转换完的数字量,当oe端为高电平时,才可以从三态输出锁存器取走转换完的数据。图 2-10 adc0809内部逻辑结构3. adc0809引脚结构 图2-12 adc080实物图 2-11引脚功能 adc0809各脚功能如下:d7-d0:8位数字量输出引脚。in0-in7:8位模拟量输入引脚。vcc:+5v工作电压。gnd:地。ref(+):参考电压正端。ref(-):参考电压负端。start:a/d转换启动信号输入端。ale:地址锁存允许信号输入端。(以上两种信号用于启动a/d转换).eoc:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。oe:输出允许控制端,用以打开三态数据输出锁存器。clk:时钟信号输入端(一般为500khz)。a、b、c:地址输入线。 adc0809对输入模拟量要求:信号单极性,电压范围是05v,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ale为地址锁存允许输入线,高电平有效。当ale线为高电平时,地址锁存与译码器将a,b,c三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。a,b和c为地址输入线,用于选通in0in7上的一路模拟量输入。通道选择表如下表2.1所示。表 2.1 通道选择表cba通道000in0001in1010in2011in3100in4101in5110in6111in7数字量输出及控制线:11条 st为转换启动信号。当st上跳沿时,所有内部寄存器清零;下跳沿时,开始进行a/d转换;在转换期间,st应保持低电平。eoc为转换结束信号。当eoc为高电平时,表明转换结束;否则,表明正在进行a/d转换。oe为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。oe1,输出转换得到的数据;oe0,输出数据线呈高阻状态。d7d0为数字量输出线。 clk为时钟输入信号线。因adc0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500khz, vref(),vref()为参考电压输入。 2.2.2 adc0809应用电路原理图 如图 2.13,所示,即课题采用的采样电路,adc0809的数字量输出引脚与p0口相连,数字量由p0输入到单片机进行转换。采样通道控制由p0、p1、p2与adda、addb、addc连接确定。adc0809的时钟有单片机ale信号经过74ls74分频得。adc0809的启动由p1.7的下降沿确定,即当p1.7输出由高变低时则启动了adc0809进行采样。adc0809 enable(oe)与单片机p1.6相连,当p1.6为高时,单片机才能收到adc0809输出数字量。in2-in7路来自直流源的5v、4v、3v、2v、1v、0v直流电压。in1对自制正弦信号采样,与峰值保持电路输出端相连。图 2-13 采样电路第3章 双机通信原理3.1 双机通信基本方法3.1.1 并行通信方式 双机通信是指双cpu之间的数据信息交换。双cpu之间有并行通信和串行通行两种方式。并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。 图 3-1 并行通行方式如图3-1并行通信通常是将数据字节的各位用多条数据线同时进行传送 。所以当距离太远成本过高,传输十分不便。3.1.2 串行通信方式串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。串行通行又分为同步通信和异步通信两种方式。1 异步通信异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。接收端检测到传输线上发送过来的低电平逻辑0(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。串行异步通信时的数据格式:串行数据是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。串行异步传输时的数据格式如图3-2所示。 图 3-2 串行异步传输数据格式 从图中可以看到以下几点: 1) 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。2) 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。 3) 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。4) 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。 5) 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。 串行异步通信时的数据接收 :串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之后,又进行下一个字符的传送过程。 通常接收端的采样时钟周期要比传输字符的位周期短,常用的采样时钟频率为位频率的16倍,采取这种措施是为了提高抗干扰能力。输字符的位周期td等于采样时钟周期tc的16倍。接收器的采样时钟的每个上升沿对输入信号进行采样,检验接收数据线上的低电平是否保持8或9个连续的时钟周期,以确定传输线上的低电平是否是真的起始位。这样就可以避免噪声干扰引起的误操作,从而删除假的起始位。相当精确地确定起始位的中间点,从而提供一个时间基准,从这个基准开始,每隔16个tc对其余数据位采样,以确保传输数据的正确性。 接收端为实现采样数据的基准,可以执行以下步骤: 1) 在接收端设置一采样时钟频率计数器,当检测到起始位下降沿时,将其清零,并开始对采样时钟计数,即每来一个时钟,计数器加1。2) 当计数器计到8时,表示已到达起始位的中间位置,此时采样值为0,说明是真正的起始位,同时将计数器清零;若采样值不为0,则说明一开始检测到的下降沿不是真正的起始位前沿,而是一次干扰,此次检测应作废,计数器清零,并重新开始检测起始位。 3) 检测到真正的起始位后,计数器清零,以后每次计到16时,便采样收到的信号波形(即每一位的中间),将采到的数值暂存起来,同时将计数器清零,重新计数,直至最后的停止位被采样。4) 如果停止位采样正确(为1),则字符被接收,并由暂存器装入寄存器。若停止位采样值为0,说明同步或传输有问题,此次采样所得字符作废,不被接收。 异步通信的特点:1) 起止式异步通信协议传输数据对收发双方的时钟同步要求不高,即使收、发双方的时钟频率存在一定偏差,只要不使接收器在一个字符的起始位之后的采样出现错位现象,则数据传输仍可正常进行。因此,异步通信的发送器和接收器可以不用共同的时钟,通信的双方可以各自使用自己的本地时钟。 2) 实际应用中,串行异步通信的数据格式,包括数据位的位数、校验位的设置以及停止位的位数都可以根据实际需要,通过可编程串行接口电路,用软件命令的方式进行设置。在不同传输系统中,这些通信格式的设定完全可以不同;但在同一个传输系统的发送方和接收方的设定必须一致,否则将会由于收、发双方约定的不一致而造成数据传输的错误与混乱。 3) 串行异步通信中,为发送一个字符需要一些附加的信息位,如起始位、校验位和停止位等。这些附加信息位不是有效信息本身,它们被称为额外开销或通信开销,这种额外开销使通信效率降低。例如一个字符由7位组成,加上一位起始位、一位校验位和一位停止位 ,发送一个字符必须发送10位,而其中只有7位是有效的,其余3位不是有效的,使通信能力的30%成了额外开销。所以异步通信适用于传送数据量较少或传输要求不高的场合。对于快速、大量信息的传输,一般采用通信效率较高的同步通信方式。 4) 串行异步通信依靠对每个字符设置起始位和停止位的方法,使通信双方达到同步。2. 同步通信 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(crc)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。由于同步通信要求严格时钟同步,所以一般不采用串行通信同步通信方式。3.2 串行通信接口标准目前广泛使用的串行接口标准为rs-232。rs232接口是1970年由美国电子工业协会(eia)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(dte)和数据通讯设备(dce)之间串行二进制数据交换接口技术标准”。 该标准规定采用一个25个脚的db25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。随着设备的不断改进,出现了代替db25的db9接口,现在都把rs232接口叫做db9。如图3-3为db9接口。 图 3-3 db9接口db9针脚定义:1 dcd 载波检测 2 rxd 接收数据 3 txd 发送数据4 dtr 数据终端准备好 5 sg 信号地 6 dsr 数据准备好 7 rts 请求发送 8 cts 允许发送9 ri 振铃提示3.2.1 rs-232握手方式rs-232通行方式允许简单连接三线:tx、rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的rs-232握手形式:软件握手、硬件握手和xmodem。 a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于gpib使用命令字符串的方式。必须的线仍然是三根:tx,rx和地线,因为控制字符在传输线上和普通字符没有区别,函数setxmodem允许用户使用或者禁止用户使用两个控制字符xon和xoff。这些字符在通信中由接收方发送,使发送方暂停。 例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于cpu忙于其他工作,输入buffer已经满了。为了暂时停止传输,接收方发送xoff,典型的值是十进制19,即十六进制13,直到输入buffer空了。一旦接收方准备好接收,它发送xon,典型的值是十进制17,即十六进制11,继续通信。输入buffer半满时,labwindows发送xoff。此外,如果xoff传输被打断,labwindows会在buffer达到75%和90%时发送xoff。显然,发送方必须遵循此守则以保证传输继续。 b,硬件握手:第二种是使用硬件线握手。和tx和rx线一样,rts/cts和dtr/dsr一起工作,一个作为输出,另一个作为输入。第一组线是rts(request to send)和cts(clear tosend)。当接收方准备好接收数据,它置高rts线表示它准备好了,如果发送方也就绪,它置高cts,表示它即将发送数据。另一组线是dtr(dataterminal ready)和dsr(data setready)。这些线主要用于modem通信。使得串口和modem通信他们的状态。例如:当modem已经准备好接收来自pc的数据,它置高dtr线,表示和电话线的连接已经建立。读取dsr线置高,pc机开始发送数据。一个简单的规则是dtr/dsr用于表示系统通信就绪,而rts/cts用于单个数据包的传输。 在labwindows,函数setctsmode使能或者禁止使用硬件握手。如果cts模式使能,labwindows使用如下规则:当pc发送数据,rs-232库必须检测cts线高后才能发送数据。当pc接收数据,如果端口打开,且输入队列有空接收数据,库函数置高rts和dtr。如果输入队列90%满,库函数置低rts,但使dtr维持高电平。如果端口队列近乎空了,库函数置高rts,但使drt维持高电平。 如果端口关闭,库函数置低rts和dtr。 c,xmodem握手:最后讨论的握手叫做xmodem文件传输协议。这个协议在modem通信中非常通用。尽管它通常使用在modem通信中,xmodem协议能够直接在其他遵循这个协议的设备通信中使用。在labwindows中,实际的xmodem应用对用户隐藏了。只要pc和其他设备使用xmodem协议,在文件传输中就使用labwindows的xmodem函数。函数是xmodemconfig,xmodemsend和xmodemreceive。 xmodem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。这些参数需要通信双方认定,标准的xmodem有一个标准的定义:然而,可以通过xmodemconfig函数修改,以满足具体需要。这些参数的使用方法由接收方发送的字符neg_ack确定。这通知发送方其准备接收数据。它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max_ties次数,或者收到接收方发送的start_of_data,发送方停止尝试。如果从发送方收到start_of_data,接收方将读取后继信息数据包。包中含有包的数目、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值。在读取数据后,接收方会调用wait_delay,然后想发送方发送响应。如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值max_tries。如果一直没有收到响应,发送方通知用户传输数据失败。 由于数据必须以pack_size个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充ascii码null(0)字节。这导致接收的数据比原数据多。在xmodem情况下一定不要使用xon/xoff,因为xmodem发送方发出包的数目很可能增加到xon/off控制字符的值,从而导致通信故障。3.3 串口通信电路 图 3-4 max232串口通信电路如图3-4所示为rs-232串口通讯电路。当需要将电脑上的程序下到单片机内时,则只需要用串口线连接单片机与电脑,并把接口j1的1与2相连,j2的1与2相连就能进行程序下载。且画板时应注意尽量是这些电容靠在max232的旁边保证通讯收到的干扰最小。第4章 人机交互接口人机交互接口模块式基于hd7279可编程数码管/键盘串行接口芯片构成的,具有4*4矩阵按键,8位共阴式数码管。使用者可以通过键盘控制显示,将采样数据通过8位数码管显示出来。4.1 hd72794.1.1hd7279的主要特性1 串行接口,无需外围元件可直接驱动led。2 各位独立控制译码/不译码及消隐和闪烁属性。3 (循环)左移/(循环)右移指令。4 具有段寻址指令,方便控制独立led。5 64键键盘控制器,内含去抖动电路。4.1.2 hd7279引脚说明vdd: 正电源 vss: 地 cs: 片选 clk: 时钟输入端 data: 串行数据输入/输出端 clk0: 振荡输出端 key: 按键有效输出端 res: 复位端 sg-sa: 段g段a驱动输出 dp: 小数点驱动输出 dig0-7: 数位0-7驱动输出 rc: rc振荡器连接端4.1.3 hd7279控制指令 hd7279a的控制指令分为二大类纯指令和带有数 据的指令。 主要控制指令如下:a. 纯指令1) 复位(清除)指令a4h表 4.1 复位指令d7d6d5d4d3d2d1d010100100当hd7279a收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。2) 左移指令a1h表 4.2 数据左移指令d7d6d5d4d3d2d1d010100001当hd7279接收到该指令后,数码管显示均向左移一位,最高位消失,最低位为空。3) 右移指令a0h表 4.3 数据右移指令d7d6d5d4d3d2d1d010100000与左移指令类似,但所做移动为自左向右(从第8位向第1位)移动,移动后,最左边一位为空。b. 带有数据的指令1 下载数据且按方式0译码表 4.4 数据下载译码指令d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010000a2a1a0dpxxxd3d2d1d0命令由二字节组成,前半部分为指令,其中a2,a1,a0为位地址。d0d3为数据,收到此指令时,按以下规则 进行译码。 0000:显0 1001:显9 1010:显 - 1111:显空白小数点的显示由dp位控制:dp=1时,小数点显示,dp=0时,小数点不显示。2 下载数据且按方式1译码表 4.4 数据下载方式一译码d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d011001a2a1a0dpxxxd3d2d1d0此指令与上一条指令其本相同,所不同的是译码方式,该指令的译码为按d0d3值对应的是09,af。3 下载数据但不译码表 4.5 数据下载不译码指令d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010010a2a1a0dpabcdefg其中,a2,a1,a0为位地址,ag和dp为显示数据,分别对应7段led数码管的各段。当相应的数据位为1时,该段点亮,否则不亮。此指令灵活,通过造字形表,可以显示用户所需的字符。1) 闪烁控制88hd7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010001000d8d7d6d5d4d3d2d1表 4.6 闪烁控制指令此命令控制各个数码管的闪烁属性,d1d8分别对应数码管1-8。0=闪烁,1=不闪烁。开机后,缺省的状态为各位均不闪烁。 2) 读键盘数据指令15hd7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d000010101d7d6d5d4d3d2d1d0表 4.7 读键盘数据指令该指令从hd7279a读出当前的按键代码。前一个字节015h为指令代码,而后一个字节d0-d7则为hd7279a返回的按键代码,其范围是00h-3fh(无键按下时为ffh)。当hd7279a检测到有效的按键时,key引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果hd7279a接收到读键盘数据指令,则输出当前按键的键盘代码;如果在收到读键盘指令时没有有效按键,hd7279a将输出ffh。4.2 人机接口电路如图4-1所示,为人机接口电路,有hd7279、4*4键盘、8位数码管构成。单片机pi.0与hd7279的cs使能端连接;单片机p1.1与hd7279的clk相连;单片机p1.2与hd7279的data相连单片机p3.2与hd7279的key相连 图 4-1 人机接口电路第5章 系统软件设计5.1 主机程序主机程序有数据处理子程序、串口通信子程序、人机接口程序及主程序构成。当主机有键按下时,进入中断对按键进行分析后通过串口发送给从机。等待从机响应后将数据进行处理后显示。开始主程序 有键按下?n y中断入口调用频率显示键号发给从机读键号 键号是否为0fh?接收数据处理送显返回 图 5-1 程序框图5.1.1 主机主程序主机主程序首先进行中断设置,允许外部中断(按键中断)及串口中断用于判断按键和接收数据。然后对串口通信波特率进行设置以便和从机进行通信。再对hd7279进行初始化,将显示内存数据送显。开始流程图如5.1.2 所示:开始中断设置设置t1为波特率发生器,波特率设置为2400显存区数据送显延时 图 5-2 主机主程序流程图5.1.2 数据处理子程序由adc0809采样到的电压值是8位二进制0255变化的数值,所以要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论