RS232串口作业要点.docx

上传人:苏美尔 文档编号:11661911 上传时间:2021-08-28 格式:DOCX 页数:22 大小:186.40KB
返回 下载 相关 举报
RS232串口作业要点.docx_第1页
第1页 / 共22页
RS232串口作业要点.docx_第2页
第2页 / 共22页
RS232串口作业要点.docx_第3页
第3页 / 共22页
RS232串口作业要点.docx_第4页
第4页 / 共22页
RS232串口作业要点.docx_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《RS232串口作业要点.docx》由会员分享,可在线阅读,更多相关《RS232串口作业要点.docx(22页珍藏版)》请在三一文库上搜索。

1、RS232串口通信一、RS232总线是什么?个人计算机上的通讯接 口之一,由 电子工业协会(Electronic Industries Association , EIA)所制定的异步传输标准接口。通常 RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出 现,一般个人计算机上会有两组 RS-232接口,分别称为COM1和COM2。RS-232-C 是美国电子工业协会 EIA (Electronic Industry Association )制定的一种串行物理接口标准。 RS是英文 推荐标准” 的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有 25条

2、信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信 号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C 标准规定的数据传输速率为 50、75、100、150、300、 600、1200、2400、4800、9600、19200、38400 波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距 离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信 距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距 离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于

3、20m以内的通信。rs232 (9针)接口电气特性EIA-RS-232C对电气特性、逻辑电平和各种信号线功能都作了规在TxD和RxD上:逻辑 1(MARK尸-3V -15V逻辑 0(SPACE)=+3 +15V在RTS、CTS、 DSR、 DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)=+3V+15V信号无效(断开,OFF状态,负电压)=-3V-15V以上规定说明了 RS-232C标准对逻辑电平的定义。对于数据(信 息码):逻辑1”(传号)的电平低于-3V,逻辑0(空号)的电平高 于+3V:对于控制信号;接通状态(ON)即信号有效的电平高于+3V, 断开状态(OFF)即信号无效的

4、电平低于-3V,也就是当传输电平的 绝对值大于3V时,电路可以有效地检查出来,介于-3+3V之间的 电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实 际工作时,应保证电平在 土(315) V之间。EIA RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示 逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为 了能够同计算机接口或终端的 TTL器件连接,必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法 可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路 转换器件,如MC1488、SN75150芯片

