




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西南科技大学本科毕业设计论文4微弱光信号检测系统设计摘要:随着科学技术的发展,尤其是计算机技术的发展,促进了信号处理的飞速发 展。微弱光信号信号检测是信号处理的重要组成部分,其在物理、化学、生物医学、地质、磁学等领域都有广泛的应用。本系统以增强型51单片机STC作为核心控制模块,以光敏二极管作为光信号到电信号的检测器件。再对转换后的信号进行放大 和AD采样等操作,将得到的模拟信号转化为适合单片机处理的数字信号。然后通 过LCD显示器将采集到的光信号显示处理,并且进行存储操作。可通过按键输入查 看历史采样数据。同时可将数据发送到 PC机,在PC机上面查看历史数据。也可以 在PC机上监测当前光信号
2、的强弱。通过实验验证,本设计能够检测出光强弱的变 化。并且能够存储历史数据,实现查询历史光强弱信息的目的。关键字:微弱光信号,51单片机,AD采样The desig n of Weak optical sig nal detecti on systemAbstract: with the developme nt of scie nee and tech no logy, especially the developme nt of computer tech no logy, promote the sig nal process ing of rapid developme nt. A f
3、aint light sig nal detecti on is an importa nt part of sig nal process ing, and its in the physical, chemical and biological medicine, geology, magnetic fields are widely used. This system to enhan ced 51 SCM STC as the key con trol module, photose nsitive diode as the light sig nal detect ion devic
4、es to electrical sig nals. To convert to sig nal amplifier and AD sampli ng operation, will receive analog signals into digital signal processing for single chip microcomputer. Then through the LCD display will collection to show the light signal process ing, storage and operati on. But through the
5、keystroke view history sampli ng data. And the data sent to the PC and the PC above view historical data. Also can be in PC mon itori ng the curre nt of the in ten sity of the light sig nal. Through the experime nt, this design can check up the light of the strength of the change. And the ability to
6、 store the historical data, realize inqu ires the purpose of light in ten sity history in formati on.Key words: a faint light signals, 51 MCU, AD sampling目录第1章绪论21.1题目研究背景及意义 21.2国内外发展现状21.3主要研究内容2第2章系统总体设计分析4.2.1系统设计方案确定与论证 42.2系统关键技术5第3章系统硬件设计6.3.1系统硬件总体结构63.2单片机模块63.3电源模块73.4光信号检测模块83.5信号处理模块 93.
7、6数据存储模块 103.7输入输出模块 113.8上位机通信模块12第4章软件系统设计134.1系统软件整体结构 134.2 LCD1602液晶软件设计 134.2.1 1602写字节模块 144.2.2 1602写命令模块154.2.3 1602初始化模块 164.2.4 1602数组显示模块函数 184.3 A/D采样任务软件设计 194.3.1 A/D 初始化194.3.2 A/D读取数据模块 214.3.3 A/D数据转换模块 234.3.4 A/D数据显示模块 244.4 SD卡存储软件设计 254.4.1模拟SPI协议 254.4.1.1 SD卡写字节模块 264.4.1.2 SD
8、卡读字节模块 264.4.2 SD卡写命令模块 274.4.3 SD卡初始化模块 304.4.4 SD卡写数据模块324.4.5 SD卡读数据模块 344.5系统串口定时器软件设计 36第5章系统调试385.1系统硬件调试 385.2软件调试385.3软硬件的联合调试39第6章总结1致谢2参考文献3西南科技大学本科毕业设计论文第1章绪论1.1题目研究背景及意义微弱或极微弱光的检测,在科学研究和军事等领域有广泛的应用。微弱光信号检 测的一般办法是通过光电转换器件将微弱的光信号转换成为微弱电信号,然后再通过电路放大,将这个微弱电信号转变为可处理的电信号。微弱光信号检测的难点在 于光电器件接收到的光
9、信号和转换后的电信号都很微弱,很容易淹没在各种噪声中为了得到有效的信号以便于后级电路的分析处理 ,制作低噪声、高精度光电放大器 是非常重要的。现在一般采用光电转换电路和前置放大电路组成放大器的方法,并且多采用专用集成电路来构建电路。其具有能进行远距离、非接触、快速、高灵敏 度的检测和传输的特点,还具有检测信噪比高、抗干扰能力强、信息容量大等优点。 然而,任何一个系统都必然存在噪声,而本身要测量的弱光信号已经很微弱。 因此, 如何把淹没在噪声中的弱光信号提取出来的问题具有十分重要的意义!随着科学技术的发展,光电检测技术已广泛应用于军事、工业、农业、宇宙、 环境科学、医疗卫生和民用等诸多领域。微弱
10、光信号检测系统在信号处理、测量技 术、通信技术、状态检测以及一般的电子电路设计等领域得到了非常广泛的应用。 并极大地促进了相关领域的发展。进行微弱光检测的分析讨论非常重要。本设计意 在对微弱光信号的采集处理和存储进行了完整的探讨和研究。对微弱光信号的检测 具有一定的认识。1.2国内外发展现状随着科学技术的发展,尤其是计算机技术的发展,促进了信号处理的飞速发展 微弱信号检测是信号处理的重要组成部分,其在物理、化学、生物医学、地质、磁 学等领域都有广泛的应用。最近几十年来,信号处理综合了系统理论、统计学、数 值分析、计算机科学和大规模集成电路等众多领域的科学成果,独立的形成一门具 有普遍意义的学科
11、。微弱信号检测技术用电子学、信息论、计算机学和物理学的方 法,分析噪声产生的原因和规律,研究被测信号的特点以及相关性,检测被噪声淹 没的微弱有用信号。微弱光信号的监测,不仅在微弱信号处理领域得到了飞速的发 展,在光电检测领域也是一个重要的研究方向,因此本设计探讨的微弱光控制系统 是非常有意义的。1.3主要研究内容本课题的主要任务是完成微弱光信号检测系统的设计。根据设计总体需求,本 设计主要完成微弱光信号检测,AD信号采样,数据存储、显示等功能。实现微弱光 信号的检测功能。本论文的研究内容主要包括以下几个方面:1、微弱光电信号的检测,将微弱光先好转化为电信号。2、对微弱光信号的处理,包括信号的放
12、大和 AD数据采样。3、实现采样数据的存储,显示和处理功能。4、实现与PC机的上层软件通信。41第2章系统总体设计分析2.1系统设计方案确定与论证对光信号的采集通常用光电器件将光信号转变为电信号。常用的光电器件有 光敏电阻,光电三极管,光电二极管,光电倍增管等。光敏电阻:通过光的强弱改 变阻值从而改变电流。优点是内部的光电效应和电极无关,即可以使用直流电源。 缺点是受温度影响较大,响应速度不快,延迟时间受光照强度影响。而且光敏电阻 是易损器件,所以不适合本次设计。光电三极管:灵敏度高,输出电流也比光电二 极管大,但光电特性不如光电二极管好,通常用作光电开关。所以也不适合本次设 计。光电二极管:
13、PIN光电二极管响应频率高,可高达 10GHZ响应速度快,供电 电压低,工作十分稳定。雪崩二极管灵敏度高,响应快,但雪崩二极管需要上百伏 的工作电压,而且性能和入射光功率有关,当入射光功率大时,增益引起的噪声大, 带来电流失真。所以本次设计最终采用 PIN型光电二极管。对采集信号的处理,传感器出来的信号是微弱的模拟信号,最终要得到单片 机系统能够处理的数字信号,需要对信号进行一系列的处理。包括对信号的放大和 AD采样。信号放放大一般选用集成运算放大器。本系统设计采用LM358集成运算放 大器。该放大器可以达到系统设计的放大需求。ADC莫数转换器采用ADS7668完成模拟量到数字量的转化。本次设
14、计以Flash Memory为存储体的SD卡进行数据的存储。其具备体积小、 功耗低、可擦写以及非易失性等特点。SD卡有两个可选的通讯协议:SD模式和SPI 模式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有 SD卡控制器接口的MCU或者必须加入额外的SD卡控制单元以支持SD卡的读写。 然而,51单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产 品的硬件成本。选用SPI模式可以说是一种最佳的解决方案。而且采用 SPI模式对 SD卡进行读写操作可大大简化硬件电路的设计。51系列单片可以用软件模拟出SPI 总线时序来解决这个问题。对于人机交互界面的设计。本
15、次设计采用液晶LCD进行显示。液晶显示器是目前很多电气设备首选的显示设备。本系统根据实际需要,设计采用1602作为液晶显示器。输出模块采用独立按键。系统总体结构图如图2-1图2-1系统总体框图综上所述,本系统以增强型 51单片机STC作为核心控制模块,以光敏二极管 作为光信号到电信号的检测器件。再对转换后的信号进行放大和AD采样等操作,将得到的模拟信号转化为适合单片机处理的数字信号。然后通过LCD显示器将采集到的光信号显示处理,并且进行存储操作。可通过按键输入查看历史采样数据。同 时可将数据发送到PC机,在PC机上面查看历史数据。也可以在 PC机上监测当前 光信号的强弱。2.2系统关键技术微弱
16、光信号检测系统设计需要解决以下几个问题:一是光信号的检测,需要采 用光敏器件,比如光敏电阻,光敏二极管等将光信号转化为电信号;二是转化后的 信号处理,传感器直接出来的电信号往往比较微弱,需要进行放大,得到适合AD采样的数据,然后再通过 AD采样将模拟量转化为数字量。三是人机交互界面的设 计,包括数据的显示和输入操作等。四是数据的存储结构,设计要求将数据存储在 AD卡中。由于本系统涉及到历史数据的查询,所以对SD卡中的数据存储结构设计也是关键。综上所述,需要完成以下主要内容:1、光信号的采集,将光信号转化为对应的电流、电压等电信号。2、 信号处理,将转化后的电信号经过放大、AD采样的处理,转化为
17、单片机能 够处理的数字信号。3、采集数据的显示,输入操作等人机交互设计。4、数据存储处理,SD卡的数据存储。5、串口上位机的调试。第3章系统硬件设计3.1系统硬件总体结构根据系统总体设计需求,硬件平台主要分为几个模块:电源供电模块;MCU主控模块;SD卡存储模块;光电传感检测模块;AD采样模块;串口调试模块;LCD显 示模块;输入模块等。系统硬件总体框图如图 3-1图3-1系统硬件总体框图3.2单片机模块根据系统设计需要,该系统中需要使用微处理器进行数据采样、存储和显示。 通过分析系统的设计需要,系统设计采用 51系列单片机作为系统微控制器。51系 列单片机是in tel公司20世纪80年代初
18、推出的单片机,随后得到许多著名半导体 厂商的认可,随着电子技术的发展,51系列单片机产品的型号不断增加、品种不断 丰富、功能也不断加强。对于一般的单片机系统,51已经成为不二的选择。本系统 中采用51系统单片机进行AD数据采样、数据存储、显示和处理等。本系统采用的STC单片机,是增强型51单片机的一种。该单片机具有和 8051 完全兼容的封装接口。同时增加了相应外设功能,比如增加内部AD PWM脉宽调制模块等。STC单片机是使用也越来越多。本系统采用STC单片机作为系统的核心控制模块。主要完成以下工作:一是与 AD芯片一起完成光信号的AD采样。将放大器 输出的模拟信号转化为单片机可以处理的数字
19、信号。二是对SD卡进行读写操作,从而达到对采样数据的存储和查询历史数据的要求。三是输入输出接口模块实现, 完成人机交互,使系统具有很好的应用前景。四是完成和PC机的通信,将采集的 数据通过串口发送到PC机,从而可以通过PC机完成直接监控光强度的变化的目的 综上所述,STC单片机小系统如图3-2所示:3.3电源模块根据本系统的实际需求,电源模块要为系统提供 +3.3V电源,+5V。其中3.3V 电源是SD卡的工作电源。5V电源是系统工作电源和 AD采样参考电源。根据系统的实际供电需要。考虑采用交流电源通过降压整流获得。因此首先通 过降压变压器,将220VAC降压到12VAC系统采用的大功率变压器
20、,输出功率可以 达到15W完全满足系统的功耗需求。降压变压器输出的是12V的交流电源。也不满足系统的设计需求。本系统采用 AC/DC专化,将交流电转化为直流电。系统设计 初期考虑采用二极管搭建整流电路。实验效果比较好,能够得到符合要求的直流电 源。但是每次搭建整流电路比较麻烦, 而且工作不是很稳定。最后采用集成整流桥。 集成整流桥使用方便,效果好,而且工作很稳定。经过整流的电源也不是很平滑的 直流电源。需要经过大容量的电容进行滤波处理。 最后得到了比较平滑的直流电源。 该直流电源用作DC/DC降压的电源。获得系统需要的电源。AC/DC转换电路如图3-3 所示:图3-3 AC/DC转换电路5.0
21、V电源采用National公司的LM2940电源芯片。通过整流桥 AC/DC变换的电 源显然不能满足单片机系统的需要。还需要经过DC/DC转化。得到单片机系统的工作电源。本系统采用的LM2940是输出电流可以达到1A,输出功率可以达到5W经 过试验测试,电源输出纹波只有4Mv,对该系统的供电效果较好。本系统设计的DC/DC 电源转换电路如图3-4所示:图3-4 5.0V 电源模块3.4光信号检测模块对光信号的采集通常用光电器件将光信号转变为电信号。常用的光电器件有光敏电阻,光电三极管,光电二极管,光电倍增管等。光电器件的作用是将光的强弱 转化为电信号的变化,从而可以采用电路的方式处理信号。光电
22、器件转化后的信号 主要有电流和电压两种形式,最终都可以转化为电压的变化。本系统采用PIN光电二极管作为光信号检测传感器,该传感器具有响应频率高, 可高达10GHZ响应速度快,供电电压低,工作十分稳定的特点。光电二极管最终 输出的信号变化形式为电流变化,并且电流变化范围较小。不适合直接作为AD采样的输入信号,必须首先将电流信号转化为电压信号。然后在对转化后的电压信号 进行放大。得到适合AD采样的信号。放大电路采用LM358集成运算放大器,信号 放大方式采用同相放大,并且使用滑动变阻器调节同相放大器的放大倍数,针对特 定的应用场景,可以调节滑动变阻器达到不同的信号放大等级的目的。从而更好的 实现信
23、号的处理。光信号检测和处理电路如图3-5所示:光敏电阻3.5信号处理模块经过运算放大器的的信号仍然是模拟信号。 单片机系统是无法处理模拟信号的。因此需要将模拟信号转化为数字信号。模拟信号转化为数字信号通常采用的是模数 转换器ADC ADC的工作原理这里不再嗷述。根据本系统的实际设计需求,对微弱 信号的变化进行采样,为了达到更高的采样精度,反映出微弱光信号的微小变化, 系统采用12位精度的ADC专化器ADS7886该期间的采样频率可以达到1MSPS完 全满足本系统的设计需要。该芯片输出采用两总线方式,同时有一个片选信号端。可以作为总线型的器件使用。串行数据传输方式,大大的节省单片机的I/O 口资
24、源。 信号采样模块如图3-6所示图3-6 AD采样模块3.6数据存储模块SD卡(Secure DigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如个人数码 助理(PDA)、数码相机和多媒体播放器等。SD卡由日本松下、东芝及美国 San Disk 公司于1999年8月共同开发研制。大小犹如一张邮票的 SD记忆卡,重量只有2克 左右,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全 性。SD卡数据引脚定义如表3-1所示:表3-1 SD卡引脚功能定义引脚SD模式SPI模式名称类型描述名称类型描述1C
25、D/DAT3IO 或 PP数据线3CSI片选2CMDPP命令DII数据输入3Vss1S电源地VSSS电源地4VddS电源VDDS电源5CLKI时钟SCLKI时钟6VSS2S电源地VSS2S电源地7DAT0IO 或 PP数据线0DOO或PP数据输出8DAT1IO 或 PP数据线1RSV保留9DAT2IO 或 PP数据线2RSV保留本系统使用大容量SD卡作为系统的存储介质。SD卡的工作电平为3.3V。但是由于系统采用的SD卡模块插槽。该模块上面已经集成了电平转换芯片。所以系 统只需要给SD卡模块提供5V电源即可。SD卡模块采用的是SPI读写模式。SD卡提 供9Pin的引脚接口便于外围电路对其进行操
26、作,9Pin的引脚随工作模式的不同有 所差异。在SPI模式下,引脚1( DAT3作为SPI片选线CS用,弓I脚2( CMD用作 SPI总线的数据输出线MOSJ而引脚7 (DAT0为数据输入线MISQ弓I脚5用作时钟 线(CLK。除电源和地,保留引脚可悬空。其中 LED灯用来指示SD卡的读写状态。 该模块与单片机的接口如图3-7所示:图3-7 SD卡存储模块3.7输入输出模块系统设计输入输出模块。该系统需要检测光信号的变化,同时提供历史数据的 查询。所以人机交互界面的设计时必要的。根据系统设计的实际需求。本系统采用 1602液晶作为显示设备。显示当前采集到的微弱光系统。1602液晶可显示最多64
27、个字符。完全可以满足系统的设计需要。人机交互模块的另一个部分是输入模块。 通常的输入模块往往采用按键作为输入器件。本系统需要通过按键查询历史数据和 一些必要的操作。系统设计了 4个独立按键。分别用于数据采样触发,数据查询触 发,数据选择和确定等功能。通过输入输出模块,使用户可以很好的对系统进行操 作,应用效果较好。输入输出模块如图 3-8所示:图3-8 输入输出模块3.8上位机通信模块系统可通过输入输出模块,在LCD上进行微弱管关的检测和历史数据的查看。 同时为系统定义了上位机模式。通过串行传输方式。将采样的数据发回到PC机。从而可以在PC机上观察到数据的当前变化,使用方便。上位机通信模块主要
28、是实 现与PC的通信。单片机系统和PC机的通信往往采用RS232协议。通过串行数据传 送方式。将数据的TTL电平首先通过RS232电平转换芯片转换成PC机串口能够识 别的RS232电平,然后在PC机上将数据显示出来。单片机采用 STC单片机集成的 串口模块。串口通信模块如图3-9所示:HI图3-9串口通信模块第4章软件系统设计4.1系统软件整体结构本系统是基于51单片机实现的微弱光信号检测控制系统设计,系统采用51单片机为核心处理器,利用光线传感器对外界光线进行实时采集,将光信号转换成 电压信号,然后通过A/D转换芯片采集光线传感器转换出来的电压,用于单片机进 行数据处理,为了实时监测采集的数
29、据,本系统将采集回来的电压信号数据进行 1602显示,然后再将进行SD卡储存,当系统需要查看历史值时候,通过按键设置 查看的扇区,查看扇区的第几个数值,实时的查看并显示内存里的历史值。本系统 的系统软件结构框图如下图图 4-1。通过系统的整体软件设计,可以方便我们对系 统设计结构能更好的理解,能够大大的提高本系统的设计效率,并且能使做到思路 清晰,结构明确。图4-1系统结构框图4.2 LCD1602液晶软件设计在整个系统中,LCD莫块是系统关键的一个技术模块,本系统采用的1602液晶显示器,1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号 等的点阵型液晶模块它有若干个 5
30、X7或者5X11等点阵字符位组成,每个点阵字符 位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符 间距和行间距的作用,正因为如此所以他不能显示图形,但是他能满足本系统的设 计要求,做到成本低,简单的目的。他能实时的反映出本系统当前的运行状态,能 实时显示出数据采集情况,并且也能对本系统采样的历史数据进行显示。本系统所涉及的显示模块主要包括:1数据采样实时显示。2、数据储存状态。3、历史值的查询等。下面是1602控制口的初始化端口sbit rs =P2A0;sbit rw=P2A1; sbit Icde n=P2A2;系统LCD1602设计的模块主要包括写字节模块,写命令
31、模块,初始化模块,数组 数据显示模块。4.2.1 1602 写字节模块1602写字节模块是系统的关键模块,由于LCD1602是并行数据传输,因此模块的主要操作是=将一个char类型的数据通过51单片机的8位端口进行写入,然后 通过片选信号下降沿将数据传输到1602的数据端口,实现直接的写入。下面代码是1602字节写入函数。void write_date(uchar date)rs=1;设置LCD的IO 口为写数据模式P0=date;delay(1);lcden=1;/LCD 使能端开dela y(2);lcden=0;/LCD 使能关闭其中date是要写入数据变量,rs是设置写数据还是写命令的
32、端口,系统通过 置位rs实现设置成写数据模式。然后将数据进行传输,最终通过下降沿将数据送 出。下图4-2是写数据函数流程图。图4-2写数据流程图422 1602 写命令模块1602液晶模块能显示两行char类型的ASC码,每一行最多能显示16个字符, 大大方便了我们对数据进行显示。本系统设计的写命令模块函数主要就是实时设置 系统字符所需要显示的位置,第一行显示的初始位置是0x80,第二行是0x80+0x40, 当我们需要在每一行第几个字显示的时候,我们只需要在首地址的基础上加上我们 具体的位置值,就能实时的调节显示的位置,下面的代码是具体的写命令函数。void write_com(uchar
33、com)/LCD 写命令函数rs=0;设置LCD的IO 口为写命令模式P0=com;delay(1);lcden=1;/LCD 使能端开delay(2);Icden=0;/LCD 使能关闭rs其中通过设置rs为低电平时,此种状态系系统进入系命令模式。系统通过清零 实现设置成写命令模式。然后将数据进行传输,延时一段时间,最终通过下降沿将 数据送出。下图4-3是写命令函数流程图。图4-3写命令流程图4.2.3 1602初始化模块液晶初始化就是对液晶显示器硬件的初始操作,主要是初始使能液晶显示器的 工作模式。同时由于在初始状态系统的各个变量不是固定的值,当初始化后系统液 晶上会出现不同的乱的字符,因
34、此系统在初始化液晶后要对系统通过写清平指令将 液晶屏进行清屏。当清屏后,要在液晶屏上进行液晶初始化显示。液晶初始化流程 如图如图4-4所示:图4-4系统初始化流程图液晶初始化主要代码段如下所示:void Lcd_i nit()rw=0;lede n=0;write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);LCD_shuzu_show(0x80+3,10,weak);/LCD的初始化(为显示做准备)/-置低读写位,是液晶处于读状态/-清零使能位/-写入显示模式指令/-写入清屏指令/-显示开关光标设置/-光标移动设置整屏移
35、动设置/-/初始化第一行屏幕显示LCD_shuzu_show(0x80+0x40+3,11,start); -初始化第二行屏幕显示1602液晶显示器的初始化是通过写入指令方式实现的。初始化过程主要是首先清零读写控制端,是液晶处于写数据状态。然后清零使能端,是液晶处于接收数据 无效状态。然后调用液晶写命令函数。写入液晶初始化的相关指令,分别系统通过 写命令0x38实现设置1602显示模式,通过写0x01设置成清屏模式,通过写 0x0c 将系统显示光标关闭,同时不用闪烁,然后通过液晶写数据函数,写入数据,即是 液晶初始界面显示的字符,显示系统初始化界面。这样就完成了系统的显示器件初 始化。424
36、1602数组显示模块函数为了后期更方便的进行数组显示,本系统将函数进行了模块化显示,系统通过 传递需要显示位置,显示数组和显示数组长度等参数,能方便的进行数组的显示, 极大的减少了程序设计代码,下面代码是函数的实现源代码。void LCD_shuzu_show(uchar add,uchar len gth,uchar *tab)uchar j;write_com(add);/-要显示的位置地址for(j=0;j1 )然后再进行“与”的 操作,最终实现将16位的int数据转换成我们需要的12位数据模式。具体模块程 序如下。uint Ads7886_Get_data() /-ADC 取出数据函数
37、uint dat=0;CS=0;_nop_(); for(i=16;i0;i-)SCL=0;_nop_();dat1;/-由于读出来的只有12位有效,是高3位和最低位无效,因此右移移位取出这12为数据/-返回采样值dat=dat&0 xOfff;return (dat);从程序我们可以看出,当片选信号拉低的时候,系统通过16次for循环进行数据采集,然后通过对SDA数据口进行数据采集,采集是按照一位一位的采集,而且 每一位数据采集时候都是在系统时钟低电平进行的,即时钟信号SCL为低电平期间,然后当时钟信号在高电平其间将数据读取到 51单片机进行数据存储,这样循环进行16次相同的操作将数据存入一
38、个int类型的变量中,在程序中我们可以发现, 每个端口操作后我们都有一定的延时时间,这是为了保证在采集数据时对每个口的 操作都准确无误的情况下实现的,最后我们再通过右移的方法和与的操作,最终将 数据采集出来进行返回用于后期进行数据处理。整个读取数据过程简单明了,容易 理解,操作起来也很方便,占用的数据端口也十分的小,极大的减少了我们对单片 机数据端口的使用,大大提高了对单片机的资源的利用。对于串行方式的ADC莫数转换器。首先在读写数据时需要满足器件的时序规则, 才能确保读出的数据的正确性。其次要注意数据的高低位顺序。避免由于高地位支 错误而出现的数据错误问题。本系统的ADC数据采样效果良好,具
39、体ADC数据采集 流程图如图4-7所示:433 A/D数据转换模块为了更好的实现数据的显示,本系统将采集回的数据进行一定的数据转换,转换成我们能识别的正常的十进制数,然后利用LCD1602进行数据的显示,系统通过数据中的电压和12为数据的关系,将数据进行乘以5再除以4.095,将数据转换成 已知的电压数据,并且电压数据是在实际电压数据上扩大了1000倍,用以1602进行显示。如下图图4-8是系统AD数据转换流程图图4-8 A/D数据转换流程图4.3.4 A/D数据显示模块开始写数据显示地址取千位送显示 取百位送显示 取十位送显示 取个位送显示返回,图4-9数据显示流程图考虑到数据显示的标准型,
40、本系统将 AD数据采样值通过除法取出每一位进行数 据显示,在显示过程中通过实时刷新的方式显示实时的数据采样值,最终实现实时观察采样系统。下图4-9是本模块数据显示流程图4.4 SD卡存储软件设计SD卡(Secure DigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如个人数码 助理(PDA)、数码相机和多媒体播放器等。SD卡由日本松下、东芝及美国 San Disk 公司于1999年8月共同开发研制。大小犹如一张邮票的 SD记忆卡,重量只有2克 左右,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的
41、安全 性。SD卡在24mrK 32mrK 2.1m m的体积内结合了 San Disk快闪记忆卡控制与 MLC (Multilevel Cell )技术和 Toshiba (东芝)0.16u 及 0.13u 的 NAND!术,通过 9 针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。 而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏。SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用 CLK CMDDAT0DAT进行数据通信。而SPI方式采用4线制,使用CS CLK Dataln、 DataOut进行数据通信。SD方式时的数据
42、传输速度与 SPI方式要快,采用单片机对 SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使 SD卡工作于 SD方式或SPI方式。近年来,SD存储卡在嵌入式产品中的应用越来越广泛,但SD 卡接口一般仅集成在32位高端处理器中,一般51单片机则由于资源限制没有该接 口。因此,如何解决51单片机应用系统存取SD卡大容量数据就显得很有实际意义。 本系统使用STC89C5作为单片机与SD卡的接口芯片,采用模拟SPI串行方式对SD 卡的扇区进行读写,读写过程和结果通过串口调试助手在主机上显示。本论文的程 序采用C语言在Keil软件下进行编写、调试,程序主要包括 SD卡扇区读写程序、 串口程
43、序等软件模块。系统实现了对 SD卡扇区的读写,达到了设计的要求和目的。本模块的软件设计主要包括二部分:对SD扇区读写,51单片机跟上位机(HOST) 的传输,即依据RS232传输协议的通信程序设计。而 SD卡扇区的读写主要包含: 单片机普通I/O 口模拟SPI协议,SD卡初始化,SD卡内部不同地址下扇区数据的 读写。4.4.1模拟SPI协议SD卡的SPI通信接口使其可以通过 SPI通道进行数据读写。从应用的角度来看,采用 SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本,大大提高了开发者的设计。对于不带SPI串行总线接口的 STC89C52单片
44、机,需要用软件来模拟 SPI总线 操作,现在有关模拟SPI的操作也十分的多。441.1 SD 卡写字节模块由于模拟SD卡是一种串行型数据模式,因此数据的传输需要一个字节的方式写 入,通过先写高位,后写地位的方式将一个 char类型的数据一位一位的进行传输 写入。如下图图4-10是软件模拟SPI协议写字节的流程图。图4-10写字节函数流程图4.4.1.2 SD 卡读字节模块当我们在写入数据后,为了验证数据的正确性,我们往往会通过向写入数据进行读写,读出刚刚写入数据和读出的数据是不是一样。SD卡的读字节函数也是像写字节函数一样,通过先读取高位的方式一位一位的将数据读到一个char类型的变量中,同时
45、读数据的时候也是在时钟信号拉高的情况下将其每一位读出。如下图4-11是读字节流程图图4-11读字节函数流程图442 SD卡写命令模块SD卡自身具有完备的命令系统,以实现各项操作。SD卡命令共分为12类,分别为Class0-Class12不同的SD卡支持的指令集不尽相同,SP1模式下支持的命 令和SD总线模式下支持的命令也不一致。SD卡所有的命令都由6个字节组成,发 送的时候首先发送最高位。其命令格式如表 4-1。表4-1 SD卡命令的格式Byte1Byte2-Byte5Byte676503107001命令号命令参数CRC校验码1Byte1:命令的开始位为始终为0; 1表明是主机发送给SD卡的命
46、令,后面是命令号(命令号,由指令标志定义,如 CMD39为100111即十六进制为0x27,那么 完整的 CMD39 第一字节为 01100111,即 0x27+0x40)。Byte2-5:命令参数,有些命令没有参数。例如 CMD0命令参数就为0。CMD24 为写单块命令就有命令参数,命令参数就是要写扇区的地址。Byte6:前7位为CRC校验位,最后一位为停止位 0。SD卡自身有完备的命令系统,以实现各项操作。命令格式如下图图4-12此位为1说明是主机 给SD卡的命令图4-12命令格式命令传输过程采用发送应答机制过程如图4-13所示。;From :From :图4-13命令应答表4-2列取了
47、SPI模式下常用的命令。表4-2 SPI模式下常用命令命令号功能CMD0复位SD卡CMD1读OCR寄存器CMD9读CSD寄存器CMD10读CID寄存器CMD12停止读多块时的数据传输CMD16设置块的长度CMD17写单块CMD18读多块,直到主机发送 CMD12为止CMD24写单块CMD25写多块CMD32设置擦出块的起始地址CMD33设置擦出块的终止地址CMD38擦出所选的块CMD55状态每一个命令都有自己命令应答格式。在 SPI模式中定义了三种应答格式,如表 4-3、 表4-4、表4-5所示。表4-3二字节应答模式字节位含义17开始位,始终为06参数错误5地址错误4擦除序列错误3CRC错误
48、2非法命令1擦除复位0闲置状态27溢出,CSD覆盖6擦除参数5写保护非法4卡ECC失败3卡控制器错误2未知错误1写保护擦除跳过,锁/解锁失败0锁卡表4-4六字节应答模式字节位含义17开始位,始终为06参数错误5地址错误4擦除序列错误3CRC错误2非法命令1擦除复位0闲置状态25全部操作条件寄存器,高位在前表4-5 字节应答模式字节位含义17开始位,始终为06参数错误5地址错误4擦除序列错误3CRC错误2非法命令1擦除复位0闲置状态443 SD卡初始化模块SD卡的初始化是非常重要的,只有进行了正确的初始化,才能进行扇区读写等 操作。根据SD卡的手册说明,在初始化过程中,SPI的时钟不能太快,否则
49、会造 初始化失败。在初始化成功后,应尽量提高 SPI的速率。在刚开始要先发送至少74 个时钟信号,这是必须的,因为在上电初期,电压的上升过程据SD卡组织的计算约合64个CLK周期才能到达SD卡的正常工作电压,其后的10个CLK是为了与 SD卡同步,如果疏忽了这一点,可能使初始化不成功。随后就是写入两个命令CMDO 与CMD1,使SD卡进入SPI模式,为了实现兼容性,发送CMDO后,再发送CMD55 和ACMD41 (使用 ACMD 类的指令前应先发 CMD55,CMD55起到一个切换到 ACMD类命令的作用)确认是否有回应,如果有回应则为SD卡,如果等回应超时, 则可能是MMC卡,再发CMD1
50、确认。完成上面操作后SD卡进入SPI模式。主机 还可以继续通过CMD10读取SD卡的CID寄存器,通过CMD16设置数据Block 长度,通过CMD9读取卡的CSD寄存器。从CSD寄存器中,主机可获知卡容量, 支持的命令集等重要参数。SD卡初始化的C语言程序见附录。如下图图4-14是SD 初始化时序图74+clocks 8 54+clocks88CLK凶卤凶凶凶凶 I:;iI; 8 NcrI|ICS(CMD)IN(DATA)OUT40h95hCMDOCRC01hCLKCS(CMD)IN(DATA)OUT8 64+clocks88! 8 x 4 : 8Ncr ;r 冈 : I41hFFhCMD1CRCOOh图4-14初始化时序图系统初始化流程图如下图4-15.图4-15初始化流程图4.4.4 SD卡写数据模块完成SD卡的初始化之后即可进行它的读写操作。SD卡的读写操作都是通过发送SD卡命令完成的。SPI总线模式支持单块(CMD24)和多块(CMD25)写操作,多块操作是指从指定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2217-2025全自动灰分分析仪校准规范
- 江苏省连云港市新海初级中学2024-2025学年部编版九年级历史下学期第一次中考模拟考试题(含答案)
- 内蒙古艺术学院《建筑材料》2023-2024学年第二学期期末试卷
- 南华大学《生理学A》2023-2024学年第二学期期末试卷
- 拉萨师范高等专科学校《水土保持与防护林学》2023-2024学年第二学期期末试卷
- 云南省红河州2025届高三第二学期英语试题模拟考试卷(一)含解析
- 河北软件职业技术学院《数据可视化理论与实践》2023-2024学年第一学期期末试卷
- 湖北省武汉市黄陂区部分学校2025年初三下学期期中质量抽测生物试题试卷含解析
- 江苏省宿迁市新阳中学2025届高考语文试题考前最后一卷预测卷(五)含解析
- 浙江省宁波市余姚市余姚中学2024-2025学年高考模拟历史试题(二)含解析
- 各类酒店造价估算指标
- 2023年民兵整组存在的问题
- 单基因遗传病的分子生物学检验-医学院课件
- 公务摄影拍摄技巧分享课件
- BS EN ISO 15848-1-2015 工业阀-逸散性排放的测量、试验和鉴定程序(中文)
- 人教版《小数的初步认识》
- 水泥厂安全隐患排查治理台账
- 可降解的二阶微分方程课件
- 慢性肾功能不全护理查房
- 矩形容器计算(ABCDE型通用)V1.1
- 02S701砖砌化粪池标准图集
评论
0/150
提交评论