工业通信网与控制技术实验指导书.docx





《工业通信网与控制技术实验指导书.docx》由会员分享,可在线阅读,更多相关《工业通信网与控制技术实验指导书.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验指导书一、基于RS-232的数据传输(一)2二、基于RS232的数据传输(二)6三、字符串数据的传输9四、二进制数据的打包处理13五、工业通信网中的数据校验16六、工业通信网中的上位机界面实现18七、综合设计基于PC的网络电子钟21V(TC+ Ckl12L、2()U345Rxl678M112MiaT20PI.0Pl.lPl.2Pl.3Pl.4Pl .5Pl .6PI .7RSI7VPDP3.(yRxDP3.1/lxDP32IN7T) P3.3INT1 P3.4HDP3.5T1P3.8WRP3.力 RDXTAL2 XTAL1 GNDVCC PO.O P0.1P0.2PO.3P0.4P0.5P
2、0.6P0.7EA/Vpp ALHPROG PSENVCCzrVCCT_P2.P2.P2.P2.P2.P2.P2.P2.38P0137P0236P0335P()434P0533P0632P0731VCC30VCC29T28P2727P2626P2525P2424P2323P2222P2I21P204()39POf)RP2l(k12345678;9P05P04JITXD232RXD232P30SI-OOP31SW-PBIS2-OO1P32SW-PB4S3 _ -OO1P33SW-PBIS4 _ -O O1P34SW-PB4S5 _ -OO1P35SW-PBlS6 -OO1P36SW-PBlS7
3、-O O1SW-PBI S8SW-PBI图3-1单片机系统RS-232与数码管电路P03H)2P01POO12字符串发送子程序流程:结束SE33?字符串接收子程序流程:(2)发挥局部:a.将基本步骤的两局部程序进行整合。b.能够使用串口调试助手进行波特率的修改(更改后串口调试助手也要使用新的波特率进行通信)。6.实验报告要求1)记录实验每一步骤的具体过程及实验现象。2)表达实验步骤中发挥局部程序的具体构思,同时将调试过程作详细记录。3)记录完整的实验程序,同时将程序分块化,对程序进行注释,并且标注好每局部程序块功能及关键语 句的作用。4)总结本次实验知识点及编程调试心得体会。7.实验预习及思考
4、题1)采用字符串传输的优缺点。2) printf函数和sprintf函数的功能与使用方法。3) SBUF=0x31;和 SBUF= V 的功能区别。四、二进制数据的打包处理1.实验目的1)掌握数据打包的基本原理与方法。2)掌握将PC机发送来的打包数据进行解析并转换的方法。3)熟悉数码管动/静态显示和显示内容的更新方法。2 .实验设备计算机一台、单片机实验箱一套、Keil C软件一套、串口调试软件一套。3 .实验基本原理字符串的识别是靠字符串中的字符每个对应ASCII唯一编码,但是这样相同的信息量的传输可能会花 费更多的时间或者资源。例如传送一个数字1234,如果看作一个整型数据的话它只占2个字
5、节,内容为 0x04, 0xd2,而如果看作是字符串它就占4个字节0x31, 0x32, 0x33, 0x34。从空间和时间上都多了一倍, 所以采用字符串传输的方式效率相对较低,要提高效率,可以采用直接二进制传输的方式。可以制定这样的协议:引导码占2个字节、数据长度占2个字节、数据1. .数据n占n个字节、校验码1个字节(校验码在 下个实验中介绍)。例如我们要传送1234这个数据,它的二进制占两个字节,那么我们引导码用0x55, Oxaa,数据长度 为0x00, 0x02,数据为0x04, 0xd2,这样当收到2个数据后,接收操作自动结束,虽然看似占用的资源 比字符串传输多,但是对于大量的数据
6、传输效率的提升时很明显的。实际数据包为:0x55, Oxaa, 0x00, 0x02, 0x04, 0xd2当单片机串口收到0x55时判断下一个是不是Oxaa,如果是Oxaa那么将后面收到的数据认为是一帧数 据。当然这样数据中如果有0x55, Oxaa序列就认为是引导码也不对,所以还要有其他的措施,比方超时 检测,转义数据等等方式。数码管显示采用动态扫描方式,也可以将其位段固定(这样子数码管显示内容将是相同的)。电路如 图4-1所示。共阴数码管,P0为位段,P2为码段。4 .实验内容1)通过PC在串口调试助手上使用16进制模式发送数据给数码管显示。2)打包发送16进制数据,在串口调试助手上发送
7、4个字节16进制数据,实现最大99999999的显示。3)控制实验板上数码管的显示内容(静态、动态)。5 .实验步骤(1)基本步骤:a.按照实验一进行电路连接。b.编写串口初始化程序和串口发送接收程序,初始化成功后,每隔1秒发送4个字节的加1数据。c.通过串口调试助手发送数据送数码管显示(16进制),首先完成静态,即发送单个数据在数码管上显 示,然后完成更新整组数据,如发送数据为00 BC 61 4E,那么对应数码管上显示12345678。(2)发挥局部:a.加入引导码控制,实现非引导数据发送时,单片机不进行送显处理。+VCCJP1Cd20URxl IK3(toFP30 西7 运 叵 西P35
8、 远 P371TTTTTT 叵 To T J2 J3 J4 H J6 77J9 20P1.0VCCPl.lPO.OPl.2P0.1Pl.3P0.2Pl.4P0.3Pl.5P0.4Pl.6P0.5Pl.7P0.6RS1/VPDP0.7P3ORDEA/VppP3.1/TxDALE/PROGP3.2/INTOPSENP3.MNHP2.7P3.4/TDP2.6P3.5T1P2.5PS.GWRP2.4P3.7/RDP2.3XTAI2P2.2XTAL1P2.1GNDP2.0VCC l(kT39POO38POI37P0236P0335P0434P0533P0632P0731VCC30VCC29T40VCC2
9、8_P2727 市西25P2424 国23 两22 西21 两SIP301234567891234567899Ul 1345iTP3110ZZilP30-9-q+ gC1-。+Q-T1INT2INR1OUTR2ag 5MAX232v-T10UTT2OUTRUNR2INo VCC=1C52a- IIJZL14 luF -7 TXD232138RXI3232TXD232RXD232-P3Io oSW-PB4 S2O O1SW-PB4S3SW-PB4 S4sw-pm S5P34 已. Lsw-pm S6P35OOSW-PB4 S7P36P3O O1sw-pm S8O O1SW-PB4RPlP0712
10、P069RP2P058图4-1单片机系统RS-232与数码管电路.实验报告要求1)记录实验每一步骤的具体过程及实验现象。2)表达实验步骤中发挥局部程序的具体构思,同时将调试过程作详细记录。3)记录完整的实验程序,同时将程序分块化,对程序进行注释,并且标注好每局部程序块功能及关键语 句的作用。4)总结本次实验知识点及编程调试心得体会。6 .实验预习及思考题1)采用二进制进行数据传输的优缺点。2)画出具有引导码的数据接收程序的流程图。3)如果二进制数据中有引导码应该怎么处理?4)预习写出基本要求的流程图或验证代码。五、工业通信网中的数据校验1 .实验目的1)掌握网络中最基本的数据校验方法一一奇偶校
11、验。2)掌握数据校验的常用算法和校验、CRC校验。3) 了解和校验、CRC校验的程序设计。2 .实验设备计算机一台、单片机实验箱一套、Keil C软件一套、串口调试软件一套。3 .实验基本原理串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符其各位为: 0100, 0101M5HD7 D0由于干扰,可能使某些位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫 “检错九发现错误后,如何消除错误,叫“纠错,最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或 偶校验。奇校验:所有传送的数位(含字符的各数位和校验位)中,
12、的个数为奇数,如:1 0110, 010100110, 0001偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:1 0100, 01010 0100, 0001奇偶校验能够检测出信息传输过程中的局部误码(1位误码能检出,2位及2位以上误码不能检出),同 时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。常用的奇偶校验法为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。另一种数据校验方式为和校验,即将要传输的数据包内所有数据相加,将和最后发送到接收方,接收方 将接收到的数据进行相同的处理,最后的和跟收到的校验和比拟,如果相同那么认为数据正确
13、,否那么数据错误, 请求重发。循环冗余码校验CRC是常用的重要校验方法之一。CRC校验采用多项式编码方法,被处理的数据块可以 看作是一个n阶的二进制多项式。这里,假定待发送的二进制数据段为g(x),生成多项式为m(x),得到的 CRC校验码为c (x) oCRC校验码的编码方法是用待发送的二进制数据g(x)除以生成多项式m(x),将最后的余数作为CRC校验 码,实现步骤如下。 设待发送的数据块是m位的二进制多项式g(x),生成多项式为r阶的m(x)。在数据块的末尾添加r 个0,数据块的长度增加到m+r位,对应的二进制多项式为G(x)。用生成多项式m(x)去除G(x),求得余数为阶数是L1的二进
14、制多项式c(x)。此二进制多项式c(x) 就是g(x)经过生成多项式m(x)编码的CRC校验码。用模2的方式减去c(x),得到的二进制多项式就是包含了 CRC校验码的待发送字符串。CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于r (r为m(x)的阶数)的突发错误。所 以,CRC的生成多项式的阶数越高,误判的概率就越小。CCITT建议:2048 Kb/s的PCM基群设备采用CRC-4 方案,使用的CRC校验码生成多项式m(x)=x+x+l。采用16位CRC校验,可以保证在1014bit码元中只含 有1位未被检测出的错误。在IBM的同步数据链路控制规程SDLC的帧校验序列FCS中,
15、使用CRC-16,其生 成多项式m(x)=xWx,x2+l;而在CCITT推荐的高级数据链路控制规程HDLC的帧校验序列FCS中,使用 CCITT-16,其生成多项式m(x)=x- CRC-32的生成多项式为:/ 32 . 26 . 23 . 22 .16 .12 ,11 ,10 . 8 . 7 . 5 . 4 . 2 .m(x;=x +x +x +x +x +x +x +x +x+x+x+x+x+x+l。0-32出错的概率为0-16的1。5。由于CRC-32的可靠性,把CRC-32用于重要数据传输十分合适,所 以在通信、计算机等领域运用十分广泛。在一些UART通信控制芯片(如MC6582、I
16、ntel8273和Z80-SI0)内, 都采用了 CRC校验码进行过失控制;以太网卡芯片、MPEG解码芯片中,也采用CRC-32进行过失控制。m(x)生成多项式的系数为0或1,但是m(x)的首项系数为1,末项系数也必须为1。m(x)的次数越高, 其检错能力越强。4 .实验内容1)编写单片机串口初始化程序,对奇偶校验进行设置。2)在数码管上显示串口调试助手发送的数据,并用最高位显示校验位数值。3)编程实现和校验算法,在串口调试助手中发送数据,手动计算校验和,然后在单片机上进行校验,并 将校验和显示在数码管上。4*)编写CRC校验算法,进行CRC数据校验。5 .实验步骤(1)基本步骤:a.切断开发
17、板电源,将串口线和下载线连接到开发板后重开电源。b.编写串口初始化程序对串口进行初始化。c.在串口调试助手中设定不校验,而单片机串口初始化设为奇校验或者偶校验(通过按键操作),将单个 字节数据送数码管显示,数码管最高位显示校验位的值,观察现象,记录并总结。d.在串口调试助手中设定奇校验或偶校验,重复步骤c中内容。e.编程实现和校验算法,在串口调试助手中发送数据,手动计算校验和,然后在单片机上进行校验,并 将校验和显示在数码管上。发挥局部:a.编写CRC校验算法,进行CRC数据校验。6 .实验报告要求1)记录实验每一步骤的具体过程及实验现象。2)表达实验步骤中发挥局部程序的具体构思,同时将调试过
18、程作详细记录。3)记录完整的实验程序,同时将程序分块化,对程序进行注释,并且标注好每局部程序块功能及关键语 句的作用。4)总结本次实验知识点及编程调试心得体会。7.实验预习及思考题1)课前预习好校验的相关方法以及算法。2)思考奇偶校验能否同时进行。3)查阅资料了解什么时垂直奇偶校验,水平奇偶校验和垂直水平奇偶校验。4)思考如果校验和结果位数变化该如何处理,例如两个8位和为9位,再多个数据位数会更多。5)思考这种校验适合字符串数据还是二进制数据,为什么。六、工业通信网中的上位机界面实现1 .实验目的1) 了解PC机编写基本程序界面的方法。2) 了解PC机编程控制串口收发数据的方法。3) 了解VB
19、编程的基础知识。2 .实验设备计算机一台、单片机实验箱一套、Keii C软件一套、串口调试软件一套。3 .实验基本原理在计算机控制中经常会遇到各种各样的程序界面,在这些界面实现数据传输是工程重要问题,可以实现 界面编写及数据传输的编程工具很多,例如VB、VC、BC、Delphi等,这些工具都能实现类似的功能,可根据 需要进行选取。4 .实验内容:1)使用VB实现如下列图6-1界面。图6-1上位机界面2)编写VB相关程序,实现界面的指示功能。3)编写单片机程序,能够接收并解析VB编写程序发送的控制指令,能够将按键信息发送给PC机通过VB显示状态。4*)用VB实现单片机板的数码管的控制。5 .实验
20、步骤(1)基本步骤:a. 使用VB构建如图6T界面。用到的控件主要有label, shape, timer, ms comm, VScrollob.文字显示使用label,图形用shape,设定圆形或长方形,灯内的D7是在shape上叠加了 labelo 调整各个控件的位置。各个控件的属性修改如下:label (指示)只改变captionlabel (shape 内)改变 caption 另外需改变 backstyle=transparentshape (圆形 circle 属性) boardcolor=白色 fillcolor =白色 fillstyle =0-solidshap (矩形 r
21、ectangle 属性)boardcolor=黑fillcolor 二白色 fillstyle =0-solidtimerinterval = 1c.双击shape内label在弹出的代码窗口中添加程序。实现点击图形改变颜色的功能 Private Sub Labe19_Click()If Shape3. FilIColor = RGB(255, 255, 255) ThenShape3. FillColor = RGB(255, 0, 0)Else: Shape3. FillColor = RGB(255, 255, 255) End If End Subd.步骤c成功后,在该函数后添加发送函
22、数MSComml. Output=“L7”。e.切断开发板电源,将串口线和下载线连接到开发板后重开电源编写单片机程序,使其接收到“L7” 时点亮P1 口的第7位上的发光二极管,依次完成其他发光二极管的控制。f.编写独立按键识别程序,当单片机识别到按键时,将按键信息发给上位机。g.编写VB程序解析发送来的按键信息,可以现将其放入一个label中显示,在进行解析让图形变化。 VB接收参考程序如下:Private Sub MSComml OnComm()Select Case MSComml. CommEvent借着取代底下每一个case语句来处理每个事件与错误事件 Case Case Case C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工业 通信网 控制 技术 实验 指导书

限制150内