08通信工程论文.docx
- 文档编号:11671562
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:14
- 大小:123.72KB
08通信工程论文.docx
《08通信工程论文.docx》由会员分享,可在线阅读,更多相关《08通信工程论文.docx(14页珍藏版)》请在冰豆网上搜索。
08通信工程论文
第一章整体系统的设计
一.总体设计方案
(一)设计要求
LCD数字温度监测器的测量温度精确度要求达到0.1℃,测量的温度的范围在0℃到+100℃之间,用LCD显示出来,同时可用键盘设置上、下限安全温度值,如果超过或低于安全温度值就产生LED报警信号。
可记忆至少10组的测量温度值。
(二)设计思路
设计一个LCD数字温度监测器。
本着以“总-分-总“的原则。
先初步完成总体的设计方案,然后再从硬件和软件两方面来考虑,在硬件方面,完成电路参数的计算对各模块进行方案论证与比较来确定所选择的电路或器件,画好原理图和PCB以备搭建硬件,调试电路;然后再从软件方面来调试。
最终进一步完善总体的设计方案.
(三)方案论证与比较
1.电源方案论证与选择
单片机的工作需要稳定的+5V直流电压,所以需对市电进行变压、整流、滤波、稳压,为系统直流电压[1]。
方案一:
采用变压器将220V交流电变换为7.5V交流电,再进行全波整流、滤波,最后用三端稳压管7805进行稳压,可分别得到+5V。
方案二:
采用电源模块得到20V直流电压输出,再通过三端稳压集成芯片进行稳压,得到两种输出电压。
方案一简单易行,且成本低,试验阶段我们采用方案一。
2.温度传感器的设计方案论证与选择
方案一:
热电偶和热电阻测出的一般都是电压,要再经过采样/保持电路进行A/D转换,最终送入单片机再转换成对应的温度。
这需要比较多的外部硬件支持,易受干扰、精度低、硬件电路复杂,需要复杂的软件调试补偿精度,制作成本高。
方案二:
选择DS18B20作为温度传感检测元件,它不仅测温范围宽(-55~125℃),而且最大分辨达0.0625℃,同时与单片机相连采用3线制,可直接读出被测温度值。
减少了外部的硬件电路,具有低成本和易使用的特点。
从上面两个方案的比较中可以看出方案二比较好。
3.控制模块的设计方案论证与选择
方案一:
采用单片机控制,其使用灵活方便,能较大限度的开发其自身资源,性价比高[2]。
方案二:
采用FPGA(现场可编程逻辑门阵列)作为系统的控制核心。
由于FPGA具有强大的资源,使用方便灵活,易于进行功能扩展,特别是结合EDA(电子设计自动化),可以达到很高的效率。
系统的多个部件如键盘控制电路,显示控制等都可以集成到一块芯片上,大大减小了系统的体积,并且提高了系统的稳定性[3]。
考虑到目前使用FPGA不仅成本较高而且用起来复杂,选用方案一更合适。
4.显示方式论证与选择
方案一:
采用LED数码管显示。
该方案只能显示有限的符号和数码字,而且功耗大。
而本设计中要求显示的内容丰富,不适应利用该方法。
方案二:
采用字符型LCD显示。
可以显示英文及数字,质量轻,耗电小,显示内容多。
综上,拟定方案二采用LCD实时显示。
(四)系统组成
经过一系列的方案比较与论证,最终确定的系统组成框图如图1.1.1所示。
确定系统由3个模块组成:
主控制器、DS18B20、LCD显示电路及按键控制电路[4]。
图1.1.1系统组成框图
第二章硬件电路设计
一、DS18B20温度传感器介绍
DS18B20温度传感器是一片支持“一线总线”接口的温度传感器。
与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单编程实现9~12位的数字值读数方式。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等[5]。
(一)DS18B20的性能特点:
1.可通过数据线供电,电压范围:
3.0~5.5V;
2.测温范围:
-55~+125℃;
3.无须外部器件,独特的单线接口仅需要一个端口引脚进行通信;
4.多个DS18B20可以并联在唯一的三线上,实现多点组网功能;
5.零待机功耗;
6.用户可定义的非易失性温度报警设置;
7.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
8.可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃;
9.负压特性:
电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(二)DS18B20的外形和内部结构
DS18B20内部结构主要由四部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器[6]。
DS18B20的管脚排列如下(图2.1.1):
图2.1.1 DS18B20引脚分布图
引脚定义:
1.DQ为数字信号输入/输出端;
2.GND为电源地;
3.VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
内部结构(图2.1.2)
图2.1.2 DS18B20内部结构图
DS18B20有4个主要的数据部件:
1.64位ROM的位结构如图2.1.3所示,它可以看作是该DS18B20的地址序列码。
开始8位是产品类型编号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码CRC。
该ROM可通过编程使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
8位检验CRC
48位序列号
8位工厂代码(10H)
MSBLSB
MSBLSB
MSBLSB
图2.1.364位ROM结构图
2.DS18B20中的温度传感器可完成对温度的测量。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示,温度值格式如表1所示。
对应的温度计算:
当符号位S=0时,表示测得的温度值为正值,可直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变为原码,再计算十进制值。
表 2是对应的一部分温度值对应的二进制温度数值。
(注:
该表引自DS18B20中文数据资料)
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH,或T 在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。 主机根据ROM的前56位来计算CRC值,并存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。 以12位转化为例: 用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 23 22 21 20 2-1 2-2 2-3 2-4 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 S S S S S 26 25 24 表1DS18B20温度值格式表 这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 温度/℃ 二进制表示 十六进制表示 +125 0000011111010000 07D0h +85 0000010101010000 0550h +25.0625 0000000010100010 00A2h +0.5 0000000000001000 0008h 0 0000000000000000 0000h -0.5 1111111111110000 FFF8h -10.125 1111111101011110 FF5Eh -22.0625 1111111001101111 FE6Fh -55 1111110010010000 FC90h 表2DS18B20温度数据表 3.DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。 后者存放高温度和低温度触发器TH、TL和结构寄存器。 4.高速暂存存储器 高速暂存RAM的结构为9个字节的存储器,其分配如表3所示。 头2个字节包含测得的温度信息,第3和第4个字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。 第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 第6、7、8字节保留未用,表现为全逻辑1。 第9个字节读出前面所有8个字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 寄存器内容 字节地址 温度LSB 0 温度MSB 1 用户字节TH 2 用户字节TL 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC检验 8 表3DS18B20暂存寄存器分布 5.配置寄存器 TM R1 R0 1 1 1 1 1 表4配置寄存器结构 DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。 该字节的定义如表4所示。 低5位一直为1,TM是模式位,用于设置DS18B20在工作模式还是在测试模式。 在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即用来设置分辨率,定义方法见分辨率设置表5,由表5可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度转换时间就越长。 因此,在实际应用中要将分辨率和转换时间权衡考虑。 R1 R2 分辨率 温度最大转换时间 0 0 9位 93.75ms 0 1 10位 187.5ms 1 0 11位 375ms 1 1 12位 750ms 表5温度值分辨率设置表 (三)DS18B20的测温原理 DS18B20的测温原理如图2.1.4所示。 图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定的频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。 图中还隐含着计数门,当计数门打开时,DS18B20就对低温系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。 减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减少计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。 图2.1.4中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器达到被测温度值。 图2.1.4DS18B20测温原理图 另外,由于DS18B20单线通信功能是时分完成的,它严格的时隙概念,因此读写时序很重要。 系统对DS18B20的各种操作必须按协议进行。 操作协议为: 初始化DS18B20(发复位脉冲) 发ROM功能命令 发存储器操作命令 处理数据。 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤: 每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待16~60us左右,后发出60~240us的低脉冲,主CPU收到此信号表示复位成功。 (四)DS18B20与单片机的接口电路 DS18B20可以采用两种方式供电,一种是采用电源供电方式(如图2.1.5),此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。 另一种是寄生电源供电方式,如图2.1.6所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。 图2.1.5DS18B20采用电源供电方式 图2.1.6寄生电源供电方式 当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。 采用寄生电源供电方式时VDD端接地。 由于单线制只有一根线,因此发送接口必须是三态的。 五、PCB的设计与制作 (一)PCB板设计流程 由于原理图上的器件比较少,采用先自动布线再手工调整要经过如图2.5.1设计流程,未免有点烦锁,因此我们采用纯手工布线方式来设计PCB,这样可以省略掉很多步骤,而且效率比较快,其流程图如图2.5.2所示。 (二)PCB板设计 1.PCB编辑器 首先建立一个PCB文档,并且打开,进入编辑窗口[11]。 2.定义板框 在绘制电路板之前,首先要定义板框,定义板框主要包括: 定义电路板的层数、电路板的外形尺寸和形状等。 在编辑窗口中,我们将当前层切换为禁止布线层,然后选择Place(放置)菜单,选择Track(线)命令,进入画线状态,在上面绘制一个尺寸合适的矩形板框。 执行[Dseign][Rules]命令,选择Routing标签页的RulesClasses区中的RoutingLayers规则,将Toplayer设置成Vertical,Bottemlayer设置成Notused,即把布线层设置在顶层的单层板。 3.环境设置 在定义好板框后,则可在菜单中选择[Dseign][Rules]启动电路板编辑器进入电路板编辑环境。 在此环境下,可根据个人工作习惯和喜好设置电路板设计系统的环境参数。 我们在这里设置成系统默认即可。 4.调入器件封装并布局 元件布局可采用自动布局和手动布局两种方式。 在这里我们采用手动布局的方式进行设计。 在要移动的元件上按下鼠标左键并保持,把元件脱到适当的位置,释放鼠标左键元件将放置到合适的位置,应尽量使走线方便和板面的简洁美观。 5.手动布线 在布线过程中可将布线集中的部位适当放松,地线和电源线在布图过程中要尽量走宽,有些线是在无法走通就设置了跳线。 6.输出图表 PCB板设计完成后就可把图标输出到热转印纸上进行PCB板的制作了。 在此,一个完成的PCB板设计过程就结束了。 (三)PCB板制作 设计好PCB板后就开始电路板的制作,其过程包括转印、蚀刻、和钻孔,下面分别叙述制作过程。 1.转印 绘制好PCB图以后,我们用激光打印机将PCB图用专用热转印纸打印好后,就用热转印机转印到敷铜板上。 在转印的过程中要注意,一定要使热转印机达到预定的温度后才能转印,否则将会出现转印不起来的现象,我们一般取转印机温度为90摄氏度。 在转印时转印纸和铜板之间不能出现皱纹,否则不能将线路完好的转印到铜板上,影响做板。 转印好后,要等铜板上温度降低以后才能撕掉转印纸,否则将会使打印在上面的线条一并撕掉,在这里我们要注意,铜板上温度不要将得太低,否则同样会将线条撕掉。 2.蚀刻 转印好的线路板必须经过检查、修板,直至确认无误后便可以进行腐蚀了。 蚀刻,这是指通化学物质,把经过印刷的敷铜板的非保护部分的铜箔腐蚀掉。 蚀刻可以通过一份固体三氯化铁和水配置进行,步骤如下: 首先,用塑料盆盛腐蚀液,把要腐蚀的线路板浸没在溶液之中,来回晃动线路板以加快腐蚀速度。 腐蚀操作时要特别注意掌握蚀刻时间。 时间太长,腐蚀过头就会把线路板的线条弄细甚至烂掉,造成废品。 这点在蚀刻的线条较细时尤为重要。 但是,如果蚀刻时间太短,则有些应该烂掉的铜箔还没有完全蚀刻掉也会影响线路板的质量。 一般来说,用冷水配置的腐蚀液的蚀刻时间比较长,而用热水配置的腐蚀液要快2—3倍。 然后,清水冲洗。 在腐蚀完后的板子上还留有腐蚀液,必须对其进行清洗,在这里我们直接把板子放清水中冲洗即可。 最后,用数字万用表检查线中是否有短路或断路,有就要及时修板,免得给后面的调试带来问题。 3.钻孔 蚀刻好的线路板,仅仅是块半成品,必须经过钻孔后才能用。 线路板上的孔眼决定了焊接元件的位置,直接关系到安装元件的质量,因此要求按实际元件引脚的大小或图纸所标示尺寸钻孔。 孔眼必须钻得正,不能有偏歪的现象,否则将为安装元件带来困难。 特别是在钻多脚元件及引脚较大的元件时更应注意。 在钻好孔以后,我们需要用细纱纸将板面打磨光滑,这样可以去掉焊盘的毛刺和PCB表面留下的墨痕。 在打磨过程中不可以太用力,否则会将铜线条擦掉,也不可以太轻,如果太轻会打磨不干净。 打磨好以后用湿布擦干净,这样一块完整的PCB板就做成了,接下去就可以进行元器件的安装和焊接了。 第三章软件设计 系统程序主要包括主程序、DS18B20的复位、读写子程序、读出温度子程序、温度数据的计算处理、显示界面与刷新数据程序、液晶显示驱动的程序及按键扫描的程序设计。 图3.2.6DS18B20写入子程序流程图图3.2.4DS18B20读出子程序流程图 第五章调试及性能分析 一、调试及性能分析 (一)调试: 1.电路板的调试 首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。 2.电源电路调试 接通电源后电源指示灯正常发光,输出5.0V稳定的电压,工作稳定。 3.晶体振荡电路调试 由于伟福仿真需要晶振才能工作,因此我们连好电路后将伟福接上40引脚的插糟上,选用用户板上的12MHZ晶体,编写一个简单程序,观察伟福是否可以运行,假如运行出错,则说明晶体振荡电路有问题。 在调试中,程序可以运行,晶体振荡电路没问题。 4.发光二极管电路调试 通过编写一个简单程序,配置P1.3的输出电平,使LED周而复始地亮1秒,灭1秒。 假如可以实现则电路工作正常。 5.按键的调试 由于键盘是对角按下去才连通的,所以可以用万用表来检查当键盘按下时是否短路来说明按键是否有问题。 6.LCD的调试 可编写简单的显示程序并进行硬件的正确性检验。 7.DS18B20的调试 主要是软件上的调试,可分别对主程序、DS18B20的复位、读写子程序、读出温度子程序、温度数据的计算处理等子程序的编程和调试,由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。 软件调试到能显示温度值,而且在有温度变化是(例如用手去接触)显示温度能改变就基本完成。 (二)性能测试: 在温度安全检测时,可设定上下限安全温度值,当超过安全温度范围蜂鸣器响,在安全温度范围内,蜂鸣器不响。 在存储温度时,可储存储20组温度值;在回放存储的温度值时,可回放出上次存储的20组温度值。 而且两次温度值一致。 当需要重新存储测量温度时应复位单片机,以清空存储组数及存储单元值。 由于在程序中,DS18B20的设置的分辨率很高(0.0625℃),所以误差指标可以限制在0.1℃内,另外-55~+125℃的测温范围使得该温度监测器完全适合于一般的应用场合。 (三)性能分析: 该监测器在测温范围内工作稳定,在0~+85℃的温度范围内其精度误差为0.1℃,而超过+85℃后其温度测量的精度误差0.1~0.5℃范围内,这样的准确度在温度测量中还是可以接受的。 由于实验条件的限制(注: 无温箱的测试),该监测器只能做到0~+125℃的测温范围。 在这里只提出零下温度测量的参考解决方案,具体作法是: 通过观察表2DS18B20温度数据表,我们可以发现二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,如果测得的温度小于0,这5位为1。 因此我们可以在程序中通过判断符号位为1或0来送“-”或不送“-”到LCD上来显示温度的正负。 当判断测到的是零下温度时,则将测到的数值取反加1再乘于0.0625即可得到实际温度值。 事实上,DS18B20在-45~+85℃的温度范围内,其工作非常稳定,其测量的温度精度误差在0.1℃以内,因此,有的厂商用DS18B20作为温度采集来设计数字温度补偿晶体振荡器(DTCXO),这可以做到非常可观的指标。 因此,采用DS18B20作为温度检测,在-45~+85℃的温度范围内其温度测量是最稳定可靠的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 08 通信工程 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)