第一篇:串口调试助手使用说明和技术总结大全
串口调试助手的技术报告
1.软件简介
串口调试助手是在Windows平台下开发的,工具是VC++6.0。串口调试助手版支持常用的300 ~ 115200bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送数据或字符(包括中文),能发送文本文件,可以任意设定自动发送周期,并能将接收数据保存成文本文件。是工程师调试串口的好助手工具。2.软件特点
(1)支持XP /Vista/Win7系统;
(2)绿色软件,不需安装。运行解压软件,将压缩包解压到指定目录即可。卸载时只需将程序目录删除;
(3)支持常用的300 ~ 115200bps波特率;(4)端口范围是COM1-COM4;(5)能设置校验、数据位和停止位;
(6)能以字符或十六进制收发数据,支持中文字符的收发;(7)支持文件数据的发送;
(8)数据发送端允许设置发送周期,自动发送数据;(9)支持键盘输入,将键盘数据发送到串口;
(10)支持自动清空(若设置了“自动清空”,则达到50行后,自动清空接收编辑框中显示的数据)接收窗口数据;
(11)如果没有“自动清空”,数据行达到400后,也自动清空,因为数据过多,影响接收速度,显示是最费CPU时间的操作
(12)能够保存接收到的数据,保存地址默认的是C:COMDATA;
(13)设置了“停止显示”和“继续显示”按钮,可以方便的照出要使用的信息;
(14)图钉按钮功能使程序能浮在最上层。3.软件界面
图1串口调试助手V3.0界面
4.软件的设计流程
本软件使用的是Windows API 串口编程,其编程基本步骤如下:(1)打开串口;(2)建立串口通信事件;(3)初始化串口;(4)建立数据线程;(5)读写数据;(6)结束时关闭串口。5.遇到的问题与相应的解决方案(1)串口打开或者关闭有明显的提示
(2)界面的大小设置问题,起初只有最小化按钮,按要求加上最大化以及界面要按照一定的规则能进行缩放(3)能发送和接收汉字
(4)串口接收显示的数据丢失原因:接收显示是影响程序性能的一个大问题,当接收到大量数据时,串口通信助手响应不太及时,这个可能与调用类中的使用机制有关,但显示也没能很好地处理,不过在实际的传输过程中是没有丢失数据的。所以在测试和编程过程中,如果实时性较高,可不显示数据。现在我们设计的软件中接收并能正确的显示5000字节以内的数据是没有问题的,这个量度已经能满足我们平时的需求。(5)停止位为1.5的原因: 停止位是按长度来算的,串行异步通信从计时开始,以单位时间为间隔(一个单位时间就是波特率的倒数),依次接受所规定的数据位和奇偶校验位,并拼装成一个字符的并行字节;此后应接收到规定长度的停止位“1”。1.5位是时间上的宽度是一个bit的1.5倍。例如你的波特率是1000bps,那么一个bit的宽度就是1ms,一个停止位就是1ms,而1.5个停止位就是1.5ms了。较长的停止位是让接受方有足够的时间处理收到的数据,还可以一定程度上减少波特率误差的积累,相当于中间插入了一段空闲状态(0.5bit),下个byte又会重新同步了。同时允许接受方可以准备好再次接受新的数据,当接受方的速度足够快时,停止位的长度可以减小。
(6)发送端在初始化发送数据提示时末端出现一位乱码:(7)图钉按钮使程序能浮在最上层(8)对话框动画图标的实现
第二篇:电路调试技术总结
电路调试技术总结
实践表明,一个电子装置,即使按照设计的电路参数进行安装,往往也难于达到预期的效果。这是因为人们在设计时,不可能周全地考虑各种复杂的客观因素(如元件值的误差,器件参数的分散性,分布参数的影响等),必须通过安装后的测试和调整,来发现和纠正设计方案的不足,然后采取措施加以改进,使装置达到预定的技术指标。因此,调试电子电路的技能对从事电子技术及其有关领域工作的人员来说,是不应缺少的。调试的常用仪器有:万用表、示波器和信号发生器等。电子电路调试包括测试和调整两个方面。调试的意义是:
1、通调试使电子电路达到规定的指标;
2、调试发现设计中存在的缺陷予以纠正。
在大学生电子竞赛中,竞赛的选题往往有发挥部分,占50分,通过调试和修改设计电路,使电子电路满足发挥部分的要求,可争取更多的得分。从这个角度看,调试也是一个不断提高电子电路水平的过程。
一、电子电路调试的一般步骤
传统中医看病讲究“望、闻、问、切”,其实调试电路也是如此。首先“望”,要观察电路板的焊接如何,成熟的电子产品一般都是焊接出的问题;第二“闻”,呵呵,这个不是说先把电路板闻下,是说通电后听电路板是否有异常响动,不该叫的叫了,该叫的不叫;第三“问”,如果是自己第一次调,不是自己设计的要问电源是多少?别人是否调过?有什么问题?第四“切”,检查芯片是否插牢,有先不易观察的焊点是否焊好?一般调试前做好这几步就可发现不少问题。
根据电子电路的复杂程度,调试可分步进行:
对于较简单系统,调试步骤是:电源调试~单板调试~联调。
对于复杂的系统,调试步骤是:电源调试~单板调试~分机调试~主机调试~联调。由此可明确三点:
1、不论简单系统还是复杂系统,调试都是从电源开始入手的;
2、调试方法一般是先局部(单元电路)后整体,先静态后动态;
3、一般要经过测量——调整—一再测量——再调整的反复过程; 对于复杂的电子系统,调试也是一个“系统集成”的过程。
在单元电路调试完成的基础上,可进行系统联调。例如数据采集系统和控制系统,一般由模拟电路、数字电路和微处理器电路构成,调试时常把这3部分电路分开调试,分别达到设计指标后,再加进接口电路进行总调。联调是对总电路的性能指标进行测试和调整,若不符合设计要求,应仔细分析原因,找出相应的单元进行调整。不排除要调整多个单元的参数或调整多次,甚至要修正方案的可能。
二、电子电路的调试具体步骤:
1、通电观察:通电后不要急于测量电气指标,而要观察电路有无异常现象,例如有无冒烟现象,有无异常气味,手摸集成电路外封装,是否发烫等。如果出现异常现象,应立即关断电源,待排除故障后再通电。
2、静态调试:静态调试一般是指在不加输入信号,或只加固定的电平信号的条件下所进行的直流测试,可用万用表测出电路中各点的电位,通过和理论估算值比较,结合电路原理的分析,判断电路直流工作状态是否正常,及时发现电路中已损坏或处于临界工作状态的元器件。通过更换器件或调整电路参数,使电路直流工作状态符合设计要求。
3、动态调试:动态调试是在静态调试的基础上进行的,在电路的输入端加入合适的信号,按信号的流向,顺序检测各测试点的输出信号,若发现不正常现象,应分析其原因,并排除故障,再进行调试,直到满足要求。
测试过程中不能凭感觉和印象,要始终借助仪器观察。使用示波器时,最好把示波器的信号输入方式置于“DC”挡,通过直流耦合方式,可同时观察被测信号的交、直流成分。通过调试,最后检查功能块和整机的各种指标(如信号的幅值、波形形状、相位关系、增益、输入阻抗和输出阻抗等)是否满足设计要求,如必要,再进一步对电路参数提出合理的修正。
三、电子电路调试的若干问题
1、根据待调系统的工作原理拟定调试步骤和测量方法,确定测试点,并在图纸上和板子上标出位置,画出调试数据记录表格等。
2、搭设调试工作台,工作台配备所需的调试仪器,仪器的摆设应操作方便,便于观察。学生往往不注意这个问题,在制作或调机时工作台很乱,工具、书本、衣物等与仪器混放在一起,这样会影响调试。特别提示:在制作和调试时,一定要把工作台布置的干净、整洁。这便是“磨刀不误砍柴工”
3、对于硬件电路,应视被调系统选择测量仪表,测量仪表的精度应优于被测系统;对于软件调试,则应配备微机和开发装置。
4、电子电路的调试顺序一般按信号流向进行,将前面调试过的电路输出信号作为后一级的输入信号,为最后统调创造条件。
5、选用可编程逻辑器件实现的数字电路,应完成可编程逻辑器件源文件的输入、调试与下载,并将可编程逻辑器件和模拟电路连接成系统,进行总体调试和结果测试。
6、在调试过程中,要认真观察和分析实验现象,做好记录,保证实验数据的完整可靠 下面介绍一般的调试方法和注意事项。
四、调试前的工作
电路安装完毕,通常不宜急于通电,先要认真检查一下。检查内容包括:
1、连线是否正确
检查电路连线是否正确,包括错线(连线一端正确,另一端错误)、少线(安装时完全漏掉的线)和多线(连线的两端在电路图上都是不存在的)。查线的方法通常有两种: ⑴按照电路图检查安装的线路
这种方法的特点是,根据电路图连线,按一定顺序逐一检查安装好的线路,由此可比较容易地查出错线和少线。
⑵按照实际线路来对照原理电路进行查线
这是一种以元件为中心进行查线的方法。把每个元件(包括器件)引脚的连线一次查清,检查每个去处在电路图上是否存在,这种方法不但可以查出错线和少线,还容易查出多线。为了防止出错,对于已查过的线通常应在电路图上做出标记,最好用指针式万用表“Ω×1”挡,或数字式万用表“Ω挡”的蜂鸣器来测量,而且直接测量元、器件引脚,这样可以同时发现接触不良的地方。
2、元、器件安装情况
检查元、器件引脚之间有无短路;连接处有无接触不良;二极管、三极管、集成器件和电解电容极性等是否连接有误。
3、电源供电(包括极性)、信号源连线是否正确。
4、电源端对地(┸)是否存在短路
在通电前,断开一根电源线,用万用表检查电源端对地(┸)是否存在短路。若电路经过上述检查,并确认无误后,就可转入调试。
五、调试方法 调试包括测试和调整两个方面。所谓电子电路的调试,是以达到电路设计指标为目的而进行的一系列的测量——判断——调整——再测量的反复进行过程。为了使调试顺利进行,设计的电路图上应当标明各点的电位值,相应的波形图以及其它主要数据。
调试方法通常采用先分调后联调(总调)。
我们知道,任何复杂电路都是由一些基本单元电路组成的,因此,调试时可以循着信号的流程,逐级调整各单元电路,使其参数基本符合设计指标。
这种调试方法的核心是,把组成电路的各功能块(或基本单元电路)先调试好,并在此基础上逐步扩大调试范围,最后完成整机调试。采用先分调,后联调的优点是,能及时发现问题和解决问题。新设计的电路一般采用此方法。对于包括模拟电路、数字电路和微机系统的电子装置更应采用这种方法进行调试。因为只有把三部分分开调试后,分别达到设计指标,并经过信号及电平转换电路后才能实现整机联调。否则,由于各电路要求的输入、输出电压和波形不匹配,盲目进行联调,就可能造成大量的器件损坏。
除了上述方法外,对于已定型的产品和需要相互配合才能运行的产品也可采用一次性调试。
六、调试中注意事项
调试结果是否正确,很大程度受测量正确与否和测量精度的影响。为了保证调试的效果,必须减小测量误差,提高测量精度。为此,需注意以下几点:
1、正确使用测量仪器的接地端
凡是使用地端接机壳的电子仪器进行测量,仪器的接地端应和放大器的接地端连接在一起,否则仪器机壳引入的干扰不仅会使放大器的工作状态发生变化,而且将使测量结果出现误差。根据这一原则,调试发射极偏置电路时,若需测量VCE。不应把仪器的两端直接接在集电极和发射极上,而应分别对地测出VC、VE,然后将二者相减得VCE。若使用干电池供电的万用表进行测量,由于电表的两个输入端是浮动的,所以允许直接跨接到测量点之间。
2、测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗
若测量仪器输入阻抗小,则在测量时会引起分流,给测量结果带来很大误差。
3、测量仪器的带宽必须大于被测电路的带宽
例如:MF-20型万用表的工作频率为20~20000 HZ。如果放大器的fH =100 kHZ,我们就不能用 MF-20来测试放大器的幅频特性,否则,测试结果就不能反映放大器的真实情况。
4、要正确选择测量点
用同一台测量仪器进行测量时,测量点不同,仪器内阻引进的误差大小将不同。例如,对于图1所示电路,测C1点电压VCl时,若选择e2为测量点,测得VE2,根据VCl=VE2+VBE2求得的结果,可能比直接测Cl点得到的VCl的误差要小得多。所以出现这种情况,是因为Re2较小,仪器内阻引进的测量误差小。
5、测量方法要方便可行
需要测量某电路的电流时,一般尽可能测电压而不测电流,因为测电压不必改动被测电路,测量方便。
若需知道某一支路的电流值,可以通过测取该支路上电阻 两端的电压,经过换算而得到。
6、调试过程中,不但要认真观察和测量,还要善于记录
记录的内容包括实验条件,观察的现象,测量的数据、波形和相位关系等。只有有了大量的可靠的实验记录并与理论结果加以比较,才能发现电路设计上的问题,完善设计方案。
七、调试时出现故障,要认真查找故障原因,切不可一遇故障解决不了就拆掉线路重新安装。因为重新安装的线路仍可能存在各种问题,如果是原理上的问题,即使重新安装也解决不了问题。
我们应当把查找故障,分析故障原因,看成一次好的学习机会,通过它来不断提高自己分析问题和解决问题的能力。
1、检查故障的一般方法
故障是不期望但又是不可避免的电路异常工作状况。分析、寻找和排除故障是电气工程人员必备的实际技能。
对于一个复杂的系统来说,要在大量的元器件和线路中迅速、准确地找出故障是不容易的。一般故障诊断过程,就是从故障现象出发,通过反复测试,做出分析判断,逐步找出故障的过程。
2、故障现象和产生故障的原因 ⑴常见的故障现象
放大电路没有输入信号,而有输出波形。
放大电路有输入信号,但没有输出波形,或者波形异常。
串联稳压电源无电压输出,或输出电压过高且不能调整,或输出稳压性能变坏、输出电压不稳定等。
振荡电路不产生振荡。
计数器输出波形不稳,或不能正确计数。
收音机中出现“嗡嗡”交流声和“啪啪”的汽船声等。
以上是最常见的一些故障现象,还有很多奇怪的现象,在这里就不一一列举了。⑵产生故障的原因 故障产生的原因很多,情况也很复杂,有的是一种原因引起的简单故障,有的是多种原因相互作用引起的复杂故障。因此,引起故障的原因很难简单分类。这里只能进行一些粗略的分析。
A 对于定型产品使用一段时间后出现故障,故障原因可能是元器件损坏,连线发生短路或断路(如焊点虚焊,接插件接触不良,可变电阻器、电位器、半可变电阻等接触不良,接触面表面镀层氧化等),或使用条件发生变化(如电网电压波动,过冷或过热的工作环境等)影响电子设备的正常运行。
B 对于新设计安装的电路来说,故障原因可能是:实际电路与设计的原理图不符;元器件使用不当成损坏;设计的电路本身就存在某些严重缺点,不满足技术要求;连线发生短路或断路等。
C 仪器使用不正确引起的故障,如示波器使用不正确而造成的波形异常或无波形,接地问题处理不当而引入干扰等。D 各种干扰引起的故障。
3、检查故障的一般方法
波器使用不正确而造成的波形异常或无波形,共地问题处理不当而引入查找故障的顺序可以从输入到输出,也可以从输出到输入。查找故障的一般方法有: ⑴直接观察法
直接观察法是指不用任何仪器,利用人的视、听、嗅、触等作为手段来发现问题,寻找和分析故障。
直接观察包括不通电检查和通电观察。
检查仪器的选用和使用是否正确;电源电压的等级和极性是否符合要求;电解电容的极性、二极管和三极管的管脚、集成电路的引脚有无错接、漏接、互碰等情况;布线是否合理;印刷板有无断线;电阻电容有无烧焦和炸裂等。
通电观察元器件有无发烫、冒烟,变压器有无焦味,电子管、示波管灯丝是否亮,有无高压打火等。
此法简单,也很有效,可作初步检查时用,但对比较隐蔽的故障无能为力。⑵用万用表检查静态工作点
电子电路的供电系统,半导体三极管、集成块的直流工作状态(包括元、器件引脚、电源电压)、线路中的电阻值等都可用万用表测定。当测得值与正常值相差较大时,经过分析可找到故障。
现以图2两级放大器为例,正常工作时如图所示。
静态时:(υI=0),VB1=1.3V,Ic1= lmA,VC1= 6.9V,Ic2= 1.6mA,VE2 =5.3V。但实测结果VB1=0.01V,VC1≈VCE1≈VCC=12V。考虑到正常放大工作时,硅管的V BE约为0.6~0.8V,现在T1显然处于截止状态。实测的Vc1≈VCC也证明T1是截止(或损坏)。T1为什么截止呢?这要从影响VBl的Bb11和Rb12中去寻找。进一步检查发现,Rb12本应为11kΩ,但安装时却用的是1.1kΩ的电阻,将Rb12换上正确阻值的电阻,故障即消失。
顺便指出,静态工作点也可以用示波器“DC”输入方式测定。用示波器的优点是,内阻高,能同时看到直流工作状态和被测点上的信号波形以及可能存在的干扰信号及噪声电压等,更有利于分析故障。⑶信号寻迹法
对于各种较复杂的电路,可在输入端接入一个一定幅值、适当频率的信号(例如,对于多级放大器,可在其输入端接入 f=1000 HZ的正弦信号),用示波器由前级到后级(或者相反),逐级观察波形及幅值的变化情况,如哪一级异常,则故障就在该级。这是深入检查电路的方法。⑷对比法
怀疑某一电路存在问题时,可将此电路的参数与工作状态和相同的正常电路的参数(或理论分析的电流、电压、波形等)进行一一对比,从中找出电路中的不正常情况,进而分析故障原因,判断故障点。⑸部件替换法
有时故障比较隐蔽,不能一眼看出,如这时你手头有与故障仪器同型号的仪器时,可以将仪器中的部件、元器件、插件板等替换有故障仪器中的相应部件,以便于缩小故障范围,进一步查找故障。⑹旁路法
当有寄生振荡现象,可以利用适当客量的电容器,选择适当的检查点,将电容临时跨接在检查点与参考接地点之间,如果振荡消失,就表明振荡是产生在此附近或前级电路中。否则就在后面,再移动检查点寻找之。
应该指出的是,旁路电容要适当,不宜过大,只要能较好地消除有害信号即可。⑺短路法
就是采取临时性短接一部分电路来寻找故障的方法。例如图3所示放大电路,用万用表测量T2的集电极对地无电压。我们怀疑L1断路,则可以将L1两端短路,如果此时有正常的VC2值,则说明故障发生在L1上。
短路法对检查断路性故障最有效。但要注意对电源(电路)是不能采用短路法的。
8、断路法
断路法用于检查短路故障最有效。断路法也是一种使故障怀疑点逐步缩小范围的方法。例如,某稳压电源因接入一带有故障的电路,使输出电流过大,我们采取依次断开电路的某一支路的办法来检查故障。如果断开该支路后,电流恢复正常,则故障就发生在此支路。
实际调试时,寻找故障原因的方法多种多样,以上仅列举了几种常用的方法。这些方法的使用可根据设备条件,故障情况灵活掌握,对于简单的故障用一种方法即可查找出故障点,但对于较复杂的故障则需采取多种方法互相补充、互相配合,才能找出故障点。在一般情况下,寻找故障的常规做法是:
⑴先用直接观察法,排除明显的故障。
⑵再用万用表(或示波器)检查静态工作点。
⑶信号寻迹法是对各种电路普遍适用而且简单直观的方法,在动态调试中广为应用。
应当指出,对于反馈环内的故障诊断是比较困难的,在这个闭环回路中,只要有一个元器件(或功能块)出故障,则往往整个回路中处处都存在故障现象。寻找故障的方法是先把反馈回路断开,使系统成为一个开环系统,然后再接入一适当的输入信号,利用信号寻迹法逐一寻找发生故障的元、器件(或功能块)。例如,图4是一个带有反馈的方波和锯齿波电压产生器电路,A1的输出信号υO1作为A2的输入信号,A2的输出信号υO2作为A1的输入信号,也就是说,不论A1组成的过零比较器或A2组成的积分器发生故障,都将导致υO1、υO2无输出波形。寻找故障的方法是,断开反馈回路中的一点(例如B1点或B2点),假设断开B2点,并从B2与R7连线端输入一适当幅值的锯齿波,用示波器观测υO1输出波形应为方波,υO2输出波形应为锯齿波,如果υO1(或υO2)没有波形或波形出现异常,则故障就发生在A1组成的过零比较器(或A2组成的积分器)电路上。
第三篇:STC12C5A60S2串口通信keil与proteus调试 自己总结
STC12C5A60S2串口调试
需要软件:
在keil里安装。在debug里设置仿真器为:
点击MCU连接程序:
RS232:
虚拟终端:
程序:
#include “STC12C5A60S2.h” #include “intrins.h”
typedef unsigned char BYTE;void UartInit(void)//9600bps@11.0592MHz { SCON = 0x50;//8位数据,可变波特率
AUXR |= 0x40;//定时器1时钟为Fosc,即1T AUXR &= 0xFE;//串口1选择定时器1为波特率发生器
TMOD &= 0x0F;//设定定时器1为16位自动重装方式
TL1 = 0xE0;//设定定时初值
TH1 = 0xFE;//设定定时初值
ET1 = 0;//禁止定时器1中断
TR1 = 1;//启动定时器1 }
void SendByte(BYTE dat);void SendString(char *s);void main(){ UartInit();
SendString(“STC12C5A60S2rnUart Test!rn”);
while(1);} void Uart_Isr()interrupt 4 using 1
{if(RI){ RI=0;} if(TI){ TI=0;} } void SendByte(BYTE dat){ SBUF=dat;} void SendString(char *s){ while(*s!=' '){ SendByte(*s++);} }
第四篇:单片机串口总结
51单片机串口总结
有句话说“尽信书不如无书”,要学好单片机就要不断的、大胆的实验,要多怀疑,即使我们的怀疑最终被证明是错误的那么这也是进步(人们认识事物很多情况下来源于怀疑),当怀疑出现时就要去实践。有很多东西如果不通过实践是不可能掌握其中隐藏的奥秘,就拿51单片机串口通讯这一块,我认为掌握很好了,可以很轻松的实现数据的接收、发送,但这段时间当我重新学习串口时,我才发现里面还有很多小细节从没注意,更别说研究了。对于接收发送程序永远是按照别人的模式来编写程序,并没有真真正正的挖掘深层次的内容。我身边太多的人在临摹别人的程序,当然我不反对,但是希望自己多问几个问什么,单纯的会编程是学不好单片机的,毕竟单片机有自己独特的硬件结构。
开讲之前先简要说一下同步、异步通信:
同步通信:发送方时钟对接收方时钟控制,使双方达到完全同步。
异步通信:发送与接受设备使用各自的时钟控制数据的发送和接受过程(虽然时钟不同,但一般相差不大)。
51单片机串行口结构
从上图中我们看到,51单片机有两个物理上独立的接收、发送缓冲器SBUF,它们共用同一个地址99H,但是请注意:接收缓冲器只能读而不能写,发送缓冲器只写不读。单片机可以同时实现数据的发送与接收功能。
特别注意:接收器是双缓冲结构:当前一个字节从接收缓冲区取走之前,就已经开始接收第
二个字节(串行输入至移位寄存器),此时如果在第二个字节接收完毕而前一个字节还未被读走,那么就会丢失前一个字节。
51单片机串口控制寄存器
关于51单片机的控制寄存器各个位表示的含义在这里我只谈SM2。
SM2为多机控制位,主要用于工作方式2和3,当接收机的SM2=1时,可以利用接收到的RB8来控制是否激活RI(RB8=0不激活RI,收到的数据丢失;RB8=1时收到的数据进入SBUF,并激活RI ,进而在中断服务程序中将数据从SBUF中读走)。当SM2=0时,不论收到的RB8为何值都将使接收到的数据进入SBUF,并激活RI,通过控制SM2实现多机通信。
51单片机串口通讯方式
51串口通讯方式有3种,方式0、方式
1、方式2与方式3,他们的工作模式不尽相同。首先他们的波特率很容易忽视。方式0与方式2的波特率固定,而方式1和3的波特率由T1的溢出率决定。
方式0的波特率=f/12
系统晶振的12分频,换句话说12M晶振的情况下,其波特率可达1M,速度是很高的(当我们在选用串行器件并采用方式0时需要特别注意器件所能允许的最大时钟频率)。
方式2 =f/64或f/32(当SMOD=1时为f/32,SMOD=0时为f/64)。
曾经我用方式2进行MODBUS通信时,总是通讯失败,我仔细检查程序,没有发现逻辑错误,特别是当我参考别人的程序时,发现很少有人用方式2进行MODBUS通讯,所以当时自己妄下结论51单片机的串行方式2不可用,直到有一天夜里我突然想起方式2的波特率是固定的,试想晶振11.0592M/32或11.0592M/64怎么也不可能是9600啊,怎么可能通信成功。这才恍然大悟,看来还是自己太武断了,没有认真看书啊。有时我们认为我们犯这样的错误很低级,其实我们很多次都是因为这样的小细节导致我们整个系统不正常,正所谓“千里之堤毁于蚁穴”,这些细节真的伤不起啊。
方式1、3波特率=(2smod/32)*T1的溢出率,其中TI的溢出率=f/{12*[256-(TH1)]}.关于3种通讯方式其中有几点特别容易出错:
1、无论采用哪种通讯方式,数据发送和接受都是低位在先,高位在后。、3种方式作为输出,由于输出是CPU主动发送,不会产生重叠错误,当数据写入SBUF后,发送便启动(通过单片机内部逻辑控制,与程序无关),当该字节发送结束(SBUF空),置TI。不要理解为当数据一写入SBUF就置位TI,如果中断允许则在中断中发送数据,这就大错特错了。同样作为输入,可能会产生重叠错误(主要依赖于特定的环境),当一个字节的数据接收完毕(SBUF满)置位RI,表示缓冲区有数据提示CPU读取。
接下来通过一些实验具体说明串口通信中需要注意的地方 方式0输出
方式0主要功能是作为移位寄存器,将数据从SBUF中逐位移出,最常见的用法就是外接串入并出的移位寄存器,如74LS164。之前在做这一部分实验时总是利用单片机I/O端口模拟实现,现在想想在串口未被占用的情况下,方式0是最好的实现方式。
利用串口方式0,向74LS164输出字符“0”的编码,程序如下:
该程序采用了中断方式实现,结果是通过74LS164使数码管显示“0”。实验结果如下:
这里我说明几点: 如果采用查询方式,并且只发送一遍,那么程序最后的while(1);不可以省略,否则会出现数码管闪烁的现象(在KEIL环境下,main()函数也是作为一个调用函数,最后也有返回RET,它不像C中的main()函数,当执行完毕后就停止,而是重新复位执行,如此反复,这一点要特别注意)
这是查询方式下不加while(1);的现实效果 如果采用中断方式发送,请记得中断中清除TI,仅仅是为了解除中断标志,而不是等待发送结束,因为此时数据早已离开了SBUF跑到外边去了。3 74LS164最高25MHZ,采用方式0,没有问题。
方式0作为输入模式
以74ls165(最高时钟25MHZ)为例,可以满足要求。
对应结果如下:
(注意:74ls165线传送高位,而串口通信低位在先,所以显示的数据和实际数据高低位正好相反
P1.7---P1.0对应D0---D7)。
本程序只接收一次,也许有人会问,中断程序中REN=0,表示什么意思?可不可以改成ES=0?
这个问题很好,首先REN=0表示接收禁止,即不允许串口接收数据;ES=0是禁止中断和单片机是否接收数据没有关系,不接收数据自然中断允许也是徒劳,这两者有很大的区别。我们在很多接收程序中经常可以看到在判断RI标志后紧跟着清除标志位,我想问一下,为什么?)
如果我们也按照这种模式改写会怎样呢?
实验结果如下
两次结果差异怎么这么大?为什么会这样子?
为了便于理解,也为了说明问题方便,对中断程序做了如下处理:
结果又变了
是不是感觉很奇怪,究竟咋回事呢?
首先中断程序中当判断RI置位标志后紧跟着清零是为了接收下一个字节的数据,也为了避免单片机重复中断。
当51单片机串口方式0作输入时,在REN=1且RI=0的条件下就启动了单片机串口接收过程。如果有一个条件不满足就不能启动接收过程,以上出现的错误正式由于忽略了这个重要的因素造成的。在RI清零后由于REN仍然为1,单片机已经开始接收第二字节的数据,由于串口速度很快,RI仍会置位,而紧接着将REN清零只能阻止单片机接收数据,但是却
不能阻挡第二次中断。由于只接收了部分外部引脚数据(此时外部引脚为高电平,即逻辑1,其实单片机只接收了一位,对于12M晶振而言,方式0大约8us接收一个字节数据)。相反在RI=0与REN=0之间加上适当的延迟,就可以保证一个字节的数据全部接收完毕,故此时我们读上来的一个字节为0xff。
我在中断程序中添加了一个中断计数器(不加延迟),发现中断服务程序的确执行了两次
结果如下
加上延迟结果
这就验证了刚才的结论。
至于说可不可以换做ES=0,回答是可以的,尽管同样可以实现数据的读取,但是实质不同,当禁止中断后,单片机仍在接收外部数据,只是不再请求中断,自然的不再读取第2、3。。。字节的数据,那么P1将保留第一次中断时从SBUF中读出的数据。如果某一时刻打开中断发现结果不正常,如果理解了上面的机制就不会觉得惊讶了。建议:单次接收时,中断服务程序中REN清零放在RI之前。
还有一个问题非常重要:
如果我在中断服务程序中不清除RI,会怎样?
很少有人会这样用,但是经常有人忘记了(包括我)。课本上写得很清楚,务必在中断中用软件清除RI,为什么要这样呢?难道仅仅是为了接收下一次数据并且避免单片机不断的响应中断?的确如此,如果对于一个小系统而言,不清除中断标志,那么单片机将不停的中断,影响接下来任务的执行,系统必然瘫痪,而且不能正常的接收数据。总结:方式0作为发送方,只要向SBUF中写入数据就启动了发送过程;
方式0在座位接收模式时,REN=
1、RI=0的情况下就已经启动了接收过程。在中断程序中要注意两者清零的顺序。
还有一种情况要特别注意:单片机复位时SCON自动清零,如果单片机不工作在方式0,那么如果采用位操作SCON时也要注意REN=1与SM0、SM1的书写顺序,总之切记方式0启动发送、接收数据的条件。
方式1 方式1为10位异步通信模式。作为输出和方式0没有本质的区别,不同的是数据帧的形式,但是对于接受模式则有点不同,当REN=1且RI=0时,单片机并不启动接收过程。而是以已选择波特率的16倍速率采样RXD引脚的电平,当检测到输入引脚发生1---0负跳变时,则说明起始位有效,才开始接受本帧数据。方式1模式下 单片机可以工作在全双工以及半双工方式。下面举两个例子
半双工
主机发送某一字符,从机接收到数据后返回数据加1的值 比如 主机发送“1“,从机收到后回复主机”2“。实验结果如下:
方式1工作方式主要注意: 1 波特率可变。数据接收以起始位为标志,停止位结束。当RI=0且SM2=0或接收到有效停止位时,单片机将接收到的数据移入SBUF中,两个条件缺一不可。
方式2和方式3 方式2和3不同的只是波特率,这里以方式3为例
作为输出模式同方式1没有区别,只是增加了第八位数据位,第八位数据可以用作校验位或在多机通信中用作数据/地址帧的判别位。
首先我们来做模拟主从奇偶校验模式
主机发送一帧数据,并发送奇偶校验位,从机接收数据后,判断数据是否正确,如果正
确,接收指示灯亮,并且回送主机数据加1,反之回送0;主机接收从机信息,如果校验正确点亮LED指示灯.(从机、主机接收数据无论校验正确与否,均显示接收到的字节数据)。奇校验模式 演示结果如下:
(注:从接接收不正确,返回0)
主从机接收正确效果
之前我们已经介绍了SM2的具体用法,主要用于多机通信,将SM2作为数据/地址帧 的判别位,在接收地址时令SM2=1,当接收到的第八位数据为1时激活RI产生中断,然后比较地址,如果地址符合则清除SM2准备接受数据信息,反之不理睬。
特别注意 当RI=0且SM2=0(或SM2=1时接收到第9位数据为1)时,单片机将接收到的数据移入SBUF中,两个条件缺一不可。
在这里我只举一个简单的例子 一个主机,两个从机 起始时,主机从机的SM2均置位,所有的从机等待主机发送地址帧,主机令TB8=1,发送地址帧。所用的从机将接受到的地址和自己的地址比较,如果符合,点亮LED指示灯,清除SM2(准备接受主机发送的数据帧),并将自己的地址发送到主机。主机接收从机发送的地址信息,如果地址符合则数码管显示从机地址并开始准备发送数据,反之发复位信号,TB8=1。从机接收数据先判断RB8,如果RB8=1,则复位,重新开始接收主机发送的地址帧,反之通过P1口外接数码管显示接收到的数据。实验结果如下:
注意:如果主机没有得到正确的地址,则将按照一定的速率发送地址帧,直到接收正确的地址为止,该试验主机向从机2发送信息。
另外在这里我补充两点: 我们可以很方便的利用串口通信的工作方式2或3实现奇偶校验,注意技巧,当为偶校验时TB8=P,奇校验时TB8=~P;
2当单片机利用中断发送大量数据时,尽量采用中断发送,因为单片机在写入SBUF数据后由硬件将数据发送完,在发送过程中,单片机还可以做很多事情,利用中断发送数据可以提高CPU利用率。尤其在低波特率时效果更明显。
第五篇:DCS系统调试技术总结
DCS系统调试技术总结
一、概述
A、安徽山鹰纸业股份有限公司八万吨/年牛皮箱板纸安装工程中,自动化仪表项目需对纸机湿部的DCS系统进行调试。该部采用美国AB公司(Allen---Bradley)的Control Logix 1F56-PAF2/B DCS系统。主要用于纸机湿部的生产过程控制。
B、由各种现场检测仪表(如各种传感器,变送器等)送来的过程信号,经过程控制级各单元进行实时数椐采集,滤除噪音信号进行非线性校正及各种补偿运算,折算成相应的工程量,根据组态要求,进行上、下限报警及累积量计算。所有测量值和报警值经通信网络传送到操作站数据库,供实时显示,优化计算,报警打印等功能使用。过程控制单元根据过程控制组态进行各种闭环反馈控制,批量控制与顺序控制等。
C、为了做好该系统DCS的调试。应首先仔细地研究它的组成 结构,主要是针对四台PLC组成的过程控制级。分清它们之间的控制过程和功能区域划分。根据牛皮箱板纸的生产工艺流程,排出顺序控制的时序要求。以便在冷、热负荷试车时做到万无一失。
二、施工准备
调试前的准备工作是调试成功与否的重要一环。首先必须熟练掌握DCS的系统结构和各部分的组态性能和要求。主要是掌握以下几个部分:
A、CPU:工业级计算的稳定,可靠性、冗余度。
B、存储器:ROM、RAM、外部存储器。C、总线:可扩展总线,通讯速率等 D、I/O通道:AI、AO、DI、DO、PI等 E、电源:UPS F、网络拓朴结构
G、用于编制组态软件的专用语言
三、调试过程
DCS的调试主要包括DCS的硬件调试、DCS的软件调试和DCS的系统调试。DCS的硬件调试:
A、对DCS的接地装置进行检查,看是否符合设计要求,并测 量其接地电阻,看是否满足规范的要求(≤4Ω)。
B、依据施工和DCS原理图对盘、柜、站间的接线逐一进行检 查,确认其正确性。
C、对辅助机柜内的安全栅、继电器、转换单元进行调校检查。D、对DCS的供电装置、包括交流供电,直流输出,UPS等进 行检查测试,用数字万用表准确测量各种电压值。
E、通电检查机柜内的通风风扇,由于采用的是正压冷却,故 应检查过滤网进、出风口的风量情况。
F、对机柜内的插卡进行通电检查,主要依据其单元插卡上的 指示灯的状态判断插卡的好坏。
G、对DCS硬件的综合检查,主要是通过操作站上的屏幕显
示,利用DCS的测试及自诊断功能,检查所有硬件单元工作是否正常。
H、打印机、报警器、记录仪等辅助设备进行通电检查调试。DCS的软件调试
DCS软件的调试,在安装调试阶段主要是通过对操作站的各项功能的检查、组态检查和系统调试回路调试来测试,软件调试前,调试人员先在操作站上将存贮在硬盘或磁盘上已经“工厂级“组态好的控制软件调出,分别装载到控制站、卡的内存中,软件装载后,即可进行下列测试工作:
A、操作站的功能测试,具体检查方法按操作手册中的说明 进行。
B、对DCS的数据库生成、历史库生成、图形生成、报表生 成、顺序控制生成等各项组态功能进行检查,安装阶段测试组态软件,主要依据组态设计数据表,在操作站上通过键盘操作,调出组态的有关画面进行对照检查。
C、DCS的某些特殊的专用程序的测试,应按照设计说明逐 一进行。DCS的系统调试
DCS的系统调试前必须先做好以下两点:
A、系统调试在仪表系统安装完毕,管道清扫及压力试验合 格,电缆绝缘合格,气源、电源已符合仪表运行条件后进行。
B、线路和管路连接检查。用万用表或校线器检查系统的线
路是否符合设计图纸的要求,连接是否牢固可靠,校线时依次进行,从现场仪表到控制室端子再到二次仪表,逐个进行检查。管路连接正确、无泄漏。
DCS系统调试包括冷态调试和热态调试 DCS的冷态系统调试:
在I/O柜端子排上直接输入或模拟接点状态信号等模拟信号或其他特殊信号,用以代替各种检测仪器的输入信号,同时可以用规定的负载电阻或电压相符的信号灯,模拟各回路的输出负载。然后对DCS的每一输入输出通道逐个进行检查调试。DCS的热态系统调试:
热态系统调试是指DCS已经与现场的检测仪表和执行机构全部连通之后的调试。方法是在现场检测仪表的一次端送入模拟信号,在操作站的CRT上观察相应画面的显示情况,报警情况等。同时以手动或自动方式输出控制信号,在现场观察各执行机构的动作情况。具体各检测回路、调节回路、报警回路及联锁回路的调试方法和步骤同常规仪表回路。在热态调试阶段,仪表调试人员应与设计单位和建设单位的专业人员一起,对调节回路,报警回路,连锁回路的整定参数共同予以确认和整定。
四、小结
认真做好DCS系统调试的小结工作,是整个调试工作的重要一环。对调试中出现的问题进行分析研究,以利优化和不断完善DCS调试试车的工作。
A、准备工作必须充分、仔细,理解和消化相关资料、图 纸,做到心中有数。
B、做好调试大纲的编制工作,在编制中进一步加深对设 备功能、性能的掌握。
C、调试中做好各种数据的记录,认真核对其正确性,小 结中加以整理和分析。
D、通过对该DCS系统及其控制各仪表回路的调校,掌握了同类型PLC,输入/输出信号模拟的各种先进方法。应用软件的编制,修改参数设定,组态软件模块的功能连接。熟悉了工业控制中各种保护、调节、连锁、回授,报警的控制思路和先进方法。
E、在调试中值得引起注意的是必须先吃透控制对象和受控元器件的具体参数。否则会走弯路,多耗工时。严重时还会损坏元器件。
F、总结经验、教训,不断提高调试技术水平。锻炼了工程技 术人员的技术素质,为今后承各类自动化程度较高的安装调试工程打下了坚实的基础,也为八局安装公司的知名度做出了一份贡献。获得了经济、社会效益双丰收。