5、可完成TTL电平到日A电平 的转换,而MC1489、SN75154可实现 日A电平到TTL电平的转换。MAX232芯片可完成TTLEIA双向电平转换。缺点:(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与 TTL电路连接。(2)传输速率较低,在异步传输时,波特率为 20Kbps;因此在 CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。(3)接口使用一根信号线和一根信号返回线而构成共地的传输形 式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只 能用在15米左右。

6、:、通信的分类:通信的含义是什么?通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流 与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况 下无论采用何种方法,使用何种媒质,将信息从某方准确安全传送到 另方。1 .按传输媒质分类有线通信:是指传输媒质为导线、电缆、光缆、波导、纳米材料 等形式的通信,其特点是媒质能看得见,摸得着 (明线通信、电缆通 信、光缆通信、光纤光缆通信)无线通信:是指传输媒质看不见、摸不着 (如电磁波)的一种通信 形式(微波通信、短波通信、 移动通信、卫星通信、 散射通信)2 .按信道中传输的信号分类模拟信号:凡信号的某一参量(如连续波的振幅、频率、相位

7、,B 冲波的振幅、宽度、位置等)可以取无限多个数值,且直接与消息相 对应的,模拟信号有时也称连续信号。这个连续是指信号的某一参量可以连续变化。数字信号:凡信号的某一参量只能取有限个数值,并且常常不直 接与消息相对应的,也称离散信号。3 .按工作频段分类长波通信中波通信。短波通信。微波通信。4 .按调制方式分类基带传输:是指信号没有经过调制而直接送到信道中去传输的通信方式频带传输:是指信号经过调制后再送到信道中传输,接收端有相应解调措施的通信方式5 .按按通信双方的分工及数据传输方向分类对于点对点之间的通信,按消息传送的方向,通信方式可分为单 工通信、半双工通信及全双工通信三种。所谓单工通信,是

8、指消息只能单方向进行传输的一种通信工作方 式。单工通信的例子很多,如广播、遥控、无线寻呼等。这里,信号 (消息)只从广播发射台、遥控器和无线寻呼中心分别传到收音机、 遥控对象和BP机上。所谓半双工通信方式,是指通信双方都能收发消息,但不能同时 进行收和发的工作方式。对讲机、收发报机等都是这种通信方式。所 谓全双工通信,是指通信双方可同时进行双向传输消息的工作方式。在这种方式下,双方都可同时进行收发消息。很明显,全双工通信的 信道必须是双向信道。生活中全双工通信的例子非常多,如普通电话、 手机等。6:、串行传输与并行传输串行传输:串行传输是指数据的二进制代码在一条物理信道上以 位为单位按时间顺序

9、逐位传输的方式。串行传输时,发送端逐位发送, 接收端逐位接受,同时,还要对所接受的字符进行确认,所以收发双 方要采取同步措施。串行传输相对并行传输而言,传输速度慢,但只需一条物理信道, 线路投资小,易于实现,特别适合远距离传输。串行传输是目前数据 传输的主要方式。数据的传输在一条信号线路上按位进行的传输方式。并行传输:并行传输是在传输中有多个数据位同时在设备之间进行的传输.一个编了码的字符通常是由若干位二进制数表示,如用ASCII码编码的符号是由8位二进制数表示的,则并行传输ASCII编码 符号就需要8个传输信道,使表示一个符号的所有数据位能同时沿着 各自的信道并排的传输.并行传输时,一次可以

10、传一个字符,收发双 方不存在同步的问题。而且速度快、控制方式简单。但是,并行传输 需要多个物理通道。所以并行传输只适合于短距离、 要求传输速度快 的场合使用。三、串行通信的有关问题:同步通信同步通信是一种连续串行传送数据的通信方式,一次通信只传送 一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干 个数据字符。它们均由同步字符、数据字符和校验字符(CRC)组成。其中同 步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符 之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有 1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟

11、保持严格的同步。异步通信异步通信中,在异步通信中有两个比较重要的指标:字符帧格式 和波特率。数据通常以字符或者字节为单位组成字符帧传送。 字符帧 由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收 端可以由各自的时钟来控制数据的发送和接收, 这两个时钟源彼此独 立、互不同步。接收端检测到传输线上发送过来的低电壬逻辑 0(即字符帧起始 位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停 止位时,就知道一帧字符已经发送完毕。数据传输率数据传输率是指单位时间内传输的信息量,可用比特率和波特率 来表示。比特率:比特率是指每秒传输的二进制位数,用 bps (bit/s)表 示。波特率

12、:波特率是指每秒传输的符号数,若每个符号所含的信 息量为1比特,则波特率等于比特率。在计算机中,一个符号的含义 为高低电平,它们分别代表逻辑 1”和逻辑0”,所以每个符号所含的 信息量刚好为1比特,因此在计算机通信中,常将比特率称为波特率, 即:1波特(B) = 1比特(bit) = 1位/秒(1bps)例如:电传打字机最 快传输率为每秒10个字符/秒,每个字符包含11个二进制位,则数据传 输至为:11位/字符X10个字符/秒=110位/秒=110波特(Baud)计算机 中常用的波特率是:110、300、600、1200、2400、4800、9600、 19200、28800、33600,目前

13、最高可达 56Kbps.位时间Td位时间是指传送一个二进制位所需时间,用 Td表示。Td = 1/返 特率=1/B例如:B=110波特/秒, 则 Td = 1/110 =0.0091ms发送时钟和接收时钟在串行通信中,二进制数据以数字信号的信号形式出现,不论是发送还是接收,都必须有时钟信号对传送的数据进行定位。在 TTL标 准表示的二进制数中,传输线上高电平表示二进制 1,低电平表示二 进制0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率 决定。发送时钟发送数据时,先将要发送的数据送入移位寄存器,然后在发送时 钟的控制下,将该并行数据逐位移位输出。通常是在发送时钟的下降 沿将移位寄存器

14、中的数据串行输出,每个数据位的时间间隔由发送时 钟的周期来划分。接收时钟在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数 据位检测,并将其移入接收器的移位寄存器中, 最后组成并行数据输 出。波特率因子接收时钟和发送时钟与波特率有如下关系:F = n xB这里F是发送时钟或接收时钟的频率;B是数据传输的波特率;n称为波提 生因子。设发送或接收时钟的周期为 Tc,频率为F的位传输时间为 Td,贝U: Tc = 1/F, Td = 1/B 得到:Tc = Td /n在实际串行通信中, 波特率因子可以设定。在异步传送时,n = 1 , 16, 64,实际常采用n = 16 ,即发送或接收时钟的

15、频率要比数据住送的波特率高n倍。在 同步通信时,波特率因子n必须等于1。四、异步通信协议:1、串行异步通信时的数据格式异步方式通信 ASYNC (Asynchronous Data Communication ), 又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。 它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求, 而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发 送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束 时再发送一个停止位,起始位至停止位构成一帧。串行异步传输时的数据格式: 起始

16、位:起始位必须是持续一个比特时间的逻辑0”电平,标志传送一个字符的开始。数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字 符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数_ 据位究竟是几位,可由硬件或软件来设定。 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也 可以不设奇偶位。停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑1”电平,标志着传送一个字符的结束。 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑1” 电平。空闲位可以没有,此时异步传送的效率为最高。2、串行异步通信时的数据接收串行异步通信时,接收方不断地检测或监视串行输入线上的电平

17、变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来, 并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。 经过一段随机时间间隔之后,又进行下一个字符的传送过程。通常接收端的采样时钟周期要比传输字符的位周期短, 常用的采样时钟频 茎为位频率的16倍,采取这种措施是为了提高抗干扰能力,参看图8.19所示。从图中可知,传输字符的位周期 Td等于采样时钟周期Tc 的16倍。接收器的采样时钟的每个上升沿对输入信号进行采样,检验接收数据线上的低电平是否保持8或9个连续的时钟周期,以确定传输 线上的低电平是否是真的起始位。这样就可以避免噪声干扰引起的误 操作,从而删除假的起始位。相当精

18、确地确定起始位的中间点,从而 提供一个时间基准,从这个基准开始,每隔 16个Tc对其余数据位采 样,以确保传输数据的正确性。异步通信的特点: 起上式异步通信协议传输数据对收发双方的时钟同步要求不 高,即使收、发双方的时钟频率存在一定偏差.只要不使接收器在一个字符的起始位之后的采样出现错位现象,则数据传输仍可正常进 行。因此,异步通信的发送器和接收器可以不用共同的时钟,通信的 双方可以各自使用自己的本地时钟。 实际应用中,串行异步通信的数据格式,包括数据位的位数、 校验位的设置以及停止位的位数都可以根据实际需要,通过可编程用_行接口电路,用软件命令的方式进行设置。在不同传输系统中,这些 通信格式

19、的设定完全可以不同;但在同一个传输系统的发送方和接收 方的设定必须一致,否则将会由于收、发双方约定的不一致而造成数 据传输的错误与混乱。串行异步通信中,为发送一个字符需要一些附加的信息位,如 起始位、校验位和停止位等。这些附加信息位不是有效信息本身,它 们被称为额外开销或通信开销,这种额外开销使通信效率降低。例如 一个字符由7位组成,加上一位起始位、一位校验位和一位停止位,发送一个字符必须发送10位,而其中只有7位是有效的,其余3位不 是有效的,使通信能力的30%成了额外开销。所以异步通信适用于传 送数据量较少或传输要求不高的场合。对于快速、大量信息的传输, 一般采用通信效率较高的同步通信方式

20、。串行异步通信依靠对每个字符设置起始位和停止位的方法,使 通信双方达到同步。五、RS232的实物图,引脚名称连接方式:RS232端口引脚定义(DB 9)Pin No.1 DCD载波检测2 RXD接收数据3 TXD发送数据4 DTR数据终端准备好5 SG信号地6 DSR数据准备好7 RTS请求发送8 CTS允许发送9 RI振铃提示Designation DescriptionInput/。input 1 DCDData carrier detectInput 2 RxDReceive dataI叩ut 3 TxDTransmit dataOutput 4 DTRData terminal rea

21、dy Output 5GNDGround - 6 DSRData set readyInput 7 RTSRequest to sendOutput 8 CTSClear to sendInput 9 RIIncoming callInput4 fi.烟f (孔55647887TTL电平与 RS232电平的转换电路图:Vcc六:单片机与PC机的通信:我的设计是采用STC89C5弹片机作为下位机,PC机作为上位机。二者通过RS-232串行口接受或上传数据。我们要实现串口通信是通过PC机发出信号,然后经过数码管显示。在本设计中,选用键盘输入数据,共采用四个键盘和四个八段LED数码管显示。四个键盘分

22、别用来显示、选位按键、加一按键和减一按键,而四个八段LED数码管分别显示个、十、百、千位。在显示方面采用动态显示。调试方面是通过串口调试助手完成数据的发送和查看 LED数码管的显示出的数字是否与输入一致11R E T6VEla 4P HP0 7r 8Lf 6ar tzlt5r4r3r2rHorn. QI-LIA nxT nxKPD _JkD7aoDa c de bgf a vmrD8 oo / r-6 co3 LP4 4A3 CP2 CN1 AISD6CV2r ezr SXF4,p 3XF 2P1VPXTVAPGRP smp 4MP 3mp TAP rQ_ norRw咽TFKKK9X 1X T

23、 T/ nTN IIN 7r OP UHL OP OP ddp HP附录二串口通信源程序#include #include #define uint unsigned int#define uchar unsigned charsbit LS138A = P2A2;sbit LS138B = P2A3;sbit LS138C = P2A4;sbit K1=PW4;sbit K2=PW5;sbit K3=PW6;sbit K4=PW7;char a4,m;void delay(uchar xms) uchar i,j;for(i=xms;i0;i-)for(j=110;j0;j-);code u

24、chartab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x08,0x80,0x00;/0-9,-, 全灭void display(uchar num,uchar dat) /数码管动态显示P0=tabdat;switch(num)case 0:LS138A=0; LS138B=0; LS138C=0; break;break;case1:LS138A=1;LS138B=0;LS138C=0;case 2:LS138A=0; LS138B=1; LS138C=0; break;case 3:LS138A=1; LS138B=1; LS

25、138C=0; break;case 4:LS138A=0; LS138B=0; LS138C=1; break;case 5:LS138A=1; LS138B=0; LS138C=1; break;case 6:LS138A=0; LS138B=1; LS138C=1; break;case 7:LS138A=1; LS138B=1; LS138C=1; break; delay(5);void UART_Init(void)SCON = 0x50;用口工作方式为1 ,用行允许接收/SM0=0;/SM1=1;REN=1;TMOD = 0x20; /定时器1工作在方式2PCON = 0x80;

26、 /SMOD = 1; 波特率加倍TH1 = 0xf3; / 波特率 4800bps fosc=11.0592MHzTL1 = 0xf3;ES = 1; / 开用口中断TR1 = 1; /允许定时器1工作EA = 1; /开总中断void send(char *p) uchar i;for(i=0;i=3;i+)SBUF =*p+;/待发送的数据写入缓冲区while(!TI); / 等待发送完成TI = 0; /清零发送标志位main()char k=0,m;uint num;delay(10);UART_Init();while(1) for (num=0;num3)k=0;while(!K

27、2)for (num=0;num9)a0=0;else if(k=1)a1+=1;if(a19)a1=0;else if(k=2)a2+=1;if(a29)a2=0;else if(k=3)a3+=1;if(a39)a3=0;while(!K3) for (num=0;num=3;num+) display(num,anum);else if(K4=0)if(k=0)a0-=1;if(a00)a0=9;else if(k=1)a1-=1;if(a10)a1=9;else if(k=2)a2-=1;if(a20)a2=9;else if(k=3)a3-=1;if(a30)a3=9;while(!K4)for (num=0;num=3;num+) display(num,anum);else if(K1=0)delay(10);if(K1=0)send(&a0);while(!K1)for (num=0;num=3;num+) display(num,anum);void INT_UartRcv(void) interrupt 4 unsigned int i;for(i=0;i=3;i+)if(RI=1)/查询接收标志位(有数据发送过来时置为1)ai= SBUF;/ 存储缓冲区的数据RI = 0;/接收标志位清零delay(10);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1